簡體   English   中英

這是optaPlanner的智能用例嗎?

[英]Is this an intelligent use case for optaPlanner?

我正在嘗試清理當前使用優先級FIFO調度算法的企業BI系統(因此,將從周二開始的優先級4報告在從周四開始的優先級4報告和從周一開始的優先級3報告之前執行)。

  • 隊列永遠不會為空,作業總是被添加
  • 作業的執行時間從一分鍾到24小時不等
  • 有40個奇怪的相同應用服務器用於執行作業

我想我可以在這種情況下啟動並運行optaPlanner,並使用圍繞優先級的硬性規則和有關隊列中平均時間的一些軟性規則。 我是計划優化的新手,所以我想我的問題是,在這種情況下我應該尋找什么來決定optaPlanner是否會幫助我?

問題看起來像是裝箱的形式(可能還有車間調度 ),它們是NP完整的 ,因此OptaPlanner會比FIFO算法做得更好。

但這真的是NP完全的嗎? 如果滿足所有這些條件,則可能不是:

  • 所有40台服務器都是相同的。 因此,在服務器A而非服務器B上運行優先級報告不會更快地交付報告。
  • 所有40台服務器都是相同的。 因此,總持續時間(對於特定的輸入集)是一個常數。
  • 總制造時間無關緊要。 因此,假設有20個1小時的小工作和1個20小時的大工作和2台機器,那么在總工作時間為30小時的情況下,所有小工作都需要在大工作開始10個小時后完成。 沒有希望將制造時間縮短到20小時。
  • “隊列中的平均時間”值得商::您是否關心作業在隊列中等待多長時間才開始完成? 如果總持續時間是恆定的,則可以通過僅先或后先對小作業進行FIFO(當然仍然要優先考慮)來完成。
  • 作業之間沒有依賴關系。

如果滿足所有這些條件,則OptaPlanner將無法做得比正確編寫的貪婪算法更好(貪婪算法會調度優先級最高的作業,該作業從最小/最大開始進行排列)。 如果不滿足上述任何條件(例如,您購買了10台速度更快的新服務器),則OptaPlanner可以做得更好。 您只需要評估是否值得花費1個線程來解決這個問題。

如果使用OptaPlanner,則一定要看看實時調度和守護程序模式,以便在新報告進入系統時進行重新計划。

暫無
暫無

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

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