1. HOME
  2. ソリューション
  3. スケジューリング

スケジューリング

シフトスケジューリングとは、シフト勤務を採用している現場における、ある一定の期間 (例えば 1 ヶ月) のシフトを作成する問題のことです。 数理計画の視点から見ると、シフト表の各マス目にシフトを割り当てる問題ということで、割当問題の一種と言うことができます。

シフト作成の際、法令の順守や必要人数の充足は当然考慮しなければなりません。しかし、それだけでは満足度の低いシフトとなってしまう可能性が高いです。 満足度の高いシフトを作成するためには、以下のような各企業・現場に固有の制約を考慮することになります。

  • 「夜勤」の取り扱い (病院の看護師のシフト作成 (ナーススケジューリング問題) においては非常に重要)
  • 就業開始・終了時間や休憩のタイミング
  • 時間帯ごとに業務を割り当てる (午前と午後という分け方が多いですが、細かい場合は 15 分単位)

数理計画法パッケージ Numerical Optimizer では、上記のような制約は問題構造に応じた数理モデルを構築することで考慮することができます。 また、Numerical Optimizer を利用したシフト作成は、次のように様々な場面で実際に活用されています。

生産スケジューリング

生産スケジューリングとは、工場など現場における作業計画を決定する問題のことです (もう少し広い意味で用いられる場合もありますがここでは省略します)。 具体的には、資源制約 (機械の性能等) の範囲内で在庫の具合を気にしながら、納期遅れを最小にする機械の稼働計画を決定する問題等が挙げられます。 また、少し特殊な例としては 資材切り出し問題 が挙げられ、Numerical Optimizer を利用したアプローチをしたこともあります。

この問題もシフトスケジューリングと同様、現場毎に様々な制約条件が存在します。 Numerical Optimizer を用いたアプローチでは、解きたい問題を数理モデルとして構築し、数理モデルから得られた解を利用することで課題を解決します。

問題解決までのプロセス

数理計画問題としての一般的なアプローチ方法は こちら にありますので、併せてご覧ください。

以下は問題解決のための一般的な流れになります。

  1. 現実の課題の整理
  2. 数理モデルの構築
  3. プロトタイプ作成 (数理モデルの検証)
  4. システム化

ここではシフトスケジューリングを例にもう少し具体的にご紹介します。 なお、株式会社NTTデータ数理システムはこちらのプロセスのどの部分からでもお手伝いさせて頂きますのでご相談ください。

(1) 現実の課題の整理

シフト作成の担当者にヒアリングしながら、現状考慮しているルール (制約条件) の洗い出しを行います。 例えば、以下の様なルールを洗い出します。

  • ある時間帯はリーダーが必ずいなければいけない
  • ある作業の後は 45 分以上空けなければいけない
  • 一週間で○○時間以上△△時間以下の勤務時間でなければいけない

(2) 数理モデルの構築

(1) で洗い出したルールを数理モデルの形で表現します。

Numerical Optimizer を用いる場合は、モデリング言語 SIMPLE を用いて数理モデルを表現します。 「表現した数理モデルから最適解を求めるためにどのような (数学的な) 処理をするのか」というアルゴリズムの部分はユーザーの方は意識する必要はありません。

ここは特に数理計画のノウハウを必要としますので、不安な方は株式会社NTTデータ数理システムにお任せください。

(3) プロトタイプ作成 (数理モデルの検証)

(1) の作業のみではたいていの場合全てのルールを洗い出すことは不可能です。 そもそも人間の頭は非常によくできていて、特に熟練のシフト作成者は、自分でも意識していない様々なルールを考慮しながらシフト作成をしているものです。 このため、シフト作成者が最初にプロトタイプで得られたシフトを見た際に、無意識の内に考慮している要素が反映されていないため「何かおかしい」と感じられるケースが多いようです。

ここでは、ヒアリング等を通して「何かおかしい」と感じた理由から無意識に考慮していたルールを洗い出すことになります。 そして、新たに洗い出されたルールを数理モデルに反映させ、より現実に近いシフトの作成を目指します。

(4) システム化

Numerical Optimizer は構築した数理モデルを簡単に実行形式のロードモジュール ( exe ファイルや DLL ファイル) にすることができます。

このロードモジュールは Excel からの呼び出しや現在ご利用のシステムへの組み込み等が可能です。 例えば現在担当者の方が利用している Excel があれば、そこに「シフト自動作成ボタン」を 1 個追加することで、これまでの運用とほぼ変わらない状態で自動化することができます。