(57)【要約】【課題】学習制御システムに関して、不完全情報下でも、学習効率を向上でき、システム全体の最適化を図ることができる技術を提供する。【解決手段】学習制御システムは、システム１００の複数の各々のサブシステム４０に対して設けられ、制御モデル３０を用いて、サブシステム４０の制御のための学習を行う複数のエージェント２０と、複数の各々のエージェント２０の学習を管理及び制御する学習管理エージェント１０とを備える。学習管理エージェント１０は、複数のエージェント２０の複数の制御モデル３０のセットを含む複数の実験系５０で動作させ、現世代の複数の実験系５０の評価結果から、次世代の複数の実験系５０での更新用の複数の制御モデルのセットを決定する。エージェント２０は、学習管理エージェント１０へ現世代の制御モデル情報を送信し、学習管理エージェント１０から次世代の制御モデル情報を受信する。【選択図】図１
2019046422.tif 000002
【特許請求の範囲】
【請求項１】
計算機システム上に構成され、マルチエージェント学習を制御する学習制御システムであって、
所定のシステムの複数の各々のサブシステムに対して設けられ、制御モデルを用いて、制御対象のサブシステムの制御のための学習を行う複数のエージェントと、
前記複数のエージェントと通信接続され、各々のエージェントの学習を管理及び制御する学習管理エージェントと、
を備え、
前記エージェントは、
前記学習管理エージェントから前記制御モデルを含む情報を受信し、
前記サブシステムの状態値に基づいて前記サブシステムの評価値を計算し、
前記状態値を入力して前記制御モデルの計算によって前記サブシステムの行動値を決定して前記サブシステムへ出力し、
前記学習に応じて前記制御モデルのパラメータを更新し、
前記学習管理エージェントへ前記制御モデル及び前記評価値を含む情報を送信し、
前記学習管理エージェントは、
前記複数のサブシステムに接続された状態の前記複数のエージェントにおける複数の制御モデルのセットを含む複数の実験系を構築し、前記複数の実験系で複数の世代で前記学習を行うように制御し、
前記複数のサブシステムの前記評価値に基づいて、現世代の前記複数の実験系を評価し、評価結果に基づいて、次世代の前記複数の実験系での更新用の複数の制御モデルのセットを決定して、対応する前記制御モデルの情報を、対応する前記エージェントへ送信する、
学習制御システム。
【請求項２】
請求項１記載の学習制御システムにおいて、
前記学習管理エージェントは、
前記複数の実験系の実験系毎に、前記複数のサブシステムの前記評価値に基づいて、前記システムに関するシステム全体評価値を計算し、
前記現世代の前記複数の実験系のうち前記システム全体評価値が最も高い実験系における前記複数の制御モデルのセットを、前記次世代の前記複数の実験系の初期設定値とするように更新を行う、
学習制御システム。
【請求項３】
請求項１記載の学習制御システムにおいて、
前記学習管理エージェントは、前記次世代の前記複数の実験系での前記複数の制御モデルの各々の更新可否を決定し、対応する制御モデル更新可否情報を、対応する前記エージェントへ送信し、前記複数の世代の世代間で前記制御モデルを更新可とする前記エージェントを変動させる、
学習制御システム。
【請求項４】
請求項１記載の学習制御システムにおいて、
前記学習管理エージェントは、前記次世代の前記複数の実験系の前記複数のエージェントのうち、同時に学習を行うエージェントを決定し、前記複数の世代の世代間で前記同時に学習を行うエージェントの数を増やしてゆく、
学習制御システム。
【請求項５】
請求項１記載の学習制御システムにおいて、
前記エージェントは、
前記制御対象の前記サブシステムと通信する第１通信部と、
前記学習管理エージェントと通信する第２通信部と、
前記サブシステムから前記状態値を含む情報を取得する状態取得部と、
前記状態値に基づいて前記サブシステムの前記評価値を計算する評価部と、
前記状態値、及び前記制御モデルに基づいて、前記サブシステムの制御値及び行動価値を計算する制御部と、
前記状態値、前記制御値、及び前記行動価値を記憶し、前記学習に応じて前記制御モデルのパラメータを更新する学習部と、
前記制御値から前記サブシステムの行動値を計算して前記サブシステムへ出力する行動出力部と、
を有し、
前記学習管理エージェントは、
前記複数のエージェントと通信する通信部と、
前記複数の実験系を管理し、前記複数のサブシステムの前記評価値に基づいて、前記現世代の前記複数の実験系を評価して前記評価結果を出力する実験系評価部と、
前記評価結果に基づいて、前記次世代の前記複数の実験系での前記更新用の複数の制御モデルのセットを決定し、対応する前記制御モデルの情報を、対応する前記エージェントへ出力する制御モデル操作部と、
を有する、
学習制御システム。
【請求項６】
請求項１記載の学習制御システムにおいて、
前記学習管理エージェントは、
前記現世代の前記複数の実験系における前記複数の制御モデルのセットについて、進化戦略計算処理を施して、別の複数の制御モデルのセットを生成し、
前記現世代の前記複数の制御モデルのセットと、前記生成された前記別の複数の制御モデルのセットとで、前記エージェントの前記制御モデル毎に比較して、一方を選択することで、前記次世代の前記複数の実験系での前記更新用の複数の制御モデルのセットを決定する、
学習制御システム。
【請求項７】
請求項６記載の学習制御システムにおいて、
前記学習管理エージェントは、前記進化戦略計算処理の際、前記現世代の前記複数の実験系の前記複数の制御モデルのセットから所定の複数の制御モデルを選択し、前記選択した複数の制御モデルのパラメータの重み付き和をとることで、新たな制御モデルを生成する、
学習制御システム。
【請求項８】
請求項１記載の学習制御システムにおいて、
前記複数のエージェントは、互いに情報非共有であり、直接通信を行わない、
学習制御システム。
【請求項９】
請求項１記載の学習制御システムにおいて、
前記複数のエージェントのうち、少なくとも一部の複数のエージェントは、互いに情報共有であり、前記情報共有のための直接通信を行う、
学習制御システム。
【請求項１０】
請求項１記載の学習制御システムにおいて、
前記学習管理エージェントは、前記サブシステム毎に取引データを蓄積させ、前記エージェント毎に、前記取引データに基づいて、前記学習として予備学習を行わせ、前記予備学習の後に、前記複数のエージェントの全体で前記学習として全体学習を行わせる、
学習制御システム。
【請求項１１】
請求項１記載の学習制御システムにおいて、
前記システムの前記複数のサブシステムは、直列接続されている、
学習制御システム。
【請求項１２】
請求項１記載の学習制御システムにおいて、
前記システムの前記複数のサブシステムは、メッシュネットワーク型で接続されている、
学習制御システム。
【請求項１３】
請求項１記載の学習制御システムにおいて、
前記システムは、サプライ・チェーン・マネージメントシステム、エネルギー供給網システム、交通システム、金融システム、またはそれらの複合システムである、
学習制御システム。
【請求項１４】
計算機システム上に構成され、マルチエージェント学習を制御する学習制御システムにおける学習制御方法であって、
前記学習制御システムは、
所定のシステムの複数の各々のサブシステムに対して設けられ、制御モデルを用いて、制御対象のサブシステムの制御のための学習を行う複数のエージェントと、
前記複数のエージェントと通信接続され、各々のエージェントの学習を管理及び制御する学習管理エージェントと、
を備え、
前記エージェントが、
前記学習管理エージェントから前記制御モデルを含む情報を受信し、
前記サブシステムの状態値に基づいて前記サブシステムの評価値を計算し、
前記状態値を入力して前記制御モデルの計算によって前記サブシステムの行動値を決定して前記サブシステムへ出力し、
前記学習に応じて前記制御モデルのパラメータを更新し、
前記学習管理エージェントへ前記制御モデル及び前記評価値を含む情報を送信するステップと、
前記学習管理エージェントが、
前記複数のサブシステムに接続された状態の前記複数のエージェントにおける複数の制御モデルのセットを含む複数の実験系を構築し、前記複数の実験系で複数の世代で前記学習を行うように制御し、
前記複数のサブシステムの前記評価値に基づいて、現世代の前記複数の実験系を評価し、評価結果に基づいて、次世代の前記複数の実験系での更新用の複数の制御モデルのセットを決定して、対応する前記制御モデルの情報を、対応する前記エージェントへ送信するステップと、
を有する、学習制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理技術に関し、機械学習の制御や管理の技術に関する。また、本発明は、所定の環境でタスクを達成するための複数のエージェントを有するマルチエージェント学習、及び制御対象システムからの入力値に基づいて制御対象システムへの出力値を決定する強化学習、等の学習を制御するための技術に関する。
【背景技術】
【０００２】
社会インフラとして、サプライ・チェーン・マネージメント（Supply Chain Management：ＳＣＭ）、エネルギー供給網（Energy Grid：ＥＧ）、交通、金融等の多種多様なシステム、及び各システムが複雑に絡み合って複合的に構成されるシステムを有する。各システムは複数のサブシステムによって構成されている。システム及び各サブシステムを情報／データに基づいて最適化するための技術として、機械学習を用いた学習制御システム等の技術が注目されている。各サブシステムは、状態や制約等の異なる状況、行動、及び成果目標、等の情報を有する。それらの情報は時々刻々と変化する。そのため、システム最適化のためにそれらの情報の全てを人手で設計や制御しようとしても限界がある。
【０００３】
このような一般的な課題に対し、機械学習によるサブシステムの制御が考えられる。サブシステムの性能を最適化するために、エージェントと呼ばれる自動制御ソフトウェアを用いる。マルチ・エージェント・システム（Multi-Agent System：ＭＡＳ）では、複数のサブシステムに対応させた複数のエージェントを用いる。各エージェントが自律的に各サブシステムを制御する。各エージェントは、動作を決定する制御モデルを有する。ＭＡＳの目的は、システム全体の最適化である。ＭＡＳにおいて、対象サブシステムを制御するためには、エージェントの制御モデルのパラメータを決定する必要がある。制御モデルは、対象からの入力値に応じて対象への出力値を決定する関数に相当する。
【０００４】
従来、エージェントの制御モデルのパラメータ調整の自動化手法として、強化学習（Reinforcement Learning：ＲＬ）を用いた手法が提案されている。例えば、非特許文献１には、マルチエージェント強化学習（ＭＡＲＬ）について記載されている。
【０００５】
学習制御システムに関する先行技術例として、特開２０１４−９９１１３（特許文献１）が挙げられる。特許文献１には、家電ネットワークシステムとして、複数の家電機器を自律分散的に学習制御するとともに、センサの抽出に伴う不具合を解消して、複数の家電機器の最適制御を可能にする旨が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１４−９９１１３号公報
【非特許文献】
【０００７】
【非特許文献１】L. Busoniu, R.Babuska, and B.D.Schutter,“A comprehensive survey of multiagent reinforcement learning”,IEEE Tran. on Systems Man and Cybernetics Part C Applications and Reviews, Vol.38, No. 2, pp. 156-172, (2008).
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ＭＡＲＬでは、強化学習の計算上で各エージェントが試行錯誤を行うことで、システムが不安定となり、その不安定が学習に影響を及ぼす場合がある。例えば、特許文献１のようなシステムでは、学習制御を行う主体が、各サブシステム（例えば家電機器）の情報、及び各エージェントの試行錯誤の情報の全てを、完全情報として得ることができる。そのようにサブシステムの完全情報が得られる状況下の場合には、エージェントの試行錯誤による不安定が問題にならず、複数のエージェントの学習が可能である。
【０００９】
一方、ＳＣＭ等の各システム及び各サブシステム（例えば小売、卸、工場等）では、システム間やサブシステム間の契約等に応じて、一部または全ての情報が共有されない情報非共有の前提である。即ち、ＳＣＭ等のシステムを対象としてＭＡＲＬ等のマルチエージェント学習を行うシステムにおいて、複数のエージェント間では、不完全情報の前提である。そのため、各エージェントの学習の試行錯誤による不安定の発生の場合に、システム全体の学習が非効率になり、システム全体の最適化が実現されない場合がある。学習制御システムは、不完全情報下でのマルチエージェント学習を好適に制御する必要がある。特許文献１のように完全情報が前提の仕組みでは、不完全情報下の課題に対処できないため、別の対処手段が必要である。
【００１０】
また、ＭＡＳ及び学習制御システムは、不完全情報下では、あるエージェントからみた他のエージェントの振る舞いを、限られた情報で予測し、エージェントからのサブシステムへの出力値を決定する。これにより、各サブシステム及びシステム全体の最適化を図る。しかし、各サブシステムの最適化とシステム全体の最適化とは必ずしも一致しない。あるいは、システム全体の最適化のために、一部のサブシステムが一時的にリスクを被る可能性を持つ。したがって、不完全情報下では、あるサブシステムのエージェントの制御モデルが更新されないことから、システム全体の最適化が行われず、均衡状態の発生によって、学習停滞が生じる場合がある。そこで、システム全体の最適化のためには、その均衡状態及び学習停滞への対処手段が必要である。
【００１１】
本発明の目的は、マルチエージェント学習等を制御する学習制御システム等の技術に関して、不完全情報下でも、学習効率を向上でき、システム全体の最適化を図ることができる技術を提供することである。
【課題を解決するための手段】
【００１２】
本発明のうち代表的な実施の形態は、学習制御システムであって、以下に示す構成を有することを特徴とする。
【００１３】
一実施の形態の学習制御システムは、計算機システム上に構成され、マルチエージェント学習を制御する学習制御システムであって、所定のシステムの複数の各々のサブシステムに対して設けられ、制御モデルを用いて、制御対象のサブシステムの制御のための学習を行う複数のエージェントと、前記複数のエージェントと通信接続され、各々のエージェントの学習を管理及び制御する学習管理エージェントと、を備え、前記エージェントは、前記学習管理エージェントから前記制御モデルを含む情報を受信し、制御対象の前記サブシステムの状態値に基づいて前記サブシステムの評価値を計算し、前記状態値を入力して前記制御モデルの計算によって前記サブシステムの行動値を決定して前記サブシステムへ出力し、前記学習に応じて前記制御モデルのパラメータを更新し、前記学習管理エージェントへ前記制御モデル及び前記評価値を含む情報を送信し、前記学習管理エージェントは、前記複数のサブシステムに接続された状態の前記複数のエージェントにおける複数の制御モデルのセットを含む複数の実験系を構築し、前記複数の実験系で複数の世代で前記学習を行うように制御し、前記複数のサブシステムの前記評価値に基づいて、現世代の前記複数の実験系を評価し、評価結果に基づいて、次世代の前記複数の実験系での更新用の複数の制御モデルのセットを決定して、対応する前記制御モデルの情報を、対応する前記エージェントへ送信する。
【発明の効果】
【００１４】
本発明のうち代表的な実施の形態によれば、マルチエージェント学習等を制御する学習制御システム等の技術に関して、不完全情報下でも、学習効率を向上でき、システム全体の最適化を図ることができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態１の学習制御システムの構成を示す図である。
【図２】実施の形態１の学習制御システムにおける装置構成例を示す図である。
【図３】実施の形態１で、システムの構成例としてＳＣＭの場合を示す図である。
【図４】実施の形態１で、学習管理の概要として複数の実験系を示す説明図である。
【図５】実施の形態１で、世代間での制御モデルの更新を示す説明図である。
【図６】実施の形態１で、機能ブロック構成を示す図である。
【図７】実施の形態１で、エージェントの処理フローを示す図である。
【図８】実施の形態１で、学習管理エージェントの第１処理フローを示す図である。
【図９】実施の形態１で、学習管理エージェントの第２処理フローを示す図である。
【図１０】本発明の実施の形態２の学習制御システムにおける進化戦略計算を示す図である。
【図１１】実施の形態２で、学習管理エージェントの処理フローを示す図である。
【図１２】本発明の実施の形態３の学習制御システムにおける、予備学習、全体学習、及びＳＣＭシステムについて示す図である。
【図１３】実施の形態３で、更新制御モデルの変動例を示す図である。
【図１４】実施の形態３で、学習結果及び画面表示例を示す図である。
【図１５】実施の形態１等の変形例における、システム構造例として、メッシュネットワーク型の場合を示す説明図である。
【図１６】実施の形態１等の変形例における、システム構造例として、入れ子型の場合を示す説明図である。
【図１７】実施の形態１等の第１変形例の学習制御システムの構成を示す図である。
【図１８】実施の形態１等の第２変形例の学習制御システムの構成を示す図である。
【図１９】実施の形態１等の第３変形例の学習制御システムの構成を示す図である。
【図２０】実施の形態１等の第４変形例の学習制御システムの構成を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において同一部には原則として同一符号を付し、その繰り返しの説明は省略する。
【００１７】
（実施の形態１）
図１〜図９を用いて、本発明の実施の形態１の学習制御システム及び方法について説明する。実施の形態１の学習制御方法は、実施の形態１の学習制御システム上で実行されるステップを有する方法である。
【００１８】
実施の形態１の学習制御システムは、ＳＣＭ等のシステムを制御対象とするＭＡＲＬを管理及び制御する自律分散型の学習制御システムである。実施の形態１では、制御対象システムのサブシステム間で一部または全部の情報が非共有である情報非共有の状況を前提とし、対応するエージェント間で不完全情報の状況を前提とする。この学習制御システムは、不完全情報下でも、各エージェントの学習を効率的になるように制御することで、各サブシステムの最適化及びシステム全体の最適化を図る。また、この学習制御システムは、サブシステム最適化に伴って均衡状態になった場合でも、均衡状態を破って学習停滞を改善してシステム全体の最適化を図る仕組みを有する。
【００１９】
［学習制御システム（１）］
図１は、実施の形態１の学習制御システムを含む全体の構成を示す。全体として、システム１００に対し、実施の形態１の学習制御システムが設けられている。実施の形態１の学習制御システムは、任意の所定の計算機システム上に構成される。実施の形態１の学習制御システムは、１つの学習管理エージェント１０と、複数（Ｎとする）のエージェント２０｛２０１〜２０Ｎ｝とを有する。学習管理エージェント１０と各エージェント２０とが通信接続されている。
【００２０】
システム１００は、制御対象の所定のシステムまたは環境である。システム１００は、複数（Ｎとする）のサブシステム４０｛４０１〜４０Ｎ｝を有する。システム１００は、ＭＡＲＬの強化学習の環境である。システム１００は、例えば後述のＳＣＭシステムである。
【００２１】
エージェント２０は、サブシステム４０を制御するための学習を行うサブシステムエージェントである。エージェント２０｛２０１〜２０Ｎ｝は、サブシステム４０の制御のための制御モデル３０｛３０１〜３０Ｎ｝を有する。複数の各エージェント２０｛２０１〜２０Ｎ｝は、対応付けられる複数の各サブシステム４０｛４０１〜４０Ｎ｝と通信接続されている。エージェント２０とサブシステム４０は一対一の関係で接続されている。各エージェント２０の構成は同じであるが、制御モデル３０を用いた学習内容は異なる。
【００２２】
エージェント２０は、対応するサブシステム４０に関して、制御モデル３０に基づいて学習を行い、学習結果に応じて、サブシステム４０を制御する。エージェント２０は、サブシステム４０の行動（例えば物品の発注）を制御する。エージェント２０は、サブシステム４０から得た入力値に基づいて、制御モデル３０での計算によって、サブシステム４０への出力値を得る。各制御モデル３０は、パラメータ｛ｐ１，……，ｐｎ｝で表される。制御モデル３０のパラメータは、学習に応じて更新される。
【００２３】
学習管理エージェント１０は、複数の各エージェント２０の学習を管理及び制御するエージェントである。学習管理エージェント１０は、エージェント２０の学習制御によって、システム１００の最適化を図る。学習管理エージェント１０は、複数のエージェント２０及びシステム１００によって構成される複数の実験系５０を管理する。学習管理エージェント１０は、時系列上の世代毎の実験系５０での実験を管理する。実験系５０での実験は、複数回の学習の繰り返しで構成される。各実験系５０の学習内容には差異が生じる。
【００２４】
学習管理エージェント１０は、エージェント２０からの入力値として、現状の制御モデル、サブシステム評価値等を取得する。学習管理エージェント１０は、各エージェント２０のサブシステム評価値に基づいて、システム１００のシステム全体評価値を計算する。学習管理エージェント１０は、システム全体評価値に基づいて、各エージェント２０の制御モデル３０の更新可否等を判断し、次世代の実験系５０に適用するための制御モデル３０を選択する。学習管理エージェント１０は、エージェント２０への出力値として、次世代の更新用の制御モデル３０の情報と、制御モデル更新可否情報と、学習終了条件とを含む情報を、エージェント２０へ送信する。
【００２５】
学習管理エージェント１０は、世代毎に同時に学習を行うエージェント２０の組み合わせや数を選択し、システム全体評価値に基づいて、各エージェント２０の制御モデル３０のパラメータの更新を行う。
【００２６】
学習管理エージェント１０と各エージェント２０との間では、所定の方式で通信（後述のエージェント間通信）を行い、所定の情報を入出力する。学習管理エージェント１０及び各エージェント２０は、その通信のための通信インタフェースを有する。既存の通信網及び通信インタフェース装置等の上でその通信が行われる。
【００２７】
図１で、エージェント２０がサブシステム４０に接続された状態のシステム１００において、機械学習による実験を行う系を、実験系５０と称する。学習管理エージェント１０は、複数の実験系５０での実験を管理する。
【００２８】
学習管理エージェント１０は、ある世代での実験の結果におけるシステム全体評価値に基づいて、最適な制御モデルを選択し、次世代の実験のための初期設定値として更新する。学習管理エージェント１０は、その次世代の制御モデルの情報を、自動的に、各エージェント２０に配信して、各エージェント２０の制御モデル３０を更新させる。
【００２９】
［学習制御システム（２）］
学習制御システムの動作等の概要は以下である。エージェント２０は、対応するサブシステム４０を介して、サブシステム４０によるシステム１００の状態観測値を取得し、状態観測値からサブシステム４０の状態値を取得する。エージェント２０は、状態値に基づいて、制御モデル３０の計算によって、サブシステム４０の制御値や行動価値を得る。エージェント２０は、制御値に基づいてサブシステム４０の行動値を得る。エージェント２０は、行動値を、出力値として、対応するサブシステム４０へ出力する。
【００３０】
これにより、サブシステム４０は、行動値に基づいて、システム１００へ行動として働きかける。その結果、エージェント２０は、サブシステム４０から次の状態観測値を取得し、その状態観測値に基づいて、サブシステム４０の報酬値を決定する。
【００３１】
エージェント２０は、対応するサブシステム１０の評価値を、所定の指標に基づいて算出する。指標は、サブシステム４０の適用問題毎の指標である。指標は、例えば、小売による物品の発注に関するコストを最小にすること等である。
【００３２】
エージェント２０は、サブシステム４０の評価値（サブシステム評価値と記載する）と、現状の制御モデル３０を表す情報（具体的にはパラメータ）とを含む情報を、学習管理エージェント１０に送信する。
【００３３】
エージェント２０は、算出した行動価値等に基づいて、学習を行い、制御モデル３０のパラメータを更新する。
【００３４】
学習管理エージェント１０は、各エージェント２０から、サブシステム評価値及び制御モデル等の情報を受信する。学習管理エージェント１０は、各サブシステム評価値から、所定の演算によって、システム１００の全体に関する評価値（システム全体評価値と記載する）を計算する。学習管理エージェント１０は、システム全体評価値に基づいて、後述の処理によって、制御モデル３０の更新について決定する。学習管理エージェント１０は、エージェント２０に更新設定するための制御モデル３０、及び制御モデル更新可否等を含む情報を、エージェント２０に送信する。
【００３５】
制御モデル更新可否情報は、複数の各エージェント２０について、世代毎に、制御モデル３０を更新可とするか更新否とするか等を設定する値である。学習管理エージェント１０は、世代間で制御モデル３０を更新可とするエージェント２０を変動させる。これにより、制御モデル３０が更新されない均衡状態を破り、システム全体の最適化を図る。
【００３６】
［学習制御システム（３）］
図２は、実施の形態１の学習制御システムの装置構成例を示す。即ち、計算機システムの実装例を示す。この学習制御システムは、学習管理装置１と、複数のサブシステム自動制御装置２とを有し、それらが通信接続されている。図２では、省略して単一のサブシステム４０に関する構成部分を示す。学習管理エージェント１０及びエージェント２０は、それぞれ、例えば汎用計算機上に構成できる。
【００３７】
学習管理装置１には、学習管理エージェント１０が実装されている。学習管理装置１は、例えば事業者によるクラウドコンピューティングシステムのサーバで構成され、ソフトウェアプログラム処理によって、学習管理エージェント１０を実現する。学習管理装置１は、学習管理エージェント１０が扱う情報／データを格納するＤＢを備える。ＤＢは、外部のＤＢサーバ等で構成されてもよい。また、学習管理装置１には、学習制御システムを管理する管理者等のユーザの端末装置が接続される。ユーザは、端末装置を操作して学習管理装置１にアクセスし、指示入力、システム設定、学習結果確認、等の入出力を行う。
【００３８】
サブシステム自動制御装置２には、エージェント２０が実装されている。サブシステム自動制御装置２は、例えばサーバまたは端末装置で構成され、ソフトウェアプログラム処理によって、エージェント２０を実現する。
【００３９】
学習管理装置１及びサブシステム自動制御装置２の各装置は、一般的なハードウェア構成が適用できる。各装置は、例えばＣＰＵ、ＲＯＭ、ＲＡＭ等によって構成される演算部、ＲＯＭ、ＨＤＤ、ＳＳＤ等で構成できる記憶部、所定の通信インタフェース装置や入出力インタフェース装置、入力装置及び表示装置等を有する。各装置は、学習の計算負荷等に応じて、複数の計算機で構成されて、並列計算等を行ってもよい。後述の各通信部は、通信インタフェース装置上で通信処理を行う。
【００４０】
サブシステム４０は、サブシステム端末装置３を含む。サブシステム端末装置３は、一般的なＰＣ等が適用できる。サブシステム４０には、他に、ＬＡＮやサーバ等を含んでもよい。サブシステム端末装置３は、サブシステムソフトウェア３００を備える。サブシステムソフトウェア３００は、サブシステム４０を管理し、他のサブシステム４０との入出力を行う所定のソフトウェアである。例えば、システム１００がＳＣＭシステムであり、サブシステム４０が小売である場合、サブシステムソフトウェア３００は、物品や発注を管理するソフトウェアである。サブシステム４０内の担当者等のユーザは、サブシステム端末装置３を操作して業務を行う。サブシステム端末装置３は、他のサブシステム４０との取引データ等を保持しており、取引データまたはその一部の情報（状態観測値等）を、サブシステム自動制御装置２に送信する。サブシステム端末装置３は、サブシステム自動制御装置２から行動値を受信し、その行動値に基づいて他のサブシステム４０との取引における行動（例えば発注）を制御する。
【００４１】
なお、各サブシステム３０のサブシステム自動制御装置２毎にユーザを有してもよい。そのユーザは、サブシステム自動制御装置２のエージェント２０に対する入出力を行ってもよい。例えば、サブシステム自動制御装置２毎にそのユーザに対して画面を表示し、エージェント２０の設定や学習状態等を確認可能とする。
【００４２】
学習管理エージェント１０は、後述のＤＢ部１４に格納されるデータに基づいて、ＧＵＩ部１５によって画面に各種の情報を表示する。エージェント２０は、データ記憶部２４に格納されるデータに基づいて、画面に各種の情報を表示してもよい。
【００４３】
学習管理エージェント１０またはエージェント２０が提供する画面では、例えば、世代毎（少なくとも現世代）に、実験系５０毎のシステム全体評価値を表示してもよい。また、画面には、例えば、システム全体評価値、サブシステム評価値、世代毎の最適な制御モデル３０等の情報を表示してもよい。
【００４４】
［システム構成例］
図３は、実施の形態１におけるシステム１００の構成例として、ＳＣＭに適用した場合を示す。図３で、システム１００は、ＳＣＭシステムである。図３の学習制御システムは、ＳＣＭシステムを制御対象とする。本例では、説明を単純にするため、１種類の物品を扱うＳＣＭシステムとするが、複数の物品を扱う場合も同様である。このシステム１００は、複数（４つ）のサブシステム４０として、下流から上流へ、小売（サブシステム＃１）、二次卸（サブシステム＃２）、一次卸（サブシステム＃３）、工場（サブシステム＃４）を有し、それらが直列に接続されている。なお、小売に接続される顧客については、サブシステム４０とはみなさない。
【００４５】
各サブシステム４０（小売、卸）は、１つ上流のサブシステム４０から配送される物品を受け取る。ただし、工場は、最上流であるため、自身で生産して物品を受け取る。各サブシステム４０（工場、卸）は、１つ下流のサブシステム４０から発注（発注票）を受け取り、発注票と受注残分の数量の物品を、在庫から、存在する分だけ、１つ下流のサブシステム４０に配送する。各サブシステム４０は、在庫と受注残の和が小さくなるように発注量を決め、１つ上流のサブシステム４０に発注票を送る。ただし、工場は、最上流であるため、自身の生産量として処理する。
【００４６】
ＳＣＭシステムは、このような一連の処理を行う。なお、発注票の上流への伝達には発注遅延が生じ、物品の下流への配送には配送遅延が生じる。よって、顧客から小売へ発注票を送ると、その発注票は小売から発注遅延として伝播され、次に二次卸に送られ、次に一次卸に送られ、最終的に工場にまで伝播される。反対に、工場からは、発注票に応じて物品が配送遅延として送られ、次に一次卸に送られ、次に二次卸に送られ、次に小売に送られ、最終的に顧客に物品が届く。本例では、学習計算上のある時刻Ｔと次の時刻Ｔ＋１との間の単位（ターンと称する）について、入荷、受注、在庫・受注残計算、出荷、及び発注といった一連の動作を１ターンとする。
【００４７】
このＳＣＭシステムにおいて、例えば契約等に基づいて、基本的にサブシステム４０間では発注等の入出力データ以外については情報非共有であり、対応するエージェント２０間では不完全情報が前提である。
【００４８】
上記ＳＣＭシステムにおいて、各サブシステム４０が在庫量と受注残の数を抑制するように発注量を決めることは、一般的に困難なことが知られている。本例では、各サブシステム４０に接続されるエージェント２０｛Ａ１〜Ａ４｝と、各エージェント２０に接続される学習管理エージェント１０とが連携する。エージェント２０は、学習によって、対応するサブシステム４０の発注量や配送量を制御する。これにより、各サブシステム４０の発注量や配送量に関する制御モデル３０｛Ｃ１〜Ｃ４｝が獲得される。
【００４９】
エージェント２０は、サブシステム４０の最適化のために、サブシステム評価値として、コストを計算する。このコストは、サブシステム４０の在庫量と受注残との重み付き和で表される。各エージェント２０は、対応するサブシステム４０のコストがなるべく小さくなるように制御モデル３０を学習する。また、学習管理エージェント１０は、ＳＣＭシステムの最適化のために、システム全体評価値として、ＳＣＭシステムのコストを計算する。学習管理エージェント１０は、各エージェント２０からのサブシステム評価値に基づいて、システム全体評価値を計算する。
【００５０】
各サブシステム４０｛＃１〜＃４｝は、サブシステム端末装置３｛３ａ〜３ｄ｝を有する。サブシステム端末装置３は、取引データ等を、対応するサブシステム自動制御装置２に送信する。各サブシステム自動制御装置２のエージェント２０は、サブシステム端末装置３から受信した取引データ等を入力値として、制御モデル３０を用いた強化学習を行う。サブシステム自動制御装置２は、例えば対応するサブシステム４０に所属する。サブシステム自動制御装置２の設置箇所は、サブシステム４０の内部でも外部でもよい。
【００５１】
学習管理装置１は、広域通信網を介して、各サブシステム４０のサブシステム自動制御装置２と通信接続されている。学習管理装置１は、各サブシステム自動制御装置２０から、学習結果の制御モデル情報等を受信する。例えば、事業者は、学習管理装置１及び各サブシステム自動制御装置２を管理する。
【００５２】
［学習管理−複数の実験系］
図４は、学習制御システムにおける学習管理の概要として、ある世代における複数（Ｍとする）の実験系５０｛５０１〜５０Ｍ｝の構成を示す。複数の実験系５０として、実験系５０１（＃１），５０２（＃２），……，５０Ｍ（＃Ｍ）を有する。学習管理エージェント１０は、このような複数の実験系５０を構成し、実験を管理する。
【００５３】
各実験系５０は、システム１００（複数のサブシステム４０の図示を省略する）に対して接続される複数（Ｎ）のエージェント２０｛２０１（Ａ１），２０２（Ａ２），……，２０Ｎ（ＡＮ）｝の各制御モデル３０｛Ｃ１，Ｃ２，……，ＣＮ｝による学習のセットとして定義される。各実験系５０の制御モデル３０の状態及び学習内容は異なり得る。図４の例では、実験系５０１（＃１）は、エージェントＡ１〜ＡＮの制御モデルＣ１〜ＣＮの状態を、制御モデル３０ａ｛Ｃ１ａ〜ＣＮａ｝として表す。同様に、実験系５０２（＃２）では、制御モデル３０ｂ｛Ｃ１ｂ〜ＣＮｂ｝として表す。実験系５０Ｍ（＃Ｍ）では、制御モデル３０ｚ｛Ｃ１ｚ〜ＣＮｚ｝として表す。
【００５４】
各実験系５０は、所定の学習ストーリーでの実験を、所定の回数（実験回数と記載する）で行う。所定の学習ストーリーは、例えば、複数のエピソードで構成され、エピソードは、複数のターンで構成される。所定の学習ストーリーは、以下のように定義される。まず、ある時刻Ｔにおける状態観測値、行動値、及び報酬値を、１ターン目の情報とする。同様に、次の時刻Ｔ＋１における状態観測値、行動値、及び報酬値を、２ターン目の情報とする。任意の所定のターン数（例えば５０ターン）を、１つのエピソードと定義する。そのエピソードを所定回数行ったものを、所定の学習ストーリーと定義する。なお、１ターン（時刻Ｔと時刻Ｔ＋１との間の単位時間）の分解能は、任意に設定できる。現実世界では、例えば１分単位としてもよいし、１日単位としてもよい。また、計算機のシミュレータ環境内で、１ターンの区切りが設定されている場合には、それを単位時間とすることができる。
【００５５】
また、所定の学習ストーリーでの実験を、世代と定義する。世代の繰り返し回数を世代数と定義する。世代毎に、複数の実験系５０での実験が所定の実験回数で繰り返される。学習管理エージェント１０は、それらの世代数や実験回数等を管理する。
【００５６】
複数の実験系５０の実験については、実験系５０毎に時間的に順次に実験を行う方式（順次実験方式）を用いてもよいし、複数の実験系５０で時間的に同時並列的に実験を行う方式（並列実験方式）を用いてもよい。学習管理エージェント１０は、その方式を管理し、方式に応じた実験系５０の選択や順序を管理する。学習管理エージェント１０は、順次実験方式の場合、複数の実験系５０｛＃１〜＃Ｍ｝の各実験を、所定の学習ストーリーの実験毎に１つずつ順次に構築及び動作させる。例えば、学習管理エージェント１０は、最初に実験系＃１を構築して実験を行わせて結果を取得し、次に実験系＃２を構築して実験を行わせて結果を取得し、最後に実験系＃Ｍを構築して実験を行わせて結果を取得する。また、学習管理エージェント１０は、並列実験方式の場合、シミュレータ環境等に基づいて、複数の実験系５０の複数の実験を同時並列で構築及び動作させる。
【００５７】
また、複数の実験系５０では、各エージェント２０の制御モデル３０を同じにして実験を行うこと、及び異ならせて実験を行うこと、のいずれも可能である。学習管理エージェント１０は、そのような各エージェント２０の制御モデル３０の同異を管理する。複数の実験系５０で同じ制御モデル３０を用いて実験を行った場合でも、学習結果は異なるものになる。
【００５８】
また、ある世代の実験系５０内における複数のエージェント２０の複数の制御モデル３０を用いた複数回の実験では、同時に学習を行うエージェント２０の組み合わせ、数や順序等が制御される。学習管理エージェント１０は、世代毎に実験系５０で同時に学習を行うエージェント２０及び制御モデル３０を更新するエージェント２０の選択、その数、変動させる順序等を制御する。
【００５９】
複数のエージェント２０｛Ａ１〜ＡＮ｝における複数の制御モデル３０｛Ｃ１〜ＣＮ｝のセットを、制御モデルセットと記載する。制御モデルはパラメータで表され、制御モデルセットはパラメータセットで表される。
【００６０】
［学習管理−世代間の制御モデルの更新］
図５は、続いて、世代間での実験系５０の制御モデル３０の更新の概要について示す。図５では、ある世代Ｇ（現世代）と次の世代Ｇ＋１との間での制御モデルセットの選択及び更新について示す。
【００６１】
実験系５０の各エージェント２０は、ある世代Ｇ（現世代）での複数の実験の動作終了後、サブシステム評価値及び現世代の制御モデル情報を、学習管理エージェント１０に送信する。これにより、学習管理エージェント１０は、各実験系５０における各サブシステム評価値、及び現世代の制御モデルセット情報を取得する。学習管理エージェント１０は、各サブシステム評価値から所定の演算でシステム全体評価値を計算する。例えば、実験系＃１のシステム全体評価値Ｖ１、実験系＃Ｘのシステム全体評価値Ｖｘ、実験系＃Ｍのシステム全体評価値Ｖｍ等を示す。
【００６２】
学習管理エージェント２０は、各実験系５０のシステム全体評価値に基づいて、現世代においてシステム全体評価値が最も高かった実験系５０を判定する。学習管理エージェント２０は、その判定結果から、その実験系５０の制御モデルセットを選択する。例えば、システム全体評価値Ｖｘが最も高い値であったとする。選択された実験系５０及び制御モデルセットを、実験系＃Ｘ、制御モデル｛Ｃ１ｘ，Ｃ２ｘ，……，ＣＮｘ｝で示す。学習管理エージェント１０は、その選択した制御モデルセットを、次の世代Ｇ＋１の複数の各実験系５０の制御モデルセットの初期設定値として、制御モデル３０の更新を行う。学習管理エージェント２０は、その制御モデルセット情報に対応する各制御モデル情報を、対応するエージェント２０｛Ａ１〜ＡＮ｝に送信する。
【００６３】
各実験系５０のエージェント２０は、受信した制御モデル情報に基づいて、自身の制御モデル３０の設定を更新する。これにより、各実験系５０は、更新された制御モデルセットを用いて、次世代の実験を行う。以降、世代毎に同様に繰り返しである。
【００６４】
なお、実施の形態１では、上記のような世代毎の各エージェント２０の制御モデル３０の更新を自動的に実行する。変形例としては、世代毎の各エージェント１０の制御モデル３０の更新の際に、ユーザに対する更新確認を行うようにしてもよい。例えば、学習管理装置１において、画面に更新確認情報を表示し、ユーザが確認操作入力した場合に、更新を実行してもよい。
【００６５】
［機能ブロック構成］
図６は、実施の形態１の学習制御システムの機能ブロック構成を示す。学習管理エージェント１０は、機能ブロックとして、実験系評価部１１、制御モデル操作部１２、通信部１３、ＤＢ部１４、ＧＵＩ部１５、等を有する。
【００６６】
実験系評価部１１は、複数の実験系５０を管理する。実験系評価部１１は、各実験系５０の各エージェント２０から受信したサブシステム評価値に基づいて、システム全体評価値を計算する。実験系評価部１１は、複数の実験系５０から、システム全体評価値が最も高かった実験系５０を判定する。また、実験系評価部１１は、各実験系５０での実験に関する各エージェント２０の学習可否、即ち制御モデル３０の更新可否を判定する。
【００６７】
制御モデル操作部１２は、実験系評価部１１の評価結果（システム全体評価値等）に基づいて、現世代の複数の実験系５０のうちシステム全体評価値が最も高かった実験系５０の制御モデルセットを選択する。制御モデル操作部１２は、選択した制御モデルセットを、次世代の複数の実験系５０の制御モデルセットの初期設定値とするように、制御モデル３０の更新を行う。
【００６８】
通信部１３は、各実験系５０の各エージェント２０との通信処理を行う。通信部１３は、エージェント２０からサブシステム評価値及び現世代の制御モデル情報を含む情報を受信する。通信部１３は、次世代の更新用の制御モデル情報、制御モデル更新可否、及び学習終了条件等を含む情報を、各エージェント２０へ送信する。学習終了条件は、世代毎の実験系５０での実験を終了する条件を通知する情報である。
【００６９】
ＤＢ部１４には、学習制御に係わる各情報／データが格納される。ＤＢ部１４には、例えば、各エージェント２０の各制御モデル３０の情報、各サブシステム４０のサブシステム評価値、システム１００のシステム全体評価値、各世代の各実験系５０の学習結果情報、制御モデル更新情報等が格納される。制御モデル更新情報は、制御モデル更新可否情報に基づいて、世代間でどのように制御モデル３０を更新したかを表す情報である。
【００７０】
ＧＵＩ部１５は、ユーザ（管理者）に対するＧＵＩ（グラフィカル・ユーザ・インタフェース）としての画面を提供する。ＧＵＩ部１５は、例えばＷｅｂページ画面を提供する。ＧＵＩ部１５は、画面に各種の情報を表示し、画面に対するユーザ入力を受け付ける。ユーザは、画面をみながら、学習制御システムに対するユーザ設定、学習内容に関する設定、指示入力等が可能であり、また、学習の状態や結果等を確認可能である。
【００７１】
エージェント２０は、機能ブロックとして、制御部２１、学習部２２、通信部２３、データ記憶部２４、状態取得部２５、行動出力部２６、通信部２７、等を有する。状態取得部２５は、評価部２８を含む。
【００７２】
制御部２１は、制御モデル３０による計算を制御し、学習によって制御モデル３０を同定する。制御部２１は、状態値を制御モデル３０に入力し、制御モデル３０の計算によって制御値や行動価値を出力する。
【００７３】
学習部２２は、制御部２１からの行動価値、制御値、及び状態取得部２５からの報酬値に基づいて、学習を行い、制御部２１の制御モデル３０のパラメータを更新する。
【００７４】
通信部２３は、制御部２１の制御に従って、学習管理エージェント１０との通信処理を行う。通信部２３は、例えば、現世代の制御モデル情報、サブシステム評価値、及び終了通知等を含む情報を、学習管理エージェント１０へ送信する。通信部２３は、学習管理エージェント１０から、次世代の制御モデル情報、制御モデル更新可否、及び学習終了条件等を含む情報を受信する。終了通知は、世代毎の実験系５０の実験の終了を通知する情報である。
【００７５】
データ記憶部２４は、制御部２１や学習部２２等で生成された情報／データを記憶する。データ記憶部２４には、状態値、制御値、報酬値、行動価値、等が記憶される。
【００７６】
状態取得部２５は、サブシステム４０から状態観測値を取得し、状態観測値から、制御部２１に入力するための状態値を生成する。また、状態取得部２５は、サブシステム４０から報酬値を取得する。
【００７７】
行動出力部２６は、制御部２１からの制御値に基づいて、所定の変換によって、サブシステム４０の行動のための行動値を生成し、サブシステム４０へ出力する。
【００７８】
通信部２７は、状態取得部２５等の制御に従って、サブシステム４０との通信処理を行う。通信部２７は、例えば、サブシステム４０から入力値として状態観測値や報酬値を受信する。通信部２７は、例えば、サブシステム４０へ出力値として行動値を送信する。
【００７９】
評価部２８は、サブシステム４０の報酬値に基づいて、所定の評価処理を行い、サブシステム評価値を計算する。
【００８０】
［エージェント処理フロー］
図７を用いて、エージェント２０の動作について説明する。図７は、エージェント２０の処理フローを示す。図７は、ステップS101〜S113を有する。以下、ステップの順に説明する。
【００８１】
（S101）  エージェント２０は、通信部２３を用いて、学習管理エージェント１０から、初期設定値となる制御モデル、制御モデル更新可否、及び学習終了条件を含む情報を受信する。
【００８２】
（S102）  エージェント２０は、受信した制御モデルを、制御部２１の制御モデル３０に設定する。
【００８３】
（S103）  エージェント２０は、学習終了条件に基づいて、終了条件判定を行う。判定結果が終了（Ｙ）の場合、S104へ進み、非終了（Ｎ）の場合、S105へ進む。
【００８４】
（S104）  エージェント２０は、通信部２３を用いて、終了通知、サブシステム評価値、及び学習終了時の状態の現世代の制御モデルを含む情報を、学習管理エージェント１０に送信し、動作を終了する。
【００８５】
（S105）  一方、S105で、エージェント２０は、状態取得部２５で状態観測値を処理して得た状態値を含むデータを、データ記憶部２４に一旦格納する。エージェント２０は、過去数ターン分のデータから構成される状態値を制御部２１へ与え、報酬値を学習部２２へ与える。
【００８６】
（S106）  制御部２１は、制御モデル３０に状態値を入力し、出力値である制御値及び行動価値を算出する。
【００８７】
（S107）  制御部２１は、制御値を行動出力部２６及び学習部２２へ与え、行動価値を学習部２２へ与える。
【００８８】
（S108）  行動出力部２６は、制御値を、行動値に変換して、出力値として、サブシステム４０へ出力する。その際、通信部２７は、出力値をサブシステム４０へ送信する。
【００８９】
（S109）  エージェント２０は、制御モデル更新可否情報に基づいて、制御モデル３０について、制御モデル更新可否判定を行う。判定結果が更新可（Ｙ）の場合、S110以降の処理へ進み、更新否（Ｎ）の場合、S113へ進む。
【００９０】
（S110）  学習部２２は、状態値、制御値、報酬値、及び行動価値を、データ記憶部２４に保管する。
【００９１】
（S111）  学習部２２は、データ記憶部２４から学習データ（所定ターン数の状態値等）を読み込む。
【００９２】
（S112）  学習部２２は、読み込んだ学習データに基づいて、制御部２１の制御モデル３０のパラメータを更新する。
【００９３】
（S113）  学習部２２は、動作を停止する。
【００９４】
［学習管理エージェント処理フロー］
図８，図９を用いて学習管理エージェント１０の動作を説明する。図８は、学習管理エージェント１０の第１処理フローを示す。図８は、ステップS201〜S209を有する。図９は、学習管理エージェント１０の第２処理フローを示す。図９は、ステップS210〜S215を有する。図９のS210〜S214の処理を、エージェント間通信処理と定義する。以下、ステップの順に説明する。なお、図８，図９では、複数の実験系５０｛＃１〜＃Ｍ｝が時間的に順次に構築され動作する方式の場合のフローを示す。
【００９５】
（S201）  学習管理エージェント１０の実験系評価部１１は、世代数を決定する。
【００９６】
（S202）  学習管理エージェント１０は、所定の世代数に到達したかどうかの判定を行う。判定結果が到達の場合（Ｙ）には、学習を終了し、非到達の場合（Ｎ）には、S203へ進む。
【００９７】
（S203）  実験系評価部１１は、第１世代かどうか判定を行う。第１世代の場合（Ｙ）には、S204へ進み、第１世代ではない場合（Ｎ）には、S205へ進む。
【００９８】
（S204）  実験系評価部１１は、各エージェント２０の制御モデル３０を、任意の所定の条件に基づいて初期化する。
【００９９】
（S205）  実験系評価部１１は、前世代の制御モデルから選択された制御モデルセットを、現世代の制御モデルとするように、各エージェント２０へ送信する。この際、通信部１３は、対応する制御モデル情報を、対応するエージェント２０へ送信する。この制御モデルセットは、前述（図５）の次世代の実験系５０の初期設定値として更新するための制御モデルセットである。
【０１００】
（S206）  実験系評価部１１は、所定の実験回数、各エージェント２０の制御モデル３０、及び制御モデル更新可否を決定する。
【０１０１】
（S207）  実験系評価部１１は、所定の実験回数の実験系５０の動作終了判定を行う。判定結果が終了の場合（Ｙ）、S208へ進み、非終了の場合（Ｎ）、図９のS210へ進む。
【０１０２】
（S208）  実験系評価部１１は、各実験系５０の学習結果から算出されたシステム全体評価値に基づいて、各実験系５０で得られた制御モデルセットから、次世代の初期設定値とするための更新用の制御モデルセットを選択決定する。制御モデル操作部１２は、実験系評価部１１の決定に従って、各エージェント２０へ送信するための制御モデルセットを設定する。
【０１０３】
（S209）  学習管理エージェント１０は、世代数カウンタを更新し、S202に戻る。
【０１０４】
（S210）  一方、図９のS210で、実験系評価部１１は、学習終了条件及び制御モデル更新可否の情報を、通信部１３へ渡す。制御モデル操作部１２は、制御モデルセットの情報を、通信部１３に渡す。通信部１３は、学習終了条件、制御モデル更新可否、及び制御モデルを含む情報を、対応する各エージェント２０へ送信する。
【０１０５】
（S211）  実験系評価部１１は、全エージェント２０からの終了通知の受信完了判定を行う。判定結果が、受信完了の場合（Ｙ）、S213へ進み、未完了の場合（Ｎ）、S212へ進む。
【０１０６】
（S212）  学習管理エージェント１０は、所定時間待機する。
【０１０７】
（S213）  通信部１３は、各エージェント２０からのサブシステム評価値、及び制御モデルを含む情報を受信する。通信部１３は、各サブシステム評価値を実験系評価部１１へ渡し、制御モデルセット情報を制御モデル操作部１２へ渡す。
【０１０８】
（S214）  実験系評価部１１は、各エージェント２０のサブシステム評価値から、所定の指標に基づいて、実験系５０毎のシステム全体評価値を算出する。この指標は、例えば、単純な合算でもよいし、重み付け加算でもよいし、特に限定しない。重み付け加算の例としては、特定の重要なサブシステム４０に接続されている特定のエージェント２０の評価値の重みを高くするものでもよい。
【０１０９】
（S215）  学習管理エージェント１０は、エージェント間通信処理後、実験系５０の実験回数のカウンタを更新し、S207に戻る。
【０１１０】
［効果等］
上記のように、実施の形態１の学習制御システムによれば、ＭＡＲＬを制御する際に、不完全情報下でも、学習効率を向上でき、システム全体の最適化を図ることができる。実施の形態１の学習制御システムは、複数のエージェント２０を含む複数の実験系５０での複数の世代の学習を管理、制御する学習管理エージェント１０を有する。この学習制御システムでは、ある世代の複数の実験系５０のうち、学習後のシステム全体評価値が最も高い実験系５０の制御モデルセットを、次世代の実験系５０の初期設定値として選択決定する（図５）。これにより、学習効率を高めることができる。
【０１１１】
また、実施の形態１の学習制御システムでは、エージェント２０間での不完全情報下でも、学習停滞を低減及び防止するように、複数の制御モデル３０の均衡点（制御モデル３０が更新されない均衡状態となる箇所）を変動させる仕組みを設けている。学習管理エージェント１０は、世代間で、制御モデル３０を更新するエージェント２０を変更するように、制御モデル更新可否情報を設定する。これにより、均衡状態を破り、学習停滞を改善できる。
【０１１２】
（実施の形態２）
図１０，図１１を用いて、本発明の実施の形態２の学習制御システムについて説明する。実施の形態２の基本的な構成は実施の形態１と同様であり、以下では実施の形態２における実施の形態１とは異なる構成部分について説明する。実施の形態２では、次世代の制御モデルの決定、更新の方式として、進化戦略計算手法（Evolution Strategy：ＥＧ）を併用する。進化戦略計算手法自体は公知技術を適用できる。実施の形態２では、進化戦略計算によるテストを行い、その後に実験系５０毎のシステム全体評価値を計算する。そのシステム全体評価値に基づいて、次世代の制御モデルセットが選択決定される。
【０１１３】
以下、実施の形態２における進化戦略計算手法を併用した学習管理について説明する。まず、ハードウェア及びソフトウェアの構成の差異としては、図２の学習管理装置１の学習管理エージェント１０、及びサブシステム自動制御装置２のエージェント２０において、進化戦略計算及びその制御を行うためのプログラムが実装されている。
【０１１４】
［進化戦略計算］
図１０は、実施の形態２における進化戦略計算について示す。実施の形態２では、公知の進化戦略計算手法のうち、Differential Evolution（ＤＥ）と呼ばれるアルゴリズムを用いる。
【０１１５】
学習管理エージェント１０は、各エージェント２０から、現世代Ｇにおける学習完了後の各実験系５０｛＃１〜＃Ｍ｝の制御モデルセットを受信する。学習管理エージェント１０は、これらの制御モデルセットのパラメータをベクトルとして扱う。これを現世代Ｇのベクトルｗ１〜ｗＭとする。例えば、実験系＃１の制御モデルセットは、ベクトルｗ１で表される。
【０１１６】
学習管理エージェント１０は、現世代Ｇのベクトルｗ１〜ｗＭについて、エージェント２０｛Ａ１〜ＡＮ｝毎に、図１０の進化戦略計算処理を適用する。これにより、次世代Ｇ＋１のベクトルｗ１〜ｗＭを生成する。その結果から次世代の制御モデルセットが決定される。
【０１１７】
［学習管理エージェント処理フロー］
図１１は、実施の形態２における学習管理エージェント１０の処理フローを示す。実施の形態２のフローは、実施の形態１の図８のフローにおけるステップS208の部分が異なり、ステップS208Bとなっている。ステップS208B以外の部分は同様である。ステップS208Bは、進化戦略計算を用いた制御モデルの選択処理（次世代の更新用の制御モデルセットの決定処理）である。ステップS208Bの処理は、ステップSB1〜SB9を含む。以下、ステップの順に説明する。
【０１１８】
（SB1）  実施の形態２の進化戦略計算処理では、各エージェント２０の制御モデル３０のパラメータの更新を行わないようにして、各実験系５０｛＃１〜＃Ｍ｝でテストを行う。その後、進化戦略計算適用後のシステム全体評価値が算出される。このため、学習管理エージェント１０は、まず、SB1で、学習時と同様に、実験系５０の実験回数のカウンタを再設置（リセット）する。
【０１１９】
（SB2）  次に、学習管理エージェント１０は、所定の実験回数の実験系５０の動作の終了判定を行う。判定結果が終了（Ｙ）の場合、SB3へ進み、非終了の場合（Ｎ）、SB4へ進む。
【０１２０】
（SB3）  学習管理エージェント１０は、制御モデル３０｛＃１〜＃Ｍ｝の生成順に、次世代の制御モデル３０のパラメータの情報をＤＢに格納し、前述のステップS209へ進む。
【０１２１】
（SB4）  学習管理エージェント１０は、任意の所定の指標に基づいて、各実験系５０の実験で得た現世代の制御モデルセット（各エージェント２０の制御モデル３０）から、所定数の制御モデル（パラメータ）を選択する。
【０１２２】
図１０のＤＥアルゴリズムを用いた例では、ランダムに３つの制御モデルが選択される。例えば、ベクトルｗ３，ｗ２，ｗＭが選択されている。本例に限らず、他の方式として、各実験系５０の結果から算出されたシステム全体評価値に応じて、傾斜配分を用いたルーレット選択等を行ってもよい。
【０１２３】
（SB5）  制御モデル操作部１２は、SB4で選択された所定数（３つ）の制御モデル３０のパラメータ毎に、そのパラメータの数値を、制御モデル３０間で交叉突然変異処理を施して更新する。これにより、次世代の制御モデルセットが生成される。詳細は後述する。
【０１２４】
（SB6）  実験系評価部１１は、各エージェント２０の制御モデル３０の制御モデル更新可否を「否」として設定する。テストであるため、ここでの学習終了条件は、任意のターン数（例えば５０ターン）が設定される。
【０１２５】
（SB7）  学習管理エージェント１０は、通信部１３を用いて、上記制御モデルセット、制御モデル更新可否、及び学習終了条件を含む情報について、各エージェント２０とのエージェント間通信処理を行う。この処理は図９と同様である。
【０１２６】
（SB8）  学習管理エージェント１０は、上記進化戦略計算を適用したテストで生成された制御モデルセットに関して算出されたシステム全体評価値と、上記進化戦略計算の適用前の現世代の実験系５０の制御モデルセットのシステム全体評価値とを比較する。学習管理エージェント１０は、比較結果で、システム全体評価値が高い方に対応する制御モデルセットを、次世代の更新用の実験系５０の制御モデルセットとして決定する。
【０１２７】
（SB9）  学習管理エージェント１０は、実験系カウンタを更新し、SB2に戻る。
【０１２８】
［交叉突然変異処理］
図１０で、ステップSB5に係わる、ＤＥアルゴリズムを用いた交叉突然変異処理について説明する。この交叉突然変異処理では、予め、スケーリングパラメータと呼ばれるＦ値及び交叉率を設定しておく。学習管理エージェント１０は、各実験系５０｛＃１〜＃Ｍ｝における各エージェント２０｛Ａ１〜ＡＮ｝の制御モデル３０｛Ｃ１〜ＣＮ｝を順次に生成する。
【０１２９】
学習管理エージェント１０は、まず、実験系＃１における、第１エージェント（エージェントＡ１）について、各実験系＃１〜＃Ｍの制御モデルＣ１〜ＣＮを用意する。図１０の例では、３つの制御モデル３０がランダムに選択される。例えば、ベクトルｗ３，ｗ２，ｗＭが選択されている。選択されたベクトルが、式１００２のベクトルｗＡ，ｗＢ，ｗＣに代入される（ｗ３→ｗＡ，ｗ２→ｗＢ，ｗＭ→ｗＣ）。学習管理エージェント１０は、それらの選択制御モデルのパラメータ毎に、式１００２に示す突然変異処理を施す。式１００２は、ｖ＝ｗＡ＋Ｆ（ｗＢ−ｗＣ）である。Ｆ値は、スケーリングパラメータであり、０．０〜１．０の値が入力される。式１００２の結果がベクトルｖ（値１００４）である。これにより、突然変異個体となる制御モデル（ベクトルｖ）が生成される。
【０１３０】
次に、学習管理エージェント１０は、実験系カウンタと同じ順（ｉ番目）の制御モデルのベクトルｗｉと、突然変異個体のベクトルｖとで、交叉計算処理１００５を行う。現世代Ｇの各ベクトルｗ１〜ｗＭを、ベクトルｗｉ（値１００３）とする。ｉ＝１〜Ｍであり、ベクトル毎に同様処理である。交叉計算処理１００５の出力値がベクトルｕ（値１００６）であり、子個体の制御モデルに対応する。交叉計算処理１００５では、現世代Ｇのベクトルｗｉと生成されたベクトルｖとについて、パラメータ毎に乱数を発生させ、所定の交叉率以下の場合には、生成されたベクトルｖのパラメータの方を選択し、そうでない場合には、現世代のベクトルｗｉのパラメータの方を選択する。
【０１３１】
学習管理エージェント１０は、現世代Ｇのベクトルｗｉと、ベクトルｕとで比較処理１００７を行う。比較処理１００７は、ベクトルｗｉとベクトルｕとで良い方を選択する処理である。比較処理１００７の出力値がベクトルｗｊ（値１００８）である。ｊ＝１〜Ｍである。ベクトルｗｊ（値１００８）として、次世代Ｇ＋１の制御モデルセット１００９が生成される。実験系＃１における第２エージェント（Ａ２）から第Ｎエージェント（ＡＮ）についても上記と同様の処理が行われ、子個体が生成される。
【０１３２】
学習管理エージェント１０は、上記生成された次世代の制御モデルセット１００９における対応する制御モデル情報を、実験系５０の各エージェント２０に送信し、各制御モデル３０｛Ｃ１〜ＣＮ｝として設定させる。そして、学習管理エージェント１０は、エージェント間通信を行い、所定のターン数（例えば５０ターン）で動作させて、実験系５０毎のシステム全体評価値を取得する。
【０１３３】
学習管理エージェント１０は、上記進化戦略計算処理の適用前の実験系５０のシステム全体評価値と、適用後の実験系５０のシステム全体評価値とを比較する。適用後の評価値の方が高い場合には、対応する制御モデルセットが、次世代の実験系５０の制御モデルセットとして決定される。実験系＃２〜＃Ｍにおいても上記と同様の処理が行われる。
【０１３４】
上記進化戦略計算処理では、ＤＥアルゴリズムに限らず、他の手法を用いてもよい。例えば、他の進化戦略計算手法における遺伝的アルゴリズム等を用いてもよい。また、進化戦略計算手法のアルゴリズムに類似したアルゴリズムを用いてもよい。例えば、複数の個体を用いて最適化を行う、人工蜂コロニー等の群知能アルゴリズムを用いてもよい。
【０１３５】
［効果等］
上記のように、実施の形態２の学習制御システムによれば、ＭＡＲＬを制御する際に、不完全情報下でも、学習効率を向上でき、システム全体の最適化を図ることができる。実施の形態２では、進化戦略計算によって、ＭＡＲＬの学習の均衡状態を強制的に破るようにして制御モデルを選択、更新する。これにより、ＭＡＲＬの均衡状態の発生の場合にも、学習停滞を改善して、学習効率を高めることができる。
【０１３６】
（実施の形態３）
図１２〜図１４を用いて、本発明の実施の形態３の学習制御システムについて説明する。実施の形態３の基本的な構成は、実施の形態１または実施の形態２の構成と同様であり、差異として、システム１００がＳＣＭシステムである場合のより詳細な構成を示す。
【０１３７】
［予備学習、全体学習］
図１２は、実施の形態３の学習制御システムの構成として、システム１００がＳＣＭシステムである場合を示す。実施の形態３の学習制御システムは、学習として、予備学習、全体学習を行う。予備学習は、サブシステム４０単位での学習である。サブシステム４０では、取引（実取引またはシミュレーション取引）を実行して取引データを蓄積する。対応するエージェント２０は、対応するサブシステム４０の取引データを用いて、予備学習を行う。次に、複数の各サブシステム４０では、取引を実行して取引データを蓄積する。そして、複数のエージェント２０は、全体学習を行う。
【０１３８】
［ＳＣＭシステムにおける学習］
システム１００のＳＣＭシステムの構成例としては、前述の図３と同じである。ＳＣＭシステムにおける学習について説明する。本例では、各エージェント２０｛Ａ１〜Ａ４｝の間での直接的な通信は無く、各エージェント２０は、学習管理エージェント１０との通信を行う。本例では、サブシステム４０間で情報非共有であり、エージェント２０間で不完全情報の状況である。
【０１３９】
まず、各エージェント２０｛Ａ１〜Ａ４｝において、サブシステム４０単位での予備学習が実行される。その後、複数のエージェント２０｛Ａ１〜Ａ４｝での全体学習が行われる。いずれの学習においても、その学習に先立って、ＳＣＭシステムにおける所定のターン数（例えば１００ターン）の取引が行われ、取引データが蓄積される。各サブシステム４０のサブシステム端末装置３において、ターン毎に、在庫量、受注残、入荷量、出荷量、受注量、及び発注量が、取引データとして蓄積される。エージェント２０は、その取引データを取得し、データ記憶部２４に蓄積し、学習に用いる。
【０１４０】
予備学習では、例えば小売（サブシステム＃１）のエージェントＡ１が学習を行う場合、そのエージェントＡ１のみが強化学習を行う。他のサブシステム＃２〜＃４は、人または模擬プレイヤーによって発注処理を行う。模擬プレイヤーとは、取引データに基づいて発注量を決定するシミュレータである。模擬プレイヤーとして、例えば、受注量をそのまま発注量として決定するシミュレータを用いる。
【０１４１】
予備学習の終了後、エージェントＡ１は、制御モデルＣ１及びサブシステム評価値を、学習管理エージェント１０に送信する。他のサブシステム４０のエージェントＡ２〜Ａ４においても同様に予備学習を行う。制御モデルＣ２〜Ｃ４及びサブシステム評価値が学習管理エージェント１０に送信される。
【０１４２】
次に、全体学習が実行される。本例では、実験系５０を４０個構築し（実験系＃１〜＃４０）、実施の形態１または実施の形態２の手法を同様に用いて学習を行う。全体学習では、各サブシステム４０にエージェント２０が接続された状態で、同時に複数のエージェント２０による学習が行われる。ただし、同時に学習を行うエージェント２０の数は、学習管理エージェント１０によって制御される。学習を行うエージェント２０の順序は、任意でよく、例えば、下流から順次でもよいし、ランダムに決定でもよい。本例では、ランダムに決定する方式を用いる。
【０１４３】
まず、学習管理エージェント１０は、最初の世代Ｇにおいて学習するエージェント２０として例えばエージェントＡ２，Ａ３を選択する（図１３も参照）。学習管理エージェント１０は、エージェントＡ２に、予備学習で得た対応する制御モデルＣ２の情報、更新「可」とした制御モデル更新可否情報、及び所定の学習終了条件を送信する。同様に、学習管理エージェント１０は、エージェントＡ３に、予備学習で得た制御モデルＣ３、更新「可」、及び学習終了条件を送信する。また、学習管理エージェント１０は、他のエージェント２０であるエージェントＡ１，Ａ４には、模擬プレイヤーと同じ入出力を行うダミーの制御モデルの情報、更新「否」とした制御モデル更新可否情報、及び学習終了条件を送信する。
【０１４４】
各エージェント２０｛Ａ１〜Ａ４｝は、学習管理エージェント１０から受信した情報に基づいて、４０個の各実験系５０｛＃１〜＃４０｝の動作を行う。各実験系５０の動作の終了後、エージェントＡ２，Ａ３は、学習結果の制御モデルＣ２，Ｃ３及びサブシステム評価値（＝コスト）を、学習管理エージェント１０に送信する。
【０１４５】
学習管理エージェント１０は、実施の形態１または実施の形態２の手法に基づいて、次世代Ｇ＋１の実験系５０｛＃１〜＃４０｝の更新用の制御モデルセットを生成する。学習管理エージェント１０は、次世代Ｇ＋１の学習では、例えばエージェントＡ１にダミーの制御モデルＣ１を設定し、エージェントＡ２，Ａ３に前世代で生成した制御モデルＣ２，Ｃ３を設定し、エージェントＡ４に予備学習の制御モデルＣ４を設定して、学習を行わせる。所定の学習終了条件の下で、エージェントＡ４のみを更新「可」として学習を行わせる。各実験系５０｛＃１〜＃４０｝の動作終了後、エージェントＡ２〜Ａ４は、対応する制御モデルＣ２〜Ｃ４、及びサブシステム評価値（＝コスト）を、学習管理エージェント１０に送信する。
【０１４６】
学習管理エージェント１０は、同様に、更に次世代Ｇ＋２の実験系５０の更新用の制御モデルセットを生成する。学習管理エージェント１０は、更に次世代Ｇ＋２の学習では、例えばエージェントＡ１に予備学習で得た制御モデルＣ１を設定し、エージェントＡ２〜Ａ４に前世代で生成した制御モデルＣ２〜Ｃ４を設定して、学習を行わせる。所定の学習終了条件の下で、エージェントＡ１のみ更新「可」として学習を行わせる。各実験系５０の動作終了後、エージェントＡ１〜Ａ４は、対応する制御モデルＣ１〜Ｃ４及びサブシステム評価値（＝コスト）を、学習管理エージェント１０に送信する。
【０１４７】
こうして、全エージェント２０｛Ａ１〜Ａ４｝の制御モデル３０｛Ｃ１〜Ｃ４｝が、模擬プレイヤーの制御モデルではなくなった後、学習管理エージェント１０は、学習するエージェント２０を任意に変更しながら、学習終了条件まで繰り返し学習を行わせる。
【０１４８】
［更新制御モデルの変動］
図１３は、世代間での更新される制御モデル３０の変動例を表形式で示す。表の列は、実験系５０の各エージェント２０（Ａ１〜Ａ４）の制御モデル３０（Ｃ１〜Ｃ４）の設定状態を示す。表の行は、世代の進行に伴う設定状態の変化を示す。各項目には制御モデル更新可否の値を示す。ここでは制御モデル更新可否の値として、更新可（Ｌ）、更新否（Ｆ）、模擬プレイヤー（Ｎ）がある。なお、この値を模擬プレイヤー（Ｎ）とする場合、更新「否」に設定される。表の右側には同時学習エージェント数も併せて示す。同時学習エージェントは、制御モデル更新可否が模擬プレイヤー（Ｎ）以外のエージェント２０である。
【０１４９】
本例では、第１世代（Ｇ）では、制御モデル３０を更新するエージェント２０が、エージェントＡ２，Ａ３であり、更新可（Ｌ）として設定されている。エージェントＡ１は、ダミーの制御モデルを設定する模擬プレイヤー（Ｎ）として設定されている。エージェントＡ４は更新否（Ｆ）として設定されている。第１世代での同時学習エージェント数は、エージェントＡ２，Ａ３に対応して、２である。
【０１５０】
第２世代（Ｇ＋１）では、エージェントＡ４が更新可（Ｌ）として設定されている。第２世代での同時学習エージェント数は、エージェントＡ２〜Ａ４に対応して３である。第３世代（Ｇ＋２）では、エージェントＡ１が更新可（Ｌ）として設定されている。第３世代以降での同時学習エージェント数は４である。第４世代（Ｇ＋３）では、エージェントＡ１，Ａ２が更新可（Ｌ）として設定されている。第５世代（Ｇ＋４）では、エージェントＡ３が更新可（Ｌ）として設定されている。第６世代（Ｇ＋５）では、エージェントＡ４が更新可（Ｌ）として設定されている。
【０１５１】
このように、学習制御システムでは、世代間での最適な制御モデル３０の選択に伴って、複数のエージェント２０間で、制御モデル３０を更新するエージェント２０及び同時学習エージェントが変更される。これにより、制御モデル３０が更新されない均衡状態の箇所があったとしても強制的に変動される。したがって、全体的に学習停滞が低減及び防止され、学習が進むことでシステム全体の最適化を図ることができる。
【０１５２】
［エージェントの学習アルゴリズム例］
実施の形態３における各エージェント２０｛Ａ１〜Ａ４｝の学習アルゴリズム例について説明する。各エージェント２０は、対応するサブシステム４０の状態（対応する取引）を観測し、状態値（対応する取引データ）を蓄積し、実施の形態１で説明した基本動作に従って、試行錯誤的に、行動値となる発注量等を決定する。各エージェント２０は、行動値をサブシステム４０に出力し、所定のターン数（例えば５０ターン）のコストを最小化するように、制御モデル３０のパラメータを構成する。エージェントＡ１は、ターン順に、在庫量、受注残、入荷量、出荷量、受注量、及び発注量等の取引データが蓄積されたデータ記憶部２４から、所定のターン数分（例えば１０ターン）の取引データを、状態値として入力する。
【０１５３】
実施の形態３では、各エージェント２０の制御モデル３０を獲得する方法として、強化学習を用いる。強化学習の代表的な手法として、Ｑ学習がある。しかし、本例のように、多次元の状態値かつ連続的な行動値を扱う場合、一般的なＱテーブルを用いた手法では、全ての状態と行動を網羅したＱテーブルを用意することは困難であり、そのような実装は困難である。そこで、価値関数であるＱテーブルを関数近似する方法をとるとよい。
【０１５４】
また、本例のように連続的な行動値の出力を要求されるような事例では、例えば、Ａｃｔｏｒ−ｃｒｉｔｉｃ法とニューラルネットワークとを組合せた手法を用いるとよい。Ａｃｔｏｒ−ｃｒｉｔｉｃ法とは、入力された状態値（ｓｔ）に基づいて行動値（ａｔ）を出力する行動関数と、行動値（ａｔ）、状態値（ｓｔ）、及び報酬値（ｒｔ）の入力に応じてその価値を出力する価値関数とを分けることを特徴とする方法である。これにより、連続的な行動値が出力可能になる。これらの２つの関数をニューラルネットワークで関数近似する手法を用いる。
【０１５５】
また、Ｑ学習を用いる場合では、ＴＤ（Temporal-Difference）誤差を算出し、このＴＤ誤差に基づいて、ニューラルネットワークのパラメータ（θ）を更新する。ＴＤ誤差を計算するためのターゲット（ｙｔ）を用いて、損失誤差関数を定義し、この誤差を改善していく。ターゲット（ｙｔ）は下記の式１で表される。
【０１５６】
【数１】
2019046422.tif 000003
【０１５７】
ここで、γは割引率を示す。θμ´は、状態ｓｔにおいて現状最も良い評価値を得る可能性の高い行動を取る場合のＡｃｔｏｒモデルの重みを示す。Ａｃｔｏｒモデルは、ａｔ＝μ（ｓｔ｜θμ）で表される。θＱ´は、Ｃｒｉｔｉｃモデルの重みを示す。Ｃｒｉｔｉｃモデルは、Ｑ（ｓｔ，ａｔ｜θＱ´）で表される。価値関数は、下記の式２に示す損失関数Ｌを最小化するように、パラメータ（Ｃｒｉｔｉｃモデルの重み）θＱ´を更新する。
【０１５８】
【数２】
2019046422.tif 000004
【０１５９】
また、行動関数のパラメータθμは、下記の式３の勾配∇を用いて更新される。
【０１６０】
【数３】
2019046422.tif 000005
【０１６１】
また、各パラメータの更新は、下記の式４，式５に示すように、係数τ（τ≪１）を用いて、徐々に重みを更新する方法をとってもよい。
【０１６２】
【数４】
2019046422.tif 000006
【０１６３】
本例では、行動関数及び価値関数のニューラルネットワークについて、例えば、それぞれ１６個、３２個のユニット数を持つ中間層を３層持つネットワーク構造とすることにより、学習が行われる。この構造に限定する必要は無く、この構造と同等以上の表現能力を有していればよい。
【０１６４】
［学習結果例及び画面表示例］
図１４は、実施の形態３において、実施の形態１及び実施の形態２の手法を用いて実際にＭＡＲＬの学習を行った場合の学習結果例及び画面表示例を示す。学習管理装置１のＧＵＩ部１５は、このような学習結果情報を含む画面を構成し、ユーザに対して表示する。
【０１６５】
図１４では、グラフの横軸が学習ターン数（１ｋ＝１０００ターン）、縦軸がシステム全体評価値であるコスト（システム全体コスト）を示す。所定のターン数が１世代に相当する。グラフでは学習結果がプロットされている。破線は実施の形態１の手法を用いた場合の学習結果を示し、実線は実施の形態２の手法を用いた場合の学習結果を示す。
【０１６６】
グラフの横軸には、併せて、世代毎のサブシステム４０｛＃１〜＃４｝のエージェント２０｛Ａ１〜Ａ４｝の設定状態を、記号Ｎ，Ｌ，Ｆで記載している。Ｎは模擬プレイヤー、Ｌは制御モデル更新「可」、Ｆは制御モデル更新「否」を示す。例えば、記号「ＮＬＬＮ」は、エージェントＡ１，Ａ４が模擬プレイヤー、エージェントＡ２，Ａ３が更新「可」の設定（図１３の世代Ｇの行）を意味する。
【０１６７】
学習開始後の最初の学習過程１１０１は、前述の予備学習において各エージェント２０｛Ａ１〜Ａ４｝が獲得した制御モデル３０｛Ｃ１〜Ｃ４｝を設定して動作させた場合の結果を示す。その後、学習過程１１０２では、記号「ＮＬＬＮ」に示すように、一部のエージェント２０｛Ａ１，Ａ４｝の制御モデル３０を模擬プレイヤー（Ｎ）に置換したことに注意する。同時に学習する２つのエージェントＡ２，Ａ３は更新可である。次の学習過程１１０３では、記号「ＮＦＦＬ」に示すように、３つのエージェントＡ２〜Ａ４が模擬プレイヤーではなく、同時学習エージェント数が３であり、エージェントＡ４が更新可である。次の学習過程１１０４では、記号「ＬＦＦＦ」に示すように、全エージェントＡ１〜Ａ４が模擬プレイヤーではなく、同時学習エージェント数が４であり、エージェントＡ１が更新可である。以降の学習過程１１０５では、全エージェントＡ１〜Ａ４が模擬プレイヤーではなく、同時学習エージェント数が４である。
【０１６８】
このように、学習管理エージェント１０は、世代毎に同時に学習するエージェント２０の数を２，３，４と増やしながら、世代毎に更新可（Ｌ）とするエージェント２０を変更するように制御している。本例では、同時に学習するエージェント２０の数を増やす際に、特に学習過程１１０３の後に、コストが一旦上昇しているが、その後に徐々に減少している。即ち、システム全体の最適化が促されていることがわかる。本例では、学習過程１１０５の最後では、実施の形態２の方が実施の形態１の学習結果よりも小さいコストになっている。
【０１６９】
［変形例−システム構造例］
図１２では、システム１００として、ＳＣＭシステムは、複数のサブシステム４０の単純な直列接続構造としたが、実施の形態１〜３の学習管理が適用できるシステム１００の構造はこれに限らず可能である。
【０１７０】
図１５は、変形例におけるシステム１００の構造例を示す。本例では、システム１００としてＳＣＭシステムにおける複数のサブシステム４０は、メッシュネットワーク型で接続されている。図１２のＳＣＭシステムは、下流から上流まで、サブシステム４０の種類毎に１つずつの拠点（小売、卸、工場）を有する場合である。これに限らず、サブシステム４０の種類毎に複数の拠点が接続される構造でもよい。図１５の例では、３つの顧客、２つの小売、２つの卸、３つの工場を有し、メッシュネットワーク型で接続されている。各サブシステム４０の拠点毎に、エージェント２０が設けられている。本例では、エージェントＡ１〜Ａ７を有する。エージェントＡ１〜Ａ７は、対応する制御モデルＣ１〜Ｃ７を有する。各エージェント２０と学習管理エージェント１０とが接続されている。
【０１７１】
このようなＳＣＭシステムについて、学習制御システムがＭＡＲＬでの強化学習を行う。その場合に、前述のように、模擬プレイヤーではない学習するエージェント２０の数を徐々に増やしていき、最終的に全エージェントＡ１〜Ａ７を模擬プレイヤーではない状態にする。これにより、このＳＣＭシステムのコストを最適化する制御モデルＣ１〜Ｃ７が獲得される。このようなメッシュネットワーク型のシステム１００は、ＳＣＭに限らず、ＥＧ、交通、金融等の各種のシステム、及びそれらの複合システムにおいても同様に適用可能である。
【０１７２】
図１６は、システム１００の他の構造例として、入れ子型のＳＣＭシステムの場合を示す。この構造では、システム１００のうちの一部のサブシステム４０の部分において、階層的に更に複数のサブシステムを含む。図１６の例では、システム１００は、複数のサブシステム４０の拠点として、１つの顧客、１つの小売、２つの卸、１つの工場を有する。２つの卸として、卸Ａ、卸Ｂを有する。更に、卸Ａは、ＳＣＭシステム１００Ｂとして構成されている。卸Ａは、内部のサブシステム４０として、第１卸Ａ−１と、第２卸Ａ−２とを含んでいる。第１階層及び第２階層のサブシステム４０のそれぞれにエージェント２０が接続されている。本例では、エージェントＡ１〜Ａ５を有し、それぞれの制御モデルＣ１〜Ｃ５を有する。このような入れ子型のシステム１００の場合でも、同様の学習管理が適用可能であり、このシステム１００のコストを最適化する制御モデルＣ１〜Ｃ５が獲得される。
【０１７３】
（他の実施の形態）
実施の形態１〜３に関する変形例として以下が挙げられる。いずれの形態でも実施の形態１〜３と同様の効果が得られる。
【０１７４】
［変形例（１）］
図１７は、第１変形例の学習制御システムの構成を示す。この変形例では、サブシステム４０内のサブシステム端末装置３に、サブシステムソフトウェア３００に加え、エージェント２０が実装されている。言い換えると、サブシステム端末装置３とサブシステム自動制御装置２とが一体に実装されている。エージェント２０は、広域通信網を介して、学習制御装置１の学習管理エージェント１０と通信する。
【０１７５】
［変形例（２）］
学習管理エージェント１０と各エージェント２０とが一対一で通信接続される形態に限らず、エージェント１０間で直接的に通信接続されてもよい。例えば、所定の複数のエージェント１０によるグループ（エージェントグループ）内において、エージェント２０間で互いの情報を共有する場合に、エージェント２０間で直接的に通信してもよい。
【０１７６】
図１８は、第２変形例の学習制御システムの構成を示す。この変形例では、システム１００は、一部のサブシステム４０間では互いの情報を共有し、情報共有するサブシステム４０に対応させて、エージェントグループを有する。学習管理エージェント１０は、エージェントグループを設定、管理する。エージェントグループ内では、エージェント２０間の通信経路を通じてエージェント２０間で直接的に相互通信し、互いの情報を取得、共有する。グループ内のエージェント２０は、同じグループ内の他のエージェント２０から取得した情報を用いて、学習を行う。
【０１７７】
図１８の例では、エージェントグループｇ１を有し、情報共有するエージェントＡ１，Ａ２を含む。エージェントグループｇ１と他のエージェント２０との間では、情報非共有である。エージェントグループｇ１内では、エージェントＡ１，Ａ２間で相互通信を行い、互いの情報を授受する。例えば、エージェントＡ１は、エージェントＡ２から情報を取得し、取得した情報を用いて、学習を行う。例えば、グループ内のエージェント２０間で、サブシステム４０の状態観測値や、制御モデル３０の情報等を交換してもよい。例えば、エージェントＡ１は、エージェントＡ２からサブシステム＃２の状態観測値を取得し、自身の制御モデルＣ１に入力して学習を行う。これにより、学習効率が高められる。
【０１７８】
また、学習管理エージェント１０は、エージェントグループの複数のエージェント２０のうち特定のエージェント２０を代表エージェントとして設定してもよい。代表エージェントと学習管理エージェント１０とで代表的に通信を行う。代表エージェントは、グループ内の他のエージェント２０と通信して情報を取得し、学習管理エージェント１０に送信する。代表エージェントは、学習管理エージェント１０から受信した情報を、グループの他のエージェント２０に送信する。
【０１７９】
［変形例（３）］
サブシステム４０毎にエージェント２０が設けられる形態に限らず、一部または全部の複数のサブシステム４０において共通のエージェント２０が設けられてもよい。
【０１８０】
図１９は、第３変形例の学習制御システムの構成を示す。この変形例では、システム１００の一部のサブシステム４０としてサブシステム＃１，＃２に対し、１つのエージェント２０（Ａ１０）が共通エージェントとして設けられている。例えば、サブシステム自動制御装置２にそのエージェント２０（Ａ１０）が実装されている。エージェントＡ１０内には、サブシステム＃１，＃２に対応させた２つの制御モデル３０｛Ｃ１，Ｃ２｝を有する。学習管理エージェント１０は、エージェントＡ１０内の２つの制御モデル３０｛Ｃ１，Ｃ２｝の更新を制御する。制御モデルＣ１と制御モデルＣ２は、入出力が接続されている。例えば、制御モデルＣ１は、サブシステム＃１からの入力値と、制御モデルＣ２の出力値とを入力して計算し、サブシステム＃１への出力値を得る。制御モデルＣ２は、サブシステム＃２からの入力値と、制御モデルＣ１の出力値とを入力して計算し、サブシステム＃２への出力値を得る。
【０１８１】
［変形例（４）］
図２０は、第４変形例の学習制御システムの構成を示す。この変形例では、特定のサブシステム４０に対し、エージェント２０及び学習管理エージェント１０が１つの統合装置１９０に設けられている。図２０の例では、特定のサブシステム４０としてサブシステム＃１のサブシステム端末装置３に対し、統合装置１９０（例えばサーバ）が通信接続されている。この統合装置１９０には、サブシステム＃１のエージェント２０（Ａ１）と、学習管理エージェント１０とが実装されている。システム１００の他のサブシステム４０では、前述の自動制御装置２が設けられている。統合装置１９０の学習管理エージェント１０は、自装置内のエージェントＡ１と通信すると共に、広域通信網を介して、各自動制御装置２のエージェント２０と通信する。
【０１８２】
更に、特定のサブシステム４０内に、この統合装置１９０を設けてもよいし、統合装置１９０とサブシステム端末装置３とを１つの装置として統合してもよい。
【０１８３】
以上、本発明を実施の形態に基づいて具体的に説明したが、本発明は前述の実施の形態に限定されず、その要旨を逸脱しない範囲で種々変更可能である。マルチエージェントの学習方式は、強化学習方式に限らず適用可能である。
【符号の説明】
【０１８４】
１０…学習管理エージェント、２０，２０１〜２０Ｎ…エージェント、３０，３０１〜３０Ｎ…制御モデル、４０，４０１〜４０Ｎ…サブシステム、５０…実験系、１００…システム。
【図１】
2019046422.tif 000007
【図２】
2019046422.tif 000008
【図３】
2019046422.tif 000009
【図４】
2019046422.tif 000010
【図５】
2019046422.tif 000011
【図６】
2019046422.tif 000012
【図７】
2019046422.tif 000013
【図８】
2019046422.tif 000014
【図９】
2019046422.tif 000015
【図１０】
2019046422.tif 000016
【図１１】
2019046422.tif 000017
【図１２】
2019046422.tif 000018
【図１３】
2019046422.tif 000019
【図１４】
2019046422.tif 000020
【図１５】
2019046422.tif 000021
【図１６】
2019046422.tif 000022
【図１７】
2019046422.tif 000023
【図１８】
2019046422.tif 000024
【図１９】
2019046422.tif 000025
【図２０】
2019046422.tif 000026