基礎題¶
為什麼在區間排程裡,常常會先挑結束時間最早的任務?
如果一個任務的結束時間剛好等於下一個任務的開始時間,為什麼可以視為不衝突?
在實際工作中,哪些情況會讓「排最多件事情」不一定是最好的目標?
什麼情境下,你會想為任務加入效益值,而不只看數量?
如果主管要求你說明「為什麼少排兩件事,卻更值得」,你會怎麼解釋貪婪排程和加權排程的差別?
實作題¶
為
select_highest_value_tasks改成支援浮點數效益,並思考排序與比較的影響。把開始與結束時間改成
datetime,模擬一天內的實際會議排程。新增一個摘要函式,回傳選中任務的總時數、總效益與未被安排的任務名稱。
反思題¶
貪婪排程每次都挑「結束最早」的任務,這個規則在什麼情況下會讓你得到一份看起來很滿、但實際效益偏低的行程表?
本章的加權排程用動態規劃確保全域最佳。但如果任務清單每隔幾分鐘就更新一次,你還適合用這個方法嗎?你會怎麼調整?
在真實排程情境裡,「任務效益」通常很難量化。你認為誰應該決定這個數字?決策過程缺乏透明度會帶來什麼風險?