2024年3月9日土曜日

クイズ

 schedule_nurse_practical_training.pdf (nurse-scheduling-software.com)

の付録に付けているクイズプロジェクトは、昔のサポートで実際に遭遇した勤務パターンを題材にしたものです。是非答えを読む前にやってみてください。



私自身は、このパターンに遭遇したときに、どうしてエラーになるかが分かりませんでした。

スケジュールナースは、こういう問題に対しても、解がないことを直ぐに指摘できます。恐らく他のソフトでは、ダンマリになっていつまでも答えがでてこない、という状況になり易い問題、だと思います。さらにこのパターン部に問題があるという指摘ができないために、何が何だか分からない、という状況になることが予想されます。

これもアカデミックと現場とのギャップの一つです。MIPソルバでこれを解くと解がない、Infeasibleと出てくるとは思いますが、「スタッフXのYDayが。。」という指摘は決してできません。現場では、こういう問題がしょっちゅう出てくるのに、アカデミックは、何も答えてはいません。全てをソフト制約にすることは、一別解ではありますが、意図しない年休や、意図しない公休増加をもたらすという別の問題にすり替わる可能性があります。間違いなのか、意図なのかは、多分管理者しか分かりません。否、管理者さえも分かっていない場合もあります。それ故にハード制約とハード制約の衝突(Conflict)は、衝突可能性部をレポートされるべきだと思います。厳密には、これもNP困難なので完璧に行うのは無理があるのですが、大半のケースで対処可能です。(これは、スケジュールナースの特許6364638によるものです。最適化の技術に関しては、学術世界において日進月歩の激しい競争があります。しかし、実用性において重要なのは、ハード制約の原因をアシストすることです。)

しかし、熟練した師長に見てもらうと、一瞬で問題点を指摘されました。話を伺うと、スタッフの中にはこういうパターンを出してくるスタッフがいるのだそうです。このパターンだと必ず、年休または有給が必要となるのです。敵もさるもので、つまりは、分かって希望休を出してきているということです。先輩師長から、「このスタッフは、こういうのをよく出してくるから先に作っていくといいよ!」という人力アドバイスを受けたそうですが、それが唯一の人力による勤務表作成のアドバイスだったようです。

自動勤務表の場合は、もちろんそういう配慮は不要です。ただし、ソフトで年休を付けてやる必要があります。当該プロジェクトのオリジナルでは、もちろんソフト制約になっていたのですが、ハード制約とソフト制約の違いを学習・トレーニングするために、ハード制約にして、なおかつ公休数を8(ハード制約)に意図的に設定していた、というのが答えです。つまり、

■公休数8

■当該希望休パターン

は、どちらもハード制約であり、同時に満たす解が存在し得ない、というのが答えになります。解があるようにするには、どちらかをソフト制約にすればよいです。つまり希望休パターンの変更もしくは、公休数を9にすればハード制約違反は解消されます。


0 件のコメント:

コメントを投稿