2024年2月28日水曜日

禁止にしているのに割り当てられてしまう

Q. 

1. 准看護師同士の夜勤は禁止にしているのですが、4/10のAさん(准看護師)とBさん(准看護師)が夜勤に自動的に割り当てられてしまう。

2.➁支援男性夜勤同士の夜勤は禁止にしているのですが、4/5 Cさん(A男性支援員集合)とDさん(B男性支援員集合)が夜勤に割り当てられてしまう。



Ans.

1.同じ集合、同じシフト同士の集合禁止は、列制約を用いてください。

2.ペア制約では、「かつ」ではなく、「または」で記述してください。

解説:

「または」を言い換えると、「少なくとも一人以上」 になります。つまり、准看護師の一人以上がペアになることを禁止する、という意味になり、ここまでは制約意図と一致すると思います。

しかし、准看護師の一人以上同士が、同じシフトである夜勤で禁止は、結局、准看護師の夜勤者数=0となってしまうので、意図と違うことになると思います。従い、ここでは、

「列制約を用いて准看護師の夜勤者数は、最大1名に制約する」が正解です。

一方「かつ」にすると、全員という意味になり、本例の場合、そもそも准看護師全員が夜勤に入ることはありえないので、制約自体が何も制約していないことになってしまいます。

2に関しては、集合またはシフトが異なるので、ペアで禁止は意味があります。従い、「または」で記述変更するだけでOKです。




言葉にすると、

A集合の少なくとも1人以上がB集合の少なくとも1人以上とペアになることを禁止

となります。こういう風に、「または」は、少なくとも1人以上、「かつ」は全員と置き換えて、言葉にして言ってみると、制約意図と合致しているかどうか分かると思います。


0 件のコメント:

コメントを投稿