IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

<>
  • 特開-算出方法及び算出プログラム 図1
  • 特開-算出方法及び算出プログラム 図2
  • 特開-算出方法及び算出プログラム 図3
  • 特開-算出方法及び算出プログラム 図4
  • 特開-算出方法及び算出プログラム 図5
  • 特開-算出方法及び算出プログラム 図6
  • 特開-算出方法及び算出プログラム 図7
  • 特開-算出方法及び算出プログラム 図8
  • 特開-算出方法及び算出プログラム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024098567
(43)【公開日】2024-07-24
(54)【発明の名称】算出方法及び算出プログラム
(51)【国際特許分類】
   G06Q 10/109 20230101AFI20240717BHJP
【FI】
G06Q10/109
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023002121
(22)【出願日】2023-01-11
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100087480
【弁理士】
【氏名又は名称】片山 修平
(72)【発明者】
【氏名】谷中 聖志
(72)【発明者】
【氏名】大塚 浩
【テーマコード(参考)】
5L010
5L049
【Fターム(参考)】
5L010AA13
5L049AA13
(57)【要約】
【課題】最適解の算出時間を低減する算出方法及び算出プログラムを提供することを目的とする。
【解決手段】算出方法は、スケジュール表に対する過去の修正履歴に基づいて、前記スケジュール表に含まれる複数のコマのいずれかである第1コマの修正に伴い、前記複数のコマから前記第1コマを除いた残りの第2コマが修正される確率を算出し、前記第1コマが実際に修正された場合に、前記残りの第2コマから、前記第1コマの実際の修正に応じて修正が発生する確率が高い一部の第2コマを特定し、前記一部の第2コマを用いて、前記スケジュール表を修正する際の制約を満たす最適解を算出する、処理をコンピュータが実行する。
【選択図】図6
【特許請求の範囲】
【請求項1】
スケジュール表に対する過去の修正履歴に基づいて、前記スケジュール表に含まれる複数のコマのいずれかである第1コマの修正に伴い、前記複数のコマから前記第1コマを除いた残りの第2コマが修正される確率を算出し、
前記第1コマが実際に修正された場合に、前記残りの第2コマから、前記第1コマの実際の修正に応じて修正が発生する確率が高い一部の第2コマを特定し、
前記一部の第2コマを用いて、前記スケジュール表を修正する際の制約を満たす最適解を算出する、
処理をコンピュータが実行する算出方法。
【請求項2】
前記修正履歴を機械学習した学習済モデルに基づいて、前記残りの第2コマが修正される確率を算出する、
ことを特徴とする請求項1に記載の算出方法。
【請求項3】
前記最適解を算出できなかった場合、前記修正が発生する確率の高さを規定する閾値確率を前記閾値確率より低い別の閾値確率に変更して、前記最適解を算出する、
ことを特徴とする請求項1又は2に記載の算出方法。
【請求項4】
前記閾値確率を前記別の閾値確率に変更する度に、前記複数のコマのコマ数に対する前記一部の第2コマのコマ数で表される所定割合を含む判定値を算出し、
前記判定値に基づいて、前記閾値確率を再び前記別の閾値確率に変更するか否かを判定する、
ことを特徴とする請求項3に記載の算出方法。
【請求項5】
スケジュール表に対する過去の修正履歴に基づいて、前記スケジュール表に含まれる複数のコマのいずれかである第1コマの修正に伴い、前記複数のコマから前記第1コマを除いた残りの第2コマが修正される確率を算出し、
前記第1コマが実際に修正された場合に、前記残りの第2コマから、前記第1コマの実際の修正に応じて修正が発生する確率が高い一部の第2コマを特定し、
前記一部の第2コマを用いて、前記スケジュール表を修正する際の制約を満たす最適解を算出する、
処理をコンピュータに実行させるための算出プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本件は、算出方法及び算出プログラムに関する。
【背景技術】
【0002】
病院における看護師の勤務シフト表の作成はベテランの看護師や看護部長といった担当者によって手作業で行われることがある。担当者は看護師の勤務希望や様々な制約条件(例えば勤務時間に関する法令や職務能力など)を考慮して勤務シフト表を作成する。
【0003】
看護師からの勤務希望の急な変更が発生すると、勤務シフト表を再作成する手間が担当者に発生する。再作成の手間を抑制するためには、修正量はできるだけ少なく抑えることが望ましい。このような、あらかじめ作成された計画を、修正量をできるだけ少なく抑えるように修正する計画修正技術は知られている(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平9-244706号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、現実の問題を数式(数理モデル)として定義し、制約条件を満たしつつ、コストの最小化や利益が最大化されるような変数の値を最適解として算出する数理最適化と呼ばれる手法がある。数理最適化を利用すれば、上述した勤務シフト表といったスケジュール表を動的に作成することができる。
【0006】
しかしながら、数理最適化を利用してスケジュール表を再作成する場合、再計算に要する計算量が指数的に増大し、スケジュール表を修正する際の制約条件を満たす最適解を短時間で算出することが難しい。
【0007】
具体的には、ある看護師の勤務希望に変更が発生すると、その変更が他の看護師の勤務希望の変更を誘発する可能性がある。このような一次的な変更に起因する二次的な変更をも考慮して、制約条件を満たしながら最適解の算出時間を低減することは困難である。上述した計画修正技術には、一次的な変更に起因する二次的な変更の影響範囲を選択する基準がないため、再計算が短時間で終了しない可能性がある。
【0008】
そこで、1つの側面では、最適解の算出時間を低減する算出方法及び算出プログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
1つの実施態様では、算出方法は、スケジュール表に対する過去の修正履歴に基づいて、前記スケジュール表に含まれる複数のコマのいずれかである第1コマの修正に伴い、前記複数のコマから前記第1コマを除いた残りの第2コマが修正される確率を算出し、前記第1コマが実際に修正された場合に、前記残りの第2コマから、前記第1コマの実際の修正に応じて修正が発生する確率が高い一部の第2コマを特定し、前記一部の第2コマを用いて、前記スケジュール表を修正する際の制約を満たす最適解を算出する、処理をコンピュータが実行する。
【発明の効果】
【0010】
最適解を算出するまでの時間を低減することができる。
【図面の簡単な説明】
【0011】
図1図1は情報処理装置のハードウェア構成の一例である。
図2図2は情報処理装置の機能構成の一例である。
図3図3は修正履歴データの一例である。
図4図4は特徴量と目的変数の一例を説明する図である。
図5図5(a)は予測モデルの一例である。図5(b)はノードからの出力値とノードへの入力値を表す数式である。
図6図6は高確率コマの一例を説明する図である。
図7図7は予測モデルの生成に関する動作の一例を示すフローチャートである。
図8図8は予測モデルの評価に関する動作の一例を示すフローチャートである。
図9図9は最適解の算出に関する動作の一例を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、本件を実施するための形態について図面を参照して説明する。
【0013】
まず、図1を参照して、算出方法を実行する情報処理装置100のハードウェア構成について説明する。図1に示すように、情報処理装置100は、プロセッサとしてのCPU(Central Processing Unit)100Aと、メモリとしてのRAM(Random Access Memory)100B及びROM(Read Only Memory)100Cを含んでいる。情報処理装置100は、ネットワークI/F(インタフェース)100D及びHDD(Hard Disk Drive)100Eを含んでいる。HDD(Hard Disk Drive)100Eに代えて、SSD(Solid State Drive)を採用してもよい。
【0014】
情報処理装置100は、必要に応じて、入力I/F100F、出力I/F100G、入出力I/F100H、ドライブ装置100Iの少なくとも1つを含んでいてもよい。CPU100Aからドライブ装置100Iまでは、内部バス100Jによって互いに接続されている。すなわち、情報処理装置100はコンピュータによって実現することができる。
【0015】
入力I/F100Fには入力装置11が接続される。入力装置11としては例えばキーボードやマウス、タッチパネルなどがある。出力I/F100Gには表示装置12が接続される。表示装置12としては例えば液晶ディスプレイなどがある。入出力I/F100Hには半導体メモリ13が接続される。半導体メモリ13としては、例えばUSB(Universal Serial Bus)メモリやフラッシュメモリなどがある。入出力I/F100Hは半導体メモリ13に記憶された算出プログラムを読み取る。入力I/F100F及び入出力I/F100Hは例えばUSBポートを備えている。出力I/F100Gは例えばディスプレイポートを備えている。
【0016】
ドライブ装置100Iには可搬型記録媒体14が挿入される。可搬型記録媒体14としては、例えばCD(Compact Disc)-ROM、DVD(Digital Versatile Disc)といったリムーバブルディスクがある。ドライブ装置100Iは可搬型記録媒体14に記録された算出プログラムを読み込む。ネットワークI/F100Dは例えばLAN(Local Area Network)ポートや通信回路などを備えている。
【0017】
RAM100BにはROM100C、HDD100E、半導体メモリ13の少なくとも1つに記憶された算出プログラムがCPU100Aによって一時的に格納される。RAM100Bには可搬型記録媒体14に記録された算出プログラムがCPU100Aによって一時的に格納される。格納された算出プログラムをCPU100Aが実行することにより、CPU100Aは後述する各種の機能を実現し、また、後述する各種の処理を実行する。なお、算出プログラムは後述するフローチャートに応じたものとすればよい。
【0018】
図2を参照して、情報処理装置100の機能構成について説明する。なお、図2では情報処理装置100の機能の要部が示されている。
【0019】
図2に示すように、情報処理装置100は記憶部110、処理部120、入力部130、及び出力部140を備えている。記憶部110は上述したRAM100BやHDD100Eなどによって実現することができる。処理部120は上述したCPU100Aによって実現することができる。入力部130は上述した入力I/F100Fによって実現することができる。出力部140は上述した出力I/F100Gによって実現することができる。したがって、記憶部110、処理部120、入力部130、及び出力部140は互いに接続されている。
【0020】
ここで、記憶部110は過去データ記憶部111、抽出データ記憶部112、予測モデル記憶部113、及び影響範囲記憶部114を含んでいる。過去データ記憶部111、抽出データ記憶部112、予測モデル記憶部113、及び影響範囲記憶部114の少なくとも1つを情報処理装置100と異なる別の情報処理装置(不図示)に設けてもよい。この場合、情報処理装置100が別の情報処理装置にアクセスし、過去データ記憶部111や抽出データ記憶部112等の記憶内容を参照してもよい。
【0021】
過去データ記憶部111はスケジュール表に対する過去の修正履歴データを記憶する。スケジュール表は、例えば病院における看護師の勤務シフト表である。スケジュール表は病院に勤務する医師の手術の予定表や、交通機関の運行予定表などであってもよい。過去データ記憶部111は、図3に示すように、複数の修正履歴データ20を記憶する。修正履歴データ20は、修正前のスケジュール表21、一次修正後のスケジュール表22、及び二次修正後のスケジュール表23を含んでいる。スケジュール表21,22,23はいずれも3行3列に配置された複数のコマ24を含んでいる。複数のコマ24には行方向に曜日属性が割り当てられ、列方向に看護師ID(Identifier)が割り当てられている。なお、行数及び列数は一例であって、複数のコマ24は例えば5行6列などで配置されていてもよい。
【0022】
スケジュール表21の3行3列目に配置されたコマ24には修正前コマとして夜勤が登録されている。すなわち、看護師N3は水曜日の勤務形態として夜勤を希望している。例えば、看護師N3が水曜日の勤務形態を夜勤から休みに修正すると、スケジュール表22に示すように、3行3列目に配置されたコマ24には一次修正コマとして休みが登録される。3行3列目に一次修正コマとして配置された単一のコマ24は第1コマの一例である。
【0023】
3行3列目に配置されたコマ24が修正されると、スケジュール表23に示すように、複数のコマ24から3行3列目に配置されたコマ24を除いた残りのコマ24が特定される。すなわち、1行1列目、1行2列目、・・・、3行2列目の8つのコマ24が特定される。8つのコマ24は残りの第2コマの一例である。そして、1行1列目、1行3列目、2行1列目、2行2列目、2行3列目、3行2列目の6つのコマ24は、3行3列目に配置されたコマ24の修正に応じて修正が発生する確率が高い二次修正コマとして特定される。6つのコマ24は一部の第2コマの一例である。
【0024】
二次修正コマは、例えば看護師N1,N2,N3の勤務希望に応じて、スケジュール表を修正する担当者によって特定されて修正される。詳細は後述するが、情報処理装置100による最適解の再計算によって二次修正コマが特定されて修正されてもよい。本実施形態であれば、例えば1行1列目に配置されたコマ24に登録された夜勤は、3行3列目に配置されたコマ24の修正に基づいて、日勤に修正される。このように、過去データ記憶部111は過去の複数の修正履歴データ20を記憶する。
【0025】
抽出データ記憶部112は過去の複数の修正履歴データ20から抽出した抽出データを記憶する。抽出データは、図4に示すように、看護師IDと曜日の組合せごとに、特徴量xと目的変数yを含んでいる。特徴量xはコマの情報P1と制約条件P2を含んでいる。コマの情報P1は、コマの行番号、コマの列番号、及び修正前の勤務形態(具体的には休みや日勤など)といった複数の属性を含んでいる。また、コマの情報P1は、修正コマ(具体的には一次修正コマ)の行番号、修正コマの列番号、及び修正コマの勤務形態といった複数の属性を含んでいる。勤務形態「0」は否定を表し、勤務形態「1」は肯定を表している。
【0026】
制約条件P2は、所属チームが修正コマの看護師と同じか否か、ヘッドナース資格といったスキルの有無、看護師が新人か否か、看護師の週の総労働時間といった属性を含んでいる。制約条件「0」は否定を表し、制約条件「1」は肯定を表す。このように、コマの情報P1は、図3に示すスケジュール表21,22に基づいて抽出される。一方、制約条件P2は、例えば過去データ記憶部111とは別の記憶部(不図示)に格納された看護師の属性情報や人事情報、労務情報などから抽出すればよい。
【0027】
なお、目的変数Pは、図3に示すスケジュール表23に基づいて抽出される。例えば、上述した1行1列目、1行3列目、2行1列目、2行2列目、2行3列目、3行2列目の6つのコマ24は二次修正コマとして特定される。このため、二次修正コマの有無「1」は二次修正コマであることを表し、二次修正コマの有無「0」は二次修正コマでないことを表す。
【0028】
予測モデル記憶部113は二次修正コマとして特定される可能性の高いコマ24を予測する予測モデルを記憶する。予測モデルは抽出データ記憶部112が記憶する抽出データに基づいて生成される。すなわち、抽出データが教師データ(又は訓練データ)として利用され、機械学習されることにより学習済モデルとしての予測モデルが生成される。予測モデルは、図5(a)に示すように、特徴量xと目的変数yと複数の中間層y´とによって表現される。特徴量xと目的変数yとの間に複数の中間層y´が配置される。このように、予測モデルはニューラルネットワークを多層化したディープラーニング(深層学習)によって表現される。
【0029】
ここで、図5(a)及び(b)に示す重み「w」はノード(具体的にはニューロン)30間の重みを表している。重み「w」は抽出データに基づいてyの真値と予測値の誤差関数が最小になるように決定される。値「u」は前のノード30からの出力値(又は対象ノードへの入力値)の総和を表し、値「h」は次のノード30への入力値(又は対象ノードからの出力値)を表している。関数「f」は活性化関数を表している。活性化関数はReLU(Rectified Linear Unit)関数やtanh関数、シグモイド関数など公知の関数を採用することができる。このような予測モデルに特徴量xと目的変数yが入力されると、yの真値と予測値の誤差関数が最小になるように重み「w」が決定される。
【0030】
影響範囲記憶部114は処理対象のスケジュール表に含まれる特徴量と予測モデルとを利用して二次変更コマとして修正が発生する確率が高いコマを影響範囲として記憶する。例えば、図6に示すように、処理対象のスケジュール表に含まれる複数のコマ34のいずれかである修正対象のコマ34Tを除いた残りのコマ34R,34Hから閾値確率「0.5」以上の確率が算出された一部のコマ34Hが影響範囲として特定される。影響範囲記憶部114はこのような影響範囲を記憶する。
【0031】
図2に戻り、処理部120は、モデル生成部121、コマ特定部122、及び最適解算出部123を含んでいる。モデル生成部121は過去データ記憶部111から修正履歴データ20を取得し、修正履歴データ20から特徴量xと目的変数yを抽出して抽出データ記憶部112に格納する。また、モデル生成部121は抽出データ記憶部112から抽出データを取得すると、抽出データに基づいて予測モデルを生成し、予測モデルを予測モデル記憶部113に格納する。
【0032】
コマ特定部122は、処理対象のスケジュール表に含まれる複数のコマのいずれかの修正に伴い、複数のコマから複数のコマのいずれかを除いた残りのコマが修正される確率を算出する。コマ特定部122は複数のコマのいずれかが実際に修正された場合、残りのコマから、コマの実際の修正に応じて修正が発生する確率が高い一部のコマを特定する。最適解算出部123はこの一部のコマを用いて、処理対象のスケジュール表を修正する際の制約を満たす最適解を算出する。なお、モデル生成部121、コマ特定部122、及び最適解算出部123の詳細は後述する。
【0033】
次に、図7乃至図9を参照して、情報処理装置100の動作について説明する。
【0034】
まず、図7を参照して、予測モデルの生成について説明する。図7に示すように、モデル生成部121は修正履歴データ20を取得する(ステップS1)。より詳しくは、モデル生成部121は過去データ記憶部111が記憶する複数の修正履歴データ20を取得する。
【0035】
修正履歴データ20を取得すると、モデル生成部121は特徴量xと目的変数yを抽出する(ステップS2)。例えば、モデル生成部121は修正履歴データ20に含まれる複数のスケジュール表21,22,23のそれぞれに含まれる複数のコマ24の行番号や列番号、コマ24に登録された勤務形態(例えば日勤や夜勤など)、看護師の属性に基づいて、特徴量xと目的変数yを抽出する。特徴量xと目的変数yを抽出すると、モデル生成部121は特徴量xと目的変数yを含む抽出データを抽出データ記憶部112に格納する。これにより、抽出データ記憶部112は抽出データを記憶する(図4参照)。
【0036】
次いで、モデル生成部121は機械学習を実行し(ステップS3)、予測モデルを生成する(ステップS4)。より詳しくは、モデル生成部121は抽出データ記憶部112が記憶する抽出データを取得し、抽出データに含まれる特徴量xと目的変数yと公知の深層学習手法とを利用して、予測モデルを生成する。予測モデルを生成すると、モデル生成部121は予測モデルを予測モデル記憶部113に格納し(ステップS5)、処理を終了する。これにより、予測モデル記憶部113は様々な重み「w」が関連付けられた予測モデルを記憶する。
【0037】
次に、図8を参照して、予測モデルの評価について説明する。図8に示すように、モデル生成部121は修正履歴データ20を取得する(ステップS11)。より詳しくは、モデル生成部121は過去データ記憶部111が記憶する複数の修正履歴データ20の中から評価対象の修正履歴データ20を取得する。評価対象の修正履歴データ20は、例えば予測モデルの生成に使用しなかったデータである。
【0038】
修正履歴データ20を取得すると、モデル生成部121は特徴量xと目的変数yを抽出する(ステップS12)。ステップS12の処理は基本的にステップS2の処理と同様であるため、詳細な説明は省略する。次いで、モデル生成部121は予測モデルを取得し(ステップS13)、予測モデルを評価する(ステップS14)。より詳しくは、モデル生成部121は予測モデル記憶部113から予測モデルを取得し、予測モデルに特徴量xを入力して予測モデルを介した目的変数yを取得する。モデル生成部121は、予測モデルを介した目的変数yとステップS12の処理で抽出した目的変数yとの対比結果に基づいて、予測率を算出する。予測率を算出することにより、モデル生成部121は予測モデルを評価する。
【0039】
予測モデルを評価すると、モデル生成部121は予測率が所定値以上であるか否かを判定する(ステップS15)。所定値は、例えば80%や90%など、予測モデルの高い予測精度を判定できる数値であることが望ましい。予測率が所定値以上でない場合(ステップS15:NO)、モデル生成部121は、入力装置11からの指示に基づいて、制約条件を変更し(ステップS16)、図7に示すステップS2の処理に戻る。
【0040】
制約条件の変更は、予測率を向上できれば、制約条件の追加であってもよいし、緩和であってもよい。例えば予測率の向上と計算量の低減の両方を考慮して、制約条件の追加と緩和のいずれかを選択すればよい。これにより、予測モデルが改めて生成されて予測モデル記憶部113に格納される。
【0041】
予測率が所定値以上である場合(ステップS15:YES)、モデル生成部121は処理を終了する。すなわち、予測モデルの評価が終了する。これにより、予測モデル記憶部113には所定値以上の予測率を有する高い予測精度の予測モデルが格納される。
【0042】
次に、図9を参照して、最適解の算出などについて説明する。図9に示すように、コマ特定部122は、まず、修正が発生したか否かを判定する(ステップS21)。例えば、コマ特定部122は、過去データ記憶部111に記憶された複数のスケジュール表21のそれぞれに含まれる複数のコマ24のいずれかが実際に修正されたか否かを判定する。コマ特定部122は、情報処理装置100とは別の情報処理装置に管理されたスケジュール表を取得し、取得したスケジュール表に含まれる複数のコマのいずれかが実際に修正されたか否かを判定してもよい。修正が発生していない場合(ステップS21:NO)、コマ特定部122はステップS21の処理を繰り返す。すなわち、コマ特定部122はコマが修正されるまで後続の処理を待機する。
【0043】
修正が発生すると(ステップS21:YES)、コマ特定部122は特徴量を抽出する(ステップS22)。この場合、二次修正コマは特定されていないため、コマ特定部122は目的変数を抽出せずに、修正前コマや一次修正コマなどを含む特徴量を単独で抽出する。なお、コマ特定部122は上述したステップS2の処理と同様に特徴量を抽出することができる。
【0044】
特徴量を抽出すると、コマ特定部122は予測モデル記憶部113から予測モデルを取得する(ステップS23)。上述したように、コマ特定部122が取得する予測モデルは過去の修正履歴データ20に基づいて特定された重み「w」が関連付けられている。予測モデルを取得すると、コマ特定部122は各コマの確率を算出する(ステップS24)。より詳しくは、コマ特定部122はステップS22の処理で抽出した特徴量をステップS23で取得した予測モデルに入力して、各コマの確率を算出する。これにより、予測モデルの目的変数yに0から1の範囲に属する確率が現れる。このように、特徴量を予測モデルに入力すれば、コマ特定部122は各コマの確率を算出することができる。
【0045】
これにより、例えば1行1列目に配置されたコマの修正発生確率が0.8、1行2列目に配置されたコマの修正発生確率が0.2などと算出される(図6参照)。なお、3行3列目に配置されたコマが実際に修正された場合には、そのコマは修正されないため、修正発生確率は0.0として算出される(図6参照)。
【0046】
各コマの確率を算出すると、コマ特定部122は各コマの確率が閾値確率以上であるか否かをコマごとに判定する(ステップS25)。コマの確率が閾値確率以上である場合(ステップS25:YES)、コマ特定部122は閾値確率以上の確率を有するコマを高確率コマと特定する(ステップS26)。一方、コマの確率が閾値確率以上でない場合(ステップS25:NO)、コマ特定部122はステップS26の処理をスキップする。この場合、コマ特定部122は閾値確率以上の確率を有しないコマを低確率コマと特定してもよい。
【0047】
これにより、例えば、閾値確率として0.5が設定されている場合、1行1列目、1行3列目、2行1列目、2行2列目、2行3列目、3行2列目の6つのコマが高確率コマとして特定される(図6参照)。1行2列目と3行目1列目の2つのコマの確率は0.2であるため、高確率コマとして特定されない、又は低確率コマとして特定される。コマ特定部122はこのように特定した高確率コマを影響範囲として影響範囲記憶部114に格納する。影響範囲記憶部114は複数のコマのいずれかに対する実際の修正に応じて修正が発生する確率が高い一部のコマである高確率コマを影響範囲として記憶する。
【0048】
コマ特定部122がステップS21からステップS26までの処理を終了すると、最適解算出部123は最適解を算出する(ステップS27)。より詳しくは、最適解算出部123は、影響範囲記憶部114から影響範囲を取得し、影響範囲としての高確率コマを用いて、スケジュール表を修正する際の制約条件を満たす最適解を算出する。このように、複数のコマのいずれかに対する実際の修正に応じて修正が発生する確率が高い一部のコマである高確率コマを用いて最適解を算出するため、最適解の算出時間の低減を図ることができる。すなわち、最適解を算出する際の計算量が低減し、最適解の算出時間を短縮することができる。
【0049】
ここで、最適解の算出を開始しても、数理最適化においては、制約条件の全てを満たす最適解を算出できない場合がある。例えば、本実施形態における閾値確率が0.9である場合、スケジュール表に含まれる全てのコマの修正発生確率は閾値確率を下回る。このように、制約条件の全てを満たす最適解を算出できない場合、最適解算出部123は実行可能(Feasible)でないと判断し(ステップS28:NO)、所定の判定値を算出する(ステップS29)。所定の判定値は、複数の個別判定値の総和であって、具体的には、前回の判定値にスケジュール表に含まれる複数のコマのコマ数に対する高確率コマのコマ数で表されるコマ割合を加算した数値である。例えば、スケジュール表に含まれる複数のコマのコマ数が9個であって、高確率コマのコマ数が0個である場合、判定値は0となる。
【0050】
判定値を算出すると、最適解算出部123は判定値が1以下であるか否かを判断する(ステップS30)。判定値が1以下である場合(ステップS30:YES)、最適解算出部123は閾値確率を別の閾値確率に変更する(ステップS31)。具体的には、最適解算出部123は閾値確率を単位確率分減らした別の閾値確率に変更する。閾値確率が0.9であって、単位確率が0.1であれば、別の閾値確率は0.8になる。閾値確率を別の閾値確率に変更すると、最適解算出部123はステップS25の処理を再び実行する。
【0051】
これにより、1行1列目に配置されたコマの修正発生確率と1行3列目に配置されたコマの修正発生確率がいずれも0.8であるため(図6参照)、この2つのコマが高確率コマとして特定される。これにより、判定値は前回の判定値である0にコマ割合である9分の2(2/9)が加算されて、新たな判定値として9分の2が算出される。新たな判定値は依然として1以下であるため、同様の処理が繰り返される。このような処理により、最適解算出部123は最適解を繰り返し算出する。この場合、最適解算出部123は1行1列目に配置されたコマと1行3列目に配置されたコマを特定することができる。このため、最適解算出部123は実行可能であると判断し(ステップS28:YES)、特定したこの2つのコマを二次変更コマと決定し(ステップS32)、処理を終了する。
【0052】
なお、ステップS30の処理において、判定値が1より大きい場合(ステップS30:NO)、最適解算出部123はエラー処理を実行し(ステップS33)、処理を終了する。具体的には、最適解算出部123は最適解に関し解なしと判断してエラー処理を実行する。例えば、閾値確率が徐々に小さくなると、所定の判定値はコマ割合の総和であるため、徐々に大きくなる。これにより、判定値が1を超える場合がある。このような場合、最適解算出部123はエラー処理を実行し、処理を終了する。
【0053】
以上説明したように、本実施形態によれば、一次修正に応じて二次修正が発生する可能性が高い高確率コマを特定し、特定した高確率コマを用いて最適解が算出される。これにより、高確率コマを用いずに最適解を算出する場合に比べて、最適解の算出時間を短縮することができる。
【0054】
以上、本発明の好ましい実施形態について詳述したが、本発明に係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。例えば、上述した実施形態では、教師データを利用した機械学習を説明したが、教師データを利用しない強化学習といった機械学習を採用してもよい。また、上述したステップS21の処理はステップS24,S25の処理の間に実行されてもよい。
【符号の説明】
【0055】
100 情報処理装置
110 記憶部
111 過去データ記憶部
112 抽出データ記憶部
113 予測モデル記憶部
114 影響範囲記憶部
120 処理部
121 モデル生成部
122 コマ特定部
123 最適解算出部
図1
図2
図3
図4
図5
図6
図7
図8
図9