2025年3月13日木曜日

変則2交代コアプロジェクトの仕様

解の例です。今年4月のプロジェクトにしてみました。




スタッフ数:30

長入明け:各4人

チーム数:2 A/B

平日日勤者数:7

休日日勤者数:

週休数、夜勤回数、年休数:スタッフプロパティで指定

明け後の2連休が出来ない数:スタッフプロパティで指定


出来る限りシンプルにしています。




長日と入り回数の一致は、敢えて実装していません。

<スタッフ数>
夜勤を4人で廻す場合、過去のプロジェクトを調べた限りで30-36人となっています。30人が恐らく実仕様上の最低人数になると思います。(夜勤5回キープの範囲内で)一般に大学病院の勤務はキツく、地方の公立病院だと割に緩やかな感じの傾向を感じています。希望も出しまくりのところが多いと思います。

<明けの後の2連休>
この実装は、出来ないパターンの禁止のソフト制約のところもあります。祝を週休数に加えることができる職場は、潤沢な休み数があります。そういう職場では、そのような実装でも、ブランク予定でエラーを0に出来る可能性がありますが、そうでない職場では、如何に年休数をプラスしたところで追いつきません。なので、そういう職場の場合は、2連休が可能な数をスタッフプロパティで指定していたのですが、今回は、出来ない数に変更しました。各々夜勤回数が違う中で、負荷平準の考え方からすれば、出来ない数を平等化する方がよいと思ったからです。

また、ある職場では、明け後の遅番パターンもあり得る仕様を頂きました。しかし、この場合

■日長入明遅休

となり、5日連続勤務となります。娘の夜勤明けを見ていて、流石に明け後も働くのは辛いし、連続勤務制約の月跨ぎパターンも考慮する必要が出てきます。なので敢えてお客さま仕様を無視して明け2連休優先の実装としています。

<夜勤間隔パターン>
長めのパターンも入れてみました。従来、「4日休み連続解」が出てくるということで、対処療法的なパターン禁止を入れてきたのですが、考えてみると、夜勤の数が少なくて休日の数が潤沢にあれば、そのようなパターンが出てくるのは自然なことです。ならば、夜勤の間隔を広げてやれば、自然にそのような解が出にくくなるであろう、ということが予測できます。
制約はシンプルな方が、ソルバ上もメンテンナンス上からも望ましいので、夜勤パターン間隔のみで、記述できるならばその方がベターです。
ただし、月末から月始めに関しては、その制約も苦しくなるのは事実なので、敢えて目をつぶる意味で、通常のパターン数で決まる日数は見ないことにします。これで、ブランク予定では、エラー0にすることが出来ます。

<日勤連続5日>
これも、制約しなければ、日勤連続5日は出現するのが通常ですが、軽めに禁止しています。

<長入パターン>

長入明パターンのうち、遅番の可能性が入るのは、長入だけです。また、このパターンから外れる長休単独もありえます。それらは、拡張仕様で実装することにしてコア仕様では実装しません。が望ましいのは、長入明パターンであろうということで、ソフト制約にしています。

従来、長単独を別シフトとする実装も行っていたのですが、煩雑過ぎて分かりずらいと反省し変更しました。単純にソフト制約にするのは、違和感があったからなのですが、シンプルな方が良い、と判断しました。

<救急外来、外来>

他の職場に応援に行く職場もあります。従来、これらはタスクで実装していたのですが、分かりずらい点を反省、今回はシフト追加で行こうと思います。






0 件のコメント:

コメントを投稿