Program, data processing method, and data processing device

By dividing high-order objective functions into sub-functions and applying weighted search methods, the data processing device efficiently escapes local solutions, speeding up the solution-finding process for combinatorial optimization problems.

JP2025157966APending Publication Date: 2025-10-16FUJITSU LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2024060359
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-04-03
Publication Date
2025-10-16

AI Technical Summary

Technical Problem

High-order objective functions such as QUBO and HOBO take a long time to solve, and once a local solution is found, it is difficult to escape from, making it challenging to obtain a better solution.

Method used

A data processing device and method that divides the objective function into first and second sub-functions based on positive and negative coefficients, and applies a weight greater than 1 to specific sub-functions during the search process to escape local solutions, using methods like greedy search or tabu search.

Benefits of technology

This approach speeds up the solution-finding process by enabling the device to efficiently escape local solutions and increase the likelihood of reaching a good solution in a shorter time.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025157966000001_ABST
    Figure 2025157966000001_ABST
Patent Text Reader

Abstract

To find a solution at a higher speed.SOLUTION: A processing section 12 searches for a solution represented by a plurality of state variables on the basis of a first objective function of quadratic or higher order that relates to the plurality of state variables. The first objective function is represented by a sum of a plurality of first sub-functions, each of which has one term of which coefficients are positive or is a sum of two or more terms of which the coefficients are positive, and a plurality of second sub-functions, each of which has one term of which the coefficients are negative or is a sum of two or more terms of which the coefficients are negative. When a first solution is reached in the search, the processing section 12 continues the search from the first solution on the basis of a second objective function obtained from the first objective function. The second objective function is obtained by multiplying at least any of the first sub-functions including the terms that have positive values in the first solution among the plurality of the first sub-functions and the second sub-functions including the terms that have values of zero in the first solution among the plurality of second sub-functions, by a weight value greater than one.SELECTED DRAWING: Figure 1
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 method, and a data processing device. [Background technology]

[0002] Information processing devices are sometimes used to solve combinatorial optimization problems. Combinatorial optimization problems are formulated using an objective function that indicates the energy of the Ising model. The Ising model is a model that represents the behavior of spin in magnetic materials. The objective function is sometimes called an energy function or an evaluation function.

[0003] The information processing device searches for a combination of state variable values ​​included in an objective function that minimizes the objective function value, for example. In this case, the combination of state variable values ​​that minimizes the objective function value corresponds to a ground state or an optimal solution represented by the set of state variables. Methods for obtaining an approximate solution to a combinatorial optimization problem in a practical amount of time include, for example, the greedy search method and the tabu search method.

[0004] Here, there has been proposed an information processing device that solves combinatorial optimization problems using a technique called a simulated bifurcation algorithm. In addition, in order to solve the QUBO (Quadratic Unconstrained Binary Optimization) problem using a quantum annealing machine, an assignment device has been proposed that assigns variables of the QUBO problem to multiple nodes on a Chimera graph.

[0005] Another proposal is a system that breaks down an optimization problem to be solved into two subproblems, assigns one subproblem to a classical computer and one subproblem to a quantum computer, and transmits the solution results of the classical and quantum computers back and forth.

[0006] Furthermore, a method has been proposed in which root cause analysis (RCA) is associated with the minimum vertex cover problem, formulated in QUBO, and solved using a quantum annealing process. [Prior art documents] [Patent documents]

[0007] [Patent Document 1] Patent Publication No. 2021-43667 [Patent Document 2] Japanese Patent Publication No. 2022-19432 [Patent Document 3] US Patent Application Publication No. 2022 / 0414518 [Patent Document 4] US Patent Application Publication No. 2022 / 0224590 Summary of the Invention [Problem to be solved by the invention]

[0008] Problems expressed by high-order objective functions such as QUBO or HOBO (Higher Order Binary Optimization) have the problem of taking a long time to solve. For example, if a problem falls into a local solution during solution search, it becomes difficult to escape from the local solution, making it difficult to obtain a better solution.

[0009] In one aspect, the present invention aims to speed up solution processing. [Means for solving the problem]

[0010] In one embodiment, a program is provided that causes a computer to perform the following process: the computer searches for a solution represented by a plurality of state variables based on a first objective function of degree 2 or greater related to a plurality of state variables, the first objective function being represented by the sum of a plurality of first subfunctions, each of which is a term with a positive coefficient or a sum of two or more terms with positive coefficients, and a plurality of second subfunctions, each of which is a term with a negative coefficient or a sum of two or more terms with negative coefficients. When the computer reaches a first solution in the search, it continues the search from the first solution based on a second objective function obtained from the first objective function, the second objective function being obtained by multiplying, by a weight value greater than 1, at least one of a first subfunction among the plurality of first subfunctions that includes a term whose value in the first solution is positive and a second subfunction among the plurality of second subfunctions that includes a term whose value in the first solution is zero.

[0011] Also, in one aspect, a computer-implemented data processing method is provided. Also, in one aspect, a data processing device is provided having a storage unit and a processing unit. [Effects of the Invention]

[0012] On the one hand, it can speed up the solution. [Brief explanation of the drawings]

[0013] [Figure 1] FIG. 1 is a diagram illustrating a data processing device according to a first embodiment. [Figure 2] FIG. 10 illustrates an example of hardware of a data processing device according to a second embodiment. [Figure 3] FIG. 2 is a diagram illustrating an example of functions of a data processing device. [Figure 4] 10 is a flowchart showing a processing procedure of the data processing device. [Figure 5] 10 is a flowchart showing another processing procedure of the data processing device. [Figure 6] FIG. 10 is a diagram illustrating an example of a solution search in which weights multiplied on constraint terms are adaptively changed. DETAILED DESCRIPTION OF THE INVENTION

[0014] The present embodiment will be described below with reference to the drawings. [First embodiment] A first embodiment will be described.

[0015] FIG. 1 is a diagram illustrating a data processing device according to a first embodiment. The data processing device 10 searches for a solution to a combinatorial optimization problem and outputs the searched solution. The data processing device 10 has a storage unit 11 and a processing unit 12.

[0016] The storage unit 11 may be a volatile semiconductor memory such as a random access memory (RAM), or a non-volatile storage such as a hard disk drive (HDD) or flash memory. The storage unit 11 may include an electronic circuit such as a register. The processing unit 12 is, for example, a processor such as a central processing unit (CPU), a graphics processing unit (GPU), or a digital signal processor (DSP). The processor may execute a program stored in a memory such as a RAM (which may be the storage unit 11). A set of multiple processors may be referred to as a "multiprocessor" or simply as a "processor." The processing unit 12 may be a processor implemented by an electronic circuit for a specific application such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA).

[0017] A combinatorial optimization problem is formulated by an objective function that indicates the energy of the Ising model, and can be replaced by, for example, a problem of minimizing the value of the objective function. The objective function includes multiple state variables. The state variables are binary variables that take on values ​​of 0 or 1. The state variables may also be called bits. The solution to the combinatorial optimization problem is represented by the values ​​of the multiple state variables.

[0018] For example, the value of the objective function, i.e., the solution that minimizes the energy of the Ising model, represents the ground state of the Ising model and corresponds to the optimal solution of the combinatorial optimization problem. The combinatorial optimization problem is formulated using the objective function z(x) of QUBO or HOBO. That is, the objective function z(x) includes quadratic or higher terms related to the state variables. In this case, the objective function z(x) is expressed, for example, by Equation (1).

[0019]

number

[0020] The state vector x has multiple state variables as elements and represents the state of the Ising model. i ,c ij ,c ijk ,... are real coefficients. If the problem is to maximize the value of the objective function, simply reverse the sign of z(x). The objective function z(x) may also be called the first objective function.

[0021] The processing unit 12 searches for a solution to the problem formulated by the objective function of equation (1). First, the processing unit 12 divides each term of the objective function z(x) into two groups: a first group of terms with a positive coefficient c, and a second group of terms with a negative coefficient c.

[0022] The processing unit 12 divides each term belonging to the first group into p (p is an integer of 2 or more) first subgroups. The number of terms included in a first subgroup is 1 or more. Various methods can be used for dividing into p first subgroups. For example, the processing unit 12 may divide the terms so that the sum of the absolute values ​​of the coefficients included in the terms in each first subgroup is equal. The processing unit 12 calculates the sum of the terms belonging to each first subgroup, thereby generating p first sub-functions f1, f2, ..., f p get.

[0023] Furthermore, the processing unit 12 divides each term belonging to the second group into s (s is an integer of 2 or more) second subgroups. The number of terms included in a second subgroup is 1 or more. Various methods can be used for dividing into s second subgroups. For example, the processing unit 12 may divide the terms so that the sum of the absolute values ​​of the coefficients included in the terms in each second subgroup is equal. For each second subgroup, the processing unit 12 calculates the sum of the terms belonging to the second subgroup, thereby generating s second subfunctions g1, g2, ..., g s get.

[0024] Then, the objective function z(x) in equation (1) is expressed as p first sub-functions f1,...,f p and s second subfunctions g1,…,g s Using this, it is expressed as equation (2).

[0025]

number

[0026] First sub-function f1,f2,…,f p is a QUBO or HOBO with all coefficients c positive. The second subfunctions g1, g2, ..., g s is a QUBO or HOBO with all negative coefficients c.

[0027] As an example, assume that z(x) = 3x1x2 + 6x1x3 + 5x1x2x4 - 4x2x3 - x1x4 - x1x2x3. In this case, the processing unit 12 can set f1(x) = 3x1x2, f2 = 6x1x3 + 5x1x2x4, g1(x) = -4x2x3, and g2(x) = -x1x4 - x1x2x3. Then, the processing unit 12 can obtain z(x) = f1(x) + f2(x) + g1(x) + g2(x).

[0028] The processing unit 12 searches for a solution using a greedy search method based on the objective function z(x) of equation (1) or equation (2). The greedy search method is also called a greedy search method or a steepest descent method. The greedy search method is a technique for searching for a solution by transitioning to a state with the lowest energy among candidate transition destination states for the current state. The state after transition from the current state is a state in which the value of one of the multiple state variables corresponding to the current state is inverted. Here, in the greedy search method, if there is no candidate transition destination state with lower energy than the current state, the state transition will be stalled. If there is no candidate transition destination state with lower energy than the current state, the current state is said to be a local solution.

[0029] When the processing unit 12 reaches a first solution in the search based on the objective function z(x), it continues the search from the first solution based on the objective function z~(x) obtained from the objective function z(x). The first solution is, for example, a local solution. "z~" indicates a character with a tilde symbol above z. The objective function z~(x) is a function obtained by multiplying at least one of the first sub-functions of the multiple first sub-functions in Equation (2), whose value at the first solution is positive, and at least one of the second sub-functions of the multiple second sub-functions, whose value at the first solution is zero, by a weight value greater than 1. The weight values ​​multiplied by the corresponding first sub-functions and second sub-functions may be the same or different. The objective function z~(x) is generally expressed by Equation (3).

[0030]

number

[0031] α=(α1,α2,…,α p ) and β = (β1,β2,…,β s ) is a weight vector. The elements α1,…,α p , and the elements β1,…,β of β sEach of these corresponds to a weight value. The initial value of each element of the weight vectors α and β is 1. When all elements of the weight vectors α and β are 1, the objective function z~(x) coincides with the objective function z(x). When at least one element of α or β is greater than 1, the objective function z~(x) may be called a second objective function.

[0032] The processing unit 12 continues searching for a solution by a greedy method based on the objective function z~(x). As a result, for example, a first solution that was a local solution for the objective function z(x) is no longer a local solution for the objective function z~(x), and state transition is promoted. However, the processing unit 12 also calculates energy based on the objective function z(x) for the state obtained by the search using the objective function z~(x), and stores the energy in the storage unit 11. The processing unit 12 may store the best energy calculated using the objective function z(x) and the state corresponding to the best energy in the storage unit 11.

[0033] Here, the search using the objective function z~(x) may further result in a local solution (second solution). In this case, the processing unit 12 continues the search based on an objective function in which the weights of the first sub-function including the term whose value in the second solution is positive and the second sub-functions including the term whose value in the second solution is zero among the multiple second sub-functions in Equation (3) are further increased. For the state obtained by this search, the processing unit 12 also calculates the energy based on the original objective function z(x) and stores it in the storage unit 11.

[0034] When the search for the fixed time is completed, the processing unit 12 outputs the best energy and the state corresponding to the best energy as the final solution. Alternatively, the processing unit 12 may output the first sub-functions f1, ..., f p There are no terms with positive values ​​in the second subfunction g1,...,g s When a state is reached where there are no terms that are 0, that state is output as the optimal solution.

[0035] In the above example, the processing unit 12 uses the greedy search method to search for a solution, but other search methods such as the tabu search method may also be used. The data processing device 10 searches for a solution expressed by a plurality of state variables based on a first objective function of degree 2 or higher relating to the plurality of state variables. The first objective function is expressed as a sum of a plurality of first sub-functions, each of which is a term with a positive coefficient or a sum of two or more terms with positive coefficients, and a plurality of second sub-functions, each of which is a term with a negative coefficient or a sum of two or more terms with negative coefficients. When a first solution is reached in the search, the search is continued from the first solution based on a second objective function obtained from the first objective function. The second objective function is a function obtained by multiplying, by a weight value greater than 1, at least one of the first sub-functions, which includes a term whose value in the first solution is positive, and the second sub-functions, which includes a term whose value in the first solution is zero, among the plurality of first sub-functions. This enables the data processing device 10 to speed up solution-finding.

[0036] Here, in the first objective function, when the value of a certain state variable is inverted from 0 to 1, the evaluation value of the first sub-function (f) is non-decreasing and the evaluation value of the second sub-function (g) is non-increasing. The opposite is true when the value of a certain state variable is inverted from 1 to 0.

[0037] Also, if it is not the optimal solution, it is possible to either flip at most k state variables from 1 to 0 for the kth order HOBO to truly reduce any of the first subfunctions (f), or flip at most k state variables from 0 to 1 to truly reduce any of the second subfunctions (g).

[0038] Therefore, the processing unit 12 uses a second objective function in which the coefficients of the first sub-function, which includes a term whose value is positive in the first solution, and the coefficients of the second sub-functions, which include a term whose value is zero in the first solution, are updated to sufficiently large values ​​in the first objective function. This allows the processing unit 12 to generate transition destination candidates that make the energy change amount (Δz~) in the second objective function negative. This means that the original solution (first solution) is no longer a local solution in the second objective function. Therefore, the processing unit 12 can escape from the first solution and continue to efficiently search for a good solution. In this way, the data processing device 10 can increase the possibility of arriving at a good solution in a short time, thereby speeding up solution-finding.

[0039] [Second embodiment] Next, a second embodiment will be described. FIG. 2 illustrates an example of hardware of a data processing device according to the second embodiment.

[0040] The data processing device 100 searches for a solution to a combinatorial optimization problem using a greedy search method, a tabu search method, or the like, and outputs the searched solution. The combinatorial optimization problem is formulated using a QUBO or HOBO objective function, and is converted into a problem of minimizing the value of the objective function. The objective function is expressed by Equation (1).

[0041] The data processing device 100 has a processor 101, a RAM 102, a HDD 103, a GPU 104, an input interface 105, a media reader 106, and a communication interface 107. These units of the data processing device 100 are connected to a bus inside the data processing device 100. The processor 101 corresponds to the processing unit 12 in the first embodiment. The RAM 102 or the HDD 103 corresponds to the storage unit 11 in the first embodiment.

[0042] The processor 101 is an arithmetic device that executes program instructions. The processor 101 is, for example, a CPU. The processor 101 loads at least a portion of the program and data stored in the HDD 103 into the RAM 102 and executes the program. The processor 101 may include multiple processor cores. The data processing device 100 may also have multiple processors. The processing described below may be executed in parallel using multiple processors or processor cores. A set of multiple processors may also be called a "multiprocessor" or simply a "processor." A processor may also be called a "processor circuitry."

[0043] The RAM 102 is a volatile semiconductor memory that temporarily stores programs executed by the processor 101 and data used in calculations by the processor 101. Note that the data processing device 100 may include a type of memory other than RAM, or may include multiple memories.

[0044] The HDD 103 is a nonvolatile storage device that stores software programs such as an OS (Operating System), middleware, and application software, as well as data. The data processing device 100 may also include other types of storage devices, such as flash memory or an SSD (Solid State Drive), or may include multiple nonvolatile storage devices.

[0045] The GPU 104 outputs an image to a display 111 connected to the data processing device 100 in accordance with an instruction from the processor 101. The display 111 may be any type of display, such as a CRT (Cathode Ray Tube) display, a liquid crystal display (LCD: Liquid Crystal Display), a plasma display, or an organic EL (OEL: Organic Electro-Luminescence) display.

[0046] The input interface 105 acquires an input signal from an input device 112 connected to the data processing device 100 and outputs the signal to the processor 101. The input device 112 may be a pointing device such as a mouse, a touch panel, a touch pad, or a trackball, a keyboard, a remote controller, or a button switch. In addition, multiple types of input devices may be connected to the data processing device 100.

[0047] The medium reader 106 is a reading device that reads programs and data recorded on the recording medium 113. For example, a magnetic disk, an optical disk, a magneto-optical disk (MO: Magneto-Optical disk), a semiconductor memory, etc. can be used as the recording medium 113. Magnetic disks include flexible disks (FD: Flexible Disks) and HDDs. Optical disks include compact discs (CDs) and digital versatile discs (DVDs).

[0048] The medium reader 106 copies programs and data read from the recording medium 113 to another recording medium such as the RAM 102 or the HDD 103. The read programs are executed by the processor 101, for example. The recording medium 113 may be a portable recording medium, which may be used to distribute programs and data. The recording medium 113 and the HDD 103 may also be referred to as computer-readable recording media.

[0049] The communication interface 107 is connected to a network 114 and communicates with other information processing devices via the network 114. The communication interface 107 may be a wired communication interface connected to a wired communication device such as a switch or a router, or may be a wireless communication interface connected to a wireless communication device such as a base station or an access point.

[0050] FIG. 3 is a diagram illustrating an example of functions of the data processing device. The data processing device 100 has a memory unit 120, a term division unit 130, a search unit 140, and a coefficient adjustment unit 150. The memory unit 120 uses the storage areas of the RAM 102 and the HDD 103. The term division unit 130, the search unit 140, and the coefficient adjustment unit 150 are realized by the processor 101 executing a program stored in the RAM 102.

[0051] The storage unit 120 stores data used in the processing of the term division unit 130, the search unit 140, and the coefficient adjustment unit 150. The term dividing unit 130 divides each term of the objective function z(x) in equation (1) into two groups: a first group of terms whose coefficient c is positive, and a second group of terms whose coefficient c is negative.

[0052] The term division unit 130 divides each term belonging to the first group into p (p is an integer of 2 or more) first subgroups. The number of terms included in a first subgroup is 1 or more. Various methods can be used for dividing into p first subgroups. For example, the term division unit 130 may divide the terms so that the sum of the absolute values ​​of the coefficients included in the terms in each first subgroup is equal. The term division unit 130 calculates the sum of the terms belonging to each first subgroup, and thereby divides p first sub-functions f1, f2, ..., f p get.

[0053] Furthermore, the term division unit 130 divides each term belonging to the second group into s (s is an integer of 2 or more) second subgroups. The number of terms included in a second subgroup is 1 or more. Various methods can be used for dividing into s second subgroups. For example, the term division unit 130 may divide the terms so that the sum of the absolute values ​​of the coefficients included in the terms in each second subgroup is equal. For each second subgroup, the term division unit 130 calculates the sum of the terms belonging to the second subgroup, thereby dividing into s second sub-functions g1, g2, ..., g s get.

[0054] Then, the objective function z(x) in equation (1) is expressed as p first sub-functions f1,...,f p and s second subfunctions g1,…,gs Using this, it is expressed as equation (2). Here, the term dividing unit 130 may divide the plurality of first subgroups and the plurality of second subgroups as follows: As an example, let p=s=10.

[0055] First, the term division unit 130 divides each term included in the formula (1) into two groups based on whether the coefficient is positive or negative. As a result, each term is divided into a first group with positive coefficients and a second group with negative coefficients.

[0056] Next, the term division unit 130 randomly rearranges the order of the terms belonging to the first group to create a sequence. The term division unit 130 randomly rearranges the order of the terms belonging to the second group to create a sequence.

[0057] Then, the term division unit 130 calculates the sum A of the absolute values ​​of the coefficients of each term belonging to the first group. For the column of terms created for the first group, the term division unit 130 calculates the cumulative sum of the absolute values ​​of the coefficients, starting from the end of the column, and when the cumulative sum reaches A / 10, the group of terms corresponding to the coefficients included in the cumulative sum becomes one first subgroup. By sequentially repeating this process, the term division unit 130 obtains 10 first subgroups.

[0058] Similarly, the term division unit 130 calculates the sum B of the absolute values ​​of the coefficients of each term belonging to the second group. For the column of terms created for the second group, the term division unit 130 calculates the cumulative sum of the absolute values ​​of the coefficients, starting from the end of the column, and when the cumulative sum reaches B / 10, the group of terms corresponding to the coefficients included in the cumulative sum is treated as one second subgroup. By sequentially repeating this process, the term division unit 130 obtains 10 second subgroups.

[0059] In this way, the term division unit 130 classifies the first sub-functions into a plurality of first sub-functions so that the difference in the sum of the coefficients for each first sub-function is small, i.e., so that the sum is uniform. In addition, the term division unit 130 classifies, among the plurality of terms included in the original objective function, terms with negative coefficients into a plurality of second sub-functions so that the difference in the sum of the absolute values ​​of the coefficients for each second sub-function is small, i.e., so that the sum is uniform.

[0060] The term division unit 130 assigns weighting coefficients α1, . . . , α p ,β1,…,β s The term division unit 130 multiplies the weighting coefficients α1,...,α p ,β1,…,β s The initial value of is set to 1. That is, in the initial stage, z~(x)=z(x). Note that the weighting coefficient may also be called a weighting value.

[0061] The search unit 140 searches for a solution based on an Ising-type objective function as follows. First, the search unit 140 calculates the weighting coefficients α1, . . . , α p ,β1,…,β s A solution is searched for based on the objective function z~(x)=z(x) of equation (3) where z is set to an initial value of 1. The search unit 140 uses a greedy search method to search for a solution. The search unit 140 may also use other search methods, such as a tabu search method.

[0062] The search by the search unit 140 may fall into a local solution. For example, when there is no next transition destination candidate state that improves the energy of the current state, the search unit 140 detects that the search unit 140 has fallen into a local solution and notifies the coefficient adjustment unit 150 that the search unit 140 has fallen into a local solution.

[0063] When the search unit 140 falls into a local solution during the search, the coefficient adjustment unit 150 adjusts the weighting coefficients α1, . . . , α p ,β1,…,β s The coefficient adjustment unit 150 updates the first sub-functions f1, f2, ..., f included in the objective function of equation (3) in the immediately preceding search as follows: pThe coefficient adjustment unit 150 increases the weighting coefficient of the first sub-function g1, g2, ..., g s The weighting coefficient of the second subfunction, which includes a term whose value is zero in the local solution, is increased.

[0064] Then, the search unit 140 continues searching for a solution based on the objective function z~(x) after the weighting coefficients have been adjusted by the coefficient adjustment unit 150. If the search by the search unit 140 again falls into a local solution, the coefficient adjustment unit 150 adjusts the weighting coefficients, and the search unit 140 searches for a solution, and the above procedure is repeated. In this process, the search unit 140 adjusts the weighting coefficients α1,...,α p ,β1,…,β s The value of the objective function z~(x)=z(x) of equation (3) with an initial value of 1 is calculated for each solution, and the solution with the best energy is recorded in the storage unit 120.

[0065] The search unit 140 also searches the first sub-functions f1, f2, . . . , f p There is no term whose value is positive in the local solution, and there are multiple second sub-functions g1, g2, ..., g s When a solution is obtained in which there is no term whose value in the local solution is zero, the solution is regarded as the optimal solution and the search ends.

[0066] When the search unit 140 obtains an optimal solution, it outputs the optimal solution. On the other hand, even if the search unit 140 does not obtain an optimal solution, it terminates the search after a certain period of time, obtains the best solution recorded up to that point from the storage unit 120, and outputs the solution.

[0067] Next, the processing procedure of the data processing device 100 will be described. FIG. 4 is a flowchart showing the processing procedure of the data processing device. (S10) When the objective function z(x) of QUBO or HOBO expressed by formula (1) is input, the term division unit 130 classifies each term of z(x) into a first sub-function f(x) and a second sub-function g(x) depending on whether the coefficient is positive or negative. As a result, the term division unit 130 obtains the objective function of formula (2). Here, the objective function z(x) is defined as z(x)=f1+f2+...-g1-g2-.... Note that the function f i All the coefficients of the terms included in are positive. Also, here, the function g i The coefficients of the terms included in are all positive because they are enclosed with negative signs. i The term division unit 130 divides the weighting coefficients α1, ..., α of the evaluation function z~(x). p ,β1,…,β s Initialize all to 1. In this case, z~(x)=z(x).

[0068] (S11) The search unit 140 searches for a solution by a greedy method based on z~(x) = α1f1 + α2f2 + ... -β1g1 - β2g2 - ..., and obtains a local solution x. The search unit 140 then applies weighting coefficients α1, ..., α p ,β1,…,β s The value (energy) of the original objective function z(x) without multiplying each sub-function by is also calculated, and when the best solution is updated, the updated best solution and its energy are recorded in the storage unit 120.

[0069] (S12) The search unit 140 determines whether or not there are no more changes to the solution in the search. If there are no more changes to the solution, the process proceeds to step S13. If there are changes to the solution, the process proceeds to step S11. The fact that there are no more changes to the solution means that the solution has fallen into a local solution. For example, the search unit 140 may determine that there are no more changes to the solution when there is no candidate transition destination state that improves the energy of the current state.

[0070] (S13) The search unit 140 determines whether a preset time limit has elapsed since the search start time. If the time limit has elapsed, the process proceeds to step S15. If the time limit has not elapsed, the process proceeds to step S14.

[0071] (S14) The coefficient adjustment unit 150 adjusts the weighting coefficients α1, ..., α of f(x) and g(x) in equation (3). p ,β1,…,β s Specifically, the coefficient adjustment unit 150 adjusts the first sub-functions f1, f2, ..., f p The coefficient adjusting unit 150 increases the weighting coefficient of the first sub-function g1, g2, ..., g3 included in the objective function of the equation (3) by adjusting the weighting coefficient of the first sub-function g1, g2, ..., g4 included in the objective function of the equation (3) by adjusting the weighting coefficient of the first sub-function g2, ..., g5 included in the objective function of the equation (3) by adjusting the weighting coefficient of the first sub-function g1, g2, ..., g6 included in the objective function of the equation (3) by adjusting the weighting coefficient of the first sub-function g1, g2, ..., g7 included in the objective function of the equation (3) by adjusting the weighting coefficient of the first sub-function g2, ..., g7 included in the objective function of the equation (3) by adjusting the weighting coefficient of the first sub-function g1, ...6 included s The weighting coefficient of the second sub-function including the term whose value in the local solution of the immediately preceding step S12 is 0 is increased. Then, the process proceeds to step S11.

[0072] (S15) The search unit 140 outputs the best solution recorded in the storage unit 120. Then, the processing of the data processing device 100 ends. Here, in step S14, the coefficient adjustment unit 150 can adjust the weighting coefficients, for example, as follows: The coefficient adjustment unit 150 randomly selects a predetermined number from among the positive terms in f(x) and the zero terms in g(x), and multiplies the coefficient of the subfunction f or g including that term by α. For example, α=2. The selected predetermined number is determined in advance. For example, the predetermined number may be set to 1 or 2. Alternatively, for a k-th degree problem, the predetermined number may be set to k, or if the total number r of positive terms in f(x) and zero terms in g(x) is less than k, the predetermined number may be set to r.

[0073] For example, if the weight of f(x) is increased, the cost of the terms included in that f(x) becomes very large, so the greedy solution search will move the solution in the direction of making that term zero. Also, if the weight of g(x) is increased, if the cost of the terms included in that g(x) becomes non-zero, z~(x) will become smaller, so the greedy solution search will move the solution in the direction of making that term non-zero. In this way, it becomes possible to escape from a local optimum.

[0074] FIG. 5 is a flowchart showing another processing procedure of the data processing device. 4, the data processing device 100 may execute the following steps S12a and S12b. Step S12a is executed if step S12 is Yes. The following mainly describes steps S12a and S12b, and omits the description of steps S10 to S12 and steps S13 to S15.

[0075] (S12a) The search unit 140 searches for the local solutions obtained in the previous step S12 by using f(x)={f1, ..., f p}, or g(x)={g1,…,g s Determine whether there is a 0 in the term f(x)={f1,…,f p}, or g(x)={g1,…,g s If there is a 0 in the term f(x)={f1,...,f p}, and g(x)={g1,…,g s If none of the terms in {} are 0, the process proceeds to step S12b.

[0076] (S12b) The search unit 140 outputs the current solution as the optimal solution. Then, the processing of the data processing device 100 ends. Here, the first sub-functions f1, ..., f p There are no positive terms in each of the subfunctions g1,...,g s If there is no term that is 0 among the terms included in each, not only the value of equation (3) but also the value of equation (1) will be the minimum value. p There are no positive terms in each of the subfunctions g1,...,g s If there are no terms that are 0 among the terms included in each, the corresponding solution can be considered the optimal solution.

[0077] In this way, the search unit 140 can efficiently escape from a local solution, thereby speeding up the solution search process and increasing the likelihood that the search unit 140 will reach an optimal solution. Here, as a comparative example, a method for solving a binary integer linear optimization problem with n variables will be described. The following reference 1 serves as a reference for the comparative example method shown below.

[0078] Reference 1: Umetani, “Exploiting variable associations to configure efficient local search algorithms in large-scale binary integer programs”, European Journal of Operational Research 263, 2017, p.72-81 A binary integer linear optimization problem of n variables in the comparative example is expressed by, for example, equation (4).

[0079]

number

[0080] The problem in equation (4) is that the positive real coefficient w i This can be solved by reducing it to the unconstrained optimization of the objective function shown in equation (5) using

[0081]

number

[0082] That is, the violation degree for each constraint i is weighted by w i The weight w is added to the objective function as a penalty. i is adjusted adaptively. FIG. 6 is a diagram showing an example of a solution search in which weights to be multiplied on constraint terms are adaptively changed.

[0083] w in equation (5) i Updating w changes the objective function. i The local optimum solution for the update is w i After updating, it is no longer a local optimum. Therefore, in the problem expressed by equation (5), w iBy combining dynamic updating of and the greedy method, it is possible to escape from local optima.

[0084] The weight w in equation (5) i By adjusting the constraints, the constraints are relaxed, and it becomes possible to reach not only the normally reachable states of the feasible region 50, but also the normally unreachable states of the infeasible region 60. This makes it easier to search for a solution within the feasible region 50 that belongs to the boundary region 51 between the feasible region 50 and the infeasible region 60, after passing through the states of the infeasible region 60. This makes it easier to find a good solution that exists in the boundary region 51.

[0085] In addition, when the objective function is linear and there are no constraints, the optimal solution is one in which the coefficients of the objective function are set to 0 for non-negative state variables and 1 for negative state variables. However, the method of the comparative example has a problem in that it cannot handle unconstrained second-order problems (QUBO) or high-order problems (HOBO).

[0086] Therefore, the data processing device 100 calculates a first sub-function f in the formula (2) or (3) including a term whose value is positive at the local solution. k , and the second subfunction g containing terms whose values ​​are zero at local solutions l The data processing device 100 updates each coefficient of to a sufficiently large value and continues searching for a solution. The data processing device 100 can create transition destination candidates that make the energy change amount (Δz~) negative in the updated objective function. This means that a local solution in the objective function before the update is no longer a local solution in the updated objective function. Therefore, the data processing device 100 can escape from the local solution and continue searching for a good solution efficiently. In this way, the data processing device 100 can increase the possibility of arriving at a good solution in a short time, and can speed up solution-finding.

[0087] It can be said that the data processing device 100 executes the following processes, for example. The processor 101 searches for a solution expressed by a plurality of state variables based on a first objective function of degree 2 or higher related to the plurality of state variables. The first objective function is expressed as a sum of a plurality of first subfunctions, each of which is a term with a positive coefficient or a sum of two or more terms with positive coefficients, and a plurality of second subfunctions, each of which is a term with a negative coefficient or a sum of two or more terms with negative coefficients. The solution search may use, for example, a greedy search or a tabu search. When the processor 101 reaches a first solution in the search, it continues the search from the first solution based on a second objective function obtained from the first objective function. The second objective function is obtained by multiplying, by a weight value greater than 1, at least one of a first subfunction among the plurality of first subfunctions that includes a term whose value in the first solution is positive and a second subfunction among the plurality of second subfunctions that includes a term whose value in the first solution is zero.

[0088] This allows the data processing device 100 to speed up solution-finding. For example, even if state transition stagnates at a first solution, the data processing device 100 can escape from the first solution and continue the search efficiently, increasing the possibility of arriving at a better solution. Note that the storage unit 120, such as the RAM 102, stores information on the first objective function and information on the second objective function. The processor 101 searches for a solution based on the information stored in the storage unit 120.

[0089] Furthermore, processor 101 classifies, among the multiple terms included in the original objective function of degree 2 or higher regarding the multiple state variables, terms with positive coefficients into multiple first sub-functions so that the difference in the sum of the coefficients for each first sub-function is small. Furthermore, processor 101 classifies, among the multiple terms included in the original objective function, terms with negative coefficients into multiple second sub-functions so that the difference in the sum of the absolute values ​​of the coefficients for each second sub-function is small.

[0090] This allows the data processing device 100 to efficiently obtain a plurality of first sub-functions and a plurality of second sub-functions to obtain the first objective function. The objective function in equation (1) is an example of the original objective function. The objective function in equation (2) is an example of the first objective function. The objective function in equation (3) represents the general form of the second objective function. In equation (3), α1=α2=...=α p =β1=β2=…=β s = 1, it is the same as equation (2).

[0091] Furthermore, when the search reaches a first solution, the processor 101 selects a predetermined number of terms from among the multiple first sub-function terms whose values ​​are positive in the first solution and from among the multiple second sub-function terms whose values ​​are zero in the first solution. The processor 101 generates a second objective function by multiplying the first sub-function and the second sub-function including each of the selected predetermined number of terms by a weight value greater than 1.

[0092] This allows the data processing device 100 to efficiently generate the second objective function. For example, the processor 101 may randomly select a predetermined number of terms, or may select terms according to a predetermined criterion, such as preferentially selecting terms for which a long time has passed since the last weight value change.

[0093] Furthermore, if there is no term in the plurality of first sub-functions whose value in the first solution is positive and there is no term in the plurality of second sub-functions whose value in the first solution is zero, the processor 101 outputs the first solution as the optimal solution, thereby enabling the data processing device 100 to efficiently obtain the optimal solution.

[0094] Furthermore, the processor 101 calculates the value of the original objective function corresponding to the solution obtained by the search in the first objective function and the second objective function, stores the solution with the best value of the original objective function in the storage unit 120, and after searching for a certain period of time, outputs the best solution stored in the storage unit 120. This allows the data processing device 100 to efficiently obtain a better solution.

[0095] Furthermore, the processor 101 detects that the first solution has been reached when the value of the first objective function is no longer improved in the search. This allows the data processing device 100 to appropriately detect that the greedy algorithm or the tabu search algorithm has fallen into a local solution. Furthermore, the data processing device 100 can appropriately detect the timing to switch to a search using the second objective function.

[0096] The information processing of the first embodiment can be realized by causing the processing unit 12 to execute a program. The information processing of the second embodiment can be realized by causing the processor 101 to execute a program. The program can be recorded on a computer-readable recording medium 113.

[0097] For example, the program can be distributed by distributing recording medium 113 on which the program is recorded. Alternatively, the program may be stored in another computer and distributed via a network. For example, a computer may store (install) a program recorded on recording medium 113 or a program received from another computer in a storage device such as RAM 102 or HDD 103, and read and execute the program from the storage device. [Explanation of symbols]

[0098] 10 Data Processing Device 11 Storage section 12 Processing section

Claims

1. On the computer, a search for a solution represented by the plurality of state variables based on a first objective function of second or higher order related to the plurality of state variables, the first objective function being represented by a sum of a plurality of first sub-functions, each of which is one term with a positive coefficient or a sum of two or more terms with the positive coefficient, and a plurality of second sub-functions, each of which is one term with a negative coefficient or a sum of two or more terms with the negative coefficient; When a first solution is reached in the search, the search is continued from the first solution based on a second objective function obtained from the first objective function, the second objective function being obtained by multiplying by a weight value greater than 1 at least one of the first sub-functions, which includes a term whose value at the first solution is positive, and the second sub-functions, which includes a term whose value at the first solution is zero, from the plurality of second sub-functions. A program that executes a process.

2. Among the multiple terms included in the original objective function of degree 2 or higher related to the multiple state variables, terms whose coefficients are positive are classified into the multiple first sub-functions so that a difference in the sum of the coefficients for each of the first sub-functions becomes small, and among the multiple terms included in the original objective function, terms whose coefficients are negative are classified into the multiple second sub-functions so that a difference in the sum of the absolute values ​​of the coefficients for each of the second sub-functions becomes small.

2. The program according to claim 1, which causes the computer to execute a process.

3. When the first solution is reached in the search, a predetermined number of terms are selected from among the terms of the plurality of first sub-functions whose values ​​are positive in the first solution and from among the terms of the plurality of second sub-functions whose values ​​are zero in the first solution, and the first sub-function and the second sub-function including each of the selected predetermined number of terms are multiplied by a weight value greater than 1 to generate the second objective function.

2. The program according to claim 1, which causes the computer to execute a process.

4. outputting the first solution as an optimal solution if there is no term in the plurality of first sub-functions whose value in the first solution is positive and there is no term in the plurality of second sub-functions whose value in the first solution is zero; 2. The program according to claim 1, which causes the computer to execute a process.

5. calculating values ​​of the original objective function corresponding to the solutions obtained by the search in the first objective function and the second objective function, storing a solution with the best value of the original objective function in a storage unit, and outputting the best solution stored in the storage unit after performing the search for a certain period of time; 3. The program according to claim 2, which causes the computer to execute processing.

6. detecting that the first solution has been reached when the value of the first objective function no longer improves in the search; 2. The program according to claim 1, which causes the computer to execute a process.

7. The computer a search for a solution represented by the plurality of state variables based on a first objective function of second or higher order related to the plurality of state variables, the first objective function being represented by a sum of a plurality of first sub-functions, each of which is one term with a positive coefficient or a sum of two or more terms with the positive coefficient, and a plurality of second sub-functions, each of which is one term with a negative coefficient or a sum of two or more terms with the negative coefficient; When a first solution is reached in the search, the search is continued from the first solution based on a second objective function obtained from the first objective function, the second objective function being obtained by multiplying by a weight value greater than 1 at least one of the first sub-functions, which includes a term whose value at the first solution is positive, and the second sub-functions, which includes a term whose value at the first solution is zero, from the plurality of second sub-functions. Data processing methods.

8. a storage unit that stores information on a first objective function of second or higher order related to a plurality of state variables, the first objective function being expressed as a sum of a plurality of first sub-functions, each of which is one term with a positive coefficient or a sum of two or more terms with the positive coefficient, and a plurality of second sub-functions, each of which is one term with a negative coefficient or a sum of two or more terms with the negative coefficient; a processing unit that searches for a solution represented by the plurality of state variables based on the first objective function, and when a first solution is reached in the search, continues the search from the first solution based on a second objective function obtained from the first objective function, the second objective function being obtained by multiplying by a weight value greater than 1 at least one of the first sub-functions, among the plurality of first sub-functions, which includes a term whose value in the first solution is positive, and the second sub-functions, among the plurality of second sub-functions, which includes a term whose value in the first solution is zero; A data processing device having:

Citation Information

Patent Citations

  • Information processing device, program, information processing method, and electronic circuit

    JP2021043667A

  • Allocation device, allocation method and program

    JP2022019432A

  • Quantum computing in root cause analysis of 5g and subsequent generations of communication networks

    US20220224590A1

  • Quantum computing based hybrid solution strategies for large-scale discrete-continuous optimization problems

    US20220414518A1