2025年5月5日月曜日

Q.夜勤の禁止ペアを追加したい

Q.以下の組み合わせの夜勤ペアを禁止したい

 水越智哉 と 新人

水越智哉 と 徳重駿介

水越智哉 と 杉村青空

水越智哉 と  水野真吾

徳重駿介 と 杉村青空

Ans.
禁止したいペアの集合を作って、最大スタッフ数≦1 とすればよいです。
ただし、水越智哉さん 徳重駿介さん 杉村青空さんの3人については、どの二人を選んでも禁止であることに注意して記述します。(夜勤禁止ペアCで記述)

また、水越さんは、その他に新人や、水野さんともペア禁止であるので、属性を増やして記述する必要があります。

1)グループ定義で、青部記述を追加します。

2)スタッフ定義で青部記述を追加します。

3)列制約で制約します。

4)解を確認します。

新たに、弱めの重みの4で制約しましたが、今回禁止したペアでのエラーはありません。

今回は、使っていない禁止ペア集合もあります。新たに禁止ペアを追加したくなった場合にご活用ください。

このように、スタッフ個人名ではなく、スタッフプロパティシートで抽象化して実装すると、メンテナンス上好ましいです。(退職したり、新たに追加したりするときは、スタッフプロパティシートをメンテするだけでよい。)

一般に、禁止ペアは、解空間を狭める割合が小さく、多くのペアを禁止しても障害にはならないようです。

0 件のコメント:

コメントを投稿