Program, data processing apparatus, and data processing method
A hybrid method combining metaheuristic and branch and bound techniques fixes state variables and uses evaluation function values to enhance integer programming solution efficiency, addressing the inefficiencies of large-scale branch and bound methods.
Patent Information
- Application Number
- JP2024111464
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-07-11
- Publication Date
- 2026-01-23
AI Technical Summary
The branch and bound method, an exact solution method for integer programming problems, becomes inefficient as problem scale increases, leading to prolonged calculation times and suboptimal solution performance.
A hybrid approach combining a metaheuristic method for a first solution search and a branch and bound method for a second solution search, where some state variables are fixed based on information from subproblems, and branch and cut operations are performed using evaluation function values from the first search to improve efficiency.
This hybrid method enhances the performance of solving integer programming problems by narrowing the search space and improving solution-finding efficiency through parallel processing and informed branch and cut operations.
Smart Images

Figure 2026011128000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a program, a data processing device, and a data processing method. [Background technology]
[0002] Metaheuristic methods are solution-finding techniques that obtain approximate solutions to integer programming problems in a practical amount of time. Examples of metaheuristic methods include local search and greedy methods (see, for example, Non-Patent Document 1). On the other hand, branch-and-bound methods that obtain exact solutions to integer programming problems are also used. To use branch-and-bound methods more efficiently, a technique called branch-and-cut (or pruning) is sometimes used (see, for example, Patent Documents 1 and 2). [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Publication No. 7-319848 [Patent Document 2] International Publication No. 2022 / 097317 [Non-patent literature]
[0004] [Non-Patent Document 1] Shunji Umetani, “Exploiting variable associations to configure efficient local search algorithms in large-scale binary integer programs”, [online], May 2017, [Retrieved June 6, 2024], Internet<https: / / arxiv.org / pdf / 1604.08448> Summary of the Invention [Problem to be solved by the invention]
[0005] The branch and bound method is an exact solution method that finds an exact solution, so as the problem scale increases, the calculation time becomes longer, and it is difficult to sufficiently improve the solution performance for integer programming problems. In one aspect, the present invention aims to improve solution performance. [Means for solving the problem]
[0006] In one embodiment, a program is provided that causes a computer to execute a process of performing a first solution search for an integer programming problem including a plurality of state variables using a metaheuristic method, and performing a second solution search for the linearly relaxed integer programming problem using a branch and bound method, wherein, based on information on first solutions calculated for each of a plurality of subproblems obtained by branching operations in the second solution search, some state variables among the plurality of state variables whose values are fixed in any of the plurality of subproblems, the first solution search is performed with the values of the identified some state variables fixed, and branch and cut in the second solution search is performed using a first evaluation function value of a second solution obtained by the first solution search.
[0007] Also provided in one embodiment is a data processing device. Also, in one embodiment, a data processing method is provided. [Effects of the Invention]
[0008] In one aspect, the performance of solving integer programming problems can be improved. [Brief explanation of the drawings]
[0009] [Figure 1] 1 illustrates an example of a data processing device and a data processing method according to a first embodiment; [Figure 2] FIG. 10 is a diagram illustrating an example of a second solution search and branch-and-cut using the branch-and-bound method. [Figure 3] FIG. 10 is a block diagram illustrating an example of hardware of a data processing device according to a second embodiment. [Figure 4]FIG. 2 is a block diagram illustrating an example of functions of a data processing device. [Figure 5] FIG. 10 is a diagram illustrating an example of node information and state variables of a fixed target. [Figure 6] 10 is a flowchart showing a processing procedure of an example of a solution search using a metaheuristic method in a data processing device. [Figure 7] 10 is a flowchart showing a processing procedure of an example of a solution search using a branch and bound method in a data processing device. DETAILED DESCRIPTION OF THE INVENTION
[0010] Hereinafter, embodiments of the invention will be described with reference to the drawings. (First embodiment) FIG. 1 illustrates an example of a data processing device and a data processing method according to the first embodiment.
[0011] The data processing device 10 of the first embodiment includes a storage unit 11 and a processing unit 12. The storage unit 11 is a volatile storage device (for example, an electronic circuit such as a dynamic random access memory (DRAM)) or a non-volatile storage device (for example, an electronic circuit such as a flash memory, or an HDD (Hard Disk Drive)). The storage unit 11 may include an electronic circuit such as a register. The storage unit 11 stores problem information 11a and solution sharing data 11b for integer programming problems.
[0012] Integer programming problems are problems that can be used to formulate various combinatorial optimization problems, such as the traveling salesman problem, the knapsack problem, and the scheduling problem. The evaluation function (also called objective function) of the n-variable binary integer linear optimization problem, which is an example of an integer programming problem, can be expressed by the following equation (1).
[0013]
number
[0014] Furthermore, the constraints of a binary integer linear optimization problem with n variables can be expressed, for example, by the following equation (2).
[0015]
number
[0016] x j is a state variable with an identification number j (j=1,...,n) and is either 0 or 1. j is x j The cost is related to ij is a coefficient that is 1 when a constraint with identification number i (i = 1, ..., m) is imposed on the state variable with identification number j, and is 0 when it is not imposed. i is the coefficient for the constraint with identification number i.
[0017] The n-variable binary integer linear optimization problem is a problem of searching for a solution that minimizes or maximizes the evaluation function value expressed by equation (1) among solutions that satisfy the constraints expressed by equation (2). The binary integer linear optimization problem of n variables expressed by equations (1) and (2) can be solved by reducing it to unconstrained optimization of the evaluation function expressed by the following equation (3).
[0018]
number
[0019] In equation (3), w i is a positive real number that represents the weight of the constraint with identification number i. The problem information 11a stored in the storage unit 11 is, in the case of an integer programming problem expressed by the above-mentioned formulas (1), (2), and (3), a ij ,b i ,c j ,w i Includes.
[0020] The solution shared data 11b includes best tentative solution information 11b1 obtained by a first solution search performed using a metaheuristic method and a second solution search performed using a branch and bound method, and further includes node information 11b2 obtained by the branch and bound method.
[0021] The best tentative solution information 11b1 includes a solution (best tentative solution) that has the best evaluation function value among the integer solutions (tentative solutions) obtained at a certain point in the first and second solution searches, and the best value. In the case of a problem that minimizes the evaluation function value, the best tentative solution is a solution that has the smallest evaluation function value among the tentative solutions obtained at a certain point in the first and second solution searches. An integer tentative solution is a solution in which the values of all state variables are integers (for example, 0 or 1).
[0022] The node information 11b2 is information on the solutions (hereinafter referred to as node solutions) calculated for each of the multiple subproblems obtained by the branching operation in the second solution search. As will be described later, in the first solution search using the branch and bound method, the integer linear problem is linearly relaxed and non-integer values are allowed as solutions to the subproblems, so each subproblem is sometimes called a relaxed problem.
[0023] A node solution for a certain subproblem is a solution for which the evaluation function value is the best value (or the lower bound value in the case of a problem for minimizing the evaluation function value) for that subproblem. In addition to the node solution, the node information 11b2 includes, for example, the evaluation function value of that node solution and identification information of state variables whose values are fixed in the subproblem. Note that the node solution is sometimes called a relaxed solution because non-integer values are allowed.
[0024] The best tentative solution information 11b1 and the node information 11b2 are data shared in both the first solution search using the metaheuristic method and the second solution search using the branch and bound method, which will be described later.
[0025] The storage unit 11 may store various data such as calculation conditions when the processing unit 12 executes a data processing method described below. When the processing unit 12 executes part or all of the processing of the data processing method described below using software, the storage unit 11 stores a program for executing the processing.
[0026] 1 can be realized by a processor, which is hardware such as a central processing unit (CPU), a graphics processing unit (GPU), or a digital signal processor (DSP). The processor may have multiple processor cores. Furthermore, the processing unit 12 may include multiple processors. Furthermore, the processing unit 12 may be realized using an electronic circuit such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA).
[0027] The processing unit 12 performs a first solution search for the integer programming problem using a metaheuristic method, and also performs a second solution search for the linearly relaxed integer programming problem using a branch and bound method, which is an exact solution method. Examples of metaheuristic methods include a local search method and a greedy method.
[0028] The local search method is a method in which, when there is an improved solution (for example, a solution with a smaller evaluation function value than the current solution) near the current solution, the current solution is replaced with that improved solution. Examples of local search methods include the MCMC (Markov Chain Monte Carlo) method and the rejection-free method. The MCMC method is a method that probabilistically determines the next nearby solution to transition to from among multiple nearby solutions. The rejection-free method is a type of MCMC method in which transitions are not rejected in each trial.
[0029] The greedy method is a method for minimizing an evaluation function value by repeatedly inverting the value of the state variable that minimizes the change in the evaluation function value when all state variables are changed, including the direction in which the evaluation function value increases, and setting the next state as the inverted value. An example of a greedy method is the tabu search method. The tabu search method is a method that prevents the solution from becoming the same local solution by prohibiting changes to the value of state variables whose values have changed for a certain period of time.
[0030] The local search method and the greedy method can also be combined. For example, in equation (3), the weight of the constraint, w i There is a method to search for a solution while updating w i When updating, the evaluation function changes, so w i The local optimum after the update is w i It is not the local optimum before updating. i By combining the dynamic update of and the greedy algorithm, it is possible to escape from a local optimum solution. In addition, if the evaluation function is linear and there are no constraints, the coefficient of the evaluation function (c j ) is the trivial optimal solution when non-negative state variables are set to 0 and negative state variables are set to 1.
[0031] In the branch and bound method, the state variable x j The condition that is an integer is relaxed, and a solution (node solution) of the relaxed integer programming problem (linearly relaxed integer programming problem) is found in the real number range between 0 and 1. If the node solution is not an integer solution, one non-integer state variable is selected, and two subproblems are generated with the value of that state variable fixed to 0 or 1. Then, a node solution is found for each subproblem. This process is repeated until an integer solution is obtained. The operation of dividing (branching) a problem into two subproblems in this way is called a branching operation.
[0032] Incidentally, the evaluation function values of the two node solutions obtained by the branching operation have the property that they are the same as or worse than the evaluation function value of the node solution of the subproblem before branching. By utilizing this property, the branch and bound method omits further branching operations for subproblems that obtain a node solution with an evaluation function value worse than the best value of the evaluation function obtained so far (the minimum value in the case of a problem to minimize the evaluation function value). The operation of omitting such branching operations is called branch and cut or pruning. Note that branching operations are also omitted when the node solution of a certain subproblem is an infeasible solution (a solution that does not satisfy the constraints shown in equation (2)).
[0033] In the example of FIG. 1, the processing unit 12 includes a metaheuristic search unit 12a that performs a first solution search for an integer programming problem using a metaheuristic method, and an exact solution search unit 12b that performs a second solution search for a linearly relaxed integer programming problem using a branch and bound method. The metaheuristic search unit 12a and the exact solution search unit 12b can be implemented, for example, on different processor cores. The metaheuristic search unit 12a and the exact solution search unit 12b can simultaneously execute the first solution search using the metaheuristic method and the second solution search using the branch and bound method in parallel. The metaheuristic search unit 12a and the exact solution search unit 12b share solution shared data 11b.
[0034] The metaheuristic search unit 12a identifies some state variables whose values are fixed in any of the subproblems among the state variables that express a solution to the integer programming problem based on the node information 11b2. Then, the metaheuristic search unit 12a performs a first solution search with the values of the identified some state variables fixed.
[0035] For example, the metaheuristic search unit 12a performs a first solution search while fixing the values of state variables that are fixed in a subproblem that has the best node solution among multiple subproblems. By fixing the state variables that are fixed in a subproblem for which such a good node solution has been obtained at the same values in the first solution search by the metaheuristic search unit 12a, the possibility of obtaining a better tentative solution increases.
[0036] The subproblem with the best node solution is the subproblem with the best evaluation function value among the multiple subproblems indicated by the node information 11b2. The metaheuristic search unit 12a may perform a first solution search using such a node solution as an initial solution.
[0037] By performing a first solution search while fixing the values of some state variables whose values are fixed in any of the multiple subproblems, the search space can be narrowed, and the first solution search can be performed efficiently.
[0038] Furthermore, if the first solution search results in a solution having a better evaluation function value than the best provisional solution to date, the metaheuristic search unit 12a updates the best provisional solution information 11b1 in the solution shared data 11b.
[0039] On the other hand, the exact solution search unit 12b of the processing unit 12 performs branch and cut in the second solution search using the branch and bound method, based on the best tentative solution information 11b1, using the evaluation function value of the solution obtained by the first solution search using the metaheuristic method.
[0040] For example, if a minimum tentative solution has been obtained by the first solution search, the exact solution search unit 12b compares the evaluation function value of the node solution calculated for the subproblem obtained by the branching operation in the second solution search with the evaluation function value of the best tentative solution. Then, based on the comparison result, the exact solution search unit 12b determines whether the best tentative solution is a better solution than the node solution. If the exact solution search unit 12b determines that the best tentative solution is a better solution than the node solution, it performs a branch cut by omitting the branching operation for the subproblem obtained by the branching operation.
[0041] In the case of a problem of minimizing the evaluation function value of formula (1) or formula (3), if the evaluation function value of formula (3) is smaller than the evaluation function value of the node solution of the subproblem obtained by the second solution search, the branching operation for that subproblem is omitted. Note that the exact solution search unit 12b may also perform branch-cut when the evaluation function value or evaluation function value of the best tentative solution and the node solution are the same.
[0042] Furthermore, if the best tentative solution is the tentative solution in the second solution search, the exact solution search unit 12b performs branch-cut using the evaluation function value of the tentative solution. FIG. 2 is a diagram showing an example of a second solution search and branch-and-cut using the branch-and-bound method.
[0043] First, a node solution that minimizes the evaluation function value is found for node n0, which represents the original relaxed problem (an integer programming problem with relaxed conditions). If the node solution for node n0 has one or more non-integer state variables, one of the one or more non-integer state variables is selected. In the example in Figure 2, x1 is selected. Then, two subproblems (nodes n1 and n2) are generated in which the value of x1 is fixed to 0 or 1, and a node solution is found for each.
[0044] If the node solution for node n1 has one or more non-integer state variables, one of the one or more non-integer state variables is selected. Such a node solution is called a relaxed solution. In the example in Figure 2, x2 is selected. Then, two subproblems (nodes n3 and n4) are generated in which the value of x2 is fixed to 0 or 1, and a node solution is found for each of them. Similarly, if the node solution for node n2 has one or more non-integer state variables, one of the one or more non-integer state variables is selected. In the example in Figure 2, x2 is selected. Then, two subproblems (nodes n5 and n6) are generated in which the value of x2 is fixed to 0 or 1, and a node solution is found for each of them.
[0045] The branching operation described above is repeated, and in the example of Figure 2, nodes n7 to n20 are further generated. However, when a node solution (tentative solution) that is an integer solution is obtained, branching is not performed for that node. In the example of Figure 2, the node solution for node n7 is the tentative solution. Also, branching is not performed for nodes that have node solutions (infeasible solutions) that do not satisfy the constraints. In the example of Figure 2, the node solutions for nodes n12, n14, n18, and n19 are infeasible solutions.
[0046] Furthermore, if the best tentative solution is judged to be better than the node solution based on the comparison result between the best value, which is the evaluation function value of the best tentative solution, and the evaluation function value of the node solution of a certain node, branching for that node is not performed. In other words, a branch cut is performed. In Figure 2, the best value is z best For example, if the tentative solution at node n7 is determined to be the best tentative solution and to be a better solution than the node solution at node n16, a branch cut is performed for node n16.
[0047] Furthermore, the evaluation function value (z best In the example of Figure 2, the best tentative solution obtained in the first solution search is determined to be a better solution than the node solutions of nodes n10, n13, and n20, and branch-cut is performed for nodes n10, n13, and n20.
[0048] By performing branch-and-cut using the evaluation function value of the solution obtained by the metaheuristic method in this way, branch-and-cut is performed efficiently, and the solution-finding performance of the second solution search using the branch-and-bound method is improved.
[0049] The first and second solution searches are repeated as described above, and when a predetermined search termination condition is satisfied, the processing of the data processing device 10 ends. At this time, the data processing device 10 may output, for example, the best tentative solution included in the best tentative solution information 11b1 as a solution search result for the integer programming problem. The solution search result may include an evaluation function value corresponding to the best tentative solution.
[0050] As described above, the data processing device 10 performs a first solution search for an integer programming problem including multiple state variables using a metaheuristic method, and performs a second solution search for a linearly relaxed integer programming problem using a branch-and-bound method. Based on the node information 11b2, the data processing device 10 identifies some of the multiple state variables whose values are fixed in any of the multiple subproblems, and performs the first solution search while keeping the values of the identified some state variables fixed. Furthermore, the data processing device 10 performs branch-and-cut in the second solution search using the evaluation function value of the solution obtained by the first solution search. This improves the efficiency of both the first and second solution searches, thereby improving solution-finding performance.
[0051] The metaheuristic search unit 12a may have multiple search units that perform first solution searches using the same or different types of metaheuristic methods. In this case, the exact solution search unit 12b may perform branch-and-cut using the provisional solution with the best evaluation function value among the provisional solutions calculated by the multiple search units that perform first solution searches.
[0052] (Second embodiment) FIG. 3 is a block diagram illustrating an example of hardware of a data processing device according to the second embodiment.
[0053] The data processing device 20 is, for example, a computer, and includes a processor 21, a RAM 22, a HDD 23, a GPU 24, an input interface 25, a media reader 26, and a communication interface 27. The above units are connected to a bus.
[0054] The processor 21 is a processor such as a GPU or CPU that includes an arithmetic circuit that executes program instructions. The processor 21 loads at least a portion of the program and data stored in the HDD 23 into the RAM 22 and executes the program. The processor 21 may include multiple processor cores. The data processing device 20 may also include multiple processors. A set of multiple processors (multiprocessor) may also be called a "processor."
[0055] The RAM 22 is a volatile semiconductor memory that temporarily stores programs executed by the processor 21 and data used in calculations by the processor 21. Note that the data processing device 20 may include a type of memory other than the RAM 22, or may include multiple memories.
[0056] The HDD 23 is a nonvolatile storage device that stores software programs such as an OS (Operating System), middleware, and application software, as well as data. The programs include, for example, a program that causes the data processing device 20 to execute a process of searching for a solution to an integer programming problem using a metaheuristic method and a branch-and-bound method. Note that the data processing device 20 may also include other types of storage devices, such as a flash memory or an SSD (Solid State Drive), or may include multiple nonvolatile storage devices.
[0057] The GPU 24 outputs an image to a display 24a connected to the data processing device 20 in accordance with an instruction from the processor 21. The display 24a may be a CRT (Cathode Ray Tube) display, a liquid crystal display (LCD: Liquid Crystal Display), a plasma display (PDP: Plasma Display Panel), an organic EL (OEL: Organic Electro-Luminescence) display, or the like.
[0058] The input interface 25 receives an input signal from an input device 25a connected to the data processing device 20 and outputs the signal to the processor 21. The input device 25a may be a pointing device such as a mouse, a touch panel, a touch pad, or a trackball, a keyboard, a remote controller, or a button switch. Multiple types of input devices may be connected to the data processing device 20.
[0059] The medium reader 26 is a reading device that reads programs and data recorded on a recording medium 26a. For example, a magnetic disk, an optical disk, a magneto-optical disk (MO: Magneto-Optical disk), or a semiconductor memory can be used as the recording medium 26a. Magnetic disks include flexible disks (FD: Flexible Disks) and HDDs. Optical disks include compact discs (CDs) and digital versatile discs (DVDs).
[0060] The medium reader 26 copies programs and data read from the recording medium 26a to another recording medium such as the RAM 22 or the HDD 23. The read programs are executed by the processor 21, for example. The recording medium 26a may be a portable recording medium and may be used to distribute programs and data. The recording medium 26a and the HDD 23 may also be referred to as computer-readable recording media.
[0061] The communication interface 27 is connected to a network 27a and communicates with other information processing devices via the network 27a. The communication interface 27 may be a wired communication interface connected to a communication device such as a switch via a cable, or may be a wireless communication interface connected to a base station via a wireless link.
[0062] Next, the function of the data processing device 20 will be described. FIG. 4 is a block diagram illustrating an example of functions of the data processing device. The data processing device 20 includes a problem information storage unit 31, a metaheuristic solver execution unit 32, an exact solution solver execution unit 33, a solution sharing data storage unit , and an output unit .
[0063] These realize the same functions as the storage unit 11 and processing unit 12 shown in FIG. The problem information storage unit 31 and the solution shared data storage unit 34 are implemented using storage areas secured in the RAM 22 or the HDD 23. The metaheuristic solver execution unit 32, the exact solver execution unit 33, and the output unit 35 can be implemented using program modules executed by the processor 21, for example.
[0064] The metaheuristic solver execution unit 32 and the exact solver execution unit 33 may each be implemented by one or more different processor cores in the processor 21. For example, if the processor 21 includes eight processor cores, the metaheuristic solver execution unit 32 may be implemented by four processor cores, and the exact solver execution unit 33 may be implemented by the other four processor cores.
[0065] The problem information storage unit 31 stores problem information for integer programming problems. When the integer programming problem to be calculated is expressed by Equation (1), Equation (2), and Equation (3), the problem information includes: ij ,b i ,c j ,w iThe question information may be input by a user operating the input device 25a and stored in the question information storage unit 31, or may be input via the recording medium 26a or the network 27a and stored in the question information storage unit 31.
[0066] The metaheuristic solver execution unit 32 acquires the problem information and searches for a solution to the integer programming problem using a metaheuristic method such as a local search method or a greedy search method. Here, the metaheuristic solver execution unit 32 performs a solution search while fixing the values of some state variables, among the multiple state variables, whose values are fixed in the subproblems, based on the node information 34b.
[0067] For example, the metaheuristic solver execution unit 32 performs inter-process communication and periodically acquires node information 34b from the solution-shared data storage unit 34. The metaheuristic solver execution unit 32 sets the best node solution (the node solution with the best evaluation function value) among the node solutions calculated for each of the multiple subproblems included in the acquired node information 34b as the initial solution. Then, based on the node information 34b, the metaheuristic solver execution unit 32 performs a solution search while fixing the values of state variables that are fixed in the subproblem having the best node solution.
[0068] FIG. 5 is a diagram illustrating an example of node information and state variables of fixed targets. The node information 34b includes information on node solutions for the nodes n1 to n3 corresponding to the three subproblems. The node solution information for the nodes n1 to n3 includes state variables whose values are fixed at each node, their values, and evaluation function values of the node solutions. Although the node solutions themselves are not shown in the example of FIG. 5, the node information 34b may include the node solutions.
[0069] In the example of FIG. 5, the node solution at node n2 has the smallest evaluation function value. In the case of a problem in which the evaluation function value is to be minimized, the node solution at node n2 is the best among nodes n1 to n3. In this case, the metaheuristic solver execution unit 32 uses this node solution as the initial solution, fixes the values of x1 to x3 as x1 = 0, x2 = 0, and x3 = 1, and performs a predetermined number of trial (e.g., 30 trials) to search for a solution. This increases the possibility of obtaining a solution with a smaller evaluation function value in the solution search using the metaheuristic method.
[0070] Since the node solution for node n3 is infeasible, the original integer programming problem is also infeasible. Therefore, the metaheuristic solver execution unit 32 may add a new inequality constraint, x1 + x2 + x3 ≦ 2, as a constraint condition.
[0071] The metaheuristic solver execution unit 32 may execute solution searches in parallel using a plurality of metaheuristic methods of the same type or different types. The exact solution solver execution unit 33 searches for a solution to the integer programming problem using a branch and bound method, which is one of the exact solution methods. The exact solution solver execution unit 33 performs branch and cut based on the best tentative solution information 34a. For example, the exact solution solver execution unit 33 determines whether the best tentative solution is better than the node solution based on the comparison result between the evaluation function value of the node solution calculated for the subproblem obtained by the branching operation and the evaluation function value of the best tentative solution. If the exact solution solver execution unit 33 determines that the best tentative solution is better than the node solution, it performs branch and cut by omitting the branching operation for the subproblem (see FIG. 2 above). Note that the exact solution solver execution unit 33 may also perform branch and cut when the evaluation function values of the best tentative solution and the node solution are the same.
[0072] The solution shared data storage unit 34 stores best tentative solution information 34a and node information 34b. The best tentative solution information 34a includes information on the best solution (best tentative solution) among the tentative solutions obtained in the solution search using the metaheuristic method and the tentative solutions obtained in the solution search using the branch and bound method. In the case of a problem of minimizing an evaluation function value, the best tentative solution is the solution with the smallest evaluation function value among the tentative solutions obtained at a certain point in both solution searches. The node information 34b is information on node solutions calculated for subproblems obtained by branching operations in the solution search using the branch and bound method. In addition to the node solution, the node information 34b includes, for example, the evaluation function value of the node solution and identification information of state variables whose values are fixed in the node solution.
[0073] The output unit 35 outputs the solution search result of the integer programming problem when the search termination condition is satisfied. The output unit 35 outputs, for example, best tentative solution information 34a stored in the solution shared data storage unit 34 as the solution search result. The output unit 35 may, for example, output the calculation result to be displayed on the display 24a, transmit it to another information processing device via the network 27a, or store it in an external storage device.
[0074] Next, the processing procedure of the data processing device 20 will be described. (Processing Procedure) Fig. 6 is a flowchart showing an example of a processing procedure for a solution search using a metaheuristic method in a data processing device. Note that in the example of Fig. 6, an example of applying a local search is shown as an example of the metaheuristic method.
[0075] Step S10: The metaheuristic solver execution unit 32 searches for a solution to the integer programming problem by local search. In the local search, for example, a process of determining whether to allow a change in the value of a state variable based on the amount of change in the value of the evaluation function expressed by the above-mentioned formula (3) when the value of the state variable is changed is repeated a predetermined number of times. For example, among the combinations of state variables obtained in the predetermined number of attempts, the combination that minimizes the evaluation function value becomes the tentative solution of the local search.
[0076] If the state variables to be fixed are identified in the process of step S15, the local search is performed in the process of step S10 with the values of the state variables to be fixed fixed.
[0077] Step S11: The metaheuristic solver execution unit 32 determines whether the tentative solution is better than the current best tentative solution indicated in the best tentative solution information 34a. If the metaheuristic solver execution unit 32 determines that the tentative solution is better than the best tentative solution, the process proceeds to step S12. If the metaheuristic solver execution unit 32 determines that the tentative solution is not better than the best tentative solution, the process proceeds to step S13.
[0078] Step S12: The metaheuristic solver execution unit 32 updates the best tentative solution information 34a stored in the solution shared data storage unit 34 using information on the tentative solution obtained in the current local search.
[0079] Step S13: The metaheuristic solver execution unit 32 determines whether it is time to acquire the node information 34b. The metaheuristic solver execution unit 32 determines at regular intervals (for example, every predetermined number of attempts) that it is time to acquire the node information 34b.
[0080] If the metaheuristic solver execution unit 32 determines that it is time to acquire the node information 34b, the process proceeds to step S14. If the metaheuristic solver execution unit 32 determines that it is not time to acquire the node information 34b, the process proceeds to step S16.
[0081] Step S14: The metaheuristic solver execution unit 32 acquires the node information 34b from the solution shared data storage unit 34. Step S15: Based on the node information 34b, the metaheuristic solver execution unit 32 identifies the state variables that are fixed in the subproblem with the best node solution among the multiple subproblems as state variables to be fixed. The metaheuristic solver execution unit 32 also sets the best node solution as the initial solution for the next local search. Then, the process from step S10 is repeated.
[0082] Step S16: The metaheuristic solver execution unit 32 determines whether a termination condition for the solution search is satisfied. For example, the metaheuristic solver execution unit 32 determines that the termination condition is satisfied when a predetermined time limit is reached or a solution known as an optimal solution is obtained.
[0083] If the metaheuristic solver execution unit 32 determines that the termination condition for the solution search is satisfied, the process proceeds to step S17. If the metaheuristic solver execution unit 32 determines that the termination condition for the solution search is not satisfied, the process repeats from step S10.
[0084] Step S17: The output unit 35 outputs the solution search result. For example, the output unit 35 outputs the best tentative solution information 34a stored in the solution shared data storage unit 34 as the solution search result. This ends the solution search using the metaheuristic method.
[0085] FIG. 7 is a flowchart showing an example of a processing procedure for a solution search using the branch and bound method in a data processing device. Step S20: The exact solution solver execution unit 33 sets the subproblem list L to L={original problem}. The original problem is the original integer programming problem.
[0086] Step S21: The exact solution solver execution unit 33 determines whether the sub-problem list L is empty. If the exact solution solver execution unit 33 determines that the sub-problem list L is empty, the process of step S31 is performed. If the exact solution solver execution unit 33 determines that the sub-problem list L is not empty, the process of step S22 is performed.
[0087] Step S22: The exact solution solver execution unit 33 selects and extracts one sub-problem P from the sub-problem list L. Note that the original problem is extracted as the sub-problem P initially. Step S23: The exact solution solver execution unit 33 solves the subproblem P (relaxed problem). In the process of step S23, the node solution (x relax ) and its evaluation function value (z relax ) is required.
[0088] Step S24: The exact solution solver execution unit 33 determines whether the node solution is an infeasible solution. If the exact solution solver execution unit 33 determines that the node solution is an infeasible solution, it repeats the processing from step S22. If the exact solution solver execution unit 33 determines that the node solution is not an infeasible solution, it performs the processing of step S25.
[0089] Step S25: The exact solution solver execution unit 33 receives z from the solution sharing data storage unit 34. best Read out z best is the evaluation function value of the best provisional solution included in the best provisional solution information 34a.
[0090] Step S26: The exact solution solver execution unit 33 executes z relax ≧z best This determines whether the best tentative solution is better than the node solution. relax ≧z bestIf it is determined that the best tentative solution is better than the node solution, the best tentative solution is determined to be a better solution than the node solution. In this case, the generation of a new subproblem (branching operation) shown in step S29 described later is not performed, but branching is cut and the process from step S22 is repeated. relax ≧z best If it is determined that this is not the case, the process of step S27 is carried out.
[0091] Step S27: The exact solution solver execution unit 33 executes x relax The exact solution solver execution unit 33 determines whether x is an integer solution. relax If it is determined that x is an integer solution, the process of step S28 is performed. relax If it is determined that is not an integer solution, the process of step S29 is carried out.
[0092] Step S28: The exact solution solver execution unit 33 updates the best provisional solution information 34a stored in the solution sharing data storage unit 34. In the process of step S28, z relax Dez best is updated. After that, the process is repeated from step S22.
[0093] Step S29: The exact solution solver execution unit 33 calculates the non-integer state variable x i Two subproblems with fixed values of 0 and 1 are added to L. The process in step S29 corresponds to a branching operation.
[0094] Step S30: Information about the added subproblem (node) is added to the node information 34b stored in the solution-shared data storage unit 34. After that, the processing from step S21 is repeated.
[0095] Step S31: The output unit 35 outputs the solution search result. For example, the output unit 35 outputs the best tentative solution information 34a stored in the solution shared data storage unit 34 as the solution search result. This completes the solution search using the branch and bound method.
[0096] By performing the processes shown in Figures 6 and 7, the best interim solution can be obtained from the interim solutions obtained by the metaheuristic method and the branch-and-bound method.
[0097] The order of the processes shown in FIGS. 6 and 7 is an example, and the order of the processes may be changed as appropriate. As described above, the data processing device 20 performs a solution search for an integer programming problem using a metaheuristic method, and also performs a solution search for a linearly relaxed integer programming problem using a branch and bound method. The data processing device 20 performs a solution search using a metaheuristic method while fixing the values of some state variables, among the multiple state variables, whose values are fixed in any of the multiple subproblems, based on the node information 34b. Furthermore, the data processing device 20 performs branch and cut in the solution search using the branch and bound method, using the evaluation function value (best value) of the best tentative solution obtained by the solution search using the metaheuristic method. This improves the efficiency of the solution search by both methods, and can improve the solution-finding performance.
[0098] Furthermore, as shown in Figure 5, the metaheuristic solution search is performed with the values of some state variables fixed in the subproblem with the best node solution among multiple subproblems. This increases the possibility of obtaining a tentative solution with a smaller evaluation function value in the metaheuristic solution search.
[0099] Furthermore, in a solution search using the branch and bound method, information on the calculated node solutions (node information 34b) is stored in the solution-shared data storage unit 34. Then, in the solution search process using the metaheuristic method, the node information 34b is periodically acquired from the solution-shared data storage unit 34, and some state variables whose values are to be fixed are identified based on the node information 34b. As a result, for example, if information on a better node solution than before is added to the node information 34b, the values of the state variables that are fixed in the subproblem from which the node solution was obtained are fixed. This allows the solution search to be limited to a search space where a better solution is likely to exist, thereby further improving search efficiency.
[0100] As mentioned above, the above processing contents can be realized by causing the data processing device 20 to execute a program. The program can be recorded on a computer-readable recording medium (e.g., recording medium 26a). Examples of recording media that can be used include magnetic disks, optical disks, magneto-optical disks, and semiconductor memories. Magnetic disks include FDs and HDDs. Optical disks include CDs, CD-R (Recordable) / RW (Rewritable), DVDs, and DVD-R / RWs. The program may be recorded on a portable recording medium and distributed. In this case, the program may be copied from the portable recording medium to another recording medium (e.g., HDD 23) and executed.
[0101] While one aspect of the program, data processing device, and data processing method of the present invention has been described above based on the embodiment, these are merely examples and the present invention is not limited to the above description. [Explanation of symbols]
[0102] 10 Data Processing Device 11 Storage section 11a Question information 11b Solution sharing data 11b1 Best provisional solution information 11b2 Node Information 12 Processing section 12a Metaheuristic Search Section 12b Exact solution search section
Claims
1. A process for performing a first solution search for an integer programming problem including a plurality of state variables using a metaheuristic method, and performing a second solution search for a linearly relaxed integer programming problem using a branch and bound method, comprising: identifying, among the plurality of state variables, some state variables whose values are fixed in any of the plurality of subproblems based on information on first solutions calculated for each of the plurality of subproblems obtained by the branching operation in the second solution search; performing the first solution search while fixing the values of the identified part of the state variables; performing a branch-cut in the second solution search using a first evaluation function value of a second solution obtained by the first solution search; A program that causes a computer to perform a process.
2. determining whether the second solution is a better solution than the first solution based on a comparison result between a second evaluation function value of the first solution calculated for a first subproblem among the plurality of subproblems and the first evaluation function value; performing the branch-and-cut by omitting the branch operation for the first subproblem when it is determined that the second solution is a better solution than the first solution; The program according to claim 1 , which causes the computer to execute a process.
3. 2. The program according to claim 1, wherein the first solution search is performed while fixing the values of the part of state variables whose values are fixed in a second subproblem among the plurality of subproblems for which the first solution is the best.
4. information of the first solution calculated in the second solution search is stored in a storage unit; In the first solution search process, information on the first solution is periodically acquired from the storage unit, and the part of state variables whose values are fixed are identified based on the information on the first solution. The program according to claim 1.
5. a processing unit for performing a first solution search for an integer programming problem including a plurality of state variables using a metaheuristic method and performing a second solution search for the linearly relaxed integer programming problem using a branch and bound method, the processing unit identifying some state variables of which values are fixed in any of the plurality of subproblems among the plurality of state variables based on information of first solutions calculated for each of a plurality of subproblems obtained by a branching operation in the second solution search, performing the first solution search with the values of the identified some state variables fixed, and performing a branch and cut in the second solution search using a first evaluation function value of a second solution obtained by the first solution search; a storage unit that stores information about the first solution and the first evaluation function value; A data processing device having:
6. The computer A process for performing a first solution search for an integer programming problem including a plurality of state variables using a metaheuristic method, and performing a second solution search for a linearly relaxed integer programming problem using a branch and bound method, comprising: identifying, among the plurality of state variables, some state variables whose values are fixed in any of the plurality of subproblems based on information on first solutions calculated for each of the plurality of subproblems obtained by the branching operation in the second solution search; performing the first solution search while fixing the values of the identified part of the state variables; performing a branch-cut in the second solution search using a first evaluation function value of a second solution obtained by the first solution search; Data processing methods.
Citation Information
Patent Citations
System and method for retrieving optimum solution
JP1995319848A
Controller with early termination in mixed-integer optimal control optimization
WO2022097317A1