日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

贪婪算法+小应用(调度问题)

發布時間:2023/12/3 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 贪婪算法+小应用(调度问题) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【0】README

0.1) 本文總結于 數據結構與算法分析, 旨在 理解 “DFS應用——貪婪算法” 的idea;


【1】貪婪算法

1.1)已經看到的三個貪婪算法: Dijkstra算、Prim算法 和 Kruskal 算法;(Dijkstra 尋找一個頂點到其他頂點的最短路徑, Prim算法是選取頂點以找出最小生成樹, Kruskal算法是一次選取權值最小的邊 建立最小生成樹)
1.2)貪婪算法是分階段工作的 : 在每個階段,可以認為所做的決定是最好的, 而不考慮將來的后果。一般來說, 這意味著選擇的是某個局部的最優。
1.3)貪婪算法荔枝(使用最少數目的紙幣找零錢):
說找零錢, 大部分人首先數出面值1元的紙幣,然后是面值5角的紙幣、2角的紙幣、1角的紙幣等等;這種貪婪算法使用最少數目的紙幣找零錢;
貪婪算法的主要問題(添加1元2角的紙幣): 該算法不能總是成功,為了找還15角的零錢,如添加面值1元2角的紙幣(這僅僅是舉例說明)可破壞這種找零錢算法, 因為此時它給出的答案(一個面值1元2角的紙幣+1個面值2角的紙幣+一個面值1角的紙幣==3個)不是最優的(1個面值1元的紙幣+1個面值5角的紙幣==2個);


【2】一個簡單的調度問題

2.1)問題說明: 有作業 j1, j2, ……, jN, 已知對應的運行時間為 t1, t2, …, tN, 而處理器只有一個, 為了把作用平均完成的時間最小化,調度這些作業最好的方式是什么?

對上圖的分析(Analysis):

  • A1)我們看到, 2號調度是按照最短的作業最先進行來安排的, 這將總會產生一個最優調度;
  • A2)這個結果也指出了 為什么 os 調度程序一般吧優先權賦予給那些更短的作業的原因;
    2.2)多處理器的情況
  • 2.2.1)我們還是有作業 j1, j2, ……, jN,對應的運行時間為 t1, t2, …, tN,另外處理器的個數為P。不失一般性地, 我們將假設作業是有序的,最短的最先運行。
  • 2.2.2)看個實際荔枝:

2.3)將最后完成時間最小化(即越早結束越好)

  • 2.3.1)假設我們只關注最后作業的結束時間;
  • 2.3.2)看個荔枝(下圖中的最小的最后完成時間是 34):
  • 2.3.3)這個問題是NPC類問題, 因此將最后完成時間最小化顯然要比把 平均完成時間最小化困難得多;

總結

以上是生活随笔為你收集整理的贪婪算法+小应用(调度问题)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。