希望休み数は、どれだけ取れる?
看護師や、介護施設の職員の希望休み数制限は、職場により様々です。2日から3日,5日、無制限と、様々です。
しかし、無制限だからと言って、無制限に希望休みが通る筈がありません。
あくまで、希望休みの上限はない、ということであって、希望休み数を取れるという保証ではありません。
ナーススケジューリング問題の性質
そもそも、ナーススケジューリング問題は、解が予想出来ない問題です。「希望休み数が必ずとれる」ということは誰も断言できません。
経験的に、2日までなら大丈夫というのはあくまで経験則です。保証できる話にはなりません。
スケジュールナースで、シミュレーションしてみる
全員が同じ条件でランダムシミュレーションしてみると、意外に、最強ソルバである筈のスケジュールナースの解の休み希望が入らないことに気づくと思います。 それは、現実のモデルと合致していないからです。
現実のモデルは、次の点が異なります。
■全員が上限まで休み希望を出す訳ではない
■全員が、ランダムに休み希望日を出す訳ではない
逆に言えば、現実の希望休みがなんとか成立しているのは、
■希望を出さない人がいる
■休日に休みが集中する
ということによるところが大きいということです。
予定も制約である
予定も制約の一種です。特に、予定はハード制約として入力されることが殆どですが、ハード制約は、解空間を狭める ということを認識して頂きたいと思います。
予定の影響
予定が殆ど入っていない場合
次のように、全くエラーが生じません。(逆に、そのように制約系を設計するべきです。)
そもそも予定が入っていないときが、最も解空間が広いので、最も良い解となります。
エラーがなければ、エラー0の時点で探索は、打ち切ることが出来、高速に解が求まります。


予定をかなり入れてみると

次のように、ソフト制約の重みが小さいところから、ポツポツ、エラー生じるのが普通です。

もっと予定を入れてみると

次のように、重みの重い制約にもエラーが生じているのが分かります。

もっと予定を入れてみると
ハードエラーとなるので、予定をソフト制約としました。予定は、4か所変更になっています。

重みは、6として求解しました。

結果、相当数の横方向エラーが生じています。

予定をソフト制約、重み1で求解してみる

横方向エラーは消失しました。代わりに、予定が26か所変更になっています。

以上の結果から、予定をソフト制約とするか、ハード制約とするかで、全く様相が異なり、ソフト制約にしても、重みで全く様相が異なることが分かると思います。
で、最初の題意の意味がお分かりのことと思います。予定が無制限のところは、誰かの犠牲の上に成り立っています。しわ寄せが誰にくるかは分かりません。自分かもしれないし、他の休み希望を出していない人かもしれません。
言えることは、誰かには、必ずしわ寄せがいき、公平という観点からかけ離れたものになるということです。
逆説的ではありますが、希望休み数が多い職場は、公平ではない可能性が高い、ということであり、少なくとも、公平を保つことが難しい ということは言えます。
よりよい勤務システムへ
ブランク予定で、エラーが生じていないことが担保できれば、どのような無制限の予定を入れたとしても、今月全ての予定をソフト制約とすれば、必ず解はあります。 一律に予定をハード制約とするのではなく、重要な予定、そうでない予定で重みを分けることが、各個人の希望を満足させながら、全体としての公平を保つことにつながると思います。
どのような勤務システムがよいかは、職場にお任せしますが、常に、次の点に留意して頂きたいと思います。
予定も制約の一種であり、ハード制約として入力することは解空間を狭める