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 件のコメント:
コメントを投稿