夜勤4名の中に、①「看護師夜勤リーダー1名」、②「介助員1名 または 介助員役割の出来る看護師が1名」必要 なのですが、
夜勤リーダーと介助員役割の両方が出来る看護師がいるため
当該看護師の夜勤が解となった場合、①②どちらの制約での勤務なのかが判別できない

シフト中にタスクを追加する方法を採れば、今まで記述した シフト制約に手をつけずに、タスク関連だけを追加することで事足りる と思います。
シフトのみを用いて記述することも可能ですが、

■シフト数が大になる
■シフト記述の変更が必要になる
■メンテナンス性が悪い

という煩わしさがあるので、タスク勤務表にすることをお勧めします。

本例は、その実装の仕方を示すデモプロジェクトです。

Q1 夜勤は、2交代入り明けでしょうか?それとも深準の3交代でしょうか?、それとも変則2交代でしょうか? →「深準の3交代」の病棟です。

Q2 制約は、 夜勤4名=ナース+介助員 ①「看護師夜勤リーダー1名」 ②「介助員1名 または 介助員資格を持ったナース1名 であればよいのでしょうか?(他に列方向の制約はありませんか?) →本件に関連する制約として、 ①の看護師夜勤リーダーは、「介助員役でない看護師、A/Bチーム問わず」 ③看護師にA/Bチームが存在し、A/Bチーム各1名以上必要。ただし介助員役勤務の看護師を除く。  (例:当該夜勤で介助員役の看護師がAチームであった場合、別にAチーム看護師1名必要) があります。

実人数は、夜勤不可を除き、      看護師29名 看護師夜勤リーダ資格者16名 看護師介助資格者7名 看護師リーダ介助両方資格者7名(現在のところ介助資格者は、すべて夜勤リーダ資格者であるが、今後変わる可能性あり) 介助員 6名      全員夜勤(深準)回数合計8回以内です。



深準3交代型

すでに、下のような深準3交代型がシフト勤務表が稼働しているとします。




シフト勤務表からタスク勤務表にする

上のシフト勤務表に要求の仕様を追加していきましょう。

スタッフ人数を合わせる

介助員のプロパティも一応設定しておきます。(本デモプロジェクトでは使っていません。)また、看護師のA/Bグループは、ほぼ同数となるように調整しました。



フェーズの設定

本プロジェクトで、タスクが必要になるのは、夜勤のみです。ですから、深夜と準夜勤シフトのみを下のように記述します。



タスクの設定

介助タスク、リーダタスク、スタッフナースタスクの3種類が必要となります。これらは、どれか一つがかならず選択されるタスクになります。 どれも選択されないとき、NoTaskVarがアクティブになります。



スタッフ毎のシフトの設定

下オプションをチェックします。



スタッフ毎のタスクの設定

要求仕様に基づいて、設定します。オプションのチェックも行います。NoTaskVarは、必ず全員にチェックを付ける必要があります。
A/Bのバランスが重要な様です。



要員の設定

今定義したスタッフ毎のタスクが意図通りになっていることを確認します。



フェーズド列制約の設定

要求数に合うように設定します。



列制約変更

本変更は、夜勤数の変更に伴う修正です。当該プロジェクト上の変更であれば、必要ありません。



介助員は、介助タスクしか割り当てられていないことを確認してください。



看護師は、介助タスク・リーダタスク・スタッフナースタスクの可能性があります。スタッフ毎のタスク設定で設定した通りになっていることを確認してください。



プロジェクト

プロジェクトは、以下です。

ダウンロード して、実装の参考にしてください。