(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024171517
(43)【公開日】2024-12-12
(54)【発明の名称】情報処理システム及び情報処理方法
(51)【国際特許分類】
G06N 99/00 20190101AFI20241205BHJP
G06Q 10/04 20230101ALI20241205BHJP
【FI】
G06N99/00 180
G06Q10/04
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023088567
(22)【出願日】2023-05-30
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001689
【氏名又は名称】青稜弁理士法人
(72)【発明者】
【氏名】加藤 晶子
(72)【発明者】
【氏名】永井 聡
【テーマコード(参考)】
5L010
5L049
【Fターム(参考)】
5L010AA04
5L049AA04
5L049CC42
(57)【要約】
【課題】計画を立案するための大規模な最適化問題を解く場合に、精度の良い解を短時間で得られる可能性を向上できる情報処理システム及び情報処理方法を提供する。
【解決手段】情報処理システムは、計画を立案するための最適化問題である原問題に対する第1制約条件に含まれない、ハイパパラメータを含む第2制約条件を設定し、第2制約条件の下で原問題を簡易化した数理モデルの最適化を実行したときの評価値をより良くするハイパパラメータの値を推定する推定処理を行い、推定したハイパパラメータの値を用いて原問題の解を計算し、原問題の解を適用した計画案を出力する。
【選択図】
図1A
【特許請求の範囲】
【請求項1】
計画を立案するための最適化問題を処理する演算装置を含む計算機を含む情報処理システムであって、
前記演算装置は、
前記最適化問題である原問題に対する第1制約条件に含まれない、ハイパパラメータを含む第2制約条件を設定し、
前記第2制約条件の下で前記原問題を簡易化した数理モデルの最適化を実行したときの評価値をより良くするハイパパラメータの値を推定する推定処理を行い、推定した前記ハイパパラメータの値を用いて前記原問題の解を計算し、前記原問題の解を適用した計画案を出力する、
ように構成された、
情報処理システム。
【請求項2】
請求項1に記載の情報処理システムにおいて、
制約条件と、当該制約条件を前記原問題及び前記数理モデルの最適化の何れかに適用するか否かを示す情報と、を含む制約管理情報が格納された記憶装置を備え、
前記演算装置は、
前記制約管理情報に基づいて、前記原問題に適用する前記第1制約条件の一部又は全部を設定し、前記数理モデルの最適化に適用する前記第2制約条件を設定する、
ように構成された、
情報処理システム。
【請求項3】
請求項1に記載の情報処理システムにおいて、
制約条件と、当該制約条件を前記原問題及び前記数理モデルの最適化の何れかに適用するか否かを示すフラグ情報と、を含む制約管理情報が格納された記憶装置と、
前記演算装置に情報を入力可能な情報入力装置と、
を備え、
前記演算装置は、
前記情報入力装置によって入力されたフラグ情報を設定するための情報に基づいて、前記フラグ情報が前記制約条件を前記原問題及び前記数理モデルの最適化の何れかに適用するかを示すように設定し、
設定した前記フラグ情報に基づいて、前記原問題に適用する前記第1制約条件の一部又は全部を設定し、前記数理モデルに適用する前記第2制約条件を設定する、
ように構成された、
情報処理システム。
【請求項4】
請求項1に記載の情報処理システムにおいて、
前記演算装置は、
前記数理モデルは、バイナリ変数を用いて定式化した前記原問題のバイナリ変数を実数に変えることにより簡易化した数理モデルである、
情報処理システム。
【請求項5】
請求項1に記載の情報処理システムにおいて、
前記演算装置は、
前記推定処理を、前記ハイパパラメータの値と前記ハイパパラメータの値が設定された第2制約条件下で前記数理モデルの最適化を実行することにより計算される評価値との複数のデータセットを計算し、前記複数のデータセットに基づいて、前記評価値をより良くするハイパパラメータの値を推定することにより、行う、
ように構成された、
情報処理システム。
【請求項6】
請求項5に記載の情報処理システムにおいて、
前記演算装置は、
機会学習及びカーブフィッティングの何れかを用いて、前記評価値をより良くするハイパパラメータの値を推定する、
ように構成された、
情報処理システム。
【請求項7】
請求項5に記載の情報処理システムにおいて、
前記演算装置は、
ブラックボックス最適化を用いることで、前記評価値をより良くするハイパパラメータの値を推定する、
ように構成された、
情報処理システム。
【請求項8】
請求項5に記載の情報処理システムにおいて、
前記演算装置は、ベイズ最適化によって、前記複数のデータセットを取得し、前記評価値をより良くするハイパパラメータの値を推定する、
ように構成された、
情報処理システム。
【請求項9】
請求項5に記載の情報処理システムにおいて、
前記演算装置は、
前記複数のデータセットに基づいて、カーブフィッティングを行うことにより得た曲線に基づいて、前記評価値をより良くするハイパパラメータの値を推定する、
ように構成された、
情報処理システム。
【請求項10】
計画を立案するための最適化問題を処理する演算装置を含む計算機を用いた情報処理方法であって、
前記演算装置によって、
前記最適化問題である原問題に対する第1制約条件に含まれない、ハイパパラメータを含む第2制約条件を設定し、
前記第2制約条件の下で前記原問題を簡易化した数理モデルの最適化を実行したときの評価値をより良くするハイパパラメータの値を推定する推定処理を行い、推定した前記ハイパパラメータの値を用いて前記原問題の解を計算し、前記原問題の解を適用した計画案を出力する、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム及び情報処理方法に関する。
【背景技術】
【0002】
公共交通機関では、計画されたタイムテーブルを遂行するために、人員や機材などを運用するためのルートを事前に計画し、それに沿って運行している。計画立案作業は手動で行われていることが多いが、機械的な処理が可能になれば、脱属人的かつ客観的指標に基づいた計画立案を行うことができるため、自動化のニーズが高まっている。
【0003】
実社会の大規模な最適化問題を高速で解くには、例えばイジングモデルなどの「相互作用モデル」で問題を記述し、CMOSアニーリングのような「最適化問題専用計算技術」を用いて計算を実行する方法が考えられる。しかし、公共交通機関の最適化問題では膨大な規模の変数を扱うことになり、真の最適解を得るのは難しく、できる限り真の最適解に近づけるためにモデルの作り方や解き方をある程度工夫しなければならない。例えば、公共交通機関の業務遂行のための計画立案技術として、特許文献1の技術がある。
【0004】
この特許文献1の技術は、ソフト制約条件の設定と優先度及び各制約条件の重みのチューニングを行うための情報処理装置、情報処理方法及びコンピュータプログラムを提供する。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1の技術は、適用対象やパラメータチューニングに関して明示された制約間の重みのチューニングを行うことができる。しかし、与えられた制約条件間の重みのチューニングだけでは公共交通機関のような問題規模が膨らみやすい問題の精度を上げるには不十分であり、問題そのものの難易度を下げていくような施策が必要となる。
【0007】
本発明は上記課題を解決するためになされた。即ち、本発明の目的の一つは、計画を立案するための大規模な最適化問題を解く場合に、精度の良い解を短時間で得られる可能性を向上できる情報処理システム及び情報処理方法を提供することにある。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明の情報処理システムは、計画を立案するための最適化問題を処理する演算装置を含む計算機を含む情報処理システムであって、前記演算装置は、前記最適化問題である原問題に対する第1制約条件に含まれない、ハイパパラメータを含む第2制約条件を設定し、前記第2制約条件の下で前記原問題を簡易化した数理モデルの最適化を実行したときの評価値をより良くするハイパパラメータの値を推定する推定処理を行い、推定した前記ハイパパラメータの値を用いて前記原問題の解を計算し、前記原問題の解を適用した計画案を出力するように構成される。
【0009】
本発明の情報処理方法は、計画を立案するための最適化問題を処理する演算装置を含む計算機を用いた情報処理方法であって、前記演算装置によって、前記最適化問題である原問題に対する第1制約条件に含まれない、ハイパパラメータを含む第2制約条件を設定し、前記第2制約条件の下で前記原問題を簡易化した数理モデルの最適化を実行したときの評価値をより良くするハイパパラメータの値を推定する推定処理を行い、推定した前記ハイパパラメータの値を用いて前記原問題の解を計算し、前記原問題の解を適用した計画案を出力する。
【発明の効果】
【0010】
本発明によれば、計画を立案するための大規模な最適化問題を解く場合に、精度の良い解を短時間で得られる可能性を向上できる。
【図面の簡単な説明】
【0011】
【
図1A】
図1Aは本発明の実施形態に係る情報処理システムの構成の一例を示すブロック図である。
【
図1B】
図1Bは物理的な計算機のハードウェア構成の一例を示すブロック図である。
【
図2】
図2は情報処理システムが実行する処理フローを示すフローチャートである。
【
図3】
図3は最適化主要計算部が複数のブロックで構成される場合の構成の一例を示すブロック図である。
【
図5】
図5は制約条件データベースの一例を示す図である。
【
図6】
図6は最適化主要計算部が複数のブロックで構成される場合の制約条件データベースの一例を示すブロック図である。
【
図7A】
図7Aはデッドヘッドが起こるルートの例を説明するための図である。
【
図7B】
図7Bはデッドヘッドが起こるルートの例を説明するための図である。
【
図8】
図8はカーブフィッティングによるハイパパラメータ推定の一例を示す図である。
【
図9】
図9は情報処理システムが実行する処理フローを示すフローチャートである。
【発明を実施するための形態】
【0012】
本発明は、概して、大規模な公共交通機関の運行計画最適化問題に対して、大量の制約条件をデータベース化し、明に指定しない制約条件を暗黙知制約として導入し、暗黙知制約の値を、簡易化した問題によって算出した評価値を用いた機械学習ないしはフィッティングによってチューニングすることで、高精度な解を短時間で算出できるようにする技術に関する。
【0013】
以下、本発明の実施形態について図面を参照しながら説明する。なお、実施形態の全図において、同一又は対応する部分には同一の符号を付す場合がある。以下の説明では、プログラム又は機能ブロックを主語として処理を説明する場合があるが、処理の主語が、プログラム又は機能ブロックに代えて、CPU又は演算装置とされてもよい。以下の説明では、「レコード」等の表現にて各種情報を説明することがあるが、各種情報は、これら以外のデータ構造で表現されてもよい。識別情報について説明する際、「識別番号」等の表現を用いるが、これらについてはお互いに置換が可能である。
【0014】
<<実施形態>>
本発明の実施形態に係る情報システムについて説明する。
図1Aに、実施形態に係る情報処理システム1の構成の一例を示すブロック図を示す。
図1Aに示す情報処理システム1は、一つの物理的な計算機でもよい。もしくは、各構成要素が別々の物理的な計算機上で実現されていてもよい。もしくは、一つ以上の物理的な計算機を備えた計算機システムに代えて、他種のシステム、例えば、物理的な計算リソース群(例えば、クラウド基盤)上に実現されたシステム(例えば、クラウドコンピューティングシステム)でもよい。
【0015】
図1Bは物理的な計算機のハードウェア構成の一例を示すブロック図である。
図1Bに示すように、物理的計算機2000は、プロセッサであるCPU2001、ROM2002、RAM2003、データの読み出し及び書き込み可能な不揮発性の記憶装置2004、ネットワークインタフェース2005及び入出力インタフェース2006などを含む。これらは、バス2007を介して互いに通信可能に接続されている。CPU2001はROM2002及び/又は記憶装置2004に格納された図示しない各種プログラムをRAM2003にロードし、RAM2003にロードされたプログラムを実行することによって、各種機能を実現する演算装置である。RAM2003には、上述したようにCPU2001が実行する各種プログラムがロードされ、CPU2001が各種プログラムを実行する際に使用するデータが一時的に記憶される。ROM2002及び/又は記憶装置2004は、不揮発性の記憶媒体であり、各種プログラムが記憶されている。ネットワークインタフェース2005は、物理的計算機2000がネットワークに接続されるためのインタフェースである。入出力インタフェース2006は、情報を入出力するためのインタフェースであり、例えば、キーボード、マウスなどの入力装置及びディスプレイなどの表示装置に接続されるためのインタフェースである。なお、物理的計算機2000は、その一部又は全部を他の演算装置(例えば、FPGA(Field Programmable Gate Array)等のハードウェア)により構成することもできる。例えば、物理的計算機2000は、FPGA等を用いて、情報処理システム1の各種機能の少なくとも一部を実現するようにしてもよい。
【0016】
図1Aに示すように、情報処理システム1は、入出力支援部3、パラメータ割付処理部5、制約条件データベース6、最適化主要計算部7及びハイパパラメータチューニング処理部8を備える。
【0017】
入出力支援部3は、例えば、入出力インタフェース2006により構成される。入出力支援部3を介して、情報処理システム1に対する情報(入力データ2及び計画案4)の入出力が行われる。入出力支援部3は、例えば、入力インタフェースと接続され、入力インタフェースを介してユーザが入力する情報を受け取り格納する。入出力支援部3は、例えば、出力インタフェースと接続され、出力インタフェースを介して、情報処理システム1によって自動立案された計画案のデータ(計画案4)をユーザの端末等の外部装置が受け取る。入出力支援部3は、表示装置に接続され、計画案4を表示装置に出力し、計画案4を可視化した画面が表示装置に表示されることによって、ユーザは計画案4を目視することができる。最適化主要計算部7の出力結果をユーザが見やすい形式に再変換して返すこともできてもよい。
【0018】
最適化主要計算部7は、従来の最適化計算技術で構成されてもよい。例えば、最適化問題を高速に処理するために、CMOSアニーリングのような最適化問題専用計算機・最適化問題専用計算技術を用いて実現してもよい。あるいは、従来型計算機の上で動作する最適化ソルバを用いてもよい。ここで、最適化問題とは、要請された制約の下、評価値となるコスト(
図1Cの数式2を参照。)を最小化あるいは最大化する変数の値を求める問題を指す。最適化問題専用計算技術は、例えばイジングモデルやボルツマンマシンのような、
図1Cの数式1の形で記述される相互作用モデルの超高速な専用シミュレータとなっている。数式1のx及びhは縦ベクトルであり、Jは対称行列である。数式1のxは変数である。変数xの型は、ハードウェアの性質に依存するため適宜それに合わせてモデル化すればよく、本特許には影響しない。Jやhは定数であり、変数幅や整数か実数かは、こちらも利用するハードウェアの性質に依存するが、本発明には影響しない。
【0019】
最適化問題専用計算技術では、相互作用モデルの最低エネルギー状態(数式1の左辺Hが最小となるxの値)を計算機上で探索あるいは再現することで、最適な変数の値を求める。つまり、最適化問題専用計算技術では、相互作用モデルの相互作用係数(数式1ではJに対応する値)や外場係数(数式1ではhに対応する値)などを入力として受け取り、Hが最小となるxを出力する。
【0020】
CMOSアニーリングのような疑似量子アニーリング、あるいは量子アニーリングを用いる場合、例えば数理モデルは2次非制約2値最適化モデル(QUBO)(例えば、
図1Dの数式3)などに書き直せば解くことができる。
【0021】
最適化主要計算部7は、並列処理デバイス(並列処理が可能なデバイス)の一例であり、相互作用モデル(例えばイジングモデル)を演算することで割当問題を解くためのアクセラレータである。最適化主要計算部7は、一つ以上の物理的な又は仮想的なコアを有するCPU(Central Processing Unit)により実現されてもよいが、典型的には、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)又はGPU(Graphics Processing Unit)のようなハードウェア回路である。最適化主要計算部7は、例えば、半導体回路(例えばCMOS(Complementary Metal Oxide Semiconductor)回路)でイジングモデルの動作を疑似的に再現した半導体コンピュータ(例えばCMOSアニーリングマシン)でよい。最適化主要計算部7は、例えば、GPU上で動作するアルゴリズム(例えばMomentum annealing)によって実現されてもよい。また、デジタル計算機ではなく、アニーリング型量子計算機や汎用型量子計算機を用いてもよい。また、モデル化によっては、最適化の前処理・後処理を最適化主要計算部7中で行ってよい。
【0022】
パラメータ割付処理部5、及び、ハイパパラメータチューニング処理部8は、プロセッサ上でプログラムを実行することにより実現される。即ち、パラメータ割付処理部5は、CPU2001で実行されるROM2002及び/又は記憶装置2004に格納された各種プログラムで構成される。ハイパパラメータチューニング処理部8は、CPU2001で実行されるROM2002及び/又は記憶装置2004に格納された各種プログラムで構成される。
【0023】
制約条件データベース6は、同一計算機上の記憶装置2004に格納されていてもよいし、別の計算機の記憶装置やクラウド上に存在し、適宜アクセスする形態で構成されていてもよい。例えば、本例において、制約条件データベース6は、記憶装置2004に格納されている。制約条件データベース6は、便宜上、「制約管理情報」とも称呼される。
【0024】
制約条件データベース6には、制約条件又はKPIの識別情報と、制約条件又はKPIであるかを示す情報と、制約条件又はKPIの内容を示す情報と、ユーザ利用フラグの設定状態を示す情報(ON又はOFF)と、ハイパパラメータ利用フラグの設定状態を示す情報(ON又はOFF)と、が互いに対応付けられて格納されている(後述の
図5及び
図6を参照。)。
【0025】
パラメータ割付処理部5は、入出力支援部3を介し入力データ2を受信する。入力データ2は、ハイパパラメータ利用フラグ設定情報200、原問題の制約条件201、原問題のKPI202、上位の計画データ203、及び、割当対象データ204などの問題の設定及び処理するために必要な情報を含む。
【0026】
ハイパパラメータ利用フラグ設定情報200は、制約条件データベース6に格納されている制約条件を指定し、指定した制約条件に対応するハイパパラメータ利用フラグを「ON」及び「OFF」の何れかに設定することを示す情報を含む。
【0027】
パラメータ割付処理部5は、制約条件を指定したハイパパラメータ利用フラグ設定情報200によって、指定した制約条件又はKPIに対応する制約条件データベース6のハイパパラメータ利用フラグを「ON」及び「OFF」の何れかに設定する。なお、KPI(Key Performance Indicator)は、目標を達成する度合いを監視、評価、または計測するための指標(数値、パラメータ)である。KPI値は、「評価値」とも称呼される場合がある。
【0028】
パラメータ割付処理部5は、制約条件データベース6のハイパパラメータ利用フラグに基づいて、ハイパパラメータX#を含む制約条件#を制約条件データベース6から抽出する。
【0029】
原問題の制約条件201は、原問題の制約条件を示す情報である。原問題KPI202は、原問題のKPIを示す情報である。なお、パラメータ割付処理部5には、原問題の制約条件201及び原問題KPI202を入力データ2ではなく、制約条件データベース6のユーザ利用フラグに基づいて、制約条件データベース6から抽出され、入力されるようにしてもよい。原問題の制約条件201、KPI21はすべてが、必ずしも制約条件データベース6に含まれているわけではく、最適化主要計算部7に実装されていてもよい。
【0030】
上位の計画データ203は、上位の計画を示す情報(例えば、
図4Bに示す情報。)である。割当対象データ204は、割当対象を示す情報である。
【0031】
ハイパパラメータチューニング処理部8は、パラメータ割付処理部5によって抽出された制約条件中のハイパパラメータX#を受け取る。ハイパパラメータチューニング処理部8では、ハイパパラメータX#が、原問題のKPI202を簡易化した数理モデルの最適化を実行することにより算出される評価値がより良くなる値(X#’)になるように、チューニングを行う。これにより、ハイパパラメータX#の値が、原問題のKPI202を簡易化した数理モデルの最適化を実行することにより算出される評価値がより良くなる値(X#’)に変更(更新)される。
【0032】
なお、ハイパパラメータチューニング処理部8が受け取るハイパパラメータX#は、適当に初期化された複数の値であってもよい。ハイパパラメータチューニング処理部8は学習ないしはフィッティング計算を行うため、複数の異なる値が必要となるが、実数値をランダムに生成するのでよい。また、ハイパパラメータチューニング処理部8は、経験に基づいた値の近傍の値をランダムに作成するようにしてもよい。
【0033】
ハイパパラメータチューニング処理部8は、原問題のKPI202を簡易化した数理モデルの最適化を実行することで評価値を算出する評価値算出部20と、算出された評価値をもっとも良くする(より良くする)、ハイパパラメータX#の値(X#’)を推定する最適点学習探索処理部10と、を含む。なお、算出された評価値を最も良くする、ハイパパラメータX#の値(X#’)を推定するためには、ハイパパラメータX#の値及び評価値の組(データセット)が、複数点必要である。
【0034】
図2は
図1Aの情報処理システム1の動作の概要を示すフローチャートである。
情報処理システム1は、ステップ210から処理を開始し、以下の処理を順に実行する。図中の「ハイパラ」とは、ハイパパラメータの略称である。
【0035】
ステップ211:情報処理システム1は、
図1Aの入力データ2を、入出力支援部3を介して読み込む。
【0036】
ステップ212:情報処理システム1は、パラメータ割付処理部5によって、制約条件データベースフラグ判定を行う。パラメータ割付処理部5は、入力データ2に含まれるハイパパラメータ利用フラグ設定情報200に基づいて、制約条件データベース6において、指定した制約条件に対応付けられたハイパパラメータ利用フラグをON及びOFFの何れかに設定する。
【0037】
即ち、パラメータ割付処理部5は、ハイパパラメータ利用フラグ設定情報200がハイパパラメータ利用フラグをOFFに設定することを示す場合、指定した制約条件及びKPIを原問題の制約条件及びKPIとして登録する(ユーザ利用フラグON、ハイパパラメータ利用フラグOFFを制約条件データベース6に登録する。)。パラメータ割付処理部5は、ハイパパラメータ利用フラグ設定情報200がハイパパラメータ利用フラグをONに設定することを示す場合、指定した制約条件#を、ハイパパラメータX#を含む制約条件として登録する(ユーザ利用フラグOFF、ハイパパラメータ利用フラグONに登録する。)。
【0038】
ステップ213:情報処理システム1は、制約条件データベース6のフラグの情報に基づき、制約条件データベース6にある制約条件のうち、原問題の制約条件と暗黙の制約条件として使用する制約条件を指定し、制約条件データベース6から最適化主要計算部7へ受け渡す。
【0039】
ステップ214:情報処理システム1は、最適化主要計算部7に前処理機能がある場合、前処理を実行する。ここで前処理とは、例えば、メインの最適化計算の前に、例えば原問題の数理モデルの係数を生成するロジックが動作するブロックがあるケース(例えば、
図3に示すように、最適化主要計算部7が複数のブロックからなるケース)などがある。
【0040】
図3は、最適化主要計算部7が複数のブロックからなるときの一例のブロック図である。最適化主要計算部7は、候補生成処理部310と、最適化計算部320と、後処理部330と、を含む。
【0041】
候補生成処理部310は、解候補の集合を生成する前処理に対応する計算を行う。メインの最適化計算をする最適化計算部320では、候補生成処理部310から受け取った数理モデルの係数を用いて最適化計算を実行する。このケースでは、
図1Cの数式2のような数理モデルが原問題となり、候補生成処理部310では数式2のAijを算出している。このケースでは、
図2のステップ214では、候補生成処理のみ実行する。ここで得られた係数(即ち、Aij)を、評価値算出部20で用いる簡易モデル(例えば、
図1Dの数式4)に受け渡す。これに対して
図1Eの数式5のような2次割当問題のモデルで、予め定数や係数が決まっているような数理モデルの場合は、この処理を素通りしてよい。
【0042】
図2において、ステップ214に続くステップ215乃至ステップ217の処理はL209の矢印に従って繰り返すループ処理となっている。
【0043】
ステップ215:情報処理システム1は、評価値算出部20を動作させる。繰り返し処理の一回目、あるいはユーザが設定した任意の回数目では、ステップ213で指定した暗黙の制約条件として使用する制約条件の値(制約条件に含まれるパラメータ)をハイパパラメータX#として、ハイパパラメータX#の値を生成する。ハイパパラメータX#の値はランダムでもよいし、ユーザがあらかじめ見積もった値でもよい。そして、ユーザがあらかじめ設定した原問題を簡易化した数理モデルによって評価値を計算する。
【0044】
ステップ216:情報処理システム1は、最適点学習探索処理部10によって、ステップ215で算出したハイパパラメータX#の値と評価値とを用いて、より良い評価値を与えるハイパパラメータX#の値を推定する計算を行う。この計算方法としては、例えば、カーブフィッティング(非線形フィッティング)、ベイズ最適化等の数学的手法を用いて、より良い評価値を与えるハイパパラメータX#の値X#’を推定する。
【0045】
例えば、ステップ215~ステップ217を繰り返すことにより、ハイパパラメータX#の値と、ハイパパラメータX#の値の下で簡易最適化の評価を最も良くする評価値Yiとの組が複数個得られる。これをX―Y座標にプロットして、カーブフィッティングにより、近似曲線を作成し、その近似曲線に基づいて、評価値Yiが最適な値(最も大きい値又は最も小さい値)を取るX#の値を推定し、推定したX#の値を一番評価値の良かったハイパパラメータの値とし、この値をより良い評価値を与えるハイパパラメータX#の値X#’とする。
【0046】
次の繰り返しループL209で用いるハイパパラメータX#の値は、評価値算出部20で生成せず、ここで出てきたハイパパラメータX#の値及び評価値を利用して作成してもよい。
【0047】
ステップ217:情報処理システム1は、ループ処理が所定の回数Nに達している(Cnt(閾値回数)<N)か判定し、達していればステップ218へ進み、達していなければループ処理を続ける。
【0048】
ステップ218:情報処理システム1は、ステップ216で推定したより良い評価値を与えるハイパパラメータの値X#’を用いて、原問題の数理モデルを解く。
【0049】
ステップ219:情報処理システム1は、ステップ218で得られた解(計画案4(解を適用した計画案))を、入出力支援部3を介して出力し、ステップ295に進んで処理が終了する。
【0050】
なお、上記の原問題の制約条件は、便宜上、「第1制約条件」とも称呼される場合がある。簡易化した数理モデルに適用される制約条件は、便宜上、「第2制約条件」とも称呼される場合がある。
【0051】
<<実施例>>
以下、実施例により本発明をより詳細に説明する。なお、本発明は下記の実施例に限定されるものではない。
【0052】
本実施例では、航空の人員配置計画を実施例として挙げる。この人員配置計画を立案するための問題(原問題)では、運行に携わる人員(本実施例では機長、又は、副機長)が、各拠点(空港)から出発し、1日あるいは複数日にわたり、航空便を運行する業務を行い、運行に携わる人員の各自の拠点に戻ってくるルート(便の集合で表されるルート)を算出し、各人員に割り当てる。
【0053】
【0054】
図4Aは原問題の制約条件及びKPIを示す情報である(原問題の制約条件201及び原問題のKPI202)。
図4Bは上位の計画データ203である運行タイムテーブルである。
図4Cは割当対象に関する情報(割当対象データ204)である。
【0055】
この問題では、制約条件として「すべての便が運行される」ことが挙げられ、すべての便は必ず誰かのルートに含まれていないといけない。即ち、
図4Bに示す全ての便(便1乃至便8)が運航され、すべての便は必ず誰かのルートに含まれていないといけない。なお、この制約条件は、最適化主要計算部7に実装されている。
【0056】
この問題では、便を運行するためには、「デッドヘッド」と呼ばれる、業務とみなされない移動だけを行うことがある。このデッドヘッドの最小化をKPIとして取ることを実施例の一例として述べる。
【0057】
例えば、
図7Aで、拠点2から出発し、便5→便2→便6というルートを取る人員がいるとする。一方で、
図7Bのように、拠点1から出発し、便1→便2→便3→便4というルートを取る人員がいるとする。この時、便2は
図7Aか
図7Bのどちらか人員に業務を遂行させればよいので、どちらかは移動だけすることになる。このような状態をデッドヘッドと呼ぶ。
【0058】
この問題は、制約条件を満たすすべてのルートの「候補」を一旦算出してから、デッドヘッドを最小化する組合せを選択する組合せ最適化問題として定式化できる。この時、例えば
図1Cの数式2のような集合被覆問題の数理モデルを用いる。ここでjは各ルートの候補のインデックスである。Aijは、ルート候補jが便iを通る時1、通らないときは0を取るように作られた行列である。即ち、Aijは、制約条件を満たすすべてのルートの「候補」を示す行列である。
【0059】
数式2の制約条件は、すべての便iが、どれかのルートjにb回以上含まれていないといけないことを意味する。b=1の時、デッドヘッドが0となることを要請する。この数式2において、どの列jの組合せを選択するかを、バイナリ変数xjで決定する。具体的には、列jの候補を選択する場合、xj=1、選択しない場合、xj=0となる。選択した候補のみを取り出したものが、実際の解となる。
【0060】
この時、システムの最適化主要計算部7は、
図3のように、ルートの候補を生成する候補生成処理部310と、組合せを選択する最適化計算部320と、結果を集計する後処理部330のように複数ブロックからなる形態をとる。この時、各制約条件は、候補生成処理部310及び最適化計算部320のどちらかで処理されることになるため、制約条件データベース6は
図6のようにどのブロックで処理するかを指定できるようにしてもよい。
【0061】
最適化計算部320は一般的には公共の交通機関の問題では変数の数が非常に大きくなり、解くのが難しくなり、良いKPI値の解を得るには膨大な時間がかかることがある。
【0062】
そのため、本発明では、ユーザが指定した制約条件だけでなく、制約条件データベース6にある制約条件を暗黙制約として導入することで、解空間を削減し、精度の良い解を高速に求められるようにする。
【0063】
図5は制約条件データベース6の一例を示す図である。制約条件データベース6は、例えば、テーブル形式の情報である。
図5に示すように、制約条件データベース6は、情報(値)を格納するカラム(列)として、♯501と、実装済み502と、内容503と、ユーザ利用504と、ハイパパラメータ利用フラグ505とを含む。制約条件データベース6には、制約条件、KPI及びハイパパラメータX#の利用を管理するための各カラムに対応する情報が、互いに対応付けられて行単位の情報(レコード)として格納されている。
【0064】
具体的に述べると、♯501には、制約条件又はKPIの識別番号が格納されている。実装済み502には、制約条件又はKPIが格納されている。内容503には、対応する制約条件又はKPIの内容が格納されている。なお、識別番号4のレコードに含まれる内容503に格納された情報は、「1ルート当たりのデットヘッド数の上限を(X4)とする」であり、このX4がハイパパラメータX#である。識別番号5のレコードに含まれる内容503に格納された情報は、「(X5)便以上は担当する」であり、このX5がハイパパラメータX#である。ユーザ利用504には、問題に対して対応する制約条件又はKPIを設定するか否かを示すユーザ利用フラグが格納されている。ユーザ利用フラグが「ON」である場合、対応する制約条件又はKPIが原問題に対して設定(適用)されることを示す。ユーザ利用フラグが「OFF」である場合、対応する制約条件又はKPIが原問題に対して設定(適用)されないことを示す。
【0065】
ハイパパラメータ利用フラグ505には、原問題を簡易化した数理モデルの最適化に対して対応する制約条件又はKPIを設定するか否かを示すハイパパラメータ利用フラグが格納されている。ハイパパラメータ利用フラグが「ON」である場合、対応する制約条件が原問題を簡易化した数理モデルの最適化計算に対して設定(適用)されることを示す。ハイパパラメータ利用フラグが「OFF」である場合、対応する制約条件又はKPIが原問題を簡易化した数理モデルの最適化計算に対して設定(適用)されないことを示す。
【0066】
図6は制約条件データベース6の一例を示す図である。
図6に示すように、制約条件データベース6は、情報(値)を格納するカラム(列)として、♯601と、実装済み602と、内容603と、ユーザ利用604と、ハイパパラメータ利用フラグ605と、ブロック606と、を含む。制約条件データベース6には、ハイパパラメータの利用を管理するための各カラムに対応する情報が、互いに対応付けられて行単位の情報(レコード)として格納されている。♯601、実装済み602、内容603、ユーザ利用604、及び、ハイパパラメータ利用フラグ605に格納される情報は、
図5の♯501、実装済み502、内容503、ユーザ利用504、及び、ハイパパラメータ利用フラグ505に格納される情報と同じである。ブロック606に格納される情報は、対応する条件に対応する機能ブロックを示す情報が格納されている。
【0067】
図5及び
図6の制約データベースにより、「ユーザ利用」で「ON」となっている条件が原問題に対して設定(適用)されており、「ハイパパラメータ利用フラグ」で「ON」になっている制約条件が暗黙制約として設定(適用)されることを定義する。
【0068】
情報処理システム1が実施例の問題を処理するときの処理の概要について説明する。情報処理システム1は、次のような手順で計算を行う。
【0069】
(1)短時間な計算で終わる候補生成処理部310のみを通して、各人員に割り当てるルートの候補を示す行列Aijを算出する。
(2)次に、数式4の簡易的な数理モデルを用いた線形計画問題を解くことで評価値を算出する。これにより、複数回計算を実行しても短時間で済むようになる。なお、数式4は、原問題のモデル(数式2)のバイナリ変数を実数に変更することにより簡易化した数理モデルである。
(3)ハイパパラメータX#は性質上、ユーザによって具体的な値が指定されていないので、適当な値を与える必要がある。このチューニングをハイパラチューニング処理部300で行う。チューニングでは、ベイズ最適化等のブラックボックス最適化を用いてもよいし、ユーザが決めた非線形関数でフィッティングする形式でもよい。ユーザが決めた非線形関数でフィッティングする形式で行う場合の例を
図8を用いて説明する。
図8の複数の点Pは、ハイパパラメータX#を横軸に、X#を用いて求めた評価値Y(X#)を縦軸にプロットしたものである。これを適当な非線形関数でフィッティングすることにより曲線L1のようになったとすると、この曲線L1上で最小値Yi’のときの値X#’がもっともらしいX#’(より良い評価値を与えるハイパパラメータX#の値X#’)となる。
(4)情報処理システム1は、ハイパパラメータX#の値X#’を用いて最適化主要計算部7で、最適化計算部320及び後処理部330の計算を実行する。
【0070】
情報処理システム1が実施例の問題を処理するときの具体的作動について説明する。
図9は情報処理システム1が実行する処理フローを示すフローチャートである。なお、この処理フローでは、ベイズ最適化によって、より良い評価値を与えるハイパパラメータの値X#’を推定している。
【0071】
情報処理システム1は、ステップ900から処理を開始し、以下の処理を順に実行する。
【0072】
ステップ901:情報処理システム1は、入力データ2を、入出力支援部3を介して読み込む。
【0073】
ステップ902:情報処理システム1は、パラメータ割付処理部5によって、制約条件データベースフラグ判定を行う。パラメータ割付処理部5は、入力データ2に含まれるハイパパラメータ利用フラグ設定情報200に基づいて、制約条件データベース6において、指定した制約条件に対応付けられたハイパパラメータ利用フラグをON及びOFFの何れかに設定する。
【0074】
即ち、パラメータ割付処理部5は、ハイパパラメータ利用フラグ設定情報200がハイパパラメータ利用フラグをOFFに設定することを示す場合、指定した制約条件及びKPIを原問題の制約条件及びKPIとして登録する(ユーザ利用フラグON、ハイパパラメータ利用フラグOFFを制約条件データベース6に登録する。)。パラメータ割付処理部5は、ハイパパラメータ利用フラグ設定情報200がハイパパラメータ利用フラグをONに設定することを示す場合、指定した制約条件を、ハイパパラメータX#を含む制約条件として登録する(ユーザ利用フラグOFF、ハイパパラメータ利用フラグONに登録する。)。
【0075】
ステップ903:情報処理システム1は、制約条件データベース6のフラグの情報に基づき、制約条件データベース6にある制約条件のうち、原問題の制約条件と暗黙の制約条件として使用する制約条件を指定し、制約条件データベース6から最適化主要計算部7へ受け渡す。
【0076】
ステップ904:情報処理システム1は、最適化主要計算部7でハイパパラメータX#の値を用いて候補生成(候補Aijの生成)を行う。情報処理システム1は、ループ2週目以降の場合には、前回のループで算出したハイパパラメータX#の値X#’を用いる。
【0077】
ステップ905:情報処理システム1は、評価算出部での簡易最適化(数式4)によって評価値Yを算出する。
【0078】
ステップ906:情報処理システム1は、ベイズ最適化によりYをより良くするハイパパラメータX#の値X#’を推定する。
【0079】
ステップ907:情報処理システム1は、矢印L909に従ってループするステップ904乃至ステップ907のループ処理の実行回数が所定の回数に到達したか否かを判定する。ループ処理の実行回数が所定の回数に到達していない場合、情報処理システム1は、「NO」と判定してステップ904に戻る。ループ処理の実行回数が所定の回数に到達している場合、情報処理システム1は、ステップ907にて「YES」と判定してステップ908に進む。
【0080】
ステップ908:情報処理システム1は、最適化主要計算部7の最適化計算部320で最後に実行したループ処理のステップ904で生成したAijで原問題のモデル(数式2)を解く。
【0081】
ステップ909:情報処理システム1は、解(計画案4(解を適用した計画案))を出力する。
【0082】
<効果>
以上説明したように、本発明の実施形態に係る情報処理システム1は、大量の制約条件をデータベース化し、明に指定しない制約条件を暗黙知制約として導入し、暗黙知制約の値を、簡易化した問題によって算出した評価値を用いた学習ないしはフィッティングによってチューニングすることで、高精度な解を短時間で算出できる。従って、本発明の実施形態に係る情報処理システム1は、計画を立案するための大規模な最適化問題を解く場合に、精度の良い解を短時間で得られる可能性を向上できる。
【0083】
<<変形例>>
本発明は上記実施形態に限定されることなく、本発明の範囲内において種々の変形例を採用することができる。
【0084】
上記実施形態は、次のように構成されてもよい。即ち、情報処理システム1は、画像を表示可能な表示装置を備える。表示装置は、ハイパパラメータ利用フラグ設定情報200を入力するためのGUI画面が表示される。GUI画面は、例えば、
図5に示す表に相当する画像と、各利用フラグをON及びOFFの何れかに設定するために操作されるボタンとを含む。ユーザによって、GUI画面のボタンが操作され、操作に応じたハイパパラメータ利用フラグ設定情報200が情報処理システム1に入力される。これにより、ユーザは、GUI画面を操作することにより、制約条件データベース6の各フラグをON及びOFFの何れかに設定することができる。
【0085】
上記実施形態において、制約条件データベース6のレコードが、情報処理システム1に入力される情報に基づいて、更新(追加及び削除)されるようにしてもよい。
【0086】
本発明は以下の構成をとることもできる。
【0087】
航空の人員配置計画、人の移動計画、航空機などの乗物の移動計画、航空機などの乗物の運用計画、アルバイトや工場の作業員のシフト管理などの人員配置の計画、又は、これらの何れかに類する計画を立案するための最適化問題を処理する演算装置を有する計算機を含む情報処理システムであって、前記演算装置は、前記最適化問題である原問題に対する第1制約条件に含まれない、ハイパパラメータを含む第2制約条件を設定し、前記第2制約条件の下で前記原問題を簡易化した数理モデルの最適化を実行したときの評価値をより良くするハイパパラメータの値を推定する推定処理を行い、推定した前記ハイパパラメータの値を用いて前記原問題の解を計算し、前記原問題の解を適用した計画案を出力する、ように構成された、情報処理システム。
【0088】
アルバイトや工場の作業員のシフト管理などの人員配置の計画、航空の人員配置計画、人の移動計画、航空機などの乗物の移動計画、航空機などの乗物の運用計画、アルバイトや工場の作業員のシフト管理などの人員配置の計画、又は、これらの何れかに類する計画を立案するための最適化問題を処理する演算装置を有する計算機を用いた情報処理方法であって、前記演算装置によって、前記最適化問題である原問題に対する第1制約条件に含まれない、ハイパパラメータを含む第2制約条件を設定し、前記第2制約条件の下で前記原問題を簡易化した数理モデルの最適化を実行したときの評価値をより良くするハイパパラメータの値を推定する推定処理を行い、推定した前記ハイパパラメータの値を用いて前記原問題の解を計算し、前記原問題の解を適用した計画案を出力する、情報処理方法。
【符号の説明】
【0089】
1…情報処理システム、2…入力データ、3…入出力支援部、4…計画案、5…パラメータ割付処理部、6…制約条件データベース、7…最適化主要計算部、8…ハイパパラメータチューニング処理部、10…最適点学習探索処理部、20…評価値算出部