2025年2月14日金曜日

Q.変則2交代に3交代が混在

 Q.

■準夜(準)がいる場合、長日勤(長日)をA及びBチームに各1名、夜勤(夜)をA及びBチームに各1名割当てる

■準夜(準)がいない場合、長日勤(長日)をA及びBチームに1又は2名合計3名、夜勤(夜)をA及びBチームに1名又は2名合計3名割当てる

■準夜(準)を1名割当てた場合、翌日に準夜(準)と同じチームの1名を深夜(深)に割当てる

■準夜(準)及び深夜(深)の割当ては、3交替制の職員を優先して行う

Ans.

言葉にして言うと難しいです。図にしてみましょう。

今3交代勤務者が深夜準夜の勤務をしたとすると、準夜の後深夜を誰かが行う必要があります。ところが、同じチームに3交代勤務者は一人のため、2交代勤務者が深夜勤務を代行する必要があります。本来は、2交代勤務者は、長夜明だけなのですが、3交代勤務者のサポートのために、深夜・準夜もシフトをこなす必要が出てきます。皆が一斉に変則2交代に移行すれば、必要ないのですが、なかなか簡単には行かない事情があるようです。

また、準夜が居れば、長日・夜勤者は、2名でよい、居なければ3名必要ということになります。




つまり、

    準夜+長日==3名
    準夜+夜勤==3名

という制約式になります。==は、C言語表記で、等しい という意味です。
これを列制約で記述します。準夜+長日は、シフト集合で合成します。準夜+夜勤も同じく
シフト集合で合成します。
マウスホイールボタンを押すと、下のように、シフト集合の場合は、その要素が表示されます。




準夜が居た場合に翌日深夜
深夜が居た場合に前日準夜

は、ペア制約による記述となります。

0 件のコメント:

コメントを投稿