Program, data processing device, and data processing method

The combination of branch and bound method with local search and weight coefficient adjustments in the data processing device efficiently addresses the inefficiencies of conventional methods by expanding the search scope to include constraint-violating solutions, enhancing solution-finding performance for mixed-integer programming problems.

JP2026071464APending Publication Date: 2026-04-30FUJITSU LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2024181440
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-10-17
Publication Date
2026-04-30

AI Technical Summary

Technical Problem

Conventional methods for solving mixed-integer programming problems are inefficient as they often limit the search to constraint-satisfying solutions, missing good solutions that lie near the boundary between constraint-satisfying and constraint-violating solutions.

Method used

A program and data processing device that employs a combination of branch and bound method with local search, where integer variables are linearly relaxed, and weight coefficients are adjusted to broaden the search scope, including a process of determining solutions through multiple iterations with auxiliary variables and weight adjustments.

Benefits of technology

This approach efficiently searches for solutions to mixed-integer programming problems, reducing computational costs and time by expanding the search range to include constraint-violating solutions, thereby improving solution-finding performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026071464000001_ABST
    Figure 2026071464000001_ABST
Patent Text Reader

Abstract

Efficiently search for solutions to mixed integer programming problems. [Solution] The processing unit 12 determines the first solution of an alternative problem, which is represented by a second evaluation function obtained by adding the product of an auxiliary variable corresponding to the constraints and a weight coefficient to the first evaluation function of a mixed integer programming problem containing integer variables and continuous variables, using the branch and bound method with the integer variables linearly relaxed. The processing unit 12 then determines the second solution of the mixed integer programming problem by local search, using an initial solution in which the linearly relaxed integer variables in the first solution are set to integer values, while fixing the values ​​of the continuous variables included in the initial solution. The processing unit 12 then determines the third solution of the mixed integer programming problem with the values ​​of the integer variables included in the second solution fixed, and decreases the values ​​of the weight coefficients corresponding to the constraints satisfied by the third solution. The processing unit 12 then repeats the process of determining the first solution, determining the second solution, determining the third solution, and decreasing the values ​​of the weight coefficients.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a program, a data processing device, and a data processing method.

Background Art

[0002] As a solution method for obtaining an exact solution to a mixed integer programming problem including integer variables and continuous variables, there is a branch and bound method. In the branch and bound method, a subproblem is generated by fixing some of the continuous variables of the original problem of the mixed integer programming problem to integers, the continuous relaxation problem of the subproblem is solved, and further new subproblems are generated from the subproblem. The continuous relaxation problem is a problem that allows the integer variables included in the original problem or the subproblem to take continuous values. In order to use the branch and bound method more efficiently, a method called branch and cut (or pruning) may be used.

[0003] Also, as a metaheuristic solution method for obtaining an approximate solution to an integer programming problem in practical time, there is a local search method (see, for example, Non-Patent Document 1). Conventionally, a method has been proposed in which a mixed integer programming problem is divided into a part related to continuous variables and a part related to discrete variables, and the part related to discrete variables is solved using an integer machine (see, for example, Patent Documents 1 and 2). Also, a method for solving a mixed integer programming problem using a quantum computer and a classical computer has been proposed (see, for example, Patent Documents 3 and 4).

Prior Art Documents

Patent Documents

[0004]

Patent Document 1

Patent Document 2

Patent Document 3

Patent Document 4

[0005] [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 August 16, 2014], Internet<https: / / arxiv.org / pdf / 1604.08448> [Overview of the Initiative] [Problems that the invention aims to solve]

[0006] In the branch-and-bound method, the values ​​of certain continuous variables are fixed according to the depth of the nodes representing subproblems of the mixed-integer programming problem, thus limiting the scope of the search. Furthermore, methods for solving continuous relaxation problems (such as the simplex method and interior-point method) output constraint-satisfying solutions. However, good solutions to mixed-integer programming problems often lie near the boundary between constraint-satisfying and constraint-violating solutions, making it inefficient to search only near constraint-satisfying solutions. Thus, conventional methods struggle to efficiently search for solutions to mixed-integer programming problems.

[0007] In one aspect, the present invention aims to efficiently search for solutions to mixed integer programming problems. [Means for solving the problem]

[0008] In one embodiment, a program is provided that causes a computer to execute a process in which the first solution, the second solution, the third solution, and the weight coefficients are repeated, and the process of determining the first solution, determining the second solution, determining the third solution, and decreasing the weight coefficients is repeated. The first solution is represented by a second evaluation function obtained by adding the product of an auxiliary variable corresponding to a constraint condition and a weight coefficient to a first evaluation function of a mixed integer programming problem including integer variables and continuous variables, and the integer variables are linearly relaxed. The second solution is determined by local search using an initial solution in which the linearly relaxed integer variables in the first solution are set to integer values, and the values ​​of the continuous variables included in the initial solution are fixed. The third solution is determined by fixing the values ​​of the integer variables included in the second solution, and the weight coefficients corresponding to the constraint condition satisfied by the third solution are decreased.

[0009] In one embodiment, a data processing device is provided. In one embodiment, a data processing method is provided. [Effects of the Invention]

[0010] In one respect, it allows for efficient searching of solutions to mixed-integer programming problems. [Brief explanation of the drawing]

[0011] [Figure 1] This figure shows an example of a data processing device and data processing method according to the first embodiment. [Figure 2] This figure shows an example of second solution search and branch cutting using the branch and bound method. [Figure 3] This is a block diagram showing a hardware example of a data processing device according to the second embodiment. [Figure 4] This is a block diagram showing examples of data processing device functions. [Figure 5] This flowchart shows an example of the procedure performed by a data processing device. [Figure 6] This is a flowchart illustrating an example of the steps involved in the solution search process. [Figure 7] This diagram shows specific examples of the original problem and alternative problems. [Figure 8] This figure shows an example of how to adjust the Wi-Fi. [Figure 9] This flowchart shows a modified procedure for processing by a data processing device. [Modes for carrying out the invention]

[0012] The embodiments for carrying out the invention will be described below with reference to the drawings. (First Embodiment) Figure 1 shows an example of a data processing device and data processing method according to the first embodiment.

[0013] The data processing device 10 of the first embodiment includes a storage unit 11 and a processing unit 12. The memory unit 11 is either a volatile memory device (for example, an electronic circuit such as DRAM (Dynamic Random Access Memory)) or a non-volatile memory device (for example, an electronic circuit such as flash memory, or an HDD (Hard Disk Drive)). The memory unit 11 may also include electronic circuits such as registers. The memory unit 11 stores problem information 11a for a mixed integer programming problem and alternative problem information 11b, which will be described later.

[0014] Mixed-integer programming problems are problems that can be formulated as various combinatorial optimization problems, such as the traveling salesperson problem, the knapsack problem, and the scheduling problem. The first evaluation function (also called the objective function) of a mixed-integer programming problem involving integer and continuous variables can be expressed by the following equation (1).

[0015]

number

[0016] x j is an integer or continuous variable whose identification number is j (j=1,2,…,n). j is, x jIt is a coefficient representing the cost related to In addition, when the constraint condition of the mixed integer programming problem is an inequality constraint, for example, it can be expressed by the following formula (2).

[0017]

Number

[0018] a ij is a coefficient that becomes 1 when a constraint condition with an identification number i (i = 1, 2,..., m) is imposed on x j and becomes 0 when it is not imposed. b i is the constraint threshold of the constraint condition with the identification number i.

[0019] The mixed integer programming problem is, for example, a problem of searching for a solution that minimizes or maximizes the evaluation function value represented by formula (1) among the solutions that satisfy the constraint condition represented by formula (2). Note that the mixed integer programming problem represented by formula (1) and formula (2) can be solved by reducing it to the unconstrained optimization of the evaluation function represented by the following formula (3).

[0020]

Number

[0021] In formula (3), w i is a weight coefficient of 0 or more for the constraint condition with the identification number i. The problem information 11a stored in the storage unit 11, in the case of the mixed integer programming problem represented by formula (1) and formula (2) as described above, a ij , b i , c <​​​​​​​​The storage unit 11 may also store various data, such as calculation conditions, when the processing unit 12 executes the data processing method described later. Furthermore, if the processing unit 12 executes some or all of the data processing methods described later using software, the storage unit 11 stores a program for executing those processes.

[0023] The processing unit 12 in Figure 1 can be implemented by a processor, such as a CPU (Central Processing Unit), GPU (Graphics Processing Unit), or DSP (Digital Signal Processor). The processor may have multiple processor cores. Furthermore, the processing unit 12 may include multiple processors. In addition, the processing unit 12 may be implemented using electronic circuits such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).

[0024] The processing unit 12 reads problem information 11a and alternative problem information 11b stored in the memory unit 11 to search for a solution to the mixed integer programming problem, and performs a solution search using a combination of branch and bound method and local search.

[0025] Figure 1 shows an example of the procedure for data processing by the data processing device 10. Step S1: The processing unit 12 generates an alternative problem for the original mixed integer programming problem based on the problem information 11a. The alternative problem is represented, for example, by a second evaluation function expressed by the following equation (4).

[0026]

number

[0027] s i is an auxiliary variable corresponding to the constraint condition i (i=1,2…,m) with identification number i. The auxiliary variable is a continuous variable greater than or equal to 0. iThis is a weight coefficient of zero or greater that corresponds to the constraint condition i, where the identification number is i.

[0028] As shown in equation (4), the second evaluation function is a function obtained by adding the product of the auxiliary variable and the weight coefficient to the first evaluation function shown in equation (1). Furthermore, the constraints of the alternative problem can be expressed, for example, by equation (5) below, if the constraints are inequality constraints.

[0029]

number

[0030] s i The constraint threshold b for identification number i is as shown in equation (5). i It is added to this. Therefore, the constraints on the alternative problem are relaxed compared to the case of equation (2). The generated alternative problem information (alternative problem information 11b) is stored in the storage unit 11. Note that the alternative problem information 11b may be generated by an external information processing device. In that case, the data processing device 10 obtains the alternative problem information 11b from the external information processing device and stores it in the storage unit 11.

[0031] Step S2: The processing unit 12 performs a first solution search using the branch and bound method. In the first solution search, the processing unit 12 determines the solution to the alternative problem, which is represented by the second evaluation function as described above, using the branch and bound method, with the integer variables linearly relaxed.

[0032] The first solution search is for the alternative problem x j The integer variables among them are performed in a linearly relaxed state, for example, so that they can take on values ​​in the range of real numbers from 0 to 1. In the branch-and-bound method for alternative problems of mixed-integer programming, subproblems are generated by fixing some of the linearly relaxed integer variables to integers, and their solutions (hereinafter referred to as node solutions) are found. If the value of a linearly relaxed integer variable included in the node solution is not an integer, one non-integer integer variable is selected, and two subproblems are generated by fixing its value to either 0 or 1. Then, node solutions are found for each subproblem. This process is repeated until a solution is obtained in which all linearly relaxed integer variables are integers. This operation of dividing (branching) a problem into two subproblems is called a branching operation.

[0033] Incidentally, the second evaluation function values ​​of the two node solutions obtained through the branching operation are either the same as or worse than the second evaluation function value of the node solution of the subproblem before branching. Using this property, the branch-and-bound method omits further branching operations for subproblems where the node solution yields a second evaluation function value worse than the best value obtained so far (or the minimum value of the second evaluation function in the case of a problem minimizing the first evaluation function value). Such operations that omit branching operations are called branch cutting or pruning. Furthermore, the branching operation is also omitted if the node solution of a subproblem is an unfeasible solution (a solution that does not satisfy the constraints shown in equation (2)).

[0034] Figure 2 shows an example of second solution search and branch cutting using the branch and bound method. First, for node n0, which represents the original alternative problem, the node solution that minimizes the value of the second evaluation function is found. If there is one or more non-integer integer variables in the node solution of node n0, one of the one or more non-integer integer variables is selected. In the example in Figure 2, x1 is selected. Then, two subproblems (nodes n1, n2) are generated with the value of x1 fixed to 0 or 1, and the node solution is found for each of them.

[0035] In the node solution of node n1, if there is one or more non-integer integer variables, one of the one or more non-integer integer 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, n4) are generated by fixing the value of x2 to 0 or 1, and the node solution is found for each. Similarly, in the node solution of node n2, if there is one or more non-integer integer variables, one of the one or more non-integer integer variables is selected. In the example in Figure 2, x4 is selected. Then, two subproblems (nodes n5, n6) are generated by fixing the value of x4 to 0 or 1, and the node solution is found for each.

[0036] The branching operation described above is repeated, and in the example in Figure 2, nodes n7 to n14 and so on are generated. However, when a node solution (provisional solution) is obtained in which all integer variables are integers, branching is not performed for that node. In the example in Figure 2, the node solution for node n7 is a provisional solution. Also, branching is not performed for nodes that have node solutions that do not satisfy the constraints (unfeasible solutions). In the example in Figure 2, the node solution for node n14 is an unfeasible solution.

[0037] Furthermore, based on a comparison between the best value, which is the value of the second evaluation function of the provisional best solution, and the value of the second evaluation function of the node solution for a given node, if the provisional best solution is determined to be a better solution than the node solution, branching is not performed for that node. In other words, branch cutting is performed. In Figure 2, the best value is z best This is how it is written. For example, if the provisional solution at node n7 is determined to be the provisional best solution and is better than the node solutions at nodes n10 and n12, then the branches at nodes n10 and n12 are cut off.

[0038] The above process is repeated until there are no more nodes that can branch, and then z best The node solution having becomes the solution of the first solution search (provisional solution). The solution obtained here is a solution to the alternative problem and therefore may not satisfy the constraints of the original mixed integer programming problem. The processing unit 12 then processes the z obtained within a predetermined time.best A node solution having this property may also be used as the solution for the second solution search.

[0039] Step S3: The processing unit 12 performs a second solution search using local search. In the second solution search, the processing unit 12 uses an initial solution obtained in the first solution search, where the linearly relaxed integer variables are set to integer values, and fixes the values ​​of the continuous variables included in the initial solution, while determining the solution to the original mixed integer programming problem by local search. The evaluation function shown in equation (3) can be used in the local search.

[0040] Local search methods are techniques that replace the current solution with an improved solution (for example, a solution with a smaller first evaluation function value than the current solution) when an improved solution exists in its neighborhood. Examples of local search methods include MCMC (Markov Chain Monte Carlo) and rejection-free methods. The MCMC method is a method that probabilistically determines the next neighboring solution to transition to from among multiple neighboring solutions. The rejection-free method is a type of MCMC method that eliminates the rejection of transitions in each trial.

[0041] In step S3, if the linearly relaxed integer variable in the solution to the alternative problem obtained in the first solution search is not an integer, the initial solution rounded to an integer value (for example, 0 or 1) is used. By using such an initial solution and further performing a local search with the values ​​of the continuous variable fixed, the search range is broadened compared to the first solution search using the branch and bound method, increasing the likelihood of finding a good solution that satisfies the integer condition.

[0042] In step S3, when a predetermined termination condition is met, the solution with the best value of the first evaluation function (or the minimum value of the first evaluation function in the case of a problem to minimize the first evaluation function) is output as the solution of the second solution search. For example, if a predetermined time has elapsed, or if the solution with the best value has not been updated for a predetermined period of time, it is determined that the termination condition has been met.

[0043] Step S4: The processing unit 12 performs a third solution search. In the third solution search, the processing unit 12 determines the solution to the original mixed-integer programming problem while fixing the values ​​of the integer variables included in the solution obtained in the second solution search. For example, in the third solution search, an exact method is used to search for a solution in which the first evaluation function is minimized by changing the values ​​of the continuous variables while fixing the values ​​of the integer variables. Note that this solution may be an unfeasible solution that does not satisfy any of the constraints.

[0044] Step S5: Processing unit 12 uses the weight coefficient (w of equation (4)). i The processing unit 12 adjusts the value of w. The processing unit 12 decreases the value of the weight coefficient corresponding to the constraints that the solution to the mixed integer programming problem obtained in the third solution search satisfies. For example, if the i-th constraint (identification number = i) is satisfied, the processing unit 12 adjusts w. i The value of is reduced. This weakens the degree of relaxation of the i-th constraint.

[0045] The processing unit 12 increases the values ​​of the weight coefficients corresponding to the constraints that the solution to the mixed integer programming problem obtained in the third solution search does not satisfy. For example, if the i-th constraint is satisfied, the processing unit 12 increases w i Increase the value of . This increases the degree of relaxation of the i-th constraint.

[0046] w i Adjusting the value of w is, for example, the original w i Multiply the value of by a predetermined coefficient value for adjustment, or the original w i This is done by dividing the value of by a predetermined coefficient value. i An example of adjusting the value will be explained in the second embodiment.

[0047] After the processing in step S5, the processing in steps S2 to S5 is repeated until the predetermined search conditions are met. i When the value of is decreased, the solution obtained in the next steps S2 and S3 becomes less likely to satisfy the i-th constraint. In the process of step S5, w iAs the value of increases, the solution obtained in the next steps S2 and S3 becomes more likely to satisfy the i-th constraint.

[0048] When the predetermined search termination conditions are met, the data processing device 10 terminates its processing. At this time, the data processing device 10 may output as the solution search result for the mixed integer programming problem the solution that satisfies all constraints and yields the best value of the first evaluation function among the solutions calculated in steps S3 and S4 so far. The solution search result may include the best value of the first evaluation function.

[0049] As described above, the data processing unit 10 determines the first solution of an alternative problem, which is represented by a second evaluation function obtained by adding the product of an auxiliary variable corresponding to the constraints and a weight coefficient to the first evaluation function of the mixed integer programming problem, using the branch and bound method with the integer variables linearly relaxed. The data processing unit 10 then determines the second solution of the mixed integer programming problem by local search, using an initial solution in which the linearly relaxed integer variables in the first solution are set to integer values, while fixing the values ​​of the continuous variables included in the initial solution. The data processing unit 10 then determines the third solution of the mixed integer programming problem with the values ​​of the integer variables included in the second solution fixed. The data processing unit 10 then decreases the values ​​of the weight coefficients corresponding to the constraints satisfied by the third solution. The data processing unit 10 then repeats the process of determining the first solution, determining the second solution, determining the third solution, and decreasing the values ​​of the weight coefficients.

[0050] Good solutions to mixed-integer programming problems often lie on the boundary between constraint-satisfying and constraint-violating solutions (see, for example, the following literature (especially "3.4 Strategic Oscillation" on page 707)). References: Hideki Hashimoto, Koji Nonobe, "Introduction to Taboo Exploration Methods," Operations Research, December 2013, Vol. 58, pp. 703-707. Therefore, searching only near constraint-satisfying solutions is not efficient. As described above, by reducing the values ​​of the weight coefficients corresponding to the constraints satisfied by the solution to the mixed-integer programming problem, good solutions near constraint-violating solutions can be obtained more efficiently than simply searching for constraint-satisfying solutions.

[0051] Furthermore, by using the local search method, which is an approximate solution method, in conjunction with the exact solutions, the first and third solutions, a wider range of searches becomes possible, leading to the acquisition of diverse solutions and improved solution-finding performance.

[0052] Based on the above, the data processing device 10 of the first embodiment can efficiently search for solutions to mixed integer programming problems. Furthermore, such a data processing device 10 can efficiently search for solutions when solving various problems in modern society that can be converted into mixed-integer programming problems. Therefore, it is expected to be useful as a means of obtaining good solutions while reducing computational costs and time.

[0053] In the example above, we described the case where the constraints of a mixed integer programming problem are inequalities, but the applicable constraints are not limited to inequalities. For example, this embodiment can also be applied to the search for solutions to mixed integer programming problems where the constraints are equalities.

[0054] The equality constraints of a mixed-integer programming problem can be expressed, for example, by equation (6) below.

[0055]

number

[0056] Furthermore, the equality constraint of the alternative problem can be expressed, for example, by equation (7) below.

[0057]

number

[0058] In the equation constraint, s i The constraint threshold b for identification number i is as shown in equation (7). i Add to, or constraint threshold b i It is subtracted from. As a result, the constraints on the alternative problem are relaxed compared to the case of equation (6).

[0059] (Second Embodiment) Figure 3 is a block diagram showing an example of the hardware of a data processing device according to the second embodiment.

[0060] The data processing device 20 is, for example, a computer and has a processor 21, RAM 22, HDD 23, GPU 24, input interface 25, media reader 26, and communication interface 27. The above unit is connected to a bus.

[0061] The processor 21 is a processor such as a GPU or CPU that includes arithmetic circuits that execute 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 have multiple processor cores. The data processing unit 20 may also have multiple processors. The processor that executes one of the multiple processes performed by the data processing unit 20 may be different from the processor that executes a different process from the multiple processes. A collection of multiple processors (multiprocessor) may be called a "processor". A processor may also be called a processor circuitry.

[0062] RAM22 is a volatile semiconductor memory that temporarily stores programs executed by the processor 21 and data used by the processor 21 for calculations. The data processing device 20 may be equipped with other types of memory besides RAM22, and may be equipped with multiple types of memory.

[0063] HDD23 is a non-volatile storage device that stores software programs such as the OS (Operating System), middleware, and application software, as well as data. The programs include, for example, a program that instructs the data processing device 20 to search for a solution to a mixed-integer programming problem using local search and branch-and-bound methods. The data processing device 20 may also include other types of storage devices such as flash memory or SSDs (Solid State Drives), and may include multiple non-volatile storage devices.

[0064] The GPU 24 outputs an image to the display 24a connected to the data processing unit 20, according to instructions from the processor 21. The display 24a can be a CRT (Cathode Ray Tube) display, an LCD (Liquid Crystal Display), a PDP (Plasma Display Panel), an OEL (Organic Electro-Luminescence) display, or the like.

[0065] The input interface 25 acquires input signals from input devices 25a connected to the data processing unit 20 and outputs them to the processor 21. Input devices 25a can include pointing devices such as mice, touch panels, touchpads, and trackballs, as well as keyboards, remote controllers, and button switches. Furthermore, multiple types of input devices may be connected to the data processing unit 20.

[0066] The media reader 26 is a reading device that reads programs and data recorded on the recording medium 26a. Examples of recording media 26a include magnetic disks, optical disks, magneto-optical disks (MO), and semiconductor memory. Magnetic disks include flexible disks (FD) and HDDs. Optical disks include CDs (Compact Discs) and DVDs (Digital Versatile Discs).

[0067] The media reader 26 copies programs and data read from the recording medium 26a to other recording media such as RAM 22 or 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 for distributing programs and data. The recording medium 26a and HDD 23 may also be referred to as computer-readable recording media.

[0068] The communication interface 27 is connected to the network 27a and communicates with other information processing devices via the network 27a. The communication interface 27 may be a wired communication interface connected by a cable to a communication device such as a switch, or it may be a wireless communication interface connected by a wireless link to a base station.

[0069] Next, the functions of the data processing device 20 will be explained. Figure 4 is a block diagram showing an example of the functionality of a data processing device. The data processing device 20 includes a problem information storage unit 31, an alternative problem generation unit 32, an alternative problem information storage unit 33, an exact solution solver execution unit 34, a local search solver execution unit 35, a provisional best solution storage unit 36, and an output unit 37.

[0070] These features enable the same functionality as the storage unit 11 and processing unit 12 shown in Figure 1. The problem information storage unit 31, the alternative problem information storage unit 33, and the provisional best solution storage unit 36 ​​are implemented using memory areas allocated in RAM 22 or HDD 23. The alternative problem generation unit 32, the exact solution solver execution unit 34, the local search solver execution unit 35, and the output unit 37 can be implemented, for example, using program modules executed by the processor 21.

[0071] The alternative problem generation unit 32, the exact solver execution unit 34, the local search solver execution unit 35, and the output unit 37 may each be implemented on one or more different processor cores in the processor 21. Furthermore, the local search solver execution unit 35 may be implemented as an Ising machine. An Ising machine can be implemented as an electronic circuit such as an FPGA.

[0072] The problem information storage unit 31 stores problem information for the mixed integer programming problem. If the mixed integer programming problem to be computed is represented by equation (1), equation (2) (or equation (6)), the problem information includes a ij ,b i ,c j This includes the following. Problem information may be input by the user through operation of the input device 25a and stored in the problem information storage unit 31, or it may be input via the recording medium 26a or network 27a and stored in the problem information storage unit 31.

[0073] The alternative problem generation unit 32 generates an alternative problem for the original mixed integer programming problem based on the problem information stored in the problem information storage unit 31. The alternative problem is represented by the second evaluation function shown in equation (4) above.

[0074] Furthermore, the alternative problem generation unit 32 determines whether the solution to the mixed integer programming problem obtained by the exact solution solver execution unit 34 satisfies the constraints, and adjusts the weight coefficient (w of equation (4)) accordingly. i Adjust the value of w. i A coefficient α is used to adjust the value of w. The alternative problem generation unit 32 generates w i If you increase w i Multiply by α, w i When reducing wi Divide by α. α is a predetermined value, such as 1.5. The alternative problem generation unit 32 may obtain the value of α from outside the data processing device 20.

[0075] The alternative problem information storage unit 33 stores alternative problem information, which is information about alternative problems generated by the alternative problem generation unit 32. The alternative problem information includes, for example, a included in equations (4) to (7). ij ,b i ,c j The value of w i Yas i This includes initial values ​​for x. Alternative problem information includes x j Initial values ​​may be included.

[0076] The exact solver execution unit 34 determines the solution to the alternative problem, represented by the second evaluation function, using the branch and bound method, which is an exact solution method, with the integer variables linearly relaxed. The exact solver execution unit 34 also determines the solution to the mixed-integer programming problem with the values ​​of the integer variables included in the solution obtained by the local search solver execution unit 35 fixed.

[0077] The local search solver execution unit 35 uses an initial solution obtained by the exact solution solver execution unit 34, in which the linearly relaxed integer variables have been set to integer values, to calculate the solution to the original mixed integer programming problem by searching for a solution using local search, while keeping the values ​​of the continuous variables fixed.

[0078] The provisional best solution storage unit 36 ​​stores the provisional best solution obtained by the exact solver execution unit 34 or the local search solver execution unit 35 of the mixed integer programming problem, which has the best value for the first evaluation function and satisfies all constraints.

[0079] The output unit 37 outputs the solution search result for the mixed integer programming problem when the search termination condition is met. The output unit 37 outputs, for example, the provisional best solution stored in the provisional best solution storage unit 36 ​​as the solution search result. The output unit 37 may, for example, output the solution search result to the display 24a for display, transmit it to another information processing device via the network 27a, or store it in an external storage device.

[0080] Next, the processing procedure of the data processing method using the data processing device 20 of the second embodiment will be described. (Processing procedure) Figure 5 is a flowchart showing an example of the procedure performed by a data processing device.

[0081] Step S10: The data processing device 20 acquires the input data. The input data includes problem information for the mixed integer programming problem to be computed, w i Initial value, w i The value of the coefficient α used to adjust the value of is included. The data processing device 20 may acquire input data entered by the user through operation of the input device 25a, or it may acquire input data entered via the recording medium 26a or the network 27a. Problem information is stored in the problem information storage unit 31.

[0082] Step S11: The data processing device 20 performs a solution search process using a combination of branch-and-bound method and local search. An example of the solution search process procedure will be described later (see Figure 6). Step S12: When the search termination condition is met, the data processing device 20 outputs the provisional best solution stored in the provisional best solution storage unit 36 ​​and terminates the process.

[0083] Figure 6 is a flowchart showing an example of the steps involved in the solution search process. Step S20: The alternative problem generation unit 32 reads the problem information for the mixed integer programming problem stored in the problem information storage unit 31.

[0084] Step S21: The alternative problem generation unit 32 generates an alternative problem for the original mixed integer programming problem (hereinafter referred to as the original problem) based on the problem information. Specifically, it generates a second evaluation function, shown in equation (4), which is obtained by adding the product of the auxiliary variables corresponding to the constraints and the weight coefficients, for each constraint, to the first evaluation function of the original problem shown in equation (1).

[0085] Figure 7 shows specific examples of the original problem and the alternative problem. Figure 7 shows an example of the first evaluation function (Obj1) and constraints (c1~c6) for the original problem for which the optimal solution is known. The first evaluation function (Obj1) has 10 binary variables (integer variables) and 1 continuous variable (≧0). That is, x included in the first evaluation function of equation (1) j An example is shown where there are 11 variables, 10 of which are integer variables and 1 is a continuous variable. In Figure 7, the 10 integer variables are denoted as x0 to x9, and the one continuous variable is denoted as y. Also, in the example in Figure 7, the six constraints c1 to c6 are all different inequality constraints.

[0086] The optimal solution to this original problem (a solution that minimizes the value of Obj1 and satisfies the six constraints) is x2=1, y=4, and the values ​​of the other integer variables are 0. Figure 7 shows an example of generating an alternative problem for the original problem described above. In the example in Figure 7, the second evaluation function (Obj2) is shown in which the product of the auxiliary variables (s1 to s6) and the weight coefficients (all 1 in the example in Figure 7) corresponding to each of the six constraint conditions (c1 to c6) is added to the first evaluation function (Obj1).

[0087] In the example in Figure 7, the six inequality constraints of the alternative problem are -1s on the left-hand side of the six inequality constraints of the original problem. i These are the values ​​added to the constraint thresholds (+5, -5, +7, -8, +4, -4 on the right-hand side) of the six inequality constraints in the original problem. i This is equivalent to adding them together. Therefore, the six inequality constraints of the alternative problem are s i When >0, the constraints are more relaxed than the six inequalities in the original problem.

[0088] Step S22: The data processing device 20 performs initialization. For example, w i However, it was obtained in the process of step S10. i This is set to the initial value. Also, the provisional best solution stored in the provisional best solution memory unit 36 ​​is initialized to "None" (indicating that there is no provisional best solution).

[0089] Step S23: The data processing device 20 determines whether the search termination condition has been met. For example, the data processing device 20 determines that the search termination condition has been met when the elapsed time reaches a predetermined time. Alternatively, the data processing device 20 may determine that the search termination condition has been met if the provisional best solution is not updated for a predetermined period of time.

[0090] If it is determined that the search termination condition has been met, the data processing device 20 terminates the solution search process and performs the process in step S12 described above (output of the provisional best solution). If it is determined that the search termination condition has not been met, the process in step S24 is performed.

[0091] Step S24: In the data processing device 20, the exact solver execution unit 34 searches for a solution X' to the alternative problem using the branch and bound method. When a solution search is performed for an alternative problem as shown in Figure 7, the integer variables x0 to x9 are linearly relaxed so that they can take values ​​in the range of real numbers from 0 to 1, and the solution search is performed using the branch and bound method.

[0092] In the alternative problem shown in Figure 7, solution X' has an optimal solution where y=5, s4=2, and other variables are 0. Since s4>0, a violation of the constraint condition of identification number=4 occurs. Step S25: In the data processing device 20, the local search solver execution unit 35 searches for a solution X'' of the original mixed integer programming problem by local search. In the process of step S25, the initial solution obtained in step S24, in which the linearly relaxed integer variables are set to integer values, is used. The local search is performed with the values ​​of the continuous variables fixed.

[0093] In the alternative problem shown in Figure 7, if the values ​​of x0 to x9 included in solution X' are not integers, they are treated as integers. For example, the values ​​of linearly relaxed integer variables are rounded to 1 if they are 0.5 or greater, and to 0 if they are less than 0.5. In addition, the value of the continuous variable y is fixed while local search is performed. When the solution X' of the alternative problem shown in Figure 7 is used, y is fixed at 5.

[0094] Step S26: In the data processing device 20, the exact solver execution unit 34 searches for a solution to the original problem using solution X''. In the process of step S26, the exact solution method is used to search for a solution while fixing the values ​​of the integer variables included in solution X'' obtained in the process of step S25. If the obtained solution is a feasible solution (all constraints are satisfied), the exact solver execution unit 34 updates X'' with that solution.

[0095] When searching for a solution to the original problem shown in Figure 7, the values ​​of x0 to x9 included in solution X'' are fixed, and the value of the continuous variable y is varied to find a solution that minimizes the value of the first evaluation function.

[0096] Step S27: In the data processing device 20, the alternative problem generation unit 32 determines whether the solution obtained in step S26 satisfies the constraint conditions, w i The value of is adjusted. If the solution obtained in step S26 satisfies the constraint condition of identification number = i, the alternative problem generation unit 32 will adjust w i Divide by α. That is, the alternative problem generation unit 32 generates w i w i Update with / α. If the solution obtained in step S26 does not satisfy the constraint condition of identification number = i, the alternative problem generation unit 32 will w i Multiply by α. That is, the alternative problem generation unit 32 generates w i w i Update by ×α

[0097] For example, suppose the solution obtained in step S26 for the original problem shown in Figure 7 violates the constraint of identification number = 4 (the inequality constraint of c4 in Figure 7), but satisfies the other constraints. In this case, in the alternative problem, the value of w4 is multiplied by α, and the values ​​of w1~w3 and w5~w6 are multiplied by 1 / α.

[0098] Figure 8 shows w i This figure shows an example of the adjustment. In the adjustment example in Figure 8, α = 1.5. If the initial values ​​of w1 to w6 are 1, then when the value of w4 is multiplied by 1.5 and the values ​​of w1 to w3 and w5 to w6 are multiplied by 1 / 1.5, the value of w4 becomes 1.5 and the values ​​of w1 to w3 and w5 to w6 become 0.666666666666667. This yields the second evaluation function (Obj3) shown in Figure 8.

[0099] Step S28: The data processing device 20 updates the provisional best solution with X'' if the solution obtained in step S26 is a feasible solution and the provisional best solution is "None", or if the first evaluation function value of solution X'' < the first evaluation function value of the provisional best solution (or). If the solution obtained in step S26 is not a feasible solution, or if the first evaluation function value of solution X'' ≥ the first evaluation function value of the provisional best solution, the provisional best solution is not updated.

[0100] After the processing in step S28, the processing from step S23 is repeated. If we adjust the values ​​of w1 to w6 as shown in Figure 8, and then perform steps S24 to S26 again, we obtain a solution X'' where x2=1, y=4, the values ​​of the other integer variables are 0, and all constraints are satisfied; in other words, we obtain the optimal solution to the original problem.

[0101] Note that the processing order shown in Figure 6 is just one example, and the order of processing may be changed as appropriate. For example, the order of processing in steps S27 and S28 can be changed. As described above, the data processing device 20 adds an auxiliary variable (s) corresponding to the constraints to the first evaluation function of the original problem. i ) and weight coefficient (w iThe solution X' of the alternative problem, represented by a second evaluation function obtained by adding the product of ) is determined by the branch and bound method with the integer variables linearly relaxed. The data processing device 20 then uses the initial solution, in which the linearly relaxed integer variables in solution X' are set to integer values, to determine the solution X'' of the original problem by local search, with the values ​​of the continuous variables included in the initial solution fixed. The data processing device 20 then determines the solution of the original problem with the values ​​of the integer variables included in solution X'' fixed. Finally, the data processing device 20 determines w corresponding to the constraints satisfied by the solution of the original problem. i By multiplying by 1 / α, w i The value of is reduced. In addition, the data processing device 20 performs the process of determining solution X', the process of determining solution X'', the process of determining the solution of the original problem, and w i The process of decreasing the value is repeated.

[0102] As a result, for the same reasons as in the data processing device 10 of the first embodiment, good solutions near constraint-violating solutions can be obtained more efficiently than simply searching for constraint-satisfying solutions. Furthermore, by using local search, an approximate solution method, in combination with branch-and-bound, an exact solution method, a wide-ranging search becomes possible.

[0103] Based on the above, the data processing device 20 of the second embodiment can efficiently search for solutions to mixed integer programming problems. (modified version) In the example above, w i The adjustment coefficient α for the value of is set to a fixed value, but α may be a variable value. For example, as shown below, w i The value of the adjustment coefficient for the value may be changed multiple times.

[0104] Figure 9 is a flowchart showing a modified procedure for processing by a data processing device. Step S30: The data processing device 20 acquires the input data. The input data includes problem information for the mixed integer programming problem to be computed, w i In addition to the initial value, w i K coefficients α1, α2, ..., α are used to adjust the values. K List α containing the valueslist It includes α1~α K The values ​​of each are different. For example, α1 < α2 < ... < α K That is the case.

[0105] The data processing device 20 receives list α input by the user through operation of the input device 25a. list Input data including the above may be acquired, or input data input via recording medium 26a or network 27a may be acquired.

[0106] Step S31: The data processing device 20 initializes the total provisional best solution to “None”. The total provisional best solution consists of K coefficients α1 to α K This is the best of the provisional best solutions obtained using [the specified method]. The total provisional best solution may be stored in the provisional best solution storage unit 36. The data processing device 20 is also initialized to trial count = 0.

[0107] Step S32: The data processing device 20 sets the number of trials = number of trials + 1. Step S33: The data processing device 20 determines whether the number of tries ≤ K. If the data processing device 20 determines that the number of tries ≤ K, it performs the process in step S34. If it determines that the number of tries ≤ K is not met, it performs the process in step S37.

[0108] Step S34: The data processing device 20 performs the solution search process as shown in Figure 6. In the process of step S27 in Figure 6, w i When adjusting the value of α, use the list α list The value at the [number]th trial position is used.

[0109] Step S35: The data processing device 20 determines whether the provisional best solution obtained in step S34 is a better solution than the total provisional best solution. If the original problem is a problem of minimizing the first evaluation function value, the data processing device 20 determines that the provisional best solution is a better solution than the total provisional best solution if the first evaluation function value of the provisional best solution is smaller than the first evaluation function value of the total provisional best solution.

[0110] If the data processing device 20 determines that the provisional best solution is better than the total provisional best solution, it performs the process in step S36. If it determines that the provisional best solution is not better than the total provisional best solution, it repeats the process from step S32.

[0111] Step S36: The data processing device 20 updates the total provisional best solution using the provisional best solution. After processing in step S36, the data processing device 20 repeats the processing from step S32.

[0112] Step S37: The data processing device 20 outputs the total provisional best solution and terminates processing. This type of processing increases the likelihood of obtaining a better solution (the overall provisional best solution) compared to using a fixed value for α.

[0113] By the way, as mentioned above, the above processing can be achieved by having the data processing device 20 execute a program. The program can be recorded on a computer-readable recording medium (for example, recording medium 26a). Examples of recording media include magnetic disks, optical disks, magneto-optical disks, and semiconductor memory. Magnetic disks include floppy disks (FDs) and hard disks (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 (for example, HDD 23) and executed.

[0114] The above describes one aspect of the program, data processing device, and data processing method of the present invention based on embodiments, but these are merely examples and the invention is not limited to those described above. [Explanation of symbols]

[0115] 10 Data Processing Devices 11 Storage section 11a Question information 11b Alternative question information 12 Processing Units

Claims

1. The first solution to an alternative problem, represented by a second evaluation function obtained by adding the product of an auxiliary variable corresponding to the constraints and a weight coefficient to the first evaluation function of a mixed integer programming problem containing integer and continuous variables, is determined by the branch and bound method, with the integer variables linearly relaxed. Using an initial solution in which the linearly relaxed integer variable in the first solution is given an integer value, and with the values ​​of the continuous variable included in the initial solution fixed, a second solution to the mixed integer programming problem is determined by local search. With the values ​​of the integer variables included in the second solution fixed, the third solution to the mixed integer programming problem is determined. The value of the weight coefficient corresponding to the constraint condition satisfied by the third solution is reduced, The process of determining the first solution, the process of determining the second solution, the process of determining the third solution, and the process of decreasing the value of the weight coefficient are repeated. A program that instructs a computer to perform a process.

2. The program according to claim 1, wherein the auxiliary variable is a variable that relaxes the constraint condition by being added to or subtracted from the constraint threshold of the constraint condition.

3. The program according to claim 1, which causes the computer to execute a process that repeats the process of determining the first solution, the process of determining the second solution, the process of determining the third solution, and the process of decreasing the value of the weight coefficient until a predetermined termination condition is met.

4. The program according to claim 1, which causes the computer to perform a process of increasing the value of the weight coefficient corresponding to the constraint if the third solution does not satisfy the constraint.

5. The program according to claim 1, which causes the computer to perform a process of reducing the value of the weight coefficient by dividing the original value of the weight coefficient by a predetermined coefficient value.

6. The program according to claim 1, which causes the computer to perform a process to increase the value of the weight coefficient by multiplying the original value of the weight coefficient by a predetermined coefficient if the third solution does not satisfy the constraints.

7. The program according to claim 5 or 6, which causes the computer to perform a process of changing the coefficient value multiple times and repeating the process of determining the first solution, the process of determining the second solution, the process of determining the third solution, and the process of decreasing the value of the weight coefficient until a predetermined termination condition is met, and then outputting the best solution among the obtained third solutions that satisfies all of the constraint conditions.

8. A processing unit that repeats the process of determining the first solution, determining the second solution, determining the third solution, and decreasing the values ​​of the weight coefficients, and then determines the first solution of an alternative problem represented by a second evaluation function obtained by adding the product of an auxiliary variable corresponding to a constraint condition and a weight coefficient to a first evaluation function of a mixed integer programming problem including integer variables and continuous variables, with the integer variables linearly relaxed, and then determines the second solution of the mixed integer programming problem by local search, with the values ​​of the continuous variable included in the initial solution fixed, and then determines the third solution of the mixed integer programming problem with the values ​​of the integer variables included in the second solution fixed, and then decreases the values ​​of the weight coefficients corresponding to the constraint condition satisfied by the third solution. A storage unit that stores problem information for the mixed integer programming problem and the alternative problem, A data processing device having

9. Computers The first solution to an alternative problem, represented by a second evaluation function obtained by adding the product of an auxiliary variable corresponding to the constraints and a weight coefficient to the first evaluation function of a mixed integer programming problem containing integer and continuous variables, is determined by the branch and bound method, with the integer variables linearly relaxed. Using an initial solution in which the linearly relaxed integer variable in the first solution is given an integer value, and with the values ​​of the continuous variable included in the initial solution fixed, a second solution to the mixed integer programming problem is determined by local search. With the values ​​of the integer variables included in the second solution fixed, the third solution to the mixed integer programming problem is determined. The value of the weight coefficient corresponding to the constraint condition satisfied by the third solution is reduced, The process of determining the first solution, the process of determining the second solution, the process of determining the third solution, and the process of decreasing the value of the weight coefficient are repeated. Data processing method.

Citation Information

Patent Citations

  • Problem solution device, method, and program

    JP2020144529A

  • Solution finding device, solution finding method, and program

    JP2023041506A

  • Solving mixed integer optimization problems on a hybrid classical-quantum computing system

    US20200226197A1

  • Quantum computing-enhanced systems and methods for large-scale constrained optimization

    US20230419155A1