ユーザ要求による実装と、通常の夜勤数・長日数の設定とで、勤務品質がどのように変化するかを見ていきましょう。
プロジェクトでは、簡単にマクロで切り替えられるように実装しています。
ユーザ要求による場合は、「ユーザ要求による実装」の行の値(D1)を1にして「設定」ボタンを押すことで設定されます。ソフト制約を有効にする場合は、2行目のD2を1にします。3行目は、それに伴うパラメータの変更のためにのものです。ソフト制約でない場合は、範囲を(Min0,Max0)→(Min0,Max1)に変更する必要があります。そのため、D2の値をそのまま使います。
該当箇所は、以下になります。
マクロで以下の1)2)を切り替えます。
1)ユーザ要求による長日勤務日数補償あり。半日休日を0.5公休をとカウントし補償する。公休日数は、±0.5で変化する。できれば、長日と夜勤数が同じになる(±0)となるソフト制約あり
2)長日勤補償なし、夜勤回数範囲は3-5回、長日勤回数範囲も同じ範囲に制約する
結果
1.予定あり
以下のような予定が入っています。8月で大量の夏休みが発生しています。
1)補償あり
行制約レベル4のエラー数が18個あります。これは、夜勤明け後2連休できなかったケースが18回あったことを示しています。(スタッフ28人で、平均夜勤数は4回程度です。)
2)補償なし
夜勤数は、下のスタッフプロパティシートで規制されています。長日勤も同様に記述可能ですが、そもそもユーザ要求は、長日差±1以内、できれば0であるために、記述せずブランクにしています。
2.予定なし
予定をAllClearした状態での比較です。明け後の2連休は全て満足しています。理想パターン日日長夜明休(レベル1ソフト)に対してだけ、差が出る結果となっています。
1)補償あり
2)補償なし
<考察>
補償なしとすることで、
夜勤2連休エラー :8個から18個に増加しています。
求解時間: 92秒から176秒に増加
この原因は、そもそも重い制約であることに加えて長日補償付加による解空間の減少と考えられます。予定なしにしても同様の傾向が観察されており、長日補償に纏わる普遍的事象と考えます。
シフト勤務を少しでも楽にするための変則2交代が、勤怠システムの要請のために、自らのシフト勤務を厳しいものにしています。言い方は良くないですが「自分で自分の首を絞めている」、とも言えるのではないでしょうか?
一般化した変則2交代 (nurse-scheduling-software.com)
0 件のコメント:
コメントを投稿