gikoha’s blog

個人的メモがわり

Optaplannerでシフト作成 - 4

Employeeに HashMapを持たせ、Assetsを解析させることで DRLから参照できるようにして、ついに拘束日と休日を実装できた

GitHub - vascarpenter/ShiftSolver

f:id:gikoha:20180915211528j:plain

だが、DRLではどうやったら拘束日の実装をすればいいのかわからん

一番の理想:拘束日の医師は決定しており optaplannerを使うまでもない

理想:ある日がだれかの拘束日に当たっていて、その担当以外の医師だったらスコアを下げる

→ある日が誰かの拘束日であるか逆算できる必要がある

現実:その医師の拘束日だったらスコアをあげる。本当は上げたくないんだが。

DRL:

when WorkDayAssignment(employee != null, employee.isWorkDay(day) == true) then scoreHolder.addHardConstraintMatch(kcontext, new BigDecimal(1));

うーんむずかしい

でもプログラムとしてはこれでほとんど完成なんだな..