JP7093547B2 - 制御プログラム、制御方法及びシステム - Google Patents

制御プログラム、制御方法及びシステム Download PDF

Info

Publication number
JP7093547B2
JP7093547B2 JP2018129322A JP2018129322A JP7093547B2 JP 7093547 B2 JP7093547 B2 JP 7093547B2 JP 2018129322 A JP2018129322 A JP 2018129322A JP 2018129322 A JP2018129322 A JP 2018129322A JP 7093547 B2 JP7093547 B2 JP 7093547B2
Authority
JP
Japan
Prior art keywords
node
action
search
time
executed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018129322A
Other languages
English (en)
Other versions
JP2020009122A (ja
Inventor
セイドゥ バ
慶雅 鶴岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
National Institute of Advanced Industrial Science and Technology AIST
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National Institute of Advanced Industrial Science and Technology AIST filed Critical National Institute of Advanced Industrial Science and Technology AIST
Priority to JP2018129322A priority Critical patent/JP7093547B2/ja
Publication of JP2020009122A publication Critical patent/JP2020009122A/ja
Application granted granted Critical
Publication of JP7093547B2 publication Critical patent/JP7093547B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、最適制御技術に関する。
モンテカルロ木探索(Monte Carlo Tree Search: MCTS)は、決定空間を追加的に伸びる探索木で表すことで、現在の状態において採るべき最善のアクションを決定するものである。探索木は、ランダムなシミュレーションにより、シミュレートされた新たな状態(ノード)と、アクション(エッジ又は辺)とで更新される。ノード及び辺を繰り返し追加することで、現在の状態から終了状態(terminal state)まで遷移する。探索木のノードは、そのノードの状態から先に進む場合における期待報酬(expected reward)を保持している。ノードの期待報酬は、そのノードを介して進む全シミュレーションの平均的な成果を表している。
MCTSのシミュレーションは、選択(selection)、展開(expansion)、ロールアウト(roll-out)及び逆伝搬(backpropagation)の4つのフェーズに分けられる。図1に4つのフェーズを簡易的に示している。(1)選択フェーズでは、まだ十分に展開されていないノードに達するまでルートからノードを選択してゆく。図1の例では、ルートノードから2階層下のノードが選択されたことが矢印で表されている。(2)展開フェーズでは、選択フェーズで選択されたノードに、1つのノードが追加される。(3)ロールアウトフェーズでは、ロールアウトのデフォルトポリシーに従ってシミュレーションを行う。(4)逆伝搬フェーズでは、シミュレーションの結果を逆方向、すなわちリーフノードからルートノード方向に伝搬してゆく。図1の例では、追加されたノード、選択されたノード、その親ノード、そしてルートノードに、シミュレーションの結果が逆方向に伝播されていく様子が模式的に示されている。
上でも述べたように、ノードは、シミュレートされたタスクの状態を表し、辺は、現在のノードの状態から子ノードの状態へ遷移するために実行されたアクションに対応する。
MCTSの各シミュレーションは、現在の状態に対応するルートノードから始まる。上で述べた選択フェーズにおいては、ノードの値と被訪問回数とについて定義された選択ポリシーに基づき探索木の辺をたどってゆく。そして、子ノードを追加できるノードに到達すると、そのノードに新たなリーフノードを追加することで、探索木を拡張する。このリーフノードの追加が、展開フェーズの処理である。そして、ロールアウトフェーズにおいて、新たなリーフノードの状態から、ロールアウトポリシーが適用される。ロールアウトのシミュレーションは、許可された最大回数実行するか又は終了状態に至るまで繰り返される。このロールアウトポリシーには、ストレートフォワードランダムアクション(straight-forward random action)というロールアウトポリシーが広く用いられている。最後に、シミュレーションの結果が、リーフノードからルートノードまでの部分木において管理されている情報を更新するように、逆伝搬される。
なお、MCTSの選択フェーズにおけるキーは、有望なアクションの活用と決定空間の探索とのバランスをとることで、Upper Confidence Bounds applied to Trees (UCT)アルゴリズムが、それに対する良い解を与えており、一般的に用いられている。
典型的なMCTSは、有限数のシーケンシャルな決定問題に適用される。しかし、決定空間がとても広いと、ある状態からすべてのアクションが少なくとも一度は探索されるので、探索木の展望がとても浅くなってしまうという問題が生ずる。このような場合は、決定空間が無限で連続であるという環境において生ずる。このような問題については、Hierarchical Optimistic Optimization applied to Tree (HOOT)というアプローチが提案されている。HOOTは、UCTの限界を超えるために、HOOアルゴリズムを木探索プランニングに統合したものである。HOOは、bandit問題に対する選択ポリシーを構成しており、その選択ポリシーは、前回のシミュレーションの結果に関して、アーム(arm)の選択で損した範囲(後悔の範囲:regret bounds)を改善するものである。HOOは、決定空間を木として分解することで、決定空間の一般的なトポロジカルな表現を形成するものである。
アクションが照会されると、HOOアルゴリズムでは、ノードで算出されるB-valueというスコアが最大となるパスに沿って探索が行われる。リーフノードでは、リーフノードで表される、決定空間内の範囲においてアクションがサンプリングされる。そして、2つの子ノードが、そのリーフノードに追加され、各子ノードは、そのリーフノードの親ノードにより表される、決定空間内の範囲の半分をカバーする。
HOOTは、UCTに類似するが、HOOTは、連続的なアクションのbanditアルゴリズムであるHOOを探索木の各ノードに配置するものである。HOOは、UCTにおける離散アクションという限界を超えるため、アクションの選択のために、決定空間をサンプリングするのに用いられる。
従来のMCTSにおいては、アクションを選択してから次のアクションを選択するまでの時間間隔は固定であった。そのため、状態が刻々と変化するような環境においては、この時間間隔を短くすることで対応することになる。しかしながら、時間間隔が短くなると、シミュレーションの実行回数が制限されて信頼のおける探索木が生成できないという問題がある。
また、従来のHOOTでは、1種類のアクションを取り扱うことがほとんどであり、2種類以上のアクションをどのように取り扱うかについては、具体的な提案は存在していない。
Remi Coulom, "Efficient selectivity and backup operators in monte-carlo tree search" In Interna-tional conference on computers and games, pages p72-83, Springer, 2006 Christopher R. Mansley, Ari Weinstein, and Michael L. Littman, "Sample-based planning for continuous action markov decision processes", In Proceed-ings of the 21st International Conference on Automated Planning and Scheduling, 2011 Peter Auer, Nicolo Cesa-Bianchi, and Paul Fischer, "Finite-time analysis of the multiarmed bandit problem", Machine learning, 47(2-3):235-256, 2002 Levente Kocsis and Csaba Szepesvari, "Bandit based monte-carlo planning", In Eu-ropean conference on machine learning, pages 282-293, Springer, 2006 Kristof Van Moffaert, "Multi-Criteria Reinforcement Learning for Sequential Decision Making Problems", 2016 Uitgeverij VUBPRESS Brussels University Press
従って、本発明の目的は、一側面として、タスクに応じたアクションを適切な時間間隔において選択して指示できるようにするための技術を提供することである。
本発明に係る制御方法は、(A)ノード間の辺に、次に実行すべきアクションとさらに次に実行すべきアクションを選択するまでの時間とを対応付けた、アクション及び時間を選択する木探索のための探索木において、新たなノードを追加しつつ、第1の評価式の値でノードを探索する探索処理を、前回実行された探索処理において選択されたノードへの辺に対応付けられた時間中に実行するステップと、(B)今回実行された探索処理において選択されたノードへの辺に対応付けられたアクションを、制御対象物に実行させるステップとを含む。
一側面によれば、タスクに応じたアクションを適切な時間間隔において選択して指示できるようになる。
図1は、MCTSを説明するための図である。 図2は、実施の形態に係るシステム全体の概要を示す図である。 図3は、実施の形態におけるタイムシーケンス例を示す図である。 図4は、本実施の形態に係るMCTSの探索木の一例を示す図である。 図5は、モンテカルロ木探索部が実行する処理の処理フローを示す図である。 図6は、2DHOOT部が実行する処理の処理フローを示す図である。 図7Aは、処理の具体例における第1のフェーズを示す図である。 図7Bは、処理の具体例における第2のフェーズを示す図である。 図7Cは、処理の具体例における第3のフェーズを示す図である。 図7Dは、処理の具体例における第4のフェーズを示す図である。 図7Eは、処理の具体例における第1のフェーズを示す図である。 図8は、コンピュータ装置のブロック構成図である。
図2に、本実施の形態に係るシステムの概要を示す。本実施の形態に係るシステムは、制御装置100と、連続的にタスクを実行する制御対象物200とを含む。制御装置100は、制御対象物200に対する制御装置として機能する。
制御装置100は、モンテカルロ木探索部110と、2DHOOT部120と、シミュレーション部130と、インターフェース部140とを有する。インターフェース部140は、時刻tiにおいて実行すべきアクションai及び次のアクションを選択するまでの時間τiをモンテカルロ木探索部110から受け取り、時間τiの間に制御対象物200にアクションaiを実行させる。これに対して、インターフェース部140は、制御対象物200から時刻tiにおけるタスクの状態Siを受け取り、モンテカルロ木探索部110に出力する。
シミュレーション部130は、制御対象物200が実行するタスクの挙動を複製したシミュレーションモデルである。よって、モンテカルロ木探索部110が、状態Sを指定して、時間τ中にアクションaを実行するように指示すれば、シミュレーション部130は、期待される状態Sと、報酬rとを予測して、モンテカルロ木探索部110に返す。
2DHOOT部120は、モンテカルロ木探索部110から状態SとMCTS探索木の着目ノードの平均報酬raとを受け取り、以下に述べる処理を行って、それらに応じたアクションaと時間τとを返す。
モンテカルロ木探索部110は、2DHOOT部120とシミュレーション部130と協働して、以下に述べる処理を行って、次に実行すべきアクションai及びさらに次に実行すべきアクションを選択するまでの時間τiを決定する。
具体的なタイムシーケンスを図3を用いて説明する。時間は左から右に進行するが、上段はアクションの遷移を表し、下段は時間間隔の遷移を表す。すなわち、時刻tiでは、タスクの状態は実際にはSiであるが、状態S'iを推定して、モンテカルロ木探索部110は、時刻tiにおいてアクションai及び時間τiを選択する。制御対象物200がアクションaiを実行している時間τiにおいて、モンテカルロ木探索部110は、以下で述べるような処理を行って状態S'i+1を推定して(図3では、MCTS(S'i+1)と表している)、アクションai+1及び時間τi+1を選択する。但し、時刻tiから時間τi後の時刻ti+1では、タスクの実際の状態はSi+1である。このようなシーケンスが繰り返される。なお、図3に示したようにτi=τi+1ではないかもしれないし、同じであるかもしれないが、その都度選択される。
本実施の形態においてモンテカルロ木探索部110で探索される探索木の一例を図4を用いて説明する。本実施の形態では、ノード間の辺には、アクションと時間のペアが対応付けられている。子ノードの状態は、エッジに対応付けられているアクションが、エッジに対応付けられている時間中、親ノードの状態から適用された場合に推定される状態である。図4の例では、状態Siにおいて、アクションaiを実行している時間τi中に、次の状態S'i+1を推定して、そこから、第1の候補のアクション及び時間のペア(a1 i+1,τ1 i+1)で遷移するノードと、第2の候補のアクション及び時間のペア(a2 i+1,τ2 i+1)で遷移するノードと、第3の候補のアクション及び時間のペア(a3 i+1,τ3 i+1)で遷移するノードとがある。
本実施の形態では、モンテカルロ木探索部110は、上で述べたUCTを採用し、UCB1と呼ばれる値を最大化するノードを選択する。UCB1は、以下のように表される。なお、子ノードjを表す。
UCB1=Xaj+C×(2logn/nj1/2
ここで、Xajは、子ノードjを通過するシミュレーションのすべての報酬の平均値を表す。nは、子ノードjの親ノードの被訪問回数を表し、njは子ノードjの被訪問回数を表す。また、Cは正の定数であり、実験的に決定されるものである。
図4において、第1乃至第3の候補のアクション及び時間のペアで遷移する3つのノードに付された値がUCB1の値であるとすると、矢印で示しているように、UCB1の値が最も大きいノードに繋がれた辺に係る第1の候補のアクション及び時間のペアが選択されることになる。
本実施の形態では、HOOTを2次元に拡張して適用することで、従来の問題を解決する。すなわち、時間とアクションとで張られる2次元空間に対して2DHOOTを用いて、時間とアクションのペアを効果的にサンプリングする。2DHOOTでは、2次元空間における領域の包含関係を階層的に示し、各領域に対応するノードを有する別の探索木を用いる。例えば、ルートノードが、2次元空間全体を表し、ルートノードの4つの子ノードが、2次元空間を4つに分割した4つの大領域を表し、子ノードの4つの孫ノードが、大領域を4つに分割した4つの中領域を表し、孫ノードの4つのひ孫ノードが、中領域を4つに分割した4つの小領域を表す。
但し、このようなペアの数については、既知のプログレッシブワイドニング(PW:Progressive widening)を用いて制限する。PWは、探索木を浅くしてしまうのを避けるために、MCTSが、制限された数のペアに初期的にはフォーカスするようにする。シミュレーションの回数が増加すると、より広く決定空間をカバーするように、考慮すべきペアを増加させる。ある時点において、子ノードの数が、ノードの被訪問回数に関連して許容されるペアの最大数に達すると、そのノードについては、十分に展開されたとみなされる。
2DHOOTは、シミュレーション中に評価されるべきアクションと時間のペア群に対するフィルタを追加するように機能する。2DHOOTサンプリングにおいては、探索木に追加すべきアクションと時間のペアの選択は、有望なペアがより選択され易いような領域に向かうようになる。結果として、MCTSによるアクションと時間のペアの選択効率は、シミュレーションの回数が制限されていても、改善されることになる。具体例については、後に詳細に述べる。
次に、図5乃至図7Eを用いて、制御装置100の処理内容について説明する。
まず、図5を用いて、タスクについて与えられた状態についてのMCTSに係る処理について説明する。
モンテカルロ木探索部110は、現在ノード(すなわち着目ノード)に、ルートノードを設定する(図5:ステップS1)。前回選択されたアクションと対で選択された時間τ(τは変動する)毎に行われる探索木の構築は、ルートノードから始まる。
そして、モンテカルロ木探索部110は、現在ノードは十分に展開されたか否かを判断する(ステップS3)。十分に展開されたか否かは、例えばPWに基づき決定される。十分に展開されたと判断された場合には、モンテカルロ木探索部110は、現在ノードに、評価値UCB1が最大の子ノードを設定する(ステップS5)。そして処理はステップS3に戻る。UCB1の定義は、従来と同じである。
一方、十分に展開されたと判断されなかった場合には、モンテカルロ木探索部110は、状態Sと平均報酬raを渡して2DHOOT部120を呼び出し、(a,τ)をサンプリングさせ、探索木に当該(a,τ)を辺とするリーフノードを追加する(ステップS7)。2DHOOT部120の処理については、後に説明する。なお、ここで、追加したリーフノードに、2DHOOTにおいてサンプリングされたノードへのポインタを保存する。
そして、モンテカルロ木探索部110は、サンプリングされた(a,τ)と状態Sとを渡してシミュレーション部130にタスクのシミュレーションを行わせることでロールアウトを実行する(ステップS9)。制御対象物200が実行するタスクを模したモデルでシミュレーションを実行するものである。そうすると、シミュレーション部130は、シミュレーション結果として状態Sと報酬rを返してくる。
また、モンテカルロ木探索部110は、追加されたリーフノードからシミュレーション結果を逆伝搬させるバックアップ処理を実行する(ステップS11)。本ステップの逆伝搬は、従来と同じなので説明を省略する。
そして、モンテカルロ木探索部110は、今回の処理開始から、前回選択されたノードへの辺に対応づけられた時間τi-1i-1が経過したか否かを判断する(ステップS13)。今回の処理開始から時間τi-1が経過していなければ、処理はステップS1に戻る。
一方、処理開始から時間τi-1が経過した場合には、モンテカルロ木探索部110は、各ノードについて評価値UCB1を算出して、評価値UCB1が最大のノードを選択し、そのノードへの辺に対応付けられている(ai,τi)を選択する(ステップS15)。
そうすると、モンテカルロ木探索部110は、ai及びτiをインターフェース部140に出力し、インターフェース部140は、時間τi中に、アクションaiを実行するように、制御対象物200に指示する(ステップS17)。制御対象物200は指示に従ってタスクを実行し、タスクの処理結果として状態Siを返してくる。
このような処理を繰り返すことで、適切に選択された各時間間隔で、適切に選択されたアクションを制御対象物200に実行させることができるようになる。
次に、ステップS7で呼び出される2DHOOT部120の処理内容について説明する。
本実施の形態では、MCTSにおける探索木の各ノードは、2DHOOTにおける探索木を含む。2DHOOTにおける探索木において、ルートノードは、アクション空間(決定空間)全体のクオリティの楽観的な見積もりを保持しており、その子ノードは、アクション空間におけるより狭い領域についてのより正確な見積もりを保持している。一般的に、ある親ノードの子ノードは、同じサイズを有する各々別の領域を表しており、それらの領域で、親ノードが表す領域をすべてカバーする。2DHOOTのアルゴリズムに従えば、あるリーフノードが選択され、そのリーフノードが表す領域から、アクションaと時間τのペアがサンプリングされる。
より詳細な処理内容について、図6を用いて説明する。
まず、2DHOOT部120は、ルートノードを選択する(図6:ステップS31)。そして、2DHOOT部120は、現在ノード(すなわち着目ノード)に、選択ノードを設定する(ステップS33)。その後、2DHOOT部120は、現在ノードは、スコア等が更新されていない子ノードを有するか判断する(ステップS35)。現在ノードが、スコア等が更新されていない子ノードを有する場合には(ステップS35:Yesルート)、2DHOOT部120は、スコア等が更新されていない子ノードを、選択する(ステップS37)。そして処理はステップS33に戻る。このように、ループL311では、ルートノードから、スコア等が更新されていない下位のノードを再帰的に探索する。
一方、現在ノードが、スコア等が更新されていない子ノードを有しないノードまで到達すると(ステップS35:Noルート)、2DHOOT部120は、現在ノードのスコア等を更新する(ステップS39)。
2DHOOTの探索木から選択されるアクション及び時間ペアの期待報酬は、MCTSで実施されたシミュレーションの平均報酬raに依存する。また、2DHOOTの探索木におけるノードの値は、そのサブツリーに属する全てのノードの影響を受ける。すなわち、ノードiの見積もり報酬Re iは、以下の式で繰り返し更新される。
Figure 0007093547000001
なお、jは、ノードiの各子ノードを表し、niは、ノードiの被訪問回数であり、njは、ノードjの被訪問回数であり、Re jは、ノードjの見積もり報酬を表す。
また、U-Valueは、ノードiの見積もり報酬Re iに基づき以下のように定義されている。
Figure 0007093547000002
ここで、nは、図6の処理の繰り返し回数を表し、定数v1及びρは、v1>0で0<ρ<1で、実験的に適切な値がセットされる。hiは、探索木におけるノードiの深さを表す。
そして、スコアB-value(スコアBとも記す)は、以下のように定義される。
Figure 0007093547000003
なお、Bjは、ノードiの子ノードjのスコアB-valueであり、(3)式は、全ての子ノードjについてのBjのうちの最大値と、Uiとの最小値を、Biに設定するものである。また、まだサンプリングされていないノードのBi及びUiには、無限大が設定される。
ステップS39では、このように定義されるスコア等の値を更新する。
そして、2DHOOT部120は、現在ノードがルートノードであるか否かを判断する(ステップS41)。現在ノードがルートノードではない場合には、2DHOOT部120は、親ノードを選択する(ステップS43)。そして処理はステップS33に移行する。
このように、ループL31における処理によってリーフノードからルートノード方向に、スコア等の値の更新を行ってゆく。
一方、現在ノードがルートノードである場合には、スコア等の値の更新が終了したので、2DHOOT部120は、現在ノードがリーフノードであるか否かを判断する(ステップS45)。ステップS45に最初に移行してくる場合には、現在ノードはルートノードなので、現在ノードはリーフノードではないと判断される。
現在ノードがリーフノードではない場合には、2DHOOT部120は、スコアB-valueが、最大の子ノードを選択して、現在ノードに設定する(ステップS47)。また、選択されたノードの被訪問回数を1インクリメントする。そして、処理はステップS45に移行する。このようなループL33は、スコアB-valueが最大であるノードをリーフノードまでたどるパスを探索する処理である。
一方、現在ノードがリーフノードである場合には、2DHOOT部120は、リーフノードでカバーされる領域において、(a,τ)をサンプリングする(ステップS49)。アクションaについては、選択されたリーフノードでカバーされる領域[amin,amax]内の値がサンプリングされる。時間τについても、選択されたリーフノードでカバーされる領域[τmin,τmax]内の値がサンプリングされる。
そして、2DHOOT部120は、2DHOOTの探索木を拡張する処理を行う(ステップS51)。具体的には、選択されたリーフノードに、4つの子ノードを追加する。4つの子ノードは、選択されたリーフノードがカバーする領域を均等に4分割することで得られる領域の各々に対応する。なお、アクションaと時間τの2次元空間なので、次元数(=2)を指数とする、ひとつの次元についての分割数(=2)のべき乗=4で分割される。なお、ひとつの次元についての分割数については2以上の自然数であり、ユーザなどの設定により決定される。
なお、リーフノードからルートノードまでの選択されたノードの被訪問回数を更新するために、2DHOOTの探索木のバックアップが実行される。すなわち、各ノードについて被訪問回数を保持しておき、その数を更新する。
そして、2DHOOT部120は、リーフノードへのポインタと、サンプリングされた(a,τ)を、モンテカルロ木探索部110に出力する(ステップS53)。これによって、より有望なアクション及び時間のペアがサンプリングされる。
図7A乃至図7Eを用いて、処理の具体例について説明する。
MCTSの探索木におけるノードpが初めて訪問されると(図7Aの(a)の上段)、2DHOOTの探索木のルートノード1が選択され(図7Aの(b)の上段)、当該ルートノード1が表す、アクションaと時間τとで張られる決定空間の全領域から、点1(a1,τ1)がサンプリングされる(図7Aの(c))。
本実施の形態では、アクションaも時間τも、有限の範囲内の連続的な値であるが、ここでは[0,1]に正規化されて示されている。
そうすると、2DHOOTの探索木の拡張、すなわち4つの子ノードの追加がなされる(図7Aの(b)の下段)。この4つの子ノードは、図7Aの(c)に示すように、互いに重ならずに同じ面積を有する領域A乃至Dのいずれかに対応する。
サンプリングされた(a1,τ1)は、MCTSの探索木をノードaで拡張するのに用いられる。すなわち、図7Aの(a)の下段に示すように、ノードpからノードaへの辺は、(a1,τ1)に対応付けられている。なお、ノードaの値が更新されると、ノード1の値も更新される。
次に、MCTSの探索木におけるノードpが再度拡張される場合には(図7Bの(a)の上段)、2DHOOTの探索木では、ルートノード1の子ノード2が選択され(図7Bの(b)の上段)、ノード2が表す領域Bの中から、点2(a2,τ2)がサンプリングされる(図7Bの(c))。
そうすると、2DHOOTの探索木の拡張、すなわち4つの子ノードの追加がなされる(図7Bの(b)の下段)。この4つの子ノードは、図7Bの(c)に示すように、互いに重ならずに同じ面積を有する領域B1乃至B4のいずれかに対応する。
サンプリングされた(a2,τ2)は、MCTSの探索木をノードbで拡張するのに用いられる。すなわち、図7Bの(a)の下段に示すように、ノードpからノードbへの辺は、(a2,τ2)に対応付けられている。
次に、MCTSの探索木におけるノードpが再度拡張される場合には(図7Cの(a)の上段)、2DHOOTの探索木では、ルートノード1の子ノード3が選択され(図7Cの(b)の上段)、ノード3が表す領域Aの中から、点3(a3,τ3)がサンプリングされる(図7Cの(c))。
そうすると、2DHOOTの探索木の拡張、すなわち4つの子ノードの追加がなされる(図7Cの(b)の下段)。この4つの子ノードは、図7Cの(c)に示すように、互いに重ならずに同じ面積を有する領域A1乃至A4のいずれかに対応する。
サンプリングされた(a3,τ3)は、MCTSの探索木をノードcで拡張するのに用いられる。すなわち、図7Cの(a)の下段に示すように、ノードpからノードcへの辺は、(a3,τ3)に対応付けられている。
このような処理を繰り返してゆき、MCTSの探索木に5つのノードa乃至eを追加した後に、再度、MCTSの探索木におけるノードpが拡張される場合には(図7Dの(a)の上段)、2DHOOTの探索木では、ノード2の子ノード6が選択され(図7Dの(b)の上段)、ノード6が表す領域B1の中から、点6(a6,τ6)がサンプリングされる(図7Dの(c))。
そうすると、2DHOOTの探索木の拡張、すなわち4つの子ノードの追加がなされる(図7Dの(b)の下段)。この4つの子ノードは、図7Dの(c)に示すように、互いに重ならずに同じ面積を有する領域B11乃至B14のいずれかに対応する。
サンプリングされた(a6,τ6)は、MCTSの探索木をノードfで拡張するのに用いられる。すなわち、図7Dの(a)の下段に示すように、ノードpからノードfへの辺は、(a6,τ6)に対応付けられている。
ここまでで、ノードaとノード1が関連付けられ、ノードbとノード2が関連付けられ、ノードcとノード3が関連付けられ、ノードdとノード4が関連付けられ、ノードeとノード5が関連付けられ、ノードfとノード6が関連付けられている。
なお、2DHOOTの探索木において、孫ノードの階層に行く前に、ルートノードの全ての子ノードが更新される。一般的には、そのノードから次の下の階層に行く前に、そのノードの全ての子が更新される。
さらに処理が繰り返されて、MCTSの探索木に10個のノードa乃至lを追加した後に、再度、MCTSの探索木におけるノードpが拡張される場合には(図7Eの(a)の上段)、2DHOOTの探索木では、ノード7の子ノード11が選択され(図7Eの(b)の上段)、ノード11が表す領域B23の中から、点11(a11,τ11)がサンプリングされる(図7Eの(c))。
そうすると、2DHOOTの探索木の拡張、すなわち4つの子ノードの追加がなされる(図7Eの(b)の下段)。この4つの子ノードは、図7Eの(c)に示すように、互いに重ならずに同じ面積を有する領域B231乃至B234のいずれかに対応する。
サンプリングされた(a11,τ11)は、MCTSの探索木をノードkで拡張するのに用いられる。すなわち、図7Eの(a)の下段に示すように、ノードpからノードkへの辺は、(a11,τ11)に対応付けられている。
このように、2DHOOTの探索木におけるノードは、MCTSの探索木におけるノードと関連付けられる。また、MCTSの探索木におけるノードの値が更新されると、2DHOOTの探索木におけるノードの値も更新される。
MCTSの探索木において追加された各ノードは、親ノードのための2DHOOTの探索木における選択リーフノードへのポインタを保持し、新たな2DHOOTの探索木を初期化する。すなわち、MCTSの探索木は、各ノードにアクション及び時間のペアを選択するための2DHOOTの探索木と、親ノードのための2DHOOTの探索木においてアクション及び時間のペアがサンプルされたリーフノードへのポインタとを保持している。
リーフノードへのポインタは、平均報酬raを更新するために用いられる。(1)式で示したように、2DHOOTの探索木におけるノードiの見積もり報酬Re iの計算には、平均報酬raが用いられる。このような平均報酬raを用いることで、決定空間において、長期にわたってうまく実行されることが期待されるアクション等の領域に向かって、2DHOOTの探索木におけるノード選択が行われるようになる。
以上本実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、機能ブロック構成例は例に過ぎず、プログラムモジュール構成とは一致しない場合もある。また、処理フローについても、処理結果が変わらない限り、処理順番を入れ替えたり、複数のステップを並列に実行してもよい。
また、上で述べた例では、アクションaと時間τで2次元空間を取り扱ったが、より多くの次元をHOOTで取り扱うことも可能である。すなわち、アクションa1乃至an-1と時間τとでn次元空間を取り扱ってもよい。時間τを除いてn次元空間としてもよい。その場合、探索木の拡張時には、n次元HOOTで子ノードは、ひとつの次元について指定された分割数(2以上の自然数)のn乗個追加することになる。
なお、制御対象部200は、どのようなものでもよいが、例えば車両の自動運転その他の連続したタスクを実行する装置である。
図6に示した処理の内容を疑似コードで表すと以下のようになる。
1: procedure UCTSEARCH(root, τ)
2: while time < τ do //ステップS13
3: front = TreeSearch(root) //ステップS1
4: reward = DefaultPolicy(front.state, front.horizon)
//ステップS9
5: BackUp(front, reward) //ステップS11
6: return BestChild(root, 0) //最適な(a,τ)を選択

7: procedure TREESEARCH(node)
8: while not node.state.terminal() do: //終了状態になるまで探索を繰り返す
9: if not node.fully.expanded() then: //ステップS3
10: return Expand(node) //ステップS7
11: else:
12: node = BestChild(node, scale) //ステップS5
13: return node

14: procedure DEFAULTPOLICY(state) //ステップS9の詳細
15: reward = state.reward
16: done = state.terminal()
17: steps=h
18: while done == false && steps <MAXSTEPS do:
19: a = sample.actionSpace()
20: obs, rew, done = env.step(a)
21: reward = reward + rew
22: steps = steps + 1
23: return reward

24: procedure EXPAND(node)
25: a, τ, Hlead = HOOSearch(node.Hroot) //ステップS7:(a,τ)sampling
26: addedNode = node.AddChild(a, τ, Hleaf) //ステップS7:ノード追加
27: return addedNode //ステップS7:探索木の拡張

28: procedure BESTCHILD(node, C) //最大UCB1のノードを選択
29: bestchildren = []
30: UCB1max = -∞
31: for node.childrenに含まれるx do
32: UCB1 = x.reward/x.visits + C×{(2log(node.visits)/x.visits}0.5
33: if UCB1 == UCB1max then
34: bestchildren.append(x)
35: if UCB1 > UCB1max then
36: bestchildren = [x]
37: UCB1max = UCB1
38: return random.choice(bestchildren) //複数候補の場合はランダム

39: procedure BACKUP(Node, reward) //ステップS11の詳細
40: while node do
41: node.visits = node.visits + 1 //被訪問回数をインクリメント
42: node.reward = node.reward + reward //報酬の更新
43: node.Hleaf.reward = node.reward //2DHOOTのノード値を更新
44: node = node.parent
図7に示した処理の内容を疑似コードで表すと以下のようになる。
1: procedure HOOSEARCH(root)
2: HOO-Update(root, root.visits) //ループL31 木の更新
3: leaf = HOOPolicy(root) //ループL33 最大スコアのパス探索
4: a,τ = sample.leaf.region() //ステップS49
5: leaf.expand() //ステップS51
6: return a, τ, leaf //(a,τ)とpointerを返す

7: procedure HOO-UPDATE(node, N) //再帰的なループL31の詳細
8: childBmax = 0
9: for node.children含まれるx do //ループL311 再帰的な子ノードの更新
10: HOO-Update(x,N)
11: for node.children含まれるx do //ステップS39
12: node.reward = node.reward + x.reward
13: if x.Bvalue > childBmax then
14: childBmax = x.Bvalue //Bvalue更新のため用いられる
15: Uvalue=node.reward/node.visits + {2log(N)/node.visits}0.5
+ v1ρh //ステップS39 U-value更新
16: if Uvalue < childBmax then //ステップS39 B-value更新
17: node.Bvalue = Uvalue
18: else
19: node.Bvalue = childBmax

20: procedure HOOPOLICY(node)
21: while node.children do //ループL33
22: node.visits = node.visits + 1 //ノード被訪問回数の増分
23: bestchildren = []
24: Bvaluemax = -∞
25: for node.childrenに含まれるx do
26: if x.Bvalue == Bvaluemax then
27: bestchildren.append(x)
28: if x.Bvalue > Bvaluemax then
29: bestchildren = [x]
30: Bvaluemax = x.Bvalue
31: node = random.choice(bestchildren) //複数候補の場合はランダムに
32: node.visits = node.vistis + 1 //被訪問回数の増分
33: return node //選択されたleaf nodeを返す
なお、上で述べた制御装置100は、コンピュータ装置であって、図8に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とスピーカ2518とがバス2519で接続されている。なお、HDDはソリッドステート・ドライブ(SSD:Solid State Drive)などの記憶装置でもよい。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
なお、上で述べたような処理を実行することで用いられるデータは、処理途中のものであるか、処理結果であるかを問わず、メモリ2501又はHDD2505等の記憶装置に格納される。例えば、探索木を表すデータ、及び被訪問回数、評価値、スコア等のノードの値は、メモリ2501等に格納される。
以上述べた実施の形態をまとめると以下のようになる。
本実施の形態に係る制御方法は、(A)ノード間の辺に、次に実行すべきアクションとさらに次に実行すべきアクションを選択するまでの時間とを対応付けた、アクション及び時間を選択する木探索のための探索木において、新たなノードを追加しつつ、第1の評価式の値(例えばUCB1の値が最大)でノードを探索する探索処理を、前回実行された探索処理において選択されたノードへの辺に対応付けられた時間中に実行するステップと、(B)今回実行された探索処理において選択されたノードへの辺に対応付けられたアクションを、制御対象物に実行させるステップとを含む。
このように、新規な探索木を用いて、制御対象物が実行するタスクに応じたアクションを適切な時間間隔において選択して指示できるようになる。なお、木探索の探索処理は、例えばMCTSに従うものである。
なお、上記次に実行すべきアクションが、有限の連続値の中の一つの値に対応し、上記さらに次に実行すべきアクションを選択するまでの時間が、有限の連続する時間内の一つの値である場合もある。これらの値は、適切なサンプリングにて選択される。
また、上で述べた探索処理に含まれる上記新たなノードを追加する処理が、(a1)次に実行すべきアクションと時間とで張られる空間において、当該空間に含まれる領域の包含関係を階層的に表し、各領域に対応するノードを有する第2の探索木において、第2の評価式の値(例えばスコアBが最大)でノードを第2の探索木のルートノードからリーフノードまで選択するステップと、(a2)選択されたリーフノードに対応する領域内において点を選択するステップと、(a3)選択された点についてのアクション及び時間が対応付けられた辺で繋がるノードを探索木において追加するステップとを含むようにしてもよい。
このように、アクション及び時間をペアで適切にサンプリングするために、上で述べたような第2の探索木を用いるような処理を採用するようにしてもよい。第2の探索木を用いるような処理は、例えば多次元に拡張されたHOOTに従うものである。
さらに、上で述べた探索処理に含まれる上記新たなノードを追加する処理が、(a4)選択されたリーフノードに対応する領域を、上記空間の次元数を指数とする所定数(2以上の自然数)のべき乗個に分割することで生成された新たな領域に対応するリーフノードを、第2の探索木に追加するステップを含むようにしてもよい。このようにすれば、適切に空間を分割しつつ、第2の探索木で領域の関係を適切に表すことができるようになる。
以上述べた制御方法をコンピュータに実行させるためのプログラムを作成することができて、そのプログラムは、様々な記憶媒体に記憶される。
また、上で述べたような制御方法を実行する制御装置は、1台のコンピュータで実現される場合もあれば、複数台のコンピュータで実現される場合もあり、それらを合わせて制御システム又は単にシステムと呼ぶものとする。
100 制御装置
110 モンテカルロ木探索部
120 2DHOOT部
130 シミュレーション部
140 インターフェース部
200 制御対象物

Claims (5)

  1. ノード間の辺に、次に実行すべきアクションとさらに次に実行すべきアクションを選択するまでの時間とを対応付けた、アクション及び時間を選択する木探索のための探索木において、新たなノードを追加しつつ、第1の評価式の値でノードを探索する探索処理を、前回実行された探索処理において選択されたノードへの辺に対応付けられた時間中に実行するステップと、
    今回実行された探索処理において選択されたノードへの辺に対応付けられたアクションを、制御対象物に実行させるステップと、
    を、1又は複数のプロセッサに実行させ
    前記次に実行すべきアクションが、有限の連続値の中の一つの値に対応し、
    前記さらに次に実行すべきアクションを選択するまでの時間が、有限の連続する時間内の一つの値である
    制御プログラム。
  2. 前記探索処理に含まれる前記新たなノードを追加する処理が、
    前記次に実行すべきアクションと前記時間とで張られる空間において、当該空間に含まれる領域の包含関係を階層的に表し、各領域に対応するノードを有する第2の探索木において、第2の評価式の値でノードを前記第2の探索木のルートノードからリーフノードまで選択するステップと、
    選択された前記リーフノードに対応する領域内において点を選択するステップと、
    選択された前記点についてのアクション及び時間が対応付けられた辺で繋がるノードを前記探索木において追加するステップと、
    を含む請求項記載の制御プログラム。
  3. 前記探索処理に含まれる前記新たなノードを追加する処理が、
    選択された前記リーフノードに対応する領域を、前記空間の次元数を指数とする所定数(2以上の自然数)のべき乗個に分割することで生成された新たな領域に対応するリーフノードを、前記第2の探索木に追加するステップ
    をさらに含む請求項記載の制御プログラム。
  4. ノード間の辺に、次に実行すべきアクションとさらに次に実行すべきアクションを選択するまでの時間とを対応付けた、アクション及び時間を選択する木探索のための探索木において、新たなノードを追加しつつ、第1の評価式の値でノードを探索する探索処理を、前回実行された探索処理において選択されたノードへの辺に対応付けられた時間中に実行するステップと、
    今回実行された探索処理において選択されたノードへの辺に対応付けられたアクションを、制御対象物に実行させるステップと、
    を含み、
    前記次に実行すべきアクションが、有限の連続値の中の一つの値に対応し、
    前記さらに次に実行すべきアクションを選択するまでの時間が、有限の連続する時間内の一つの値である、
    1又は複数のプロセッサが実行する制御方法。
  5. ノード間の辺に、次に実行すべきアクションとさらに次に実行すべきアクションを選択するまでの時間とを対応付けた、アクション及び時間を選択する木探索のための探索木において、新たなノードを追加しつつ、第1の評価式の値でノードを探索する探索処理を、前回実行された探索処理において選択されたノードへの辺に対応付けられた時間中に実行する探索部と、
    今回実行された探索処理において選択されたノードへの辺に対応付けられたアクションを、制御対象物に実行させる指示部と、
    を有し、
    前記次に実行すべきアクションが、有限の連続値の中の一つの値に対応し、
    前記さらに次に実行すべきアクションを選択するまでの時間が、有限の連続する時間内の一つの値である
    システム。
JP2018129322A 2018-07-06 2018-07-06 制御プログラム、制御方法及びシステム Active JP7093547B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018129322A JP7093547B2 (ja) 2018-07-06 2018-07-06 制御プログラム、制御方法及びシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018129322A JP7093547B2 (ja) 2018-07-06 2018-07-06 制御プログラム、制御方法及びシステム

Publications (2)

Publication Number Publication Date
JP2020009122A JP2020009122A (ja) 2020-01-16
JP7093547B2 true JP7093547B2 (ja) 2022-06-30

Family

ID=69151713

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018129322A Active JP7093547B2 (ja) 2018-07-06 2018-07-06 制御プログラム、制御方法及びシステム

Country Status (1)

Country Link
JP (1) JP7093547B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220130177A (ko) * 2020-01-28 2022-09-26 딥마인드 테크놀로지스 리미티드 학습된 은닉 상태를 사용한 에이전트 제어 플래닝
CN117521576B (zh) * 2024-01-08 2024-04-26 深圳鸿芯微纳技术有限公司 运算资源共享方法、装置、设备和介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007055181A1 (ja) 2005-11-11 2007-05-18 Matsushita Electric Industrial Co., Ltd. 対話支援装置
WO2014087590A1 (ja) 2012-12-05 2014-06-12 日本電気株式会社 最適化装置、最適化方法および最適化プログラム
WO2014115232A1 (ja) 2013-01-25 2014-07-31 日本電気株式会社 解探索装置、解探索方法および解探索プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09114849A (ja) * 1995-10-16 1997-05-02 N T T Data Tsushin Kk 木探索装置及び木探索方法
JPH1185845A (ja) * 1997-09-08 1999-03-30 Fuji Electric Co Ltd 発電機の定期補修計画作成方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007055181A1 (ja) 2005-11-11 2007-05-18 Matsushita Electric Industrial Co., Ltd. 対話支援装置
WO2014087590A1 (ja) 2012-12-05 2014-06-12 日本電気株式会社 最適化装置、最適化方法および最適化プログラム
WO2014115232A1 (ja) 2013-01-25 2014-07-31 日本電気株式会社 解探索装置、解探索方法および解探索プログラム

Also Published As

Publication number Publication date
JP2020009122A (ja) 2020-01-16

Similar Documents

Publication Publication Date Title
JP6889270B2 (ja) ニューラルネットワークアーキテクチャの最適化
Andradóttir An overview of simulation optimization via random search
JP7043596B2 (ja) ニューラルアーキテクチャ検索
KR102107378B1 (ko) 하이퍼파라미터 자동 최적화 방법 및 그 장치
Bouckaert Bayesian network classifiers in weka
Srinivas et al. IDEAL: A software package for analysis of influence diagrams
Gero et al. An exploration‐based evolutionary model of a generative design process
JP2004530967A (ja) 予測用モデルを展開する方法及び装置
JP7093547B2 (ja) 制御プログラム、制御方法及びシステム
JP2021519461A (ja) 2つのノード間の到達可能なパスを決定するための方法、装置及びシステム
JP2022554074A (ja) 所望の有機分子に対して有機合成経路を設計するためのシステムおよび方法
Liu et al. Extracting knowledge from web text with monte carlo tree search
JP7225866B2 (ja) 最適化装置、方法、及びプログラム
WO2014087590A1 (ja) 最適化装置、最適化方法および最適化プログラム
KR102559605B1 (ko) 함수 최적화 방법 및 장치
CN112905809B (zh) 知识图谱学习方法和系统
CN114036388A (zh) 数据处理方法和装置、电子设备、及存储介质
JP6989014B2 (ja) システム構成導出装置、方法およびプログラム
CN107807993B (zh) 一种网页历史记录功能的实现方法及装置
JPWO2011016281A1 (ja) ベイジアンネットワーク構造学習のための情報処理装置及びプログラム
CN114239827A (zh) 基于混合采样策略的多智能体在线动作决策方法
KR20210093483A (ko) 몬테카를로 트리 탐색 기반의 행동 결정 방법
JP6804009B2 (ja) 学習装置、学習方法、及び学習プログラム
JP2009301557A (ja) 学習システム
Demir et al. Generating effective initiation sets for subgoal-driven options

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210423

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220405

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220512

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220607

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220613

R150 Certificate of patent or registration of utility model

Ref document number: 7093547

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150