Optimization system, optimization method, and optimization program

The optimization system addresses the inefficiencies of existing methods by iteratively combining annealing and constraint satisfaction solvers to find optimal solutions that satisfy complex logical constraints, enhancing the efficiency and accuracy of binary quadratic optimization.

JP2025112962APending Publication Date: 2025-08-01HITACHI VANTARA LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024007549
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-01-22
Publication Date
2025-08-01

AI Technical Summary

Technical Problem

Existing methods for solving binary quadratic optimization problems with complex logical constraints, such as CMOS annealing and ADMM, struggle to ensure constraint satisfaction and are inefficient, particularly when dealing with large-scale problems.

Method used

An optimization system that combines an annealing unit and a constraint logic unit to iteratively search for an optimal solution, using a first solver to minimize the objective function and a second solver to satisfy constraints, employing techniques like simulated annealing and SAT-type constraint satisfaction solvers.

Benefits of technology

Effectively solves binary quadratic optimization problems with complex logical constraints without violating them, providing a more efficient and accurate solution than previous methods.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025112962000001_ABST
    Figure 2025112962000001_ABST
Patent Text Reader

Abstract

To solve a binary quadratic optimization problem including complicated logic constraints without breaking the constraints in an optimization system.SOLUTION: An annealing unit uses a first solver to perform a first search for an annealing solution so as to lower an objective function value in the vicinity of a constraint satisfaction solution, and a constraint logic unit uses a second solver to perform a second search for a constraint satisfaction solution in the vicinity of the annealing solution obtained by the annealing unit, and an optimal solution is obtained by executing repetitive processing of the first search and the second search.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to an optimization system, an optimization method, and an optimization program.

Background Art

[0002] In recent years, CMOS (Complementary Metal Oxide Semiconductor) annealing, which is a pseudo-quantum computing technology for solving combinatorial optimization problems, has attracted attention.

[0003] CMOS annealing represents an optimization problem as an Ising model and searches for the ground state by a method called annealing. When trying to solve a real-world problem by annealing, various constraint conditions may need to be satisfied. In such a case, it is generally known to aim for satisfaction in the process of reducing the objective function value by incorporating the constraint conditions as penalty terms of second order or lower into the objective function of the Ising model.

[0004] However, in the above method, satisfaction of the constraint conditions is not guaranteed, and a solution that violates the constraint conditions may be derived. This is because, although the method of imposing a penalty when the constraint conditions are violated tries to abide by the constraints as much as possible, it does not necessarily search only the solution space that satisfies the constraint conditions.

[0005] A method of making the contribution of the penalty term to the objective function as large as possible to satisfy it as much as possible is known. This can be achieved by increasing the coefficient of the above penalty term. However, if the coefficient of the above penalty term is increased too much in order to prioritize constraint satisfaction, it becomes difficult to obtain an optimal solution or a solution close to it because the value of the objective function does not improve. On the other hand, if the weight of the above penalty term is decreased, the constraints are violated, so there is a problem that it is difficult to adjust the coefficient.

[0006] In contrast, as a technique for satisfying linear inequality constraints in annealing, a solution method using ADMM (Alternating Direction Method of Multipliers) has been proposed in Patent Document 1.

[0007] Patent Document 1 describes a method for solving a mixed binary quadratic programming problem that satisfies constraints by processing linear inequality constraints with the Hildreth algorithm using the ADMM that incorporates annealing and the Hildreth algorithm using the Lagrangian function method.

Prior Art Documents

Patent Documents

[0008]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0009] However, Patent Document 1 is a method for searching for a solution while satisfying linear inequality constraints with the Hildreth algorithm, but it is difficult to satisfy constraint conditions that are difficult to express with linear inequality constraints, such as logical constraints and constraints that are applied only when certain conditions are satisfied. Also, in order to satisfy complex constraints and solve the mixed binary quadratic programming problem, there is a problem that the continuous optimization shown in Patent Document 1 takes too much time and the solution becomes slow.

[0010] An object of the present invention is to solve a binary quadratic optimization problem including complex logical constraints without violating the constraints in an optimization system.

Means for Solving the Problems

[0011] The optimization system according to one aspect of the present invention is an optimization system that searches for an optimal solution to a mixed binary quadratic programming problem with constraints, and includes an annealing unit that performs a first search for an annealing solution that decreases the value of the objective function of the mixed binary quadratic programming problem, and a constraint logic unit that performs a second search for a constraint satisfaction solution that satisfies the constraints. The annealing unit performs the first search for the annealing solution using a first solver so as to decrease the objective function value in the vicinity of the constraint satisfaction solution, and the constraint logic unit performs the second search for the constraint satisfaction solution using a second solver in the vicinity of the annealing solution obtained by the annealing unit, and obtains the optimal solution by executing iterative processing of the first search and the second search.

Effect of the Invention

[0012] According to one aspect of the present invention, in an optimization system, a binary quadratic optimization problem including complex logical constraints can be solved without violating the constraints.

Brief Description of the Drawings

[0013]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

Embodiments for Carrying Out the Invention

[0014] Hereinafter, embodiments will be described with reference to the drawings. The embodiments are examples for explaining the present application including the drawings. In the embodiments, for the sake of clarity of explanation, appropriate omissions and simplifications are made. Unless otherwise particularly limited, each component of the embodiments may be singular or plural.

[0015] The same or similar components are given the same reference numerals, and the description in subsequent embodiments with respect to those already described may be omitted or may be made focusing on the differences.

[0016] When there are a plurality of the same or similar components, they may be described by attaching different subscripts to the same reference numeral. Also, when it is not necessary to distinguish these plurality of components, the subscripts may be omitted in the description.

[0017] In the embodiments, the processing performed by executing a program may be described. A computer performs the processing defined by the program while using a storage resource (for example, a memory) and the like by a processor (for example, a CPU (Central Processing Unit), a GPU (Graphics Processing Unit)).

[0018] Therefore, the entity that performs the processing by executing the program may be a processor. Similarly, the entity that performs the processing by executing the program may be a controller, a device, a system, a computer, or a node having a processor. The entity that performs the processing by executing the program only needs to be an arithmetic unit and may include a dedicated circuit that performs specific processing.

[0019] Here, the dedicated circuit is, for example, an FPGA (Field Programmable Gate Array), an ASIC (Application Specific Integrated Circuit), a CPLD (Complex Programmable Logic Device), or the like.

[0020] The program may be installed in the computer from a program source. The program source may be, for example, a program distribution server or a non-transitory storage medium readable by the computer. When the program source is a program distribution server, the program distribution server includes a processor and a storage resource (storage) that stores the program to be distributed, and the processor of the program distribution server may distribute the program to be distributed to other computers.

[0021] Also, in the embodiments, two or more programs may be realized as one program, or one program may be realized as two or more programs.

[0022] In the following embodiments, various information is described in a table format, but the various information may be in a data format other than the table format. Also, for example, various designations such as "XX information", "XX table", "XX list", "XX queue", etc. are interchangeable among them. For example, "XX table" may be called "XX list". Also, when explaining identification information, expressions such as "identification information", "identifier", "name", "ID", "number", etc. are used, but these are mutually replaceable.

[0023] In the following embodiments, for example, in the configuration of the system, illustrations and descriptions of configurations other than the main configurations such as processors and memories are omitted, and the illustrations and descriptions focus on the elements and processes related to the technology disclosed in the present application.

[0024] A solution method for a constrained mixed binary quadratic programming problem using the alternating direction multiplier method will be described. Consider the following Equation 1 as a constrained mixed binary quadratic programming problem.

[0025]

Equation

[0026] Set X: = { {xi}i = 1,···,p}, set Y: = { {yi}i = 1,···,q} are sets of binary variables. Let x and y satisfy the constraint Ax + By = 0. This is a constraint that defines the relationship between the problems divided into f and g. ξ(x) ≤ 0 is an inequality constraint that x should satisfy, and const{C 0 ,,, C r} are various constraints such as logical constraints and logical constraints with channel constraints, and this constraint is processed by the constraint logic unit described later. f(x) and g(y) include QUBO (Quadratic Unconstrained Binary Optimization (unconstrained mixed binary quadratic optimization problem)) and Mixed-Binary QP (Quadratic Programming, mixed binary quadratic programming problem). The indicator function IS for set S is defined as follows.

[0027]

Equation

[0028] Using Equation 2 and setting A = I, B = -I (I is the identity matrix), Equation 1 can be expressed as follows. Here, introduce the vector v = x - y and define the augmented Lagrangian function as follows.

[0029]

Number

[0030] At this time, the problem of number 1 can be described as follows.

[0031]

Number

[0032] When the following optimization calculation is repeated according to the alternating direction multiplier method, it is known that when ρ is sufficiently large, x and y converge to a certain point as shown in number 5. k represents the number of times of the above repetition. For example, x k is the value of x in the k-th iteration calculation.

[0033]

Number

[0034] Hereinafter, a specific calculation method of number 5 is shown. The first formula of number 5 can be transformed as shown in number 6. That is, the coefficient matrix of the quadratic term of the corresponding formula is set as J~ := J - ρI, the coefficient vector of the linear term is set as h~ := h + ρ(y + v) - λ, and it is reduced to an unconstrained mixed binary quadratic programming problem when x is moved with y fixed.

[0035] Here, I is the identity matrix. This optimization problem can be efficiently solved by the Markov chain Monte Carlo method (MCMC).

[0036] Figure 1 is a conceptual diagram illustrating the relationship between the variable array of the optimization problem and the objective function value, and represents the landscape of the objective function value with respect to the variable array.

[0037] The horizontal axis of the graph is the variable array x, and the vertical axis is the value of the objective function -1 / 2·xJx - hx. MCMC repeats a probabilistic transition from the current state x to a state x' in the neighborhood of state x. The probability of transitioning from state x to state x' is called the transition probability P(x, x'). Examples of the transition probability P include the Metropolis Method and the Heat-bath algorithm. The transition probability has a parameter called temperature, which represents the ease of transition between states.

[0038] When MCMC is executed while gradually decreasing the temperature from a large value, the objective function value asymptotically converges to the state with the lowest value (the state with the lowest energy, B in Figure 1). The method that utilizes this to obtain the optimal solution or an approximate solution to the minimization problem is Simulated Annealing (hereinafter referred to as SA).

[0039]

Equation

[0040] The second equation in Equation 5 can be expressed as in Equation 7 using the vector c = x - y + λ / ρ. Here, this x is the x obtained immediately before from the first equation in Equation 5. That is, it is reduced to a constrained mixed binary quadratic programming problem when x is fixed and y is moved.

[0041]

Equation

[0042] The third equation in Equation 5 is a calculation formula for updating the vector v using the x and y obtained immediately before from the first and second equations in Equation 5, and the vector v before update.

[0043] In the aforementioned iterative calculation, the update formulas for various parameters for the next calculation are shown in Equation 8. Using the results obtained in the k-th iterative calculation, the parameters to be used in the next (k + 1)-th iterative calculation are calculated. Here, f uptade is a function of the parameter ρ used in the k-th iterative calculation. Functions that simply multiply by 1 (i.e., ρ remains the same value during the iterative calculation) or functions that multiply the k-th ρ by a constant are conceivable. When ρ is sufficiently large, the convergence of the solution is good, but if it is made too large, the more global solution search by MCMC is inhibited, and the possibility of converging to a local optimum solution increases.

[0044] Therefore, it is effective to start the calculation with a sufficiently small value of ρ and gradually increase it. Also, as is clear from Equation 1 and Equation 3, when x = y and v = 0 are satisfied, the constraints are satisfied and the solution has converged. Therefore, a function that updates ρ according to the change in the absolute value of v is also expected to be effective. For example, a function that selects whether to multiply by a constant according to the solution obtained in the k-th calculation or to use the same value as in the k-th calculation for the (k + 1)-th calculation by multiplying by 1 can be considered.

[0045]

Equation

[0046] In the update formula for γ in Equation 8, it is desirable to define α between 0 and 1. Empirically, good convergence is shown when the value is close to 1.

[0047] Figure 2 is a diagram illustrating the functional configuration that realizes the optimization system according to the embodiment.

[0048] The optimization system is composed of functional blocks of a problem input unit 11, a problem division unit 12, an annealing unit 13, a constraint logic unit 14, a parameter update unit 15, an end condition determination unit 16, and an output unit 17.

[0049] The problem input unit 11 has a function of inputting a mixed binary quadratic programming problem represented by numbers 1 to 3 into the information processing apparatus. At that time, it also has a function of inputting, in the form of mathematical expressions according to the problem to be solved, the definition of the decision variable x, the definitions of the objective functions f and g, and the definitions of various constraint conditions.

[0050] The problem division unit 12 has a function of dividing the problem input by the problem input unit 11 into mathematical expressions to be solved by the annealing unit 13 and mathematical expressions to be solved by the constraint logic unit 14, and outputting them. Specifically, it outputs the QUBO formula 101 for the annealing unit 13, and the inequality constraints 102 and the logical constraints 103 for the constraint logic unit 14. The output format may be a file or memory, but generally, since the amount of such information can reach several million lines depending on the problem to be solved, it is preferable to transfer by file.

[0051] As shown in FIG. 1, the annealing unit 13 performs solution search aiming at the minimum energy on the state space. The algorithm at this time uses an annealing method based on MCMC. The problem to be solved by the annealing unit 13 is as shown in Equation 6. The QUBO 101 passed from the problem division unit 12 is represented by J ij and h in Equation 6.

[0052] The constraint logic unit 14 is a functional block that solves the problem represented by Equation 7 using the inequality constraints 102 and the logical constraints 103 output from the problem division unit 12. Here, the inequality constraints 102 give the vectors L, U, and the matrix D in L≦Dy≦U in Equation 7. The logical constraints 103 give Const(C 0 , C 1 ,,, C r ). Here, r is the number of logical constraints. The objective function in the calculation of the constraint logic unit 14 does not necessarily include the objective function in the problem input by the problem input unit 11.

[0053] However, the objective function Σ(-cy) derived from the extended Lagrangian function method must be included. As an example, a SAT-type constraint satisfaction solver is used to search for the solution of the decision variable y. This is not the only case, and any solver that operates according to an algorithm having a function of minimizing the objective function expressed by Equation 7 while satisfying the inequality constraints and logical constraints expressed by binary variables may be used.

[0054] The parameter update unit 15 updates v represented by the third equation of Equation 5 and updates λ, ρ, and γ shown in Equation 8. Since the parameters updated here are used in the next iterative calculation, it has feedback paths to the annealing unit 13 and the constraint logic unit 14. Here, one iterative calculation consists of a series of calculations in a series of functional blocks of the annealing unit 13, the constraint logic unit 14, the parameter update unit 15, and the end condition determination unit 16.

[0055] The end condition determination unit 16 receives the result of the parameter update unit 15 and determines whether to perform the next iterative calculation or terminate the optimization calculation. The criteria for determination may include cases where the iterative calculation for a specified number of times has ended, a specified fixed time has elapsed, no update of the solution or the objective function value has been observed for a specified number of times, and the value of the convergence error x - y in Equation 4 has become less than or equal to the specified value.

[0056] The output unit 17 has a function of outputting the obtained solution after it is determined in the end condition determination unit 16 that the optimization calculation has ended. Various output methods can be considered, such as displaying the result on the screen or outputting it to a file. Also, when the output becomes an input to a larger system, it includes cases where the result is output to the system by communication or the like.

[0057] FIG. 3 is a diagram illustrating the hardware of a computer that realizes the optimization system 20 according to the embodiment.

[0058] Optimization system 20 includes, as hardware, a processor 21, a main memory device 22, an auxiliary storage device 23, an annealing device 24, an input / output device 25, and a system bus 26 that communicably connects these devices.

[0059] Optimization system 20 may be implemented using virtual information processing resources such as a cloud server, for example, where part or all of it is provided by a cloud system. Also, optimization system 20 may be implemented by, for example, a plurality of communicably connected information processing devices that operate in cooperation with each other.

[0060] Processor 21 controls the entire optimization system 20, refers to the data in main memory device 22, and executes the programs loaded in main memory device 22. For example, it is configured using a CPU (Central Processing Unit) or an MPU (Micro Processing Unit).

[0061] Main memory device 22 is a volatile storage device that stores programs and data. For example, it is a ROM (Read Only Memory), SRAM (Static Random Access Memory), NVRAM (Non Volatile RAM), mask ROM (Mask Read Only Memory), PROM (Programmable ROM), etc., RAM (Random Access Memory), DRAM (Dynamic Random Access Memory), etc.

[0062] The auxiliary storage device 23 is a non-volatile large-capacity storage device, such as an HDD (Hard Disk Drive), a flash memory, an SSD (Solid State Drive), an optical storage device (CD (Compact Disc), DVD (Digital Versatile Disc), etc.). Programs and data stored in the auxiliary storage device 23 are read into the main storage device 22 at any time.

[0063] The auxiliary storage device 23 has installed therein a problem division program 201, a constraint logic program 202, a parameter update program 203, and an end condition determination program 204. The problem division program 201, the constraint logic program 202, the parameter update program 203, and the end condition determination program 204 are programs that execute the functions of the problem division unit 12, the constraint logic unit 14, the parameter update unit 15, and the end condition determination unit 16, respectively.

[0064] The auxiliary storage device 23 also stores a QUBO formula 101, an inequality constraint 102, and a logical constraint 103.

[0065] The annealing device 24 has the function of the annealing unit 13 and is a device that executes processing related to searching for an optimal solution to a combinatorial optimization problem. For example, it may be in the form of an expansion card to be installed in the optimization system 20, such as a GPU (Graphic Processing Unit). The annealing device 24 is constituted by hardware such as a CMOS (Complementally Metal Oxide Semiconductors) circuit, an FPGA, or an ASIC. The annealing device 24 includes a control device, a storage device, an interface for connecting to the system bus 26, etc., and exchanges commands and information with the processor 21 via the system bus 26. The annealing device 24 may be communicably connected to another annealing device 24 via, for example, a communication line and operate in cooperation with the other annealing device 24. The functions realized by the annealing device 24 may be realized, for example, by causing the processor 21 to execute a program.

[0066] The input / output device 25 includes a user interface for receiving input of information from the user and a user interface for outputting calculation results. As the input device, for example, a keyboard, a mouse, a card reader, a touch panel, etc. are used. The output device is, for example, a display device (LCD (Liquid Crystal Display), a graphic card, etc.) for visualizing various information, an audio output device (a speaker), a printing device, etc. The input / output device 25 executes the functions of the problem input unit 11 and the output unit 17. Instead of the input / output device 25, an input device and an output device may be provided separately.

[0067] In the optimization system 20, the functions of the optimization system 20 are realized by a program being read from the auxiliary storage device 23 and executed by the cooperation of the processor 30 and the main storage device 22. Alternatively, the program for realizing the functions of the optimization system 20 may be acquired from an external computer by communication. Alternatively, the program for realizing the functions of the optimization system 20 may be recorded on a portable recording medium (optical disk, magnetic disk, magneto-optical disk, semiconductor storage medium, etc.) and read by a medium reader.

[0068] Also, the optimization system 20 may be an information processing system in which a plurality of devices cooperate to execute processing. The program for realizing the information processing system realizes the same functions as the optimization system 20 by causing each device to realize each function by each program.

[0069] Figure 4 shows the overall flow of the optimization process.

[0070] First, variable definition S1a is performed. Here, a variable is a quantity or index to be optimized in an optimization problem, such as x and y in Numbers 1 to 3.

[0071] Next, objective function definition S1b is performed. Using the defined variables, the optimization target is expressed and defined as a mathematical formula as the objective function. Next, constraint definition S1c is performed. The constraint conditions are expressed in the form of linear constraints and logical constraints as shown in Figure 2. Generally, constraints in optimization problems in the real world are often described in natural language, and these are expressed, described, and defined in mathematical formulas.

[0072] Variable definition S1a, objective function definition S1b, and constraint definition S1c are executed by the input / output device 25 that executes the function of the problem input unit 11 in the optimization system 20.

[0073] So far, the objective function and constraint conditions of the problem have been defined, so problem output S1d for optimization is performed. What is output are the QUBO and constraints. As shown in Figure 2, the constraints are output separately as linear constraints and logical constraints. Often, the optimization program and the program for describing the problem are separate, and the above is described in a script language for problem definition. For example, it is often described as a Python script.

[0074] Problem output S1d is executed on the problem input by the problem input unit 11 in the problem division unit 12 realized by the processor 21 loading the problem division program 12 in the optimization system 20, and outputs the QUBO formula 101, inequality constraint 102, and logical constraint 103, respectively.

[0075] Next, perform problem reading S1e to read the problem in the optimization program. As an example of problem reading S1e, the QUBO and constraints output in a file are expanded on the auxiliary storage device 23 in this flow. Next, enter the optimization procedure and start the alternating direction method of multipliers (S1f). As the first stop of the alternating direction method of multipliers, perform solution finding by annealing (S1g). Here, the optimization calculation described in number 6 is performed by annealing. The solution finding S1e by annealing is executed by the annealing device 24 in the optimization system 20.

[0076] After the calculation by annealing is completed, for example, set the initial solution in the SAT type constraint satisfaction solver (S1h). This purpose is to give a hint that makes it easy to find the constraint satisfaction solution in order to shorten the time for the SAT type constraint satisfaction solver to first find the constraint satisfaction solution.

[0077] For example, in the first iteration of the loop of the alternating direction method of multipliers, give a hint based on annealing, and from the second iteration onwards, give the best constraint satisfaction solution obtained by the SAT type constraint satisfaction solver in the previous iteration (the solution when the objective function value minimized by the SAT type constraint satisfaction solver is the smallest) as a hint. Here, the hint based on annealing means using the solution of annealing as a hint for the solution search of the SAT type constraint satisfaction solver. As another way of giving hints, there is also a method of inputting a previously obtained constraint satisfaction solution from the outside and utilizing it. Also, it has been found that when the problem becomes large-scale, the SAT type constraint satisfaction solver tends to be slow in finding the first constraint satisfaction solution. Therefore, in order to shorten the search time for the first constraint satisfaction solution, the solution search of the SAT type constraint satisfaction solver in the first iterative calculation of the alternating direction method of multipliers is likely to shorten the search time by excluding the objective function.

[0078] Next, solve the problem using a SAT-based constraint satisfaction solver (S1i). Solving the problem using a SAT-based constraint satisfaction solver may take a very long time when searching for the optimal solution. In particular, when dealing with large-scale problems in the real world, even if a feasible solution has been obtained by searching for the optimal solution, the search may continue. In this case, since the calculation time becomes long, it may become a demerit in actual operation. Therefore, it is determined in S1j whether a predetermined number of constraint satisfaction solutions have been found, and if the condition is satisfied, the solution search of the SAT-based constraint satisfaction solver is interrupted. The set number may be determined based on the scale of the problem to be solved and the time scale available for calculation.

[0079] Each of the processes S1h to S1i related to the SAT-based constraint satisfaction solver described above is executed by the logical constraint unit 14 realized by the processor 21 reading the constraint logic program 13 in the optimization system 20 after reading the inequality constraint 102 and the logical constraint 103.

[0080] When a predetermined number of solutions are found in the solution search by the SAT-based constraint satisfaction solver, update the parameters S1k. After that, save the obtained solutions (S1l). Various methods can be considered, such as saving all the obtained solutions or saving only the best case compared with the solutions obtained so far. This application includes all of these.

[0081] The parameter update S1k and the solution save S1l are executed by the parameter update unit 15 realized by the processor 21 reading the parameter update program 14 in the optimization system 20.

[0082] After saving the solution, it is determined whether the termination condition for the iterative calculation of the alternating direction multiplier method has been reached (S1m). It is advisable to consider a predetermined number of iterations, an upper limit of a predetermined calculation time, a predetermined residual error, etc., or use a combination of these conditions. If the termination condition has not been reached, the iterative calculation of the alternating direction multiplier method is continued, and the solution is obtained again by annealing (S1g). If the termination condition has been reached, the process proceeds to the output of the solution (S1n). In the output of the solution, all the constraint satisfaction solutions obtained may be output, or one of the best solutions may be output. These shall be designed according to the requirements that the optimization system should satisfy. The determination of the termination condition (S1m) is executed by the termination condition determination unit 16 realized by the processor 21 reading the termination condition determination program 15 in the optimization system 20.

[0083] The file format of the constraint logic in FIG. 2 will be described with reference to FIGS. 5 to 8.

[0084] FIG. 5 shows an example of the file format. F1 is the header of the file, and this header is used to determine whether the corresponding file is a logical constraint file. The format and content of the header do not need to be particularly limited as long as they are recognizable. However, it is necessary to make it recognizable on the side of the optimization solver to be read.

[0085] In FIG. 5, F2 to F5-4 are all described in one line, and one logical constraint is represented by this one line. It is assumed that all numbers are separated by delimiter characters such as spaces, tabs, and commas. F2 is the first number, which is the function number describing the type of the function for describing the logical constraint. F3 is the code indicating the channel constraint imposed on this logical constraint. Here, the channel constraint is what describes the conditions for imposing the logical constraint. For example, a certain logical constraint A needs to be satisfied when the channel constraint B is true, and does not need to be satisfied when the channel constraint B is false. F4 is the number of arguments of the channel constraint. F5-1 to F5-4 are the argument data that defines the arguments given to the logical constraint with three numbers as one unit.

[0086] Figure 6 shows the correspondence between function number F2 of the function for describing the logical constraints in Figure 5, the implementation of the problem input section, and the implementation of the constraint logic section.

[0087] Function numbers 0, 1, 2,..., N are in a state where a total of N + 1 types of logical constraint functions are registered. These are managed by function numbers, and there is a one-to-one correspondence between the function numbers, the implementation of the problem input section, and the implementation of the constraint logic section. These are described, for example, in the specifications of the optimization system, programming manuals, reference manuals, etc., and are referred to by users of the optimization system who formulate optimization problems. If the user formulates using the functions described in the implementation of the problem input section in Figure 6, it is assumed that the problem division section creates and outputs the format described in Figure 5.

[0088] Figure 7 is an example of a correspondence table showing code F3 indicating the channel constraints imposed on the logical constraints in Figure 5 and its content.

[0089] When F3 is 0, no channel constraint is imposed. When the code is 1 or more, channel constraints ChanConst_0, channel constraint ChanConst_1, channel constraint ChanConst_2,... are imposed in order. In Figure 7, ChanConst is registered M - 1 times. Figure 7 is also information that should be utilized for the user formulating to understand what channel constraints they are corresponding to.

[0090] Figure 8 shows what each term represents for a set of argument data of logical constraints described by three numbers F5 - 1 to F5 - 4 in Figure 5.

[0091] The first term indicates the attribute of the third term. When it is 0, it is a variable ID. When it is 1, it is the ID of a variable and indicates that the Not attribute is to be given to that variable. When it is 2, it indicates that the third term is recognized as a number rather than a variable.

[0092] The second term indicates the coefficient to be multiplied by the third term. The third term changes in the content it represents according to the first term, but it indicates either the ID number of a variable or a number.

[0093] Figures 9 to 11 show how the content described in the logical constraints is described in the constraint logic unit. Even if the argument data described in F5-1 to F5-4 is exactly the same, if the corresponding logical constraint functions are different, they will be processed differently in the constraint logic unit.

[0094] For example, in Figures 9 and 10, the argument data of the logical constraints is exactly the same, but there is a difference in the functions applied, namely Const_CP_4 or Const_CP_5. As shown in Figure 9, in Const_CP_4, the argument data is used in the form of a sum: 123*var

[0456] +156*var

[0100] .Not()+1+3*var[0]. As shown in Figure 10, in Const_CP_5, it is used as an argument in the form of an array: [123*var

[0456] ,156*var

[0100] .Not(),1,3*var[0]]. These are determined in advance in the constraint logic unit 14, and the corresponding rules are applied.

[0095] Figure 11 has almost the same content as Figure 9, but is different in that channel constraints are imposed.

[0096] For example, in Figure 11, since F3-2 is set to 1, the channel constraint ChanConst_0 is applied. Since F4-2 is set to 2, two arguments are set for ChanConst_0.

[0097] Next, with reference to Figure 12, the operation for obtaining the optimal solution (converged solution) will be described.

[0098] As shown in Figure 12, the optimal solution (converged solution) of the mixed binary quadratic programming problem with constraints is searched for.

[0099] The annealing unit 13 performs a first search for an annealing solution that reduces the value of the objective function of the mixed binary quadratic programming problem. The constraint logic unit 14 performs a second search for a constraint satisfaction solution that satisfies the constraint conditions.

[0100] The annealing unit 13 uses the first solver to reduce the objective function value in the vicinity of the constraint satisfaction solution ru and performs a first search for the annealing solution. On the other hand, the constraint logic unit 14 uses the second solver to perform a second search for the constraint satisfaction solution in the vicinity of the annealing solution obtained by the annealing unit. Then, the iterative process of the first search and the second search is executed to obtain the optimal solution (converged solution).

[0101] Taking FIG. 12 as an example, the operation for obtaining the optimal solution (converged solution) will be specifically described. First, the annealing unit 13 searches for an annealing solution that reduces the value of the objective function for the entire objective function, and as a result, obtains an annealing solution 1. Next, the constraint logic unit 14 searches for a constraint satisfaction solution that satisfies the constraint conditions in the vicinity of the annealing solution 1 (initial solution) (the region shown by the second search in the figure), and as a result, obtains a constraint satisfaction solution 1. Subsequently, the annealing unit 13 searches for an annealing solution that reduces the value of the objective function in the vicinity of the constraint satisfaction solution 1 (the region shown by the first search in the figure), and as a result, obtains an annealing solution 2. Furthermore, the constraint logic unit 14 searches for a constraint satisfaction solution that satisfies the constraint conditions in the vicinity of the annealing solution 2, and as a result, obtains a constraint satisfaction solution 2. In this way, the first search by the annealing unit 13 and the second search by the logical constraint unit 14 are repeated until the termination condition is reached, and the optimal solution is obtained.

[0102] For example, the constraint logic unit 14 performs the second search using a SAT-type constraint satisfaction solver that operates according to an algorithm having a function of minimizing the value of the objective function as the second solver. Also, although the annealing unit uses simulated annealing as the first solver, other metaheuristic algorithms that heuristically search for a solution close to the solution that minimizes the value of the objective function may be used.

[0103] Here, the operation of searching for a nearby range of states and energies to update the next solution is called neighborhood search. As shown in FIG. 12, a first search for searching for a solution with low energy in the neighborhood of the solution obtained by the SAT-type constraint satisfaction solver and a second search for searching for a constraint-satisfied solution in the neighborhood of the solution obtained by annealing are alternately repeated to obtain an optimal solution (converged solution).

[0104] As described above, in the above embodiment, QUBO is solved by annealing, and logical constraints that are difficult to satisfy by annealing, a linear programming solver, or existing continuous optimization algorithms are satisfied by a second solver (SAT-type constraint satisfaction solver) as a constraint logic problem while solving. In annealing, a search for a solution that can lower the objective function value is performed in the neighborhood of the solution obtained by the solution of the SAT-type constraint satisfaction solver, and the SAT-type constraint satisfaction solver performs a search for a solution that satisfies the constraints in the neighborhood of the solution obtained by annealing. These are alternately repeated to obtain a final constraint-satisfied solution.

[0105] Referring to FIG. 13, an example of the content output by the output unit 17 is shown.

[0106] As shown in FIG. 13, the output unit 17, for example, displays the process until the optimal solution is obtained as a graph. Here, the vertical axis of the graph is energy, and the horizontal axis is the number of repetitions or the repetition time. By executing the repeated processing of the first search and the second search (see FIG. 12), the energy is gradually lowered, and an optimal solution (converged solution) is obtained.

[0107] According to the above embodiment, a constraint-satisfied solution that is difficult to derive by annealing alone can be obtained. Furthermore, a mixed binary quadratic programming problem that cannot be solved by a SAT-type constraint satisfaction solver alone can be solved.

[0108] As described above, according to the above embodiment, in a mixed binary quadratic programming problem, a solution that satisfies constraints applicable only when logical constraints and certain conditions are satisfied can be obtained, and a binary quadratic optimization problem including complex logical constraints with channel constraints can be solved without breaking the constraints.

[0109] The above embodiments are applicable to, for example, crew operation planning, equipment operation planning, scheduling optimization, financial portfolio optimization, and the like.

Explanation of Signs

[0110] 11 Problem input section 12 Problem division section 13 Annealing section 14 Constraint logic section 15 Parameter update section 16 End condition determination section 17 Output section 101 QUBO 102 Inequality constraint 103 Logic constraint 20 Optimization system 21 Processor 22 Main memory device 23 Auxiliary storage device 24 Annealing device 25 Input / output device

Claims

1. An optimization system for searching for an optimal solution to a mixed binary quadratic programming problem with constraints, an annealing unit that performs a first search for an annealing solution that reduces the value of the objective function of the mixed binary quadratic programming problem, and a constraint logic unit that performs a second search for a constraint satisfaction solution that satisfies the constraints, and the annealing unit uses a first solver to perform the first search for the annealing solution so as to reduce the objective function value in the vicinity of the constraint satisfaction solution, the constraint logic unit uses a second solver to perform the second search for the constraint satisfaction solution in the vicinity of the annealing solution obtained by the annealing unit, and an optimization system characterized by obtaining the optimal solution by executing iterative processing of the first search and the second search.

2. The constraint logic unit uses, as the second solver, a SAT-type constraint satisfaction solver that operates according to an algorithm having a function of minimizing the value of the objective function to perform the second search, according to the optimization system according to claim 1.

3. The constraint logic unit ends the second search when a predetermined number of the constraint satisfaction solutions are found, according to the optimization system according to claim 1.

4. The constraint logic unit ends the second search when a predetermined solution search time has elapsed, according to the optimization system according to claim 1.

5. further includes a problem input unit, a problem division unit, a parameter update unit, an end condition determination unit, and an output unit, the problem input unit inputs the mixed binary quadratic programming problem, the problem division unit divides the mixed binary quadratic programming problem input by the problem input unit into a QUBO formula to be solved by the annealing unit and a constraint formula to be solved by the constraint logic unit, and outputs them, the annealing unit uses the QUBO formula to perform the first search for the annealing solution, the constraint logic unit uses the constraint formula to perform the second search for the constraint satisfaction solution, the parameter update unit updates predetermined parameters and feeds back to the annealing unit and the constraint logic unit, the end condition determination unit determines whether to end the iterative processing of the first search and the second search based on the result of the parameter update unit based on a predetermined end condition. When it is determined not to end the iterative process based on the predetermined end condition, the iterative process of the first search in the annealing unit and the second search in the constraint logic unit is executed. The optimization system according to claim 1, wherein when it is determined to end the iterative process based on the predetermined end condition, the optimal solution is output to the output unit.

6. The problem input unit executes a conversion process of converting the mixed binary quadratic programming problem into an extended Lagrangian function having a first variable vector and a second variable vector including the objective function, the constraint expression, and a penalty term based on the constraint expression as variables. The problem division unit converts the objective function and the penalty term into the QUBO expression and transmits them to the annealing unit, and transmits the constraint expression to the constraint logic unit. The annealing unit searches for an optimal solution of the first variable vector that optimizes the extended Lagrangian function in the alternating direction multiplier method using a predetermined optimization algorithm for the mixed binary quadratic programming problem. The constraint logic unit searches for an optimal solution of the second variable vector that optimizes the extended Lagrangian function in the alternating direction multiplier method using the SAT type constraint satisfaction solver so as to satisfy the constraint expression. The parameter update unit The optimization system according to claim 5, wherein the parameters of the extended Lagrangian function are updated and fed back to the annealing unit and the constraint logic unit.

7. The problem division unit The optimization system according to claim 6, wherein the constraint expression is divided into an inequality constraint and a logical constraint and transmitted to the constraint logic unit.

8. The logical constraint includes a channel constraint, The optimization system according to claim 7, wherein the channel constraint describes a condition that the logical constraint should satisfy.

9. The logical constraint has a format that represents one constraint in one line, and includes ID information of the function of the logical constraint, ID information of the channel constraint, information on the number of variables input to the channel constraint, and variable information included in the logical constraint and the channel constraint. The optimization system according to claim 7, characterized by being configured.

10. The variable information includes the attribute of the variable, the coefficient multiplied by the variable, and the variable. The attribute of the variable defines whether the variable is a variable, a variable with a NOT attribute, or a constant. The variable is the optimization system according to claim 9, characterized in that it represents either a variable corresponding to the attribute of the variable, a variable to which the NOT attribute is assigned, or the constant. **Claim 11** The end condition determination unit the optimization system according to claim 5, characterized in that as the predetermined end condition, the iterative process is repeated a predetermined number of times. **Claim 12** The end condition determination unit the optimization system according to claim 5, characterized in that as the predetermined end condition, the iterative process is repeated until a predetermined time for the iterative process has elapsed. **Claim 13** The output unit the optimization system according to claim 5, characterized in that it displays, as a graph, the process until the optimal solution is obtained by executing the iterative processes of the first search and the second search. **Claim 14** An optimization method for searching for an optimal solution of a mixed binary quadratic programming problem with constraint conditions, an annealing step of performing a first search for an annealing solution that lowers the value of the objective function of the mixed binary quadratic programming problem by an annealing unit, a constraint logic step of performing a second search for a constraint satisfaction solution that satisfies the constraint conditions by a constraint logic unit, and having the annealing step performing the first search for the annealing solution so as to lower the objective function value in the vicinity of the constraint satisfaction solution using a first solver, the constraint logic step performing the second search for the constraint satisfaction solution in the vicinity of the annealing solution obtained by the annealing unit using a second solver, an optimization method characterized by obtaining the optimal solution by executing the iterative processes of the first search and the second search. **Claim 15** An optimization program for searching for an optimal solution of a mixed binary quadratic programming problem with constraint conditions, an annealing function for performing a first search for an annealing solution that lowers the value of the objective function of the mixed binary quadratic programming problem, a constraint logic function for performing a second search for a constraint satisfaction solution that satisfies the constraint conditions, causing a computer to execute, the annealing function performing the first search for the annealing solution so as to lower the objective function value in the vicinity of the constraint satisfaction solution using a first solver, the constraint logic function performing the second search for the constraint satisfaction solution in the vicinity of the annealing solution obtained by the annealing unit using a second solver, an optimization program characterized by obtaining the optimal solution by executing the iterative processes of the first search and the second search.

Citation Information

Patent Citations

  • JP133-121046A