(57)【要約】【課題】制約プログラミングによって解探索を実施する大規模な離散最適化問題において、学習データを利用して、実用時間内に準最適解の求解を行う。【解決手段】解探索処理装置の行動価値関数初期化部は、解の履歴と制約式と決定変数の選択可能なドメインの初期状態からなる探索情報を入力して、各ステップで選択する決定変数とその値を方策とし、方策と、方策決定前の決定変数の選択可能なドメインと、方策決定後の決定変数の選択可能なドメインとを引数とする行動価値関数を初期化する。探索部は、価値関数初期化部により初期化した行動価値関数の情報を入力して、方策と、方策決定前の決定変数のドメインと、方策決定後の行動価値関数のドメインとから対応する行動価値関数の値を求め、行動価値関数を最大とする方策を探索して、問題情報に対する最適解を探索する。また、探索部は、目的関数に対するスコアの改善度を報酬とし、報酬に基づいて、行動価値関数を更新する。【選択図】  図９Ａ
2019124990.tif 000002
【特許請求の範囲】
【請求項１】
離散最適化問題の目的関数に対する準最適解を探索する解探索処理装置であって、
解の履歴と制約式と決定変数の選択可能なドメインの初期状態からなる探索情報を入力して、各ステップで選択する決定変数とその値を方策とし、前記方策と、方策決定前の決定変数の選択可能なドメインと、方策決定後の決定変数の選択可能なドメインとを引数とする行動価値関数を初期化する行動価値関数初期化部と、
方策決定前の決定変数の選択可能なドメインと、方策から制約伝播によって方策決定後の決定変数の選択可能なドメイン領域とを算出する遷移後状態算出部と、
制約式と決定変数のドメインの初期状態からなる問題情報と、前記行動価値関数初期化部により初期化した行動価値関数の情報とを入力して、方策と、方策決定前の決定変数のドメインと、方策決定後の行動価値関数のドメインとから対応する行動価値関数の値を求め、前記行動価値関数を最大とする方策を探索して、問題情報に対する最適解を探索する探索部とを有することを特徴とする解探索処理装置。
【請求項２】
前記探索部は、目的関数に対するスコアの改善度を報酬とし、前記報酬に基づいて、行動価値関数を更新することを特徴とする請求項１記載の解探索処理装置。
【請求項３】
さらに、前記探索情報を入力して、目的関数に対するスコアの改善度を報酬とし、前記報酬に基づいて、前記行動価値関数を更新する行動価値関数学習部を有することを特徴とする請求項１記載の解探索処理装置。
【請求項４】
前記行動価値関数学習部は、前記行動価値関数の学習のための方策の選択戦略として、ε−ｇｒｅｅｄｙ法を用いることを特徴とする請求項３記載の解探索処理装置。
【請求項５】
離散最適化問題の目的関数に対する準最適解を探索する解探索処理装置による解探索方法であって、
前記解探索処理装置に解の履歴と制約式と決定変数の選択可能なドメインの初期状態からなる探索情報とを入力して、前記解探索処理装置が各ステップで選択する決定変数とその値を方策とし、前記方策と、方策決定前の決定変数の選択可能なドメインと、方策決定後の決定変数の選択可能なドメインとを引数とする行動価値関数を初期化する手順と、
前記解探索処理装置が方策決定前の決定変数の選択可能なドメインと、方策から制約伝播によって方策決定後の決定変数の選択可能なドメイン領域とを算出する手順と、
前記解探索処理装置に、制約式と決定変数のドメインの初期状態からなる問題情報と、前記行動価値関数初期化部により初期化した行動価値関数の情報とを入力して、前記解探索処理装置が、方策と、方策決定前の決定変数のドメインと、方策決定後の行動価値関数のドメインとから対応する行動価値関数の値を求め、前記行動価値関数を最大とする方策を探索して、問題情報に対する最適解を探索する手順とを有することを特徴とする解探索処理方法。
【請求項６】
前記問題情報に対する最適解を探索する手順において、目的関数に対するスコアの改善度を報酬とし、前記報酬に基づいて、行動価値関数を更新することを特徴とする請求項５記載の解探索処理方法。
【請求項７】
さらに、前記探索情報を入力して、目的関数に対するスコアの改善度を報酬とし、前記報酬に基づいて、前記行動価値関数を更新する手順を有することを特徴とする請求項５記載の解探索処理方法。
【請求項８】
前記行動価値関数を更新する手順において、前記行動価値関数の学習のための方策の選択戦略として、ε−ｇｒｅｅｄｙ法を用いることを特徴とする請求項７記載の解探索処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、解探索処理装置に係り、大規模な離散最適化問題において制約充足解を探索する過程において、最適解に準じた準最適解を高速に求めるのに好適な解探索処理装置および解探索処理方法に関する。
【背景技術】
【０００２】
制約プログラミングにより制約充足解を探索する問題の応用として、鉄道や資源配置、工場の生産計画などの産業分野における資源の管理や計画の業務を対象とする場合がある。
【０００３】
対象とする業務としては、例えば、鉄道運行管理業務では、通常時には予め定められた列車の運行計画（ダイヤ）に基づいて列車を走行させることが要求されているが、運行当日にダイヤ乱れが発生した場合には、列車運行に支障がないように計画を修正しなければならない。鉄道輸送に必要な計画は列車のダイヤのほかに、ダイヤ上の列車に車両の割り当て計画を定めた車両運用情報や、乗務員の割り当て計画を定めた乗務員運用情報がある。運行当日にダイヤ乱れが発生した場合には、ダイヤの修正に応じて車両運用情報や乗務員運用情報の修正が行われる。
【０００４】
また、例えば、資源配置計画業務では、資源の入出荷によって日次で変動する資源の在庫量に応じて、容量制限のある資源の配置場所に資源を配置する日次計画を立案することが求められる。このとき、出荷のための資源の加工を決められた日時に決められた場所で行う制約や日当たりでの資源を移動させる手段の容量制限の制約など多くの制約を遵守しながら、なおかつ前日の計画とはなるべく変更をしないように日次計画を立案する必要がある。
【０００５】
上記のような計画作成業務では、大規模な制約充足問題の解を導出しなければならず、従来では熟練したオペレータが手動で行っていた。しかしながら、近年では熟練したオペレータの退職に伴い、上記の業務をシステムで代替しようというニーズが顕在化している。熟練者のオペレータの業務を代替するシステムにおいてはオペレータが立案した計画と同等に実用的な制約充足解を実用的な時間内に求解することが求められている。
【０００６】
これまでも、実用的な制約充足解の求解を容易化する技術は提案されている。例えば、特許文献１には、ユーザにより決定変数のドメイン変更などの新たな要求が追加されるたびに、過去の問題解決事例において採用された解と比較し、同一の解が採用された頻度に基づいて解候補の評価値を求め、固定化された制約と追加の要求を満たす中で最も評価値の高い解を出力する技術が記載されている。
【０００７】
また、非特許文献１には、ツリー探索を効率的に行うプログラミングパラダイムの一つとして、制約プログラミングという手法が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００３−９９２５９号公報
【非特許文献】
【０００９】
【非特許文献１】Marc Vilain、 Henry Kautz、 Constraint Propagation Algorithms for Temporal Reasoning、 Aaai、 1986、 pp377-382
【発明の概要】
【発明が解決しようとする課題】
【００１０】
特許文献１に記載の技術は、ユーザが入力した決定変数のドメインの変更に関する要求に対して、過去の問題解決事例において採用された解と比較し、適切な解を出力することができる。ここで、ドメインとは決定変数の取りうる値の範囲をいう。確かに、特許文献１に記載の技術は、小規模な制約充足問題で全探索が終了する場合には過去事例に基づいて望まれる解が出力されるため有効である。しかしながら、制約や決定変数の数が多い大規模な制約充足問題では問題設定の状況に応じて制約充足解の集合を探索すること自体が困難となる。大規模な制約充足問題で決定変数をノードとして決定変数の値をエッジとしたツリー探索を行う場合には全探索を実用的な時間内に行うことは難しく、実用時間内に探索できる探索ステップ数内で求解できるように、決定変数のドメイン変更だけではなく、制約式の変更に応じて、適切な探索ルールを設定する必要がある。
【００１１】
また、非特許文献１に記載されているような制約プログラミングでは、ある決定変数のドメインが制約式を介して他の決定変数のドメインを縮小させる影響を制約伝播という演算で特定する。制約伝播により、制約式を介した、互いの決定変数のドメインの影響を考慮し、不要な探索範囲を早めにカットすることにより、効率的に探索領域の絞込みを行う。しかしながら、制約プログラミングにおける解探索においても、探索木の深さ方向の効率化はなされているが、探索木の分岐のうち、どの分岐を優先的に探索するかなど幅方向の効率化はまだ研究段階であり、全ての場合に有効なアルゴリズムは提案されていない。そのため、制約プログラミングにおいても、制約式の変更に応じて、実用時間内に最適解ではないとしても、最適解に準じた準最適解がみつかるように幅方向にも動的な探索をすることが必要である。
【００１２】
本発明の目的は、制約プログラミングによって解探索を実施する大規模な離散最適化問題において、学習データを利用して、実用時間内に準最適解の求解を行う解探索処理装置を提供することにある。
【課題を解決するための手段】
【００１３】
本発明の解探索処理装置の構成は、好ましくは、離散最適化問題の目的関数に対する準最適解を探索する解探索処理装置であって、解の履歴と制約式と決定変数の選択可能なドメインの初期状態からなる探索情報を入力して、各ステップで選択する決定変数とその値を方策とし、方策と、方策決定前の決定変数の選択可能なドメインと、方策決定後の決定変数の選択可能なドメインとを引数とする行動価値関数を初期化する行動価値関数初期化部と、方策決定前の決定変数の選択可能なドメインと、方策から制約伝播によって方策決定後の決定変数の選択可能なドメイン領域とを算出する遷移後状態算出部と、制約式と決定変数のドメインの初期状態からなる問題情報を入力して、行動価値関数初期化部により初期化した行動価値関数の情報を入力して、方策と、方策決定前の決定変数のドメインと、方策決定後の行動価値関数のドメインとから対応する行動価値関数の値を求め、行動価値関数を最大とする方策を探索して、問題情報に対する最適解を探索する探索部とを有するようにしたものである。
【００１４】
また、上記解探索処理装置の構成において、探索部は、行動価値関数は、目的関数に対するスコアの改善度を報酬とし、報酬に基づいて、行動価値関数を更新するようにしたものである。
【発明の効果】
【００１５】
本発明によれば、制約プログラミングによって解探索を実施する大規模な離散最適化問題において、学習データを利用して、実用時間内に準最適解の求解を行う解探索処理装置を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】解探索処理装置のハードウェア・ソフトウェア構成図である。
【図２】値選択状況を表す行列の一例を示す図である。
【図３】ステップ１での選択可能なドメインを表す行列を示す図である。
【図４】ステップ２での選択可能なドメインを表す行列を示す図である。
【図５】探索ステップでの様子を示す図である。
【図６】本実施形態のアルゴリズムによる探索ツリーを示す図である。
【図７】Ｑの学習の様子を示す図である。
【図８】解探索処理装置の処理の全体概要を示す図である。
【図９Ａ】解探索処理装置の探索処理を示すフローチャートである（その一）。
【図９Ｂ】解探索処理装置の探索処理を示すフローチャートである（その一）。
【発明を実施するための形態】
【００１７】
以下、本発明に係る一実施形態を、図１ないし図９Ｂについて説明する。
【００１８】
先ず、図１を用いて実施形態１に係る解探索処理装置のハードウェア・ソフトウェア構成について説明する。
解探索処理装置は、鉄道における車両や乗務員の再割り当てや資源配置計画を自動で行うための装置であり、図１に示されるように、表示部１０１、入力部１０２、ＣＰＵ１０３、通信部１０４、記憶部１０７、メモリ１０５から構成される一般的な情報処理装置で実現される。解探索処理装置のハードウェアとして用いられる情報処理装置は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットやサーバ装置であってもよい。また、解探索処理装置の情報処理装置は、ネットワーク１００を介して他の情報処理装置と通信可能である。
【００１９】
記憶部１０７には、過去の探索情報１１０、現在の問題情報１１２が格納されている。過去の探索情報１１０は、過去の解の履歴と制約式と決定変数のドメインの初期状態で構成される情報である。現在の問題情報１１２は、制約式と決定変数のドメインの初期状態で構成される情報である。過去の探索情報１１０は、行動価値関数の初期化に用いられ、現在の問題情報１１２は、現在の準最適解を求めるための対象とする問題のデータである。
【００２０】
また、メモリ１０５には、解探索処理装置の各機能を実行するプログラム１０６が記憶されており、ＣＰＵ１０３に実行されることにより機能が実現される。解探索処理装置は、プログラム１０６を実行することにより、行動価値関数初期化部１２０、探索部１２１、遷移後状態算出部１２２、行動価値関数学習部１２３の各機能部の機能を実行する。なお、各部の機能の詳細については、後に詳述する。
【００２１】
次に、図２ないし図６を用いて本実施形態の基本的な考え方、記法と、例として取り上げる離散最適化問題について説明する。
本実施形態では、ラインＸ、Ｙ、Ｚの各々の生産量（それぞれの生産量をｘ，ｙ，ｚとして、整数と仮定）を、決められた制約条件のもとで、ある生産高をなるべく大きくする条件（生産量ｘ、ｙ、ｚなど）を求める離散最適化問題を考える。
【００２２】
ここで、以下のような制約条件を仮定する。
各ラインの生産能力：０≦ｘ，ｙ，ｚ≦３
ラインＹ、Ｚの共用設備から来る生産設備上の制約：０≦ｙ＋ｚ≦３
生産に従事する作業員の配置から来る制約：
ｚ＝３のとき、ｘ＝０、ｙ＝０
ｚ＝２のとき、ｘ≦１
ｚ＝１のとき、（ｘ，ｙ）＝（０，０）∪（１，１）
ｚ＝０のとき、（ｘ，ｙ）≠（３，３）
このときに、生産高ｆ（ｘ，ｙ，ｚ）＝５ｘ＋３ｙ＋ｚを最大化する問題を考える。このように最適化問題のターゲットとなる関数を、目的関数という。
【００２３】
解探索処理装置においては、過去の探索情報１１０を受け取り、各探索ステップごとに選択した決定変数の値と決定変数の選択によって変化する選択可能なドメインとの関係を導出する。ここで、決定変数とは、問題の対象として、その値を決定するべき変数であり、この問題の例では、各ラインの生産量であるｘ，ｙ，ｚである。また、ドメインとは、決定変数が取りうる値の範囲（定義域）である。
【００２４】
探索ステップｔでの各決定変数の値選択状況と選択可能なドメインで表現され、以下の行列で表記される。
Ｖｔ：探索ステップｔでの各決定変数の値選択状況を表す行列
Ｄｔ：探索ステップｔでの各決定変数の選択可能なドメインを表す行列
行列Ｖｔ、Ｄｔは、行が決定変数ｘ，ｙ，ｚで、列がその決定変数ｘ，ｙ，ｚのドメインを示している。Ｖｔの探索ステップｔ＝０での各要素の初期値は０である。
【００２５】
Ｖｔについては、探索ステップｔで
ｘ，ｙ，ｚ＝ｌ（ｌ＝０，１，２，３）
となっている決定変数ｘ，ｙ，ｚの行のドメインｌの列に１を選択するものとする。
【００２６】
Ｄｔについては、探索ステップｔ＝０での各要素の初期値は決定変数の初期状態で選択可能となっている決定変数ｘ，ｙ，ｚのドメインｌを１とし、選択不能となっているものを０としたものである。探索ステップｔ≠０については、Ｖｔの状態での他の決定変数からの制約伝播により、選択可能となった決定変数ｘ，ｙ，ｚの行のドメインｌの列を１と更新し、選択不能となったものを０と更新する。
【００２７】
例えば、あるステップｔで、ｘ＝ｙ＝１が選択され、ｚが選択されていないときには、Ｖｔは、図２（ａ）に示されるようになる。
【００２８】
また、あるステップｔで、ｘ＝ｙ＝ｚ＝１が選択されたときには、図２（ｂ）に示されるようになる。ここで、全の行に１が一つだけ現れるときに、ｘ，ｙ，ｚが全て選択されていることを意味する。
【００２９】
実際に、ｘ＝ｙ＝ｚ＝１のときには、上記の制約条件の全てを満たし、このときの生産高は、ｆ（１，１，１）＝５×１＋３×１＋１＝９となる。
【００３０】
また、初期状態ステップ１で、全ての値をとりうるときのドメインを表す行列Ｄ１は、図３に示されるようになる。そして、次のステップ２では、ｚのとりうる値がｚ＝３，２，１，０に従って、図４（ａ）、図４（ｂ）、図４（ｃ）、図４（ｄ）に示されるようになる。
【００３１】
なお、この離散最適化問題の最適解は、（ｘ，ｙ，ｚ）＝（３，２，０）であり、生産高は、ｆ（３，２，０）＝５×３＋３×２＋０＝２１となる。また、この生産高に近い解としては、（ｘ，ｙ，ｚ）＝（２，３，０）であり、生産高は、ｆ（２，３，０）＝５×２＋３×３＋０＝１９となり、この解は、準最適解と評価してよい。
【００３２】
このような問題において、本実施形態では、以下のようなアルゴリズムにより、最適解（準最適解）の探索をおこなう。このアルゴリズムは、強化学習の一種であるＱ学習の行動価値関数を応用したものである。
【００３３】
強化学習（Reinforcement Learning）とは、エージェント（行動主体）は環境の状況に基づき或る行動を選択し、行動に基づき環境が変化するという前提の下、環境の変化に伴って、何らかの報酬がエージェントに与えられ、エージェントはより良い行動の選択（意志決定）を学習していくという方法である。
【００３４】
Ｑ学習（Q-learning）は、この強化学習の一種であり、或る環境状態ｓの下で、方策ａを選択する価値（行動価値関数の値）Ｑ（ｓ，ａ）を学習する方法である。Ｑ学習の基本的なアイデアとしては、ある状態ｓのとき、Ｑ（ｓ，ａ）の最も高いａを最適な行動として選択すればよいというものである。
【００３５】
このＱ学習における行動価値関数を利用して、本実施形態の解探索処理装置における解探索の処理を以下のようにしておこなう。  
１）ある探索ステップｔの値選択状況Ｖｔで選択可能なドメインＤｔを、上記Ｑ学習の状態ｓを表すものとする。  
２）選択可能なドメインＤｔは、値選択状況Ｖｔから制約伝播によって計算する。  
３）状態ｓに応じて，次に値を決定するために選択するべき決定変数とその値を方策ａとする。  
４）目的関数のスコアの改善度を報酬ｒとする。
５）方策決定前の選択可能なドメインｓ＿ｐｒｅ、方策決定後の選択可能なドメイン  ｓ＿ｐｏｓｔとし、行動価値関数は、これらのドメインｓ＿ｐｒｅ，ｓ＿ｐｏｓｔを入力としたＱ（ｓ＿ｐｒｅ，ｓ＿ｐｏｓｔ，ａ）で表現し，行動価値関数が最大となる方策ａを選択する（図５、図６）。
６）目的関数のスコアの改善度で与えられる報酬ｒによって行動価値関数Ｑ（ｓ＿ｐｒｅ，ｓ＿ｐｏｓｔ，ａ）を更新する。
【００３６】
本実施形態では、報酬ｒを目的関数ｆにより、以下の（式１）で定義する。
ｒ＝f（ｘ２，ｙ２，ｚ２）−f（ｘ１，ｙ１，ｚ１）      …（式１）
ここで、ｘ１，ｙ１，ｚ１は、方策決定前の値、ｘ２，ｙ２，ｚ２は、方策決定後の値である。これは、目的関数ｆが最大のものを求めることに対応して、目的関数ｆが大きいものを、その報酬が大きいものと評価するという意味である。なお、本実施形態の生産計画問題のように、報酬ｒは目的関数が単調ならば、準最適解が見つかった時点ではなく、解探索の途中に付与してもよい。
【００３７】
また、初期状態においては、行動価値関数Ｑの値は、以下の（式２）で定義する。
Ｑ(s_pre,s_post,a)＝f（ｘ２，ｙ２，ｚ２）      …（式２）
ここでも、ｘ２，ｙ２，ｚ２は、方策決定後の値である。
【００３８】
次に、図７を用いて行動価値関数Ｑの学習処理を説明する。
上記のように本実施形態の解探索のアルゴリズムは、強化学習を前提としたものであり、行動価値関数Ｑは、以下の（式３）により学習により、更新していくものとする。
【００３９】
【数１】
2019124990.tif 000003
【００４０】
ここで、ｓ_pre′は、後方での方策決定前の選択可能なドメイン、s_postは、後方での方策決定後の選択可能なドメイン、ｃは、方策の候補である。また、γ（０＜γ≦１）は、割引率、α（０＜α≦１）は、学習率であり、これらは、Ｑ学習における定数である。
【００４１】
学習のための探索戦略としては、例えば、ε−ｇｒｅｅｄｙ法を用いる。これは、改善解を求めるにあたって、確率εで、ランダムに探索ツリーを探索し、確率１−εで、Ｑを最大化するように探索ツリーを探索するものである。
【００４２】
改善解としては、行動価値関数が大きいものが一つの指標になるので、Ｑを最大化するように探索するのは、当然であるが、それでは、解の探索範囲が広がらず、埋もれた準最適解や最適解があるおそれがある。ε−ｇｒｅｅｄｙ法は、そのために、ランダムな探索と、Ｑを最大化する探索を組み合わせたアルゴリズムであるということができる。
【００４３】
本実施形態の解探索処理装置では、図６に示されるように、過去の探索情報１１０を用いたオフライン学習２００と、現在の問題情報１１２を用いたオンライン学習２１０を用いたＱによる探索処理３００をおこなう。
【００４４】
オフライン学習２００は、過去の探索情報１１０による模倣と強化プロセスである。模倣のプロセスは、過去の問題の解（教師データ）を用いて、行動価値関数Ｑを更新するプロセスであり、強化のプロセスは、過去の問題に対して新たな解を見つけて、Ｑを更新するプロセスである。
【００４５】
一方のオンライン学習２１０は、目的関数の変更や過去データに対する反例の対応のためにおこなう学習である。もし、目的関数変更、反例が存在する場合に、過去の探索情報１１０による行動価値関数Ｑに従った解の探索をすると、高い報酬ｒが得られない。そのため、上記のε−ｇｒｅｅｄｙ法により、確率εで、たまたま高い報酬ｒが見つかると、そのたまたま見つかった高い報酬ｒの方向を重点的に探索するようＱを更新する。したがって、オンライン学習２１０で更新した行動価値関数Ｑに従って探索した結果、目的関数が変更されたり、反例が存在する場合でも探索をアジャストできるというものである。
なお、オフライン学習２００でもオンライン２１０でもＱ学習のアルゴリズムは同様である。
【００４６】
次に、図８を用いて解探索処理装置の処理の全体概要について説明する。
図８に示される行動価値関数初期化部１２０は、行動価値関数Ｑを初期化する機能部である。行動価値関数初期化部１２０では、行動価値関数Ｑを過去データの問題と解の履歴により初期化する（オフライン学習２００）。ここでは、上記の（式２）に従い、目的関数のスコアを報酬としてＱを更新し、初期化する。
【００４７】
行動価値関数学習部１２３は、行動価値関数Ｑを学習する機能部である。行動価値関数学習部１２３では、初期化された行動価値関数Ｑに対して、ε−ｇｒｅｅｄｙ法で過去データの問題の改善解を探索し，改善度を報酬としてＱを更新する（オフライン学習２００、（式３））。また、現在の問題に対する探索中に呼出されて、ε−ｇｒｅｅｄｙ法で改善解を探索し，改善度を報酬としてＱを更新する（オンライン学習２１０、（式３））。
【００４８】
探索部１２１は、行動価値関数Ｑに従った解の探索をする機能部である。探索部１２１は、オフライン学習２００でチューニングされた行動価値関数Ｑにより現在の探索情報からデータを受け取り、各ステップで方策ａをとることにより、最適解、準最適解を探索する。
【００４９】
次に、図９Ａおよび図９Ｂを用いて解探索処理装置による探索処理について説明する。
本実施形態の探索処理は、強化学習の考え方を利用した制約伝播下における探索処理であり、図９Ａに示される例では、目的関数の途中のスコア（目的関数の値）に応じて報酬ｒを各ステップの方策ごとに随時付与し、Ｑを更新しながら、探索するアルゴリズムになっている。これは、ε−ｇｒｅｅｄｙ法で、確率１−εで、Ｑを最大化するように探索ツリーを探索するものである。
【００５０】
全ての方策候補について、以下の処理を繰り返す（Ｓ０１−Ｓ０６）。
方策ａを選択し（Ｓ０２）、状態ｓ_preと方策ａで制約伝播を算出し（Ｓ０３）、状態、s_postを算出する（Ｓ０４）。そして、Ｑ（ｓ＿ｐｒｅ，ｓ＿ｐｏｓｔ，ａ）を算出する（Ｓ０５）。
【００５１】
Ｓ０１−Ｓ０７のループを抜けたとき、Ｑ（ｓ＿ｐｒｅ，ｓ＿ｐｏｓｔ，ａ）が最大となる方策ａを選択し（Ｓ０７）、方策ａに対する報酬ｒに応じて、Ｑ（ｓ＿ｐｒｅ，ｓ＿ｐｏｓｔ，ａ）を更新する（Ｓ０８、（式３））。
【００５２】
探索終了条件を満たすときには（Ｓ０９：ＹＥＳ）、探索処理を終了し、解が全て定まっていないときには（Ｓ０９：ＮＯ）、次ステップに行き（Ｓ１０）、Ｓ０１に戻る。
【００５３】
探索終了条件は、離散最適化問題の特質やユーザの意図に応じて定める。例えば、ステップ数や探索ツリーの深さが既定のものを超えたこと、準最適解が求められて目的化関数で十分なスコアを得られたこと、解探索処理装置のＣＰＵ稼働時間が既定の時間をオーバしたことなどが考えられる。
【００５４】
また、他の探索戦略においては、図９Ｂに示されるように、方策ａをランダムに選択する。ε−ｇｒｅｅｄｙ法で、確率εで、ランダムに探索ツリーを探索することに対応するものである。
先ず、ランダムに方策ａを選択し（Ｓ２１）、状態ｓ_preと方策ａで制約伝播を算出し（Ｓ２２）、状態、s_postを算出する（Ｓ２３）。そして、Ｑ（ｓ＿ｐｒｅ，ｓ＿ｐｏｓｔ，ａ）を算出する（Ｓ２４）。
そして、方策ａに対する報酬ｒに応じて、Ｑ（ｓ＿ｐｒｅ，ｓ＿ｐｏｓｔ，ａ）を更新する（Ｓ２６、（式３））。
【００５５】
探索終了条件を満たすときには（Ｓ２６：ＹＥＳ）、探索処理を終了し、解が全て定まっていないときには（Ｓ２６：ＮＯ）、次ステップに行き（Ｓ３０）、Ｓ２１に戻る。
【００５６】
離散最適化問題の一例として、将棋、チェス、囲碁などの完全情報ゲームで、局面を与えて望ましい着手を計算する問題がある。この場合には、それらのゲームはルール（制約、目的関数）が固定されている。そのため，探索モデルは同一のルールであれば変更する必要がない。一方、業務スケジューリング問題は、毎回、制約や目的関数が変更されるため、同一のルールが前提条件となっているゲーム用の人工知能では対応できない。本実施形態の解探索処理方法によれば、そのような制約や目的関数が変更される問題においても、ルール（特に制約）の変更が反映される決定変数の選択可能なドメインを制約伝播により、計算し、選択可能なドメインの変化に応じて強化学習のモデルにより探索することによって、ルールの変化に応じて準最適解を効率的に探索できるという利点がある。
【００５７】
また、行動価値関数は、引数の場合分けの数が膨大となる可能性があるため、畳み込みニューラルネットワークにより、行動価値関数Ｑが最大となる方策ａを推定するようにしてもよい。
【００５８】
また、本実施形態では、行動価値関数をＱ学習で更新する強化学習する例を述べたが、強化学習の枠組みなら上記に限定されず、Ａｃｔｏｒ−Ｃｒｉｔｉｃ、Ｓａｒｓａやモンテカルロ法などの他の強化学習の手法によってもよい。
【００５９】
なお、本実施形態で、状態として捉えた方策決定後の選択可能なドメインｓ＿ｐｏｓｔは，方策決定前の選択可能なドメインｓ＿ｐｏｓｔの行列と制約伝播の作用の行列との要素どうしの積により算出することができる。また、方策自体を制約伝播の作用の行列で表現してもよい。
【００６０】
以上、説明したように、本実施形態の解探索処理装置によれば、強化学習の手法を離散最適化問題に応用することにより、制約や目的関数が変更される場合にあっても、行動価値関数にそった探索をおこなうことによって、決定変数のとりうる組合せ数が膨大な場合でも、実用時間内に準最適解を求めることができる。
【符号の説明】
【００６１】
１００…ネットワーク
１０１…表示部
１０２…入力部
１０３…ＣＰＵ
１０４…通信部
１０５…メモリ
１０６…プログラム
１０７…記憶部
１１０…過去の探索情報
１１２…現在の問題情報
１２０…行動価値関数初期化部
１２１…探索部
１２２…遷移後状態算出部
１２３…行動価値関数学習部
【図１】
2019124990.tif 000004
【図２】
2019124990.tif 000005
【図３】
2019124990.tif 000006
【図４】
2019124990.tif 000007
【図５】
2019124990.tif 000008
【図６】
2019124990.tif 000009
【図７】
2019124990.tif 000010
【図８】
2019124990.tif 000011
【図９Ａ】
2019124990.tif 000012
【図９Ｂ】
2019124990.tif 000013