WO2014115232A1 - 解探索装置、解探索方法および解探索プログラム - Google Patents

解探索装置、解探索方法および解探索プログラム Download PDF

Info

Publication number
WO2014115232A1
WO2014115232A1 PCT/JP2013/007673 JP2013007673W WO2014115232A1 WO 2014115232 A1 WO2014115232 A1 WO 2014115232A1 JP 2013007673 W JP2013007673 W JP 2013007673W WO 2014115232 A1 WO2014115232 A1 WO 2014115232A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
evaluation value
pruning
search
unit
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.)
Ceased
Application number
PCT/JP2013/007673
Other languages
English (en)
French (fr)
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to US14/759,598 priority Critical patent/US20150347649A1/en
Priority to JP2014558303A priority patent/JP6222114B2/ja
Publication of WO2014115232A1 publication Critical patent/WO2014115232A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/06Multi-objective optimisation, e.g. Pareto optimisation using simulated annealing [SA], ant colony algorithms or genetic algorithms [GA]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/08Probabilistic or stochastic CAD

Definitions

  • 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.
  • 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.
  • a search method using simulation such as MCTS (Monte-Carlo Tree Search) described in Non-Patent Document 1
  • MBP Multi-armed Bandit Problem
  • 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.
  • the evaluation function used in the computer Go is based on UCB (Upper Confidence Bound) described in Non-Patent Document 2.
  • the evaluation function used in the computer Go is based on the expected value. Expected values include the winning percentage in Go. However, it is said that it is better to use, as an evaluation function, the optimal solution or the top k solutions, that is, the average of the best solutions up to the kth, than the expected value (see Non-Patent Document 3). That is, in the computer go, it is important to appropriately select and use these evaluation functions.
  • the evaluation function based on the expected value is expressed as mean
  • the evaluation function based on the optimal solution is expressed as best
  • the evaluation function based on the average of the top k solutions is expressed as kbest.
  • Whether to use best or kbest differs depending on the object to be optimized, and cannot be uniquely determined. That is, it is important to appropriately select which evaluation function to use.
  • the user or the like generally specifies the time for obtaining the solution in advance. If the goal is to make the MCTS successful, the accuracy of the solution will not increase unless the search tree reaches the bottom of the solution space tree by the specified time. That is, in order to improve the accuracy of the solution, it is necessary to ensure that the search tree reaches the bottom of the solution space tree by the specified time.
  • An object is to provide a solution search apparatus, a solution search method, and a solution search program.
  • the solution search apparatus in solution search using simulation, an execution unit that selects a simulation target node from among the nodes that are options in the search tree, and executes the simulation from the selected node; An update unit that calculates an evaluation value using an evaluation function based on the simulation result, and updates an evaluation value of the selected node and its upper node based on the evaluation value, and a predetermined reference And a pruning unit that separates a node having an evaluation value not satisfying from the search tree.
  • a node to be subjected to simulation is selected from nodes as options in the search tree, simulation is executed from the selected node, and simulation results are obtained.
  • the evaluation value is calculated using the evaluation function, and the evaluation value of the selected node and its upper node is updated based on the evaluation value, and the evaluation value that does not satisfy the predetermined standard is calculated. It is characterized by separating the node it has from the search tree.
  • the computer selects a node to be executed from among the nodes to be selected in the search tree, and executes the simulation from the selected node. Based on the process and the simulation result, the evaluation value is calculated using the evaluation function, and based on the evaluation value, the evaluation value of the selected node and its upper node is updated, and a predetermined value is set. And a process of separating a node having an evaluation value that does not satisfy the criterion from the search tree.
  • the present invention when solving an optimization problem or the like, it is possible to reliably calculate a solution within a specified calculation time without increasing memory usage, and to improve the accuracy of the solution. it can.
  • Embodiment 1 FIG. A first embodiment of the present invention will be described below with reference to the drawings.
  • FIG. 1 is a block diagram showing the configuration of the first embodiment of the optimization system.
  • the optimization system in the first embodiment includes a user terminal 1 and an optimization device 2.
  • the user terminal 1 and the optimization device 2 are connected so as to communicate with each other. Although one user terminal is illustrated in FIG. 1, any number of user terminals may be connected to the optimization device 2.
  • the user terminal 1 is an information processing terminal such as a personal computer.
  • the user terminal 1 includes an operation unit 11 and a display unit 12.
  • the operation unit 11 inputs information necessary for the optimization calculation to be executed (hereinafter referred to as optimization calculation input information). In addition, the operation unit 11 inputs an execution instruction. The operation unit 11 outputs an execution instruction to the optimization device 2 together with the optimization calculation input information.
  • the display unit 12 receives the solution of the optimization calculation result from the optimization device 2 and displays it.
  • the optimization device 2 includes a GUI (Graphical User Interface) unit 21, a calculation unit 22, and a storage unit 23.
  • GUI Graphic User Interface
  • the GUI unit 21 receives optimization calculation input information from the operation unit 11 of the user terminal 1.
  • the GUI unit 21 transmits optimization calculation input information to the calculation unit 22.
  • the GUI unit 21 receives the solution of the optimization calculation result from the calculation unit 22 and transmits it to the display unit 12 of the user terminal 1.
  • the calculation unit 22 includes a selection unit 221, an enlargement unit 222, a simulation unit 223, an evaluation value update unit 224, and a pruning unit 225.
  • the selection unit 221 selects a node to be played out from among the expanded nodes.
  • a node that is a playout execution target is referred to as a selection node.
  • the expansion unit 222 expands the search tree (tree). Specifically, the enlargement unit 222 determines whether it is necessary to expand the node selected by the selection unit 221 according to a predetermined criterion, and expands the node further one step lower if necessary. To expand the search tree. When expanding the node, the enlarging unit 222 reselects the selected node as the next lower node.
  • the simulation unit 223 executes a simulation. Specifically, the simulation unit 223 searches for one solution by a simple method such as playout, that is, random simulation, and acquires an evaluation value of the solution.
  • the evaluation value update unit 224 updates the evaluation value of the solution of each node according to the result of the playout performed by the simulation unit 223.
  • the evaluation value of each node includes a statistical value obtained by collecting evaluation values obtained by repeated simulations, and the evaluation value update unit 224 updates the statistical value.
  • the evaluation value update unit 224 calculates an index value.
  • the evaluation function values of best, mean, and kbest (hereinafter also referred to as solution evaluation values) are calculated as index values.
  • the evaluation value update unit 224 calculates a comprehensive evaluation value by combining the calculated evaluation values. At that time, the evaluation value update unit 224 calculates a comprehensive evaluation value so that a trade-off of each index (best, mean, kbest) is taken into consideration, and a value having a feature in each index is emphasized.
  • the evaluation value update unit 224 updates the evaluation value of each node based on the calculation result of the comprehensive evaluation value.
  • the pruning unit 225 performs pruning.
  • FIG. 2 is an explanatory diagram illustrating a state in which pruning is performed on the search tree.
  • a triangular frame shown in FIG. 2 represents a solution space tree.
  • An ellipse surrounding the base of the triangle represents the lowest node of the solution space tree, that is, the solution node.
  • a halftone dot region represents a search tree.
  • a black circle represents the root node of the search tree, that is, the uppermost node of the solution space tree.
  • a white circle represents a leaf node of the search tree.
  • pruning is performed toward the lowest stage of the solution space tree as time elapses and the search tree is expanded. Further, the pruning unit 225 performs pruning so that the size of the search tree (the area of the halftone dot region shown in FIG. 2) does not exceed a certain size.
  • the storage unit 23 stores an objective function and constraint conditions.
  • the storage unit 23 stores data necessary for solving the problem, such as task information and person-in-charge information (hereinafter referred to as problem data).
  • problem data data necessary for solving the problem
  • the storage unit 23 stores information that changes such as an evaluation value of a node when the calculation process in the calculation unit 22 proceeds.
  • the storage unit 23 stores the number of node searches and evaluation values obtained by the calculation unit 22 during each calculation.
  • the storage unit 23 stores a solution that needs to be held among the solutions obtained by the calculation unit 22.
  • the GUI unit 21 and the calculation unit 22 are realized by a computer that operates according to a solution search program, for example.
  • the CPU provided in the optimization apparatus 2 reads the solution search program and operates as the GUI unit 21 and the calculation unit 22 according to the program.
  • each part of the GUI part 21 and the calculation part 22 may be implement
  • the storage unit 23 is realized by a storage device such as a RAM (Random Access Memory) provided in the optimization device 2.
  • a RAM Random Access Memory
  • FIG. 3 is a flowchart showing the operation of the calculation unit 22 in the first embodiment.
  • the user inputs optimization calculation input information to the operation unit 11 of the user terminal 1.
  • a user inputs problem data such as a task for which optimization calculation is desired, a person in charge who can be engaged, and cost and effectiveness when each person in charge engages in each task as optimization calculation input information.
  • the user inputs an execution instruction to the operation unit 11 together with the optimization calculation input information.
  • the operation unit 11 outputs optimization calculation input information and an execution instruction to the optimization device 2.
  • the GUI unit 21 of the optimization device 2 When the GUI unit 21 of the optimization device 2 receives the execution instruction together with the optimization calculation input information from the user terminal 1, the GUI unit 21 transmits the optimization calculation input information to the calculation unit 22.
  • the calculation unit 22 inputs optimization calculation input information as preprocessing (step S301).
  • the selection unit 221 of the calculation unit 22 selects a node to be simulated from among the expanded nodes (step S302). Since there is only one node in the initial state, that node is a selection target. In this embodiment, the node is selected using the index value calculated by the evaluation value update unit 224.
  • the expansion unit 222 expands the search tree to a node one level lower when the number of playouts of the node selected by the selection unit 221 satisfies a predetermined condition (step S303).
  • the enlargement unit 222 expands when the number of playouts exceeds a predetermined number. When there is only one node in the initial state, it is expanded regardless of this condition. In the case of expansion, the enlargement unit 222 sets one of the expanded nodes as a selection node.
  • the simulation unit 223 searches for one solution by executing playout, that is, random simulation, from the selected node (step S304).
  • playout that is, random simulation
  • step S304 it is possible to execute a plurality of simulations for one selected node and search for a plurality of solutions, here, as a simplest example, one simulation is executed for one selected node, A method for searching for one solution will be described.
  • the technical scope of the present invention is not limited to the form of executing one simulation for one selected node. Therefore, a form of executing a plurality of simulations for one selected node can also be included in the technical scope of the present invention.
  • the evaluation value update unit 224 uses the solution obtained by the simulation unit 223 to update the evaluation value of the solution such as best, mean, and kbest.
  • the evaluation value update unit 224 updates the evaluation value of the mean solution (step S305).
  • the evaluation value of the best solution is the optimum among the results of simulations executed from the selected node so far.
  • the evaluation value of the mean solution is an average of the results of simulations executed from the selected node so far.
  • the evaluation value of the kbest solution is an average of the k-th best solution among the results of simulations executed from the selected node so far.
  • the evaluation value update unit 224 performs the following normalization process on the evaluation value of the mean solution, which is the index value.
  • 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.
  • 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 value updating unit 224 normalizes v i so that the minimum value m, which is a good value, is 0, and the maximum value M, which is a bad value, is 1. Specifically, the evaluation value update unit 224 converts v i as follows. Value i is a value after normalization of v i .
  • v i may be further normalized so that the value i falls within a certain variance.
  • the evaluation value update unit 224 performs the above-described process on mean, thereby calculating Value i corresponding to mean.
  • Value i corresponding to best, mean, and kbest are expressed as bestValue, meanValue, and kbestValue (k), respectively.
  • “(K)” represents that the top k solutions are to be averaged.
  • the evaluation value update unit 224 calculates meanValue at each of the selected node and its upper node, and updates the evaluation value of each node based on the calculation result.
  • the pruning unit 225 performs pruning when it determines that pruning is necessary because the size of the search tree, for example, the number of nodes in the entire search tree or the number of leaf nodes in the search tree is large. Further, when it is determined that the space to be searched needs to be narrowed so that the search tree reaches the bottom of the solution space tree within a given time, pruning is executed (step S306). In the present embodiment, the pruning unit 225 evaluates each node with the mean updated by the evaluation value update unit 224 in step S305, and prunes a node with a poor evaluation value from the search tree. Thereafter, no simulation is performed from that node or its lower nodes.
  • the search tree can reach the bottom of the solution space tree within the calculation time.
  • the pruning execution interval for each stage may not be equal. For example, pruning may be performed to reduce the number of nodes located at the depth of the nth stage when ⁇ (n / N) of the entire calculation time has elapsed. Thereby, more calculation time can be allocated to a node near the root node that requires more calculation time.
  • the calculation unit 22 performs the processes in steps S302 to S306 (selection process, node expansion process, simulation execution process, evaluation value update process, and pruning process) until the calculation time in the calculation unit 22 reaches a predetermined upper limit. Run repeatedly. That is, when the calculation time has not reached the upper limit (Yes in step S307), the calculation unit 22 returns to the process in step S302. When the calculation time reaches the upper limit (No in step S307), the calculation unit 22 ends the calculation and passes the optimization calculation result, that is, solution information indicating the solution obtained by searching to the GUI unit 21 ( Step S308). Note that the calculation unit 22 may repeatedly execute the processes in steps S302 to S306 until the solution value given as a requirement is calculated instead of the calculation time.
  • the calculation unit 22 stores information including the number of node searches and evaluation values obtained during each calculation in the storage unit 23. Further, the calculation unit 22 stores information including the solution obtained by searching in the storage unit 23. The calculation unit 22 can recognize the number of searches for each node and the evaluation value during the calculation by acquiring information stored in the storage unit 23.
  • the case where problem data is input as optimization calculation input information from the user terminal 1 to the calculation unit 22 is taken as an example.
  • the calculation unit 22 acquires the problem data stored in the storage unit 23. You may do it.
  • a user or the like may store problem data in the storage unit 23 in advance.
  • FIG. 4 is a block diagram showing another configuration of the optimization system according to the first embodiment.
  • the search range can be appropriately narrowed by pruning using the simulation result in the MCTS. Accordingly, the search tree can reach the bottom of the solution space tree within a given calculation time without increasing the memory usage, and the solution can be calculated reliably. In addition, 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 the search method that calculates the evaluation value by simulation such as MCTS. In addition, by improving the accuracy of the solution, it is possible to increase the possibility of practical use for OR that is difficult to put into practical use.
  • Embodiment 2 FIG. Hereinafter, a second embodiment of the present invention will be described.
  • the configuration of the optimization system in the second embodiment is the same as that in the first embodiment.
  • calculation unit 22 in the second embodiment is the same as that of the first embodiment shown in FIG.
  • step S302 the operation of the selection unit 221 in step S302, the operation of the evaluation value update unit 224 in step S305, and the operation of the pruning unit 225 in step S306 are different.
  • steps S302, step S305, and step S306 will be described.
  • step S302 when the selection unit 221 selects a node, the selection unit 221 uses an index value different from the index value used by the pruning unit 225 to determine whether or not to execute pruning.
  • the index used for node selection is mean, and the index used for pruning is best. That is, the index value used for node selection is meanValue, and the index value used for pruning is bestValue.
  • step S305 the evaluation value update unit 224 calculates meanValue and bestValue using Expressions 1 to 3. At this time, the evaluation value update unit 224 calculates meanValue and bestValue at each of the selected node and its upper nodes, and updates the evaluation value of each node based on the calculation result.
  • step S306 the pruning unit 225 evaluates each node with an index best different from the index used by the selection unit 221 for node selection, and executes the pruning process.
  • each node in the search tree has both a meanValue that is an evaluation value for node selection and a bestValue that is an evaluation value for pruning.
  • the evaluation value update unit 224 stores the meanValue and the bestValue in the storage unit 23 in association with each node in the search tree.
  • the mean value that is an evaluation value for node selection may be given to an edge (branch) connecting the node and its parent, and the best value that is an evaluation value for pruning may be given to the node. .
  • an evaluation function different from node selection can be set as an index used for pruning while obtaining the same effect as in the first embodiment.
  • pruning a low-value node can be selected more appropriately and removed.
  • the number of simulations of high-value nodes can be increased in the executable memory space. If the number of simulations of a more important node can be increased more appropriately, the possibility of further improving the accuracy of a search method solution for calculating an evaluation value by simulation such as MCTS can be increased.
  • Embodiment 3 FIG. Hereinafter, a third embodiment of the present invention will be described.
  • the configuration of the optimization system in the third embodiment is the same as the configuration in the first embodiment.
  • the evaluation value update unit 224 of the optimization device 2 calculates the total evaluation value of the node based on each index value bestValue, meanValue, and kbestValue. Then, the evaluation value update unit 224 of the optimization device 2 updates the evaluation value of each node with the calculated total evaluation value of the node.
  • the operation of the calculation unit 22 in the third embodiment is the same as the operation of the first embodiment shown in FIG.
  • step S305 the operation of the evaluation value update unit 224 in step S305 is different.
  • the operation of the evaluation value update unit 224 in step S305 will be described.
  • the evaluation value update unit 224 calculates meanValue, bestValue, kbestValue (k) using Equations 1 to 3 after Step S304.
  • the evaluation value update unit 224 obtains the total evaluation value of the node using the following calculation formula for each node.
  • hValue is a comprehensive evaluation value of the node.
  • w and ⁇ are coefficients representing the weights of the indices best, mean, and kbest.
  • the degree of influence of each index on the entire expression that is, the degree of influence of each index on hValue can be increased.
  • ⁇ best , ⁇ mean , and ⁇ kbest (k) are coefficients for adjusting the influence of each index when bestValue, meanValue, and kbestValue (k) are the best, that is, near zero.
  • the values of ⁇ best , ⁇ mean , ⁇ kbest (k) are reduced, that is, approached to zero.
  • the best value is near zero, the smaller the ⁇ best is, the stronger the influence of the index best is.
  • w and ⁇ are stored in advance in the storage unit 23 of the optimization device 2.
  • the evaluation value update unit 224 distinguishes the values of w and ⁇ between an evaluation function used for node selection and an evaluation function used for pruning. For example, in the evaluation function used for node selection,
  • the evaluation value update unit 224 calculates the evaluation function value used for node selection and the evaluation function value used for pruning at each of the selected node and its higher nodes, and updates the evaluation value of each node based on the calculation result To do.
  • Embodiment 4 FIG. The fourth embodiment of the present invention will be described below.
  • the configuration of the optimization system in the fourth embodiment is the same as that in the first embodiment.
  • the evaluation value update unit 224 of the optimization device 2 calculates the total evaluation value of the node based on the index values bestValue, meanValue, and kbestValue, as in the third embodiment. At that time, the evaluation value update unit 224 calculates the total evaluation value of the node for each depth level of the search tree. It is assumed that the solution space tree has N levels. That is, it is assumed that the solution space tree has N stages of depth.
  • the operation of the calculation unit 22 in the fourth embodiment is the same as the operation in the third embodiment.
  • step S305 the operation of the evaluation value update unit 224 in step S305 is different.
  • the operation of the evaluation value update unit 224 in step S305 will be described.
  • the evaluation value update unit 224 calculates meanValue, bestValue, kbestValue (k) using Equations 1 to 3 after Step S304.
  • the evaluation value update unit 224 obtains a total evaluation value of the node using the following calculation formula for each node. Note that w best (n), w mean (n), w kbest (k) (n), ⁇ best (n), ⁇ mean (n), and ⁇ kbest (k) (n) are N in the solution space tree. This is a coefficient representing the weight for each index best, mean, kbest in the nth stage when it has stages.
  • the evaluation value update unit 224 distinguishes the values of w and ⁇ between an evaluation function used for node selection and an evaluation function used for pruning as follows. For example, in the evaluation function used for node selection,
  • the same effect as in the third embodiment can be obtained, and the evaluation function can be changed in the depth of the search tree of each node.
  • the number of node simulations can be increased appropriately. Therefore, since the number of simulations of more important nodes can be increased more appropriately, it is possible to increase the possibility of further improving the accuracy of the search method such as MCTS that calculates the evaluation value by simulation.
  • the configuration of the optimization system in the fifth embodiment is the same as the configuration in the first embodiment.
  • the evaluation value update unit 224 of the optimization device 2 uses the evaluation function used for pruning, the evaluation function used for pruning for the purpose of suppressing the size of the solution space tree, and the specified calculation time.
  • the search tree is set to each node by distinguishing it from an evaluation function used for pruning for the purpose of reaching the bottom of the solution space tree.
  • the evaluation function used for pruning is set as mean
  • the evaluation function used for pruning for the purpose of suppressing the size of the solution space tree is set as kbest
  • the search tree is set in the solution space within the specified calculation time. The evaluation function used for pruning for the purpose of reaching the bottom of the tree is best.
  • the operation of the calculation unit 22 in the fifth embodiment is the same as the operation of the first embodiment shown in FIG.
  • step S305 the operations of the evaluation value update unit 224 in step S305 and the pruning unit 225 in step S306 are different.
  • step S305 and step S306 will be described.
  • step S305 the evaluation value update unit 224 calculates meanValue, bestValue, kbestValue (k) using Expressions 1 to 3.
  • the evaluation value update unit 224 calculates meanValue, kbestValue (k), and bestValue at each of the selected node and its higher nodes, and updates the evaluation value of each node based on the calculation result.
  • MeanValue is used for node selection processing in the selection unit 221. Also, kbestValue (k) is used for the pruning process in the pruning unit 225 for the purpose of suppressing the size of the search tree. Further, bestValue is used in the pruning process in the pruning unit 225 for the purpose of causing the search tree to reach the bottom of the solution space tree within the specified calculation time.
  • step S306 the pruning unit 225 evaluates each node with an evaluation function kbestValue (k) or bestValue different from the evaluation function used by the selection unit 221 for node selection, and executes pruning processing. At this time, the pruning unit 225 determines whether to use kbestValue (k) or bestValue depending on the purpose of the pruning process to be executed. In other words, the purpose of the pruning process is to suppress the size of the search tree, or to make the search tree reach the bottom of the solution space tree within a specified calculation time. Determined by
  • the same effect as in the second embodiment can be obtained, and an evaluation function used for pruning can be set for each purpose of pruning.
  • a low-value node can be selected and removed more appropriately according to the purpose of pruning.
  • Pruning for the purpose of causing the search tree to reach the bottom of the solution space tree within the computation time is pruning at the stage where the number of simulations exceeds a certain number of times at each node, and even if best is used, there is a risk. Can be significantly reduced. Therefore, it is possible to remove low-value nodes more appropriately and efficiently. Therefore, it is possible to further increase the number of simulations of higher-value nodes in the executable memory space.
  • the calculation unit including one pruning unit is taken as an example.
  • the calculation unit 22 performs pruning for the purpose of suppressing the size of the search tree.
  • a pruning part may be included.
  • FIG. 5 is a block diagram illustrating an example of a configuration of an optimization system including an optimization device including two pruning units.
  • FIG. 6 is a flowchart showing the operation of the calculation unit in the optimization apparatus shown in FIG.
  • step S601, step S602, steps S606 to S608, and step S612 is the same as the processing in step S301, step S302, steps S303 to S305, and step S308, and thus description thereof is omitted.
  • the first pruning unit 2251 suppresses the size of the search tree by pruning. It is determined whether or not it is necessary (step S604). When pruning is necessary (Yes in step S604), the first pruning unit 2251 performs pruning (step S605). If pruning is not necessary (No in step S604), the enlargement unit 222 expands the search tree to a node one level lower.
  • the calculation unit 22 repeatedly executes the processing of steps S602 to S608 until the calculation time at the n-th stage satisfies a predetermined end condition (step S609).
  • the calculation unit 22 checks whether or not the search tree has reached the bottom (Nth stage) of the solution space tree. (Step S610). If the search tree has not reached the bottom of the solution space tree (No in step S610), the second pruning unit 2252 performs pruning (step S611).
  • the calculation unit 22 returns to the process of step S602 after executing the process of step S611. If the search tree has reached the bottom of the solution space tree (Yes in step S610), the process proceeds to step S612.
  • 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.
  • FIG. 7 is a block diagram showing the minimum configuration of the solution search apparatus according to the present invention.
  • the solution search device (corresponding to the optimization device 2 shown in FIG. 1) becomes a simulation execution target from among the nodes that are options in the search tree in the solution search using simulation.
  • An execution unit 101 (corresponding to the selection unit 221, the enlargement unit 222, and the simulation unit 223 in the optimization apparatus 2 shown in FIG. 1) that selects a node and executes a simulation from the selected node and the simulation result
  • the update unit 102 that calculates the evaluation value using the evaluation function and updates the evaluation value of the selected node and its higher nodes based on the evaluation value (update of the evaluation value in the optimization device 2 shown in FIG. 1)
  • a pruning unit 103 (the optimization device 2 shown in FIG. 1) that separates a node having an evaluation value that does not satisfy a predetermined criterion from the search tree.
  • the definitive pruning unit 225 including the equivalent.) And.
  • the search range can be appropriately narrowed by pruning using the simulation result in MCTS. Accordingly, the search tree can reach the bottom of the solution space tree within a given calculation time without increasing the memory usage, and the solution can be calculated reliably. In addition, 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 the search method that calculates the evaluation value by simulation such as MCTS.
  • the pruning unit 103 determines a time interval for performing pruning based on the specified calculation time, and a node having an evaluation value that does not satisfy a predetermined criterion based on the time interval Solution search apparatus for executing processing for separating a node from a search tree.
  • the search tree can reliably reach the bottom of the solution space tree within a given calculation time.
  • the pruning unit 103 is a solution search device that gradually shortens the time interval for performing pruning as the solution search time elapses.
  • the pruning unit 103 is a solution search device that separates, from the search tree, a node having an evaluation value that does not satisfy a predetermined criterion when the size of the search tree exceeds a certain size.
  • the size of the search tree can be reliably suppressed below a certain size.
  • the pruning unit 103 is a solution search apparatus that uses different evaluation values for pruning based on the time interval and pruning based on the size of the search tree.
  • the pruning unit 103 is a solution search device that determines whether to detach a node from the search tree based on an evaluation value different from the evaluation value used when the execution unit 101 selects a node.
  • the update unit 102 calculates an evaluation value for each of a plurality of evaluation functions using a plurality of evaluation functions based on the simulation result, and calculates a harmonic average of the calculated evaluation values as a comprehensive evaluation value.
  • the pruning unit 103 updates the evaluation value of the selected node and its upper node based on the comprehensive evaluation value, and the pruning unit 103 determines whether to disconnect the node from the search tree based on the comprehensive evaluation value. Search device.
  • the weighting factor for each evaluation value of the harmonic average is distinguished between an evaluation function for selecting a node and an evaluation function used for pruning, whereby a low-value node is used in pruning. Can be selected and removed more appropriately.
  • the evaluation function can be changed in the depth of the search tree of each node. Thereby, the number of node simulations can be increased appropriately.
  • a solution search apparatus comprising: a pruning unit 103 that separates nodes having no evaluation value from the search tree.
  • the pruning part 103 determines the time interval which performs pruning based on the designated calculation time, and has the evaluation value which does not satisfy
  • the pruning part 103 is a solution search apparatus of Additional remark 2 which shortens the time interval which performs pruning gradually with progress of the time of solution search.
  • the pruning unit 103 separates nodes having evaluation values that do not satisfy a predetermined criterion from the search tree when the size of the search tree exceeds a certain size.
  • the solution search apparatus as described in any one of them.
  • the pruning unit 103 determines whether to detach the node from the search tree based on an evaluation value different from the evaluation value used when the execution unit 101 selects a node.
  • the solution search apparatus as described in any one of these.
  • the updating unit 102 uses the evaluation function for selecting a node and the evaluation function for separating the node from the search tree, assigned to each node, based on the simulation result.
  • the update part 102 is based on the simulation result, the evaluation function for selecting the node allocated to each edge, and the evaluation function for separating the node from the search tree allocated to each node.
  • DAG directed acyclic graph
  • the updating unit 102 calculates an evaluation value for each of a plurality of evaluation functions using a plurality of evaluation functions based on the simulation result, and calculates a harmonic average of the calculated evaluation values as a comprehensive evaluation value. Then, based on the comprehensive evaluation value, the evaluation values of the selected node and its upper node are updated, and the pruning unit 103 determines whether to detach the node from the search tree based on the comprehensive evaluation value.
  • the solution search device according to any one of supplementary notes 1 to 8.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Operations Research (AREA)
  • Geometry (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

 最適化問題などを解く際に、メモリ使用量を増大させることなく、指定された計算時間内に確実に解を算出することができ、かつ解の精度を向上させることができる解探索装置、解探索方法および解探索プログラムを提供する。シミュレーションを用いた解探索において、探索木中の選択肢となるノードの中からシミュレーションの実行対象となるノードを選択し、選択されたノードからシミュレーションを実行する実行部101と、シミュレーション結果をもとに、評価関数を用いて評価値を算出し、当該評価値をもとに、選択されたノードおよびその上位ノードの評価値を更新する更新部102と、予め定められた基準を満たさない評価値を持つノードを探索木から切り離す枝刈部103とを含む。

Description

解探索装置、解探索方法および解探索プログラム
 本発明は、最適化計算などにおける解探索に適用される解探索装置、解探索方法および解探索プログラムに関する。
 最適化問題は、目的関数と制約条件が設定され、目的関数が最善となる最適解一つを導出する問題であることが多い。人工知能の分野では、非特許文献1に記載されたMCTS(モンテカルロ木探索(Monte-Carlo Tree Search))など、シミュレーションを用いた探索方法が注目されている。それらの探索方法は、データマイニングや機械学習の分野で注目されているMBP(Multi-armed Bandit Problem)を解く方法の発展形として位置付けられる。また、それらの探索方法は、実用化されつつあり、既に実用化に成功した例として、コンピュータ囲碁がある。OR(Operations Research)などで用いられる最適化においては、それらの探索方法の実用化が期待されているが、実用化が難しい。
 コンピュータ囲碁と最適化との最も異なる点は、解空間の木(以下、解空間木という。)において、コンピュータ囲碁などは解空間木の各段において次の段の中で最も良いノードを探すことを目的とするのに対して、最適化では最下段の解ノードの中で最も良いノードを探すことを目的とすることにある。解空間木の最下段まで探索木を伸ばすことは、MCTSにおいて今までにない目的となる。
 MCTSで重要となる技術は、シミュレーション結果を用いた各ノードの評価関数の設定方法と、プレイアウト(Playout)と呼ばれる1回のシミュレーションをする方法である。コンピュータ囲碁で用いられる評価関数は、非特許文献2に記載されたUCB(Upper Confidence Bound)を元にしたものである。コンピュータ囲碁で用いられる評価関数では、期待値をベースにしたものが用いられる。期待値は、囲碁における勝率などである。しかし、期待値よりも、最適な解や、上位k個の解、つまりk番目までに良い解の平均を評価関数に用いる方が良いとされている(非特許文献3参照。)。つまり、コンピュータ囲碁では、これらの評価関数を適切に選択して用いることが重要となる。以下、期待値にもとづく評価関数をmean、最適な解にもとづく評価関数をbest、上位k個の解の平均にもとづく評価関数をkbestと表現する。
 bestやkbestのどちらを用いる方が良いかは最適化を行う対象によって異なるため、一意には定めることができない。つまり、どの評価関数を用いるかを適切に選択することが重要となる。
C. Browne, E. Powley, D. Whitehouse, S. Lucas, P. I. Cowling, P. Rohlfshagen, S. Travener, D. Perez, S. Samothrakis and S. Colton, A Survey of Monte Carlo Tree Search Methods, IEEE Transactions on Computational Intelligence and AI in Games, Vol. 4, No. 1, March 2012. P. Auer, N. Cesa-Bianchi, and P. Fischer, Finite-time Analysis of the Multiarmed Bandit Problem, Machine Learning, Vol.47, p.235-256, 2002 A. Rimmel, F. Teytaud, and T. Cazenave, "Optimization of the nested Monte-Carlo algorithm on the traveling salesman problem with time windows," in Proc. Appl. Evol. Comput. 2, Torino, Italy, 2011, pp. 501-510
 解空間木が大きい時に、計算初期から探索木を拡大すると保有するノード数が増大する。その際、拡大する基準を緩くすると、メモリ容量がオーバする可能性がある。また、拡大する基準を厳しくすると、膨大な計算時間を費やしても解空間木の底にある解ノードに達しない可能性がある。
 最適化計算では、一般的に、解を取得したい時間を予めユーザ等が指定する。MCTSを最適化で成功させることを目標とすると、探索木を解空間木の底に指定時間までに到達させなければ、解の精度は上がらない。つまり、解の精度を向上させるには、指定時間までに確実に探索木を解空間木の底に到達させる必要がある。
 そこで、本発明は、最適化問題などを解く際に、メモリ使用量を増大させることなく、指定された計算時間内に確実に解を算出することができ、かつ解の精度を向上させることができる解探索装置、解探索方法および解探索プログラムを提供することを目的とする。
 本発明による解探索装置は、シミュレーションを用いた解探索において、探索木中の選択肢となるノードの中からシミュレーションの実行対象となるノードを選択し、選択されたノードからシミュレーションを実行する実行部と、シミュレーション結果をもとに、評価関数を用いて評価値を算出し、当該評価値をもとに、選択されたノードおよびその上位ノードの評価値を更新する更新部と、予め定められた基準を満たさない評価値を持つノードを探索木から切り離す枝刈部とを含むことを特徴とする。
 本発明による解探索方法は、シミュレーションを用いた解探索において、探索木中の選択肢となるノードの中からシミュレーションの実行対象となるノードを選択し、選択されたノードからシミュレーションを実行し、シミュレーション結果をもとに、評価関数を用いて評価値を算出し、当該評価値をもとに、選択されたノードおよびその上位ノードの評価値を更新し、予め定められた基準を満たさない評価値を持つノードを探索木から切り離すことを特徴とする。
 本発明による解探索プログラムは、コンピュータに、シミュレーションを用いた解探索において、探索木中の選択肢となるノードの中からシミュレーションの実行対象となるノードを選択し、選択されたノードからシミュレーションを実行する処理と、シミュレーション結果をもとに、評価関数を用いて評価値を算出し、当該評価値をもとに、選択されたノードおよびその上位ノードの評価値を更新する処理と、予め定められた基準を満たさない評価値を持つノードを探索木から切り離す処理とを実行させることを特徴とする。
 本発明によれば、最適化問題などを解く際に、メモリ使用量を増大させることなく、指定された計算時間内に確実に解を算出することができ、かつ解の精度を向上させることができる。
最適化システムの第1の実施形態の構成を示すブロック図である。 探索木に対して枝刈が実行される様子を示す説明図である。 第1の実施形態における計算部の動作を示すフローチャートである。 最適化システムの第1の実施形態の他の構成を示すブロック図である。 枝刈部を2つ含む最適化装置を備えた最適化システムの構成の一例を示すブロック図である。 図5に示す最適化装置における計算部の動作を示すフローチャートである。 本発明による解探索装置の最小構成を示すブロック図である。
実施形態1.
 以下、本発明の第1の実施形態を図面を参照して説明する。
 図1は、最適化システムの第1の実施形態の構成を示すブロック図である。
 図1に示すように、第1の実施形態における最適化システムは、ユーザ端末1と、最適化装置2とを備える。ユーザ端末1と最適化装置2とは、通信可能に接続される。なお、図1には1つのユーザ端末が例示されているが、ユーザ端末は最適化装置2にいくつ接続されていてもよい。
 ユーザ端末1は、例えばパーソナルコンピュータ等の情報処理端末である。ユーザ端末1は、操作部11と、表示部12とを含む。
 操作部11は、実行する最適化計算に必要な情報(以下、最適化計算入力情報という。)を入力する。また、操作部11は、実行指示を入力する。操作部11は、最適化計算入力情報とともに実行指示を最適化装置2に出力する。
 表示部12は、最適化装置2から最適化計算結果の解を受け取り、表示する。
 最適化装置2は、GUI(Graphical User Interface)部21と、計算部22と、記憶部23とを含む。
 GUI部21は、ユーザ端末1の操作部11から、最適化計算入力情報を受け取る。GUI部21は、最適化計算入力情報を計算部22に伝達する。GUI部21は、計算部22から最適化計算結果の解を受け取り、ユーザ端末1の表示部12へ伝達する。
 計算部22は、選択部221と、拡大部222と、シミュレーション部223と、評価値更新部224、枝刈部225とを含む。
 選択部221は、展開されたノードの中からプレイアウトの実行対象となるノードを選択する。以下、プレイアウトの実行対象となるノードを選択ノードという。
 拡大部222は、探索木(ツリー)を拡大する。具体的には、拡大部222は、予め定められた基準に従って、選択部221で選ばれたノードを展開する必要があるか否かを判断し、必要となればさらに一段下位にノードを展開して、探索木を拡大する。拡大部222は、ノードを展開した場合には、選択ノードを当該一段下位のノードに選択し直す。
 シミュレーション部223は、シミュレーションを実行する。具体的には、シミュレーション部223は、プレイアウト、すなわち、ランダムシミュレーションのような単純な方法で1つの解を探索し、解の評価値を取得する。
 評価値更新部224は、シミュレーション部223が行ったプレイアウトの結果により、各ノードの解の評価値を更新する。各ノードの評価値は、繰り返し実行されるシミュレーションで得られた評価値を集めた統計値からなり、評価値更新部224は当該統計値を更新する。
 評価値更新部224は、指標値を算出する。本実施形態では、best,mean,kbestの評価関数値(以下、解の評価値ともいう。)を指標値として、それぞれ算出する。
 評価値更新部224は、算出された評価値を組み合わせて総合評価値を算出する。その際、評価値更新部224は、各指標(best,mean,kbest)のトレードオフを考慮し、また各指標で特長を持つ値が強調されるように、総合評価値の算出を行う。
 評価値更新部224は、総合評価値の算出結果をもとに、各ノードの評価値を更新する。
 枝刈部225は、枝刈(Pruning)を実行する。図2は、探索木に対して枝刈が実行される様子を示す説明図である。図2に示す三角形の枠は解空間木を表す。三角形の底辺を囲う楕円は、解空間木の最下段のノード、つまり解ノードを表す。網点の領域は、探索木を表す。黒丸は、探索木の根ノード、すなわち解空間木の最上段のノードを表す。白丸は、探索木のリーフノードを表す。図2に示すように、本実施形態では、時間の経過とともに、また、探索木の展開とともに、枝刈が解空間木の最下段に向かって実行される。また、枝刈部225は、探索木の大きさ(図2に示す網点の領域の面積)が一定の大きさを超えないように、枝刈を実行する。
 記憶部23は、目的関数や制約条件を記憶する。最適化システムがスケジューリング問題に適用される場合には、記憶部23は、タスク情報や担当者情報など、問題を解くために必要なデータ(以下、問題データという。)を記憶する。また、記憶部23は、計算部22での計算処理が進む際に、ノードの評価値など、変化する情報を記憶する。本実施形態では、記憶部23は、計算部22が各計算途中で得たノードの探索回数や評価値を記憶する。また、記憶部23は、計算部22で求められた解の中で保持する必要のある解を記憶する。
 なお、GUI部21、計算部22は、例えば、解探索プログラムに従って動作するコンピュータによって実現される。この場合、最適化装置2が備えるCPUが解探索プログラムを読み込み、そのプログラムに従って、GUI部21および計算部22として動作する。また、GUI部21および計算部22の各部は別々のハードウェアで実現されていてもよい。
 また、記憶部23は、最適化装置2が備えるRAM(Random Access Memory)等の記憶装置によって実現される。
 次に、本実施形態の動作を説明する。
 図3は、第1の実施形態における計算部22の動作を示すフローチャートである。
 ここでは、図1に示す最適化システムがスケジューリング問題に適用される場合を例にする。
 まず、ユーザがユーザ端末1の操作部11に対して、最適化計算入力情報を入力する。ユーザは、最適化計算をしたいタスク、従事可能な担当者、各担当者がそれぞれのタスクに従事した時のコストや有効性などの問題データを最適化計算入力情報として入力する。このとき、ユーザは、最適化計算入力情報とともに実行指示を操作部11に入力する。操作部11は、最適化計算入力情報と実行指示とを最適化装置2に出力する。
 最適化装置2のGUI部21は、ユーザ端末1から最適化計算入力情報とともに実行指示を受け取ると、最適化計算入力情報を計算部22へ伝達する。計算部22は、前処理として最適化計算入力情報を入力する(ステップS301)。
 ステップS301の後、計算部22の選択部221は、展開されたノードの中から、シミュレーションすべきノードを選択する(ステップS302)。なお、初期状態ではノードは1つのみであるので、そのノードが選択対象となる。ノードの選択は、本実施形態では、評価値更新部224によって算出された指標値を用いて行う。
 拡大部222は、選択部221で選択されたノードのプレイアウト回数が、事前に定められた条件を満たした時に、探索木を1段下位のノードまで展開する(ステップS303)。本実施形態では、拡大部222は、当該プレイアウト回数が予め定められた回数を超えた時に展開する。なお、初期状態でノードが1つのみである時は、この条件に関わらず展開する。展開した場合には、拡大部222は、展開したノードのうちの1つを選択ノードとする。
 シミュレーション部223は、選択ノードからプレイアウト、つまりランダムシミュレーションを実行し解を1つ探索する(ステップS304)。なお、1つの選択ノードに対して複数のシミュレーションを実行し複数の解を探索することも可能であるが、ここでは、もっともシンプルな例として1つの選択ノードに対して1つのシミュレーションを実行し、1つの解を探索する方法について説明する。本発明の技術的範囲は、1つの選択ノードに対して1つのシミュレーションを実行する形態に限定されない。従って、1つの選択ノードに対して複数のシミュレーションを実行する形態も本発明の技術的範囲に含まれ得る。
 評価値更新部224は、シミュレーション部223によって得られた解を用いて、best,mean,kbestなどの解の評価値を更新する。なお、本実施形態では、評価値更新部224は、meanの解の評価値を更新する(ステップS305)。bestの解の評価値は、現在までにその選択ノードから実行されたシミュレーションの結果の中で最適なものである。meanの解の評価値は、現在までにその選択ノードから実行されたシミュレーションの結果を平均したものである。kbestの解の評価値は、現在までにその選択ノードから実行されたシミュレーションの結果の中でk番目までに良い解を平均したものである。
 評価値更新部224は、指標値である、meanの解の評価値について、以下の正規化の処理を行う。
 選択ノードとその兄弟ノード(選択ノードと共通の親ノードをもつノード)における指標値をそれぞれv,v,v,…vとした時、最大値M、最小値mは以下のように表すことが可能である。なお、Lは、共通の親ノードをもつ子ノードの総数である。
Figure JPOXMLDOC01-appb-M000001
Figure JPOXMLDOC01-appb-M000002
 ここで、vは、予め定められた基準により、最小値mに近い場合に良い値であると判断されるとする。また、最大値Mに近い場合に悪い値であると判断されるとする。評価値更新部224は、良い値である最小値mを0、悪い値である最大値Mを1とするために、vを正規化する。具体的には、評価値更新部224は、vを次のように変換する。Valueは、vの正規化後の値である。
Figure JPOXMLDOC01-appb-M000003
 なお、Valueの値が一定の分散におさまるように、vをさらに正規化してもよい。
 評価値更新部224が、meanについて上記の処理を実行することにより、meanに対応するValueが算出される。以下、best,mean,kbestに対応するValueを、それぞれbestValue,meanValue,kbestValue(k)と表現する。なお、“(k)”は、上位k個の解を平均算出の対象とすることを表す。
 評価値更新部224は、meanValueを、選択ノードとその上位のノードそれぞれで計算し、算出結果をもとにそれぞれのノードの評価値を更新する。
 枝刈部225は、探索木の大きさ、例えば、探索木全体のノード数や探索木のリーフノードの数が大きく、枝刈が必要であると判断した時に、枝刈を実行する。また、与えられた指定時間内に探索木を解空間木の底に到達させるために、探索する空間を狭める必要があると判断した時に、枝刈を実行する(ステップS306)。本実施形態では、枝刈部225は、ステップS305において評価値更新部224が更新したmeanで各ノードを評価し、評価値の悪いノードは探索木から枝刈する。その後、そのノードやその下位のノードからシミュレーションされることはない。
 ステップS306における、指定時間内に探索木を解空間木の底に到達させるための枝刈の実行方法として、各段に対する枝刈の実行間隔を調整する方法がある。解空間木全体における深さのレベルが、1段目から底(N段目)まであるとしたとき、計算時間が経過するとともに探索木の中心は底に向かって移動する。そこで、枝刈部225は、計算時間全体のn/Nが経過した時にn段目の深さに位置するノードの数を抑える枝刈を実行する。例えば、N=10である場合、許された計算時間の60%が経過した時には6段目の深さに位置するノードの数を抑える枝刈を実行する。これにより、計算時間内に探索木を解空間木の底に到達させることができる。なお、各段に対する枝刈の実行間隔は均等でなくてもよい。例えば、計算時間全体の√(n/N)が経過した時にn段目の深さに位置するノードの数を抑える枝刈をしてもよい。それにより、計算時間をより多く必要とする根ノード付近のノードに対して、より多くの計算時間を割り当てることができる。
 計算部22は、計算部22における計算時間が事前に定められた上限に達するまで、ステップS302~S306の処理(選択処理、ノード展開処理、シミュレーション実行処理、評価値更新処理および枝刈処理)を繰り返し実行する。つまり、当該計算時間が上限に達していない場合は(ステップS307のYes)、計算部22はステップS302の処理に戻る。当該計算時間が上限に達した場合は(ステップS307のNo)、計算部22は、計算を終了し、最適化計算結果、つまり探索して得た解を示す解情報をGUI部21に渡す(ステップS308)。なお、計算部22は、計算時間ではなく、要件として与えられた解の値が算出されるまでステップS302~S306の処理を繰り返し実行するようにしてもよい。
 また、ステップS302~S306の計算処理において、計算部22は、各計算途中で得たノードの探索回数や評価値を含む情報を記憶部23に格納する。また、計算部22は、探索して得た解を含む情報を記憶部23に格納する。計算部22は、記憶部23に格納された情報を取得することにより、計算途中における各ノードの探索回数や評価値を認識することができる。
 なお、本実施形態では、問題データがユーザ端末1から最適化計算入力情報として計算部22に入力される場合を例にしたが、計算部22は記憶部23に格納された問題データを取得するようにしてもよい。そのような形態を実現するには、ユーザ等が予め問題データを記憶部23に格納すればよい。
 また、ステップS306の枝刈処理を実行するタイミングは、ステップS305の評価値更新処理の後に限られない。例えば、図4に示すように、拡大部222とシミュレーション部223との間に枝刈部225を配置するようにしてもよい。つまり、ステップS303の処理とステップS304の処理との間に、ステップS306の枝刈処理を実行するようにしてもよい。図4は、最適化システムの第1の実施形態の他の構成を示すブロック図である。
 以上に説明したように、本実施形態によれば、MCTSにおいてシミュレーション結果を用いた枝刈をすることにより、適切に探索範囲を狭めることができる。それにより、メモリ使用量を増大させることなく、与えられた計算時間内で探索木を解空間木の底まで到達させることができ、確実に解を算出することができる。また、シミュレーション結果をもとに重要であると判断したノードのシミュレーション回数を増やすことができる。よって、MCTSなどのシミュレーションによって評価値を算出する探索方法の解の精度を改善する可能性を高めることができる。また、解の精度を改善することで、実用化が難しいORなどについて、実用化の可能性を高めることができる。
実施形態2.
 以下、本発明の第2の実施形態を説明する。
 第2の実施形態における最適化システムの構成は、第1の実施形態の構成と同様である。
 ここでは、第1の実施形態と同様に、最適化システムがスケジューリング問題に適用される場合を例にする。
 第2の実施形態における計算部22の動作は、図3に示す第1の実施形態の動作と同様である。
 しかし、ステップS302における選択部221の動作、ステップS305における評価値更新部224の動作およびステップS306における枝刈部225の動作が異なる。ここで、ステップS302、ステップS305およびステップS306における動作を説明する。
 ステップS302において、選択部221は、ノードを選択する際に、枝刈部225が枝刈を実行するか否かを判断するために用いる指標値とは異なる指標値を用いる。本実施形態では、ノードの選択に用いる指標をmean、枝刈に用いる指標をbestとする。すなわち、ノードの選択に用いる指標値をmeanValue、枝刈に用いる指標値をbestValueとする。
 ステップS305において、評価値更新部224は、式1~式3を用いて、meanValueおよびbestValueを算出する。このとき、評価値更新部224は、meanValueおよびbestValueを、選択ノードとその上位のノードそれぞれで計算し、算出結果をもとにそれぞれのノードの評価値を更新する。
 ステップS306において、枝刈部225は、選択部221がノード選択に用いる指標とは異なる指標bestで各ノードを評価し、枝刈処理を実行する。
 このように、本実施形態では、探索木内の各ノードは、ノード選択のための評価値であるmeanValueと、枝刈のための評価値であるbestValueとの両方を持つ。具体的には、評価値更新部224が、探索木内の各ノードに対応づけて、meanValueおよびbestValueを記憶部23に格納する。
 なお、ノード選択のための評価値であるmeanValueを、そのノードとその親とを結ぶエッジ(枝)に持たせ、枝刈のための評価値であるbestValueをノードに持たせるようにしてもよい。
 以上に説明したように、本実施形態では、第1の実施形態と同様の効果を得つつ、枝刈に用いる指標に、ノード選択とは別の評価関数を設定することができる。それにより、枝刈において、価値の低いノードをより適切に選択し、取り除くことができる。例えば、枝刈において、それまでに最適な結果(bestValue)を出したノードは、平均値(meanValue)が低くても取り除くことが適さないと考えられる。本実施形態によれば、そのようなノードが取り除かれることを回避することができる。
 このように、より適切に価値の低いノードを取り除くことにより、実行可能なメモリ空間の中で、より価値の高いノードのシミュレーション回数を増やすことができる。より重要なノードのシミュレーション回数をより適切に増やすことができれば、MCTSなどのシミュレーションによって評価値を算出する探索方法の解の精度をさらに改善する可能性を高めることができる。
実施形態3.
 以下、本発明の第3の実施形態を説明する。
 第3の実施形態における最適化システムの構成は、第1の実施形態の構成と同様である。
 しかし、最適化装置2の評価値更新部224は、各指標値bestValue、meanValue、kbestValueをもとに、ノードの総合評価値を算出する。そして、最適化装置2の評価値更新部224は、算出したノードの総合評価値により、各ノードの評価値を更新する。
 ここでは、第1の実施形態と同様に、最適化システムがスケジューリング問題に適用される場合を例にする。
 第3の実施形態における計算部22の動作は、図3に示す第1の実施形態の動作と同様である。
 しかし、ステップS305における評価値更新部224の動作が異なる。ここで、ステップS305における評価値更新部224の動作を説明する。
 評価値更新部224は、ステップS304の後、式1~式3を用いて、meanValue、bestValue、kbestValue(k)を算出する。
 評価値更新部224は、ノードごとに次の計算式を用いてノードの総合評価値を得る。hValueは、ノードの総合評価値である。w、εは、各指標best,mean,kbestの重みを表す係数である。
Figure JPOXMLDOC01-appb-M000004
 例えば、wbest,wmean,wkbest(k)を大きくすると、式全体に対する各指標の影響度、つまりhValueに対する各指標の影響度を強くすることができる。
 εbest,εmean,εkbest(k)は、bestValue,meanValue,kbestValue(k)がそれぞれ最も良い時、つまりゼロ付近にある時の各指標の影響度を調整する係数である。各指標の影響度を強くしたい場合には、εbest,εmean,εkbest(k)の値を小さくする、つまりゼロに近づける。例えば、bestValueがゼロ付近にある場合、εbest=0.01であれば、分母のbestの項は「wbest×100」になる。εbest=0.1であれば、分母のbestの項は「wbest×10」になる。このように、bestValueがゼロ付近にある時に、εbestを小さくすればするほど、指標bestの影響度が強くなる。εを調整することにより、bestValue,meanValue,kbestValue(k)が良い値であるときに、総合評価値hValueを、最も良い値であるゼロに到達させる速さを調節することが可能となる。
 このように、w、εの値を用いることにより、各指標のトレードオフを考慮できる。また、特定の指標に強みを持つノードの評価値をより良くすることができる。なお、w、εは、予め最適化装置2の記憶部23に格納される。
 また、評価値更新部224は、wやεの値を、ノード選択に用いる評価関数と、枝刈に用いる評価関数とで区別する。例えば、ノード選択に用いる評価関数では、
Figure JPOXMLDOC01-appb-M000005
 とする。枝刈に用いる評価関数では、
Figure JPOXMLDOC01-appb-M000006
 とする。
 評価値更新部224は、ノード選択に用いる評価関数値と枝刈に用いる評価関数値を、選択ノードとその上位のノードそれぞれで計算し、算出結果をもとにそれぞれのノードの評価値を更新する。
 以上に説明したように、本実施形態では、第2の実施形態と同様の効果を得ることができる。
実施形態4.
 以下、本発明の第4の実施形態を説明する。
 第4の実施形態における最適化システムの構成は、第1の実施形態の構成と同様である。
 しかし、最適化装置2の評価値更新部224は、第3の実施形態と同様に、各指標値bestValue、meanValue、kbestValueをもとに、ノードの総合評価値を算出する。そのとき、評価値更新部224は、探索木の深さのレベルごとに、ノードの総合評価値を算出する。なお、解空間木はN段のレベルを有するとする。つまり、解空間木はN段の深さを有するとする。
 ここでは、第1の実施形態と同様に、最適化システムがスケジューリング問題に適用される場合を例にする。
 第4の実施形態における計算部22の動作は、第3の実施形態の動作と同様である。
 しかし、ステップS305における評価値更新部224の動作が異なる。ここで、ステップS305における評価値更新部224の動作を説明する。
 評価値更新部224は、ステップS304の後、式1~式3を用いて、meanValue、bestValue、kbestValue(k)を算出する。
 評価値更新部224は、ノードごとに次の計算式を用いてノードの総合評価値を得る。なお、wbest(n),wmean(n),wkbest(k)(n)、εbest(n),εmean(n),εkbest(k)(n)は、解空間木がN段のレベルを有するとした場合の、n段目における各指標best,mean,kbestに対する重みを表す係数である
Figure JPOXMLDOC01-appb-M000007
 また、評価値更新部224は、以下のように、wやεの値を、ノード選択に用いる評価関数と、枝刈に用いる評価関数とで区別する。例えば、ノード選択に用いる評価関数では、
Figure JPOXMLDOC01-appb-M000008
 とする。枝刈に用いる評価関数では、
Figure JPOXMLDOC01-appb-M000009
 とする。
 以上に説明したように、本実施形態では、第3の実施形態と同様の効果が得られるとともに、各ノードの探索木における深さにおいて、評価関数を変えることができる。それにより、ノードのシミュレーション回数を適切に増やすことができる。従って、より重要なノードのシミュレーション回数をより適切に増やすことができるので、MCTSなど、シミュレーションによって評価値を算出する探索方法の解の精度をさらに改善する可能性を高めることができる。
実施形態5.
 以下、本発明の第5の実施形態を図面を参照して説明する。
 第5の実施形態における最適化システムの構成は、第1の実施形態の構成と同様である。
 しかし、最適化装置2の評価値更新部224は、枝刈に用いる評価関数を、解空間木の大きさを抑えることを目的とする枝刈に用いる評価関数と、指定された計算時間内に探索木を解空間木の底に到達させることを目的とする枝刈に用いる評価関数とに区別して、各ノードに設定する。本実施形態では、枝刈に用いる評価関数をmeanとし、解空間木の大きさを抑えることを目的とする枝刈に用いる評価関数をkbestとし、指定された計算時間内に探索木を解空間木の底に到達させることを目的とする枝刈に用いる評価関数をbestとする。
 第5の実施形態における計算部22の動作は、図3に示す第1の実施形態の動作と同様である。
 しかし、ステップS305における評価値更新部224、およびステップS306における枝刈部225の動作が異なる。ここで、ステップS305、ステップS306における動作を説明する。
 ステップS305において、評価値更新部224は、式1~式3を用いて、meanValue、bestValue、kbestValue(k)を算出する。
 評価値更新部224は、meanValue、kbestValue(k)、bestValueを、選択ノードとその上位のノードそれぞれで計算し、算出結果をもとにそれぞれのノードの評価値を更新する。
 meanValueは、選択部221におけるノードの選択処理に用いられる。また、kbestValue(k)は、枝刈部225における、探索木の大きさを抑えることを目的とする枝刈処理に用いられる。また、bestValueは、枝刈部225における、指定された計算時間内に探索木を解空間木の底に到達させることを目的とする枝刈処理に用いられる。
 ステップS306において、枝刈部225は、選択部221がノード選択に用いる評価関数とは異なる評価関数kbestValue(k)またはbestValueで、各ノードを評価し、枝刈処理を実行する。このとき、枝刈部225は、実行する枝刈処理の目的に応じて、kbestValue(k)またはbestValueのどちらを用いるかを決定する。すなわち、枝刈処理が、探索木の大きさを抑えることを目的とするものであるか、指定された計算時間内に探索木を解空間木の底に到達させることを目的とするものであるかにより決定する。
 以上に説明したように、本実施形態では、第2の実施形態と同様の効果が得られるとともに、枝刈に用いる評価関数を、枝刈の目的ごとに設定することができる。それにより、枝刈の目的に応じて、価値の低いノードをより適切に選択し、取り除くことができる。例えば、探索木の大きさを抑えることを目的とする枝刈においては、ある程度平均的な期待値(mean)に近いものを残すことで、まだ少ないシミュレーション回数においても枝刈で大きな間違いを犯すリスクを減らすことができる。計算時間内に探索木を解空間木の底に到達させることを目的とする枝刈は、各ノードにおいてシミュレーション回数がある程度の回数を超えた段階における枝刈であり、bestを用いたとしてもリスクはかなり軽減することができると考えられる。従って、より適切にかつ効率的に、価値の低いノードを取り除くことできる。よって、実行可能なメモリ空間の中で、より価値の高いノードのシミュレーション回数をさらに増やすことができる。
 なお、第5の実施形態では、枝刈部を1つ含む計算部を例にしたが、図5に示すように、計算部22は、探索木の大きさを抑えることを目的とする枝刈処理を行う第1の枝刈部2251と、指定された計算時間内に探索木を解空間木の底に到達させることを目的とする枝刈処理を行う第2の枝刈部2252との2つ枝刈部を含んでいてもよい。図5は、枝刈部を2つ含む最適化装置を備えた最適化システムの構成の一例を示すブロック図である。
 図6は、図5に示す最適化装置における計算部の動作を示すフローチャートである。
 なお、ステップS601、ステップS602、ステップS606~S608、ステップS612の処理は、ステップS301、ステップS302、ステップS303~S305、ステップS308の処理と同様であるため、説明を省略する。
 選択部221で選択されたノードのプレイアウト回数が、事前に定められた条件を満たした時に(ステップS603のYes)、第1の枝刈部2251は、枝刈により探索木の大きさを抑える必要があるか否かを判定する(ステップS604)。枝刈が必要である場合には(ステップS604のYes)、第1の枝刈部2251が枝刈を実行する(ステップS605)。枝刈が必要でない場合には(ステップS604のNo)、拡大部222が探索木を1段下位のノードまで展開する。
 計算部22は、n段目における計算時間が事前に定められた終了条件を満たすまで、ステップS602~S608の処理を繰り返し実行する(ステップS609)。当該計算時間が事前に定められた終了条件を満たした場合には(ステップS609のYes)、計算部22は探索木が解空間木の底(N段目)に達したか否かを確認する(ステップS610)。探索木が解空間木の底に達していない場合には(ステップS610のNo)、第2の枝刈部2252が枝刈を実行する(ステップS611)。計算部22は、ステップS611の処理を実行した後、ステップS602の処理に戻る。探索木が解空間木の底に達した場合には(ステップS610のYes)、ステップS612の処理に移行する。
 なお、各実施形態において、最適化装置がスケジューリング問題に適用される場合を例にしたが、本発明の適用範囲はその限りではない。本発明は、タスクを担当者に割り当てるスケジューリング問題などの組合せ最適化問題を中心に、最適化問題全般に適用することが可能である。また、最適化問題以外の解探索にも適用することが可能である。
 図7は、本発明による解探索装置の最小構成を示すブロック図である。図7に示すように、解探索装置(図1に示す最適化装置2に相当。)は、シミュレーションを用いた解探索において、探索木中の選択肢となるノードの中からシミュレーションの実行対象となるノードを選択し、選択されたノードからシミュレーションを実行する実行部101(図1に示す最適化装置2における選択部221、拡大部222およびシミュレーション部223に相当。)と、シミュレーション結果をもとに、評価関数を用いて評価値を算出し、当該評価値をもとに、選択されたノードおよびその上位ノードの評価値を更新する更新部102(図1に示す最適化装置2における評価値更新部224に相当。)と、予め定められた基準を満たさない評価値を持つノードを探索木から切り離す枝刈部103(図1に示す最適化装置2における枝刈部225に相当。)とを含む。
 そのような構成によれば、MCTSにおいてシミュレーション結果を用いた枝刈をすることにより、適切に探索範囲を狭めることができる。それにより、メモリ使用量を増大させることなく、与えられた計算時間内で探索木を解空間木の底まで到達させることができ、確実に解を算出することができる。また、シミュレーション結果をもとに重要であると判断したノードのシミュレーション回数を増やすことができる。よって、MCTSなどのシミュレーションによって評価値を算出する探索方法の解の精度を改善する可能性を高めることができる。
 上記の実施形態には、以下のような解探索装置も開示されている。
(1)枝刈部103は、指定された計算時間をもとに、枝刈を実行する時間間隔を決定し、当該時間間隔にもとづいて、予め定められた基準を満たさない評価値を持つノードを探索木から切り離す処理を実行する解探索装置。
 そのような構成によれば、与えられた計算時間内で探索木を解空間木の底まで確実に到達させることができる。
(2)枝刈部103は、解探索の時間の経過とともに、枝刈を実行する時間間隔を徐々に短くする解探索装置。
 そのような構成によれば、計算時間をより必要とする根付近のノードに対して、より多くの計算時間を割り当てることができる。
(3)枝刈部103は、探索木の大きさが一定の大きさを超えたときに、予め定められた基準を満たさない評価値を持つノードを探索木から切り離す解探索装置。
 そのような構成によれば、探索木の大きさを一定の大きさ以下に確実に抑えることができる。
(4)枝刈部103は、時間間隔にもとづく枝刈と探索木の大きさにもとづく枝刈とで、別々の評価値を用いる解探索装置。
 そのような構成によれば、枝刈の目的に応じて、価値の低いノードをより適切に選択し、取り除くことができる。従って、より適切にかつ効率的に、価値の低いノードを取り除くことできる。
(5)枝刈部103は、実行部101がノードを選択するときに用いる評価値とは別の評価値にもとづいて、ノードを探索木から切り離すか否かを判定する解探索装置。
 そのような構成によれば、枝刈において、価値の低いノードを適切に選択し、取り除くことができる。
(6)更新部102は、シミュレーション結果をもとに、複数の評価関数を用いて、複数の評価関数ごとに評価値を算出し、算出した各評価値の調和平均を総合評価値として算出し、総合評価値をもとに、選択されたノードおよびその上位ノードの評価値を更新し、枝刈部103は、総合評価値をもとにノードを探索木から切り離すか否かを判定する解探索装置。
 そのような構成によれば、調和平均の各評価値に対する重み係数を、ノードを選択するための評価関数と、枝刈に用いる評価関数とで区別することにより、枝刈において、価値の低いノードをより適切に選択し、取り除くことができる。
(7)更新部102は、探索木の深さに応じて、調和平均を算出する際の各評価値に対する重み係数を変更する解探索装置。
 そのような構成によれば、各ノードの探索木における深さにおいて、評価関数を変えることができる。それにより、ノードのシミュレーション回数を適切に増やすことができる。
 また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下に限られない。
(付記1)シミュレーションを用いた解探索において、探索木中の選択肢となるノードの中からシミュレーションの実行対象となるノードを選択し、選択されたノードからシミュレーションを実行する実行部101と、シミュレーション結果をもとに、評価関数を用いて評価値を算出し、当該評価値をもとに、選択されたノードおよびその上位ノードの評価値を更新する更新部102と、予め定められた基準を満たさない評価値を持つノードを探索木から切り離す枝刈部103とを含むことを特徴とする解探索装置。
(付記2)枝刈部103は、指定された計算時間をもとに、枝刈を実行する時間間隔を決定し、当該時間間隔にもとづいて、予め定められた基準を満たさない評価値を持つノードを探索木から切り離す処理を実行する付記1に記載の解探索装置。
(付記3)枝刈部103は、解探索の時間の経過とともに、枝刈を実行する時間間隔を徐々に短くする付記2に記載の解探索装置。
(付記4)枝刈部103は、探索木の大きさが一定の大きさを超えたときに、予め定められた基準を満たさない評価値を持つノードを探索木から切り離す付記1から付記3のうちのいずれか1つに記載の解探索装置。
(付記5)枝刈部103は、時間間隔にもとづく枝刈と探索木の大きさにもとづく枝刈とで、別々の評価値を用いる付記4に記載の解探索装置。
(付記6)枝刈部103は、実行部101がノードを選択するときに用いる評価値とは別の評価値にもとづいて、ノードを探索木から切り離すか否かを判定する付記1から付記5のうちのいずれか1つに記載の解探索装置。
(付記7)更新部102は、シミュレーション結果をもとに、各ノードに割り当てられた、ノードを選択するための評価関数およびノードを探索木から切り離すための評価関数を用いて、それぞれの評価関数ごとに評価値を算出する付記6に記載の解探索装置。
 そのような構成によれば、枝刈において、価値の低いノードをより適切に選択し、取り除くことができる。
(付記8)更新部102は、シミュレーション結果をもとに、各エッジに割り当てられた、ノードを選択するための評価関数と、各ノードに割り当てられた、ノードを探索木から切り離すための評価関数とを用いて、それぞれの評価関数ごとに評価値を算出する付記6に記載の解探索装置。
 そのような構成によれば、評価関数をエッジに割り当てることが可能となり、本発明をツリーだけでなく、例えば、非循環有向グラフ(DAG:Directed Acyclic Graph)にも適用することが可能となる。
(付記9)更新部102は、シミュレーション結果をもとに、複数の評価関数を用いて、複数の評価関数ごとに評価値を算出し、算出した各評価値の調和平均を総合評価値として算出し、総合評価値をもとに、選択されたノードおよびその上位ノードの評価値を更新し、枝刈部103は、総合評価値をもとにノードを探索木から切り離すか否かを判定する付記1から付記8のうちのいずれか1つに記載の解探索装置。
(付記10)更新部102は、探索木の深さに応じて、調和平均を算出する際の各評価値に対する重み係数を変更する付記9に記載の解探索装置。
 この出願は、2013年1月25日に出願された日本特許出願2013-011628を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 1 ユーザ端末
 2 最適化装置
 11 操作部
 12 表示部
 21 GUI部
 22 計算部
 23 記憶部
 101 実行部
 102 更新部
 103、225 枝刈部
 221 選択部
 222 拡大部
 223 シミュレーション部
 224 評価値更新部
 2251 第1の枝刈部
 2252 第2の枝刈部

Claims (10)

  1.  シミュレーションを用いた解探索において、探索木中の選択肢となるノードの中からシミュレーションの実行対象となるノードを選択し、選択された前記ノードからシミュレーションを実行する実行部と、
     シミュレーション結果をもとに、評価関数を用いて評価値を算出し、当該評価値をもとに、選択された前記ノードおよびその上位ノードの評価値を更新する更新部と、
     予め定められた基準を満たさない評価値を持つノードを探索木から切り離す枝刈部とを含む
     ことを特徴とする解探索装置。
  2.  枝刈部は、指定された計算時間をもとに、枝刈を実行する時間間隔を決定し、当該時間間隔にもとづいて、予め定められた基準を満たさない評価値を持つノードを探索木から切り離す処理を実行する
     請求項1に記載の解探索装置。
  3.  枝刈部は、解探索の時間の経過とともに、枝刈を実行する時間間隔を徐々に短くする
     請求項2に記載の解探索装置。
  4.  枝刈部は、探索木の大きさが一定の大きさを超えたときに、予め定められた基準を満たさない評価値を持つノードを探索木から切り離す
     請求項1から請求項3のうちのいずれか1項に記載の解探索装置。
  5.  枝刈部は、時間間隔にもとづく枝刈と探索木の大きさにもとづく枝刈とで、別々の評価値を用いる
     請求項4に記載の解探索装置。
  6.  枝刈部は、実行部がノードを選択するときに用いる評価値とは別の評価値にもとづいて、ノードを探索木から切り離すか否かを判定する
     請求項1から請求項5のうちのいずれか1項に記載の解探索装置。
  7.  更新部は、シミュレーション結果をもとに、複数の評価関数を用いて、前記複数の評価関数ごとに評価値を算出し、算出した各評価値の調和平均を総合評価値として算出し、前記総合評価値をもとに、選択されたノードおよびその上位ノードの評価値を更新し、
     枝刈部は、前記総合評価値をもとにノードを探索木から切り離すか否かを判定する
     請求項1から請求項6のうちのいずれか1項に記載の解探索装置。
  8.  更新部は、探索木の深さに応じて、調和平均を算出する際の各評価値に対する重み係数を変更する
     請求項7に記載の解探索装置。
  9.  シミュレーションを用いた解探索において、探索木中の選択肢となるノードの中からシミュレーションの実行対象となるノードを選択し、選択された前記ノードからシミュレーションを実行し、
     シミュレーション結果をもとに、評価関数を用いて評価値を算出し、当該評価値をもとに、選択された前記ノードおよびその上位ノードの評価値を更新し、
     予め定められた基準を満たさない評価値を持つノードを探索木から切り離す
     ことを特徴とする解探索方法。
  10.  コンピュータに、
     シミュレーションを用いた解探索において、探索木中の選択肢となるノードの中からシミュレーションの実行対象となるノードを選択し、選択された前記ノードからシミュレーションを実行する処理と、
     シミュレーション結果をもとに、評価関数を用いて評価値を算出し、当該評価値をもとに、選択された前記ノードおよびその上位ノードの評価値を更新する処理と、
     予め定められた基準を満たさない評価値を持つノードを探索木から切り離す処理とを
     実行させるための解探索プログラム。
PCT/JP2013/007673 2013-01-25 2013-12-27 解探索装置、解探索方法および解探索プログラム Ceased WO2014115232A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US14/759,598 US20150347649A1 (en) 2013-01-25 2013-12-27 Solution search device, solution search method, and solution search program
JP2014558303A JP6222114B2 (ja) 2013-01-25 2013-12-27 解探索装置、解探索方法および解探索プログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013011628 2013-01-25
JP2013-011628 2013-01-25

Publications (1)

Publication Number Publication Date
WO2014115232A1 true WO2014115232A1 (ja) 2014-07-31

Family

ID=51227049

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/007673 Ceased WO2014115232A1 (ja) 2013-01-25 2013-12-27 解探索装置、解探索方法および解探索プログラム

Country Status (3)

Country Link
US (1) US20150347649A1 (ja)
JP (1) JP6222114B2 (ja)
WO (1) WO2014115232A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020009122A (ja) * 2018-07-06 2020-01-16 国立研究開発法人産業技術総合研究所 制御プログラム、制御方法及びシステム
EP3621001A1 (en) 2018-09-04 2020-03-11 Hitachi, Ltd. Solution searching device
WO2025126647A1 (ja) * 2023-12-12 2025-06-19 富士フイルム株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
WO2025126648A1 (ja) * 2023-12-12 2025-06-19 富士フイルム株式会社 情報処理装置、情報処理方法、及び情報処理プログラム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6889087B2 (ja) * 2017-10-25 2021-06-18 株式会社デンソーアイティーラボラトリ 行列分解装置及び行列分解方法
US10970127B1 (en) * 2020-02-11 2021-04-06 Verizon Patent And Licensing Inc. Systems and methods for virtual machine resource optimization using machine learning techniques
US10915372B1 (en) 2020-02-11 2021-02-09 Verizon Patent And Licensing Inc. Systems and methods for virtual machine resource optimization using tree traversal techniques representing alternate configurations

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011027910A (ja) * 2009-07-23 2011-02-10 Kddi Corp パターン認識方法および装置ならびにパターン認識プログラムおよびその記録媒体

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2505980B2 (ja) * 1993-04-16 1996-06-12 インターナショナル・ビジネス・マシーンズ・コーポレイション 静的辞書作成方法及びコンピュ―タ実行システム
JPH09114849A (ja) * 1995-10-16 1997-05-02 N T T Data Tsushin Kk 木探索装置及び木探索方法
US8838510B2 (en) * 2011-09-16 2014-09-16 International Business Machines Corporation Choosing pattern recognition algorithms and data features using a genetic algorithm

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011027910A (ja) * 2009-07-23 2011-02-10 Kddi Corp パターン認識方法および装置ならびにパターン認識プログラムおよびその記録媒体

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CAMERON B. BROWNE ET AL.: "A Survey of Monte Carlo Tree Search Methods", IEEE TRANSACTIONS ON COMPUTATIONAL INTELLIGENCE AND AI IN GAMES, vol. 4, no. 1, March 2012 (2012-03-01), pages 1 - 43 *
KENDAI IJIRI ET AL.: "A Method to Assess Suitability of Solution Space for Simulated Annealing", IPSJ SIG NOTES, vol. 2002, no. 19, 5 March 2002 (2002-03-05), pages 33 - 36 *
RYUHEI KITAGAWA ET AL.: "Pruning in UCT search based on limitedness of computational resource", DAI 13 KAI GAME PROGRAMMING WORKSHOP 2008 RONBUNSHU, vol. 2008, no. 11, 31 October 2008 (2008-10-31), pages 46 - 53 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020009122A (ja) * 2018-07-06 2020-01-16 国立研究開発法人産業技術総合研究所 制御プログラム、制御方法及びシステム
JP7093547B2 (ja) 2018-07-06 2022-06-30 国立研究開発法人産業技術総合研究所 制御プログラム、制御方法及びシステム
EP3621001A1 (en) 2018-09-04 2020-03-11 Hitachi, Ltd. Solution searching device
WO2025126647A1 (ja) * 2023-12-12 2025-06-19 富士フイルム株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
WO2025126648A1 (ja) * 2023-12-12 2025-06-19 富士フイルム株式会社 情報処理装置、情報処理方法、及び情報処理プログラム

Also Published As

Publication number Publication date
US20150347649A1 (en) 2015-12-03
JP6222114B2 (ja) 2017-11-01
JPWO2014115232A1 (ja) 2017-01-19

Similar Documents

Publication Publication Date Title
JP6222114B2 (ja) 解探索装置、解探索方法および解探索プログラム
CN113326852B (zh) 模型训练方法、装置、设备、存储介质及程序产品
EP3327592A1 (en) Information processing method, information processing apparatus, and non-transitory recording medium
JP2019096313A (ja) 情報処理方法及び情報処理装置
JP2014160457A (ja) 対話的変数選択装置、対話的変数選択方法および対話的変数選択プログラム
JP2016012285A (ja) 情報処理装置、情報処理方法、及びプログラム
RU2006117318A (ru) Устройство анализа характеристик документа для документа, который должен исследоваться
CN114003306A (zh) 一种显存优化方法、装置、设备及存储介质
JPWO2014087590A1 (ja) 最適化装置、最適化方法および最適化プログラム
JP2018173909A (ja) 学習プログラム、学習方法および学習装置
JP2009237923A (ja) 学習方法およびシステム
JP2010009518A (ja) パターン検出器の学習装置、学習方法及びプログラム
WO2021090484A1 (ja) 学習装置、情報統合システム、学習方法、及び、記録媒体
JP5964781B2 (ja) 検索装置、検索方法および検索プログラム
US20250322284A1 (en) Non-transitory computer-readable recording medium, calculation method and information processing device
WO2020039790A1 (ja) 情報処理装置、情報処理方法及びプログラム
CN112740237A (zh) 训练人工神经网络的方法和装置
JP2014142849A (ja) 解探索装置、解探索方法および解探索プログラム
JP2014142848A (ja) 解探索装置、解探索方法および解探索プログラム
KR20190040864A (ko) 부호화된 방향성 네트워크에서의 표현 학습 방법 및 장치
JP6005583B2 (ja) 検索装置、検索方法および検索プログラム
JP7489275B2 (ja) 情報処理装置、情報処理システムおよび情報処理方法
JP7024502B2 (ja) ニーポイント選択プログラム、ニーポイント選択方法およびニーポイント選択装置
JP2018147100A (ja) 単語学習装置、単語学習方法、及び単語学習プログラム
JP2010055253A (ja) 不要語決定装置及びプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13872813

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014558303

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14759598

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13872813

Country of ref document: EP

Kind code of ref document: A1