An embodiment of the present disclosure relates to a solution finding device, a solution finding method, and a computer program product.
Conventionally, as a method for solving the Ising problem under the constraints attributed to a linear inequality expression, a formulated method using slack variables is known. In this method, if a constant term in linear inequality is Wm, then a penalty term expressed using W number of slack variables (where W represents a natural number) is added to the objective function, and the Ising problem is solved. Thus, according to this method, if N number of decision variables are included in the objective function, then the Ising problem including N+W number of Ising spins is solved. Alternatively, for example, if the Ising problem is to be solved under the constraints of M number of linear inequality expressions; then, according to this method, the Ising problem including N+{W1+ . . . +Mm+ . . . +WM} number of Ising spins is solved. Herein, Mm represents the constant term of the m-th linear inequality expression from among M number of linear inequality expressions, and is a natural number.
As far as the portfolio optimization problem in equity is concerned; in order to avoid the risks, the investment percentages of stocks are treated as the decision variables and, in numerous cases, the portfolio optimization problem is solved under the constraint condition that the total obtained by multiplying a weight for each of the decision variables is equal to or smaller than the upper limit value. The constraint condition is expressed according to the linear inequality expression given below.
xA1·ωA2+xA2·ωA2+ . . . +xSm·ωSm+ . . . ≤Wm
In this formula, Wm represents the upper limit value. Moreover, xA1 represents the decision variable for the investment percentage of a stock A to be, for example, 1%. Furthermore, xA2 represents the decision variable for the investment percentage of the stock A to be, for example, 2%. Thus, xSs represents the decision variable for the investment percentage of a stock S to be, for example, s %. Moreover, ωA1, ωA2, and ωSm represent the weights.
Thus, in the portfolio optimization problem in equity, a plurality of stocks is grouped according to each business type or each company size, and the abovementioned constraint condition is set for each group. For example, the Tokyo Stock Exchange handles approximately 2000 stocks. Moreover, the Tokyo Stock Exchange classifies approximately 2000 stocks into 33 business types and three company sizes. Thus, approximately 2000 stocks handled in the Tokyo Stock Exchange can be classified into a total of 99 groups of 33 business types x three sizes.
If the investment percentage of a single stock is discretized into 100 stages from 1% to 100% and if the portfolio optimization problem is solved with respect to the 2000 stocks handled in the Tokyo Stock Exchange, then the number of decision variables included in the objective function becomes 200000.
In that regard, assume that the constraint condition attributed to a linear inequality expression is set with respect to all of the 99 groups. When the upper limit value (Wm) is discretized in 100 stages and is formulated using slack variables, the number of slack variables is 99000. Hence, if the portfolio optimization problem is to solved for which the constraint condition attributed to a linear inequality expression is set for all of the 99 groups, then the Ising problem needs to be solved for 200000+99000=299000 Ising spins.
In this way, in the case of solving the portfolio optimization problem by performing formulation using slack variables; in the example of the Tokyo Stock Exchange, the number of Ising spins increases by about 50% as compared to the case in which no constraint conditions are set. In the case of using a solver and the like to solve the Ising problem, if the number of Ising spins increases, it results in an increase in the amount of computation and the time of computation thereby increasing a cost for finding a solution.
It is an objective of the present disclosure to provide a solution finding device, a solution finding method, and a computer program product that enable solving a 0-1 combinatorial optimization problem under one or more constraint conditions that are expressed using inequality expressions.
A solution finding device according to an embodiment solves a 0-1 combinatorial optimization problem under one or more constraint conditions that are expressed using inequality expressions in which a plurality of discrete variables included in the 0-1 combinatorial optimization problem is used. The solution finding device includes an updating unit and an output unit. The updating unit, for each of a plurality of elements associated with a first variable and a second variable, sequentially updates, for each unit time between initial timing and end timing, the first variable and the second variable alternatively. The output unit outputs a solution of the 0-1 combinatorial optimization problem based on the first variable of each of the plurality of elements at the end timing. The plurality of elements correspond to the plurality of discrete variables. Each of the first variable and the second variable is expressed as a real number. During an updating operation performed for the each unit time, for each of the plurality of elements, the updating unit updates the first variable based on the second variable. For each of the plurality of elements, the updating unit updates the second variable based on the first variable. For each of the one or more constraint conditions, when the inequality expression in which the first variable corresponding to each of the plurality of discrete variables is substituted is not satisfied, the updating unit subtracts, from the second variable of each of the plurality of elements, a correction value that corresponds to a component of an element corresponding to a distance from a boundary of the inequality expression to positions identified by the plurality of elements.
An Ising machine represents an example of the device used in solving the Ising problem. An Ising machine calculates the energy in the ground state of the Ising model. Before now, the Ising model has been mainly used as a model for ferromagnetic substances or a model for the phase transition phenomenon. However, in recent years, the Ising model is being increasingly used for solving 0-1 combinatorial optimization problems. Formula (1) expresses the energy of the Ising model.
Herein, si and sj represent spins. A spin is a
binary variable that takes either +1 or −1 as the value. Moreover, si represents the i-th spin, and sj represents the j-th spin. Furthermore, i and j are integers equal to or greater than “1” and equal to or smaller than N. Moreover, N represents the number of spins and is an integer equal to or greater than “2”. Furthermore, hi represents the local magnetic field acting on the i-th spin. Moreover, J represents a matrix of coupling coefficients indicating the force acting among the spins. Herein, J represents a real symmetric matrix in which diagonal elements are “0”. Furthermore, Ji, j represents the i-th row and the j-th column in the matrix J. Thus, Ji, j represents a coupling coefficient indicating the force acting between the i-th spin and the j-th spin.
In the Ising machine, the energy EIsing expressed in Formula (1) is treated as the objective function, and a solution for minimizing the energy EIsing is calculated. The solution (S1, S2, . . . , SN) calculated in the Ising model for minimizing the energy EIsing is called the optimum solution. However, the solution calculated in the Ising model need not be the optimum solution, and the energy EIsing can be an approximate solution close to the optimum solution. That is, the Ising problem is not limited to calculating the optimum solution, and can be a problem for calculating an approximate solution.
Meanwhile, a 0-1 combinatorial optimization problem in which a quadratic function of discrete variables (bits) that take either +1 or −1 as the value is treated as the objective function is called the 0-1 quadratic programming problem. A discrete variable (bit) is converted into the spin si according to the computation of (1+si)/2. That is, a 0-1 quadratic programming problem can be said to be equivalent to the Ising problem expressed in Formula (1). Thus, a 0-1 quadratic programming problem can be converted into the Ising problem, and the solution can be calculated according to an Ising machine.
For example, an Ising machine is implemented in hardware using a quantum annealer, a coherent Ising machine, or a quantum bifurcation machine. A quantum annealer performs quantum annealing using a superconducting circuit. A coherent Ising machine uses the oscillation phenomenon of a network configured with optical parametric oscillators. A quantum bifurcation machine uses the quantum-mechanical bifurcation phenomenon in a network of parametric oscillators having the Kerr effect. Such an Ising machine implemented in hardware likely enables achieving a significant reduction in the computation time. However, there are also issues such as difficulty in achieving a large scale and achieving stable operation.
Regarding the Ising problem, the solution can be calculated also using a digital computer that has become widely popular. As compared to a quantum annealer, a coherent Ising machine, or a quantum bifurcation machine; a digital computer enables achieving operation on a large scale and with stability. Meanwhile, simulated annealing (SA) represents an exemplary algorithm meant for solving the Ising problem using a digital computer. However, simulated annealing is a sequential-update-type algorithm in which each variable is sequentially updated. Hence, speeding up the computation by implementing parallelization is difficult to achieve.
In Non Patent Literature 2, a simulated bifurcation algorithm is proposed as an algorithm for solving a 0-1 combinatorial optimization problem. The simulated bifurcation algorithm is capable of using the Ising model and solving, at a high speed, a large-scale 0-1 combinatorial optimization problem in a digital computer. The simulated bifurcation algorithm is capable of solving, at a high speed, a large-scale 0-1 combinatorial optimization problem also in a Central Processing Unit (CPU), or in a microprocessor, or in a Graphics Processing Unit (GPU), or in a Field-Programmable Gate Array (FPGA), or in an Application Specific Integrated Circuit (ASIC), or in a combination of such circuits.
In the simulated bifurcation algorithm, variables xi and yi corresponding to N number of elements are used. The variable xi is sometimes also called a first variable, and the variable yi is sometimes also called a second variable.
In the simulated bifurcation algorithm, each of the N number of elements represents a virtual particle. Herein, the N number of elements correspond to the N number of spins in the Ising problem. Thus, the N number of elements correspond to the N number of discrete variables (bits) in a combinatorial optimization problem. The variable (xi) and the variable yi is a continuous variable expressed as a real number. The variable xi represents the position of the i-th particle from among N number of particles. The variable yi represents the amount of motion of the i-th particle. Herein, N is an integer equal to or greater than “2”. Moreover, i is an integer equal to or smaller than N, and represents the index for identifying each of the N number of elements.
In the simulated bifurcation algorithm, regarding the N number of variables xi and the N number of variables yi, a simultaneous ordinary differential equation given below in Formula (2) is numerically solved.
Herein, H represents the Hamiltonian as given below in Formula (3).
The coefficient D is a predetermined constant
number and corresponds to detuning. The coefficient p(t) corresponds to pumping amplitude and undergoes monotonic increase according to the update count during the calculation performed based on the simulated bifurcation algorithm. Meanwhile, “t” represents a variable indicating the timing. The coefficient p(t) can have the initial value set to “0”. The coefficient K represents a predetermined constant number and corresponds to a positive Kerr coefficient. Herein, the coefficient K can be set to “0”.
Moreover, fi represents the external force and is expressed according to Formula (4) given below.
In Formula (4), zi represents an Formula in which the mathematical formula given in the parentheses in Formula (3) is partially differentiated by the variable xi. The mathematical formula given in the parentheses in Formula (3) corresponds to the energy EIsing of the Ising model.
Herein, “c” represents a coefficient that, for
example, can be a constant number set before performing the computation. Moreover, α(t) is a coefficient that becomes greater along with the coefficient p(t).
In the simulated bifurcation algorithm, after the value of the coefficient p(t) has been increased from the initial value (for example, 0) to a predetermined value; based on the sign of the variable xi, the value of the spin si is calculated. In the simulated bifurcation algorithm, for example, when x>0 holds true, the value of the spin si is calculated using a signum function sgn(xi)=1; and, when x<0 holds true, the value of the spin si is calculated using a signum function sgn(xi)=−1.
In the simulated bifurcation algorithm, the differential equations given in Formula (2), Formula (3), and Formula (4) are solved according to the symplectic Euler method.
In the case of implementing the symplectic Euler method, the differential Formulas given in Formula (2), Formula (3), and Formula (4) are rewritten as discrete recurrence formulae as given below in Formula (5) or Formula (6).
x
i(t+Δt)=xi(t)+Dyi(t)Δt
y
i(t+Δt)=yi(t)+[{−D+p(t+Δt)−Kxi2(t+Δt)}xi(t+Δt)+fi(t+Δt)]Δt
f
i(t+Δt)=−czi(t+Δt)
y
i(t+Δt)=yi(t)+[{−D+p(t)−Kxi2(t)}xi(t)+fi(t)]Δt
x
i(t+Δt)=xi(t)+Dyi(t+Δt)
f
i(t)=−cZi(t)
Herein, “t” represents the timing. Moreover, Δt represents the unit time (i.e., the time stamp or the time pitch width).
In the case of executing the simulated bifurcation algorithm, based on the algorithm given Formula (5) or Formula (6), an electronic circuit such as a digital computer or an FPGA sequentially updates, for each unit time from the initial timing, each of the N number of variables xi and each of the N number of variables yi, and updates the variables xi and yi alternatively. Then, the electronic circuit such as the digital computer or the FPGA binarizes the values of N number of variables xi at the end timing using a signum function, and outputs the values of N number of spins.
Meanwhile, Formula (5) and Formula (6) are expressed using the timing t and the unit time Δt in order to indicate the correspondence relationship with the differential equation. However, in the case of implementing the symplectic Euler method in an electronic circuit such as a digital computer or an FPGA, the algorithm meant for computing Formula (5) and Formula (6) need not include the unit time Δt. For example, if the timing t is not included as an explicit parameter, then the algorithm meant for computing Formula (5) and Formula (6) includes updating xi(t+Δt) to xi(t). That is, in the algorithm meant for computing Formula (5) and Formula (6), “t” is treated as the parameter for identifying the pre-updating variables and “t+Δt” is treated as the parameter for identifying the post-updating variables. The same is the case regarding an algorithm explained below in which Formula (5) and Formula (6) are enhanced.
The present inventor(s) enhanced the abovementioned simulated bifurcation algorithm and, under one or more constraint conditions expressed using inequality expressions, invented an enhanced algorithm for solving a 0-1 combinatorial optimization problem.
In the enhanced algorithm, the simultaneous ordinary differential equation given in Formula (2) is numerically solved using the Hamiltonian given below in Formula (7) instead of using the Hamiltonian given earlier in Formula (3).
Herein, Gm represents the penalty item corresponding to the m-th constraint condition from among one or more constraint conditions. Each of one or more constraint conditions is expressed using an inequality expression that includes a plurality of discrete variables included in the objective function. For example, an inequality expression either can be a linear inequality expression that includes the first-order terms of a plurality of discrete variables, or can be a quadratic inequality expression that includes the second-order terms of a plurality of discrete variables.
When the penalty term satisfies the corresponding inequality expression, “0” is added as energy to the Hamiltonian. However, if the penalty term does not satisfy the corresponding inequality expression, then positive energy is added to the Hamiltonian. More particularly, G m represents a function that adds energy to the Hamiltonian in proportion to the distance from the boundary of the inequality expression, which indicates the constraint condition, to the position identified based on the N number of elements. The boundary of an inequality expression represents the boundary at which the inequality expression may or may not be satisfied. That is, the boundary of an inequality expression is expressed as an equation in which the inequality sign in the inequality expression is replaced by an equality sign.
Subsequently, in the enhanced algorithm, the symplectic Euler method is implemented and the simultaneous ordinary differential equation is solved using a discrete recurrence formula as given below in Formula (8) or Formula (9)
As compared to the recurrence formulae given earlier in Formulas (5) and (6); in the recurrence formulae given in Formulas (8) and (9), the computation formula for the second variable (yi(t+Δt)) is different. More particularly, the recurrence formulae expressed in Formulas (8) and (9) differ in the way that, in the computation formula for the second variable (yi(t+Δt)), a value obtained by multiplying Δt and the total of the partial differentiation values regarding xi of the penalty term (Gm) of each of one or more inequality expressions is subtracted.
In each of one or more inequality expressions, the partial differentiation value is equivalent to the component of the corresponding element present at the distance from the boundary of the concerned inequality expression to the position identified based on N number of elements. The partial differentiation value increases in proportion to the size of the component of the corresponding element at the distance from the boundary of the concerned inequality expression to the position identified based on N number of elements.
However, when the corresponding inequality expression is satisfied, the penalty term becomes “0”. Thus, when the N number of elements satisfy the inequality expression, the partial differentiation value of each of one or more inequality expressions becomes “0”.
In the simulated bifurcation algorithm, while the variable t indicating the timing is increased for each unit time (Δt), a plurality of first variables (xi) and a plurality of second variables (yi) are updated alternatively. Thus, in the simulated bifurcation algorithm, for each unit time (Δt), it becomes possible to determine whether or not each of one or more constraint conditions satisfies the inequality expression.
In that regard, in the enhanced algorithm, for each unit time (Δt), after a plurality of second variables (yi) is updated, it is determined whether or not each of one or more constraint conditions satisfies the inequality expression in which each of a plurality of discrete variables is substituted with the corresponding first variable (xi). In the enhanced algorithm, for each unit time (Δt), if it is determined that each of one or more constraint conditions does not satisfy the inequality expression in which each of a plurality of discrete variables is substituted with the corresponding first variable, then the corresponding correction value is subtracted from each of a plurality of second variables (yi). That is, in the enhanced algorithm, for each unit time (Δt), if each of one or more constraint conditions does not satisfy the inequality expression in which each of a plurality of discrete variables is substituted with the corresponding first variable; from each of a plurality of second variables (yi), a correction value is subtracted that corresponds to the component of the concerned element present at the distance from the boundary of the inequality expression to the position identified based on a plurality of elements.
As a result, in the enhanced algorithm, in order to ensure that, for each unit time (Δt), a plurality of first variables (xi) and a plurality of second variables (yi) satisfy each of one or more constraint conditions, a plurality of first variables (xi) and a plurality of second variables (yi) can be corrected. As a result, in the enhanced algorithm, it becomes possible to increase the probability of a plurality of first variables (xi) satisfying all of one or more constraint conditions at the end timing (t=T).
In such an enhanced algorithm, even in the case of solving a 0-1 combinatorial optimization problem under one or more constraint conditions expressed using inequality expressions, the solution can be obtained according to the same number of variables as the number of variables in the case in which the constraint conditions are not set. Thus, in such an enhanced algorithm, a 0-1 combinatorial optimization problem can be easily solved under one or more constraint conditions, which are expressed using inequality expressions, without having to set slack variables.
Of one or more constraint conditions, one constraint condition is expressed using a linear inequality expression. For example, in the enhanced algorithm, a 0-1 combinatorial optimization problem is solved under the constraint of M number of linear inequality expressions (where M is an integer equal to or greater than “1”). In that case, from among one or more constraint conditions, the m-th constraint condition is expressed as given below in Formula (10).
In Formula (10), m represents an integer equal to
or greater than “1” and equal to or smaller than M. Moreover, in Formula (10), xi represents the i-th discrete variable. Furthermore, in Formula (10), xj represents the j-th discrete variable. Moreover, ωm, i represents a coefficient that is multiplied to the i-th discrete variable. Furthermore, Wm represents a predetermined constant number.
When a constraint condition is expressed using a linear inequality expression, the penalty term Gm can be expressed as given below in Formula (11).
Herein, Am represents a predetermined constant number set with respect to the m-th constraint condition. Moreover, “k” represents an integer equal to or greater than “1”. For example, “k” can be set to “2”.
Furthermore, Sm represents the value obtained when, in each of a plurality of discrete variables in the functions excluding the constant term (Wm) present in a linear inequality expression, the corresponding first variable (xi) is substituted. More particularly, in the case of applying the recurrence formula given in Formula (8), the value S. is expressed as given below in Formula (12). Alternatively, in the case of applying the recurrence formula given in Formula (9), the value Sm is expressed as given below in Formula (13).
In that case, the partial differentiation value is expressed as given below in Formula (14).
In that regard, when a constraint condition is expressed using a linear inequality expression; in the enhanced algorithm, for each unit time (Δt), after a plurality of second variables (yi) is updated, it is determined whether or not a linear inequality expression in which the first variable (xi) corresponding to each of a plurality of discrete variables is substituted is satisfied. Then, in the enhanced algorithm, for each unit time (Δt), if the corresponding linear inequality expression is not satisfied; then, a correction value obtained by multiplying Δt denoting the unit time and the partial differentiation value expressed in Formula (14) is subtracted from each of a plurality of second variables (yi).
Thus, according to the enhanced algorithm in which the abovementioned operations are performed, using the same number of variables as the number of variables in the case in which no constraint conditions are set, a 0-1 combinatorial optimization problem can be easily solved under the constraint conditions expressed using linear inequality expressions.
If the constant number Am is large, then the partial differentiation value given in Formula (14) may become unstable because of accumulation of computational errors. In that regard, in the enhanced algorithm, when the constraint conditions are linear inequality expressions, the partial differentiation value given in Formula (15) can be used. That is, in the enhanced algorithm, for each unit time (Δt), when the corresponding linear inequality expression is not satisfied, a correction value obtained by multiplying Δt denoting the unit time and the partial differentiation value expressed by Formula (15) is subtracted from each of a plurality of second variables (yi).
Herein, Bm is equal to or smaller than “0” and equal to or greater than “1” and represents a coefficient predetermined with respect to the m-th constraint condition. Moreover, Em represents the value obtained when, in each of a plurality of discrete variables in the functions excluding the constant term (Wm) present in a linear inequality expression, the corresponding second variable (yi) is substituted. More particularly, in the case of applying the recurrence formula given in Formula (8) or Formula (9), the value Em is expressed as given below in Formula 16.
Herein, the value Em represents the slope of the direction identified according to a plurality of elements with respect to the boundary of the linear inequality expression. Thus, when the partial differentiation value given in Formula (15) is used, the correction value corresponds to the value obtained as a result of adding the component of the element at the distance from the boundary of the inequality expression to the position identified based on a plurality of elements to the component of the element corresponding to the slope of the direction identified by a plurality of elements with respect to the boundary of the inequality expression. As a result, in the enhanced algorithm, even if the component corresponding to the distance becomes unstable due to a large value of Am, the correction value can be stabilized.
Of one or more constraint conditions, one constraint condition can be expressed using a quadratic inequality expression. In that case, the constraint condition is expressed as given below in Formula (17).
In Formula (17), xi represents the i-th discrete variable. Moreover, in Formula (17), xj represents the j-th discrete variable. Furthermore, Qi,j represents the value at the i-th row and the j-th column included in an N×N positive-semidefinite matrix. Moreover, q represents a predetermined constant number.
When a constraint condition is expressed using a quadratic inequality expression, the penalty item G can be expressed as given below in Formula (18).
Herein, “A” represents a coefficient predetermined with respect to the constraint condition expressed using a quadratic inequality expression. Moreover, “k” represents an integer equal to or greater than “1”. For example, “k” can be set to “2”.
Furthermore, “S” represents the value obtained
when, in each of a plurality of discrete variables in the functions excluding the constant term (q) present in a quadratic inequality expression, the corresponding first variables (xi and xj) are substituted. More particularly, in the case of applying the recurrence formula given in Formula (8), the value S is expressed as given below in Formula (19). Alternatively, in the case of applying the recurrence formula given in Formula (9), the value S is expressed as given below in Formula (20).
In that case, in the case of applying the recurrence formula given in Formula (8), the partial differentiation value is expressed as given below in Formula (21). Alternatively, in the case of applying the recurrence formula given in Formula (9), the partial differentiation value is expressed as given below in Formula (22).
In that regard, when a constraint condition is expressed using a quadratic inequality expression, in the enhanced algorithm; for each unit time (Δt), after a plurality of second variables (yi) is updated, it is determined whether or not a quadratic inequality expression in which the first variables (xi and xj) corresponding to each of a plurality of discrete variables is substituted is satisfied. In the enhanced algorithm, for each unit time (Δt), if the corresponding quadratic inequality expression is not satisfied, then a correction value obtained by multiplying Δt denoting the unit time and the partial differentiation value expressed by Formula (21) or Formula (22) is subtracted from each of a plurality of second variables (yi).
In an Ising model, solving a 0-1 combinatorial problem under the constraint conditions expressed using quadratic inequality expressions is a difficult task. In contrast, in the enhanced algorithm, under the constraint conditions expressed using quadratic inequality expressions, a 0-1 combinatorial optimization problem can be solved with ease.
Meanwhile, even when one or more constraint conditions include constraint conditions expressed using linear inequality expressions and constraint conditions expressed using quadratic inequality expressions, a 0-1 combinatorial optimization problem can still be solved according to the enhanced algorithm. Moreover, in the enhanced algorithm, one or more constraint conditions can include the constraint conditions expressed using only linear inequality expressions. Furthermore, in the enhanced algorithm, a 0-1 combinatorial optimization problem can be solved under only one constraint condition expressed using a quadratic inequality expression.
The solution finding device 10 implements the enhanced algorithm and solves a 0-1 combinatorial optimization problem under one or more constraint conditions expressed using inequality expressions. The solution finding device 10 is implemented using an information processing device such as a computer; or using a computer system in which a plurality of computers or servers communicates with each other via a network; or using a PC cluster in which a plurality of computers performs information processing in coordination. Alternatively, the solution finding device 10 is implemented using an electronic circuit such as a CPU, a microprocessor, a GPU, an FPGA, an ASIC, or a circuit configured by combining such circuits.
The solution finding device 10 includes an input unit 12, an updating unit 14, and an output unit 16 as a functional configuration.
The input unit 12 receives, from an external device, information to be used in defining the objective function of a 0-1 combinatorial optimization problem (for example, N, J, and h) and information indicating the coefficients required in executing the enhanced algorithm (for example, D, c, Δt, T, p(t), and α(t)). Moreover, the input unit 12 receives, from an external device, information to be used in defining one or more constraint conditions (for example, ωm, i, Wm, Qi, j, and q) and information required in executing constraint processing (for example, Am, k, Bm, and A). Then, the input unit 12 sends the received information to the updating unit 14.
The updating unit 14 implements the enhanced algorithm and, for each of a plurality of elements associated with the first variables (xi) and the second variables (yi), sequentially updates the first variables (xi) and the second variables (yi) alternatively for each unit time (Δt) from the initial timing (t=0) to the end timing (t=T).
Based on the first variables (xi) of each of a
plurality of elements at the end timing (t=T), the output unit 16 outputs the solution of the 0-1 combinatorial optimization problem. For example, for each of a plurality of elements at the end timing, the output unit 16 calculates the values of discrete variables by binarizing the first variables (xi) using a preset threshold value. Then, the output unit 16 outputs the calculated values of the discrete variables as the solution of the 0-1 combinatorial optimization problem.
Herein, a plurality of elements correspond to a plurality of discrete variables of the 0-1 combinatorial optimization problem. Moreover, each of the first variables (xi) and the second variables (yi) is expressed as a real number.
During the updating operation performed for each unit time, for each of a plurality of elements, the updating unit 14 updates the first variables (xi) based on the second variables (yi). Moreover, during the updating operation performed for each unit time, for each of a plurality of elements, the updating unit 14 updates the second variables (yi) based on the first variables (xi).
For example, during the updating operation
performed for each unit time, for each of a plurality of elements, the updating unit 14 updates the first variables (xi) before updating the second variables (yi). Alternatively, during the updating operation for each time, for each of a plurality of elements, the updating unit 14 can update the second variables (yi) before updating the first variables (xi).
Moreover, during the updating operation performed for each unit time, after updating the second variables (yi), the updating unit 14 performs constraint processing so as to ensure that the solution of the 0-1 combinatorial optimization problem satisfies one or more constraint conditions. For each of one or more constraint conditions, if the inequality expression in which the first variable (xi) corresponding to each of a plurality of discrete variables is substituted is not satisfied, then the updating unit 14 subtracts a correction value (rm, i), which corresponds to the components of the elements present within the distance from the boundary of the corresponding inequality expression to the positions identified by a plurality of elements, from the second variable (yi) of each of a plurality of elements.
During the updating operation performed for each unit time, as a result of performing constraint processing for each of one or more constraint conditions, if a plurality of first variables (xi) does not satisfy the constraint condition, the updating unit 14 can correct a plurality of second variables (yi), which corresponds to a plurality of elements, in such a way that a plurality of first variables (xi) changes toward satisfying the constraint condition. As a result, the updating unit 14 becomes able to increase the probability of a plurality of first variables (xi) satisfying all of one or more constraint conditions at the end timing (t=T).
Meanwhile, during the updating operation performed for each unit time, in the case of updating the first variables (xi) before updating the second variables (yi), for each of a plurality of elements, the updating unit 14 updates the second variables (yi) before subtracting the correction value (rm, i) from the second variables (yi). Alternatively, during the updating operation performed for each unit time, in the case of updating the second variables (yi) before updating the first variables (xi), for each of a plurality of elements, the updating unit 14 updates the second variables (yi) and, before updating the first variables (xi), subtracts the correction value (rm, i) from the second variables (yi).
Firstly, at S101, the updating unit 14 sets parameters for solving a 0-1 combinatorial optimization problem. More particularly, the updating unit 14 sets the matrix J that includes N×N number of coupling coefficients, and sets the array h that includes local magnetic coefficients representing N number of local magnetic fields. Moreover, the updating unit 14 sets the coefficient D, the coefficient c, the unit time Δt, the end timing (T), the function p(t), and the function α(t). The functions p(t) and α(t) are increasing functions that take the value “0” at t=initial timing (for example, the timing 0) and take the value “1” at t=end timing (T). The updating unit 14 sets the matrix J and the array h according to the information received from the input unit 12. The updating unit 14 either can set D, c, Δt, T, p(t), and α(t) according to the value received from the input unit 12, or can set those values to pre-decided and non-variable values.
Then, at S102, the updating unit 14 sets the information related to the constraint conditions. More particularly, the updating unit 14 sets the information to be used in defining one or more constraint conditions and sets the information indicating the coefficients required in performing constraint processing. For example, when a constraint condition is expressed using a linear inequality expression, the updating unit 14 sets the coefficient om, that is to be multiplied to variables; sets the constant term (Wm); sets the coefficient Am (or the coefficients Am and Bm) required in performing constraint processing; and sets the integer k. Alternatively, for example, when a constraint condition is expressed using a quadratic inequality expression, the updating unit 14 sets the coefficient Qi,j that is multiplied to variables; sets the constant term (q); and sets the coefficient A and the integer k required in performing constraint processing. Herein, the updating unit 14 can update the coefficients Am, Bm, k, and A, which are required in performing constraint processing, according to the parameters received from the input unit 12, or can set those coefficients to pre-decided and non-variable values.
Subsequently, at S103, the updating unit 14 initializes the variables. More particularly, the updating unit 14 initializes the variable t, which indicates the timing, to the initial timing (for example, “0”). Moreover, to each of the N number of first variables (x1(t) to xN(t)) and each of the N number of second variables (y1(t) to yN(t)), the updating unit 14 either assigns an initial value received from the user, or assigns a predetermined fixed value, or assigns a random number.
Then, the updating unit 14 repeatedly performs a loop operation between S104 and S116 till the timing t exceeds the end timing T. In a single iteration of the loop operation, the updating unit 14 calculates the N number of first variables (x1(t+Δt) to xN(t+Δt)) at the target timing (t+Δt) based on the N number of first variables (x1(t) to xN(t)) at the immediately previous timing (t) and based on the N number of second variables (y1(t) to yN(t)) at the immediately previous timing (t). Moreover, in a single iteration of the loop operation, the updating unit 14 calculates the N number of second variables (y1(t+Δt) to yN(t+Δt)) at the target timing (t+Δt) based on the N number of first variables (x1(t+Δt) to xN(t+Δt)) at the target timing (t+Δt) and based on the N number of second variables (y1(t) to yN(t)) at the immediately previous timing (t).
Herein, the immediately previous timing (t) represents the timing earlier than the target timing (t+Δt) by the amount of time equal to the unit time (Δt). Thus, as a result of repeatedly performing the loop operation between S104 and S116, the updating unit 14 sequentially updates, for each unit time Δt from the initial timing (t=0) to the end timing (t=T), the N number of first variables (x1(t) to xN(t)) and the N number of second variables (y1(t) to yN(t)).
Subsequently, the updating unit 14 repeatedly performs a loop operation between S105 and S107 while incrementing the index i by one from 1 to N. Herein, “i” represents an integer taking a value from 1 to N, and represents the index for indicating the target element for processing from among the N number of elements. Each of the N number of elements is associated with the first variable (xi(t)) and the second variable (yi(t)). Thus, in the loop operation between S105 and S107, the updating unit 14 performs the operations with respect to the i-th element representing the target element from among the N number of elements.
At S106, the updating unit 14 calculates the first variable (xi(t+Δt)) at the target timing (t+Δt) for the target element by adding, to the first variable (xi(t)) at the immediately previous timing (t) for the target element, a value obtained by the multiplication of the second variable (yi(t)) at the immediately previous timing (t) for the target element, the predetermined constant number D, and the unit time (Δt). More particularly, the updating unit 14 calculates Formula (23) given below.
x
i(t+Δt)=xi(t)+Dyi(t)Δt (23)
That is, for each of the N number of elements, the updating unit 14 updates the first variable (xi(t+Δt)) at the target timing (t+Δt) for the target element based on the first variable (xi(t)) at the immediately previous timing (t) for the target element and based on the second variable (yi(t)) at the immediately previous timing (t) for the target element.
After the updating unit 14 has performed the loop operation between S105 and S107 for N number of times, the system control proceeds to S108.
Subsequently, the updating unit 14 repeatedly performs the loop operation between S108 and S113 while incrementing the index i by one from 1 to N.
At S109, the updating unit 14 calculates an updated value (zi(t+Δt)) based on the first variables (x1(t+Δt) to xN(t+Δt)) at the target timing (t+Δt) for each of the N number of elements and based on action coefficients predetermined according to the 0-1 combinatorial optimization problem for each pair of the target element and each of the N number of elements. The action coefficients include the coupling coefficient included in the matrix J and the local magnetic field coefficient included in the array h. More particularly, the updating unit 14 performs an action operation by calculating Formula (24) given below.
Then, at S110, the updating unit 14 multiplies the coefficient c and “−1” to the updated value zi(t+Δt), and calculates an external force fi(t+Δt). More particularly, the updating unit 14 calculates Formula (25) given below.
f
i(t+Δt)=−czi(t+Δt) (25)
Subsequently, at S111, the updating unit 14
multiplies the first variable (x1(t+Δt)) at the target timing (t+Δt) for the target element to the value decided based on the increasing function p(t+Δt) that increases over time, and calculates a time evolution value (gi(t+Δt)). More particularly, the updating unit 14 calculates Formula (26) given below.
g
i(t+Δt)={−D+p(t+Δt)−kxi2(t+Δt)}xi(t+Δt) (26)
Then, at S112, the updating unit 14 adds, to the second variable (yi(t)) at the immediately previous timing (t) for the target element, the value obtained by multiplying the unit time (Δt) and the value to which the time evolution value (gi(t+Δt)) and the external force fi(t+Δt) are added; and calculates the second variable (yi(t+Δt)) at the target timing (t+Δt) for the target element. More particularly, the updating unit 14 calculates Formula (27) given below.
y
i(t+Δt)=yi(t)+{gi(t+Δt)+fi(t+Δt)}Δt (27)
The updating unit 14 performs the loop operation between S108 and S113 for N number of times and, for each of the N number of elements, updates the second variable (yi(t+Δt)) at the target timing (t+Δt) based on the N number of first variables (x1(t+Δt) to xN(t+Δt)) at the target timing (t+Δt) and based on the second variable (yi(t)) at the immediately previous timing (t) for the target element.
After the updating unit 14 has performed the loop operation between S108 and S113 for N number of times, the system control proceeds to S114.
At S114, the updating unit 14 performs constraint processing based on one or more constraint conditions. Regarding the constraint processing, the detailed explanation is given later with reference to flowcharts illustrated in
At S115, the updating unit 14 adds the unit time (Δt) to the immediately previous timing (t) and the target timing (t+Δt), and thus updates the immediately previous timing (t) and the target timing (t+Δt). At S116, the updating unit 14 performs the operations from S105 to S115 till the timing t exceeds the end timing T. Once the timing t exceeds the end timing T, the updating unit 14 ends the present flow of operations.
Then, for each of the N number of elements, according to the sign of the first variable (xi(T)) at the end timing (t=T), the output unit 16 calculates the value of the corresponding spin. For example, if the first variable (xi(T)) at the end timing (t=T) has the negative sign, then the output unit 16 sets the corresponding spin to “−1”. On the other hand, if the first variable (xi(T)) at the end timing (t=T) has the positive sign, then the output unit 16 sets the corresponding spin to “+1”. Subsequently, the output unit 16 outputs, as the solution of the combinatorial optimization problem, either the calculated values of a plurality of spins or the values obtained by converting the calculated values of a plurality of spins into discrete variables.
As a result of performing the operations from S101 to S116, the updating unit 14 becomes able to perform the computation according to the enhanced algorithm and calculate the N number of first variables (x1(t) to xN(t)) and the N number of second variables (y1(t) to yN(t)) at the end timing (t=T).
Firstly, at S201, S202, and S203, the updating unit performs the operations identical to the operations performed at S101, S102, and S103, respectively, illustrated in
Then, the updating unit 14 repeatedly performs a loop operation between S204 and S216 till the timing t exceeds the end timing T. In a single iteration of the loop operation, the updating unit 14 calculates the N number of second variables (y1(t+Δt) to yN(t+Δt)) at the target timing (t+Δt) based on the N number of first variables (x1(t) to xN(t)) at the immediately previous timing (t) and based on the N number of second variables (y1(t) to yN(t)) at the immediately previous timing (t). Moreover, in a single iteration of the loop operation, the updating unit 14 calculates the N number of first variables (x1(t+Δt) to xN(t+Δt)) at the target timing (t+Δt) based on the N number of first variables (x1(t) to xN(t)) at the immediately previous timing (t) and based on the N number of second variables (y1(t+Δt) to yN(t+Δt)) at the target timing (t+Δt).
Subsequently, the updating unit 14 repeatedly performs a loop operation between S205 and S210 while incrementing the index i by one from 1 to N. Thus, in the loop operation between S205 and S210, the updating unit 14 performs the operations with respect to the i-th element representing the target element from among the N number of elements.
At S206, the updating unit 14 calculates an updated value zi(t) based on the first variables (x1(t) to xN(t)) at the immediately previous timing (t) for each of the N number of elements and based on action coefficients predetermined according to the 0-1 combinatorial optimization problem for each pair of the target element and each of the N number of elements. More particularly, the updating unit 14 calculates Formula (28) given below.
Then, at S207, the updating unit 14 multiplies the coefficient c and “−1” to the updated value zi(t), and calculates an external force fi(t). More particularly, the updating unit 14 calculates Formula (29) given below.
f
i(t)=−czi(t) (29)
Subsequently, at S208, the updating unit 14 multiplies the first variable (x1(t)) at the immediately previous timing (t) for the target element to the value decided based on the increasing function p(t+Δt) that increases over time, and calculates the time evolution value (gi(t)). More particularly, the updating unit 14 calculates Formula (30) given below.
g
i(t)={−D+p(t)−Kxi2(t)}xi(t) (30)
Then, at S209, the updating unit 14 adds, to the second variable (yi(t)) at the immediately previous timing (t) for the target element, the value obtained by multiplying the unit time (Δt) and the value to which the time evolution value (gi(t)) and the external force fi(t) are added; and calculates the second variable (yi(t+Δt)) at the target timing (t+Δt) for the target element. More particularly, the updating unit 14 calculates Formula (31) given below.
y
i(t+Δt)=yi(t)+{gi(t)+fi(t)}Δt (31)
The updating unit 14 performs the loop operation between S205 and S210 as explained above for N number of times and, for each of the N number of elements, updates the second variable (yi(t+Δt)) at the target timing (t+Δt) based on the N number of first variables (x1(t) to xN(t)) at the immediately previous timing (t) for the target element and based on the N number of second variables (y1(t) to yN(t)) at the immediately previous timing (t) for the target element.
After the updating unit 14 has performed the loop operation between S205 and S210 for N number of times, the system control proceeds to S211.
At S211, the updating unit 14 performs constraint processing based on one or more constraint conditions. Regarding the constraint processing, the detailed explanation is given later with reference to flowcharts illustrated in
Subsequently, the updating unit 14 repeatedly performs the loop operation between S212 and S214 while incrementing the index i by one from 1 to N.
At S213, the updating unit 14 adds, to the first variable (xi(t)) at the immediately previous timing (t) for the target element, the value obtained by multiplying the second variable (yi(t+Δt)) at the target timing (t+Δt) for the target element, the predetermined constant number D, and the unit time (Δt); and calculates the first variable (xi(t+Δt)) at the target timing (t+Δt) for the target element. More particularly, the updating unit 14 calculates Formula (32) given below.
x
i(t+Δt)=xi(t)+Dyi(t+Δt)Δt (32)
That is, for each of the N number of elements, the updating unit 14 updates the first variable (xi(t+Δt)) at the target timing (t+Δt) for the target element based on the first variable (xi(t)) at the immediately previous timing (t) for the target element and based on the second variable (yi(t)) at the immediately previous timing (t) for the target element.
After the updating unit 14 has performed the loop operation between S212 and S214 for N number of times, the system control proceeds to S215.
At S215, the updating unit 14 adds the unit time (Δt) to the immediately previous timing (t) and the target timing (t+Δt), and thus updates the immediately previous timing (t) and the target timing (t+Δt). At S216, the updating unit 14 performs the operations from S212 to S215 till the timing t exceeds the end timing (T). Once the timing t exceeds the end timing (T), the updating unit 14 ends the present flow of operations.
Then, for each of the N number of elements, according to the sign of the first variable (xi(T)) at the end timing (t=T), the output unit 16 calculates the value of the corresponding spin. For example, if the first variable (xi(T)) at the end timing (t=T) has the negative sign, then the output unit 16 sets the corresponding spin to “−1”. On the other hand, if the first variable (xi(T)) at the end timing (t=T) has the positive sign, then the output unit 16 sets the corresponding spin to “+1”. Subsequently, the output unit 16 outputs, as the solution of the combinatorial optimization problem, either the calculated values of a plurality of spins or the values obtained by converting the calculated values of a plurality of spins into discrete variables.
As a result of performing the operations from S201 to S216, the updating unit 14 becomes able to perform the computation according to the enhanced algorithm and calculate the N number of first variables (x1(t) to xN(t)) and the N number of second variables (y1(t) to yN(t)) at the end timing (t=T).
Firstly, the updating unit 14 repeatedly performs a loop operation between S301 and S308 while incrementing an index m by one from m=1 to m=M. Herein, “m” represents the index for indicating the target linear inequality expression for processing from among the M number of linear inequality expressions.
In the loop operation between S301 and S308, firstly, at S302, the updating unit 14 calculates the constraint value Sm. More particularly, in the constraint processing performed at S114 illustrated in
Meanwhile, Sm as the constraint value is obtained when, in each of a plurality of discreet variables included in the functions excluding the constant term (Wm) in the corresponding linear inequality expression, the corresponding first variable (xi) is substituted.
Subsequently, at S303, the updating unit 14 determines whether or not the constraint value Sm is equal to or smaller than the constant term (Wm) in the corresponding linear inequality expression. That is, the updating unit 14 determines whether or not a plurality of first variables (xi) satisfies the corresponding linear inequality expression.
If the constraint value Sm is equal to or smaller than the constant term (Wm) in the corresponding linear inequality expression, that is, if a plurality of first variables (xi) satisfies the corresponding linear inequality expression (Yes at S303), then the system control proceeds to S308. On the other hand, if the constraint value (Sm) is neither equal to nor smaller than the constant term (Wm) in the corresponding linear inequality expression, that is, if a plurality of first variables (xi) does not satisfy the corresponding linear inequality expression (No at S303), then the system control proceeds to S304.
Then, the updating unit 14 repeatedly performs the loop operation between S304 and S307 while incrementing the index i by one from 1 to N. In the loop operation performed between S304 and S307, the updating unit 14 performs the operations with respect to the i-th element representing the target element from among the N number of elements.
In the loop operation between S304 and S307, firstly, at S305, the updating unit 14 calculates the correction value (rm ,i) that corresponds to the component of the target element present within the distance from the boundary of the corresponding inequality expression to the positions identified by a plurality of elements. More particularly, the updating unit 14 performs the computation as given below in Formula (35).
r
m,i
=Δt·A
m
·k·|s
m
−W
m|k−1·ωm,i (35)
Subsequently, at S306, the updating unit 14 corrects y by subtracting the correction value (rm, i) from the second variable (yi) of the target element. More particularly, the updating unit 14 performs the computation as given below in Formula (36).
y
i(t+Δt)=yi(t+Δt)−rm,i (36)
After the updating unit 14 has performed the loop operation between S304 and S307, the system control proceeds to S308.
Then, after the updating unit 14 has performed the loop operation between S301 and S308 for M number of times, that is, when the operations have been performed for all of the M number of linear inequality expressions, the updating unit 14 ends the present flow of operations.
As a result of performing the operations explained above, for each of the M number of inequality expressions, if a plurality of first variables (xi) does not satisfy the concerned linear inequality expression; then the updating unit 14 becomes able to subtract, from the second variable (yi) of each of a plurality of elements, the correction value (rm, i) that corresponds to the component of the target element present within the distance from the boundary of the corresponding inequality expression to the positions identified by a plurality of elements. As a result, when a plurality of first variables (xi) does not satisfy the corresponding linear inequality expression, the updating unit 14 can correct a plurality of second variables (yi) in such a way that a plurality of first variables (xi) changes toward satisfying the corresponding inequality expression. As a result, the updating unit 14 becomes able to increase the probability of a plurality of first variables (xi) satisfying all of one or more constraint conditions at the end timing (t=T).
Firstly, the updating unit 14 repeatedly performs a loop operation between S401 and S409 while incrementing the index m by one from m=1 to m=M.
In the loop operation between S401 and S409,
firstly, at S402, the updating unit 14 calculates the constraint value (Sm). The operation performed at S402 is identical to the operation performed at S302 illustrated in
Then, at S403, the updating unit 14 determines whether or not the constraint value (Sm) is equal to or smaller than the constant term (Wm) in the corresponding linear inequality expression. The operation performed at S403 is identical to the operation performed at S303 illustrated in
At S404, the updating unit 14 calculates the slope Em with respect to the boundary of the corresponding linear inequality expression in the direction identified by a plurality of elements. More particularly, the updating unit 14 performs the computation as given below in Formula (37).
Subsequently, the updating unit 14 repeatedly performs a loop operation between S405 and S408 while incrementing the index i by one from 1 to N. Thus, in the loop operation between S405 and S408, the updating unit 14 performs the operations with respect to the i-th element representing the target element from among the N number of elements.
In the loop operation between S405 and S408, firstly, at S406, the updating unit 14 calculates the correction value (rm, i) that corresponds to the component of the target element present within the distance from the boundary of the linear inequality expression to the positions identified by a plurality of elements and that corresponds to the component of the target element having a slope with respect to the boundary of the linear inequality expression in the direction identified by a plurality of elements. More particularly, the updating unit 14 performs the computation as given below in Formula (38).
r
m,i
=Δt·(Am·k·|Sm−Wm|k−1+Bm·Em)ωm,i (38)
Then, at S407, the updating unit 14 corrects y by subtracting the correction value (rm, i) from the second variable (yi) of the target element. The operation performed at S407 is identical to the operation performed at S306.
After the updating unit 14 has performed the loop operation between S405 and S408 for N number of times, the system control proceeds to S409.
Then, after the updating unit 14 has performed the loop operation between S401 and S409 for M number of times, that is, when the operations have been performed for all of the M number of linear inequality expressions, the updating unit 14 ends the present flow of operations.
As a result of performing the operations explained above, for each of the M number of linear inequality expressions, if a plurality of first variables (xi) does not satisfy the corresponding linear inequality expression, the updating unit 14 becomes able to subtract, from the second variables (yi) of each of a plurality of elements, the correction value (rm, i) that corresponds to the component of the target element present within the distance from the boundary of the linear inequality expression to the positions identified by a plurality of elements and that corresponds to the component of the target element having a slope with respect to the boundary of the linear inequality expression in the direction identified by a plurality of elements. Particularly, as a result of adding, to the correction value (rm, i), the value corresponding to the component of the target element having a slope with respect to the boundary of the linear inequality expression in the direction identified by a plurality of elements; the updating unit 14 becomes able to hold down unstable fluctuation of a plurality of first variables (xi) and a plurality of second variables (yi) during the updating operation performed for each unit time (Δt).
Thus, when a plurality of first variables (xi) does not satisfy the corresponding linear inequality expression, the updating unit 14 becomes able to correct a plurality of second variables (yi), which corresponds to a plurality of elements, in such a way that a plurality of first variables (xi) stably changes toward satisfying the corresponding linear inequality expression. As a result, the updating unit 14 becomes able to increase the probability of a plurality of first variables (xi) satisfying all of one or more constraint conditions at the end timing (t=T).
Firstly, at S501, the updating unit 14 calculates the constraint value S. More particularly, in the constraint processing performed at S114 illustrated in
Meanwhile, S as the constraint value is obtained when, in each of a plurality of discreet variables included in the functions excluding the constant term (q) in the corresponding quadratic inequality expression, the corresponding first variable (xi) is substituted.
Then, at S502, the updating unit 14 determines whether or not the constraint value (S) is equal to or smaller than the constant term (q) in the quadratic inequality expression. That is, the updating unit 14 determines whether or not a plurality of first variables (xi) satisfies the quadratic inequality expression.
When the constraint value (S) is equal to or smaller than the constant term (q), that is, when a plurality of first variables (xi) satisfies the corresponding quadratic inequality expression (Yes at S502), the updating unit 14 ends the present flow of operations. On the other hand, when the constraint value (S) is neither equal to nor smaller than the constant term (q), that is, when a plurality of first variables (xi) does not satisfy the corresponding quadratic inequality expression (No at S502), the system control proceeds to S503.
Subsequently, the updating unit 14 repeatedly performs a loop operation between S503 and S506 while incrementing the index i by one from 1 to N. Thus, in the loop operation between S503 and S506, the updating unit 14 performs the operations with respect to the i-th element representing the target element from among the N number of elements.
In the loop operation between S503 and S506, firstly, at S504, the updating unit 14 calculates a correction value (ri) that corresponds to the component of the target element present within the distance from the boundary of the quadratic inequality expression to the positions identified by a plurality of elements. More particularly, in the constraint processing performed at S114 illustrated in
Subsequently, at S505, the updating unit 14 corrects y by subtracting the correction value (ri) from the second variable (yi) of the target element. More particularly, the updating unit 14 performs the computation as given below in Formula (43).
y
i(t+Δt)=yi(t+Δt)−ri (43)
After performing the loop operation between S503 and S506 for N number of times, the updating unit 14 ends the present flow of operations.
As a result of performing the operations explained above, regarding quadratic inequality expressions, when a plurality of first variables (xi) does not satisfy the corresponding quadratic inequality expression, the updating unit 14 can subtract, from the second variable (yi) of each of a plurality of elements, the correction value (ri) that corresponds to the component of the target element present within the distance from the boundary of the concerned quadratic inequality expression to the positions identified by a plurality of elements. As a result, when a plurality of first variables (xi) does not satisfy the corresponding quadratic inequality expression, the updating unit 14 can correct a plurality of second variables (yi) in such a way that a plurality of first variables (xi) changes toward satisfying the corresponding quadratic inequality expression. As a result, the updating unit 14 becomes able to increase the probability of a plurality of first variables (xi) satisfying all of one or more constraint conditions at the end timing (t=T).
As explained above, in the solution finding device 10 according to the present embodiment, the 0-1 combinatorial optimization problem is solved according to a simulated bifurcation algorithm. In the solution finding device 10 according to the present embodiment, during the updating operation performed for each unit time (Δt), for each of one or more constraint conditions, when an inequality expression in which first variables corresponding to a plurality of discrete variables are substituted is not satisfied, the correction value (ri) that corresponds to the component of the target element present within the distance from the boundary of the inequality expression to the positions identified by a plurality of elements is subtracted from the second variable (yi) of each of a plurality of elements.
Hence, in the solution finding device 10 according to the present embodiment, under one or more constraint conditions expressed using inequality expressions, even if a 0-1 combinatorial optimization problem is to be solved, the solution can be obtained using the same number of variables as the number of variables in the case of not setting any constraint condition. Thus, in the solution finding device 10 according to the present embodiment, a 0-1 combinatorial optimization problem can be easily solved under one or more constraint conditions, which are expressed using inequality expressions, without having to set slack variables. As a result, in the solution finding device 10 according to the present embodiment, it becomes possible to reduce the amount of memory used for storing the intermediate progress of the variables, and to reduce the amount of computation and the time of computation.
Meanwhile, in the case of performing constraint processing with respect to a linear inequality expression, M number of first-type inequality expressions can be generated and the coefficient ωm, i, which is multiplied to the i-th discrete variable, and the constant number (Wm) of inequality expressions can be called.
In the solution finding device 10, when the column number and the row number are specified once, the coefficient ωm, i and the constant number (Wm) can be read simultaneously, and the processing can be performed with ease.
The information processing system 100 includes a management server 101, a network 102, a plurality of compute servers 103 (103a to 103c) (information processing devices), a plurality of cables 104 (104a to 104c), and a switch 105. Meanwhile, a terminal device 106 is provided that is capable of communicating with the information processing system 100. The management server 101, the compute servers 103 (103a to 103c), and the terminal device 106 perform data communication with each other via a network 102. The network 102 is, for example, the Internet in which a plurality of computer networks is connected to each other. As far as the communication medium is concerned, the network 102 can be a wired network, a wireless network, or a combination thereof.
The compute servers 103 (103a to 103c) are connected to the switch 105 via the cables 104 (104a to 104c). The cables 104 (104a to 104c) and the switch 105 constitute the interconnects among the compute servers 103. Thus, the compute servers (103a to 103c) are capable of performing data communication also with each other via the interconnects. The switch 105 is, for example, an InfiniBand switch. The cables 104a to 104c are, for example, InfiniBand cables. Alternatively, the switch 105 and the cables 104 can be a wired LAN switch and wired LAN cables, respectively. Meanwhile, regarding the communication standard and the communication protocol implemented in the cables 104 and the switch 105, there is no particular restriction. The terminal device 106 is, for example, a notebook PC, a desktop PC, a smartphone, a tablet, or an in-vehicle terminal device.
Regarding a combinatorial optimization problem, the solution finding operation using the enhanced algorithm can be performed in a parallel manner or a dispersive manner. Thus, the compute servers 103 (103a to 103a) and/or the processors thereof either can be instructed to execute some steps of some part of the computation in the solution finding operation performed with respect to a combinatorial optimization problem based on the enhanced algorithm, or can perform the same computation in parallel with respect to difference variables. In that case, for example, the management server 101 converts the combinatorial optimization problem, which is input by the user, into a format processible by the compute servers 103, and causes the compute servers 103 to perform the processing. Then, the management server 101 obtains the computation results from the compute servers 103, and converts the collected computation results into the solution of the combinatorial optimization problem.
In
The processor 110 is an electronic circuit that performs arithmetic processing and controls the management server 101. The processor 110 can be, for example, a CPU, a microprocessor, an ASIC, an FPGA, a PLD, or a combination thereof. The managing unit 111 provides an interface for enabling the user to operate the management server 101 via the terminal device 106. The interface provided by the managing unit 111 is, for example, an API, a CLI, or a webpage. For example, via the managing unit 111, the user inputs information about a combinatorial optimization problem, and browses and/or downloads the solution of the calculated combinatorial optimization problem. The converting unit 112 receives input of the parameters related to the combinatorial optimization problem, and converts the input parameters into a format that is processible in the compute servers 103. Moreover, the control unit 113 sends control commands to the compute servers 103. After the control unit 113 has obtained the computation results from the compute servers 103, the converting unit 112 summarizes a plurality of computation results, converts them into the solution of the combinatorial optimization problem, and outputs the solution of the combinatorial optimization problem.
The memory unit 114 is used to store: the programs meant for the management server 101; the data required for the execution of the programs; and a variety of data including the data generated by the programs. Herein, the programs include both OS and applications. Meanwhile, the memory unit 114 can be a volatile memory, a nonvolatile memory, or a combination thereof. A volatile memory is, for example, a DRAM or an SRAM. A nonvolatile memory is a NAND flash memory, a NOR flash memory, a ReRAM, or an MRAM. Alternatively, the memory unit 114 can be a hard disk, an optical disk, a magnetic tape, or an external storage device.
The communication circuit 115 transmits data to and receives data from various devices that are connected to the network 102. The communication circuit 115 is, for example, a Network Interface Card (NIC) for a wired LAN. Alternatively, the communication circuit 115 can be a communication circuit of some other type such as a communication circuit for a wireless LAN. The input circuit 116 enables data input to the management server 101. The input circuit 116 includes, for example, a USB or a PCI-Express as an external port. An operation device 118 is connected to the input circuit 116. The operation device 118 is used by the user to input information to the management server 101. Examples of the operation device 118 include, but are not limited to, a keyboard, a mouse, a touch-sensitive panel, and a sound recognition device. The output circuit 117 enables data output from the management server 101. The output circuit 117 includes HDMI (registered trademark) or DisplayPort as an external port. For example, A display device 119 is connected to the output circuit 117. Examples of the display device 119 include, but are not limited to, a Liquid Crystal Display (LCD), an organic electroluminescence (EL) display, and a projector.
The administrator can use the operation device 118 and the display device 119 and perform maintenance of the management server 101. The operation device 118 and the display device 119 can be integrated into the management server 101. However, the operation device 118 and the display device 119 need not be connected to the management server 101. For example, the administrator can perform maintenance of the management server 101 using a terminal device capable of communicating with the network 102.
The compute server 103a includes, for example, a communication circuit 131, a shared memory 132, processors 133a to 133d, a storage 134, and a host bus adapter 135. The communication circuit 131, the shared memory 132, the processors 133a to 133d, the storage 134, and the host bus adapter 135 are connected to each other via a bus 136.
The communication circuit 131 transmits data to and receives data from the devices that are connected to the network 102. The communication circuit 131 is, for example, a Network Interface Card (NIC) for a wired LAN. Alternatively, the communication circuit 131 can be a communication circuit of some other type such as a communication circuit for a wireless LAN. The shared memory 132 is accessible from the processors 133a to 133d. The shared memory 132 is, for example, a volatile memory such as a DRAM and an SRAM. Alternatively, the shared memory 132 can be some other type of memory such as a nonvolatile memory. The processors 133a to 133d share data via the shared memory 132. Meanwhile, the shared memory 132 need not be configured using all of the memory of the compute server 103a. For example, some of the memory of the compute server 103a can be configured as a local memory accessible only from one of the processors 133a to 133d.
The processors 133a to 133d are electronic circuits that perform computation. Each of the processors 133a to 133d can be a CPU, a GPU, an FPGA, an ASIC, or a combination thereof. Alternatively, each of the processors 133a to 133d can be a CPU core or a CPU thread. When the processors 133a to 133d are CPUs, there is no particular restriction on the number of sockets provided in the compute server 103a. Meanwhile, the processors 133a to 133d can be connected to the other constituent elements of the compute server 103a via a bus such as a PCI express.
In the example illustrated in
The storage 134 is used to store: the programs meant for the compute server 103a; data required for the execution of the programs; and a variety of data including the data generated by the programs. Herein, the programs include the OS and applications. Meanwhile, the storage 134 can be a volatile memory, a nonvolatile memory, or a combination thereof. A volatile memory is, for example, a DRAM or an SRAM. A nonvolatile memory is a NAND flash memory, a NOR flash memory, a ReRAM, or an MRAM. Alternatively, the storage 134 is a hard disk, an optical disk, a magnetic tape, or an external storage device.
The host bus adapter 135 performs data communication with the other compute servers 103. The host bus adapter 135 is connected to the switch 105 via the cable 104a. The host bus adapter 135 is, for example, a Host Channel Adaptor (HCA). The host bus adapter 135, the cable 104a, and the switch 105 constitute an interconnect capable of achieving a high throughput. That enables achieving enhancement in the speed of the parallel computation.
In the compute server 103a, each of the processors 133a to 133d executes a program for solving a combinatorial optimization problem. The program causes the compute server 103a to function as the input unit 12, the updating unit 14, and the output unit 16.
The information processing system 100 configured in the manner explained above can be used as a PC cluster. A PC cluster is a system in which a plurality of computers is connected so as to achieve the computational performance not achievable in a single computer. In the information processing system 100, for example, a Message Passing Interface (MPI) can be used to ensure that, even when memories are disposed in a dispersed manner in a plurality of compute servers 103, it still becomes possible to perform parallel computation.
Meanwhile, the information processing system 100 can be configured as a plurality of GPUs connected by a high-speed link. In that case, each GPU performs identical operations to the operations performed by the compute servers 103.
Although the invention has been described with respect to the abovementioned specific embodiment for a complete and clear disclosure, the appended claims are not to be thus limited but are to be construed as embodying all modifications and alternative constructions that may occur to one skilled in the art that fairly fall within the basic teaching herein set forth. For example, some of the constituent elements described in the embodiments can be deleted. Alternatively, the constituent elements described in different embodiments can be appropriately integrated.
Number | Date | Country | Kind |
---|---|---|---|
2021-087125 | May 2021 | JP | national |
This application is a continuation of PCT International Application No. PCT/JP2022/017778 filed on Apr. 14, 2022 which claims the benefit of priority from Japanese Patent Application No. 2027-087125, filed on May 24, 2021, the entire contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP2022/017778 | Apr 2022 | US |
Child | 18517147 | US |