昨天在試圖入睡時,我開始考慮如何解決下面的問題,並意識到我無法想出一個好的算法。即使它看起來像一個,這不是一個學校作業,我只想找到答案。 :)生成時間表 - 需要好的算法
基本上讓我們設想一個工作時間表,在一家商店的員工。該計劃應根據一系列要求生成計劃建議。
的要求是:
- 只有一個員工任何一週的工作。
- 員工無法連續工作兩週。
- 應該有防止僱員從得到 安排某一週(假期)的工作方式。
- 分配應該儘可能平均,即如果我們有 員工A,B和C,他們應該獲得大約相同的週數 ,並且這些周應該儘可能均勻地分配爲 。
什麼是攻擊這個問題的最好方法是什麼?也許函數式編程更適合解決這個問題?
編輯:現在我知道這種類型的問題被稱爲「資源約束調度」。由於「調度」常常涉及計劃任務或線程等事情,所以對於這一點有點困難。對於誰仍然認爲我所要求的作業方案(儘管我明確地聲稱,否則以上)的人,你可以看看我以前的問題,我想他們清楚地表明我不是一個學生......
貪婪:使用一個PriorityQueue應該是一個很好的啓發式方法,但如果某個員工在最後一個預定的幾周內有一個長期「奉獻」,可能會失敗。 – amit
什麼是假期限制? – naveen
嘗試將輸入參數和輸出值添加到問題中的算法,因爲這會使其更清晰 – Ankur