Q.その月で完結することはなく、木曜基準の1週間ごとに週4勤務のスタッフがいます。
Ans.
月に跨るので、完璧に行うには、端数となる週がないようにします。つまり、丸々1週間となる区間の整数倍の区間となるようにします。そのために、次のように区間の定義を変更します。
来月の最初の水曜日に制約終了日を設定します。そうすると、丁度5週間分のWEEKとなります。週4のスタッフは、来月水曜日まで制約することになります。その他の夜勤数等のカウント数制約は、今月区間(6月)に限定する必要があるので、そのように曜日集合を定義します。
曜日集合の作成
制約開始日を基準にそれよりー6日まで見ると1週間になります。
その1週間の中に必ず木曜日が一つだけあります。後は、それを基準に1Week,2ndWeekを作っていきます。
第5週まで作ります。
カウントする制約については、青部を「今月区間」に変更しています。
グループ集合で週4を定義します。
解
対象者は、週4勤務になっています。
次月処理
次月は、今月分まで、予定が入ってきます。他に予定が入ってこないなら、これをそのまま利用してもよいです。また、新たにブランク予定としてしまってもよいです。その場合でも、月始めは、先月まで見て、週4となるように新たに割り振るので問題ありません。
今月部分(先月から見ると来月部分)まで作成したのは、週4勤務の解があることを保証するためです。少なくとも他の予定が入ってこなければ、解が存在することは、先月の解で保証済です。
制約終了日は、次次月水曜日とします。
プロジェクトは、以下です。
なお、初期プロジェクトに対して以下を修正しました。
0 件のコメント:
コメントを投稿