ナーススケジューリング問題に対するペナルティ法の実験的評価(野中)

ナーススケジューリング問題とは

病院の病棟ナースの勤務表を作成する最適化問題のことをナーススケジューリング問題といいます。人の命に関わる現場で、看護の質を守りながら、ナースの健康状態をも考慮する勤務表作成は、責任が重く、時間を費やす困難な問題として有名です。

  • 入力:計画期間、ナースの人数、制約条件
  • 出力:全ナースの全期間に関する勤務表
勤務表の例(日:日勤、夜:夜勤、空欄:休み)

上の表は、勤務表の例です。勤務表作成時には、様々な制約が与えられます。大きく2種類の制約に分けられます。

  • 横の制約:ナースの健康状態を考慮する制約
    例)「連勤は5日まで」「夜勤後の日勤は禁止」など
  • 縦の制約:看護業務の質を保つための制約
    例)「土曜日は日勤が5人、夜勤が4人必要」など

横の制約は必ず満たす必要があり、縦の制約は満たせなかった場合に違反点数が発生します。縦の制約による違反点数の合計を目的関数とし、最小化します。

提案手法

1人の看護師について、最適なスケジュールを新たに決定していく操作を全ナースに対して繰り返すことで、解を改善していきます。

探索の際、縦の制約の充足具合を点数で保持し、この点数をもとに最適な1人のスケジュールを決定していきます。

計算機実験と評価

計画期間、ナースの人数、シフトタイプの数など様々な入力のベンチマークに対して、計算機実験を行いました。

比較対象として数理最適化ソルバーのSCIPというものを用いました。

その結果、評価値に関してはSCIPより悪い結果になりました。入力のスケールが大きくなるほど、SCIPとの差が大きくなったので、問題を分割して解く手法やSCIPを利用した手法の考案などを今後の取り組みとして考えています。