JP2014142849A - Solution search device, solution search method and solution search program - Google Patents
Solution search device, solution search method and solution search program Download PDFInfo
- Publication number
- JP2014142849A JP2014142849A JP2013011629A JP2013011629A JP2014142849A JP 2014142849 A JP2014142849 A JP 2014142849A JP 2013011629 A JP2013011629 A JP 2013011629A JP 2013011629 A JP2013011629 A JP 2013011629A JP 2014142849 A JP2014142849 A JP 2014142849A
- Authority
- JP
- Japan
- Prior art keywords
- node
- unit
- search
- solution
- evaluation value
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000004088 simulation Methods 0.000 claims abstract description 44
- 230000008602 contraction Effects 0.000 claims abstract description 39
- 238000011156 evaluation Methods 0.000 claims description 90
- 238000013138 pruning Methods 0.000 claims description 67
- 244000141353 Prunus domestica Species 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 abstract description 74
- 238000005457 optimization Methods 0.000 description 52
- 230000006870 function Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 10
- 238000010606 normalization Methods 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
本発明は、最適化計算などにおける解探索に適用される解探索装置、解探索方法および解探索プログラムに関する。 The present invention relates to a solution search apparatus, a solution search method, and a solution search program applied to solution search in optimization calculation and the like.
最適化問題は、目的関数と制約条件が設定され、目的関数が最善となる最適解一つを導出する問題であることが多い。人工知能の分野では、非特許文献1に記載されたMCTS(モンテカルロ木探索(Monte−Carlo Tree Search))など、シミュレーションを用いた探索方法が注目されている。それらの探索方法は、データマイニングや機械学習の分野で注目されているMBP(Multi−armed Bandit Problem)を解く方法の発展形として位置付けられる。また、それらの探索方法は、実用化されつつあり、既に実用化に成功した例として、コンピュータ囲碁がある。OR(Operations Research)などで用いられる最適化においては、それらの探索方法の実用化が期待されているが、実用化が難しい。 The optimization problem is often a problem in which an objective function and constraint conditions are set, and an optimal solution with the best objective function is derived. In the field of artificial intelligence, a search method using simulation, such as MCTS (Monte-Carlo Tree Search) described in Non-Patent Document 1, is attracting attention. These search methods are positioned as an advanced form of a method for solving MBP (Multi-armed Bandit Problem), which is attracting attention in the fields of data mining and machine learning. Moreover, those search methods are being put into practical use, and computer Go is an example that has already been successfully put into practical use. In optimization used in OR (Operations Research) or the like, practical use of these search methods is expected, but practical application is difficult.
コンピュータ囲碁と最適化との最も異なる点は、解空間の木(以下、解空間木という。)において、コンピュータ囲碁などは解空間木の各段において次の段の中で最も良いノードを探すことを目的とするのに対して、最適化では最下段の解ノードの中で最も良いノードを探すことを目的とすることにある。解空間木の最下段まで探索木を伸ばすことは、MCTSにおいて今までにない目的となる。 The most different point between computer go and optimization is that in the solution space tree (hereinafter referred to as the solution space tree), computer go etc. finds the best node in the next step in each step of the solution space tree. The purpose of optimization is to find the best node among the solution nodes at the lowest level. Extending the search tree to the bottom of the solution space tree is an unprecedented goal in MCTS.
探索木の大きさを抑え、かつ与えられた計算時間以内に解空間木の底に達するように、枝刈(Pruning)をする技術がある。枝刈により、計算時間が可能な範囲で適切に探索範囲を狭めることができるので、シミュレーション結果によって重要と判断したノードのシミュレーション回数を増やすことができる。従って、シミュレーションによって評価値を算出するMCTSなどの探索方法の解の精度を改善する可能性を高めることができる。 There is a technique of pruning so as to reduce the size of the search tree and reach the bottom of the solution space tree within a given calculation time. By pruning, the search range can be appropriately narrowed within a range where calculation time is possible, so that the number of simulations of the node determined to be important based on the simulation result can be increased. Therefore, it is possible to increase the possibility of improving the accuracy of the solution of a search method such as MCTS that calculates an evaluation value by simulation.
MCTSのように底ノードを探索することを目的とする解探索における木において、展開先が1ノードしかない時、または枝刈によって子ノードが1以下となった時に、分岐を持たないノードが発生する。探索木において、分岐を持たないノードを辿ることは無駄となる。 In a tree in a solution search aiming to search the bottom node like MCTS, when there is only one node for expansion or when the child node becomes 1 or less by pruning, a node without a branch is generated To do. In the search tree, it is useless to follow a node having no branch.
そこで、本発明は、シミュレーションを用いた解探索において、メモリ使用量を低減しつつ、指定された計算時間以内に解を算出することができる解探索装置、解探索方法および解探索プログラムを提供することを目的とする。 Therefore, the present invention provides a solution search apparatus, a solution search method, and a solution search program that can calculate a solution within a specified calculation time while reducing memory usage in solution search using simulation. For the purpose.
本発明による解探索装置は、シミュレーションを用いた解探索において、探索木中に子ノードを複数持たないノードが存在する場合には、当該ノードを探索木から取り除き、取り除かれたノードが子ノードを持つ場合には、当該子ノードを当該ノードの親ノードに接続する収縮処理を実行する収縮部を含むことを特徴とする。 In the solution search apparatus according to the present invention, in a solution search using simulation, if there is a node that does not have a plurality of child nodes in the search tree, the node is removed from the search tree, and the removed node indicates a child node. In the case of having, a contraction unit that executes contraction processing for connecting the child node to the parent node of the node is included.
本発明による解探索方法は、シミュレーションを用いた解探索において、探索木中に子ノードを複数持たないノードが存在する場合には、当該ノードを探索木から取り除き、取り除かれたノードが子ノードを持つ場合には、当該子ノードを当該ノードの親ノードに接続することを特徴とする。 In the solution search method according to the present invention, in a solution search using simulation, when a node having no plurality of child nodes exists in the search tree, the node is removed from the search tree, and the removed node is replaced with a child node. If so, the child node is connected to the parent node of the node.
本発明による解探索プログラムは、コンピュータに、シミュレーションを用いた解探索において、探索木中に子ノードを複数持たないノードが存在する場合には、当該ノードを探索木から取り除き、取り除かれたノードが子ノードを持つ場合には、当該子ノードを当該ノードの親ノードに接続する処理を実行させることを特徴とする。 In the solution search program according to the present invention, when there is a node that does not have a plurality of child nodes in the search tree in the solution search using simulation, the node is removed from the search tree, and the removed node is When there is a child node, a process of connecting the child node to the parent node of the node is executed.
本発明によれば、シミュレーションを用いた解探索において、メモリ使用量を低減しつつ、指定された計算時間以内に解を算出することができる。 According to the present invention, in a solution search using simulation, a solution can be calculated within a designated calculation time while reducing memory usage.
実施形態1.
以下、本発明の第1の実施形態を図面を参照して説明する。
Embodiment 1. FIG.
A first embodiment of the present invention will be described below with reference to the drawings.
図1は、最適化システムの第1の実施形態の構成を示すブロック図である。 FIG. 1 is a block diagram showing the configuration of the first embodiment of the optimization system.
図1に示すように、第1の実施形態における最適化システムは、ユーザ端末1と、最適化装置2とを備える。ユーザ端末1と最適化装置2とは、通信可能に接続される。なお、図1には1つのユーザ端末が例示されているが、ユーザ端末は最適化装置2にいくつ接続されていてもよい。
As shown in FIG. 1, the optimization system in the first embodiment includes a user terminal 1 and an
ユーザ端末1は、例えばパーソナルコンピュータ等の情報処理端末である。ユーザ端末1は、操作部11と、表示部12とを含む。
The user terminal 1 is an information processing terminal such as a personal computer. The user terminal 1 includes an
操作部11は、実行する最適化計算に必要な情報(以下、最適化計算入力情報という。)を入力する。また、操作部11は、実行指示を入力する。操作部11は、最適化計算入力情報とともに実行指示を最適化装置2に出力する。
The
表示部12は、最適化装置2から最適化計算結果の解を受け取り、表示する。
The
最適化装置2は、GUI(Graphical User Interface)部21と、計算部22と、記憶部23とを含む。
The
GUI部21は、ユーザ端末1の操作部11から、最適化計算入力情報を受け取る。GUI部21は、最適化計算入力情報を計算部22に伝達する。GUI部21は、計算部22から最適化計算結果の解を受け取り、ユーザ端末1の表示部12へ伝達する。
The
計算部22は、選択部221と、拡大部222と、シミュレーション部223と、評価値更新部224と、枝刈部225と、収縮(Shrinkage)部226とを含む。
The
選択部221は、展開されたノードの中からプレイアウトの実行対象となるノードを選択する。以下、プレイアウトの実行対象となるノードを選択ノードという。
The
拡大部222は、探索木(ツリー)を拡大する。具体的には、拡大部222は、予め定められた基準に従って、選択部221で選ばれたノードを展開する必要があるか否かを判断し、必要となればさらに一段下位にノードを展開して、探索木を拡大する。拡大部222は、ノードを展開した場合には、選択ノードを当該一段下位のノードに選択し直す。
The
シミュレーション部223は、シミュレーションを実行する。具体的には、シミュレーション部223は、プレイアウト、すなわち、ランダムシミュレーションのような単純な方法で1つの解を探索し、解の評価値を取得する。
The
評価値更新部224は、シミュレーション部223が行ったプレイアウトの結果により、各ノードの解の評価値を更新する。具体的には、記憶部23が記憶する各ノードの評価値を更新する。各ノードの評価値は、繰り返し実行されるシミュレーションで得られた評価値を集めた統計値からなり、評価値更新部224は当該統計値を更新する。本実施形態では、評価値更新部224は、best,mean,kbestの評価関数値(指標値)を、解の評価値として算出する。
The evaluation
枝刈部225は、枝刈を実行する。具体的には、枝刈部225は、メモリ使用量の削減や、与えられた計算時間内に解空間木の底に探索を導くために、評価値の良くないノードと、当該ノードを接続する枝(エッジ)を取り除く。
The
収縮部226は、枝刈などにより分岐がなくなったノードを探索木から取り除く。
The
記憶部23は、目的関数や制約条件を記憶する。最適化システムがスケジューリング問題に適用される場合には、記憶部23は、タスク情報や担当者情報など、問題を解くために必要なデータ(以下、問題データという。)を記憶する。また、記憶部23は、計算部22での計算処理が進む際に、ノードの評価値など、変化する情報を記憶する。本実施形態では、記憶部23は、計算部22が各計算途中で得たノードの探索回数や評価値を記憶する。また、記憶部23は、計算部22で求められた解の中で保持する必要がある解を記憶する。
The
なお、GUI部21、計算部22は、例えば、解探索プログラムに従って動作するコンピュータによって実現される。この場合、最適化装置2が備えるCPUが解探索プログラムを読み込み、そのプログラムに従って、GUI部21および計算部22として動作する。また、GUI部21および計算部22の各部は別々のハードウェアで実現されていてもよい。
The
また、記憶部23は、最適化装置2が備えるRAM(Random Access Memory)等の記憶装置によって実現される。
The
次に、本実施形態の動作を説明する。 Next, the operation of this embodiment will be described.
図2は、第1の実施形態における計算部22の動作を示すフローチャートである。
FIG. 2 is a flowchart showing the operation of the
ここでは、図1に示す最適化システムがスケジューリング問題に適用される場合を例にする。 Here, a case where the optimization system shown in FIG. 1 is applied to a scheduling problem is taken as an example.
まず、ユーザがユーザ端末1の操作部11に対して、最適化計算入力情報を入力する。ユーザは、最適化計算をしたいタスク、従事可能な担当者、各担当者がそれぞれのタスクに従事した時のコストや有効性などの問題データを最適化計算入力情報として入力する。このとき、ユーザは、最適化計算入力情報とともに実行指示を操作部11に入力する。操作部11は、最適化計算入力情報と実行指示とを最適化装置2に出力する。
First, the user inputs optimization calculation input information to the
最適化装置2のGUI部21は、ユーザ端末1から最適化計算入力情報とともに実行指示を受け取ると、最適化計算入力情報を計算部22へ伝達する。計算部22は、前処理として最適化計算入力情報を入力する(ステップS201)。
When the
ステップS201の後、計算部22の選択部221は、展開されたノードの中から、シミュレーションすべきノードを選択する(ステップS202)。なお、初期状態ではノードは1つのみであるので、そのノードが選択対象となる。ノードの選択は、本実施形態では、評価値更新部224によって算出された指標値を用いて行う。また、選択部221は、ノードを選択する際に、枝刈部225が枝刈を実行するか否かを判断するために用いる指標値とは異なる指標値を用いる。本実施形態では、ノードの選択に用いる指標をmean、枝刈に用いる指標をbestとする。つまり、探索木内の各ノードは、ノード選択のための評価値であるmeanValueと、枝刈のための評価値であるbestValueとの両方を持つ。具体的には、評価値更新部224が、探索木内の各ノードに対応づけて、meanValueおよびbestValueを記憶部23に格納する。
After step S201, the
拡大部222は、選択部221で選択されたノードのプレイアウト回数が、事前に定められた条件を満たした時に、探索木を1段下位のノードまで展開する(ステップS203)。本実施形態では、拡大部222は、当該プレイアウト回数が予め定められた回数を越えた時に展開する。なお、初期状態でノードが1つのみである時は、この条件に関わらず展開する。展開した場合には、拡大部222は、展開したノードのうちの1つを選択ノードとする。
The
シミュレーション部223は、選択ノードからプレイアウト、つまりランダムシミュレーションを実行し解を1つ探索する(ステップS204)。なお、1つの選択ノードに対して複数のシミュレーションを実行し複数の解を探索することも可能であるが、ここでは、もっともシンプルな例として1つの選択ノードに対して1つのシミュレーションを実行し、1つの解を探索する方法について説明する。本発明の技術的範囲は、1つの選択ノードに対して1つのシミュレーションを実行する形態に限定されない。従って、1つの選択ノードに対して複数のシミュレーションを実行する形態も本発明の技術的範囲に含まれ得る。
The
評価値更新部224は、シミュレーション部223によって得られた解を用いて、best,mean,kbestなどの解の評価値を更新する。なお、本実施形態では、評価値更新部224は、mean,bestの解の評価値を更新する(ステップS205)。bestの解の評価値は、現在までにその選択ノードから実行されたシミュレーションの結果の中で最適なものである。meanの解の評価値は、現在までにその選択ノードから実行されたシミュレーションの結果を平均したものである。kbestの解の評価値は、現在までにその選択ノードから実行されたシミュレーションの結果の中でk番目までに良い解を平均したものである。
The evaluation
評価値更新部224は、指標値である、mean,bestの解の評価値について、以下の正規化の処理を行う。
The evaluation
選択ノードとその兄弟ノード(選択ノードと共通の親ノードをもつノード)における指標値をそれぞれv1,v2,v3,…vLとした時、最大値M、最小値mは以下のように表すことが可能である。なお、Lは、共通の親ノードをもつ子ノードの総数である。 When the index values in the selected node and its sibling nodes (nodes having a common parent node with the selected node) are v 1 , v 2 , v 3 ,... V L , the maximum value M and the minimum value m are as follows: Can be expressed as Note that L is the total number of child nodes having a common parent node.
ここで、viは、予め定められた基準により、最小値mに近い場合に良い値であると判断されるとする。また、最大値Mに近い場合に悪い値であると判断されるとする。評価値更新部224は、良い値である最小値mを0、悪い値である最大値Mを1とするために、viを正規化する。具体的には、評価値更新部224は、viを次のように変換する。Valueiは、viの正規化後の値である。
Here, it is assumed that v i is determined to be a good value when it is close to the minimum value m according to a predetermined criterion. Further, it is assumed that a bad value is determined when the value is close to the maximum value M. The evaluation
なお、Valueiの値が一定の分散におさまるように、viをさらに正規化してもよい。 Note that v i may be further normalized so that the value i falls within a certain variance.
評価値更新部224が、mean,bestについて上記の処理を実行することにより、mean,bestに対応するValueiが算出される。以下、best,mean,kbestに対応するValueiを、それぞれbestValue,meanValue,kbestValue(k)と表現する。なお、“(k)”は、上位k個の解を平均算出の対象とすることを表す。
Value i corresponding to mean and best is calculated by the evaluation
評価値更新部224は、meanValue,bestValueを、選択ノードとその上位のノードそれぞれで計算し、算出結果をもとにそれぞれのノードの評価値を更新する。
The evaluation
枝刈部225は、探索木の大きさ、例えば、探索木全体のノード数や探索木のリーフノードの数が大きく、枝刈が必要であると判断した時に、枝刈を実行する。また、与えられた指定時間内に探索木を解空間木の底に到達させるために、探索する空間を狭める必要があると判断した時に、枝刈を実行する(ステップS206)。本実施形態では、枝刈部225は、ステップS205において評価値更新部224が更新したbestValueで各ノードを評価する。枝刈部225は、評価値の悪いノードは探索木から枝刈する。その後、そのノードやその下位のノードからシミュレーションされることはない。
The
収縮部226は、枝刈部225による枝刈などにより、探索木内のノードの中で分岐を持たないノードが発生した時に、そのノードを取り除く(ステップS207)。そして、収縮部226は、取り除いたノードの親ノードと子ノードとを直接接続する。その際、収縮部226は、当該親ノードから当該子ノードへ、ノード選択のための評価関数に用いられる統計値をコピーする。具体的には、収縮部226は、記憶部23において当該親ノードに対応づけて格納されている統計値を、当該子ノードに対応づけて格納し直す。枝刈のための評価関数に用いられる統計値はコピーされず、当該子ノードのものがそのまま用いられる。
The
図3は、第1の実施形態において探索木が収縮される様子を示す説明図である。図3(a)に示す探索木は、ノードAを根ノードとする探索木である。ノードA以下には、ノードB〜Kが存在する。また、ノードGには3つの展開候補となるノード(ノードL,M,N)が存在する。「×」印は、ノードF、ノードJ、ノードKが枝刈の実行対象であることを表す。 FIG. 3 is an explanatory diagram illustrating how the search tree is contracted in the first embodiment. The search tree shown in FIG. 3A is a search tree having the node A as a root node. Below node A, nodes B to K exist. In addition, node G has three expansion candidate nodes (nodes L, M, and N). The “x” mark indicates that the node F, the node J, and the node K are pruning execution targets.
図3(b)は、図3(a)に示す探索木に対して、枝刈を実行した後の様子を表す。図3(c)は、図3(b)に示す探索木に対して、収縮処理を行った後の様子を表す。図3(c)では、枝刈によって分岐を持たなくなったノードB,Dが取り除かれている。また、ノードAとノードEとが直接接続されている。図3(d)は、図3(c)に示す探索木に対して、ノード展開を実行した後の様子を表す。 FIG. 3B shows a state after pruning is performed on the search tree shown in FIG. FIG. 3C illustrates a state after the contraction process is performed on the search tree illustrated in FIG. In FIG. 3C, nodes B and D that have no branches due to pruning are removed. Node A and node E are directly connected. FIG. 3D shows a state after node expansion is performed on the search tree shown in FIG.
計算部22は、計算部22における計算時間が事前に定められた上限に達するまで、ステップS202〜S207の処理(選択処理、ノード展開処理、シミュレーション実行処理、評価値更新処理、枝刈処理および収縮処理)を繰り返し実行する。つまり、当該計算時間が上限に達していない場合は(ステップS208のYes)、計算部22はステップS202の処理に戻る。当該計算時間が上限に達した場合は(ステップS208のNo)、計算部22は、計算を終了し、最適化計算結果、つまり探索して得た解を示す解情報をGUI部21に渡す(ステップS209)。なお、計算部22は、計算時間ではなく、要件として与えられた解の値が算出されるまでステップS202〜S207の処理を繰り返し実行するようにしてもよい。
The
また、ステップS202〜S207の計算処理において、計算部22は、各計算途中で得たノードの探索回数や評価値を含む情報を記憶部23に格納する。また、計算部22は、探索して得た解を含む情報を記憶部23に格納する。計算部22は、記憶部23に格納された情報を取得することにより、計算途中における各ノードの探索回数や評価値を認識することができる。
In the calculation process of steps S202 to S207, the
なお、本実施形態では、問題データがユーザ端末1から最適化計算入力情報として計算部22に入力される場合を例にしたが、計算部22は記憶部23に格納された問題データを取得するようにしてもよい。そのような形態を実現するには、ユーザ等が予め問題データを記憶部23に格納すればよい。
In this embodiment, the case where problem data is input as optimization calculation input information from the user terminal 1 to the
また、ステップS207の収縮処理を実行するタイミングは、ステップS206の枝刈処理の後に限られない。また、収縮部は、枝刈部に含まれていてもよい。また、計算部に枝刈部が複数含まれている場合には、各枝刈部が収縮部を含んでいてもよい。図4は、枝刈部を2つ含む最適化装置を備えた最適化システムの構成の一例を示すブロック図である。図4に示す例では、計算部22が、探索木の大きさを抑えることを目的とする枝刈処理を行う第1の枝刈部2251と、指定された計算時間内に探索木を解空間木の底に到達させることを目的とする枝刈処理を行う第2の枝刈部2252とを含む。そして、第1の枝刈部2251、第2の枝刈部2252のそれぞれが収縮部226を含む。つまり、図4に示す計算部22は、1つの選択ノードに対する計算処理の中で、2回収縮処理を実行する。
Further, the timing for executing the contraction process in step S207 is not limited to after the pruning process in step S206. The contraction part may be included in the pruning part. When the calculation unit includes a plurality of pruning units, each pruning unit may include a contraction unit. FIG. 4 is a block diagram illustrating an example of a configuration of an optimization system including an optimization device including two pruning units. In the example illustrated in FIG. 4, the
以上に説明したように、本実施形態では、枝刈(Pruning)を実行した際に、探索木の収縮(Shrinkage)を行うことにより、枝刈により発生した、分岐を持たない無駄なノードを取り除くことができる。従って、探索木内のノード数をさらに削減することができる。また、本実施形態では、取り除いたノードの親ノードと子ノードとを直接接続する。それにより、探索木の根ノードからリーフノードまで辿る時間を削減することができ、解探索における計算時間を短縮することができる。従って、本実施形態によれば、シミュレーションを用いた解探索において、メモリ使用量を低減しつつ、指定された計算時間以内に解を算出することができる。 As described above, according to the present embodiment, when pruning is executed, a search tree is shrunk to remove a useless node having no branch generated by pruning. be able to. Therefore, the number of nodes in the search tree can be further reduced. In the present embodiment, the parent node and the child node of the removed node are directly connected. Thereby, it is possible to reduce the time taken from the root node of the search tree to the leaf node, and to reduce the calculation time in the solution search. Therefore, according to the present embodiment, in the solution search using simulation, the solution can be calculated within the designated calculation time while reducing the memory usage.
また、本実施形態では、ノード選択のための評価関数に用いる統計値と、枝刈のための評価関数に用いる統計値とを、各ノードに別々に保持させる。また、分岐を持たないノードを取り除く際に、当該ノードの親ノードが保持する、ノード選択のための評価関数に用いられる統計値を、当該ノードの子ノードへコピーする。それにより、単にノードを取り除くシステムに比べて、ノード選択のための評価関数値を適切に維持することができるので、解の精度を劣化させにくい。 In the present embodiment, the statistical value used for the evaluation function for node selection and the statistical value used for the evaluation function for pruning are separately held in each node. Further, when a node having no branch is removed, a statistical value used for an evaluation function for node selection held by the parent node of the node is copied to a child node of the node. As a result, the evaluation function value for node selection can be appropriately maintained as compared with a system that simply removes a node, so that the accuracy of the solution is unlikely to deteriorate.
また、本実施形態では、選択部221がノードを選択する際に用いる指標値と、枝刈部225が枝刈を実行する際に用いる指標値とが異なる場合について説明したが、選択部221がノードを選択する際に用いる指標値と、枝刈部225が枝刈を実行する際に用いる指標値とは同じであってもよい。すなわち、ノードの選択に用いる指標と、枝刈に用いる指標とは同じであってもよい。
In the present embodiment, the case has been described in which the index value used when the
実施形態2.
以下、本発明の第2の実施形態を図面を参照して説明する。
Hereinafter, a second embodiment of the present invention will be described with reference to the drawings.
第2の実施形態における最適化システムの構成は、第1の実施形態の構成と同様である。 The configuration of the optimization system in the second embodiment is the same as the configuration of the first embodiment.
ここでは、第1の実施形態と同様に、最適化システムがスケジューリング問題に適用される場合を例にする。 Here, as in the first embodiment, a case where the optimization system is applied to a scheduling problem is taken as an example.
第2の実施形態における計算部22の動作は、図2に示す第1の実施形態の動作と同様である。
The operation of the
しかし、ステップS202における選択部221の動作、ステップS205における評価値更新部224の動作およびステップS207における収縮部226の動作が異なる。ここで、ステップS202、S205およびS206における動作を説明する。
However, the operation of the
ステップS202において、選択部221は、ノードを選択する際に、枝(エッジ)が保持する指標値を用いる。エッジが保持する指標値は、具体的には、評価値更新部224が各エッジに対応付けて記憶部23に格納した指標値である。
In step S202, the
ステップS205において、評価値更新部224は、正規化の処理を行う際に、以下のように、選択ノードとその兄弟ノードにおける指標値だけでなく、それらのノードのエッジにおける指標値についても正規化する。
In step S205, when the normalization process is performed, the evaluation
評価値更新部224は、選択ノードとその兄弟ノードにおける指標値meanValueを、式1〜式3を用いて算出する。そして、評価値更新部224は、算出結果をもとに、選択ノードとその上位のノードそれぞれの評価値を更新する。
The evaluation
また、評価値更新部224は、選択ノードとその兄弟ノードに接続された各エッジについても同様に、式1〜式3を用いてmeanValueを算出する。そして、評価値更新部224は、算出結果をもとに、選択ノードとその上位のノードとを結ぶルートにあるエッジそれぞれの評価値を更新する。例えば、図3(d)に示す探索木において、ノードLが選択ノードであった場合には、ノードL,Gを結ぶエッジ、ノードG,Cを結ぶエッジ、ノードC,Aを結ぶエッジのそれぞれの評価値が更新される。
Similarly, the evaluation
ステップS206において、収縮部226は、分岐を持たないノードを取り除く時に、そのノードの親ノードと子ノードを直接接続する。その際、収縮部226は、当該ノード、および当該ノードと子ノードとを結ぶエッジを取り除く。また、収縮部226は、当該ノードと親ノードとを結ぶエッジを、当該ノードの子ノードに接続する。
In step S206, when the
図5は、第2の実施形態において探索木が収縮される様子を示す説明図である。図5(c)に示すように、本実施形態では、ノードAと、枝刈によって分岐を持たなくなったノードBとを結ぶエッジが、ノードAと、ノードBの子ノード(ノードE)とを結ぶエッジとなる。 FIG. 5 is an explanatory diagram showing how the search tree is contracted in the second embodiment. As shown in FIG. 5 (c), in this embodiment, an edge connecting node A and node B that no longer has a branch due to pruning represents node A and a child node (node E) of node B. It becomes an edge to connect.
以上に説明したように、本実施形態では、第1の実施形態と同様に、枝刈により発生した、分岐を持たない無駄なノードを取り除くことができる。従って、第1の実施形態と同様の効果を得ることができる。 As described above, in this embodiment, as in the first embodiment, it is possible to remove a useless node that does not have a branch and is generated by pruning. Therefore, the same effect as the first embodiment can be obtained.
なお、各実施形態において、最適化装置がスケジューリング問題に適用される場合を例にしたが、本発明の適用範囲はその限りではない。本発明は、タスクを担当者に割り当てるスケジューリング問題などの組合せ最適化問題を中心に、最適化問題全般に適用することが可能である。また、最適化問題以外の解探索にも適用することが可能である。 In each embodiment, the case where the optimization apparatus is applied to the scheduling problem is taken as an example, but the scope of application of the present invention is not limited thereto. The present invention can be applied to optimization problems in general, focusing on combinatorial optimization problems such as scheduling problems for assigning tasks to persons in charge. It can also be applied to solution searches other than optimization problems.
図6は、本発明による解探索装置の最小構成を示すブロック図である。図7は、本発明による解探索装置の他の最小構成を示すブロック図である。 FIG. 6 is a block diagram showing the minimum configuration of the solution search apparatus according to the present invention. FIG. 7 is a block diagram showing another minimum configuration of the solution search apparatus according to the present invention.
図6に示すように、解探索装置(図1に示す最適化装置2に相当。)は、シミュレーションを用いた解探索において、探索木中に子ノードを複数持たないノードが存在する場合には、当該ノードを探索木から取り除き、取り除かれたノードが子ノードを持つ場合には、当該子ノードを当該ノードの親ノードに接続する収縮処理を実行する収縮部101(図1に示す最適化装置2における収縮部226に相当。)を含む。
As shown in FIG. 6, the solution search device (corresponding to the
そのような構成によれば、探索木内のノード数をさらに削減することができる。よって、探索木の根ノードからリーフノードまで辿る時間、つまり解探索における計算時間を削減することができる。従って、シミュレーションを用いた解探索において、メモリ使用量を低減しつつ、指定された計算時間以内に解を算出することができる。 According to such a configuration, the number of nodes in the search tree can be further reduced. Therefore, it is possible to reduce the time for tracing from the root node of the search tree to the leaf node, that is, the calculation time for solution search. Therefore, in the solution search using simulation, the solution can be calculated within the designated calculation time while reducing the memory usage.
上記の実施形態には、以下のような解探索装置も開示されている。 In the above embodiment, the following solution search apparatus is also disclosed.
(1)収縮部101は、シミュレーションを用いたモンテカルロ木探索において収縮処理を実行する解探索装置。
(1) The
そのような構成によれば、モンテカルロ木探索において、探索木内のノード数をさらに削減することができる。 According to such a configuration, the number of nodes in the search tree can be further reduced in the Monte Carlo tree search.
(2)図7に示すように、探索木中の選択肢となるノードの中からシミュレーションの実行対象となるノードを選択し、選択されたノードからシミュレーションを実行する実行部102(図1に示す最適化装置2における選択部221、拡大部222およびシミュレーション部223に相当。)と、シミュレーション結果をもとに、評価関数を用いて評価値を算出し、当該評価値をもとに、選択されたノードおよびその上位ノードの評価値を更新する更新部103(図1に示す最適化装置2における評価値更新部224に相当。)と、予め定められた基準を満たさない評価値を持つノードを探索木から取り除く枝刈部104(図1に示す最適化装置2における枝刈部225に相当。)とを含み、収縮部101は、枝刈部104が探索木からノードを取り除く処理を実行した後に、収縮処理を実行する解探索装置。
(2) As shown in FIG. 7, an
そのような構成によれば、枝刈(Pruning)を実行した後に、探索木の収縮(Shrinkage)を行うことにより、枝刈により発生した、分岐を持たない無駄なノードをなくすことができる。 According to such a configuration, it is possible to eliminate a useless node having no branch generated by pruning by performing shrinkage after performing pruning.
(3)更新部103は、ノード選択用の評価関数を用いて、実行部102がノードを選択するときに用いるノード選択用の評価値を算出し、枝刈用の評価関数を用いて、枝刈部104がノードを探索木から取り除くときに用いる枝刈用の評価値を算出する解探索装置。
(3) The updating
そのような構成によれば、各ノードにノード選択のための評価関数に用いる統計値と、枝刈のための評価関数に用いる統計値とを別々に保持させることができる。 According to such a configuration, each node can separately hold a statistical value used for an evaluation function for node selection and a statistical value used for an evaluation function for pruning.
(4)更新部103は、収縮部101が探索木から取り除いたノードが子ノードを持つ場合には、当該ノードの親ノードのノード選択用の評価関数を用いて算出した評価値をもとに、当該子ノードのノード選択用の評価値を更新する解探索装置。
(4) When the node removed from the search tree by the
そのような構成によれば、単にノードを取り除く、収縮処理を行わないシステムに比べて、ノード選択のための評価関数値を適切に維持することができるので、解の精度を劣化させにくい。 According to such a configuration, the evaluation function value for node selection can be appropriately maintained as compared with a system that simply removes a node and does not perform contraction processing, so that the accuracy of the solution is unlikely to deteriorate.
(5)更新部103は、収縮部101が探索木から取り除いたノードが子ノードを持つ場合には、当該子ノードの枝刈用の評価関数を用いて算出した評価値をもとに、当該子ノードの枝刈用の評価値を更新する解探索装置。
(5) When the node removed from the search tree by the
そのような構成によれば、単にノードを取り除く、収縮処理を行わないシステムに比べて、枝刈のための評価関数値を適切に維持することができるので、解の精度を劣化させにくい。 According to such a configuration, the evaluation function value for pruning can be appropriately maintained as compared with a system that simply removes a node and does not perform contraction processing, so that the accuracy of the solution is unlikely to deteriorate.
1 ユーザ端末
2 最適化装置
11 操作部
12 表示部
21 GUI部
22 計算部
23 記憶部
101、226 収縮部
102 実行部
103 更新部
104、225 枝刈部
221 選択部
222 拡大部
223 シミュレーション部
224 評価値更新部
225 枝刈部
2251 第1の枝刈部
2252 第2の枝刈部
226 収縮部
DESCRIPTION OF SYMBOLS 1
Claims (8)
ことを特徴とする解探索装置。 In solution search using simulation, if a node that does not have multiple child nodes exists in the search tree, the node is removed from the search tree, and if the removed node has child nodes, the child node A solution search apparatus comprising: a contraction unit that executes contraction processing for connecting a node to a parent node of the node.
請求項1に記載の解探索装置。 The solution search apparatus according to claim 1, wherein the contraction unit performs contraction processing in a Monte Carlo tree search using simulation.
シミュレーション結果をもとに、評価関数を用いて評価値を算出し、当該評価値をもとに、選択された前記ノードおよびその上位ノードの評価値を更新する更新部と、
予め定められた基準を満たさない評価値を持つノードを探索木から取り除く枝刈部とを含み、
収縮部は、前記枝刈部が探索木からノードを取り除く処理を実行した後に、収縮処理を実行する
請求項1または請求項2に記載の解探索装置。 An execution unit that selects a node to be simulated from among the nodes that are options in the search tree, and executes the simulation from the selected node;
Based on the simulation result, an evaluation value is calculated using an evaluation function, and based on the evaluation value, an update unit that updates the evaluation value of the selected node and its upper node,
A pruning unit that removes a node having an evaluation value that does not satisfy a predetermined criterion from the search tree,
The solution search apparatus according to claim 1, wherein the contraction unit performs contraction processing after the pruning unit executes processing for removing a node from the search tree.
請求項3に記載の解探索装置。 The update unit calculates an evaluation value for node selection used when the execution unit selects a node using the evaluation function for node selection, and uses the evaluation function for pruning, and the pruning unit selects the node The solution search apparatus according to claim 3, wherein an evaluation value for pruning used when removing from the search tree is calculated.
請求項4に記載の解探索装置。 When the node removed from the search tree by the contraction unit has a child node, the update unit, based on the evaluation value calculated using the node selection evaluation function of the parent node of the node, The solution search apparatus according to claim 4, wherein the evaluation value for node selection is updated.
請求項4または請求項5に記載の解探索装置。 When the node removed from the search tree by the contraction unit has a child node, the updating unit prunes the child node based on the evaluation value calculated using the evaluation function for pruning the child node. The solution search device according to claim 4, wherein the evaluation value for use is updated.
ことを特徴とする解探索方法。 In solution search using simulation, if a node that does not have multiple child nodes exists in the search tree, the node is removed from the search tree, and if the removed node has child nodes, the child node A solution search method characterized by connecting to the parent node of the node.
シミュレーションを用いた解探索において、探索木中に子ノードを複数持たないノードが存在する場合には、当該ノードを探索木から取り除き、取り除かれたノードが子ノードを持つ場合には、当該子ノードを当該ノードの親ノードに接続する処理を実行させる
ための解探索プログラム。 On the computer,
In solution search using simulation, if a node that does not have multiple child nodes exists in the search tree, the node is removed from the search tree, and if the removed node has child nodes, the child node A solution search program for executing the process of connecting to the parent node of the node.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013011629A JP2014142849A (en) | 2013-01-25 | 2013-01-25 | Solution search device, solution search method and solution search program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013011629A JP2014142849A (en) | 2013-01-25 | 2013-01-25 | Solution search device, solution search method and solution search program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014142849A true JP2014142849A (en) | 2014-08-07 |
Family
ID=51424070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013011629A Pending JP2014142849A (en) | 2013-01-25 | 2013-01-25 | Solution search device, solution search method and solution search program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014142849A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020021422A (en) * | 2018-08-03 | 2020-02-06 | 荏原実業株式会社 | Biological information and task management system, method and program |
JP2020038478A (en) * | 2018-09-04 | 2020-03-12 | 株式会社日立製作所 | Solution search device |
-
2013
- 2013-01-25 JP JP2013011629A patent/JP2014142849A/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020021422A (en) * | 2018-08-03 | 2020-02-06 | 荏原実業株式会社 | Biological information and task management system, method and program |
JP2020038478A (en) * | 2018-09-04 | 2020-03-12 | 株式会社日立製作所 | Solution search device |
JP7094839B2 (en) | 2018-09-04 | 2022-07-04 | 株式会社日立製作所 | Solution search device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6743934B2 (en) | Method, apparatus and system for estimating causal relationship between observed variables | |
US8971665B2 (en) | Hierarchical cluster determination based on subgraph density | |
CN110428046B (en) | Method and device for acquiring neural network structure and storage medium | |
CN109685204B (en) | Image processing method and device, storage medium and electronic equipment | |
WO2014087590A1 (en) | Optimization device, optimization method and optimization program | |
JP6222114B2 (en) | Solution search device, solution search method, and solution search program | |
CN111626489B (en) | Shortest path planning method and device based on time sequence difference learning algorithm | |
KR20180048893A (en) | Method, apparatus, device, and non-volatile computer storage medium | |
CN114202026A (en) | Multitask model training method and device and multitask processing method and device | |
CN114072809A (en) | Small and fast video processing network via neural architectural search | |
CN108491628B (en) | Product design demand driven three-dimensional CAD assembly model clustering and searching method | |
JP2018173909A (en) | Learning program, learning method, and learning apparatus | |
JP2014142849A (en) | Solution search device, solution search method and solution search program | |
JP6365274B2 (en) | Common operation information generation program, common operation information generation method, and common operation information generation device | |
Akhand et al. | Velocity tentative particle swarm optimization to solve TSP | |
JP5964781B2 (en) | SEARCH DEVICE, SEARCH METHOD, AND SEARCH PROGRAM | |
WO2017072717A1 (en) | Learning of the structure of bayesian networks from a complete data set | |
JP2014142848A (en) | Solution search device, solution search method and solution search program | |
Eslami et al. | Firefly algorithm and pattern search hybridized for global optimization | |
JP6005583B2 (en) | SEARCH DEVICE, SEARCH METHOD, AND SEARCH PROGRAM | |
EP2926244B1 (en) | Method and apparatus for creating 3d model | |
JPWO2012032747A1 (en) | Feature point selection system, feature point selection method, and feature point selection program | |
JP6745507B2 (en) | Parameter estimation device, method, and program | |
WO2023062734A1 (en) | Clustering device | |
JP2019079291A (en) | Matrix decomposition device and matrix decomposition method |