2022年3月21日月曜日

スポット制約が効かない

制約は、ソフトレベルで、たとえば、
 7:最強のソフトレベル 必ず実現したいが、ハードエラーは嫌だ。 
 3:できれば実現したいソフトレベル
 1:最弱のソフトレベル。通ればラッキー。

 という具合に重みを持たせる設計にしていると思います。 しかし、今月だけスポット的に、こうしたいという場合もあるかと思います。 その場合は、予定として書き込んでしまうのがもっとも簡便ですが、制約で記述したい場合もあるかと思います。

その場合は、特定Daysを曜日の”特定の日の設定”で作れば、他の月には悪影響を及ぼさずに今月スポットの制約を記述することが出来ます。 効いている全てのソフトレベルを凌駕するソフトレベル、つまりハード制約にして、強制的、有無を言わさぬ戦略を取ります。

 もし、そのようなスポット制約が効かない場合は、他に制約しているハード制約がないかを調べてみてください。たとえば、
●次のソフト制約で、許容範囲を超えています。 
● 週あたりの勤務回数設定2 xxx
というエラーは、ハード制約を指しています。SeqErrorのエラー許容量がLimitを超えているということを指しているので、GUIもしくは、Pythonでの修正が必要になります。

スポット制約で min>=9としても
Python制約で、min=max=6,エラー許容量2の場合、つまり、 6-2<=x<=6+2 の場合は、4<=x<=8の方が先にネックとなります。そのためにエラーメッセージもPython側になります。

スポット制約で min>=9とするためには、まずPython SeqErrorのエラー許容量を3に修正後に、スポット制約を記述してください。(min>=10の場合は、4)






0 件のコメント:

コメントを投稿