臺灣大學資訊管理學系孔令傑老師-作業研究課程,已獲授權將題目放置於GitHub
一公司的面臨客服人員需求數量大於現有客服人員數的難題,公司經理正煩惱該如何為客服人員排班以使缺工情形最低。
- 每個客服人員1個月必須至少休假8天
- 每個客服人員每7天必須至少休假1天
- 每個客服人員每個星期至多被排1天晚班
- 每個客服人員每個星期至多被排2天下午班
針對一個月中的每一天,推薦公司每一個班別要各安排幾個人工作。使得該月份總缺工人數最少。
把排程問題化作線性問題,接著使用Python引入Gurobi解算器計算出最佳解。
線性問題的先天限制是在维持解方效能的情形下,無法限制最佳解為整數解,針對此問題,我所開發的程式會直接產出小數型態的最佳解,將調整的彈性留給管理部門。
- 每個月休8天
- 每7天休息1天
- 每星期至多1晚班
- 每星期至多2下午班
在上面的公式中,若Sigma的上界為i6等形式,他們的實際值為i+6。因為Latex會自動省略{}中的加號,所以才顯示不出來。
- 安裝Guroibi
可參考成功大學李家岩老師的作業研究課程
- openpyxl
- pandas
- numpy
在CMD中輸入
python3 solution.py
若要對其他資料進行處理,使用編輯器打開solution.py,更改全域變數dataFile_path在重複以上步驟即可。
- 蕭昀豪
- 鍾詔東
- 李佩霙
- 周正傑

