JP2020009122A - Control program, control method and system - Google Patents
Control program, control method and system Download PDFInfo
- Publication number
- JP2020009122A JP2020009122A JP2018129322A JP2018129322A JP2020009122A JP 2020009122 A JP2020009122 A JP 2020009122A JP 2018129322 A JP2018129322 A JP 2018129322A JP 2018129322 A JP2018129322 A JP 2018129322A JP 2020009122 A JP2020009122 A JP 2020009122A
- Authority
- JP
- Japan
- Prior art keywords
- node
- time
- action
- search
- tree
- 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.)
- Granted
Links
Images
Abstract
Description
本発明は、最適制御技術に関する。 The present invention relates to an optimal control technique.
モンテカルロ木探索(Monte Carlo Tree Search: MCTS)は、決定空間を追加的に伸びる探索木で表すことで、現在の状態において採るべき最善のアクションを決定するものである。探索木は、ランダムなシミュレーションにより、シミュレートされた新たな状態(ノード)と、アクション(エッジ又は辺)とで更新される。ノード及び辺を繰り返し追加することで、現在の状態から終了状態(terminal state)まで遷移する。探索木のノードは、そのノードの状態から先に進む場合における期待報酬(expected reward)を保持している。ノードの期待報酬は、そのノードを介して進む全シミュレーションの平均的な成果を表している。 Monte Carlo Tree Search (MCTS) determines the best action to be taken in the current state by representing the decision space with an additional growing search tree. The search tree is updated with a simulated new state (node) and an action (edge or edge) by random simulation. By repeatedly adding nodes and edges, a transition is made from the current state to a terminal state. Each node of the search tree holds an expected reward when proceeding from the state of the node. The expected reward of a node represents the average performance of all simulations going through that node.
MCTSのシミュレーションは、選択(selection)、展開(expansion)、ロールアウト(roll-out)及び逆伝搬(backpropagation)の4つのフェーズに分けられる。図1に4つのフェーズを簡易的に示している。(1)選択フェーズでは、まだ十分に展開されていないノードに達するまでルートからノードを選択してゆく。図1の例では、ルートノードから2階層下のノードが選択されたことが矢印で表されている。(2)展開フェーズでは、選択フェーズで選択されたノードに、1つのノードが追加される。(3)ロールアウトフェーズでは、ロールアウトのデフォルトポリシーに従ってシミュレーションを行う。(4)逆伝搬フェーズでは、シミュレーションの結果を逆方向、すなわちリーフノードからルートノード方向に伝搬してゆく。図1の例では、追加されたノード、選択されたノード、その親ノード、そしてルートノードに、シミュレーションの結果が逆方向に伝播されていく様子が模式的に示されている。
上でも述べたように、ノードは、シミュレートされたタスクの状態を表し、辺は、現在のノードの状態から子ノードの状態へ遷移するために実行されたアクションに対応する。
MCTS simulations are divided into four phases: selection, expansion, roll-out, and backpropagation. FIG. 1 schematically shows the four phases. (1) In the selection phase, nodes are selected from the root until reaching nodes that have not yet been fully deployed. In the example of FIG. 1, an arrow indicates that a node two levels below the root node has been selected. (2) In the development phase, one node is added to the nodes selected in the selection phase. (3) In the rollout phase, a simulation is performed according to the default policy of rollout. (4) In the back propagation phase, the result of the simulation is propagated in the reverse direction, that is, from the leaf node to the root node. In the example of FIG. 1, a state in which the result of the simulation is propagated in the opposite direction to the added node, the selected node, its parent node, and the root node is schematically illustrated.
As mentioned above, a node represents the state of a simulated task, and an edge corresponds to the action performed to transition from the state of the current node to the state of a child node.
MCTSの各シミュレーションは、現在の状態に対応するルートノードから始まる。上で述べた選択フェーズにおいては、ノードの値と被訪問回数とについて定義された選択ポリシーに基づき探索木の辺をたどってゆく。そして、子ノードを追加できるノードに到達すると、そのノードに新たなリーフノードを追加することで、探索木を拡張する。このリーフノードの追加が、展開フェーズの処理である。そして、ロールアウトフェーズにおいて、新たなリーフノードの状態から、ロールアウトポリシーが適用される。ロールアウトのシミュレーションは、許可された最大回数実行するか又は終了状態に至るまで繰り返される。このロールアウトポリシーには、ストレートフォワードランダムアクション(straight-forward random action)というロールアウトポリシーが広く用いられている。最後に、シミュレーションの結果が、リーフノードからルートノードまでの部分木において管理されている情報を更新するように、逆伝搬される。 Each simulation of the MCTS starts with the root node corresponding to the current state. In the above-described selection phase, the search tree is traversed based on a selection policy defined for the value of the node and the number of visits. Then, when reaching a node where a child node can be added, the search tree is extended by adding a new leaf node to the node. This addition of the leaf node is the processing of the development phase. Then, in the rollout phase, the rollout policy is applied from the state of the new leaf node. The simulation of the rollout is repeated the maximum number of times allowed or until an end condition is reached. As this rollout policy, a rollout policy called a straight-forward random action is widely used. Finally, the result of the simulation is back-propagated to update the information managed in the subtree from the leaf node to the root node.
なお、MCTSの選択フェーズにおけるキーは、有望なアクションの活用と決定空間の探索とのバランスをとることで、Upper Confidence Bounds applied to Trees (UCT)アルゴリズムが、それに対する良い解を与えており、一般的に用いられている。 The key in the selection phase of MCTS is to balance the use of promising actions and the search of decision space, and the Upper Confidence Bounds applied to Trees (UCT) algorithm has given a good solution to it. It is used regularly.
典型的なMCTSは、有限数のシーケンシャルな決定問題に適用される。しかし、決定空間がとても広いと、ある状態からすべてのアクションが少なくとも一度は探索されるので、探索木の展望がとても浅くなってしまうという問題が生ずる。このような場合は、決定空間が無限で連続であるという環境において生ずる。このような問題については、Hierarchical Optimistic Optimization applied to Tree (HOOT)というアプローチが提案されている。HOOTは、UCTの限界を超えるために、HOOアルゴリズムを木探索プランニングに統合したものである。HOOは、bandit問題に対する選択ポリシーを構成しており、その選択ポリシーは、前回のシミュレーションの結果に関して、アーム(arm)の選択で損した範囲(後悔の範囲:regret bounds)を改善するものである。HOOは、決定空間を木として分解することで、決定空間の一般的なトポロジカルな表現を形成するものである。 A typical MCTS is applied to a finite number of sequential decision problems. However, if the decision space is very large, there is a problem that the view of the search tree becomes very shallow because all actions are searched at least once from a certain state. Such a case occurs in an environment where the decision space is infinite and continuous. For such a problem, an approach called Hierarchical Optimistic Optimization applied to Tree (HOOT) has been proposed. HOOT integrates the HOO algorithm into tree search planning to go beyond the limits of UCT. HOO constitutes a selection policy for the bandit problem, and the selection policy is to improve the range (regret bounds) lost in the selection of the arm with respect to the result of the previous simulation. . HOO forms a general topological representation of a decision space by decomposing the decision space as a tree.
アクションが照会されると、HOOアルゴリズムでは、ノードで算出されるB-valueというスコアが最大となるパスに沿って探索が行われる。リーフノードでは、リーフノードで表される、決定空間内の範囲においてアクションがサンプリングされる。そして、2つの子ノードが、そのリーフノードに追加され、各子ノードは、そのリーフノードの親ノードにより表される、決定空間内の範囲の半分をカバーする。 When an action is queried, the HOO algorithm performs a search along a path having a maximum score of B-value calculated at a node. At the leaf nodes, actions are sampled in a range in the decision space represented by the leaf nodes. Then, two child nodes are added to the leaf node, each child node covering half of the range in decision space represented by the leaf node's parent node.
HOOTは、UCTに類似するが、HOOTは、連続的なアクションのbanditアルゴリズムであるHOOを探索木の各ノードに配置するものである。HOOは、UCTにおける離散アクションという限界を超えるため、アクションの選択のために、決定空間をサンプリングするのに用いられる。 HOOT is similar to UCT, but HOOT places a HOO, a bandit algorithm of continuous actions, at each node of the search tree. HOO is used to sample the decision space for selection of actions because it exceeds the limit of discrete actions in UCT.
従来のMCTSにおいては、アクションを選択してから次のアクションを選択するまでの時間間隔は固定であった。そのため、状態が刻々と変化するような環境においては、この時間間隔を短くすることで対応することになる。しかしながら、時間間隔が短くなると、シミュレーションの実行回数が制限されて信頼のおける探索木が生成できないという問題がある。 In the conventional MCTS, the time interval between the selection of an action and the selection of the next action is fixed. Therefore, in an environment where the state changes every moment, it is possible to cope by shortening the time interval. However, when the time interval becomes short, there is a problem that the number of times the simulation is executed is limited and a reliable search tree cannot be generated.
また、従来のHOOTでは、1種類のアクションを取り扱うことがほとんどであり、2種類以上のアクションをどのように取り扱うかについては、具体的な提案は存在していない。 Further, in the conventional HOOT, one type of action is mostly handled, and there is no specific proposal on how to handle two or more types of actions.
従って、本発明の目的は、一側面として、タスクに応じたアクションを適切な時間間隔において選択して指示できるようにするための技術を提供することである。 Therefore, an object of the present invention is to provide, as one aspect, a technique for selecting and instructing an action according to a task at an appropriate time interval.
本発明に係る制御方法は、(A)ノード間の辺に、次に実行すべきアクションとさらに次に実行すべきアクションを選択するまでの時間とを対応付けた、アクション及び時間を選択する木探索のための探索木において、新たなノードを追加しつつ、第1の評価式の値でノードを探索する探索処理を、前回実行された探索処理において選択されたノードへの辺に対応付けられた時間中に実行するステップと、(B)今回実行された探索処理において選択されたノードへの辺に対応付けられたアクションを、制御対象物に実行させるステップとを含む。 According to the control method of the present invention, (A) a tree for selecting an action and a time, in which an action to be executed next and a time until a next action to be executed is selected are associated with an edge between nodes. In a search tree for search, a search process of searching for a node with the value of the first evaluation expression while adding a new node is associated with an edge to the node selected in the previously executed search process. And (B) causing the control object to execute the action associated with the side to the node selected in the search process executed this time.
一側面によれば、タスクに応じたアクションを適切な時間間隔において選択して指示できるようになる。 According to an aspect, an action according to a task can be selected and indicated at an appropriate time interval.
図2に、本実施の形態に係るシステムの概要を示す。本実施の形態に係るシステムは、制御装置100と、連続的にタスクを実行する制御対象物200とを含む。制御装置100は、制御対象物200に対する制御装置として機能する。
FIG. 2 shows an outline of a system according to the present embodiment. The system according to the present embodiment includes a
制御装置100は、モンテカルロ木探索部110と、2DHOOT部120と、シミュレーション部130と、インターフェース部140とを有する。インターフェース部140は、時刻tiにおいて実行すべきアクションai及び次のアクションを選択するまでの時間τiをモンテカルロ木探索部110から受け取り、時間τiの間に制御対象物200にアクションaiを実行させる。これに対して、インターフェース部140は、制御対象物200から時刻tiにおけるタスクの状態Siを受け取り、モンテカルロ木探索部110に出力する。
The
シミュレーション部130は、制御対象物200が実行するタスクの挙動を複製したシミュレーションモデルである。よって、モンテカルロ木探索部110が、状態Sを指定して、時間τ中にアクションaを実行するように指示すれば、シミュレーション部130は、期待される状態Sと、報酬rとを予測して、モンテカルロ木探索部110に返す。
The
2DHOOT部120は、モンテカルロ木探索部110から状態SとMCTS探索木の着目ノードの平均報酬raとを受け取り、以下に述べる処理を行って、それらに応じたアクションaと時間τとを返す。
モンテカルロ木探索部110は、2DHOOT部120とシミュレーション部130と協働して、以下に述べる処理を行って、次に実行すべきアクションai及びさらに次に実行すべきアクションを選択するまでの時間τiを決定する。
The Monte Carlo
具体的なタイムシーケンスを図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ではないかもしれないし、同じであるかもしれないが、その都度選択される。
A specific time sequence will be described with reference to FIG. Time progresses from left to right, with the upper row representing transitions in actions and the lower row representing transitions in time intervals. That is, at time t i , the state of the task is actually S i , but the state S ′ i is estimated, and the Monte Carlo
本実施の形態においてモンテカルロ木探索部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)で遷移するノードとがある。
An example of a search tree searched by the Monte Carlo
本実施の形態では、モンテカルロ木探索部110は、上で述べたUCTを採用し、UCB1と呼ばれる値を最大化するノードを選択する。UCB1は、以下のように表される。なお、子ノードjを表す。
UCB1=Xaj+C×(2logn/nj)1/2
In the present embodiment, the Monte Carlo
UCB1 = Xa j + C × (2 logn / n j ) 1/2
ここで、Xajは、子ノードjを通過するシミュレーションのすべての報酬の平均値を表す。nは、子ノードjの親ノードの被訪問回数を表し、njは子ノードjの被訪問回数を表す。また、Cは正の定数であり、実験的に決定されるものである。 Here, Xa j represents the average of all compensation simulation through the child nodes j. n represents the number of visits of the parent node of the child node j, and n j represents the number of visits of the child node j. C is a positive constant, and is determined experimentally.
図4において、第1乃至第3の候補のアクション及び時間のペアで遷移する3つのノードに付された値がUCB1の値であるとすると、矢印で示しているように、UCB1の値が最も大きいノードに繋がれた辺に係る第1の候補のアクション及び時間のペアが選択されることになる。 In FIG. 4, assuming that the values assigned to the three nodes that transit in the pair of the action and time of the first to third candidates are the values of UCB1, as shown by the arrows, the value of UCB1 is the most significant. A first candidate action and time pair for the edge connected to the larger node will be selected.
本実施の形態では、HOOTを2次元に拡張して適用することで、従来の問題を解決する。すなわち、時間とアクションとで張られる2次元空間に対して2DHOOTを用いて、時間とアクションのペアを効果的にサンプリングする。2DHOOTでは、2次元空間における領域の包含関係を階層的に示し、各領域に対応するノードを有する別の探索木を用いる。例えば、ルートノードが、2次元空間全体を表し、ルートノードの4つの子ノードが、2次元空間を4つに分割した4つの大領域を表し、子ノードの4つの孫ノードが、大領域を4つに分割した4つの中領域を表し、孫ノードの4つのひ孫ノードが、中領域を4つに分割した4つの小領域を表す。 In the present embodiment, the conventional problem is solved by extending and applying HOOT to two dimensions. That is, a pair of time and action is effectively sampled using 2DHOOT in a two-dimensional space spanned by time and action. In 2DHOOT, the inclusion relation of a region in a two-dimensional space is hierarchically shown, and another search tree having a node corresponding to each region is used. For example, a root node represents the entire two-dimensional space, four child nodes of the root node represent four large regions obtained by dividing the two-dimensional space into four, and four grandchild nodes of the child nodes represent large regions. It represents four middle regions divided into four, and four great-grandchild nodes of the grandchild node represent four small regions obtained by dividing the middle region into four.
但し、このようなペアの数については、既知のプログレッシブワイドニング(PW:Progressive widening)を用いて制限する。PWは、探索木を浅くしてしまうのを避けるために、MCTSが、制限された数のペアに初期的にはフォーカスするようにする。シミュレーションの回数が増加すると、より広く決定空間をカバーするように、考慮すべきペアを増加させる。ある時点において、子ノードの数が、ノードの被訪問回数に関連して許容されるペアの最大数に達すると、そのノードについては、十分に展開されたとみなされる。 However, the number of such pairs is limited using known progressive widening (PW). The PW causes the MCTS to initially focus on a limited number of pairs to avoid making the search tree shallow. As the number of simulations increases, the number of pairs to be considered increases so as to cover the decision space more widely. At some point, if the number of child nodes reaches the maximum number of pairs allowed in relation to the number of times the node has been visited, the node is considered fully expanded.
2DHOOTは、シミュレーション中に評価されるべきアクションと時間のペア群に対するフィルタを追加するように機能する。2DHOOTサンプリングにおいては、探索木に追加すべきアクションと時間のペアの選択は、有望なペアがより選択され易いような領域に向かうようになる。結果として、MCTSによるアクションと時間のペアの選択効率は、シミュレーションの回数が制限されていても、改善されることになる。具体例については、後に詳細に述べる。 2DHOOT functions to add a filter for action-time pairs to be evaluated during the simulation. In 2DHOOT sampling, the selection of action and time pairs to be added to the search tree is directed to regions where promising pairs are more likely to be selected. As a result, the efficiency of selecting the action-time pair by the MCTS is improved even with a limited number of simulations. Specific examples will be described later in detail.
次に、図5乃至図7Eを用いて、制御装置100の処理内容について説明する。
Next, processing contents of the
まず、図5を用いて、タスクについて与えられた状態についてのMCTSに係る処理について説明する。 First, with reference to FIG. 5, a process related to the MCTS in a state given to a task will be described.
モンテカルロ木探索部110は、現在ノード(すなわち着目ノード)に、ルートノードを設定する(図5:ステップS1)。前回選択されたアクションと対で選択された時間τ(τは変動する)毎に行われる探索木の構築は、ルートノードから始まる。
The Monte Carlo
そして、モンテカルロ木探索部110は、現在ノードは十分に展開されたか否かを判断する(ステップS3)。十分に展開されたか否かは、例えばPWに基づき決定される。十分に展開されたと判断された場合には、モンテカルロ木探索部110は、現在ノードに、評価値UCB1が最大の子ノードを設定する(ステップS5)。そして処理はステップS3に戻る。UCB1の定義は、従来と同じである。
Then, the Monte Carlo
一方、十分に展開されたと判断されなかった場合には、モンテカルロ木探索部110は、状態Sと平均報酬raを渡して2DHOOT部120を呼び出し、(a,τ)をサンプリングさせ、探索木に当該(a,τ)を辺とするリーフノードを追加する(ステップS7)。2DHOOT部120の処理については、後に説明する。なお、ここで、追加したリーフノードに、2DHOOTにおいてサンプリングされたノードへのポインタを保存する。
On the other hand, when it is not determined to have been fully deployed, Carlo
そして、モンテカルロ木探索部110は、サンプリングされた(a,τ)と状態Sとを渡してシミュレーション部130にタスクのシミュレーションを行わせることでロールアウトを実行する(ステップS9)。制御対象物200が実行するタスクを模したモデルでシミュレーションを実行するものである。そうすると、シミュレーション部130は、シミュレーション結果として状態Sと報酬rを返してくる。
Then, the Monte Carlo
また、モンテカルロ木探索部110は、追加されたリーフノードからシミュレーション結果を逆伝搬させるバックアップ処理を実行する(ステップS11)。本ステップの逆伝搬は、従来と同じなので説明を省略する。
In addition, the Monte Carlo
そして、モンテカルロ木探索部110は、今回の処理開始から、前回選択されたノードへの辺に対応づけられた時間τi-1i-1が経過したか否かを判断する(ステップS13)。今回の処理開始から時間τi-1が経過していなければ、処理はステップS1に戻る。
Then, the Monte Carlo
一方、処理開始から時間τi-1が経過した場合には、モンテカルロ木探索部110は、各ノードについて評価値UCB1を算出して、評価値UCB1が最大のノードを選択し、そのノードへの辺に対応付けられている(ai,τi)を選択する(ステップS15)。
On the other hand, if the time τ i-1 has elapsed from the start of the processing, the Monte Carlo
そうすると、モンテカルロ木探索部110は、ai及びτiをインターフェース部140に出力し、インターフェース部140は、時間τi中に、アクションaiを実行するように、制御対象物200に指示する(ステップS17)。制御対象物200は指示に従ってタスクを実行し、タスクの処理結果として状態Siを返してくる。
Then, the Monte Carlo
このような処理を繰り返すことで、適切に選択された各時間間隔で、適切に選択されたアクションを制御対象物200に実行させることができるようになる。
By repeating such processing, it becomes possible to cause the
次に、ステップS7で呼び出される2DHOOT部120の処理内容について説明する。
Next, the processing contents of the
本実施の形態では、MCTSにおける探索木の各ノードは、2DHOOTにおける探索木を含む。2DHOOTにおける探索木において、ルートノードは、アクション空間(決定空間)全体のクオリティの楽観的な見積もりを保持しており、その子ノードは、アクション空間におけるより狭い領域についてのより正確な見積もりを保持している。一般的に、ある親ノードの子ノードは、同じサイズを有する各々別の領域を表しており、それらの領域で、親ノードが表す領域をすべてカバーする。2DHOOTのアルゴリズムに従えば、あるリーフノードが選択され、そのリーフノードが表す領域から、アクションaと時間τのペアがサンプリングされる。 In the present embodiment, each node of the search tree in the MCTS includes a search tree in 2DHOOT. In the search tree in 2DHOOT, the root node holds an optimistic estimate of the quality of the entire action space (decision space), and its child nodes hold more accurate estimates of a smaller area in the action space. I have. In general, the child nodes of a parent node represent different regions of the same size, which cover all the regions represented by the parent node. According to the 2DHOOT algorithm, a leaf node is selected, and a pair of an action a and a time τ is sampled from a region represented by the leaf node.
より詳細な処理内容について、図6を用いて説明する。 More detailed processing contents will be described with reference to FIG.
まず、2DHOOT部120は、ルートノードを選択する(図6:ステップS31)。そして、2DHOOT部120は、現在ノード(すなわち着目ノード)に、選択ノードを設定する(ステップS33)。その後、2DHOOT部120は、現在ノードは、スコア等が更新されていない子ノードを有するか判断する(ステップS35)。現在ノードが、スコア等が更新されていない子ノードを有する場合には(ステップS35:Yesルート)、2DHOOT部120は、スコア等が更新されていない子ノードを、選択する(ステップS37)。そして処理はステップS33に戻る。このように、ループL311では、ルートノードから、スコア等が更新されていない下位のノードを再帰的に探索する。
First, the
一方、現在ノードが、スコア等が更新されていない子ノードを有しないノードまで到達すると(ステップS35:Noルート)、2DHOOT部120は、現在ノードのスコア等を更新する(ステップS39)。
On the other hand, when the current node reaches a node having no child node whose score or the like has not been updated (step S35: No route), the
2DHOOTの探索木から選択されるアクション及び時間ペアの期待報酬は、MCTSで実施されたシミュレーションの平均報酬raに依存する。また、2DHOOTの探索木におけるノードの値は、そのサブツリーに属する全てのノードの影響を受ける。すなわち、ノードiの見積もり報酬Re iは、以下の式で繰り返し更新される。
なお、jは、ノードiの各子ノードを表し、niは、ノードiの被訪問回数であり、njは、ノードjの被訪問回数であり、Re jは、ノードjの見積もり報酬を表す。 Incidentally, j represents the child node of the node i, n i is the target number of visits node i, n j is the number of visits node j, R e j is estimated compensation node j Represents
また、U-Valueは、ノードiの見積もり報酬Re iに基づき以下のように定義されている。
ここで、nは、図6の処理の繰り返し回数を表し、定数v1及びρは、v1>0で0<ρ<1で、実験的に適切な値がセットされる。hiは、探索木におけるノードiの深さを表す。 Here, n represents the number of repetitions of the processing in FIG. 6, and the constants v 1 and ρ are v 1 > 0 and 0 <ρ <1, and appropriate values are set experimentally. h i represents the depth of the node i in the search tree.
そして、スコアB-value(スコアBとも記す)は、以下のように定義される。
なお、Bjは、ノードiの子ノードjのスコアB-valueであり、(3)式は、全ての子ノードjについてのBjのうちの最大値と、Uiとの最小値を、Biに設定するものである。また、まだサンプリングされていないノードのBi及びUiには、無限大が設定される。 Note that B j is the score B-value of the child node j of the node i. Equation (3) expresses the maximum value of B j and the minimum value of U i for all the child nodes j, B i . In addition, infinity is set for B i and U i of nodes that have not been sampled yet.
ステップS39では、このように定義されるスコア等の値を更新する。 In step S39, the values such as the score defined in this way are updated.
そして、2DHOOT部120は、現在ノードがルートノードであるか否かを判断する(ステップS41)。現在ノードがルートノードではない場合には、2DHOOT部120は、親ノードを選択する(ステップS43)。そして処理はステップS33に移行する。
Then, the
このように、ループL31における処理によってリーフノードからルートノード方向に、スコア等の値の更新を行ってゆく。 As described above, the values such as the score are updated in the direction from the leaf node to the root node by the processing in the loop L31.
一方、現在ノードがルートノードである場合には、スコア等の値の更新が終了したので、2DHOOT部120は、現在ノードがリーフノードであるか否かを判断する(ステップS45)。ステップS45に最初に移行してくる場合には、現在ノードはルートノードなので、現在ノードはリーフノードではないと判断される。
On the other hand, when the current node is the root node, the updating of the values such as the scores has been completed, and the
現在ノードがリーフノードではない場合には、2DHOOT部120は、スコアB-valueが、最大の子ノードを選択して、現在ノードに設定する(ステップS47)。また、選択されたノードの被訪問回数を1インクリメントする。そして、処理はステップS45に移行する。このようなループL33は、スコアB-valueが最大であるノードをリーフノードまでたどるパスを探索する処理である。
If the current node is not a leaf node, the
一方、現在ノードがリーフノードである場合には、2DHOOT部120は、リーフノードでカバーされる領域において、(a,τ)をサンプリングする(ステップS49)。アクションaについては、選択されたリーフノードでカバーされる領域[amin,amax]内の値がサンプリングされる。時間τについても、選択されたリーフノードでカバーされる領域[τmin,τmax]内の値がサンプリングされる。
On the other hand, when the current node is a leaf node, the
そして、2DHOOT部120は、2DHOOTの探索木を拡張する処理を行う(ステップS51)。具体的には、選択されたリーフノードに、4つの子ノードを追加する。4つの子ノードは、選択されたリーフノードがカバーする領域を均等に4分割することで得られる領域の各々に対応する。なお、アクションaと時間τの2次元空間なので、次元数(=2)を指数とする、ひとつの次元についての分割数(=2)のべき乗=4で分割される。なお、ひとつの次元についての分割数については2以上の自然数であり、ユーザなどの設定により決定される。
Then, the
なお、リーフノードからルートノードまでの選択されたノードの被訪問回数を更新するために、2DHOOTの探索木のバックアップが実行される。すなわち、各ノードについて被訪問回数を保持しておき、その数を更新する。 Note that a 2DHOOT search tree backup is performed to update the number of times the selected node from the leaf node to the root node is visited. That is, the number of times visited is held for each node, and the number is updated.
そして、2DHOOT部120は、リーフノードへのポインタと、サンプリングされた(a,τ)を、モンテカルロ木探索部110に出力する(ステップS53)。これによって、より有望なアクション及び時間のペアがサンプリングされる。
Then, the
図7A乃至図7Eを用いて、処理の具体例について説明する。 A specific example of the processing will be described with reference to FIGS. 7A to 7E.
MCTSの探索木におけるノードpが初めて訪問されると(図7Aの(a)の上段)、2DHOOTの探索木のルートノード1が選択され(図7Aの(b)の上段)、当該ルートノード1が表す、アクションaと時間τとで張られる決定空間の全領域から、点1(a1,τ1)がサンプリングされる(図7Aの(c))。
When the node p in the search tree of the MCTS is visited for the first time (upper part of (a) of FIG. 7A), the
本実施の形態では、アクションaも時間τも、有限の範囲内の連続的な値であるが、ここでは[0,1]に正規化されて示されている。 In the present embodiment, both the action a and the time τ are continuous values within a finite range, but are shown here normalized to [0, 1].
そうすると、2DHOOTの探索木の拡張、すなわち4つの子ノードの追加がなされる(図7Aの(b)の下段)。この4つの子ノードは、図7Aの(c)に示すように、互いに重ならずに同じ面積を有する領域A乃至Dのいずれかに対応する。 Then, expansion of the 2DHOOT search tree, that is, addition of four child nodes, is performed (lower part of (b) of FIG. 7A). These four child nodes correspond to any of the regions A to D having the same area without overlapping each other, as shown in FIG. 7C.
サンプリングされた(a1,τ1)は、MCTSの探索木をノードaで拡張するのに用いられる。すなわち、図7Aの(a)の下段に示すように、ノードpからノードaへの辺は、(a1,τ1)に対応付けられている。なお、ノードaの値が更新されると、ノード1の値も更新される。
The sampled (a 1 , τ 1 ) is used to extend the MCTS search tree at node a. That is, as shown in the lower part of (a) of FIG. 7A, the side from the node p to the node a is associated with (a 1 , τ 1 ). When the value of the node a is updated, the value of the
次に、MCTSの探索木におけるノードpが再度拡張される場合には(図7Bの(a)の上段)、2DHOOTの探索木では、ルートノード1の子ノード2が選択され(図7Bの(b)の上段)、ノード2が表す領域Bの中から、点2(a2,τ2)がサンプリングされる(図7Bの(c))。
Next, when the node p in the search tree of the MCTS is expanded again (the upper part of (a) in FIG. 7B), the
そうすると、2DHOOTの探索木の拡張、すなわち4つの子ノードの追加がなされる(図7Bの(b)の下段)。この4つの子ノードは、図7Bの(c)に示すように、互いに重ならずに同じ面積を有する領域B1乃至B4のいずれかに対応する。 Then, the 2DHOOT search tree is expanded, that is, four child nodes are added (lower part of (b) of FIG. 7B). These four child nodes correspond to any of the regions B1 to B4 which do not overlap each other and have the same area as shown in FIG. 7C.
サンプリングされた(a2,τ2)は、MCTSの探索木をノードbで拡張するのに用いられる。すなわち、図7Bの(a)の下段に示すように、ノードpからノードbへの辺は、(a2,τ2)に対応付けられている。 The sampled (a 2 , τ 2 ) is used to extend the MCTS search tree at node b. That is, as shown in the lower part of (a) of FIG. 7B, the side from the node p to the node b is associated with (a 2 , τ 2 ).
次に、MCTSの探索木におけるノードpが再度拡張される場合には(図7Cの(a)の上段)、2DHOOTの探索木では、ルートノード1の子ノード3が選択され(図7Cの(b)の上段)、ノード3が表す領域Aの中から、点3(a3,τ3)がサンプリングされる(図7Cの(c))。
Next, when the node p in the search tree of the MCTS is expanded again (the upper part of (a) of FIG. 7C), the
そうすると、2DHOOTの探索木の拡張、すなわち4つの子ノードの追加がなされる(図7Cの(b)の下段)。この4つの子ノードは、図7Cの(c)に示すように、互いに重ならずに同じ面積を有する領域A1乃至A4のいずれかに対応する。 Then, the 2DHOOT search tree is expanded, that is, four child nodes are added (lower part of (b) of FIG. 7C). As shown in FIG. 7C, the four child nodes correspond to any of the regions A1 to A4 which do not overlap each other and have the same area.
サンプリングされた(a3,τ3)は、MCTSの探索木をノードcで拡張するのに用いられる。すなわち、図7Cの(a)の下段に示すように、ノードpからノードcへの辺は、(a3,τ3)に対応付けられている。 The sampled (a 3 , τ 3 ) is used to extend the MCTS search tree at node c. That is, as shown in the lower part of FIG. 7A, the side from the node p to the node c is associated with (a 3 , τ 3 ).
このような処理を繰り返してゆき、MCTSの探索木に5つのノードa乃至eを追加した後に、再度、MCTSの探索木におけるノードpが拡張される場合には(図7Dの(a)の上段)、2DHOOTの探索木では、ノード2の子ノード6が選択され(図7Dの(b)の上段)、ノード6が表す領域B1の中から、点6(a6,τ6)がサンプリングされる(図7Dの(c))。
Such a process is repeated, and after adding five nodes a to e to the MCTS search tree, if the node p in the MCTS search tree is expanded again (the upper part of (a) in FIG. 7D) In the 2DHOOT search tree, the
そうすると、2DHOOTの探索木の拡張、すなわち4つの子ノードの追加がなされる(図7Dの(b)の下段)。この4つの子ノードは、図7Dの(c)に示すように、互いに重ならずに同じ面積を有する領域B11乃至B14のいずれかに対応する。 Then, expansion of the 2DHOOT search tree, that is, addition of four child nodes, is performed (lower part of (b) of FIG. 7D). These four child nodes correspond to any of the regions B11 to B14 which do not overlap each other and have the same area as shown in (c) of FIG. 7D.
サンプリングされた(a6,τ6)は、MCTSの探索木をノードfで拡張するのに用いられる。すなわち、図7Dの(a)の下段に示すように、ノードpからノードfへの辺は、(a6,τ6)に対応付けられている。 The sampled (a 6 , τ 6 ) is used to extend the MCTS search tree at node f. That is, as shown in the lower part of (a) of FIG. 7D, the side from the node p to the node f is associated with (a 6 , τ 6 ).
ここまでで、ノードaとノード1が関連付けられ、ノードbとノード2が関連付けられ、ノードcとノード3が関連付けられ、ノードdとノード4が関連付けられ、ノードeとノード5が関連付けられ、ノードfとノード6が関連付けられている。
Up to this point, node a is associated with
なお、2DHOOTの探索木において、孫ノードの階層に行く前に、ルートノードの全ての子ノードが更新される。一般的には、そのノードから次の下の階層に行く前に、そのノードの全ての子が更新される。 Note that in the 2DHOOT search tree, all child nodes of the root node are updated before going to the grandchild node hierarchy. Generally, all children of the node are updated before going from the node to the next lower level.
さらに処理が繰り返されて、MCTSの探索木に10個のノードa乃至lを追加した後に、再度、MCTSの探索木におけるノードpが拡張される場合には(図7Eの(a)の上段)、2DHOOTの探索木では、ノード7の子ノード11が選択され(図7Eの(b)の上段)、ノード11が表す領域B23の中から、点11(a11,τ11)がサンプリングされる(図7Eの(c))。
When the process is repeated and ten nodes a to l are added to the MCTS search tree, and the node p in the MCTS search tree is expanded again (the upper part of (a) in FIG. 7E). In the 2DHOOT search tree, the
そうすると、2DHOOTの探索木の拡張、すなわち4つの子ノードの追加がなされる(図7Eの(b)の下段)。この4つの子ノードは、図7Eの(c)に示すように、互いに重ならずに同じ面積を有する領域B231乃至B234のいずれかに対応する。 Then, the search tree of 2DHOOT is expanded, that is, four child nodes are added (lower part of (b) of FIG. 7E). These four child nodes correspond to any of the regions B231 to B234 having the same area without overlapping each other, as shown in FIG. 7E (c).
サンプリングされた(a11,τ11)は、MCTSの探索木をノードkで拡張するのに用いられる。すなわち、図7Eの(a)の下段に示すように、ノードpからノードkへの辺は、(a11,τ11)に対応付けられている。 The sampled (a 11 , τ 11 ) is used to extend the MCTS search tree at node k. That is, as shown in the lower part of (a) of FIG. 7E, the side from the node p to the node k is associated with (a 11 , τ 11 ).
このように、2DHOOTの探索木におけるノードは、MCTSの探索木におけるノードと関連付けられる。また、MCTSの探索木におけるノードの値が更新されると、2DHOOTの探索木におけるノードの値も更新される。 Thus, the nodes in the 2DHOOT search tree are associated with the nodes in the MCTS search tree. When the value of the node in the MCTS search tree is updated, the value of the node in the 2DHOOT search tree is also updated.
MCTSの探索木において追加された各ノードは、親ノードのための2DHOOTの探索木における選択リーフノードへのポインタを保持し、新たな2DHOOTの探索木を初期化する。すなわち、MCTSの探索木は、各ノードにアクション及び時間のペアを選択するための2DHOOTの探索木と、親ノードのための2DHOOTの探索木においてアクション及び時間のペアがサンプルされたリーフノードへのポインタとを保持している。 Each node added in the MCTS search tree holds a pointer to the selected leaf node in the 2DHOOT search tree for the parent node, and initializes a new 2DHOOT search tree. That is, the search tree of the MCTS includes a 2DHOOT search tree for selecting an action and time pair for each node, and a leaf node where the action and time pair is sampled in the 2DHOOT search tree for the parent node. Holding a pointer.
リーフノードへのポインタは、平均報酬raを更新するために用いられる。(1)式で示したように、2DHOOTの探索木におけるノードiの見積もり報酬Re iの計算には、平均報酬raが用いられる。このような平均報酬raを用いることで、決定空間において、長期にわたってうまく実行されることが期待されるアクション等の領域に向かって、2DHOOTの探索木におけるノード選択が行われるようになる。 Pointer to the leaf node is used to update the average reward r a. (1) As shown by the formula, the calculation of the estimated compensation R e i of the node i in the search tree of 2DHOOT, average reward r a is used. By using such an average reward r a , the node selection in the 2DHOOT search tree is performed in the decision space toward an area such as an action that is expected to be executed well over a long period of time.
以上本実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、機能ブロック構成例は例に過ぎず、プログラムモジュール構成とは一致しない場合もある。また、処理フローについても、処理結果が変わらない限り、処理順番を入れ替えたり、複数のステップを並列に実行してもよい。 Although the present embodiment has been described above, the present invention is not limited to this. For example, the functional block configuration example is merely an example, and may not match the program module configuration. As for the processing flow, as long as the processing result does not change, the processing order may be changed or a plurality of steps may be executed in parallel.
また、上で述べた例では、アクションaと時間τで2次元空間を取り扱ったが、より多くの次元をHOOTで取り扱うことも可能である。すなわち、アクションa1乃至an-1と時間τとでn次元空間を取り扱ってもよい。時間τを除いてn次元空間としてもよい。その場合、探索木の拡張時には、n次元HOOTで子ノードは、ひとつの次元について指定された分割数(2以上の自然数)のn乗個追加することになる。 Further, in the example described above, the two-dimensional space is handled by the action a and the time τ, but it is possible to handle more dimensions by HOOT. That is, the n- dimensional space may be handled by the actions a 1 to an -1 and the time τ. The space may be an n-dimensional space excluding the time τ. In this case, when expanding the search tree, n-dimensional HOOT adds n number of child nodes to the number of divisions (natural numbers of 2 or more) specified for one dimension.
なお、制御対象部200は、どのようなものでもよいが、例えば車両の自動運転その他の連続したタスクを実行する装置である。
Note that the
図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
The contents of the processing shown in FIG. 6 are represented by pseudo code as follows.
1: procedure UCTSEARCH (root, τ)
2: while time <τ do // Step S13
3: front = TreeSearch (root) // Step S1
4: reward = DefaultPolicy (front.state, front.horizon)
// Step S9
5: BackUp (front, reward) // Step S11
6: return BestChild (root, 0) // Select the best (a, τ)
7: procedure TREESEARCH (node)
8: while not node.state.terminal () do: // Repeat until it reaches the end state
9: if not node.fully.expanded () then: // Step S3
10: return Expand (node) // Step S7
11: else:
12: node = BestChild (node, scale) // Step S5
13: return node
14: procedure DEFAULTPOLICY (state) // Details of step 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) // Step S7: (a, τ) sampling
26: addedNode = node.AddChild (a, τ, Hleaf) // Step S7: Add node
27: return addedNode // Step S7: Expansion of search tree
28: procedure BESTCHILD (node, C) // Select the node with the maximum UCB1
29: bestchildren = []
30: UCB1 max = −∞
31: x do included in for node.children
32: UCB1 = x.reward / x.visits + C × {(2log (node.visits) /x.visits} 0.5
33: if UCB1 == UCB1 max then
34: bestchildren.append (x)
35: if UCB1> UCB1 max then
36: bestchildren = [x]
37: UCB1 max = UCB1
38: return random.choice (bestchildren) // Random for multiple candidates
39: procedure BACKUP (Node, reward) // Details of step S11
40: while node do
41: node.visits = node.visits + 1 // increments the number of visits
42: node.reward = node.reward + reward // Update reward
43: node.Hleaf.reward = node.reward // Update 2DHOOT node value
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を返す
The contents of the processing shown in FIG. 7 are represented by pseudo code as follows.
1: procedure HOOSEARCH (root)
2: HOO-Update (root, root.visits) // Loop L31 tree update
3: leaf = HOOPolicy (root) // Loop L33 Search for path with maximum score
4: a, τ = sample.leaf.region () // Step S49
5: leaf.expand () // Step S51
6: return a, τ, leaf // Return (a, τ) and pointer
7: procedure HOO-UPDATE (node, N) // Details of recursive loop L31
8: childB max = 0
9: x do included in for node.children // loop L311 recursive child node update
10: HOO-Update (x, N)
11: x do included in for node.children // Step S39
12: node.reward = node.reward + x.reward
13: if x.Bvalue> childB max then
14: childB max = x.Bvalue // used for Bvalue update
15: Uvalue = node.reward / node.visits + {2log (N) /node.visits} 0.5
+ v 1 ρ h // Step S39 U-value update
16: if Uvalue <childB max then // Step S39 B-value update
17: node.Bvalue = Uvalue
18: else
19: node.Bvalue = childB max
20: procedure HOOPOLICY (node)
21: while node.children do // loop L33
22: node.visits = node.visits + 1 // increment of node visit count
23: bestchildren = []
24: Bvalue max = -∞
25: x do included in for node.children
26: if x.Bvalue == Bvalue max then
27: bestchildren.append (x)
28: if x.Bvalue> Bvalue max then
29: bestchildren = [x]
30: Bvalue max = x.Bvalue
31: node = random.choice (bestchildren) // Random for multiple candidates
32: node.visits = node.vistis + 1 // increment of the number of visits
33: return node // returns the selected 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及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
The
なお、上で述べたような処理を実行することで用いられるデータは、処理途中のものであるか、処理結果であるかを問わず、メモリ2501又はHDD2505等の記憶装置に格納される。例えば、探索木を表すデータ、及び被訪問回数、評価値、スコア等のノードの値は、メモリ2501等に格納される。
The data used by executing the above-described processing is stored in a storage device such as the
以上述べた実施の形態をまとめると以下のようになる。 The embodiments described above are summarized as follows.
本実施の形態に係る制御方法は、(A)ノード間の辺に、次に実行すべきアクションとさらに次に実行すべきアクションを選択するまでの時間とを対応付けた、アクション及び時間を選択する木探索のための探索木において、新たなノードを追加しつつ、第1の評価式の値(例えばUCB1の値が最大)でノードを探索する探索処理を、前回実行された探索処理において選択されたノードへの辺に対応付けられた時間中に実行するステップと、(B)今回実行された探索処理において選択されたノードへの辺に対応付けられたアクションを、制御対象物に実行させるステップとを含む。 The control method according to the present embodiment includes: (A) selecting an action and a time, in which an action to be executed next and a time until a next action to be executed are selected are associated with an edge between nodes; In a search tree for tree search, a search process for searching for a node with the value of the first evaluation expression (for example, the value of UCB1 is maximum) while adding a new node is selected in the search process executed last time. And (B) causing the control object to execute an action associated with the edge to the node selected in the search process executed this time, and a step to be executed during the time associated with the edge to the selected node. Steps.
このように、新規な探索木を用いて、制御対象物が実行するタスクに応じたアクションを適切な時間間隔において選択して指示できるようになる。なお、木探索の探索処理は、例えばMCTSに従うものである。 As described above, using the new search tree, an action according to the task executed by the control target can be selected and indicated at an appropriate time interval. The search processing of the tree search is based on, for example, MCTS.
なお、上記次に実行すべきアクションが、有限の連続値の中の一つの値に対応し、上記さらに次に実行すべきアクションを選択するまでの時間が、有限の連続する時間内の一つの値である場合もある。これらの値は、適切なサンプリングにて選択される。 The next action to be executed corresponds to one of the finite continuous values, and the time until the further next action to be executed is one of the finite continuous times. It can be a value. These values are selected with appropriate sampling.
また、上で述べた探索処理に含まれる上記新たなノードを追加する処理が、(a1)次に実行すべきアクションと時間とで張られる空間において、当該空間に含まれる領域の包含関係を階層的に表し、各領域に対応するノードを有する第2の探索木において、第2の評価式の値(例えばスコアBが最大)でノードを第2の探索木のルートノードからリーフノードまで選択するステップと、(a2)選択されたリーフノードに対応する領域内において点を選択するステップと、(a3)選択された点についてのアクション及び時間が対応付けられた辺で繋がるノードを探索木において追加するステップとを含むようにしてもよい。 Further, the process of adding the new node included in the above-described search process is performed by: (a1) In a space spanned by an action to be executed next and time, the inclusion relation of the region included in the space is hierarchically determined. In the second search tree having nodes corresponding to the respective regions, nodes are selected from the root node of the second search tree to the leaf nodes by the value of the second evaluation expression (for example, the score B is the largest). (A2) selecting a point in the area corresponding to the selected leaf node; and (a3) adding a node connected by an action and time associated with the selected point to the search tree. And the step of performing
このように、アクション及び時間をペアで適切にサンプリングするために、上で述べたような第2の探索木を用いるような処理を採用するようにしてもよい。第2の探索木を用いるような処理は、例えば多次元に拡張されたHOOTに従うものである。 As described above, in order to appropriately sample the action and the time as a pair, a process using the second search tree as described above may be adopted. The processing using the second search tree is based on, for example, HOOT extended in a multi-dimensional manner.
さらに、上で述べた探索処理に含まれる上記新たなノードを追加する処理が、(a4)選択されたリーフノードに対応する領域を、上記空間の次元数を指数とする所定数(2以上の自然数)のべき乗個に分割することで生成された新たな領域に対応するリーフノードを、第2の探索木に追加するステップを含むようにしてもよい。このようにすれば、適切に空間を分割しつつ、第2の探索木で領域の関係を適切に表すことができるようになる。 Further, the process of adding the new node included in the above-described search process includes the step of: (a4) setting the area corresponding to the selected leaf node to a predetermined number (two or more The method may include a step of adding, to the second search tree, a leaf node corresponding to a new region generated by dividing into a power of (natural number). This makes it possible to appropriately divide the space and appropriately express the relationship between the regions by the second search tree.
以上述べた制御方法をコンピュータに実行させるためのプログラムを作成することができて、そのプログラムは、様々な記憶媒体に記憶される。 A program for causing a computer to execute the control method described above can be created, and the program is stored in various storage media.
また、上で述べたような制御方法を実行する制御装置は、1台のコンピュータで実現される場合もあれば、複数台のコンピュータで実現される場合もあり、それらを合わせて制御システム又は単にシステムと呼ぶものとする。 Further, the control device that executes the control method as described above may be realized by a single computer, or may be realized by a plurality of computers. It shall be called a system.
100 制御装置
110 モンテカルロ木探索部
120 2DHOOT部
130 シミュレーション部
140 インターフェース部
200 制御対象物
REFERENCE SIGNS
Claims (6)
今回実行された探索処理において選択されたノードへの辺に対応付けられたアクションを、制御対象物に実行させるステップと、
を、1又は複数のプロセッサに実行させるための制御プログラム。 In a search tree for searching a tree for selecting an action and a time, in which a next action to be performed and a time until the next action to be further performed are selected, a new node Executing a search process for searching for a node with the value of the first evaluation expression during the time period associated with the edge to the node selected in the search process executed last time,
Causing the control object to execute an action associated with the side to the node selected in the search processing executed this time;
For causing one or more processors to execute
前記さらに次に実行すべきアクションを選択するまでの時間が、有限の連続する時間内の一つの値である
請求項1記載の制御プログラム。 The next action to be performed corresponds to one of a finite number of continuous values,
The control program according to claim 1, wherein the time until the action to be executed next is selected is one value within a finite continuous time.
前記次に実行すべきアクションと前記時間とで張られる空間において、当該空間に含まれる領域の包含関係を階層的に表し、各領域に対応するノードを有する第2の探索木において、第2の評価式の値でノードを前記第2の探索木のルートノードからリーフノードまで選択するステップと、
選択された前記リーフノードに対応する領域内において点を選択するステップと、
選択された前記点についてのアクション及び時間が対応付けられた辺で繋がるノードを前記探索木において追加するステップと、
を含む請求項2記載の制御プログラム。 The process of adding the new node included in the search process includes:
In a space spanned by the next action to be executed and the time, the inclusion relation of the regions included in the space is hierarchically represented, and in a second search tree having a node corresponding to each region, Selecting a node from a root node of the second search tree to a leaf node with a value of an evaluation expression;
Selecting a point in an area corresponding to the selected leaf node;
Adding, in the search tree, a node connected by the action and time associated with the selected point,
The control program according to claim 2, comprising:
選択された前記リーフノードに対応する領域を、前記空間の次元数を指数とする所定数(2以上の自然数)のべき乗個に分割することで生成された新たな領域に対応するリーフノードを、前記第2の探索木に追加するステップ
をさらに含む請求項3記載の制御プログラム。 The process of adding the new node included in the search process includes:
A leaf node corresponding to a new region generated by dividing an area corresponding to the selected leaf node into powers of a predetermined number (a natural number of 2 or more) whose exponent is the dimension number of the space, The control program according to claim 3, further comprising: adding to the second search tree.
今回実行された探索処理において選択されたノードへの辺に対応付けられたアクションを、制御対象物に実行させるステップと、
を含み、1又は複数のプロセッサが実行する制御方法。 In a search tree for searching a tree for selecting an action and a time, in which a next action to be performed and a time until the next action to be further performed are selected, a new node Executing a search process for searching for a node with the value of the first evaluation expression during the time period associated with the edge to the node selected in the search process executed last time,
Causing the control object to execute an action associated with the side to the node selected in the search processing executed this time;
And a control method executed by one or more processors.
今回実行された探索処理において選択されたノードへの辺に対応付けられたアクションを、制御対象物に実行させる指示部と、
を有するシステム。 In a search tree for searching a tree for selecting an action and a time, in which a next action to be performed and a time until the next action to be further performed are selected, a new node A search unit that executes a search process for searching for a node with the value of the first evaluation expression during a time period associated with an edge to the node selected in the search process executed last time,
An instruction unit for causing the control object to execute the action associated with the side to the node selected in the search process executed this time;
A system having:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018129322A JP7093547B2 (en) | 2018-07-06 | 2018-07-06 | Control programs, control methods and systems |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018129322A JP7093547B2 (en) | 2018-07-06 | 2018-07-06 | Control programs, control methods and systems |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020009122A true JP2020009122A (en) | 2020-01-16 |
JP7093547B2 JP7093547B2 (en) | 2022-06-30 |
Family
ID=69151713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018129322A Active JP7093547B2 (en) | 2018-07-06 | 2018-07-06 | Control programs, control methods and systems |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7093547B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7419547B2 (en) | 2020-01-28 | 2024-01-22 | ディープマインド テクノロジーズ リミテッド | Planning for agent control using learned hidden states |
CN117521576A (en) * | 2024-01-08 | 2024-02-06 | 深圳鸿芯微纳技术有限公司 | Computing resource sharing method, device, equipment and medium |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09114849A (en) * | 1995-10-16 | 1997-05-02 | N T T Data Tsushin Kk | Tree searching device and tree searching method |
JPH1185845A (en) * | 1997-09-08 | 1999-03-30 | Fuji Electric Co Ltd | Regular repair planning set method for power generator |
WO2007055181A1 (en) * | 2005-11-11 | 2007-05-18 | Matsushita Electric Industrial Co., Ltd. | Interaction support device |
WO2014087590A1 (en) * | 2012-12-05 | 2014-06-12 | 日本電気株式会社 | Optimization device, optimization method and optimization program |
WO2014115232A1 (en) * | 2013-01-25 | 2014-07-31 | 日本電気株式会社 | Solution search device, solution search method, and solution search program |
-
2018
- 2018-07-06 JP JP2018129322A patent/JP7093547B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09114849A (en) * | 1995-10-16 | 1997-05-02 | N T T Data Tsushin Kk | Tree searching device and tree searching method |
JPH1185845A (en) * | 1997-09-08 | 1999-03-30 | Fuji Electric Co Ltd | Regular repair planning set method for power generator |
WO2007055181A1 (en) * | 2005-11-11 | 2007-05-18 | Matsushita Electric Industrial Co., Ltd. | Interaction support device |
WO2014087590A1 (en) * | 2012-12-05 | 2014-06-12 | 日本電気株式会社 | Optimization device, optimization method and optimization program |
WO2014115232A1 (en) * | 2013-01-25 | 2014-07-31 | 日本電気株式会社 | Solution search device, solution search method, and solution search program |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7419547B2 (en) | 2020-01-28 | 2024-01-22 | ディープマインド テクノロジーズ リミテッド | Planning for agent control using learned hidden states |
CN117521576A (en) * | 2024-01-08 | 2024-02-06 | 深圳鸿芯微纳技术有限公司 | Computing resource sharing method, device, equipment and medium |
CN117521576B (en) * | 2024-01-08 | 2024-04-26 | 深圳鸿芯微纳技术有限公司 | Computing resource sharing method, device, equipment and medium |
Also Published As
Publication number | Publication date |
---|---|
JP7093547B2 (en) | 2022-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6889270B2 (en) | Neural network architecture optimization | |
Bouckaert | Bayesian network classifiers in weka | |
Bouckaert | Bayesian network classifiers in weka for version 3-5-7 | |
Andradóttir | An overview of simulation optimization via random search | |
Srinivas et al. | IDEAL: A software package for analysis of influence diagrams | |
JP7043596B2 (en) | Neural architecture search | |
JP2020024711A (en) | Summary of data system | |
Papakonstantinou et al. | POMDP and MOMDP solutions for structural life-cycle cost minimization under partial and mixed observability | |
US8903824B2 (en) | Vertex-proximity query processing | |
Li et al. | An ant colony optimization approach to test sequence generation for state based software testing | |
CN115079704B (en) | Path planning method and device, storage medium and electronic equipment | |
KR20200108728A (en) | Methods and apparatuses for selecting feature based on monte carlo tree search | |
Acar et al. | Adaptive inference on general graphical models | |
JP7093547B2 (en) | Control programs, control methods and systems | |
KR20150084596A (en) | The method for parameter investigation to optimal design | |
CN111209095A (en) | Pruning method based on tree search in DAG parallel task scheduling | |
WO2014020834A1 (en) | Word latent topic estimation device and word latent topic estimation method | |
Meyer | Convergence control in ACO | |
JPWO2014087590A1 (en) | Optimization device, optimization method, and optimization program | |
JP2019219741A (en) | Learning control method and computer system | |
KR20220032861A (en) | Neural architecture search method and attaratus considering performance in hardware | |
JP7225866B2 (en) | Optimization device, method and program | |
JP2014228975A (en) | Retrieval device, retrieval method and retrieval program | |
KR102559605B1 (en) | Method and apparatus for function optimization | |
CN114139720A (en) | Government affair big data processing method and device based on machine learning |
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 |