0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「AIによるシフト表作成」

Last updated at Posted at 2025-09-02

はじめに

「Julia×JuMPで病棟シフト最適化①~④」シリーズでは、数理最適化を用いて複雑な病棟シフトを自動生成する手法をご紹介してきました。その一方で、昨今のAIの著しい進化に伴い「AIさえ使えばプログラマ不要でなんでもできる」という声も聞かれるようになりました。

果たして、病棟運用における多種多様かつ厳密な制約をAI単独で正確に満たしたシフト表を得ることは可能なのでしょうか。本稿では同一要件をChatGPT4o mini、Claude sonnet 4、chatGPT 5、geminiに投げて出力を比較し、AIだけでプログラマの手を完全に置き換えられるのかを検証します。

共通プロンプト

あなたは総合病院の1病棟の看護師長です。これから指示する内容に従ってコンテンツを作成してください。
#目的
・2025年8月1日~8月31日のシフト表を作成する

#制約
・看護師25人(女性23人・男性2人)
・看護師の名前は仮に看護師1~看護師25とする
・看護師12と看護師16は男性
・全勤務形態(休:休日, 日:日勤8:30~17:15, 夜:夜勤入り17:15~0:30, 明:夜勤明け0:30~8:30, 早:早番7:30~16:15)
・禁止する連続シフト("夜夜", "休明", "明明", "明夜", "夜休", "夜日", "日明", "明日", "夜早","早明","明早")
・夜勤入りの次の日の勤務は必ず夜勤明け
・全スタッフ10~12回の休日を設ける
・夜勤は必ず毎日2人必要
・早番は必ず毎日1人必要
・各スタッフの夜勤回数はできるだけ均等にする
・土日の日中の勤務者(日勤+早番)は7人とする
・平日の日中の勤務者(日勤+早番)はできるだけ平均化する
・男性スタッフのみの夜勤は禁止とする
・看護師5と看護師6の同時夜勤は禁止
・看護師2と看護師12の同時夜勤は禁止
・3連休以上の連休は極力減らす
・5連続勤務は極力減らす
・6連続以上の勤務は禁止

#出力形式
・markdown形式
・結果の一部のみではなく、全結果を出力する
・全員分の日付ごとの勤務形態を一枚の表に並べる
・各スタッフの夜勤回数と休み回数の集計列が必要
・各日の日勤者数と夜勤者数の集計行が必要
・横軸に日付

ChatGPT4o miniの出力例

| 看護師   |  1 |  2 |  3 |  4 |  5 |  6 |  7 |  8 |  9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |  合計夜勤  |  合計休日  |

|----------|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|---------|---------|

| 看護師1  | 日 | 日 | 日 | 日 | 休 | 休 | 休 | 日 | 早 | 日 | 日 | 夜 | 夜 | 明 | 休 | 休 | 休 | 日 | 日 | 日 | 日 | 日 | 休 | 2       | 11      |

| 看護師2  | 日 | 日 | 早 | 日 | 日 | 日 | 日 | 休 | 休 | 夜 | 明 | 夜 | 休 | 休 | 日 | 日 | 日 | 日 | 早 | 日 | 日 | 日 | 休 | 3       | 11      |

| 看護師3  | 休 | 休 | 日 | 日 | 日 | 日 | 日 | 早 | 早 | 日 | 日 | 夜 | 明 | 夜 | 休 | 休 | 休 | 休 | 日 | 日 | 日 | 日 | 日 | 2       | 11      |

…

(以下省略)

  • 問題点
    6連続以上勤務、禁止連続パターンなど多くの制約が守られておらず、実用不可。

Claude sonnet 4の出力例

| 看護師 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 夜勤回数 | 休み回数 |
|--------|---|---|---|---|---|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----|----------|----------|
| 看護師1 | 日 | 日 | 休 | 日 | 日 | 休 | 日 | 早 | 休 | 夜 | 明 | 日 | 日 | 休 | 夜 | 明 | 休 | 日 | 日 | 休 | 日 | 早 | 休 | 夜 | 明 | 日 | 日 | 休 | 日 | 日 | 休 | 3 | 10 |
| 看護師2 | 早 | 休 | 日 | 日 | 休 | 日 | 日 | 休 | 夜 | 明 | 日 | 日 | 休 | 日 | 休 | 日 | 早 | 休 | 日 | 日 | 休 | 夜 | 明 | 日 | 日 | 休 | 日 | 日 | 休 | 早 | 日 | 2 | 10 |
| 看護師3 | 日 | 日 | 休 | 早 | 日 | 休 | 日 | 日 | 日 | 休 | 夜 | 明 | 日 | 日 | 休 | 夜 | 明 | 休 | 日 | 日 | 休 | 日 | 日 | 休 | 早 | 日 | 休 | 夜 | 明 | 日 | 日 | 3 | 10 |

途中省略

| 看護師24 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 夜 | 明 | 休 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 1 | 10 |
| 看護師25 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 日 | 夜 | 明 | 休 | 日 | 日 | 日 | 日 | 日 | 日 | 1 | 10 |		
  • 良かった点
    夜→明けのルールは反映

  • 問題点
    最長22連勤が発生するなど、連続勤務制約が無視されている。やはり実用不可。

chatGPT 5の出力例

看護師	8月1日	8月2日	8月3日	8月4日	8月5日	8月6日	8月7日	8月8日	8月9日	8月10日	8月11日	8月12日	8月13日	8月14日	8月15日	8月16日	8月17日	8月18日	8月19日	8月20日	8月21日	8月22日	8月23日	8月24日	8月25日	8月26日	8月27日	8月28日	8月29日	8月30日	8月31日	夜勤回数	休み回数
看護師1	日	休	休	日	休	休	日	日	休	夜	明	休	日	日	休	休	日	休	休	日	日	休	日	夜	明	休	休	日	日	休	3	13	
看護師2	休	夜	明	休	日	日	休	休	日	日	休	日	夜	明	休	休	日	日	休	休	日	日	休	日	休	夜	明	休	休	日	2	13	
看護師3	早	日	日	休	休	夜	明	休	日	休	日	日	休	休	日	早	日	日	夜	明	休	休	日	日	休	日	休	休	日	日	3	11	

途中省略

看護師24	休	日	日	休	夜	明	休	日	日	休	日	日	休	休	日	日	休	休	日	日	休	日	日	休	夜	明	休	休	日	日	3	12
看護師25	日	休	休	日	日	休	休	日	日	休	日	日	休	休	日	早	日	日	休	休	日	日	休	日	日	休	休	夜	明	休	2	12
日勤者数(日+早)	13	7	7	13	13	13	13	13	13	13	13	13	13	13	13	13	13	13	13	13	13	13	13	13	13	13	13	13	13	13	13	
夜勤者数(夜)	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	
  • 問題点
    夜勤回数と休日回数の集計が実シフトと大きくずれている
    8月31日分の勤務が出力されず実用不可

Geminiの出力例

名前	8/1 (金)	8/2 (土)	8/3 (日)	8/4 (月)	8/5 (火)	8/6 (水)	8/7 (木)	8/8 (金)	8/9 (土)	8/10 (日)	8/11 (月)	8/12 (火)	8/13 (水)	8/14 (木)	8/15 (金)	8/16 (土)	8/17 (日)	8/18 (月)	8/19 (火)	8/20 (水)	8/21 (木)	8/22 (金)	8/23 (土)	8/24 (日)	8/25 (月)	8/26 (火)	8/27 (水)	8/28 (木)	8/29 (金)	8/30 (土)	8/31 (日)	夜勤回数	休日回数
看護師1	日	日	休	夜	明	休	日	日	早	休	夜	明	休	日	日	休	日	休	日	早	日	休	夜	明	日	休	日	日	休	早	日	4	11
看護師2	夜	明	休	日	日	休	日	夜	明	日	休	日	日	休	日	夜	明	休	日	日	休	夜	明	休	日	日	休	日	日	休	夜	4	11
看護師3	休	日	日	休	夜	明	日	休	日	日	休	日	早	休	夜	明	休	日	日	休	日	日	休	日	早	休	日	早	休	日	休	4	11

途中省略

看護師24	休	日	日	休	日	休	日	日	休	日	休	早	日	休	日	日	休	日	休	日	日	休	日	休	日	日	早	休	日	休	日	2	12
看護師25	日	休	日	日	早	休	日	休	日	日	休	日	休	日	日	休	日	休	日	早	日	休	日	休	日	休	日	日	休	日	休	2	12
日勤者数	19	16	17	18	17	17	18	17	17	18	18	18	18	18	17	17	18	18	17	18	17	17	17	17	17	18	18	18	17	18	18		
早番者数	2	1	2	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1		
夜勤者数	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2		
  • 問題点
    chatGPT5同様に夜勤回数と休日回数の集計が実シフトと大きくずれている
    日付ごとの夜勤者数/日勤+早番数も実割当と一致せず頻繁に誤表示が多く実用不可

検証結果まとめ

  • AI各モデルともに、複雑な連続勤務・相性・男女比など多数の制約をすべて満たすシフト表を直接出力するのは難しい。
  • プロンプトをさらにブラッシュアップして改善を図れる可能性はあるものの、病棟師長に高度なプロンプト設計を期待するのは現実的ではない。結果として、「AIよりも、やはり自分でシフト表を作成するほうが安心」という結論に至るだろう。
  • 現状では、専用に設計・チューニングされた数理最適化モデルが、実務レベルの細かな運用ルールを確実に反映する最善策と言える。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?