簡體   English   中英

資源約束項目調度

[英]Resource constraint project scheduling

我需要您的幫助來解決這個問題。 我有一組任務,每個任務都有其執行時間。 我有兩種約束。 第一種是任務之間的優先級關系。 第二種約束類型允許同時執行一組任務。 例如:我有一個圖形G,其中包含6個任務,並且具有以下邊線(T1,T2),(T2,T3),(T4,T3),(T4,T5)和(T6,T5)。 假設T1,T4可以一起執行,並且T1,T6也可以一起執行,但T4,T6不能一起執行。 考慮到每個任務的執行時間。 考慮到某些任務的並行執行,如何找到滿足任務之間優先級關系的計划,並最大程度地減少計划的長度。

如果排除約束(“ T1,T4能夠一起執行”)不存在(並且沒有添加其他約束),則可以通過占用所有先前任務的最大完成時間來開始每個任務。 那將是最佳的並且可以很好地擴展。 您會自動獲得最短的制造時間。 它不會是NP完整/困難的,也不是作業車間的調度。

不幸的是,排除約束(以及將來可能添加的任何其他約束)將其轉換為作業車間調度(如Lars所述),這是NP完全/困難的。 請觀看此視頻該視頻是開放源Java實現的Job Shop Schedule變體,該演示說明了為什么某些任務開始於其先前任務完成之后。 為了解決這個問題,請研究啟發式,元啟發式(Tabu搜索,...)或其他相關技術。

為了簡單起見,您可以將基於優先級規則的建設性啟發式方法與計划生成計划或也稱為SGS一起使用,請參閱此內容以獲取更多參考。 啟發式方法將根據一些標准生成活動的有序列表,SGS將以此列表作為輸入並生成時間表。 在實施SGS時,您將基於第二個約束條件判斷兩個任務是否可以並行執行。

如果您想要更強大的功能,則可以使用元啟發式,基本上,您將在其中生成解決方案(任務列表)並使用本地搜索技術修改此解決方案,從而探索解決方案的搜索空間。 您可以基於優先級規則生成解決方案,並通過SGS實現對其進行評估。 這只是關於元啟發法將如何工作的簡化解釋,存在一些差異。 元啟發式的一個很好的例子是應用於RCPSP問題的模擬退火: http : //www.sciencedirect.com/science/article/pii/S0377221702007610

暫無
暫無

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

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