COMPUTING DEVICES AND INFORMATION PROCESSING SYSTEMS

The calculation device employs an improved algorithm with a penalty component to ensure distinct solutions are generated for 0-1 optimization problems, addressing the issue of duplicate outputs in existing Izing machine methods and reducing calculation costs.

JP7625546B2Active Publication Date: 2025-02-03KK TOSHIBA
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2022021303
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-02-15
Publication Date
2025-02-03
Estimated Expiration
2042-02-15

AI Technical Summary

Technical Problem

Existing methods for solving 0-1 optimization problems using Izing machines often result in duplicate solutions, leading to increased calculation costs when multiple solutions are required, as these machines typically output only one solution per execution.

Method used

A calculation device equipped with a set unit, update unit, and output unit, utilizing an improved algorithm that adds a penalty component to the Izing model to prevent duplicate solutions by updating first and second variables based on a penalty component, ensuring distinct solutions are generated efficiently.

Benefits of technology

The device effectively calculates multiple distinct solutions to 0-1 optimization problems at a reduced calculation cost by preventing duplicate outputs, enhancing efficiency and reducing overall computational expense.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007625546000035
    Figure 0007625546000035
  • Figure 0007625546000036
    Figure 0007625546000036
  • Figure 0007625546000037
    Figure 0007625546000037
Patent Text Reader

Abstract

To calculate a plurality of solutions of a 0-1 optimization problem.SOLUTION: A calculation device according to an embodiment includes an update unit. The update unit sequentially and alternately updates, for each of virtual N particles, a first variable indicating a position of an object particle and a second variable indicating a momentum of the object particle for each unit time period from start time to finish time. Each of M limit solutions includes N limit values. In update processes by unit time periods, the update unit updates, for each of the N particles, the first variable on the basis of the second variable, and when the first variable is smaller than a first value, changes the first variable to the first value, and when the first variable is larger than a second value, changes the first variable to the second value. The update unit updates the second variable on the basis of each first variable of the N particles and a penalty component of the object particle. The penalty component of the object particle shows a momentum in the unit time period directing the position of the object particle toward an opposite polarity, the momentum being larger as the first variable corresponding to the object particle being closer to M limit solutions.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] FIELD OF THE DISCLOSURE Embodiments of the present invention relate to computing devices and information processing systems. [Background technology]

[0002] The optimization of complex systems in a variety of application fields, including finance, logistics, control, and chemistry, often reduces to a mathematical combinatorial optimization problem: finding a combination of discrete values ​​that minimizes a function of two variables, called a cost function.

[0003] In recent years, a special-purpose device called an Ising machine that searches for the ground state of the Ising spin model has been attracting attention. The Ising problem is a combinatorial optimization problem that minimizes the Ising energy. The Ising energy is expressed by a cost function given by a quadratic function of the Ising spin, which is a binary variable. Many practical combinatorial optimization problems can be converted into Ising problems. Ising machines solve Ising problems quickly. Many practical combinatorial optimization problems can be solved quickly by using an Ising machine.

[0004] Various algorithms have been proposed for solving combinatorial optimization problems using the Ising model. Hardware has also been proposed for solving combinatorial optimization problems using the Ising model. For example, the simulated bifurcation algorithm (SB algorithm) is known as one of various algorithms for solving combinatorial optimization problems using the Ising model. In addition, the simulated bifurcation machine is known as an Ising machine that uses the SB algorithm.

[0005] When solving a combinatorial optimization problem, there may be situations where multiple different solutions, including not only the optimal solution but also suboptimal solutions or solutions exceeding an arbitrary threshold, are desired. For example, when solving a financial portfolio as a combinatorial optimization problem, if it is possible to know not only the most profitable combination but also the second and third most profitable combinations, it may be possible to scale up the investment strategy. An Ising machine such as a simulated bifurcation machine outputs one solution for each execution. Therefore, in such a situation, it is sufficient to execute an Ising machine such as a simulated bifurcation machine multiple times and select a solution that meets the conditions from the multiple solutions obtained.

[0006] However, when an Ising machine is run multiple times, there is a possibility that the same solution may be included in the multiple solutions obtained. Therefore, in a situation where multiple different solutions are obtained for one combinatorial optimization problem, it is preferable for the Ising machine to have a function that does not calculate the same solution multiple times in order to reduce the total calculation cost. [Prior art documents] [Patent documents]

[0007] [Patent Document 1] International Publication No. 2020 / 196866 [Patent Document 2] JP 2019-145010 A [Patent Document 3] JP 2019-159566 A [Non-patent literature]

[0008] [Non-Patent Document 1] Hayato Goto, Kotaro Endo, Masaru Suzuki, Yoshisato Sakai, Taro Kanao, Yohei Hamakawa, Ryo Hidaka, Masaya Yamasaki, and Kosuke Tatsumura, “High-performance combinatorial optimization based on classical mechanics”, Science Advances 7, 6 (2021), eabe7953. Summary of the Invention [Problem to be solved by the invention]

[0009] The problem to be solved by the invention is to efficiently calculate multiple solutions to a 0-1 optimization problem with low computational cost. [Means for solving the problem]

[0010] A computing device according to an embodiment solves a 0-1 optimization problem in which a quadratic function including N (N is an integer of 2 or more) binary variables is used as an objective function. The computing device includes a setting unit, an updating unit, and an output unit. The setting unit sets M (M is an integer of 1 or more) constraint solutions. The updating unit sequentially and alternately updates a first variable representing a position of a target particle and a second variable representing a momentum of the target particle for each of N virtual particles for each unit time from a start time to an end time. The output unit outputs a solution to the 0-1 optimization problem based on the first variables of the N particles at the end time. The N binary variables are 0 or 1. Each of the M constraint solutions includes N constraint values. The N constraint values ​​correspond to the N binary variables. Each of the N constraint values ​​is 0 or 1. The N particles correspond to the N binary variables. In the update process for each unit time, the update unit updates the first variable for each of the N particles based on the second variable, changes the first variable to the first value when the first variable is smaller than a first value, changes the first variable to the second value when the first variable is larger than a second value larger than the first value, and updates the second variable based on the first variable for each of the N particles and a penalty component of the target particle. The penalty component of the target particle represents a momentum per unit time that directs the position of the target particle toward the opposite polarity, and is a value that increases as the first variable corresponding to the target particle approaches the M constraint solutions. [Brief description of the drawings]

[0011] [Figure 1] FIG. 2 is a diagram showing a first example of a functional configuration of a computing device. [Diagram 2] 4 is a flowchart showing a processing flow of a computing device according to a first example. [Diagram 3] FIG. 13 is a diagram showing a second example of the functional configuration of a computing device. [Figure 4] 10 is a flowchart showing a processing flow of a computing device according to a second example. [Diagram 5] FIG. 13 is a diagram showing a third example of the functional configuration of a computing device. [Figure 6]4 is a flowchart showing a first example of a processing flow of a computing device. [Figure 7] 10 is a flowchart showing a second example of the processing flow of the computing device. [Figure 8] FIG. 13 is a diagram showing the circuit configuration of the penalty calculation unit together with the z memory and the x memory. [Figure 9] FIG. 2 is a diagram showing a first configuration example of a pre-stage circuit together with a memory. [Figure 10] FIG. 13 is a diagram showing a second configuration example of the pre-stage circuit together with a memory. [Figure 11] FIG. 13 is a diagram showing a third example of a configuration of a front-stage circuit together with a memory. [Figure 12] FIG. 2 is a diagram showing a first configuration example of a subsequent circuit together with a memory. [Figure 13] FIG. 13 is a diagram showing a second configuration example of a subsequent circuit together with a memory. [Figure 14] FIG. 13 is a diagram showing a third example of a configuration of a subsequent circuit together with a memory. [Figure 15] 1 shows the configuration of an information processing system. [Figure 16] FIG. 2 is a diagram showing the configuration of a host device according to a first example together with a computing device. [Figure 17] FIG. 13 is a diagram showing the configuration of a host device according to a second example together with a computing device. [Figure 18] 10 is a flowchart showing the flow of processing of a calculation instruction unit according to the second example. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0012] Hereinafter, the embodiments will be described in detail with reference to the drawings.

[0013] (SB algorithm) The Ising energy in an Ising spin model including N (N is an integer of 2 or more) Ising spins is expressed by the cost function shown in formula (1). The cost function of formula (1) is a quadratic function of the Ising spin.

number

[0014] In formula (1), s i and s j represents the Ising spin, a binary variable that can be either -1 or +1. i represents the i-th Ising spin (i is an integer between 1 and N) of the N Ising spins. j represents the j-th Ising spin (j is an arbitrary integer between 1 and N) among the N Ising spins.

[0015] J i,j is a coupling coefficient multiplied by the quadratic term including the i-th Ising spin and the j-th Ising spin in the quadratic function. J represents a matrix including N × N coupling coefficients, and is called an interaction matrix. J has J in the i-th row and j-th column. i,j will be placed.

[0016] h i is the external magnetic field coefficient multiplied by the linear term including the i-th Ising spin. Also, h is the i-th i represents a vector containing N external magnetic field coefficients on which the vectors are placed, and is called the external magnetic field vector.

[0017] The N-size Ising problem is the problem of calculating the spin configuration that minimizes the Ising energy for an Ising model containing N Ising spins. The spin configuration that minimizes the energy is called the ground state.

[0018] A general 0-1 optimization problem, which optimizes a combination of 0s or 1s, can be expressed as an Ising problem defined using an interaction matrix (J) and an external magnetic field vector (h). An Ising machine receives J and h as the problem to be solved and searches for a spin configuration with lower Ising energy. As a solution, the Ising machine outputs a spin configuration that represents the values ​​of the N Ising spins obtained through the search. The spin configuration with the minimum Ising energy is called an exact solution. A spin configuration that is not an exact solution but has a spin energy close to the minimum is called an approximate solution.

[0019] The SB algorithm is one of the algorithms for solving the Ising problem. The SB algorithm solves the Ising problem by simulating the time evolution of a Hamiltonian in which virtual N particles are separated into two positions over time. In particular, the SB algorithm simulates the time evolution of N particles using an equation of motion in which the operation of the interaction matrix is ​​included only in the equation for calculating momentum, and not in the equation for calculating position. For this reason, the SB algorithm can simulate the time evolution of a Hamiltonian using a discrete solution method such as the symplectic Euler method. Therefore, the SB algorithm can obtain a solution quickly with low computational cost.

[0020] The N particles correspond to the N Ising spins of the Ising problem. The SB algorithm calculates the N variables x i and N variables y i We use N variables x i Each of the N variables y i Each of the variables x represents the momentum of the i-th particle. i the first variable, variable y i is also called the second variable.

[0021] Non-Patent Document 1 describes, as versions of the SB algorithm, an adiabatic SB (aSB) algorithm, a ballistic SB (bSB) algorithm, and a discrete SB (dSB) algorithm.

[0022] The adiabatic SB algorithm uses the first variable (x i ) and the second variable (y i ) as a continuous variable represented by real numbers. The ballistic SB algorithm treats the first variable (x i ) as a continuous variable expressed by a real number greater than or equal to a first value and less than or equal to a second value. The first value is, for example, -1, and the second value is, for example, +1. The discrete SB algorithm treats the first variable (x i) is treated as a binary variable represented by either the first or second value.

[0023] The ballistic SB algorithm uses the equations of motion expressed by equations (2-1) and (2-2), in which the terms related to the external magnetic field coefficients are omitted.

number

[0024] a 0、 c0 and D are predetermined constants. t is a variable representing time. a(t) is a control parameter that starts from 0 and changes according to t. H bSB represents the Hamiltonian and is expressed by equation (3-1). Also, V in equation (3-1) bSB is expressed by equation (3-2).

number

[0025] The ballistic SB algorithm simulates the time evolution of the equations of motion shown in equations (2-1) and (2-2) by repeatedly executing the operations of equations (4-1) and (4-2) alternately while increasing t by Δt, where Δt represents the time step (unit time).

number

[0026] Furthermore, the ballistic SB algorithm calculates x i is less than a first value (e.g., -1) or x i is greater than a second value (e.g., 1) that is greater than the first value. i If x is less than a first value (e.g. -1), i Change to the first value (-1) and y i Change x to a given value (for example, 0). iIf x is greater than a second value (e.g., 1), i Change to a second value (for example, 1) and y i is changed to a predetermined value (0). Note that the ballistic SB algorithm uses x i If x is greater than or equal to a first value (e.g., -1) and less than or equal to a second value (e.g., 1), i The value of y i Do not change the value of

[0027] Then, the ballistic SB algorithm calculates the N variables x when t reaches a certain value. i Each of the values ​​of is binarized using a predetermined threshold (for example, 0), and the binarized result is output as a solution to the 0-1 optimization problem.

[0028] In addition, like the ballistic SB algorithm, the discrete SB algorithm also increases t by Δt, and i and y i The discrete SB algorithm simulates the time evolution of the equation of motion by repeating x i Every time x is updated, i Depending on whether x is less than a certain threshold (e.g., 0) or greater than or equal to a threshold (e.g., 0), i Change the value to -1 or 1.

[0029] (Improved algorithm) The improved algorithm according to this embodiment is an algorithm for solving a 0-1 optimization problem with a quadratic function including N binary variables as an objective function, and is an algorithm obtained by improving the ballistic SB algorithm or the discrete SB algorithm. The improved algorithm is an algorithm in which a penalty (P) is added to the equation of motion in the ballistic SB algorithm or the discrete SB algorithm so that a solution identical to M (M is an integer equal to or greater than 1) restricted solutions is not calculated.

[0030] Each of the M restricted solutions is one of the solutions to a 0-1 optimization problem in which the objective function is a quadratic function including N binary variables. Each of the M restricted solutions includes N restriction values. Each of the N restriction values ​​represents 0 or 1. Each of the M restricted solutions may be a solution of the same problem previously calculated using an Ising machine, or may be, for example, an artificially set solution.

[0031] The improved algorithm uses an equation that adds the penalty component of the target particle to the momentum of each of the N particles in the ballistic SB algorithm or the discrete SB algorithm. For example, the equations of motion of the improved algorithm, which is an improvement of the ballistic SB algorithm, are expressed by equations (5-1) and (5-2). Note that terms related to the external magnetic field coefficients are omitted in equations (5-1) and (5-2).

number

[0032] H bSB represents the Hamiltonian and is expressed by equation (6-1). V in equation (6-1) bSB is expressed by equation (6-2).

number

[0033] ∂P / ∂x i represents the penalty component of the i-th particle among N particles. P represents the penalty that is the composite penalty component of N particles.

[0034] The penalty component of the i-th particle represents the momentum per unit time that moves the position of the i-th particle in the opposite direction from the current position. The penalty component of the i-th particle is a value that increases as the position of the i-th particle approaches the M constrained solutions.

[0035] The improved algorithm simulates the time evolution of the equations of motion shown in equations (5-1) and (5-2) by alternately and repeatedly executing the operations of equations (7-1) and (7-2) while increasing t by Δt.

number

[0036] Furthermore, the improved algorithm calculates x every time the equation (7-2) is calculated. i is less than a first value (e.g., -1) or x i is greater than a second value (e.g., 1) that is greater than the first value. The improved algorithm is i If x is less than a first value (e.g. -1), i Change to the first value (-1) and y i Change x to a given value (for example, 0). i If x is greater than a second value (e.g., 1), i Change to a second value (for example, 1) and y i is changed to a predetermined value (0). Note that the improved algorithm is i If x is greater than or equal to a first value (e.g., -1) and less than or equal to a second value (e.g., 1), i The value of y i Do not change the value of

[0037] Then, the improved algorithm calculates the sum of the N variables x when t reaches a certain value. i Each value of x is binarized with a predetermined threshold (e.g., 0), and the binarized result is output as the solution to the 0-1 optimization problem. Such an improved algorithm can output a solution to the 0-1 optimization problem quickly and with low computational cost, so that a solution identical to any of the M restricted solutions is not calculated.

[0038] The improved algorithm may be applied to the discrete SB algorithm. The improved algorithm applied to the discrete SB algorithm also uses an equation in which the momentum of each of the N particles is added to the penalty component of the target particle, and while increasing t by Δt, x i and yi The discrete SB algorithm simulates the time evolution of the equation of motion by repeating x i Every time x is updated, i Depending on whether x is less than a certain threshold (e.g., 0) or greater than or equal to a threshold (e.g., 0), i Change the value to -1 or 1.

[0039] Here, the penalty (P) added to the momentum so that a solution identical to the M restricted solutions is not calculated is expressed by the function of equation (8).

number

[0040] M p is a predetermined penalty coefficient, a negative real number. k is an arbitrary integer between 1 and M. k,j represents the j-th constraint value included in the k-th constraint solution among the M constraint solutions.

[0041] The brackets in Π in P expressed by the function of equation (8) are z k,j If is 0, then x j The closer to -1, the larger the z k,j If is 1, then x j The closer to 1, the larger it is. In other words, the brackets in P are the x values ​​when binarized to 0 or 1. j But, z k,j In other words, Π in P expresses such a distance component as N x j Then, P represents the result of multiplying M partial penalty values ​​corresponding to M restricted solutions by Σ.

[0042] Here, each of the M partial penalty values ​​(the calculation result of Π in equation (8)) is a formula that multiplies all the distance components of each of the N particles. Each distance component of each of the N particles is x j is -1 and z k,j If x is 1, orj is 1 and z k,j If is 0, it is 0. In other words, the distance component is x j But, z k,j If the variable is a negative polarity variable that is not the same as x1 to x2, then it is set to 0. Therefore, each of the M partial penalty values ​​is N If any of the above contains a variable with the opposite polarity, the result is 0.

[0043] This improves the algorithm by dividing the N x1 through x N Even if (N-1) of the solutions are the same as the restricted solution, the N solutions x1 to x N In situations where a solution is obtained that is very close to the M restricted solutions, such that one of the M is not identical to the restricted solution, the penalty can be set to 0. Thus, the improved algorithm can obtain solutions that are different from the M restricted solutions without eliminating solutions that are very close to the M restricted solutions.

[0044] Moreover, P can be expressed as in equation (9).

number

[0045] P k represents a partial penalty value, which is a penalty for the k-th constraint solution among the M constraint solutions. That is, P represents the partial penalty values ​​P1 to P M Add all of these together to get the penalty coefficient (M p ) is the value multiplied by

[0046] The partial penalty value P for the kth constraint solution among the M constraint solutions. k is expressed as in equation (10).

number

[0047] P kis expressed by a function that multiplies the distance components representing the distance between each of the positions of the N particles and the corresponding constraint value included in the k-th constraint solution for all of the N particles. The distance component of the j-th particle in the partial penalty value for the k-th constraint solution is x j is -1, and the jth constraint value in the kth constraint solution is z k,j If is 0, it is -1. The distance component of the jth particle is x j is -1 and z k,j If is 1, it is 0. Also, the distance component of the jth particle is x j is 1 and the jth constraint value z k,j If is 0, it is 0. The distance component of the jth particle is x j is 1 and z k,j is 1, then the distance component of the jth particle is x j If is greater than -1 and less than 1, the position of the jth particle (x j ) into the range 0 to 1, and the position where z k,j The closer it is, the larger it becomes.

[0048] In other words, the partial penalty value for a target restricted solution among the M restricted solutions is larger when the target restricted solution is closer to the N first variables if the N first variables do not include an inverse polarity variable. However, the partial penalty value for a target restricted solution is 0 if the N first variables include an inverse polarity variable. The inverse polarity variable is a first variable that is a first value (e.g., -1) or a second value (e.g., 1), and when the inverse polarity variable is the first value (e.g., -1), the corresponding limit value among the N limit values ​​included in the target restricted solution is 1, and when the inverse polarity variable is the second value (e.g., 1), the corresponding limit value among the N limit values ​​included in the target restricted solution is 0.

[0049] In addition, the partial penalty component of the target particle for a target restricted solution among the M restricted solutions is the component of the target particle in the partial penalty value for the target restricted solution. For example, the partial penalty value for the k-th restricted solution (P k ) component of the i-th particle in (∂P k / ∂xi ) is expressed as x i That is, the partial penalty value (P k ) component of the i-th particle in (∂P k / ∂x i ) is expressed as in equation (11).

number

[0050] In addition, the partial penalty component (∂P k / ∂x i ) for the M restricted solutions to obtain a predetermined penalty coefficient (M p ) is expressed as in equation (12).

number

[0051] Equation (12) is the penalty component (∂P / ∂x i That is, the penalty components of each of the N particles are calculated by adding the partial penalty components of the target particle of each of the M restricted solutions for the M restricted solutions to obtain a predetermined penalty coefficient (M p ) for each of the N particles. Therefore, the penalty component for each of the M restricted solutions is the partial penalty value (P k ) and then executes the operations of equations (11) and (12).

[0052] Therefore, the improved algorithm calculates the partial penalty value (P k ) and then executes the operations of equations (11) and (12), thereby making it possible to calculate the penalty components for each of the N particles.

[0053] (Computing device 10) Next, the configuration of the computing device 10 that executes the improved algorithm will be described.

[0054] 1 is a diagram illustrating a first example of a functional configuration of a computing device 10. Using an improved algorithm, the computing device 10 outputs a solution that is different from M restricted solutions in a 0-1 optimization problem in which a quadratic function including N binary variables is used as an objective function.

[0055] The computing device 10 is realized by a circuit such as a field-programmable gate array (FPGA). The computing device 10 may also be realized by an information processing device such as a computer, a computer system in which a plurality of computers or servers communicate with each other via a network, or a PC cluster in which a plurality of computers cooperate to execute information processing. The computing device 10 may also be realized by a central processing unit (CPU), a microprocessor, a graphics processing unit (GPU), an application specific integrated circuit (ASIC), or an electronic circuit including these circuits.

[0056] The calculation device 10 of the first example includes a J memory 21 (interaction coefficient memory), a z memory 23 (constrained solution memory), an x ​​memory 24 (first memory), a y memory 25 (second memory), a setting unit 26, a penalty calculation unit 27, an update unit 28, an output unit 29, and a control unit 30.

[0057] The J memory 21 stores an interaction matrix (J). That is, the J memory 21 stores N×N interaction coefficients (J i,k ) to remember.

[0058] The z memory 23 stores M restricted solutions. That is, the z memory 23 stores N restricted values ​​(z k,j ) to remember.

[0059] The x memory 24 stores N first variables (x i The N first variables (x i ) is updated every unit time.

[0060] The y memory 25 stores N second variables (y i ) are stored in the y memory 25. i ) is updated every unit time.

[0061] The setting unit 26 acquires a 0-1 optimization problem from an external device. The setting unit 26 sets an interaction matrix (J) in the J memory 21 according to the acquired 0-1 optimization problem. Furthermore, the setting unit 26 acquires M restricted solutions from the external device. The setting unit 26 sets the acquired M restricted solutions in the z memory 23.

[0062] The penalty calculation unit 27 calculates the penalty component (∂P / ∂x i More specifically, the penalty calculation unit 27 calculates the penalty component (∂P / ∂x i ) is calculated.

[0063] The update unit 28 updates the N first variables (x i ), and N second variables (y i More specifically, the update unit 28 updates the first variable (x i ) and the second variable (y i ) are updated sequentially and alternately.

[0064] In the update process for each unit time, the update unit 28 updates the first variable (x i) to the second variable (y i Further, the update unit 28 updates the first variable (x i ) is less than the first value (e.g., -1), the first variable (x i ) to the first value (e.g. -1) and the second variable (y i ) to a predetermined value (for example, 0). The update unit 28 also changes the first variable (x i ) is greater than the second value (e.g. 1), the first variable (x i ) to a second value (for example, 1) and change the second variable (y i ) to a predetermined value (for example, 0).

[0065] In addition, in the update process for each unit time, the update unit 28 updates the second variable (y i ) for the first variable (x i ) and the penalty component of the target particle (∂P / ∂x i ) and the penalty component of the target particle (∂P / ∂x i ) represents the momentum per unit time that moves the target particle's position toward the opposite polarity, and the N first variables (x i ) is closer to the M restricted solutions.

[0066] For example, the penalty component of the target particle (∂P / ∂x i ) is the partial penalty component (∂P k / ∂x i ) for the M restricted solutions to obtain a predetermined penalty coefficient (M p ) is multiplied by the partial penalty component (∂P k / ∂x i ) is the partial penalty value (P k ) are the components of the target particle.

[0067] Then, the partial penalty value for the target restricted solution (P k ) is the first set of N variables (x i) does not include the reverse polarity variable, the closer the target restricted solution is to the N first variables, the larger the penalty value (P k ) is the first set of N variables (x i ) contains a negative polarity variable. A negative polarity variable is a first variable (x i ), and for a first value (e.g., −1), The corresponding restricted solution among the N restriction values ​​included in the target restricted solution is 1, and in the case of a second value (e.g., 1), the corresponding restricted solution among the N restriction values ​​included in the target restricted solution is 0.

[0068] The specific process flow of the penalty calculation section 27 and the update section 28 will be further described with reference to FIGS.

[0069] The output unit 29 outputs the first variables (x i ) from the x memory 24 to generate a solution to the 0-1 optimization problem. For example, the output unit 29 outputs the first variable (x i ) to 0 or 1 using 0 as a threshold to generate a solution to the 0-1 optimization problem. Then, output unit 29 outputs the solution to the 0-1 optimization problem to an external device.

[0070] Prior to calculation of the improved algorithm, the control unit 30 sets various parameters in the penalty calculation unit 27 and the update unit 28. Furthermore, the control unit 30 controls repetitive processing for each unit time from the start time to the end time in the penalty calculation unit 27 and the update unit 28.

[0071] 2 is a flowchart showing the flow of processing of the computing device 10 according to the first example. The computing device 10 according to the first example executes processing according to the flow shown in FIG.

[0072] First, in S11, the setting unit 26 sets the interaction matrix (J) acquired from the external device in the J memory 21. The setting unit 26 sets the M restricted solutions acquired from the external device in the z memory 23.

[0073] Next, in S12, the update unit 28 and the penalty calculation unit 27 use the set interaction matrix (J) to calculate a solution to the 0-1 optimization problem that minimizes an objective function defined by the interaction matrix (J). In this case, the update unit 28 and the penalty calculation unit 27 calculate a solution different from the set M restricted solutions. Note that the processing contents of the update unit 28 and the penalty calculation unit 27 in S12 will be described in more detail later with reference to Figs. 6 and 7.

[0074] Next, in S13, the output unit 29 outputs the solution to the 0-1 optimization problem calculated in S12.

[0075] Next, in S14, the control unit 30 determines whether or not the termination condition is satisfied. For example, the calculation device 10 may output a plurality of solutions. For example, the control unit 30 determines that the termination condition is satisfied when a preset number of solutions have been output, a preset processing time has elapsed, or a preset event has occurred. If the termination condition is not satisfied (No in S14), the control unit 30 returns the process to S12 and causes the solution to the 0-1 optimization problem to be calculated again. If the termination condition is satisfied (Yes in S14), the control unit 30 ends this flow.

[0076] The calculation device 10 according to the first example described above can efficiently calculate a solution to a 0-1 optimization problem that is different from the M preset restricted solutions at low calculation cost.

[0077] Fig. 3 is a diagram showing a second example of the functional configuration of the computing device 10. The computing device 10 according to the second example has substantially the same functions and configuration as the computing device 10 according to the first example shown in Fig. 1, so components having substantially the same functions are given the same reference numerals and detailed descriptions thereof are omitted.

[0078] The computing device 10 according to the second example further includes an adding unit 32 and an erasing unit 33 in addition to the configuration of the computing device 10 according to the first example.

[0079] The control unit 30 according to the second example causes the update unit 28 to execute the calculation process from the start time to the end time multiple times. Then, the control unit 30 causes the output unit 29 to output the solution to the 0-1 optimization problem multiple times.

[0080] The setting unit 26 according to the second example may repeatedly acquire a 0-1 optimization problem from an external device. For example, the setting unit 26 according to the second example may acquire a first 0-1 optimization problem, and then acquire a second 0-1 optimization problem different from the first 0-1 optimization problem at a time interval. The setting unit 26 according to the second example sets an interaction matrix (J) corresponding to the acquired 0-1 optimization problem in the J memory 21 every time it acquires a 0-1 optimization problem.

[0081] Note that the setting unit 26 according to the second example may be configured to rewrite only the changed interaction coefficients and not rewrite the unchanged interaction coefficients when changing a part of the interaction coefficients of the interaction matrix (J) previously set in the interaction matrix (J). This enables the setting unit 26 according to the second example to shorten the time required to rewrite the interaction matrix (J).

[0082] In addition, the setting unit 26 may add a new restricted solution to the M restricted solutions set immediately before, or delete or change some or all of the M restricted solutions in response to an instruction from an external device. In this case, the z memory 23 may store a flag indicating valid or invalid for each of the M restricted solutions set. When deleting some or all of the M restricted solutions, the setting unit 26 may change the value of the flag from valid to invalid instead of erasing the data itself. This allows the setting unit 26 to shorten the time required to delete some or all of the M restricted solutions.

[0083] The adding unit 32 acquires the calculated solution of the 0-1 optimization problem when the updating unit 28 executes one calculation process from the start time to the end time. Then, the adding unit 32 adds the acquired solution to the M restricted solutions stored in the z memory 23 as one of the M restricted solutions.

[0084] When the 0-1 optimization problem is changed, the erasure unit 33 erases the M restricted solutions stored in the z memory 23. When the z memory 23 stores a flag indicating valid or invalid for each of the M restricted solutions set, the erasure unit 33 may erase the M restricted solutions by changing the value of the flag for each of the M restricted solutions from valid to invalid. This allows the erasure unit 33 to shorten the time required to delete the M restricted solutions.

[0085] In addition, in the first calculation process after the 0-1 optimization problem is updated, if a new constraint solution is not set from an external device, the update unit 28 and the penalty calculation unit 27 set the penalty component of the target particle to 0.

[0086] Fig. 4 is a flowchart showing the flow of processing of the computing device 10 according to the second example. The computing device 10 according to the second example executes processing according to the flow shown in Fig. 2. Note that in the flowchart of Fig. 4, steps that are substantially the same as those in the computing device 10 according to the first example shown in Fig. 2 are given the same step numbers.

[0087] First, in S11, the setting unit 26 executes the same process as S11 in the first example shown in Fig. 2. The setting unit 26 according to the second example may be configured not to acquire M restricted solutions from an external device. In this case, the setting unit 26 does not set M restricted solutions in the z memory 23. When the setting unit 26 does not set M restricted solutions in the z memory 23, the update unit 28 and the penalty calculation unit 27 calculate a solution with the penalty component of the target particle set to 0 in the first calculation process after the 0-1 optimization problem is updated.

[0088] Next, in S12, the update unit 28 and the penalty calculation unit 27 execute the same process as S12 of the first example shown in Fig. 2. Next, in S13, the output unit 29 executes the same process as S13 of the first example shown in Fig. 2. Next, in S14, the control unit 30 executes the same process as S14 of the first example shown in Fig. 2. If the end condition is not satisfied (No in S14), the control unit 30 advances the process to S21.

[0089] In S21, the adding unit 32 adds the solution output by the output unit 29 in S13 to the z memory 23. Then, in S22, the control unit 30 determines whether the 0-1 optimization problem has been changed. If the 0-1 optimization problem has not been changed (No in S22), the control unit 30 proceeds to S23. If the 0-1 optimization problem has been changed (Yes in S22), the control unit 30 proceeds to S25.

[0090] In S23, the setting unit 26 judges whether or not a new restricted solution has been received from the external device. If a new restricted solution has not been received (No in S23), the setting unit 26 advances the process to S12 and repeats the process from S12.

[0091] When a new restricted solution is received (Yes in S23), the setting unit 26 advances the process to S24. In S24, the setting unit 26 adds the newly received restricted solution to the z memory 23 as one of the M restricted solutions. After completing S24, the setting unit 26 advances the process to S12 and repeats the process from S12.

[0092] In S25, the erasure unit 33 erases the M restricted solutions stored in the z memory 23. The erasure unit 33 may erase the M restricted solutions by changing the value of a flag for each of the M restricted solutions from valid to invalid. After the end of S25, the erasure unit 33 returns the process to S11 and repeats the process from S11.

[0093] The calculation device 10 according to the second example described above can sequentially acquire multiple 0-1 optimization problems one by one and calculate multiple solutions for each of the multiple 0-1 optimization problems. Furthermore, the calculation device 10 according to the second example can efficiently calculate multiple non-overlapping solutions for each of the multiple 0-1 optimization problems with low calculation cost.

[0094] Fig. 5 is a diagram showing a third example of the functional configuration of the computing device 10. The computing device 10 according to the third example has substantially the same functions and configuration as the computing device 10 according to the first example shown in Fig. 1, so components having substantially the same functions are given the same reference numerals and detailed descriptions thereof are omitted.

[0095] The computing device 10 according to the third example further includes a validating unit 34. The validating unit 34 instructs the updating unit 28 to set the penalty component of the target particle to 0 and update the second variable (y i After the set time, the validating unit 34 updates the second variable (y i ) to update.

[0096] The SB algorithm uses the N first variables (x i ) and N second variables (y i ) to simulate the time evolution of N particles. The SB algorithm simulates the time evolution of N first variables (x i ) approaches the solution. Therefore, the SB algorithm i Whether or not the N first variables (x i When it becomes apparent that the penalty component (∂P / ∂x i) and add it to the calculation of the momentum. In this way, the calculation device 10 according to the third example can efficiently calculate a solution to the 0-1 optimization problem that is different from the M restricted solutions with low calculation cost.

[0097] Note that the computing device 10 according to the second example may include the validation unit 34. This allows the computing device 10 to efficiently calculate multiple non-overlapping solutions for each of multiple 0-1 optimization problems with less computational cost.

[0098] (Processing flow of the computing device 10) Fig. 6 is a diagram showing a first example of the flow of processing of the calculation device 10. The calculation device 10 shown in Fig. 1, Fig. 3 and Fig. 5 executes processing, for example, according to the flow shown in Fig. 6 in the solution calculation processing.

[0099] First, in S101, the control unit 30 sets parameters. Specifically, the control unit 30 sets coefficients a0, c0, and D, a(t) which is a function, Δt which represents a unit time, and T which represents an end time. a(t) is an increasing function which is 0 when t=initial time (for example, 0) and 1 when t=end time (T). The control unit 30 may set a0, c0, D, a(t), Δt, and T according to parameters preset by the user, or may set parameters which are predetermined and cannot be changed.

[0100] Next, in S102, the control unit 30 initializes variables. Specifically, the update unit 28 initializes a variable t representing time to an initial time (for example, 0). Furthermore, the update unit 28 initializes N first variables (x1(t) to x N (t)) and N second variables (y1 to y N ) is substituted with an initial value received from the user, a predetermined fixed value, or a random number, and stored in the x memory 24 and the y memory 25.

[0101] Next, the update unit 28 repeats the loop process between S103 and S116 until t becomes greater than T. In one loop process, the update unit 28 updates N first variables (x1(t+Δt) to x N (t+Δt)) for the N second variables (y1(t)~y N In one loop process, the update unit 28 calculates N second variables (y1(t+Δt) to y N (t+Δt)) for the N first variables (x1(t+Δt)~x N (t+Δt)), and the penalty component of the target particle at the target time (t+Δt) (∂P(t+Δt) / ∂x i Calculate based on (t+Δt).

[0102] The immediately preceding time (t) is a time unit time (Δt) before the target time (t+Δt). That is, the update unit 28 repeats the loop process between S103 and S116 to update N first variables (x1(t) to x N (t)) and N second variables (y1(t)~y N (t)) is updated sequentially for each unit time (Δt) from the initial time (t = 0) to the end time (t = T).

[0103] Next, the update unit 28 repeats the loop process between S104 and S109 while incrementing i by 1 from i=1 to i=N. i is an integer from 1 to N, and is an index representing a target particle among the N particles. Each of the N particles is i (t)) and the second variable (y i In the loop process between S104 and S109, the update unit 28 executes the process on the i-th particle of the N particles as the target particle.

[0104] In S105, the update unit 28 updates the first variable (x i(t+Δt)) is the first variable (x i (t)), the second variable (y i The update unit 28 calculates the delay time t by adding a value obtained by multiplying the delay time t by a predetermined coefficient (D) and a unit time (Δt). Specifically, the update unit 28 calculates the delay time t by the equation (13).

number

[0105] Next, in S106, the update unit 28 calculates the absolute value (|x i It is determined whether or not the first variable (x (t+Δt)|) is greater than a second predetermined value. In this example, the second value is 1. The second value is determined by the first variable (x i In this example, the first value is -1. The first value is the unit amount of the first variable (x i That is, in S106, the update unit 28 updates the first variable (x i The update unit 28 determines whether the absolute value (|x i If |x |(t+Δt)| is equal to or smaller than the second value, the process proceeds to S109 (No in S106). The update unit 28 updates the absolute value (|x i If (t+Δt)| is greater than the second value, the process proceeds to S107.

[0106] In S107, the update unit 28 updates the first variable (x i Specifically, the update unit 28 performs a constraint process on the first variable (x i If (t+Δt) is less than the first value (-1), then the first variable (x iThe update unit 28 changes the first variable (x i If (t+Δt) is greater than the second value (1), then the first variable (x i (t+Δt) is changed to a second value (1).

[0107] Next, in S108, the update unit 28 updates the second variable (y i Specifically, the update unit 28 performs a constraint process on the second variable (y i (t)) is changed to 0. After completing S108, the updating unit 28 advances the process to S109.

[0108] When the update unit 28 has executed the loop process between S104 and S109 N times, the update unit 28 advances the process to S110.

[0109] Next, the update unit 28 repeats the loop process between S110 and S114 while incrementing i by 1 from i=1 to i=N. In the loop process between S110 and S114, the update unit 28 executes the process on the i-th particle of the N particles as a target particle.

[0110] In S111, the update unit 28 updates the first variables (x1(t+Δt) to x N (t+Δt)) and the external force (f i Calculate the time (t+Δt).

[0111] Specifically, the update unit 28 calculates the formula (14).

number

[0112] Next, in S112, the penalty calculation unit 27 calculates the penalty component (∂P(t+Δt) / ∂xi Calculate the time (t+Δt).

[0113] In the process of calculating the penalty component of the target particle, first, the penalty calculation unit 27 calculates a partial penalty value (P k Calculate the time (t+Δt).

[0114] Specifically, for the k-th constraint solution, the penalty calculation unit 27 calculates the formula (15).

number

[0115] In addition, since the calculation of formula (15) results in the same value in all processes from i=1 to i=N, the penalty calculation unit 27 calculates the partial penalty value (P k (t+Δt) may be commonly used in the subsequent processing for i=2 to N.

[0116] Next, the penalty calculation unit 27 calculates a partial penalty value (P k (t+Δt)) k (t+Δt) / ∂x i Calculate the time (t+Δt).

[0117] Specifically, for the k-th constraint solution, the penalty calculation unit 27 calculates the equation (16).

number

[0118] Next, the penalty calculation unit 27 adds up the partial penalty components of the target particle at the target time (t+Δt) of each of the M restricted solutions for the M restricted solutions, and calculates a predetermined penalty coefficient (M p ) is multiplied. Specifically, the penalty calculation unit 27 calculates the formula (17).

number

[0119] By performing the above calculations, the penalty calculation unit 27 calculates the penalty component (∂P(t+Δt) / ∂x i The penalty calculation unit 27 can calculate the penalty component in S112 by calculating the external force (f i This may be performed in parallel with the calculation process of (t+Δt).

[0120] Next, in S113, the update unit 28 updates the second variable (y i (t+Δt)) is the second variable (y i (t)) is given an external force (f i (t+Δt)) and the penalty component of the target particle (∂P(t+Δt) / ∂x i The update unit 28 calculates the time t by adding a value obtained by multiplying the unit time (Δt) by the sum of (t+Δt) and (t+Δt). Specifically, the update unit 28 calculates the formula (18).

number

[0121] When the update unit 28 executes the loop process between S110 and S114 N times, the process proceeds to S115. In S115, the update unit 28 adds a unit time (Δt) to the immediately preceding time (t) to update the target time (t+Δt). In S116, the update unit 28 repeats the processes from S104 to S115 until t exceeds the end time (T). Then, when t becomes larger than the end time (T), the update unit 28 ends this flow.

[0122] Then, the update unit 28 updates the first variable (x i For example, the update unit 28 calculates the value of the corresponding spin according to the sign of the first variable (xi If the sign of (T)) is negative, the corresponding spin is set to -1, and if it is positive, the corresponding spin is set to +1. Then, the update unit 28 outputs the calculated values ​​of the multiple spins as a solution to the 0-1 optimization problem.

[0123] By executing the process according to the flowchart shown in FIG. 6, the update unit 28 updates the first variable (x i (t+Δt)) and the second variable (y i (t+Δt)) for each unit time, and the first variable (x i (t+Δt)) and the second variable (y i 6, the update unit 28 alternately updates the first variable (x i After calculating the second variable (y i Then, the update unit 28 executes a calculation according to the improved algorithm using the symplectic Euler method to calculate the N first variables (x1(t) to x N (t)) and N second variables (y1(t)~y N (t) can be calculated.

[0124] Fig. 7 is a diagram showing a second example of the processing flow of the calculation device 10. The calculation device 10 shown in Fig. 1, Fig. 3, and Fig. 5 may execute the processing in the solution calculation processing, for example, according to the flow shown in Fig. 7. Note that in the flowchart of Fig. 7, the same step numbers are assigned to the steps of the processing that are the same as the processing in the flowchart shown in Fig. 6.

[0125] First, in S101 and S102, the control unit 30 executes the same processing as in the first example shown in FIG. 6. Then, the update unit 28 executes the loop processing between S103 and S116 in the same manner as in the first example shown in FIG. 6. Note that in the processing of FIG. 7, in one loop processing, the update unit 28 updates N second variables (y1(t+Δt) to y N (t+Δt)) for the N first variables (x1(t)~x N (t)), and the penalty component of the target particle at the previous time (t) (∂P(t) / ∂x i In one loop process, the update unit 28 calculates N first variables (x1(t+Δt) to x N (t+Δt)) for the N second variables (y1(t+Δt)~y N Calculate based on (t+Δt).

[0126] Next, the update unit 28 repeats the loop process between S121 and S125 while incrementing i by 1 from i=1 to i=N. In the loop process between S121 and S125, the update unit 28 executes the process on the i-th particle of the N particles as a target particle.

[0127] In S122, the update unit 28 updates the first variables (x1(t) to x N (t)) and an external force (f i Calculate (t).

[0128] Specifically, the update unit 28 calculates the formula (19).

number

[0129] Next, in S123, the penalty calculation unit 27 calculates the penalty component (∂P(t) / ∂x iCalculate (t).

[0130] In the calculation process of the penalty components, first, the penalty calculation unit 27 calculates the partial penalty value (P k Calculate (t).

[0131] Specifically, for the k-th constraint solution, the penalty calculation unit 27 calculates the equation (20).

number

[0132] In addition, since the calculation of formula (20) results in the same value in all processes from i=1 to i=N, the penalty calculation unit 27 calculates the partial penalty value (P k (t)) may be commonly used in the subsequent processing for i=2 to N.

[0133] Next, the penalty calculation unit 27 calculates the partial penalty value (P k (t)) of the target particle ((∂P k (t)) / ∂x i Calculate (t).

[0134] Specifically, for the k-th constraint solution, the penalty calculation unit 27 calculates the equation (21).

number

[0135] Next, the penalty calculation unit 27 adds up the partial penalty components of the target particle at the immediately preceding time (t) for each of the M restricted solutions, and calculates a predetermined penalty coefficient (M p ) is multiplied. Specifically, the penalty calculation unit 27 calculates the formula (22).

number

[0136] By performing the above calculations, the penalty calculation unit 27 calculates the penalty component (∂P(t) / ∂x i The penalty calculation unit 27 can calculate the penalty component in S123 by calculating the external force (f i This may be performed in parallel with the calculation process of (t).

[0137] Next, in S124, the update unit 28 updates the second variable (y i (t+Δt)) is the second variable (y i (t)) is given an external force (f i (t)) and the penalty component of the target particle (∂P(t) / ∂x i The update unit 28 calculates the delay time by adding a value obtained by multiplying the sum of the delay time (t) and the unit time (Δt). Specifically, the update unit 28 calculates the delay time by the formula (23).

number

[0138] When the update unit 28 has executed the loop process between S121 and S125 N times, the update unit 28 advances the process to S126.

[0139] Next, the update unit 28 repeats the loop process between S126 and S129 while incrementing i by 1 from i=1 to i=N. In the loop process between S126 and S129, the update unit 28 executes the process on the i-th particle of the N particles as a target particle.

[0140] In S127, the update unit 28 updates the first variable (x i (t+Δt)) is the first variable (x i (t)), the second variable (y iThe update unit 28 calculates the time t by adding a value obtained by multiplying (t+Δt) by a predetermined coefficient (D) and a unit time (Δt). Specifically, the update unit 28 calculates the formula (24).

number

[0141] Next, in S106, the update unit 28 executes the same process as the first example shown in Fig. 6. The update unit 28 updates the absolute value (|x i If |x |(t+Δt)| is equal to or smaller than the second value, the process proceeds to S129 (No in S106). The update unit 28 updates the absolute value (|x i If (t+Δt)| is greater than the second value, the process proceeds to S107.

[0142] Next, in S107 and S108, the update unit 28 executes the same processes as in the first example shown in Fig. 6. After completing S108, the update unit 28 advances the process to S129.

[0143] When the updating unit 28 has executed the loop process between S126 and S129 N times, the updating unit 28 advances the process to S115. In S115, the updating unit 28 executes the same process as the first example shown in FIG. 6. In S116, the updating unit 28 repeats the processes from S104 to S115 until t exceeds the end time (T). Then, when t becomes larger than the end time (T), the updating unit 28 ends this flow. Furthermore, the updating unit 28 calculates the first variable (x i Depending on the sign of (T), the corresponding spin value is calculated, and the calculated multiple spin values ​​are output as a solution to the 0-1 optimization problem.

[0144] By executing the process according to the flowchart shown in FIG. 7, the update unit 28 updates the first variable (x i (t+Δt)) and the second variable (y i(t+Δt)) for each unit time, and the first variable (x i (t+Δt)) and the second variable (y i 7, the update unit 28 alternately updates the second variable (y i After calculating the first variable (x i Then, the update unit 28 executes a calculation according to the improved algorithm using the symplectic Euler method to calculate the N first variables (x1(t) to x N (t)) and N second variables (y1(t)~y N (t) can be calculated.

[0145] (Penalty Calculation Unit 27) Next, a configuration example in which the penalty calculation unit 27 is configured by a circuit will be described.

[0146] 8 is a diagram showing the circuit configuration of the penalty calculation unit 27, together with the z memory 23 and the x memory 24. The penalty calculation unit 27 has a front-stage circuit 41, a p memory 42, and a rear-stage circuit 43.

[0147] The front-stage circuit 41 calculates M partial penalty values ​​for M restricted solutions every unit time. For example, the front-stage circuit 41 calculates the k-th partial penalty value p k Calculate.

number

[0148] The p memory 42 stores M partial penalty values ​​calculated by the previous stage circuit 41. The M partial penalty values ​​stored in the p memory 42 are updated every unit time.

[0149] The latter circuit 43 calculates the penalty component of the target particle for each of the N particles for each unit time. For example, the latter circuit 43 calculates ∂P / ∂x i Then, the subsequent circuit 43 outputs the penalty component of the target particle for each of the N particles to the update unit 28 for each unit time.

number

number

[0150] 9 is a diagram showing a first configuration example of the pre-stage circuit 41 together with the z memory 23, the x memory 24, and the p memory 42. The pre-stage circuit 41 according to the first configuration example includes a first multiplication circuit 51, a first selector 52, a first addition circuit 53, a second multiplication circuit 54, a third multiplication circuit 55, and a first holding circuit 56.

[0151] The front-stage circuit 41 sequentially reads out the M×N limiting values ​​included in the M restricted solutions stored in the z memory 23 one by one for each cycle while performing a raster scan in the row direction. More specifically, the front-stage circuit 41 first reads out the N limiting values ​​included in the first restricted solution of the M restricted solutions one by one for each cycle from the 1st to the Nth. Next, the front-stage circuit 41 sequentially reads out the N limiting values ​​included in the second restricted solution of the M restricted solutions one by one for each cycle from the 1st to the Nth. Thereafter, the front-stage circuit 41 sequentially reads out the N limiting values ​​included in each of the third to Mth restricted solutions one by one for each cycle from the 1st to the Nth.

[0152] In parallel with reading the limit value from the z memory 23, the front-stage circuit 41 reads out the N first variables stored in the x memory 24 in order from the first first variable (x1) to the Nth first variable (x N) one by one, and this process is repeated M times. In this case, the front-stage circuit 41 synchronously reads out the N limiting values ​​and the N first variables contained in each of the M restricted solutions. That is, the front-stage circuit 41 reads out the i-th limiting value (z k,i ) and the first variable (x i ) and read it synchronously.

[0153] The first multiplication circuit 51 multiplies the first variable (x i ) multiplied by -1 (-x i ) to output.

[0154] The first selector 52 selects the limit value (z k、i The first selector 52 obtains the obtained limit value (z k、i ) is 1, the first variable (x i The first selector 52 selects and outputs the obtained limit value (z k、i ) is 0, the value (-x i ) and output it.

[0155] The first adder circuit 53 outputs a value obtained by adding 1 to the value output from the first selector 52 every cycle. The second multiplier circuit 54 outputs a value obtained by multiplying the value output from the first adder circuit 53 by 1 / 2. The third multiplier circuit 55 multiplies the value held in the first holding circuit 56 one cycle before by the value output from the second multiplier circuit 54 every cycle, and overwrites the first holding circuit 56 with the multiplication result. The first holding circuit 56 resets the value it holds to 1 every N cycles.

[0156] Then, the front-stage circuit 41 calculates the Nth limit value (z k、N ) and the first variable (x N The value held in the first holding circuit 56 after the processing for p k ) in the p memory 42. The pre-stage circuit 41 writes the partial penalty value (pk ) is written M times.

[0157] The front-stage circuit 41 according to the first configuration example can execute the calculation shown in equation (25) in N cycles. As a result, after completing N×M cycles, the front-stage circuit 41 according to the first configuration example can obtain M partial penalty values ​​(p k ) can be written to p memory 42.

[0158] FIG. 10 is a diagram showing a second configuration example of the pre-stage circuit 41 together with the z memory 23, the x memory 24, and the p memory .

[0159] The front-stage circuit 41 according to the second configuration example has M first partial circuits 61-1 to 61-M. Each of the M first partial circuits 61-1 to 61-M has the same configuration as the front-stage circuit 41 according to the first configuration example shown in FIG. 9, and includes a first multiplication circuit 51, a first selector 52, a first addition circuit 53, a second multiplication circuit 54, a third multiplication circuit 55, and a first holding circuit 56.

[0160] The front-stage circuit 41 according to the second configuration example sequentially reads out M×N limiting values ​​included in the M restricted solutions stored in the z memory 23 in M ​​parallel in each cycle. That is, the front-stage circuit 41 simultaneously reads out M limiting values ​​in one cycle. More specifically, the front-stage circuit 41 reads out M limiting values ​​included in the first of the M restricted solutions in one cycle. Next, the front-stage circuit 41 reads out M limiting values ​​included in the second of the M restricted solutions in one cycle. Thereafter, the front-stage circuit 41 reads out M limiting values ​​from the third to the Nth in each cycle.

[0161] In parallel with reading the limit value from the z memory 23, the front-stage circuit 41 reads out the N first variables stored in the x memory 24 in order from the first first variable (x1) to the Nth first variable (x NIn this case, the front-stage circuit 41 synchronously reads out the N limiting values ​​and the N first variables included in each of the M limiting solutions. That is, the front-stage circuit 41 reads out the i-th limiting value (z 1,i ~z M,i ) and the first variable (x i ) and read it synchronously.

[0162] The M first partial circuits 61-1 to 61-M execute operations in parallel. The M first partial circuits 61-1 to 61-M correspond to the M restricted solutions. Each of the M first partial circuits 61-1 to 61-M calculates the N first variables (x i ) and N restriction values ​​(z k,i ) and receive.

[0163] Each of the M first partial circuits 61-1 to 61-M executes the calculation shown in equation (25) by executing N cycles of processing to obtain a penalty value (p k ) are calculated. The M first partial circuits 61-1 to 61-M then perform the calculations in parallel to calculate the M partial penalty values ​​(p k ) are written in parallel to p memory 42.

[0164] The front-stage circuit 41 according to the second configuration example outputs M partial penalty values ​​(p k ) can be written to p memory 42.

[0165] FIG. 11 is a diagram showing a third configuration example of the pre-stage circuit 41 together with the z memory 23, the x memory 24, and the p memory .

[0166] The front-stage circuit 41 according to the third configuration example has N second partial circuits 62-1 to 62-N and a total multiplication circuit 63. Each of the N second partial circuits 62-1 to 62-N has the same configuration as the front-stage circuit 41 according to the first configuration example shown in FIG. 9 except for the third multiplication circuit 55 and the first holding circuit 56, and includes a first multiplication circuit 51, a first selector 52, a first addition circuit 53, and a second multiplication circuit 54.

[0167] The front-stage circuit 41 according to the third configuration example sequentially reads out M×N limiting values ​​included in the M restricted solutions stored in the z memory 23 in N parallel in each cycle. More specifically, the front-stage circuit 41 first reads out N limiting values ​​included in the first restricted solution of the M restricted solutions in parallel in one cycle. Next, the front-stage circuit 41 reads out N limiting values ​​included in the second restricted solution of the M restricted solutions in parallel in one cycle. Thereafter, the front-stage circuit 41 reads out N limiting values ​​included in each of the third to Mth restricted solutions in parallel in each cycle.

[0168] Furthermore, the pre-stage circuit 41 repeats a process of reading the N first variables stored in the x memory 24 in parallel while reading the limit value from the z memory 23 for M cycles.

[0169] The N second partial circuits 62-1 to 62-N execute operations in parallel. The N second partial circuits 62-1 to 62-N correspond to N particles. Each of the N second partial circuits 62-1 to 62-N performs calculations in parallel on the N first variables (x i ) and the limit values ​​of the corresponding particles included in each of the N limit solutions read out from the z memory 23.

[0170] Each of the N second partial circuits 62-1 to 62-N performs one cycle of processing to perform the operation of the equation in parentheses of Π in equation (25) for the corresponding particle. Therefore, each of the N second partial circuits 62-1 to 62-N performs M cycles of processing to perform the operation of the equation in parentheses of Π in equation (25) for the corresponding particle for each of the M restricted solutions.

[0171] The total multiplication circuit 63 multiplies the results of the calculations of the N second partial circuits 62-1 to 62-N for each cycle. That is, the total multiplication circuit 63 performs the calculation of Π in equation (25) by performing one-cycle processing. Therefore, the total multiplication circuit 63 performs the calculation of Π in equation (25) for each of the M restricted solutions by performing M cycles of processing, and obtains M penalty values ​​(p k The total multiplication circuit 63 calculates M partial penalty values ​​(p k ) are sequentially written into the p memory 42. Each of the N second partial circuits 62-1 to 62-N may be configured without the second multiplication circuit 54. In this configuration, the pre-stage circuit 41 has, in the subsequent stage of the total multiplication circuit 63, a second multiplication circuit 54 that multiplies the calculation result of the total multiplication circuit 63 by 1 / 2 and writes the result into the p memory 42.

[0172] The front-stage circuit 41 according to the third configuration example outputs M partial penalty values ​​(p k ) can be written to the p memory 42. The pre-stage circuit 41 combines the configurations of the second and third examples to read out the limit values ​​in M×N parallel order and write M partial penalty values ​​(p k ) may be calculated.

[0173] 12 is a diagram showing a first configuration example of the subsequent stage circuit 43 together with the z memory 23, the x memory 24, and the p memory 42. The subsequent stage circuit 43 according to the first configuration example includes a second adder circuit 64, a third adder circuit 65, a second selector 66, a division circuit 67, a fourth adder circuit 68, a second holding circuit 69, and a coefficient multiplication circuit 70.

[0174] The rear circuit 43 sequentially reads out the M×N limiting values ​​included in the M restricted solutions stored in the z memory 23 one by one for each cycle while performing a raster scan in the column direction. More specifically, the rear circuit 43 sequentially reads out the M limiting values ​​included in the first of the M restricted solutions, one by one for each cycle, from the first restricted solution to the Mth restricted solution. Next, the rear circuit 43 sequentially reads out the M limiting values ​​included in the second of the M restricted solutions, one by one for each cycle, from the first restricted solution to the Mth restricted solution. Thereafter, the rear circuit 43 sequentially reads out the M limiting values ​​included in the third to the Mth restricted solutions, one by one, from the Nth restricted solution to the Mth restricted solution.

[0175] Furthermore, in parallel with reading the limit value from the z memory 23, the latter circuit 43 reads each of the N first variables stored in the x memory 24 for M consecutive cycles. Specifically, the latter circuit 43 reads the first first variable of the N first variables for M consecutive cycles. Then, the latter circuit 43 reads the second first variable of the N first variables for M consecutive cycles. Thereafter, the latter circuit 43 repeats the process of reading each of the third first variable to the Nth first variable for M consecutive cycles.

[0176] In parallel with reading the limit value from the z memory 23, the rear circuit 43 reads the M partial penalty values ​​stored in the p memory 42 for each cycle from the first partial penalty value (p1) to the Mth partial penalty value (p M), is repeated N times. In this case, the rear circuit 43 synchronously reads out the M restriction values ​​included in the first of the M restriction solutions and the M partial penalty values. That is, the rear circuit 43 reads out the k-th restriction value (z k,i ) and the kth partial penalty value (p k ) and read it synchronously.

[0177] The second adder circuit 64 adds the first variable (x i ) and add 1 to it (x i The third adder circuit 65 adds −1 to the value output from the second adder circuit 64 to obtain a value (x i -1).

[0178] The second selector 66 selects the limit value (z k、i The second selector 66 obtains the obtained limit value (z k、i ) is 1, the value output from the second adder circuit 64 (x i +1) and outputs the obtained limit value (z k、i ) is 0, the value (x i -1) and output it.

[0179] The division circuit 67 divides the partial penalty value (p k ) and obtain the partial penalty value (p k ) by the value output from the second selector 66.

[0180] The fourth adder circuit 68 adds the value held in the second holding circuit 69 one cycle before to the value output from the division circuit 67, and overwrites the second holding circuit 69 with the addition result. The second holding circuit 69 resets the value it holds to 0 every M cycles. The coefficient multiplier circuit 70 multiplies the value held in the second holding circuit 69 by a penalty coefficient (M p ) and output.

[0181] Then, the subsequent circuit 43 calculates the Nth limit value (z k、N ) is processed, the value output from the coefficient multiplication circuit 70 is converted into the penalty component (∂p k / ∂x i ) to the update unit 28. The latter circuit 43 outputs the penalty component (∂p k / ∂x i ) is output N times.

[0182] Such a post-stage circuit 43 according to the first configuration example can execute the calculations shown in equations (26) and (27) for all N particles in M×N cycles. As a result, the post-stage circuit 43 according to the first configuration example can obtain the penalty components (∂p k / ∂x i ) can be output.

[0183] FIG. 13 is a diagram showing a second configuration example of the subsequent circuit 43 together with the z memory 23, the x memory 24, and the p memory 42. In FIG.

[0184] The latter circuit 43 according to the second configuration example has M third partial circuits 71-1 to 71-M, a summing circuit 72, and a coefficient multiplying circuit 70. Each of the M third partial circuits 71-1 to 71-M has the same configuration as the latter circuit 43 according to the first configuration example shown in FIG. 12 except for the fourth adding circuit 68, the second holding circuit 69, and the coefficient multiplying circuit 70, and includes a second adding circuit 64, a third adding circuit 65, a second selector 66, and a division circuit 67.

[0185] The rear circuit 43 according to the third configuration example sequentially reads out M×N limiting values ​​included in the M restricted solutions stored in the z memory 23 in M ​​parallel manner for each cycle. That is, the rear circuit 43 simultaneously reads out M limiting values ​​in one cycle. More specifically, the rear circuit 43 reads out M limiting values ​​included in the first of the M restricted solutions in one cycle. Then, the rear circuit 43 reads out M limiting values ​​included in the second of the M restricted solutions in one cycle. Thereafter, the rear circuit 43 reads out M limiting values ​​from the third to the Nth in each cycle.

[0186] In parallel with reading the limit value from the z memory 23, the rear circuit 43 reads the N first variables stored in the x memory 24 in order from the first first variable (x1) to the Nth first variable (x N In this case, the rear circuit 43 synchronously reads out the N limiting values ​​and the N first variables included in each of the M limiting solutions. That is, the rear circuit 43 reads out the i-th limiting value (z 1,i ~z M,i ) and the first variable (x i ) and read it synchronously.

[0187] Furthermore, the post-stage circuit 43 repeats a process of reading the M partial penalty values ​​stored in the p memory 42 in parallel while reading the limit value from the z memory 23 for N cycles.

[0188] The M third partial circuits 71-1 to 71-M correspond to the M restricted solutions. Each of the M third partial circuits 71-1 to 71-M converts the N first variables (x i ) in sequence for each cycle. Also, each of the M third partial circuits 71-1 to 71-M receives a corresponding restricted solution (z k,i ) in sequence for each cycle. Also, each of the M third partial circuits 71-1 to 71-M receives a corresponding partial penalty value among the M partial penalty values ​​for each cycle.

[0189] Each of the M third partial circuits 71-1 to 71-M executes one cycle of processing to perform the operation of formula (26). The M third partial circuits 71-1 to 71-M execute the operation in parallel. That is, each of the M third partial circuits 71-1 to 71-M sequentially executes the operation of formula (26) for each of the N particles.

[0190] The summing circuit 72 performs the operation of Σ in equation (26) by adding up the operation results of the M third partial circuits 71-1 to 71-M in each cycle. That is, the summing circuit 72 performs the operation of Σ in equation (26) for each of the N particles.

[0191] The coefficient multiplier circuit 70 multiplies the value output from the summing circuit 72 by a penalty coefficient (M p That is, the coefficient multiplication circuit 70 multiplies each of the N particles by the penalty coefficient in the equation (26).

[0192] After completing N cycles, the rear circuit 43 according to the second configuration example calculates the penalty components (∂p k / ∂x i ) can be output.

[0193] FIG. 14 is a diagram showing a third configuration example of the subsequent circuit 43 together with the z memory 23, the x memory 24, and the p memory 42. In FIG.

[0194] The rear-stage circuit 43 according to the third configuration example has N fourth partial circuits 73-1 to 73-N. Each of the N fourth partial circuits 73-1 to 73-N has the same configuration as the rear-stage circuit 43 according to the first configuration example shown in FIG. 12, and includes a second adder circuit 64, a third adder circuit 65, a second selector 66, a division circuit 67, a fourth adder circuit 68, a second holding circuit 69, and a coefficient multiplication circuit 70.

[0195] The rear circuit 43 according to the third configuration example sequentially reads out M×N limiting values ​​included in the M restricted solutions stored in the z memory 23 in N parallel in each cycle. More specifically, the rear circuit 43 first reads out N limiting values ​​included in the first restricted solution of the M restricted solutions in parallel in one cycle. Then, the rear circuit 43 reads out N limiting values ​​included in the second restricted solution of the M restricted solutions in parallel in one cycle. Thereafter, the rear circuit 43 reads out N limiting values ​​included in each of the third to Mth restricted solutions in parallel in each cycle.

[0196] Furthermore, the post-stage circuit 43 repeats a process of reading the N first variables stored in the x memory 24 in parallel while reading the limit value from the z memory 23 for M cycles.

[0197] In parallel with reading the limit value from the z memory 23, the rear circuit 43 reads the M partial penalty values ​​stored in the p memory 42 for each cycle from the first partial penalty value (p1) to the Mth partial penalty value (p N In this case, the rear circuit 43 synchronously reads out the N restriction values ​​and the M partial penalty values ​​included in each of the M restricted solutions. That is, the rear circuit 43 reads out the k-th restriction value (z k,i ) and the kth partial penalty value (p k ) and read it synchronously.

[0198] The N fourth partial circuits 73-1 to 73-N execute operations in parallel. The N fourth partial circuits 73-1 to 73-N correspond to N particles. Each of the N fourth partial circuits 73-1 to 73-N performs calculations in parallel using the N first variables (x i ) and N restriction values ​​(z k,i ) and receive.

[0199] Each of the N fourth partial circuits 73-1 to 73-N executes the calculations shown in equations (26) and (27) by executing N cycles of processing to obtain the penalty component (∂p k / ∂x i ) for each of the N particles obtained by performing the calculations in parallel. k / ∂x i ) in parallel.

[0200] After completing N cycles, the rear circuit 43 according to the third configuration example calculates the penalty components (∂p k / ∂x i ) can be output.

[0201] The latter circuit 43 combines the configurations of the second and third examples, reads out the limit values ​​in M×N parallel, and calculates the penalty components (∂p k / ∂x i ) may be calculated.

[0202] (Information processing system 100) 15 shows the configuration of an information processing system 100. The information processing system 100 includes a computing device 10 and a host device 110.

[0203] The information processing system 100 performs information processing using a computing device 10. For example, the information processing system 100 may be an arbitrage trading device that trades foreign exchange. For example, the information processing system 100 uses the computing device 10 to search for a route for arbitrage trading of foreign exchange and executes foreign exchange trading according to the route obtained by the search. Note that the information processing system 100 is not limited to foreign exchange, and may be a device that trades any object. Also, the information processing system 100 is not limited to a trading system, and may be any system that solves a combinatorial optimization problem and executes information processing. For example, the information processing system 100 may be a control system for a robot or the like.

[0204] The host device 110 is an information processing device such as a computer, etc. The host device 110 may be realized by a CPU, a microprocessor, an ASIC, or an electronic circuit including these circuits.

[0205] The host device 110 is connected to the computing device 10 via an interface such as a bus. When the host device 110 is an information processing device such as a computer, the computing device 10 may be incorporated as an internal resource of the information processing device.

[0206] In addition, the host device 110 transmits and receives information to and from an external device via the network. For example, when the information processing system 100 is an arbitrage trading device, the host device 110 transmits and receives information to and from a market server as an external device. In addition, when the information processing system 100 is a control system, the host device 110 transmits and receives information to and from a controlled device as an external device.

[0207] 16 is a diagram showing the configuration of a host device 110 according to the first example, together with a calculation device 10. The host device 110 has a receiving unit 121, an input conversion unit 122, a solution list storage unit 123, a calculation instruction unit 124, a response processing unit 125, an output conversion unit 126, and a transmitting unit 127.

[0208] The receiving unit 121 receives input data from an external device via a network. For example, when the information processing system 100 is an arbitrage trading device, the receiving unit 121 receives an event packet including an exchange pair (a pair of currencies), a selling price, and a buying price from a market server.

[0209] The input conversion unit 122 generates a 0-1 optimization problem to be solved by the calculation device 10, according to the input data received by the receiving unit 121. That is, the input conversion unit 122 generates an interaction matrix (J) according to the input data.

[0210] The solution list storage unit 123 stores a solution list including M restricted solutions. Note that the solution list storage unit 123 does not need to store any restricted solutions before the execution instruction by the calculation instruction unit 124.

[0211] When the 0-1 optimization problem is generated by the input conversion unit 122, the calculation instruction unit 124 transmits the M restricted solutions stored in the solution list storage unit 123 to the calculation device 10 to set them therein. When no restricted solutions are stored in the solution list storage unit 123, the calculation instruction unit 124 instructs the calculation device 10 to delete the restricted solutions set therein. Furthermore, the calculation instruction unit 124 provides the generated 0-1 optimization problem, i.e., the interaction matrix (J), to the calculation device 10. Then, the calculation instruction unit 124 provides an execution instruction to execute the calculation process multiple times.

[0212] The computing device 10 repeatedly executes the computation process in response to receiving an execution instruction from the computation instruction unit 124. The computing device 10 returns a solution to the 0-1 optimization problem to the host device 110 every time the computing device 10 executes one computation process.

[0213] The response processing unit 125 acquires a solution to the 0-1 optimization problem from the calculation device 10. The response processing unit 125 sends the acquired solution to the 0-1 optimization problem to the output conversion unit 126. The response processing unit 125 registers the acquired solution to the 0-1 optimization problem in the solution list storage unit 123 as one restricted solution among the M restricted solutions.

[0214] The output conversion unit 126 generates output data to be provided to an external device based on the solution of the 0-1 optimization problem acquired by the response processing unit 125. For example, when the information processing system 100 is an arbitrage trading device, the output conversion unit 126 determines a route for foreign exchange arbitrage trading based on the solution of the 0-1 optimization problem, and judges whether or not a profit of, for example, a certain value or more can be obtained when arbitrage trading is executed on the determined route. When the output conversion unit 126 judges that a profit of a certain value or more can be obtained, it generates an order packet for executing arbitrage trading on the determined route.

[0215] The transmitting unit 127 transmits the output data generated by the output conversion unit 126 to an external device via a network. For example, when the information processing system 100 is an arbitrage trading device, the transmitting unit 127 transmits an order packet to a market server.

[0216] Here, when some of the M restricted solutions stored in the solution list storage unit 123 are updated by the response processing unit 125, the calculation instruction unit 124 provides the updated restricted solutions to the calculation device 10. Then, the calculation instruction unit 124 provides an instruction to update the M restricted solutions that have been set, while continuing the calculation process without changing the 0-1 optimization problem.

[0217] The host device 110 can cause the computing device 10 to calculate multiple solutions to one 0-1 optimization problem, and can set the calculated solutions as new constrained solutions in the computing device 10 so as not to calculate the same solution. Thus, the information processing system 100 can efficiently calculate multiple solutions to the 0-1 optimization problem with low calculation cost.

[0218] Fig. 17 is a diagram showing the configuration of a host device 110 according to the second example, together with a computing device 10. The host device 110 according to the first example has substantially the same functions and configuration as the host device 110 according to the first example shown in Fig. 16, and therefore the same components are given the same reference numerals and detailed descriptions thereof are omitted.

[0219] The host device 110 according to the second example further includes a problem storage unit 128. The problem storage unit 128 stores an interaction matrix (J) that represents a 0-1 optimization problem.

[0220] In the second example, the receiving unit 121 repeatedly receives input data from an external device periodically or irregularly. For example, when the information processing system 100 is an arbitrage trading device, the receiving unit 121 repeatedly receives an event packet from a market server periodically or irregularly.

[0221] In the second example, the input conversion unit 122 generates an interaction matrix (J) of the 0-1 optimization problem every time the receiving unit 121 receives input data. Then, the input conversion unit 122 stores the generated 0-1 optimization problem in the problem storage unit 128. That is, the input conversion unit 122 stores the generated interaction matrix (J) in the problem storage unit 128.

[0222] In the second example, when the 0-1 optimization problem stored in the problem storage unit 128 is updated, the calculation instruction unit 124 causes the calculation device 10 to clear the M restricted solutions set therein. At the same time, the calculation instruction unit 124 transmits the updated 0-1 optimization problem to the calculation device 10, and issues an execution instruction to execute the calculation process multiple times.

[0223] 18 is a flowchart showing the flow of processing by the calculation command unit 124 according to the second example. In the second example, the calculation command unit 124 executes processing according to the flow shown in FIG.

[0224] First, in S31, the calculation instruction unit 124 determines whether or not the 0-1 optimization problem stored in the problem storage unit 128 has been updated. If the 0-1 optimization problem stored in the problem storage unit 128 has not been updated (No in S31), the calculation instruction unit 124 advances the process to S35. If the 0-1 optimization problem stored in the problem storage unit 128 has been updated (Yes in S31), the calculation instruction unit 124 advances the process to S32.

[0225] In S32, the calculation instruction unit 124 transmits the updated 0-1 optimization problem to the calculation device 10. Then, in S33, the calculation instruction unit 124 causes the calculation device 10 to clear the M restricted solutions set therein. Then, the calculation instruction unit 124 issues an execution instruction to the calculation device 10 to execute the calculation process multiple times. The calculation device 10 that has been given such an instruction repeatedly executes the calculation process to calculate a solution to the updated 0-1 optimization problem. When the calculation instruction unit 124 finishes S34, it advances the process to S35.

[0226] In S35, the calculation instruction unit 124 determines whether the M restricted solutions stored in the solution list storage unit 123 have been updated. If the M restricted solutions stored in the solution list storage unit 123 have not been updated (No in S35), the calculation instruction unit 124 returns the process to S31 and repeats the process from S31. If the M restricted solutions stored in the solution list storage unit 123 have been updated (Yes in S35), the calculation instruction unit 124 advances the process to S36.

[0227] In S36, the calculation instruction unit 124 transmits the updated restricted solution to the calculation device 10. Then, the calculation instruction unit 124 instructs the calculation device 10 to update the M restricted solutions that have been set while continuing the calculation process without changing the problem. The calculation device 10 that has been given such an instruction repeatedly executes the calculation process of calculating a solution without changing the 0-1 optimization problem. When the calculation instruction unit 124 finishes S36, it returns the process to S31 and repeats the process from S31.

[0228] Such a host device 110 can cause the calculation device 10 to calculate multiple solutions to the first 0-1 optimization problem, and then calculate multiple solutions to the second 0-1 optimization problem. Then, the host device 110 can set the calculated solutions as new constrained solutions in the calculation device 10 so as not to calculate the same solution for each of the multiple 0-1 optimization problems. As a result, the information processing system 100 can efficiently calculate multiple solutions for each of the multiple 0-1 optimization problems with low calculation cost.

[0229] Although some embodiments of the present invention have been described, these embodiments are presented as examples and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their modifications are included in the scope and spirit of the invention, and are included in the scope of the invention and its equivalents described in the claims. [Explanation of symbols]

[0230] 10 Computing equipment 21 JMemory 23 zMemory 24 x Memory 25y memory 26 Setting section 27 Penalty Calculation Section 28 Update section 29 Output section 30 Control section 34 Enabling section 41 Pre-stage circuit 42p memory 43 Back-end circuit 100 Information Processing Systems 110 Host device 121 Receiving unit 122 Input conversion unit 123 Solution list storage unit 124 Calculation instruction section 125 Response Processing Unit 126 Output conversion unit 127 Transmitter

Claims

1. A computing device for solving a 0-1 optimization problem having an objective function as a quadratic function including N binary variables (N is an integer equal to or greater than 2), comprising: A setting unit that sets M (M is an integer equal to or greater than 1) restricted solutions; an update unit that sequentially and alternately updates a first variable representing a position of the target particle and a second variable representing a momentum of the target particle for each unit time from a start time to an end time for each of the virtual N particles; an output unit that outputs a solution to the 0-1 optimization problem based on the first variables of each of the N particles at the end time; Equipped with the N binary variables are 0 or 1; each of the M constraint solutions includes N constraint values; the N limit values ​​correspond to the N binary variables; Each of the N limit values ​​is 0 or 1; the N particles correspond to the N binary variables; In the update process for each unit time, the update unit performs the following for each of the N particles: updating the first variable based on the second variable; changing the first variable to the first value if the first variable is less than a first value, and changing the first variable to the second value if the first variable is greater than a second value that is greater than the first value; updating the second variable based on the first variable for each of the N particles and a penalty component for the target particle; The penalty component of the target particle represents a momentum per unit time that causes the position of the target particle to move in the opposite direction, and is a value that increases as the first variable corresponding to the target particle approaches the M constrained solutions. computing device.

2. the penalty component of the target particle is a value obtained by adding partial penalty components of the target particle for each of the M restriction solutions for the M restriction solutions and multiplying the sum by a predetermined penalty coefficient; the partial penalty component of the target particle for a target constraint solution among the M constraint solutions is the target particle's component of a partial penalty value for the target constraint solution; The partial penalty value for the target restricted solution is When the N first variables do not include a reverse polarity variable, the closer the target restricted solution is to the N first variables, the larger the value becomes. When the N first variables include the reverse polarity variable, the value becomes 0. The inverse polarity variable is a first variable that is the first value or the second value, and in the case of the first value, a corresponding limit value among the N limit values ​​included in the target restricted solution is 1, and in the case of the second value, a corresponding limit value among the N limit values ​​included in the target restricted solution is 0. The computing device of claim 1 .

3. After updating the first variable, the update unit: If the first variable is less than a predetermined value, changing it to the first value, and if the first variable is equal to or greater than the predetermined value, changing the first variable to the second value; The predetermined value is greater than the first value and less than the second value.

3. A computing device according to claim 1 or 2.

4. In the update process for each unit time, the update unit The first variable of the i-th particle of the N particles at the target time is calculated by the formula (101) or (102). [0010] i is any integer from 1 to N, D is a constant, Δt is the unit time, t is the time immediately before the unit time of the target time, t+Δt is the target time, x i (t) is the first variable of the i-th particle at the immediately preceding time, y i (t) is the second variable of the i-th particle at the immediately preceding time, x i (t+Δt) is the first variable of the i-th particle at the target time, y i (t+Δt) is the second variable of the i-th particle at the target time 3. The computing device of claim 2.

5. In the update process for each unit time, the update unit The second variable of the i-th particle at the target time is calculated by equation (103) or equation (104); [0025] f i (t+Δt) is expressed by equation (105), and f i (t) is expressed by equation (106), [0030] j is any integer from 1 to N, J i,j is a coupling coefficient in row i, column j contained in a predetermined matrix including N×N coupling coefficients, a 0 is the coefficient, c 0 is the coefficient, x j (t) is the first variable at the immediately preceding time of a j-th particle corresponding to a j-th binary variable among the N binary variables, x j (t+Δt) is the first variable of the j-th particle at the target time, p(t) is a predetermined function with t as a variable, which increases as t increases, t is 0 at the start time, t is 1 at the end time, a(t) is a predetermined function with t as a variable ∂P(t) / ∂x i (t) represents the penalty component corresponding to the i-th particle at the immediately preceding time, ∂P(t+Δt) / ∂x i (t+Δt) represents the penalty component corresponding to the i-th particle at the target time 5. The computing device of claim 4.

6. If the first value is −1 and the second value is 1, then ∂P(t+Δt) / ∂x i (t+Δt) is calculated by the formula (107), [0045] M p is the penalty coefficient, which is a negative real number, k is an integer greater than or equal to 1 and less than or equal to M, Z k,i represents the i-th constraint value included in the k-th constraint solution among the M constraint solutions, Z k,j represents the j-th constraint value included in the k-th constraint solution.

6. The computing device of claim 5.

7. If the first value is −1 and the second value is 1, then ∂P(t) / ∂x i (t) is calculated by equation (108), [0050] M p is the penalty coefficient, which is a negative real number, k is an integer greater than or equal to 1 and less than or equal to M, Z k,i represents the i-th constraint value included in the k-th constraint solution among the M constraint solutions, Z k,j represents the j-th constraint value included in the k-th constraint solution.

6. The computing device of claim 5.

8. a penalty calculation unit for calculating the penalty component of the target particle, The penalty calculation unit: a front-stage circuit for calculating the M partial penalty values ​​for each unit time; a post-stage circuit that calculates the penalty component of the target particle for each of the N particles for each unit time; having The front-stage circuit calculates equation (109) for each of the M constraint solutions to obtain p k Calculate [006] The latter circuit calculates equations (110) and (111) to obtain the penalty component ∂P / ∂x i Calculate [0070] 8. A computing device according to claim 6 or 7.

9. the front-stage circuit includes M first partial circuits corresponding to the M restricted solutions; Each of the M first sub-circuits performs the operation shown in equation (109), The M first sub-circuits perform operations in parallel.

9. The computing device of claim 8.

10. The front-stage circuit includes: N second sub-circuits corresponding to the N particles; A total multiplication circuit; Including, Each of the N second partial circuits executes an operation of the expression in brackets of Π in Equation (109) for a corresponding particle for each of the M restricted solutions; The N second sub-circuits perform operations in parallel; The total multiplication circuit executes the operation of Π in equation (119) by multiplying the N operation results output from the N second partial circuits by each of the M restricted solutions.

9. The computing device of claim 8.

11. The latter circuit includes: M third sub-circuits corresponding to the M restricted solutions; A summing circuit; A coefficient multiplication circuit; Including, Each of the M third sub-circuits performs the operation shown in equation (110), the M third sub-circuits perform operations in parallel for each of the N particles; The summing circuit performs the operation of Σ in equation (111) for each of the N particles, The coefficient multiplication circuit performs multiplication of the penalty coefficient in equation (111) for each of the N particles.

11. A computing device according to any one of claims 8 to 10.

12. The latter circuit includes: N fourth sub-circuits corresponding to the N particles Each of the N fourth sub-circuits performs the operations shown in equations (110) and (111), The N fourth sub-circuits execute operations in parallel.

11. A computing device according to any one of claims 8 to 10.

13. a control unit that causes the update unit to execute the calculation process from the start time to the end time a plurality of times, and causes the output unit to output a solution to the 0-1 optimization problem a plurality of times. Further equipped 13. A computing device according to any one of claims 1 to 12.

14. The method further includes an adding unit that, when the calculation process is executed, adds the calculated solution of the 0-1 optimization problem as one of the M restricted solutions.

14. The computing device of claim 13.

15. An elimination unit that eliminates the M restricted solutions when the 0-1 optimization problem is changed; The update unit sets the penalty component of the target particle to 0 in a first calculation process after the 0-1 optimization problem is updated.

15. The computing device of claim 14.

16. a validation section that updates the second variable by setting the penalty component to 0 until a preset time between the start time and the end time, and updates the second variable by using the penalty component after the preset time; 16. The computing device of claim 1 , further comprising:

17. A computing device according to claim 13 or 16, A host device which is an information processing device; Equipped with The host device is a solution list storage unit that stores the M restricted solutions; A calculation instruction unit that gives an execution instruction to the calculation device; Equipped with The calculation instruction unit transmits the M restricted solutions stored in the solution list storage unit to the calculation device, sets the solutions therein, and issues an execution instruction to execute a calculation process multiple times. Information processing system.

18. The calculation instruction unit, when a part of the M restriction solutions is updated, provides the updated restriction solutions to the calculation device, and issues an instruction to update the M restriction solutions that have been set while continuing the calculation process.

18. The information processing system according to claim 17.

19. The host device is A problem storage unit that stores the 0-1 optimization problem, When the 0-1 optimization problem stored in the problem storage unit is updated, the calculation instruction unit clears the M restricted solutions set inside the calculation device, transmits the updated 0-1 optimization problem to the calculation device, and issues an execution instruction to execute the calculation process a plurality of times.

19. An information processing system according to claim 17 or 18.

20. A receiving unit that receives input data from an external device via a network; an input conversion unit for generating the 0-1 optimization problem based on the received input data; an output conversion unit that generates output data to be provided to the external device based on the solution of the 0-1 optimization problem output from the computing device; a transmission unit that transmits the generated output data to the external device via the network; 20. The information processing system according to claim 17, further comprising:

Citation Information

Patent Citations

  • Computer, calculation program, recording medium, and calculation method

    JP2019145010A

  • Calculation device

    JP2019159566A

  • Information processing device, information processing system, information processing method, storage medium and program

    WO2020196866A1