制約では、次のようになっています。
まずは、チェックマーク(✔)休集の意味です。
休集は、あらゆる休みの集合体です。チェックマークは、それに対して反対を取ることを意味します。集合で言うと補集合です。
つまり
✔休集=勤務
となります。勤務は、日勤かもしれないし、長日、入り、明け、研修..あらゆる休み以外のシフト全ての集合です。
上のパターンを解説します。7日のパターンですが、実は、これに包含される
制約があります。6連禁禁止です。
なので、上の6日目のパターンは、通常休みになります。その後7日目での勤務が、7日のパターン全体での勤務パターンになります。つまり、5連勤務の後休み、その後勤務というパターンです。制約は、パターン禁止ですから、
「5連勤務の後休み、その後勤務」というパターンの禁止
になります。ここで、既に6連勤務は、規制されていることに注意してください。7日パターンのみでは、6連勤務禁止にならないことに注意してください。
制約パターンの検証方法
弱いソフト予定で考え付くパターンの全てを書いてみて、目論見どおり動くかを見るとよいです。制約パターンの方が強ければ、弱い予定は、全て制約パターンに規制されます。目論みの「5連勤の後2連休」に当てはまらないパターンが解にあれば、制約設計のバグ、ということになります。なお、目的外の制約をオフにすると(求解時のチェックを外す)スピーディにデバッグすることが出来ます。
0 件のコメント:
コメントを投稿