我想了解貪婪算法調度問題是如何工作的。貪婪算法,調度
所以我一直在閱讀和谷歌搜索一段時間,因爲我無法理解貪婪算法調度問題。
我們有n個工作安排在單個資源上。工作(i)具有請求的開始時間s(i)和結束時間f(i)。
有我們選擇一些貪婪的想法...
- 接受增加S的順序(「最早開始時間」)
- 接受增加的F順序 - S(「最短工作時間「)
- 接受增加的衝突(數的順序」衝突最少「)
- 接受在增加F(順序」最早結束時間「)
而書上說的最後一個,接受順序遞增的f總會給出一個最優解。
但是沒有提到它總是給出最優解的原因,以及爲什麼其他3不會給出最優解。
他們提供的數字說明了爲什麼其他三個不會提供最佳解決方案,但我不明白它的含義。
由於我的聲望很低,我無法發佈任何圖片,所以我會嘗試繪製它。
| --- | | --- | | --- |
| ------------------------- |
s的遞增順序 低估的解決方案
| ----------- | | ----------- |
| ----- |
f-s的遞增順序 低估的解決方案
| ---- | | ---- | | ---- | | ---- |
| ----- | | ----- | | ----- |
| ----- | | ----- |
| ----- | | ----- |
增加衝突次數的順序。 低估解決方案
這是它的樣子,我不明白爲什麼這是每個場景的反例。
如果任何人都可以解釋爲什麼每個貪婪的想法都行不通,那將會非常有幫助。
謝謝。
請指定更多你的條件。你會提前知道所有的凝視時間和結束時間,還是會在一段時間後出現新的任務?你被允許移動你的任務在另一個時間進行處理嗎?如果是這樣,你會因此收到一些處罰嗎?你如何評估什麼是好*結果?只有完全執行的任務值得嗎?做更長的任務比做更短的任務更重要嗎? – kajacx