2026年2月11日水曜日

instance24のTime Encode失敗

 ネックになっているのは、時間制約です。


休みY以外は、8,10,12時間のシフト時間となります。(OECD諸国の中で16時間連続勤務が常態化している国は少数で、欧州ではEU労働時間指令により

連続勤務は最大13時間程度

24時間内に11時間の休息義務

などの強い規制が一般的です。)



各スタッフ毎のシフトは、バラバラです。なので、SymmetryBreaking手法が使えません。

幸い、8,10,12⇒4,5,6に限定することは、出来ます。これをUnary表現したのが次です。


これを加算してMax/Min制約化したのですが、列制約を除いても1時間以内にfeasible な解を求めることは出来ませんでした。残念。

このインスタンスをよく見ると、Time制約幅が狭小であり、係数も0,4,5,6に限られています。

計数制約は、他に沢山あるのですが、解空間は、ほぼTime制約で決まっているように思います。制約幅が、狭小であることを勘案すれば、もう少し工夫を凝らせそうです。

この辺は、私でもやってみないと分からない領域です。試してダメだったら理由を後付けで考える、ということの繰り返しです。

このモデルは、物凄く簡単です。もしも、時間制約が15分単位で、種類が沢山あるということなら、1年という長期間の間に簡単に、爆発してしまいます。簡単なモデルだからこそ、1年という長期間に計算モデルが爆発しないでいられる、ということです。その意味で、時間制約は、一般に、慎重を要する制約となります。

0 件のコメント:

コメントを投稿