2014年5月31日土曜日

プリセプタ、プリセプティ - ソフト制約を使いこなす

プリセプタ、プリセプティの制約は、禁止に比べると厳しいです。組み合わせ禁止は、その人以外を選択しなければよいので、選択の余地は大きいのですが、その人以外駄目になると選択の自由度がありません。そのために全夜勤を満たすのはとても難しいのです。でも、

1)できるだけ、プリセプタ、プリセプティの関係を満たしたい
2)何が何でも、プリセプタ、プリセプティの関係を満たしたい

1)は、ソフト制約にすれば実現できます。
2)2)は、予定制約をソフト制約とし、プリセプタプリセプティの制約レベルをそれより高くするか、あるいは、ハード制約とすれば実現できます。

あるICUからデータをお借りして、実際にやってみます。(スタッフ名は匿名です。)

最初に予定入力の画面です。かなり予定が入っていますね。果たして解はあるでしょうか?





プリセプタプリセプティは、問題になることが予想されるので、ソフト制約にしてあります。
下のようにソフト制約レベル4を設定しています。

 













下の状態で、求解してみます。







 
 

やはり、解はありませんでした。行制約4で、問題があると言っています。








ソフト制約4は、プリセプタプリセプティです。
一人あたりの許容エラーを下のように1から2に増やして再トライしてみます。



今度は解がありました。やはりプリセプタプリセプティがネックだったのですね。
数の下のペインで○がプリセプタプリセプティが成功したところ、xが3箇所ありますが失敗したところです。
この3箇所は、予定入力を全て満足する最小の数です。つまり、予定入力を満足するためには、プリセプタプリセプティエラーは、最小3個必要となり、2個以下では、予定は満足しないということです。この場合、async_timeがでていないので、解は厳密解で、物理的に入らないということです。逆に言うと、入らない中でもスケジュールナースは、頑張って詰めこんで、3個のエラーで済ますことができた、ということなのです。
上記1)の命題である、「できるだけプリセプタプリセプティの関係を満足させる」は、以上で実現できました。


 
次に、何がなんでもプリセプタプリセプティの関係を満足させる方法の説明です。
上で見たように、プリセプタプリセプティと、予定とを全て満足させる方法はありません。(物理的に入らない)
そこで、予定入力のソフト制約レベル5よりも、プリセプタプリセプティの制約レベルを高くします。
下のように、ソフト制約レベルを6にします。

このようにすれば、予定入力よりも制約レベルが高くなるので、満足するでしょう。
下はこのときの求解条件です。
行ソフト制約6がプリセプタプリセプティのソフト制約です。何が何でも実現なので、許容エラーは0に設定します。
下がこの条件下での解です。プリセプタプリセプティは、全て○になりました。代わりに予定の変更箇所が3箇所出ています。3箇所は、画像反転しています。この3箇所は、プリセプタプリセプティを満足する、最小の値でこれより小さい値は存在しません。(物理的にはいらない)。また、求解数は、10回に設定していますが、2解しかでていません。これは、求解条件で、同じ予定変更の組み合わせを禁止設定しているからです。(ただし、最初の2解は同じことがあります。)つまり、プリセプタプリセプティを満足する予定変更の個数は、最小3個で、その組み合わせは、提示してあるものが全てになります

 上の二つの解を出すのに、要した時間は、2分くらいです。
 
この二つの結果を見てどちらを選ぶか、あるいは、さらに条件を振ってみるかは、評価者たる人間でしか行えないことです。
この事例は、ソフト制約を使いこなす高度な例ではありますが、いずれにしても求解条件とソフト制約レベルをいじっているだけなので、慣れれば使いこなせるようになると思います。「守りの勤務シフト表から攻めの勤務シフト表へ」 パラダイムシフトしてみませんか?

0 件のコメント:

コメントを投稿