簡體   English   中英

如何處理 k-Processor 調度問題?

[英]How to approach the k-Processor Scheduling Problem?

所以,我有一個問題。 假設有 k 個處理器和 k*n 個作業。 現在,每個處理器應該正好做 n 個工作,每個處理器都需要特定的時間來完成特定的工作。 如下圖,這里Time k這一列是指處理器k做不同工作所花費的時間。

不同工作的時間

任務是找到我們可以完成所有工作的最短時間。 現在,對於 k=2,我發現貪婪的方法有效。 我們可以只計算每個工作的 T2-T1。 如果我們在處理器 2 中執行任務,這是 .net 的時間損失。因此,我們可以按非遞減順序對其進行排序,並將前 n 個作業分配給處理器 2 和 rest 處理器 1。我無法擴展進一步解決更高的 k 值。 有沒有通用的算法? 如果有人可以為此指出任何論文,或者指導我了解總體方向,我將不勝感激。 雖然我需要一個精確的解決方案,但足夠接近的解決方案也可以。

編輯:機器一個接一個地運行,而不是同時運行。 因此,完成時間不是所有機器所用時間的最小值,而不是它們時間的總和。 例子

首先,對於k = 2 ,簡單的貪婪方法不起作用 要看到這一點,只需考慮兩個處理器中作業成本相同的特殊情況。 這種特殊情況是眾所周知的 NP-complete分區問題 如果2 < k這成為多路數字分區

您描述的問題稱為Unrelated-machines scheduling 標准多項式時間近似來自用於調度不相關並行機的近似算法,它給出的結果偏離最優值不超過 2 倍。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM