Min-Min算法和Max-Min算法

Min-Min算法

Min-Min算法是一種實現起來很簡單的算法,算法的執行時間也很快。算法的思想是首先映射小的任務,並且映射到執行快的機器上。

執行過程爲:計算要參與映射事件的每個任務在各個機器上的期望完成時間,找到每個任務的最早完成時間及其對應的機器;從中找出具有最小最早完成時間的任務,將該任務指派給獲得它的機器;指派完成後,更新機器期望就緒時間並將已完成映射的任務從任務集合中刪除。重複上面的過程,直到所有的任務都被映射完。

該算法形式化描述如下:

M爲所有未調度的任務的集合
(1)判斷任務集合M是否爲空,不爲空,執行(2);否則跳到步驟(7)。
(2)對於任務集中的所有任務,求出它們映射到所有可用機器上的最早完成時間cij。
(3)根據(2)的結果,找出最早完成時間最小的那個任務mi和所對應的機器hj。
(4)將任務mi映射到機器hj上;並將該任務從任務集合中刪除。
(5)更新機器hj的期望就緒時間rj。
(6)更新其它任務在機器hj上的最早完成時間;回到(1)。
(7)此次映射事件結束,退出程序。


Max-Min算法

Max-Min算法非常類似於Min-Min算法。同樣要計算每一任務在任一可用機器上的最早完成時間,不同的是Max-Min算法首先調度大任務,任務到資源的映射是選擇最早完成時間最大的任務映射到所對應的機器上。

該算法形式化描述如下:

M爲所有未調度的任務的集合
(1)判斷任務集合M是否爲空,不爲空,執行(2);否則跳到步驟(7)。
(2)對於任務集中的所有任務,求出它們映射到所有可用機器上的最早完成時間cij。
(3)根據(2)的結果,找出最早完成時間最大的那個任務mi和所對應的機器hj。
(4)將任務mi映射到機器hj上;並將該任務從任務集合中刪除。
(5)更新機器hj的期望就緒時間rj。
(6)更新其它任務在機器hj上的最早完成時間;回到(1)。
(7)此次映射事件結束,退出程序。
發佈了87 篇原創文章 · 獲贊 41 · 訪問量 123萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章