[問題] google or-tools排班問題

看板Python作者 (タイヤ)時間10月前 (2023/06/16 14:13), 編輯推噓0(006)
留言6則, 2人參與, 10月前最新討論串1/1
各位好 雖然本職是網路 但最近上司叫我寫個單位內用的簡單排班工具 搜了一陣子之後決定用or-tools做 骨架是套官網那個簡單版本的排班工具 https://developers.google.com/optimization/scheduling/employee_scheduling#assign_nurses_to_shifts 再加上參考這個 https://blog.csdn.net/weixin_42608414/article/details/110447228 只用一個BoolVar跟><=實做了一些簡單的條件約束 平均分配班次, 上班間隔, 平日假日班...之類的 現在的問題是 想做避免連續排班的部分 用「連續」相關的關鍵字 查到網路上提供的方法都是在講「昨天A班不接今天B班」的約束(同blog的約束6) 但我想要做的是 「不管上班日期是否連續 A班上完下次上班都不要接B班」 查過感覺OnlyEnforceIf之類的可以做到,但or-tool生出來的物件都沒有辦法單獨抓 value出來當成key用或做if判斷之類的,弄到頭很痛還是做不出來。 煩請各位前輩解惑 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.239.162.154 (日本) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1686896015.A.721.html

06/16 15:56, 10月前 , 1F
那不就變成分兩組配給AB兩班嗎?
06/16 15:56, 1F

06/16 16:33, 10月前 , 2F
...不說我都沒發現我的問題怪怪的 是「A班做完下次
06/16 16:33, 2F

06/16 16:33, 10月前 , 3F
上班必須要換做B班」
06/16 16:33, 3F

06/16 17:21, 10月前 , 4F
不是很懂or-tools,你可以利用AddBoolOr篩選?
06/16 17:21, 4F

06/19 14:05, 10月前 , 5F
最後是先做一個表示上個班次的變數 再用AddImplict
06/19 14:05, 5F

06/19 14:05, 10月前 , 6F
ion對本來的班表做限制後成功解決
06/19 14:05, 6F
文章代碼(AID): #1aY_sFSX (Python)
文章代碼(AID): #1aY_sFSX (Python)