WO2020054061A1 - 最適化装置、最適化装置の制御方法および最適化装置の制御プログラム - Google Patents
最適化装置、最適化装置の制御方法および最適化装置の制御プログラム Download PDFInfo
- Publication number
- WO2020054061A1 WO2020054061A1 PCT/JP2018/034233 JP2018034233W WO2020054061A1 WO 2020054061 A1 WO2020054061 A1 WO 2020054061A1 JP 2018034233 W JP2018034233 W JP 2018034233W WO 2020054061 A1 WO2020054061 A1 WO 2020054061A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- bit
- bits
- unit
- scale
- optimization device
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/08—Computing arrangements based on specific mathematical models using chaos models or non-linear system models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/06—Power analysis or power optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Definitions
- the present invention relates to an optimization device, a control method of the optimization device, and a control program of the optimization device.
- an optimization device (sometimes called an Ising machine or a Boltzmann machine) using an Ising-type energy function.
- the optimization device performs the calculation by replacing the problem to be calculated with an Ising model, which is a model representing the behavior of the spin of the magnetic material.
- the optimization device can be modeled using, for example, a neural network.
- each of a plurality of bits (spin bits) corresponding to a plurality of spins included in the Ising model includes a weight coefficient (also referred to as a coupling coefficient) indicating the magnitude of the interaction between the other bit and its own bit.
- the optimizer uses, for example, a probabilistic search method such as simulated annealing to obtain the minimum value (referred to as energy) of the value of the energy function (also referred to as a cost function or an objective function). A combination of values is obtained as a solution.
- the semiconductor system searches for a ground state of an Ising model using a semiconductor chip on which a plurality of unit elements corresponding to spins are mounted.
- the semiconductor system when realizing a semiconductor chip that can cope with a large-scale problem, the semiconductor system is constructed using a plurality of semiconductor chips on which a certain number of unit elements are mounted.
- the number of spin bits used (corresponding to the scale of the problem) and the number of bits of the weighting coefficient (corresponding to the accuracy of the conditional expression in the problem) can vary depending on the problem to be solved. For example, in some field problems, a relatively large number of spin bits may be used and a relatively small number of bits for the weighting factor may be required. On the other hand, in other fields, the number of spin bits may be relatively small, but the number of bits of the weight coefficient may be relatively large. However, it is inefficient to manufacture an optimization device having the number of spin bits and the number of bits of the weight coefficient suitable for each problem individually for each problem.
- an object of the present invention is to provide an optimization device, a control method of the optimization device, and a control program of the optimization device that can change the scale and accuracy.
- an optimization device includes a storage unit, a plurality of bit operation circuits, a selection circuit unit, and a setting change unit.
- the storage unit stores a coefficient indicating a magnitude of interaction between bits in a bit string representing a state of the Ising model.
- Each of the plurality of bit operation circuits calculates the energy change of the Ising model using a coefficient corresponding to the inverted bit read from the storage unit and the own bit when any bit of the bit string is inverted. Outputs a signal indicating whether or not the own bit can be inverted.
- the selection circuit unit outputs a signal indicating a bit to be inverted in the bit string selected based on the signal indicating whether or not inversion is possible, which is output from each of the bit operation circuits having the first number of bits in the bit string among the plurality of bit operation circuits, Output to each of the bit operation circuits of the first number of bits.
- the setting change unit changes the first number of bits for the selection circuit unit, and changes the second number of bits of the coefficient for each of the bit operation circuits of the first number of bits.
- an optimization device has an input unit, a conversion unit, a control unit, and a display unit.
- the input unit inputs a problem to be solved and operating conditions.
- the conversion unit converts the input problem into a search problem for the ground state of the Ising model, scale information indicating the scale of the search problem, accuracy information indicating the accuracy of expression of the search problem, and an initial value of the energy of the search problem. Is generated, and scale accuracy mode information corresponding to scale and accuracy is generated.
- the control unit inputs the scale information, the accuracy information, and the energy information, inputs the operation condition and the scale accuracy mode information, executes a calculation for searching for a ground state, and outputs a solution.
- the display unit displays a solution obtained as a result of the search for the ground state by the control unit.
- a control method for an optimization device is provided.
- a control program for an optimization device is provided.
- FIG. 14 is a diagram illustrating an example of an information processing system according to a second embodiment.
- FIG. 3 is a block diagram illustrating an example of hardware of an information processing device.
- FIG. 3 is a diagram illustrating an example of a hardware relationship in the information processing system.
- FIG. 3 is a block diagram illustrating a hardware example of a control unit. It is a figure showing an example of a combination optimization problem. It is a figure showing the example of search of the binary value used as the minimum energy. It is a figure showing the example of circuit composition of an optimization device.
- FIG. 3 is a diagram illustrating a circuit configuration example of a random selector unit.
- FIG. 6 is a diagram illustrating an example of a trade-off relationship between scale and accuracy. It is a figure showing the example (the 1) of storage of a weight coefficient. It is a figure showing the example (the 2) of storage of a weight coefficient. It is a figure showing the example (the 3) of storage of a weight coefficient. It is a figure showing the example (the 4) of storage of a weight coefficient.
- 9 is a flowchart illustrating an example of an initialization process. It is a flowchart which shows the example of a calculation process. It is a figure showing the example (the 5) of storing of a coupling coefficient.
- FIG. 14 is a diagram illustrating an example of an optimization device according to a third embodiment. FIG.
- FIG 3 is a diagram illustrating a circuit configuration example of an LFB. It is a figure showing the example of circuit composition of a scale combination circuit. It is a figure which shows the example of the required range of the scale / accuracy for every problem. It is a figure showing an example of a selectable range of scale accuracy. It is a figure showing an example of a use pattern of LFE. It is a figure showing an example of a utilization flow of an optimization device.
- FIG. 1 is a diagram illustrating the optimization device according to the first embodiment.
- the optimization apparatus 1 has a minimum energy function among combinations (states) of values of a plurality of bits (spin bits) corresponding to a plurality of spins included in the Ising model obtained by converting the problem to be calculated. The value of each bit at that time (ground state) is searched.
- the Ising-type energy function E (x) is defined, for example, by the following equation (1).
- the first term on the right-hand side is the product of the product of the two-bit value (0 or 1) and the coupling coefficient for all combinations of two bits that can be selected from all bits included in the Ising model, without omission and duplication. It is.
- the total number of bits included in the Ising model is K (K is an integer of 2 or more). Further, each of i and j is an integer of 0 or more and K-1 or less.
- x i is a variable representing the i-th value of the bit (also referred to as state variables).
- x j is a variable representing the value of the j-th bit.
- the second term on the right-hand side is the sum of the products of the bias coefficients of all the bits and the values of the bits.
- b i represents the bias coefficient of the i-th bit.
- h i is called a local field (local field), the formula (3).
- the optimization device 1 is, for example, a one-chip semiconductor integrated circuit, and is realized using an FPGA (Field Programmable Gate Array) or the like.
- the optimization apparatus 1 includes bit operation circuits 1a1,..., 1aK,..., 1aN (a plurality of bit operation circuits), a selection circuit unit 2, a threshold value generation unit 3, a random number generation unit 4, a setting change unit 5, and a control unit 6.
- N is the total number of bit operation circuits included in the optimization device 1.
- N is an integer equal to or greater than K.
- the bit operation circuits 1a1,..., 1aK,..., 1aN are unit elements that provide one bit included in a bit string representing the state of the Ising model.
- the bit sequence may be called a spin bit sequence, a state vector, or the like.
- Each of the bit operation circuits 1a1,..., 1aK,..., 1aN stores a weight coefficient between the own bit and another bit, and determines whether or not the own bit can be inverted according to the inversion of the other bit based on the weight coefficient. , Outputs a signal indicating whether or not its own bit can be inverted to the selection circuit unit 2.
- the selection circuit unit 2 selects a bit (inversion bit) to be inverted from the spin bit string. Specifically, the selection circuit unit 2 outputs from each of the bit operation circuits 1a1,..., 1aK used for searching the ground state of the Ising model among the bit operation circuits 1a1,. The received signal indicating whether or not the inversion is possible is received. The selection circuit unit 2 preferentially selects one of the bit operation circuits 1a1,..., 1aK corresponding to the bit operation circuit that has output the invertible signal, and sets the selected bit as an inverted bit. For example, the selection circuit unit 2 selects the inverted bit based on the random number bit output from the random number generation unit 4.
- the selection circuit unit 2 outputs a signal indicating the selected inverted bit to the bit operation circuits 1a1,..., 1aK.
- the threshold generation unit 3 generates a threshold for each of the bit operation circuits 1a1,..., 1aK,. A signal indicating the threshold value is output to each of the bit operation circuits 1a1,..., 1aK,. As described later, the threshold generation unit 3 uses a parameter (temperature parameter) T indicating a temperature and a random number to generate the threshold.
- the threshold generation unit 3 has a random number generator that generates the random number. It is preferable that the threshold generation unit 3 has a random number generator for each of the bit operation circuits 1a1,..., 1aK,..., 1aN, and individually generates and supplies a threshold. However, the threshold value generation unit 3 may share a random number generator with a predetermined number of bit operation circuits.
- the random number generation unit 4 generates a random number bit and outputs it to the selection circuit unit 2.
- the random number bits generated by the random number generation unit 4 are used by the selection circuit unit 2 to select an inverted bit.
- the setting change unit 5 changes the first bit number (spin bit number) of the bit string (spin bit string) representing the state of the Ising model to be calculated among the bit operation circuits 1a1,..., 1aK,. . Further, the setting change unit 5 changes the second bit number of the weight coefficient for each of the bit operation circuits having the first bit number.
- the control unit 6 sets the temperature parameter T and the weight coefficient for each of the storage units of the bit operation circuits 1a1,..., 1aN, and controls the start and end of the operation by the bit operation circuits 1a1,.
- the control unit 6 outputs a calculation result. For example, when the operation using the bit operation circuits 1a1,..., 1aK ends, the control unit 6 reads and outputs the spin bit strings held in the bit operation circuits 1a1,.
- the other bit operation circuits are also realized by the same circuit configuration (for example, the X-th (X is an integer of 1 or more and N or less) bit operation circuit).
- index X-1
- the bit operation circuit 1a1 includes a storage unit 11, an accuracy switching circuit 12, an inversion determination unit 13, a bit holding unit 14, an energy change calculation unit 15, and a state transition determination unit 16.
- the storage unit 11 is, for example, a register or an SRAM (Static Random Access Memory).
- the total number of weighting coefficients is K 2 with respect to the number of spin bits (first bit number) K.
- the storage unit 11 requires K ⁇ L bits to store the weighting coefficients. Note that the storage unit 11 may be provided outside the bit operation circuit 1a1 and inside the optimization device 1 (the storage units of other bit operation circuits are the same).
- the precision switching circuit 12 When any bit of the spin bit string is inverted, the precision switching circuit 12 reads a weight coefficient for the inverted bit from its own storage unit 11 (of the bit operation circuit 1a1), and outputs the read weight coefficient to an energy change calculation unit. 15 is output. That is, the precision switching circuit 12 receives the identification information of the inversion bit from the selection circuit unit 2, reads out the weight coefficient corresponding to the set of the inversion bit and the own bit from the storage unit 11, and outputs the weight coefficient to the energy change calculation unit 15. .
- the precision switching circuit 12 reads the weight coefficient represented by the second number of bits set by the setting change unit 5.
- the precision switching circuit 12 changes the second number of bits of the coefficient read from the storage unit 11 according to the change of the second number of bits by the setting change unit 5.
- the precision switching circuit 12 has a selector that reads a bit string of a predetermined number of bits from the storage unit 11. If the predetermined number of bits read by the selector is larger than the second number of bits, the precision switching circuit 12 reads the unit bit string including the weight coefficient corresponding to the inverted bit by the selector, and reads the second bit from the read unit bit string. Extract a weighting factor represented by a number. Alternatively, when the predetermined number of bits read by the selector is smaller than the second number of bits, the precision switching circuit 12 combines the plurality of bit strings read by the selector and expresses the second bit number. Weighting coefficients may be extracted from the storage unit 11.
- the inversion determining unit 13 inverts the bit stored in the bit holding unit 14. . That is, when the bit held in the bit holding unit 14 is 0, the bit is changed to 1. When the bit held in the bit holding unit 14 is 1, the bit is changed to 0.
- the bit holding unit 14 is a register that holds one bit.
- the bit holding unit 14 outputs the held bits to the energy change calculation unit 15 and the selection circuit unit 2.
- the energy change calculation unit 15 calculates the energy change value ⁇ E 0 of the Ising model using the weight coefficient read from the storage unit 11 and outputs the calculated value to the state transition determination unit 16. Specifically, the energy change calculation unit 15 receives the value of the inverted bit (the value before the current inversion) from the selection circuit unit 2 and inverts the inverted bit from 1 to 0 or from 0 to 1.
- ⁇ h 0 is calculated according to equation (4) according to the following equation.
- the energy change calculator 15 has a register that holds h 0, and holds the updated h 0 using the register.
- the energy change calculation unit 15 receives the current own bit from the bit holding unit 14, and changes the value from 0 to 1 if the own bit is 0, and from 1 to 0 if the own bit is 1,
- the energy change value ⁇ E 0 of the model is calculated by equation (2).
- the energy change calculation unit 15 outputs the calculated energy change value ⁇ E 0 to the state transition determination unit 16.
- the state transition determination unit 16 outputs a signal flg 0 indicating whether or not its own bit can be inverted to the selection circuit unit 2 in accordance with the calculation of the energy change by the energy change calculation unit 15. Specifically, the state transition determination unit 16 receives the energy change value ⁇ E 0 calculated by the energy change calculation unit 15, and determines whether or not to invert its own bit according to comparison with the threshold generated by the threshold generation unit 3. Is a comparator for determining. Here, the determination by the state transition determination unit 16 will be described.
- T is the aforementioned temperature parameter T.
- Equation (6) (Metropolis method) or Equation (7) (Gibbs method) is used as the function f.
- the temperature parameter T is represented by, for example, Expression (8). That is, the temperature parameter T is given by a function that decreases logarithmically with the number of iterations t. For example, the constant c is determined according to the problem.
- T 0 is an initial temperature value, and is desirably set to be sufficiently large depending on the problem.
- p ( ⁇ E, T) expressed by the equation (5) if a steady state is reached after sufficient repetition of state transition at a certain temperature, the state is generated according to the Boltzmann distribution. That is, the occupancy probability of each state follows the Boltzmann distribution for the thermal equilibrium state in thermodynamics. Therefore, a state according to the Boltzmann distribution is generated at a certain temperature, and then a state according to the Boltzmann distribution is generated at a temperature lower than the temperature, and by gradually lowering the temperature, for example, at each temperature, The state following the Boltzmann distribution can be tracked.
- the state of the lowest energy is realized with high probability by the Boltzmann distribution at the temperature of 0.
- This method is called simulated annealing because the state is very similar to the state change when the material is annealed.
- the state transition in which the energy rises stochastically corresponds to thermal excitation in physics.
- a comparator that outputs a value corresponding to a comparison with the uniform random number u taking the value of ()).
- f (- ⁇ E / T) f as a monotonically increasing function to act on (- ⁇ E / T) inverse function of f -1 (- ⁇ E / T), f -1 as a monotonically increasing function to act on the uniform random number u F ⁇ 1 (u) where ⁇ E / T of ( ⁇ E / T) is u can be used.
- the threshold generation unit 3 generates a uniform random number u and outputs the value of f ⁇ 1 (u) using the above conversion table for converting the value to f ⁇ 1 (u).
- f ⁇ 1 (u) is given by equation (9).
- f ⁇ 1 (u) is given by Expression (10).
- the conversion table is stored in a memory (not shown) such as a RAM (Random Access Memory) or a flash memory connected to the threshold value generation unit 3, for example.
- Threshold generating unit 3 outputs a temperature parameter T, the product of f -1 (u) (T ⁇ f -1 (u)) as a threshold.
- T ⁇ f ⁇ 1 (u) corresponds to thermal excitation energy.
- the state transition determination unit 16 When flg j is input from the selection circuit unit 2 to the state transition determination unit 16 and indicates that the flg j does not permit state transition (that is, when state transition does not occur), the state transition determination unit 16 After adding the offset value to ⁇ E 0 , the comparison with the threshold value may be performed. In addition, the state transition determination unit 16 may increase the offset value to be added when the state transition does not occur. On the other hand, the state transition determination unit 16 sets the offset value to 0 when flg j indicates that the state transition is permitted (that is, when a state transition occurs). Addition of an offset value to - ⁇ E 0 or an increase in the offset value facilitates state transition, and when the current state is in a local solution, escape from the local solution is promoted.
- the temperature parameter T is gradually set smaller.
- the bit operation circuit 1a1, .., 1aK when the value of the temperature parameter T is reduced by a predetermined number of times (or when the temperature parameter T reaches the minimum value), the bit operation circuit 1a1, .., 1aK.
- the optimization device 1 outputs a spin bit string as a solution when the value of the temperature parameter T is reduced by a predetermined number of times (or when the temperature parameter T reaches the minimum value).
- the setting change unit 5 can change the number of spin bits (first number of bits) of the Ising model and the number of bits (second number of bits) of the weight coefficient between bits.
- the number of spin bits corresponds to the scale of the circuit that realizes the Ising model (the scale of the problem). The larger the scale, the more the optimization device 1 can be applied to the combination optimization problem having a larger number of combination candidates.
- the number of bits of the weight coefficient corresponds to the precision of the expression of the mutual relationship between bits (the precision of the conditional expression in the problem). As the accuracy is higher, the condition for the energy change ⁇ E during spin inversion can be set in more detail.
- the number of spin bits is large and the number of bits representing the weighting factor is small.
- another problem may be that the number of spin bits is small and the number of bits representing the weight coefficient is large.
- it is inefficient to individually manufacture an optimization device suitable for each problem according to the problem.
- the setting change unit 5 enables the setting of the number of spin bits representing the state of the Ising model and the number of bits of the weighting coefficient, thereby making the scale and accuracy variable.
- a single optimization device 1 can achieve a scale and an accuracy suitable for the problem.
- each of the bit operation circuits 1a1,..., 1aK,..., 1aN has an accuracy switching circuit, and according to the setting of the setting changing unit 5, the bit operation circuits 1a1,.
- the bit length of the weight coefficient to be read is switched.
- the selection circuit unit 2 inputs a signal indicating an inverted bit to a number (for example, K) of bit operation circuits corresponding to the number of spin bits set by the setting change unit 5, and the number (K) ) Of the bit operation circuits.
- the storage unit included in each of the bit operation circuits 1a1,..., 1aN is realized by a storage device having a relatively small capacity such as an SRAM. Therefore, when the number of spin bits increases, the capacity of the storage unit may be insufficient depending on the number of bits of the weight coefficient.
- the scale and accuracy can be set by the setting change unit 5 so as to satisfy the limitation of the capacity of the storage unit. Specifically, it is conceivable that the setting change unit 5 performs setting so that the number of bits of the weight coefficient decreases as the number of spin bits increases. It is also conceivable that the setting change unit 5 sets so as to decrease the number of spin bits as the number of bits of the weight coefficient increases.
- K of the N bit operation circuits are used for the Ising model.
- the optimization device 1 may not use the remaining NK bit operation circuits.
- the selection circuit unit 2 forcibly sets all the flags flg output from the remaining NK bit operation circuits to 0, and sets the bits corresponding to the remaining NK bit operation circuits. May not be selected as a reversal candidate.
- the optimization device 1 realizes the same Ising model as the above-described Ising model by using K bit operation circuits among the remaining NK bit operation circuits.
- the Ising model may be used to increase the degree of parallelism of the same problem processing to speed up the calculation.
- the optimizing device 1 realizes another Ising model corresponding to another problem by using a part of the remaining NK bit operation circuits, and solves the problem represented by the aforementioned Ising model.
- the calculation of the other problem may be performed in parallel with the above.
- FIG. 2 is a diagram illustrating an example of the information processing system according to the second embodiment.
- the information processing system according to the second embodiment includes an information processing device 20 and a client 30.
- the information processing device 20 and the client 30 are connected to a network 40.
- the network 40 may be, for example, a LAN (Local Area Network), a WAN (Wide Area Network), the Internet, or the like.
- the information processing device 20 provides a function of replacing the combination optimization problem with an Ising model and quickly solving the combination optimization problem by searching for the ground state of the Ising model.
- the client 30 is a client computer used by the user, and is used to input a problem to be solved by the user to the information processing device 20.
- FIG. 3 is a block diagram illustrating an example of hardware of the information processing apparatus.
- the information processing device 20 includes a CPU (Central Processing Unit) 21, a DRAM (Dynamic Random Access Memory) 22, a storage device 23, a NIC (Network Interface Card) 24, an optimization device 25, and a medium reader 28.
- CPU Central Processing Unit
- DRAM Dynamic Random Access Memory
- storage device 23 a storage device
- NIC Network Interface Card
- the CPU 21, the DRAM 22, the storage device 23, the NIC 24, the optimization device 25, and the medium reader 28 are connected to the bus 29 of the information processing device 20.
- the bus 29 is, for example, a PCIe (Peripheral Component Interconnect Interconnect Express) bus.
- the CPU 21 is a processor that executes instructions of a program stored in the DRAM 22.
- the CPU 21 loads at least a part of the programs and data stored in the storage device 23 into the DRAM 22, and executes the programs.
- the CPU 21 controls the setting and the operation of the optimization device 25 by a function exhibited by executing the program.
- the DRAM 22 is a main storage device of the information processing device 20, and temporarily stores a program executed by the CPU 21, data set in the optimization device 25, and the like.
- the storage device 23 is an auxiliary storage device of the information processing device 20, and stores a program executed by the CPU 21, data set in the optimization device 25, and the like.
- the storage device 23 is, for example, a solid state drive (SSD) or a hard disk drive (HDD).
- the NIC 24 is a communication interface that is connected to the network 40 and communicates with the client 30 via the network 40.
- the NIC 24 is connected to a communication device such as a switch or a router belonging to the network 40 by a cable, for example.
- the optimization device 25 searches for the ground state of the Ising model under the control of the CPU 21.
- the optimization device 25 is, for example, a one-chip semiconductor integrated circuit, and is realized by an FPGA or the like.
- the optimization device 25 is an example of the optimization device 1 according to the first embodiment.
- the medium reader 28 is a reading device that reads programs and data recorded on the recording medium 41.
- the recording medium 41 for example, a magnetic disk, an optical disk, a magneto-optical disk (MO: Magneto-Optical disk), a semiconductor memory, or the like can be used.
- the magnetic disk includes a flexible disk (FD: Flexible @ Disk) and an HDD.
- the optical disc includes a CD (Compact Disc) and a DVD (Digital Versatile Disc).
- the medium reader 28 copies, for example, a program or data read from the recording medium 41 to another recording medium such as the DRAM 22 or the storage device 23.
- the read program is executed by, for example, the CPU 21.
- the recording medium 41 may be a portable recording medium, and may be used for distributing programs and data. Further, the recording medium 41 and the storage device 23 may be referred to as a computer-readable recording medium.
- the client 30 has a CPU, a main storage device, an auxiliary storage device, an NIC, input devices such as a mouse and a keyboard, and a display.
- FIG. 4 is a diagram illustrating an example of a hardware relationship in the information processing system.
- the client 30 executes the user program 31.
- the user program 31 inputs various data (for example, contents of a problem to be solved and operating conditions such as a use schedule of the optimizing device 25) to the information processing device 20, and displays a calculation result by the optimizing device 25. Do.
- the client 30 and the NIC 24 notify the input unit for inputting various data to the information processing apparatus 20 and the solution obtained as a result of the ground state search as they are, or provide result information (for example, A display unit that displays the result as information on a display screen visualized as a graph) is realized.
- the CPU 21 is a processor (arithmetic unit) that executes the library 21a and the driver 21b.
- the program of the library 21a and the program of the driver 21b are stored in the storage device 23, and are loaded into the DRAM 22 when executed by the CPU 21.
- the library 21a receives various data input by the user program 31, and converts a problem to be solved by the user into a problem for searching for the lowest energy state of the Ising model.
- the library 21a provides the driver 21b with information (for example, the number of spin bits, the number of bits representing a weight coefficient, the value of a weight coefficient, the initial value of a temperature parameter, and the like) after the conversion.
- the library 21a acquires the search result of the solution by the optimization device 25 from the driver 21b, converts the search result into result information that is easy for the user to understand, and provides the result information to the user program 31.
- the driver 21b supplies the information provided from the library 21a to the optimization device 25. Further, the driver 21b acquires the search result of the solution based on the Ising model from the optimization device 25 and provides the result to the library 21a.
- the optimization device 25 includes a control unit 25a and an LFB (Local Field Block) 50 as hardware.
- the control unit 25a has a RAM that stores the operating conditions of the LFB 50 received from the driver 21b, and controls the calculation by the LFB 50 based on the operating conditions.
- the control unit 25a performs setting of initial values in various registers included in the LFB 50, storage of weighting coefficients in the SRAM, reading of a spin bit string (search result) after completion of the operation, and the like.
- the control unit 25a is realized by, for example, a circuit in an FPGA.
- the $ LFB 50 has a plurality of LFEs (Local Field Elements).
- LFE is a unit element corresponding to the spin bit.
- One LFE corresponds to one spin bit.
- the optimization device 25 may include a plurality of LFBs.
- FIG. 5 is a block diagram illustrating an example of hardware of the control unit.
- the control unit 25a includes a CPU input / output unit 25a1, a control register 25a2, an LFB transmission unit 25a3, and an LFB reception unit 25a4.
- the CPU input / output unit 25a1 inputs the data received from the CPU 21 to the control register 25a2 or the LFB 50.
- the CPU input / output unit 25a1 inputs, to the LFB 50 via the control register 25a2, setting data such as the scale, accuracy, initial values of parameters, coupling constants, and the like, and operation condition data of the LFB 50 input by the CPU 21. It can also be input to each register or RAM in the LFB 50.
- the control register 25a2 holds various setting data for the LFB 50 by the CPU input / output unit 25a1, and outputs the data to the LFB transmitting unit 25a3.
- the control register 25a2 holds the data received from the LFB 50 by the LFB receiving unit 25a4 and outputs the data to the CPU input / output unit 25a1.
- the LFB transmission unit 25a3 transmits the setting data held in the control register 25a2 to the LFB 50.
- the LFB receiving unit 25a4 receives data (data such as a calculation result) from the LFB 50 and stores the data in the control register 25a2.
- FIG. 6 is a diagram illustrating an example of the combination optimization problem.
- a route that travels through five cities A, B, C, D, and E at the minimum cost is obtained.
- the graph 201 shows one route with a city as a node and movement between cities as an edge. This route is represented, for example, by a matrix 202 in which the rows are turned and the columns are associated with the cities.
- the matrix 202 indicates that the vehicle goes around the city in which the bit “1” is set in ascending order of the row. Further, the matrix 202 can be converted into a binary value 203 corresponding to a spin bit sequence.
- the number of bits of the binary value 203 increases as the number of cities to be visited increases. That is, as the scale of the combination optimization problem increases, more spin bits are required, and the number of bits (scale) of the spin bit string increases.
- FIG. 7 is a diagram illustrating an example of searching for a binary value having the minimum energy.
- E init be the energy before inverting one bit of the binary value 221 (before spin inversion).
- the optimization device 25 calculates the energy change amount ⁇ E when any one bit of the binary value 221 is inverted.
- the graph 211 exemplifies an energy change with respect to 1-bit inversion according to an energy function, with the horizontal axis representing a binary value and the vertical axis representing energy.
- the optimizing device 25 obtains ⁇ E from Expression (2).
- the optimization device 25 applies the above calculation to all bits of the binary value 221 and calculates the energy change amount ⁇ E for each bit inversion. For example, when the number of bits of the binary value 221 is N, the number of the inverted patterns 222 is N.
- a graph 212 exemplifies a state of an energy change for each inversion pattern.
- the optimization device 25 randomly selects one of the inversion patterns 222 satisfying the inversion condition (a predetermined condition for determining the threshold value and ⁇ E) based on ⁇ E for each inversion pattern.
- the optimization device 25 adds and subtracts ⁇ E corresponding to the selected inversion pattern to and from E init before the spin inversion, and calculates an energy value E after the spin inversion.
- the optimization apparatus sets the obtained energy value E as E init and repeats the above procedure using the binary value 223 after the spin inversion.
- one element of W used in equations (2) and (3) is a weight coefficient of spin inversion indicating the magnitude of interaction between bits.
- the number of bits representing the weight coefficient is called accuracy.
- accuracy As the accuracy is higher, the conditions for the energy change ⁇ E during spin inversion can be set in more detail.
- the total size of W is “accuracy ⁇ number of spin bits ⁇ number of spin bits” for all combinations of two bits included in the spin bit sequence.
- the total size of W is “accuracy ⁇ 8k ⁇ 8k” bits.
- FIG. 8 is a diagram illustrating a circuit configuration example of the optimization device.
- the optimizing device 25 (or the LFB 50 of the optimizing device 25) includes LFEs 51a1, 51a2,..., 51an, a random selector 52, a threshold generator 53, a random number generator 54, a mode setting register 55, an adder 56, and E storage. It has a register 57.
- Each of the LFEs 51a1, 51a2,..., 51an is used as one bit of a spin bit.
- n is an integer of 2 or more and indicates the number of LFEs provided in the LFB 50.
- the LFEs 51a1, 51a2, ..., 51an are examples of the bit operation circuits 1a1, ..., 1aN of the first embodiment.
- the LFEs 51a2,..., 51an are also realized by the same circuit configuration as the LFE 51a1.
- “a1” at the end of each element in the following description is replaced with “a2”,.
- 60a1 ” may be replaced with“ 60an ”.
- the suffix of each value such as h, q, ⁇ E, W, etc. may be replaced with the suffix corresponding to each of “a2”,.
- the LFE 51a1 includes an SRAM 60a1, an accuracy switching circuit 61a1, a ⁇ h generation unit 62a1, an adder 63a1, an h storage register 64a1, an inversion determination unit 65a1, a bit storage register 66a1, a ⁇ E generation unit 67a1, and a determination unit 68a1.
- the SRAM 60a1 stores the weight coefficient W.
- the SRAM 60a1 corresponds to the storage unit 11 according to the first embodiment.
- the SRAM 60a1 stores only the weight coefficient W of all the spin bits used in the LFE 51a1. For this reason, if the number of spin bits is K (K is an integer of 2 or more and n or less), the size of all weight coefficients stored in the SRAM 60a1 is “precision ⁇ K” bits.
- the precision switching circuit 61a1 acquires the index, which is the identification information of the inversion bit, and the flag F indicating inversion possible from the random selector unit 52, and extracts the weight coefficient corresponding to the inversion bit from the SRAM 60a1.
- the accuracy switching circuit 61a1 outputs the extracted weight coefficient to the ⁇ h generation unit 62a1.
- the precision switching circuit 61a1 may acquire the index and the flag F stored in the SRAM 60a1 by the random selector 52 from the SRAM 60a1.
- the precision switching circuit 61a1 may include a signal line that receives the supply of the index and the flag F from the random selector unit 52 (not shown).
- the precision switching circuit 61a1 receives the setting of the bit number (precision) of the weight coefficient set in the mode setting register 55, and switches the bit number of the weight coefficient read from the SRAM 60a1 according to the setting.
- the accuracy switching circuit 61a1 has a selector that reads a bit string (unit bit string) having a predetermined number of unit bits from the SRAM 60a1.
- the precision switching circuit 61a1 reads out the unit bit string of the bit number r including the weight coefficient corresponding to the inverted bit by the selector. For example, when the number r of unit bits read by the selector is larger than the number z of bits of the weight coefficient, the precision switching circuit 12 adds a bit portion indicating the weight coefficient corresponding to the inverted bit to the LSB ( The weight coefficient is read by shifting to the Least (Significant Bit) side and substituting 0 for the other bits.
- the accuracy switching circuit 61a1 may extract the weight coefficient at the set bit number z by combining a plurality of unit bit strings read by the selector.
- the precision switching circuit 61a1 is also connected to the SRAM 60a2 provided in the LFE 51a2. As will be described later, the accuracy switching circuit 61a1 can also read a weight coefficient from the SRAM 60a2.
- the ⁇ h generation unit 62a1 receives the current bit value of the inverted bit (the bit value before the current inversion) from the random selector unit 52, and uses the weighting factor obtained from the precision switching circuit 61a1 to calculate the local value according to Expression (4). to calculate the amount of change ⁇ h 0 of field h 0.
- Delta] h generator 62a1 outputs the Delta] h 0 to the adder 63a1.
- Adder 63a1 adds Delta] h 0 locally field h 0 stored in the h storage register 64a1, and outputs the h storage register 64a1.
- h storage register 64a1 in synchronization with a clock signal (not shown) takes a value adder 63a1 outputs (local field h 0).
- the h storage register 64a1 is, for example, a flip-flop.
- the initial value of the local field h 0 that is stored in the h storage register 64a1 are biased coefficients b 0. The initial value is set by the control unit 25a.
- the bit storage register 66a1 holds a spin bit corresponding to the LFE 51a1.
- the bit storage register 66a1 is, for example, a flip-flop.
- the spin bits stored in the bit storage register 66a1 are inverted by the inversion determining unit 65a1.
- the bit storage register 66a1 outputs a spin bit to the ⁇ E generator 67a1 and the random selector 52.
- the ⁇ E generation unit 67a1 calculates the energy change amount ⁇ E 0 of the Ising model according to the inversion of its own bit by using equation (2). I do. Delta] E generating unit 67a1 is a change in the energy Delta] E 0, and outputs to the determining unit 68a1 and a random selector unit 52.
- f ⁇ 1 (u) is a function given by one of Expressions (9) and (10) according to the applicable law.
- U is a uniform random number in the section [0, 1).
- the random selector 52 receives the energy change amount, the flag indicating whether the spin bit can be inverted, and the spin bit from each of the LFEs 51a1, 51a2,... Select
- the random selector 52 supplies the current bit value (bit q j ) of the selected inverted bit to the ⁇ h generators 62a1, 62a2,..., 62an provided in the LFEs 51a1, 51a2,.
- the random selector unit 52 is an example of the selection circuit unit 2 according to the first embodiment.
- the random selector 52 supplies ⁇ E j corresponding to the selected inverted bit to the adder 56.
- the random selector unit 52 receives from the mode setting register 55 the setting of the number of spin bits in a certain Ising model (that is, the number of LFEs to be used). For example, the random selector unit 52 searches for a solution using LFEs of a number corresponding to the set number of spin bits in ascending order of the index. For example, when using K LFEs out of n LFEs, the random selector unit 52 selects an inversion bit from a spin bit sequence corresponding to the LFEs of the LFEs 51a1,..., LFE51aK. At this time, the random selector 52 may forcibly set the flag F output from each of the nK LFEs 51a (K-1),...
- the threshold generation unit 53 generates and supplies a threshold used for comparison with the energy change amount ⁇ E to the determination units 68a1, 68a2,..., 68an provided in the LFEs 51a1, 51a2,. As described above, the threshold generation unit 53 uses the temperature parameter T, the uniform random number u in the section [0, 1), and f ⁇ 1 (u) represented by the equation (9) or (10). To generate a threshold.
- the threshold generation unit 53 has, for example, a random number generator individually for each LFE, and generates a threshold using a random number u for each LFE. However, a random number generator may be shared by some LFEs.
- the control unit 25a controls the initial value of the temperature parameter T, the decrease cycle and the decrease amount of the temperature parameter T in the simulated annealing, and the like.
- the random number generator 54 generates a random number bit used for selecting the inverted bit in the random selector 52 and supplies the random number bit to the random selector 52.
- the mode setting register 55 supplies a signal indicating the number of bits (that is, the precision) of the weight coefficient to the precision switching circuits 61a1, 61a2, and 61an included in the LFEs 51a1, 51a2,. Further, the mode setting register 55 supplies a signal indicating the number of spin bits (that is, the scale) to the random selector unit 52.
- the setting of the number of spin bits and the number of bits of the weight coefficient in the mode setting register 55 is performed by the control unit 25a.
- the mode setting register 55 is an example of the setting change unit 5 according to the first embodiment.
- the adder 56 adds the energy change amount ⁇ E j output from the random selector unit 52 to the energy value E stored in the E storage register 57, and outputs the result to the E storage register 57.
- the E storage register 57 takes in the energy value E output from the adder 56 in synchronization with a clock signal (not shown).
- the E storage register 57 is, for example, a flip-flop. Note that the initial value of the energy value E is calculated by the control unit 25a using Expression (1), and is set in the E storage register 57.
- FIG. 9 is a diagram illustrating a circuit configuration example of the random selector unit.
- the random selector unit 52 includes a flag control unit 52a and a plurality of selection circuits connected in a tree shape over a plurality of stages.
- the flag control unit 52a controls the value of the flag input to each of the first-stage selection circuits 52a1, 52a2, 52a3, 52a4,..., 52aq in accordance with the setting of the number of spin bits in the mode setting register 55.
- FIG. 9 illustrates a partial circuit 52xn that controls the value of a flag for one input (corresponding to the output of the LFE 51an) of the selection circuit 52aq.
- the flag setting unit 52yn of the partial circuit 52xn is a switch that forcibly sets the flag Fn output from the unused LFE 51an to 0.
- Each of the first-stage selection circuits 52a1, 52a2, 52a3, 52a4,..., 52aq receives two sets of variables q i , F i, and ⁇ E i output from each of the LFEs 51a1, 51a2,. .
- a set of variables q 0 , F 0 and ⁇ E 0 output from the LFE 51 a 1 and a set of variables q 1 , F 1 and ⁇ E 1 output from the LFE 51 a 2 are input to the selection circuit 52 a 1 .
- the selection circuit 52a2 variables q 2 and set of by F 2 and set the variable q 3 by Delta] E 2 and F 3 and Delta] E 3 is input, the selection circuit 52a3, variable q 4 and F 4 and Delta] E 4 set by set and variables q 5 and F 5 and Delta] E 5 by is input.
- a set of variables q 6 , F 6 and ⁇ E 6 and a set of variables q 7 , F 7 and ⁇ E 7 are input to the selection circuit 52 a 4, and the variables q n ⁇ 2 and F n ⁇ 2 and a set of ⁇ E n-2 and a set of variables q n ⁇ 1 , F n ⁇ 1 and ⁇ E n ⁇ 1 are input.
- Each of the selection circuits 52a1,..., 52aq determines one of the variables q i , F i, and ⁇ E i based on the input two sets of variables q i , F i, and ⁇ E i, and the 1-bit random number output from the random number generation unit 54. i , F i and ⁇ E i are selected.
- selection circuit 52a1, ..., each 52aq may select one of the set based on 1-bit random number when a set F i is 1 preferentially selected, both sets of 1 (The same applies to other selection circuits).
- the random number generation unit 54 generates a 1-bit random number individually for each selection circuit, and supplies it to each selection circuit.
- Each of the selection circuits 52a1,..., 52aq generates a 1-bit identification value indicating which set of the variables q i , F i and ⁇ E i have been selected, and selects the selected variables q i , F i and A signal (referred to as a state signal) including ⁇ E i and the identification value is output.
- the number of first-stage selection circuits 52a1 to 52aq is ⁇ of the number of LFEs 51a1,..., 51an, that is, n / 2.
- 52br are input to the second-stage selection circuits 52b1, 52b2,..., 52br, respectively, by two state signals output from the selection circuits 52a1,.
- a state signal output from the selection circuits 52a1 and 52a2 is input to the selection circuit 52b1
- a state signal output from the selection circuits 52a3 and 52a4 is input to the selection circuit 52b2.
- Each of the selection circuits 52b1,..., 52br selects one of the two state signals based on the two state signals and the 1-bit random number output from the random number generation unit 54.
- Each of the selection circuits 52b1,..., 52br adds and updates one bit so as to indicate which status signal is selected for the identification value included in the selected status signal, and outputs the selected status signal. I do.
- the same processing is performed in the selection circuits of the third and subsequent stages, and the bit width of the identification value is increased by one bit in the selection circuits of each stage, and the output of the random selector 52 is output from the selection circuit 52p of the last stage. A certain state signal is output.
- the identification value included in the status signal output from the random selector unit 52 is an index indicating an inverted bit expressed in a binary number.
- the random selector unit 52 receives the index corresponding to the LFE together with the flag F from each LFE, and selects the index by each selection circuit in the same manner as the variables q i , F i and ⁇ E i , thereby inverting the inverted bit. May be output.
- each LFE has a register for storing the index, and outputs the index to the random selector unit 52 from the register.
- the random selector 52 determines whether or not the inversion is possible by the LFEs 51a (K + 1),..., 51an other than the LFEs 51a1,.
- the signal shown is forcibly set to non-invertable.
- the random selector 52 selects an inversion bit based on the signal indicating whether or not the inversion is possible, which is output from the LFEs 51a1,.
- the random selector 52 outputs a signal indicating the inverted bit to the LFEs 51a (K + 1),..., 51an in addition to the LFEs 51a1,.
- FIG. 10 is a diagram illustrating an example of a trade-off relationship between scale and accuracy.
- the traveling salesman problem is an example of the combination optimization problem.
- the traveling salesman problem is a problem of low accuracy if the number of traveling cities is large and traveling conditions (moving time, moving distance, traveling cost, etc.) are small, and if the traveling conditions are large, high accuracy is required.
- Other optimization problems with relatively low accuracy include problems with certain conditions, such as the eight queen problem and the four-color problem.
- the portfolio optimization problem since the portfolio optimization problem has many conditions such as the amount of money and the period, high accuracy is required.
- a graph 300 shows a trade-off relationship between the scale and the accuracy when the upper limit of the capacity for storing the weight coefficient in the SRAM for each LFE is 128 k (kilo) bits.
- 1k (kilo) 1024.
- the accuracy is 128 bits at the maximum for a scale of 1 kbit.
- the precision is 64 bits at the maximum for a scale of 2 k bits.
- the precision is up to 32 bits.
- the precision is a maximum of 16 bits.
- the first mode is a mode with a scale of 1 kbit / accuracy of 128 bits.
- the second mode is a mode with a scale of 2 k bits / a precision of 64 bits.
- the third mode is a mode with a scale of 4 k bits / accuracy of 32 bits.
- the fourth mode is a mode having a scale of 8 kbits / precision 16 bits.
- FIG. 11 is a diagram illustrating an example (part 1) of storing a weight coefficient.
- the weight coefficient W is expressed by Expression (11).
- Data 1d1, 1d2,..., 1ds show an example of storing weighting factors for the SRAMs 60a1, 60a2,..., 60as when the above-described first mode (scale 1 k bits / accuracy 128 bits) is used.
- s 1024.
- the data 1d1, 1d2,..., 1ds are stored in the SRAMs 60a1, 60a2,.
- LFEs 51a1,..., 51as may be represented as LFE0,..., LFE1023 using their respective identification numbers (the same applies to the following drawings).
- Data 1d1 indicates W 0,0 to W 0,1023 stored in the SRAM 60a1 of the LFE 51a1 (LFE0).
- Data 1d2 indicates W 1,0 to W 1,1023 stored in the SRAM 60a2 of the LFE 51a2 (LFE1).
- Data 1ds indicates W 1023,0 to W 1023,1023 stored in the SRAM 60as of the LFE 51as (LFE 1023).
- the number of bits of one weight coefficient W ij is 128 bits.
- FIG. 12 is a diagram illustrating an example (part 2) of storing the weighting factors.
- the weight coefficient W is represented by Expression (12).
- Data 2d1, 2d2,..., 2dt show an example of storing weighting factors for the SRAMs 60a1, 60a2,..., 60at in the case of using the above-described second mode (scale 2 k bits / accuracy 64 bits).
- t 2048.
- Data 2d1 indicates W 0,0 to W 0,2047 stored in the SRAM 60a1 of the LFE 51a1 (LFE0).
- Data 2d2 indicates W 1,0 to W 1,2047 stored in the SRAM 60a2 of the LFE 51a2 (LFE1).
- Data 2dt indicates W 2047,0 to W 2047,2047 stored in the SRAM 60at of the LFE 51at (LFE 2047).
- the number of bits of one weight coefficient W ij is 64 bits.
- FIG. 13 is a diagram illustrating an example (part 3) of storing the weighting factors.
- the weight coefficient W is expressed by Expression (13).
- Data 3d1, 3d2,..., 3du are examples of storing weighting factors for the SRAMs 60a1, 60a2,..., 60au in the case of using the above-described third mode (scale 4 kbits / accuracy 32 bits).
- u 4096.
- Data 3d1 indicates W 0,0 to W 0,4095 stored in the SRAM 60a1 of the LFE 51a1 (LFE0).
- Data 3d2 indicates W 1,0 to W 1,4095 stored in the SRAM 60a2 of the LFE 51a2 (LFE1).
- Data 3du indicates W 4095,0 to W 4095 , 4095 stored in the SRAM 60au of the LFE 51au (LFE 4095).
- the number of bits of one weight coefficient W ij is 32 bits.
- FIG. 14 is a diagram illustrating an example (part 4) of storing the weighting coefficients.
- the weight coefficient W is expressed by Expression (14).
- Data 4d1, 4d2,..., 4dn show an example of storing weighting factors for the SRAMs 60a1, 60a2,..., 60an when the above-described fourth mode (scale 8 kbits / precision 16 bits) is used.
- n 8192.
- Data 4d1 indicates W 0,0 to W 0,8191 stored in the SRAM 60a1 of the LFE 51a1 (LFE0).
- Data 4d2 indicates W 1,0 to W 1,8191 stored in the SRAM 60a2 of the LFE 51a2 (LFE1).
- Data 4dn indicates W 8191,0 to W 8191,8191 stored in the SRAM 60an of the LFE 51an (LFE 8191).
- the number of bits of one weight coefficient W ij is 16 bits.
- FIG. 15 is a flowchart illustrating an example of the initialization processing.
- the CPU 21 inputs the initial values and operating conditions according to the problem to the optimization device 25.
- the initial value includes, for example, the energy value E, the local field h i, spin bits q i, the initial value and the weighting factor W of the temperature parameter T and the like.
- the operating conditions include the number of times N1 of updating the state with one temperature parameter, the number of changes N2 of the temperature parameter, the decrease in the temperature parameter, and the like.
- the control unit 25a sets the input initial value and weight coefficient in the register of each LFE and the SRAM described above. When there is an LFE that is not used, the control unit 25a sets, for example, all 0s as W in the SRAM of the LFE.
- the weight coefficient W between the spin bits is represented by the number of bits corresponding to the precision according to the problem.
- the CPU 21 inputs the number of spin bits (scale) and the number of bits (precision) of the weight coefficient according to the problem to the optimization device 25.
- the control unit 25a receives the number of spin bits and the number of bits of the weight coefficient from the CPU 21 and inputs them to the mode setting register 55.
- the number of bits of the weight coefficient input to the mode setting register 55 is input to the precision switching circuit of each LFE. Further, the number of spin bits input to the mode setting register 55 is input to the random selector unit 52.
- the control unit 25a receives the input of the calculation start flag, and starts the calculation by the LFB 50. Thus, the initialization processing ends.
- FIG. 16 is a flowchart illustrating an example of the arithmetic processing.
- Each part included in the LFE 51ax is also described by adding “x” to the end of the reference numeral, for example, like the SRAM 60ax.
- the operation by each of the LFEs 51a1,..., LFE51an is executed in parallel.
- Equation (2) (S20) Delta] E generator 67ax the energy variation in the case where based on the local field h i bits q i where and stored in the bit storage register 66ax stored in h storage register 64Ax, inverts the bits q i Generate ⁇ E i . Equation (2) is used to generate ⁇ E i .
- the unit bit string is a unit of a bit string that the selector of the precision switching circuit 61ax reads from the SRAM 60ax at a time.
- the number of bits of the unit bit string (the number of unit bits) is, for example, 128 bits (other values may be used). In this case, in step S26, a 128-bit unit bit string is read from the SRAM 60ax.
- the precision switching circuit 61ax counts from the unit bit string at the head (the head is 0th) of the SRAM 60ax.
- the “Integer (j / a)” th unit bit string is read.
- Integer (j / a) is a function that extracts an integer part from the value of (j / a).
- the weighting factor (weighting factor corresponding to the inverted bit q j) of the number of bits according to the set mode selected by the mode setting register 55 W ij is extracted. For example, when extracting the z-bit bit string from the 128-bit unit bit string, the precision switching circuit 61ax shifts the z-bit range corresponding to the inverted bit to the LSB side as described above, and shifts the bit range to the other upper bits. By setting 0, a weight coefficient of z bits is extracted.
- the precision switching circuit 61ax divides the unit bit string read in step S26 into sections having a bit length corresponding to the precision from the beginning, and determines the bit number corresponding to the inverted bit from the beginning (0th).
- the bit range is specified depending on whether or not it corresponds to the section.
- mod (u, v) is a function indicating the remainder when u is divided by v.
- the “mod (j, 8)”-th section from the beginning of the read unit bit string of 128 bits is a bit range corresponding to the inverted bit.
- the precision switching circuit 61ax uses the 128-bit unit bit string read in step S26 as a weight coefficient corresponding to the inverted bit.
- the “mod (j, a)”-th unit bit string from the beginning of the 128-bit unit bit string read in step S26 is a bit range indicating a weight coefficient corresponding to an inverted bit.
- the ⁇ h generation unit 62ax generates ⁇ h i based on the inversion direction of the inversion bit and the weight coefficient W ij extracted by the precision switching circuit 61ax.
- the generation of Delta] h i, equation (4) is used.
- the inversion direction of the inversion bit is determined by the inversion bit q j (the bit before the current inversion) output from the random selector unit 52.
- (S29) adder 63ax is a Delta] h i generated by Delta] h generator 62Ax, by adding to the local field h i stored in the h storage register 64Ax, local field stored in the h storage register 64Ax h i To update.
- the inversion determination unit 65ax inverts the spin bit stored in the bit storage register 66ax when the own bit is selected as the inverted bit, and inverts the spin bit of the bit storage register 66ax when the own bit is not selected as the inverted bit. To maintain.
- the control unit 25a changes the temperature parameter T. Specifically, the control unit 25a decreases the value of the temperature parameter T by a reduction width corresponding to the operating condition (corresponding to lowering the temperature). Then, the process proceeds to step S20.
- the control unit 25a reads the spin bits stored in the bit storage register 66ax, and outputs the result as an operation result. Specifically, the control unit 25a reads the spin bits stored in each of the bit storage registers 66a1,..., 66aK corresponding to the spin bit number K set by the mode setting register 55, and outputs the spin bits to the CPU 21. That is, the control unit 25a supplies the read spin bit sequence to the CPU 21. Then, the arithmetic processing ends.
- step S24 the random selector unit 52 forcibly sets the value of F output by the unused LFE to 0 according to the setting of the mode setting register 55, thereby performing bit inversion of the unused LFE. Can be excluded from the candidates.
- the number of spin bits indicating the state of the Ising model and the number of bits of the weighting coefficient can be set by the mode setting register 55. Accuracy can be realized.
- the accuracy switching circuit 61ax switches the bit length of the weight coefficient read from the SRAM 60ax according to the setting of the mode setting register 55.
- the precision switching circuit 61ax as shown in step S27, various precisions can be realized without changing the number of unit bits read from the SRAM 60ax by the selector of the precision switching circuit 61ax.
- the accuracy can be varied without the need to reconfigure the signal lines for the unit number of bits from the SRAM 60ax by the selector of the accuracy switching circuit 61ax.
- the random selector unit 52 inputs a signal indicating an inverted bit to the number (for example, K) of LFEs corresponding to the number of spin bits set by the mode setting register 55, and the number (K) Is selected from the bits corresponding to the LFE.
- the random selector unit 52 also inputs a signal indicating an inversion bit to nK LFEs that are not used, but forcibly sets a flag F output from the nK LFEs to 0 (inversion is not possible). By doing so, unused LFEs are excluded from candidates for selecting inverted bits.
- the optimization device 25 provides a fifth mode with a scale of 4 kbits / accuracy of 64 bits in addition to the above-described four types of modes by storing weighting factors in the SRAMs 60a1,..., 60an as follows. You can also.
- FIG. 17 is a diagram illustrating an example (part 5) of storing coupling coefficients.
- Data 5d1, 5d2,..., 5dn show an example of storing weighting factors for the SRAMs 60a1, 60a2,..., 60an when the above-described fifth mode (scale 4 k bits / accuracy 64 bits) is used.
- n 8192.
- the data 5d1, 5d2,..., 5dn are stored in the SRAMs 60a1, 60a2,.
- Data 5d1 indicates W 0,0 to W 0,2047 stored in the SRAM 60a1 of the LFE 51a1 (LFE0).
- Data 5d2 indicates W 0,2048 to W 0,4095 stored in the SRAM 60a2 of the LFE 51a2 (LFE1).
- Data 5dn indicates W 4095,2048 to W 4095,4095 stored in the SRAM 60an of the LFE 51an (LFE 8191).
- the number of bits of one weight coefficient W ij is 64 bits.
- the accuracy switching circuit 61a1 of the LFE 51a1 can also obtain the weight coefficient from the SRAM 60a2 of the LFE 51a2. That is, for example, the accuracy switching circuit 61a1 can stop the functions other than the SRAM 60a2 of the LFE 51a2 by utilizing the read path from the SRAM 60a2 of the adjacent LFE 51a2, and lend the capacity of the SRAM 60a2 to the LFE 51a1.
- an odd-numbered (leading first) LFE enables an even-numbered LFE SRAM (or an odd-numbered LFE SRAM is used by an even-numbered LFE if the leading is 0th). It can be said).
- the accuracy switching circuits 61a1,..., 61an change a part of the weight coefficient relating to the own bit and another bit according to the change of the number of bits of the weight coefficient to another LFE not used as a spin bit.
- the random selector unit 52 inverts a bit corresponding to the other LFE by forcibly setting a flag F output from another LFE not used as a spin bit to 0 (non-invertable).
- the bits may be excluded from the selection candidates.
- the fifth mode with a scale of 4 k bits / accuracy of 64 bits can be realized.
- the scale and accuracy can be changed more flexibly according to the problem.
- the third embodiment in addition to the functions of the second embodiment, a function for efficiently using the LFE is provided.
- the device configuration of the information processing system and the hardware configuration of the information processing device 20 according to the third embodiment are the same as those in FIGS.
- the optimization device of the third embodiment differs from the optimization device 25 of the second embodiment in part of the circuit configuration.
- FIG. 18 is a diagram illustrating an example of the optimization device according to the third embodiment.
- the optimization device 26 is, for example, a one-chip semiconductor integrated circuit, and is realized by an FPGA or the like.
- the optimization device 26 is an example of the optimization device 1 according to the first embodiment.
- the optimization device 26 has a plurality of LFBs.
- the optimization device 26 has a control unit 25a that controls the plurality of LFBs (not shown).
- the number of LFEs belonging to one LFB is set to m (m is an integer of 2 or more), and the optimization device 26 performs LFBs 70a, 70b, 70c, 70d, 70e, 70f, 70 g and 70 h.
- the optimization device 26 has a total of 8 m LFEs, and can realize a maximum scale of 8 m bits.
- the number of LFBs provided in the optimization device 26 is not limited to eight, and may be another number.
- the LFEs included in the LFBs 70a,..., 70h are examples of the bit operation circuits 1a1,.
- Each of the LFBs 70a,..., 70h can be said to be one group of LFEs including a predetermined number (m) of LFEs as elements.
- 70h are assigned identification numbers # 0 to # 7.
- the optimization device 26 further includes a scale coupling circuit 91, a mode setting register 92, adders 93a, 93b, 93c, 93d, 93e, 93f, 93g, 93h, and E storage registers 94a, 94b, 94c, 94d, 94e, 94f. , 94g, 94h.
- the LFB 70a includes LFEs 71a1,..., LFE71am, a random selector 72, a threshold generator 73, a random number generator 74, and a mode setting register 75.
- the LFEs 71a1,..., LFE71am, the random selector 72, the threshold generator 73, the random number generator 74, and the mode setting register 75 correspond to the hardware having the same name in the second embodiment described with reference to FIG. Omitted.
- the random selector 72 outputs a set of the state signal (flag F x0 , spin bit q x0 and energy change ⁇ E x0 ) for the selected inverted bit to the scale coupling circuit 91.
- the random selector section 72 does not need to have the flag control section 52a (however, it may have the flag control section 52a).
- the random selector unit 72 two state signals from each LFE are input to each of the first-stage selection circuits of the random selector unit 72 without passing through the flag control unit 52a.
- 70h have the same circuit configuration as the LFB 70a.
- the scale coupling circuit 91 receives a state signal from each of the LFBs 70a,..., 70h, and selects an inverted bit based on the state signal.
- the scale coupling circuit 91 supplies a signal related to the inverted bit to each of the LFEs of the LFBs 70a,.
- the scale coupling circuit 91 outputs the energy change amount ⁇ E y0 to the adder 93a.
- the energy change amount ⁇ E y1 is output to the adder 93b.
- the scale coupling circuit 91 outputs the energy change amount ⁇ E y2 to the adder 93c.
- the scale coupling circuit 91 outputs the energy change amount ⁇ E y3 to the adder 93d.
- the scale coupling circuit 91 outputs the energy change amount ⁇ E y4 to the adder 93e.
- the scale coupling circuit 91 outputs the energy change amount ⁇ E y5 to the adder 93f.
- the scale coupling circuit 91 outputs the energy change amount ⁇ E y6 to the adder 93g.
- the scale coupling circuit 91 outputs the energy change amount ⁇ E y7 to the adder 93h.
- the random selector section (including the random selector section 72) and the scale coupling circuit 91 included in each of the LFBs 70a,..., 70h are examples of the selection circuit section 2 of the first embodiment.
- the mode setting register 92 sets an operation mode for the scale coupling circuit 91.
- the mode setting register 92 sets the same operation mode as that set in the LFEs 71 a 1,..., 71 am and the random selector 72 by the mode setting register 75 in the scale coupling circuit 91.
- the details of the mode setting by the mode setting registers 75 and 92 will be described later.
- the mode setting register (including the mode setting register 75) and the mode setting register 92 included in each of the LFBs 70a,..., 70h are an example of the setting change unit 5 of the first embodiment.
- the adder 93a has a Delta] E y0, by adding to the energy value E 0 which is stored in the E storage register 94a, and updates the energy values E 0.
- E storage register 94a is, for example, in synchronization with a clock signal (is not shown) (other E storage registers as well), captures the energy value E 0 which is calculated by the adder 93a.
- the adder 93b is a Delta] E y1, by adding the energy value E 1 stored in the E storage register 94b, and updates the energy values E 1.
- E storage register 94b captures the energy values E 1 calculated by the adder 93 b.
- the adder 93c is the Delta] E y2, by adding to the energy value E 2 stored in the E storage register 94c, and updates the energy values E 2.
- E storage register 94c captures the energy value E 2 calculated by the adder 93c.
- the adder 93d is a Delta] E y3, by adding to the energy value E 3 stored in the E storage register 94d, and updates the energy values E 3.
- E storage register 94d captures the energy values E 3 calculated by the adder 93d.
- the adder 93e is a Delta] E y4, by adding the energy value E 4, which is stored in the E storage register 94e, updates the energy values E 4.
- E storage register 94e fetches the energy value E 4 calculated by the adder 93e.
- the adder 93f is a Delta] E y5, by adding the energy value E 5 stored in the E storage register 94f, and updates the energy values E 5.
- E storage register 94f captures the energy values E 5 calculated by the adder 93f.
- the adder 93g is the Delta] E y6, by adding the energy value E 6 stored in the E storage register 94 g, updates the energy values E 6.
- E storage register 94g captures the energy values E 6 calculated by the adder 93 g.
- the adder 93h is a Delta] E y7, by adding the energy value E 7 stored in the E storage register 94h, and updates the energy values E 7.
- E storage register 94h captures the energy value E 7 calculated by the adder 93h.
- Each of the E storage registers 94a,..., 94h is, for example, a flip-flop.
- a circuit configuration example of the LFB 70a will be described.
- 70h have the same circuit configuration as the LFB 70a.
- FIG. 19 is a diagram illustrating a circuit configuration example of the LFB.
- Each of the LFEs 71a1, 71a2,..., 71am is used as one bit of a spin bit.
- the LFEs 71a2,..., 71am are also realized by the same circuit configuration as the LFE 71a1.
- “a1” at the end of the reference numeral of each element in the following description is replaced with “a2”,.
- the code of “80a1” may be replaced with “80am”.
- the LFE 71a1 includes an SRAM 80a1, an accuracy switching circuit 81a1, a ⁇ h generation unit 82a1, an adder 83a1, an h storage register 84a1, an inversion determination unit 85a1, a bit storage register 86a1, a ⁇ E generation unit 87a1, and a determination unit 88a1.
- the SRAM 80a1, the precision switching circuit 81a1, the ⁇ h generation unit 82a1, the adder 83a1, the h storage register 84a1, the inversion determination unit 85a1, the bit storage register 86a1, the ⁇ E generation unit 87a1, and the determination unit 88a1 are each described with reference to FIG. It has the same function as the hardware of the same name.
- the SRAM80a1 (or precision switching circuit 81a1) and the inverted determination unit 85a1, the flag F y0 indicating the outputted index y0 and inverting whether the scale coupling circuit 91 is supplied.
- the ⁇ h generator 82A1, inverted bit q y0 output by scale coupling circuit 91 is supplied.
- the mode setting register 75 sets the number of bits (precision) of the weight coefficient for the precision switching circuits 81a1, 81a2,..., 81am.
- the mode setting register 75 does not have a signal line for setting the random selector section 72 (however, the mode setting register 75 may have the signal line).
- the mode setting register 75 may have the signal line.
- the following five types of modes shown in the second embodiment can be used.
- the first mode is a mode with a scale of 1 kbit / accuracy of 128 bits.
- the mode with a scale of 1 kbit / accuracy of 128 bits uses one LFB. This mode can be realized by only one of the LFBs 70a,..., 70h.
- the second mode is a mode with a scale of 2 k bits / accuracy of 64 bits.
- the mode of 2 k bits in scale / 64 bits of accuracy uses two LFBs.
- the mode can be realized by any one of a combination of LFBs 70a and 70b, a combination of LFBs 70c and 70d, a combination of LFBs 70e and 70f, and a combination of LFBs 70g and 70h.
- the third mode is a mode with a scale of 4 kbits / accuracy of 32 bits.
- a mode with a scale of 4 k bits / accuracy of 32 bits uses four LFBs.
- the mode can be realized by any one of a combination of LFBs 70a, 70b, 70c, and 70d and a combination of LFBs 70e, 70f, 70g, and 70h.
- the fourth mode is a mode with a scale of 4 k bits / a precision of 64 bits.
- the mode of 4 k bits in scale / 64 bits of precision uses eight LFBs. This mode can be realized using a combination of LFBs 70a,..., 70h. However, as described in FIG. 17, the number of LFEs used in one LFB is half of the number of LFEs provided in one LFB.
- the fifth mode is a mode with a scale of 8 kbits / accuracy of 16 bits.
- a mode with a scale of 8 kbits / a precision of 16 bits uses eight LFBs. This mode can be realized using a combination of LFBs 70a,..., 70h.
- the optimization device 26 combines the above-described mode of 1 kbit / 128 bits of accuracy, 2 kbit / 64 bits of accuracy, and 4 kbit / 32 bits of accuracy, Allows operations on the same problem or other problems to be performed in parallel.
- the scale combining circuit 91 combines the LFBs with a plurality of LFBs (combinations of LFBs) according to the change in the number of spin bits by the mode setting register 92 so as to include the number of LFEs corresponding to the number of spin bits. Select the number (the number of groups to be combined).
- the scale coupling circuit 91 has, for example, the following circuit configuration.
- FIG. 20 is a diagram illustrating a circuit configuration example of the scale coupling circuit.
- the scale coupling circuit 91 includes selection circuits 91a1, 91a2, 91a3, 91a4, 91b1, 91b2, 91c1 connected in a tree shape over a plurality of stages, a random number generation unit 91d, and mode selection circuits 91e1, 91e2, 91e3, 91e4, 91e5. , 91e6, 91e7, 91e8.
- each of the selection circuits 91a1,..., 91a4 generates an identification value indicating which pair is selected based on the indexes included in both pairs, and selects the selected variables q i , F i , ⁇ E i , And outputting a status signal including the identification value.
- the identification value output by each of the selection circuits 91a1,..., 91a4 is one bit larger than the input index.
- Two state signals output from the selection circuits 91a1,..., 91a4 are input to each of the second-stage selection circuits 91b1, 91b2.
- a state signal output from the selection circuits 91a1 and 91a2 is input to the selection circuit 91b1
- a state signal output from the selection circuits 91a3 and 91a4 is input to the selection circuit 91b2.
- Each of the selection circuits 91b1 and 91b2 selects one of the two state signals based on the two state signals and the 1-bit random number output from the random number generation unit 91d.
- Each of the selection circuits 91b1 and 91b2 updates the identification value included in the selected status signal by adding one bit so as to indicate which status signal is selected, and outputs the selected status signal. .
- Two state signals output from the selection circuits 91b1 and 91b2 are input to the selection circuit 91c1 at the last stage.
- the selection circuit 91c1 selects one of the two state signals based on the two state signals and the 1-bit random number output from the random number generation unit 91d.
- the selection circuit 91c1 updates the identification value included in the selected status signal by adding one bit so as to indicate which status signal has been selected, and outputs the selected status signal.
- the identification value corresponds to the index.
- the scale coupling circuit 91 outputs the index corresponding to the inverted bit by selecting the index input from each random selector unit by each selection circuit in the same manner as the variables q i , F i, and ⁇ E i. You may. In this case, each of the random selectors receives the index from each LFE together with the variable q and the flag F. It is conceivable that the control unit 25a sets an index corresponding to a combination of LFBs in a predetermined index storage register of each LFE.
- Each of the mode selection circuits 91e1,..., 91e8 has an input terminal corresponding to a scale (that is, 1 k bits, 2 k bits, 4 k bits, and 8 k bits).
- "1" shown in each of the mode selection circuits 91e1,..., 91e8 indicates an input terminal corresponding to a scale of 1 k bits.
- “2” indicates an input terminal corresponding to a scale of 2 k bits.
- "4" indicates an input terminal corresponding to a scale of 4 k bits (however, precision is 32 bits).
- “8” indicates an input terminal corresponding to a scale of 8 k bits (or a scale of 4 k bits / accuracy of 64 bits).
- the state signal output from the LFB 70a (# 0) is input to the 1 k-bit input terminal of the mode selection circuit 91e1.
- a state signal output from the LFB 70b (# 1) is input to an input terminal having a 1 k-bit scale of the mode selection circuit 91e2.
- the state signal output from the LFB 70c (# 2) is input to the 1 k-bit input terminal of the mode selection circuit 91e3.
- the state signal output from the LFB 70d (# 3) is input to the 1 k-bit input terminal of the mode selection circuit 91e4.
- a state signal output from the LFB 70e (# 4) is input to an input terminal having a 1 k-bit scale of the mode selection circuit 91e5.
- the state signal output from the LFB 70f (# 5) is input to the 1 k-bit input terminal of the mode selection circuit 91e6.
- the state signal output from the LFB 70g (# 6) is input to the 1 k-bit input terminal of the mode selection circuit 91e7.
- the state signal output from the LFB 70h (# 7) is input to the 1 k-bit input terminal of the mode selection circuit 91e8.
- the state signal output from the selection circuit 91a1 is input to the 2 k-bit input terminals of the mode selection circuits 91e1 and 91e2.
- the state signals output by the selection circuit 91a2 are input to the input terminals of 2k bits in each of the mode selection circuits 91e3 and 91e4.
- the state signals output from the selection circuit 91a3 are input to the input terminals of 2k bits in each of the mode selection circuits 91e5 and 91e6.
- the state signal output from the selection circuit 91a4 is input to the 2 k-bit input terminals of the mode selection circuits 91e7 and 91e8.
- the state signal output from the selection circuit 91b1 is input to the 4 k-bit input terminals of the mode selection circuits 91e1, 91e2, 91e3, and 91e4.
- the state signal output from the selection circuit 91b2 is input to each of the 4 k-bit input terminals of the mode selection circuits 91e5, 91e6, 91e7, and 91e8.
- Each of the mode selection circuits 91e1,..., 91e8 receives a state signal output from the selection circuit 91c1 at an input terminal of 8k bits.
- Each of the mode selection circuits 91e1,..., 91e8 receives the setting of the scale (the number of spin bits) by the mode setting register 92.
- the signal lines from the mode setting register 92 to each of the mode selection circuits 91e2,..., 91e8 are abbreviated as “.
- the adder 93a updates the E 0 based on Delta] E y0.
- the adder 93b updates the E 1 based on Delta] E y1.
- the adder 93c updates the E 2 based on Delta] E y2.
- the adder 93d updates the E 3 based on Delta] E y3.
- the adder 93e updates the E 4 based on Delta] E y4.
- the adder 93f updates the E 5 based on Delta] E y5.
- the adder 93g updates the E 6 based on Delta] E y6.
- the adder 93h updates the E 7 based on Delta] E y7.
- the optimization device 26 selects one of the bits based on the signal indicating whether or not inversion is possible, which is output from each LFE belonging to a certain LFB (group), and outputs a signal indicating the selected bit. Is output to the scale coupling circuit 91 for each LFB.
- the scale coupling circuit 91 combines one or more LFBs according to the change in the number of spin bits, and selects a bit to be inverted based on a signal indicating a bit selected by the random selector corresponding to each of the one or more LFBs. I do.
- the scale coupling circuit 91 outputs a signal indicating a bit to be inverted to each LFE belonging to the one or more LFBs.
- the mode setting register 92 individually sets the scale for the mode selection circuits 91e1,..., 91e8. However, in a mode of a certain scale, a common scale is set in the mode selection circuit corresponding to the LFB used in combination.
- the mode setting register 92 sets the number of spin bits of the first spin bit string corresponding to the first combination of LFB and the number of spin bits of the second spin bit string corresponding to the second combination of LFB to the same bit. It may be set to a number or a different number of bits.
- the mode setting register of each LFB including the mode setting register 75 stores the number of bits of the weight coefficient for the LFE belonging to the first combination of LFB and the number of bits of the weight coefficient for the LFE belonging to the second combination of LFB. The same number of bits or a different number of bits may be set.
- a selection signal for selecting the mode of 2k bits is supplied from the mode setting register 92 to the mode selection circuits 91e1 and 91e2.
- the optimization device 26 can execute the same problem as the operation by the LFBs 70a and 70b or another problem in parallel using the remaining six LFBs by setting the mode setting register 92.
- the scale coupling circuit 91 may realize six 1k-bit scale modes in each of the six LFBs with respect to the remaining six LFBs. Further, the scale coupling circuit 91 may realize three 2k-bit modes by combining two of the six LFBs.
- the scale coupling circuit 91 may realize a mode of a scale of 2 k bits by a combination of two LFBs out of the six LFBs, and may realize a mode of a scale of 4 k bits by a combination of the other four LFBs.
- the mode combinations realized in parallel are not limited to the above-mentioned combinations. For example, eight combinations of 1 k-bit mode, four combinations of 2 k-bit mode, four combinations of 1 k-bit mode and 2 k-bit of scale Various combinations such as a combination of two modes are possible.
- the scale coupling circuit 91 receives the setting of the number of spin bits for each of the plurality of spin bit strings by the mode setting register 92, and combines the number of LFBs (group Number) and combine LFB. Thereby, a plurality of Ising models can be realized on one optimization device 26.
- a common energy is stored in the set of E storage registers corresponding to the set of LFBs used in combination.
- E 0 and E 1 stored in the E storage registers 94a and 94b have the same value.
- the control unit 25a when reading the energy value for the set of the LFBs 70a and 70b, the control unit 25a reads the energy value stored in one of the E storage registers 94a and 94b (for example, the E storage register 94a corresponding to the LFB 70a). You just have to read it.
- the control unit 25a similarly reads the energy value for other combinations of LFB.
- control unit 25a accepts an input from the CPU 21 of an initial value and an operating condition for each of the problems calculated in parallel as step S10 in FIG. Then, in step S11, the control unit 25a sets the scale / accuracy corresponding to each problem in the LFB mode setting register and the mode setting register 92 for each LFB group used for one problem.
- the control unit 25a sets 2k bits / 64 bits of precision in the mode setting registers of the LFBs 70a and 70b, and sets the mode selection circuits 91e1 and 91e2 to output to the 2k bits of the scale. Set in register 92. Further, regarding the second problem, the control unit 25a sets 2k bits / 64 bits of precision in the mode setting registers of the LFBs 70c and 70d, and sets the mode selection circuits 91e3 and 91e4 so as to output to the 2k bits of the scale. Set in register 92.
- the optimization device 26 can calculate two problems (or both problems may be the same problem) in parallel.
- the control unit 25a controls each LFB so as to perform the procedure of the flowchart shown in FIG. 16 for the combination of LFBs corresponding to each problem.
- the control unit 25a individually receives, for each problem, initial values of various parameters such as the temperature parameter T, weighting factors, the number of bit updates with a certain temperature parameter, the number of temperature changes, and the like.
- the data is input to each LFB belonging to the combination of the LFBs for performing the calculation, and the calculation is executed in parallel by each combination of the LFBs.
- the control unit 25a After completion of the calculation, the control unit 25a reads a spin bit sequence for the first problem from each LFE of the LFBs 70a and 70b, and determines the spin bit sequence as a solution to the first problem. After the calculation, the control unit 25a reads a spin bit string for the second problem from each LFE of the LFBs 70c and 70d, and determines the spin bit sequence as a solution to the second problem. Similarly, three or more problems can be calculated in parallel. As a result, calculations for a plurality of problems can be executed efficiently.
- the control unit 25a may speed up the operation by a method called a replica exchange method, for example.
- a replica exchange method a spin bit string is updated with a different temperature parameter in each set of LFBs (each replica), and after a predetermined number of updates, the temperature parameters are exchanged between LFB sets with a predetermined probability (that is, between replicas). To speed up the search for a solution.
- control unit 25a can reduce the number of repetitions and speed up the operation by solving the same problem in parallel using a plurality of sets of LFBs.
- optimization problems that can be calculated using the optimization devices 25 and 26 illustrated in the second and third embodiments may be problems in various fields.
- the scale of the required problem and the accuracy of the expression of the problem may change depending on fields such as learning and business type.
- FIG. 21 is a diagram illustrating an example of a required range of scale / accuracy for each problem.
- the horizontal axis represents the scale ratio (the degree indicating the magnitude of the scale), and the vertical axis represents the accuracy ratio (the degree indicating the magnitude of the accuracy).
- the scale ratio is a ratio of a scale value (the number of spin bits) actually required to a scale reference value serving as a scale reference.
- the precision ratio is a ratio of the precision value (the number of bits of the coupling coefficient) actually required to the precision reference value serving as the precision reference.
- a region 401 indicates a range of the scale ratio / accuracy ratio required for the problem in the power field.
- An area 402 indicates a range of a scale ratio / accuracy ratio required for a problem in the financial field.
- An area 403 indicates a range of a scale ratio / accuracy ratio required for a problem in the life science field.
- a relatively high accuracy ratio is often required in the power field.
- the scale ratio may be relatively small, but a relatively high accuracy ratio may be required.
- the accuracy ratio may be relatively low, but a relatively large scale ratio may be required.
- the scale ratio / accuracy ratio required in each field illustrated here is merely an example, and the range of the required scale ratio / accuracy ratio may change in accordance with problems to be dealt with in each field in the future.
- the modes of various scales / accuracy can be realized by the one-chip optimizing devices 25 and 26, so that it is possible to cope with a combination optimization problem in various fields. become.
- FIG. 22 is a diagram illustrating an example of a selectable range of the scale accuracy.
- a graph 500 shows an example of a selectable range of scale accuracy that can be realized by the optimization devices 25 and 26.
- the upper limit of the capacity reserved for storing the weight coefficient in the SRAM for each LFE is 128 kbits
- the optimization devices 25 and 26 can realize, for example, five types of modes.
- other scale / accuracy modes may be available within the range indicated by the hatched area in the graph 500.
- FIG. 23 is a diagram illustrating an example of an LFE usage pattern.
- FIG. 23A shows an example (No. 1) of use patterns of n LFEs that can be realized in the second and third embodiments.
- the optimization device 26 implements the first Ising model X using an LFE group 710 including ⁇ LFEs (that is, a first combination of LFBs) among the n LFEs. Further, the optimization device 26 does not use the LFE group 720 including the remaining ⁇ LFEs. Similarly, the optimizing device 25 may realize the first Ising model X by the LFE group 710, and may not use the LFE group 720.
- FIG. 23B shows an example (No. 2) of use patterns of n LFEs that can be realized in the third embodiment.
- the optimization device 26 realizes the first Ising model X by using the LFE group 710 including ⁇ LFEs (that is, the first combination of LFBs) among the n LFEs.
- the optimization device 26 realizes the first Ising model X by using the LFE group 730 including ⁇ LFEs (that is, the second combination of LFBs) among the remaining LFEs.
- FIG. 23C shows an example (No. 3) of use patterns of n LFEs that can be realized in the third embodiment.
- FIG. 24 is a diagram illustrating an example of a usage flow of the optimization device.
- the CPU 21 receives data 601 indicating a problem that the user wants to solve from the client 30 via the NIC 24.
- the client 30 and the NIC 24 realize an input unit for inputting various data to the information processing device 20 and a notification unit for notifying a user of a solution obtained as a result of the ground state search as result information that is easy to grasp for the user.
- the CPU 21 converts the data 601 into a problem of searching for the ground state of the Ising model by the function of the library 21a.
- the CPU 21 outputs the scale data 611 indicating the scale of the problem (the number of spin bits), the accuracy data 612 indicating the accuracy of the expression of the problem, the energy data 613 indicating the initial value of the energy, and the scale accuracy mode corresponding to the scale / accuracy.
- the scale data 611 may be binary data indicating a spin bit string.
- the precision data 612 may include a weight coefficient between spin bits represented by the corresponding precision.
- the CPU 21 determines an appropriate scale accuracy mode from the problem and generates scale accuracy mode data 614.
- the CPU 21 inputs the scale data 611, the accuracy data 612, and the energy data 613 to the control unit 25a as initial values.
- the CPU 21 receives an input of the user-specified operation condition 602.
- the user-specified operating condition 602 includes, for example, the number of state updates for a certain temperature parameter, the number of updates of the temperature parameter, the decrease in the temperature parameter, and the initial value of the temperature parameter. Further, the user-specified operation condition 602 may include the number of LFBs to be combined.
- the CPU 21 includes the number of LFBs to be combined in the scale accuracy mode data 614.
- the CPU 21 inputs the scale accuracy mode data 614 and the user-specified operating condition 602 to the control unit 25a as operating conditions.
- the scale accuracy mode data 614 is set in the mode setting register 92 and the mode setting register 92 of each LFE including the mode setting register 75.
- the CPU 21 Upon completion of steps S102 and S103, the CPU 21 instructs the control unit 25a to start execution of an operation for searching for a ground state.
- the CPU 21 acquires the calculation result 615 from the optimization device 26 and converts it into result information (for example, information on a result display screen) that is easy for the user to grasp.
- the CPU 21 transmits the converted result information to the client 30 as a solution 616 of the problem that the user wants to solve.
- the CPU 21 determines the number of spin bits and the number of bits of the weight coefficient according to the problem input by the user.
- the control unit 25a receives, from the CPU 21, information indicating the number of spin bits, the number of bits of the weight coefficient, and the weight coefficient.
- the control unit 25a sets the number of spin bits and the number of bits of the weight coefficient in the mode setting register 55 (or the mode setting registers 75 and 92).
- the control unit 25a stores the number of LFEs corresponding to the number of spin bits in each SRAM.
- the user can execute the calculations by the optimization devices 25 and 26 with the scale / accuracy according to the problem he / she wants to solve.
- the optimization device 26 can calculate the same problem by the same user or different problems in parallel. Further, the optimization device 26 can calculate different problems of different users in parallel. That is, by enabling calculation with an appropriate scale / accuracy according to the problem to be solved, it is possible to calculate other problems in parallel using the free LFB (or free LFE).
- the optimization devices 25 and 26 of one chip can be shared by a plurality of users. Further, the optimization devices 25 and 26 of one chip can be shared for a plurality of problems.
- an optimization device (or optimization system) having the functions exemplified above can be considered.
- the optimization device (or the optimization system) includes an input unit, a conversion unit, a control unit, and a display unit.
- the input unit inputs the problem to be solved and the operating conditions.
- the input unit may be, for example, an input device such as a mouse or a keyboard, or may be realized by an NIC (for example, the NIC 24) and a client terminal (for example, the client 30).
- the conversion unit converts the input problem into a search problem for the ground state of the Ising model, scale information indicating the scale of the search problem, accuracy information indicating the accuracy of expression of the search problem, and an initial value of the energy of the search problem. Is generated, and scale accuracy mode information corresponding to scale and accuracy is generated.
- the conversion unit may be, for example, a processor such as a CPU (for example, CPU 21) that performs the functions of the library 21a and the driver 21b.
- the conversion unit may be realized by a semiconductor integrated circuit such as an FPGA.
- the control unit inputs the scale information, the accuracy information, and the energy information (or the initial value of the spin bit string, the initial value of the coupling coefficient, and the initial value of the energy according to the scale information, the accuracy information, and the energy information), and the operating condition.
- the scale accuracy mode information is input, an operation for searching for a ground state is executed, and a solution is output.
- the control unit for example, for the LFB 50 (or LFB 70a,..., 70h), the scale information, the accuracy information, and the energy information (or the initial value of the spin bit string corresponding to the scale information, the accuracy information, and the energy information
- the control unit 25a may be configured to input an operating condition and scale accuracy mode information while inputting an initial value of a coupling coefficient and an energy, execute an operation for searching for a ground state using an LFB, and output a solution.
- the control unit may be, for example, a semiconductor chip including the control unit 25a and the LFB 50 (or the LFB 70a,..., 70h), and may be a semiconductor chip that searches for the ground state of the Ising model.
- the control unit performs the scale information, the accuracy information, and the energy information (or a spin bit string of the number of bits according to the scale information, the coupling coefficient of the number of bits according to the accuracy information, and the initial value of the energy according to the energy information.
- a semiconductor chip that outputs a solution by executing an operation for searching for the ground state of the Ising model based on the operating conditions and the scale accuracy mode information.
- the scale information may be represented by a scale ratio to a scale reference value serving as a scale reference.
- the accuracy information may be represented by an accuracy ratio with respect to an accuracy reference value serving as a reference for accuracy.
- the display unit displays the solution obtained as a result of the search for the ground state by the control unit.
- the display unit may be a display, or may be realized by an NIC and a client terminal.
- the conversion unit converts a solution obtained as a result of the ground state search into visualized display information.
- the display unit displays the visualized display information.
- the scale / accuracy can be made variable by the exemplified optimization device.
- the user can execute the calculation by the optimization device with the scale / accuracy according to the problem to be solved.
- the control of the optimization device 1 according to the first embodiment may be realized by a processor of a computer that controls the optimization device 1 executing a program.
- the program is stored in a RAM included in the computer.
- Control of the optimization devices 25 and 26 of the second and third embodiments may be realized by causing the CPU 21 to execute a program.
- the program can be recorded on a computer-readable recording medium 41.
- the program can be distributed.
- the program may be stored in another computer, and the program may be distributed via a network.
- the computer stores (installs) the program recorded on the recording medium 41 or the program received from another computer in the DRAM 22 or the storage device 23 and reads and executes the program from the DRAM 22 or the storage device 23. Good.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Geometry (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Nonlinear Science (AREA)
- Computational Linguistics (AREA)
- Medical Informatics (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Complex Calculations (AREA)
Abstract
Description
また、1つの態様では、最適化装置の制御プログラムが提供される。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
[第1の実施の形態]
第1の実施の形態を説明する。
最適化装置1は、計算対象の問題を変換したイジングモデルに含まれる複数のスピンに対応する複数のビット(スピンビット)のそれぞれの値の組合せ(状態)のうち、エネルギー関数が最小値となるときの各ビットの値(基底状態)を探索する。
また、変数xiの値が変化して1-xiとなると、変数xiの増加分は、Δxi=(1-xi)-xi=1-2xiと表せる。したがって、スピン反転(値の変化)に伴うエネルギー変化ΔEiは、以下の式(2)で表される。
最適化装置1は、例えば、1チップの半導体集積回路であり、FPGA(Field Programmable Gate Array)などを用いて実現される。最適化装置1は、ビット演算回路1a1,…,1aK,…,1aN(複数のビット演算回路)、選択回路部2、閾値生成部3、乱数生成部4、設定変更部5および制御部6を有する。ここで、Nは、最適化装置1が備えるビット演算回路の総数である。Nは、K以上の整数である。ビット演算回路1a1,…,1aK,…,1aNの各々には、識別情報(index=0,…,K-1,…,N-1)が対応付けられている。
設定変更部5は、ビット演算回路1a1,…,1aK,…,1aNのうち、計算対象のイジングモデルの状態を表すビット列(スピンビット列)の第1のビット数(スピンビット数)の変更を行う。また、設定変更部5は、第1のビット数のビット演算回路の各々に対する、重み係数の第2のビット数の変更を行う。
記憶部11は、例えば、レジスタやSRAM(Static Random Access Memory)などである。記憶部11は、スピンビット列のうちのビット間の相互作用の大きさを示す係数を記憶する。より具体的には、記憶部11は、自ビット(ここでは、index=0のビット)と他ビットとの間の重み係数を記憶する。ここで、スピンビット数(第1のビット数)Kに対して、重み係数の総数はK2である。記憶部11には、index=0のビットに対して、K個の重み係数W00,W01,…,W0,K-1が記憶される。ここで、重み係数は第2のビット数Lで表される。したがって、記憶部11では重み係数を格納するために、K×Lビットが所要される。なお、記憶部11は、ビット演算回路1a1の外部であって、最適化装置1の内部に設けられてもよい(他のビット演算回路の記憶部も同様)。
エネルギー変化計算部15は、記憶部11から読み出した重み係数を用いたイジングモデルのエネルギー変化値ΔE0を計算し、状態遷移判定部16に出力する。具体的には、エネルギー変化計算部15は、反転ビットの値(今回の反転前の値)を選択回路部2から受け付け、反転ビットが、1から0、または、0から1のどちらに反転するかに応じて、式(4)により、Δh0を計算する。そして、エネルギー変化計算部15は、前回のh0にΔh0を加算することで、h0を更新する。エネルギー変化計算部15は、h0を保持するレジスタを有し、当該レジスタにより更新後のh0を保持する。
式(5)で表される許容確率p(ΔE,T)を用いた場合、ある温度における状態遷移の十分な反復後に定常状態に達したとすると、当該状態はボルツマン分布に従って生成される。すなわち、各状態の占有確率は熱力学における熱平衡状態に対するボルツマン分布に従う。よって、ある温度でボルツマン分布に従った状態を生成し、その後、当該温度よりも低い温度でボルツマン分布に従った状態を生成し、というように徐々に温度を下げていくことで、各温度におけるボルツマン分布に従った状態を追えることになる。そして、温度0としたときに、温度0でのボルツマン分布により最低エネルギーの状態(基底状態)が高確率で実現される。この様子が材料を焼き鈍したときの状態変化とよく似ているため、この方法はシミュレーテッド・アニーリングと呼ばれる。このとき、エネルギーが上がる状態遷移が確率的に起こることは、物理学における熱励起に相当する。
[第2の実施の形態]
次に、第2の実施の形態を説明する。
第2の実施の形態の情報処理システムは、情報処理装置20とクライアント30とを有する。情報処理装置20およびクライアント30は、ネットワーク40に接続されている。ネットワーク40は、例えば、LAN(Local Area Network)でもよいし、WAN(Wide Area Network)やインターネットなどでもよい。
クライアント30は、ユーザにより使用されるクライアントコンピュータであり、ユーザが解くべき問題の、情報処理装置20への入力に用いられる。
情報処理装置20は、CPU(Central Processing Unit)21、DRAM(Dynamic Random Access Memory)22、記憶装置23、NIC(Network Interface Card)24、最適化装置25および媒体リーダ28を有する。
記憶装置23は、情報処理装置20の補助記憶装置であり、CPU21により実行されるプログラムや最適化装置25に設定されるデータなどを記憶する。記憶装置23は、例えば、SSD(Solid State Drive)やHDD(Hard Disk Drive)などである。
図4は、情報処理システムにおけるハードウェアの関係の例を示す図である。
制御部25aは、ドライバ21bから受け付けたLFB50の動作条件を記憶するRAMを有し、当該動作条件に基づいてLFB50による演算を制御する。また、制御部25aは、LFB50が備える各種のレジスタへの初期値の設定、SRAMへの重み係数の格納、および、演算終了後のスピンビット列(探索結果)の読み出しなどを行う。制御部25aは、例えば、FPGAにおける回路などによって実現される。
制御部25aは、CPU入出力部25a1、制御レジスタ25a2、LFB送信部25a3およびLFB受信部25a4を有する。
LFB受信部25a4は、LFB50からデータ(演算結果などのデータ)を受信し、制御レジスタ25a2に格納する。
組合せ最適化問題の一例として、巡回セールスマン問題を考える。ここでは、簡単のため、A都市,B都市,C都市,D都市,E都市の5つの都市を、最少コスト(距離や料金など)で回る経路を求めるとする。グラフ201は、都市をノード、都市間の移動をエッジとした1つの経路を示す。この経路は、例えば、行を回る順番、列を都市に対応付けた行列202で表される。行列202は、行の小さい順に、ビット「1」が設定された都市を回ることを示す。更に、行列202は、スピンビット列に相当するバイナリ値203に変換できる。行列202の例では、バイナリ値203は、5×5=25ビットとなる。バイナリ値203(スピンビット列)のビット数は、巡回対象の都市が増すほど増加する。すなわち、組合せ最適化問題の規模が大きくなれば、より多くのスピンビットが所要され、スピンビット列のビット数(規模)が大きくなる。
図7は、最少エネルギーとなるバイナリ値の探索例を示す図である。
まず、バイナリ値221のうちの1ビットを反転させる前(スピン反転前)のエネルギーをEinitとする。
図8は、最適化装置の回路構成例を示す図である。
最適化装置25(あるいは、最適化装置25のLFB50)は、LFE51a1,51a2,…,51an、ランダムセレクタ部52、閾値生成部53、乱数生成部54、モード設定レジスタ55、加算器56およびE格納レジスタ57を有する。
h格納レジスタ64a1は、図示しないクロック信号に同期して、加算器63a1が出力する値(ローカルフィールドh0)を取り込む。h格納レジスタ64a1は、例えば、フリップフロップである。なお、h格納レジスタ64a1に格納されるローカルフィールドh0の初期値は、バイアス係数b0である。当該初期値は、制御部25aにより設定される。
ここで、ランダムセレクタ部52は、あるイジングモデルにおけるスピンビット数(すなわち、使用するLFEの数)の設定を、モード設定レジスタ55から受け付ける。例えば、ランダムセレクタ部52は、indexの小さい方から順に、設定されたスピンビット数に相当する数のLFEを使用して、解の探索が行われるようにする。例えば、ランダムセレクタ部52は、n個のLFEのうち、K個のLFEを用いる場合、LFE51a1,…,LFE51aKのLFEに対応するスピンビット列から反転ビットを選択する。このとき、ランダムセレクタ部52は、例えば、使用しないn-K個のLFE51a(K-1),…,51anの各々から出力されるフラグFを、強制的に0に設定することが考えられる。
モード設定レジスタ55は、LFE51a1,51a2,…,51anが備える精度切替回路61a1,61a2,61anに対して、重み係数のビット数(すなわち、精度)を示す信号を供給する。また、モード設定レジスタ55は、ランダムセレクタ部52に対して、スピンビット数(すなわち、規模)を示す信号を供給する。モード設定レジスタ55に対するスピンビット数や重み係数のビット数の設定は、制御部25aにより行われる。モード設定レジスタ55は、第1の実施の形態の設定変更部5の一例である。
図9は、ランダムセレクタ部の回路構成例を示す図である。
フラグ制御部52aは、モード設定レジスタ55のスピンビット数の設定に応じて、初段の選択回路52a1,52a2,52a3,52a4,…,52aqの各々に入力されるフラグの値を制御する。図9では、選択回路52aqの1つの入力(LFE51anの出力に相当)に対するフラグの値を制御する部分回路52xnが例示されている。部分回路52xnのフラグ設定部52ynは、使用しないLFE51anから出力されるフラグFnを強制的に0に設定するスイッチである。
前述したように、組合せ最適化問題の一例として、巡回セールスマン問題が挙げられる。巡回セールスマン問題は、巡回する都市数が多く、巡回条件(移動時間、移動距離、移動費等)が少なければ、低精度の問題となり、巡回条件が多い場合は高精度が必要となる。他にも、比較的低精度となる最適化問題として、エイトクイーン問題や四色問題といった、条件がある程度定まっている問題が挙げられる。一方、ポートフォリオ最適化問題は、金額や期間など条件が多くあるため、高精度が求められる。
前述の第1のモード(規模1kビット/精度128ビット)を用いる場合、重み係数Wは式(11)で表される。
前述の第2のモード(規模2kビット/精度64ビット)を用いる場合、重み係数Wは式(12)で表される。
前述の第3のモード(規模4kビット/精度32ビット)を用いる場合、重み係数Wは式(13)で表される。
前述の第4のモード(規模8kビット/精度16ビット)を用いる場合、重み係数Wは式(14)で表される。
図15は、初期化処理の例を示すフローチャートである。
ここで、図16の説明では、index=iに対応するLFEをLFE51ax(1番目のLFEはLFE51a1であり、n番目のLFEは51anである)と表記する。LFE51axに含まれる各部についても、例えば、SRAM60axのように、符号の末尾に「x」を付して表記する。LFE51a1,…,LFE51anの各々による演算は並列に実行される。
(S23)判定部68axは、非反転信号(Fi=0)をランダムセレクタ部52に出力する。そして、ステップS24に処理が進む。
データ5d1,5d2,…,5dnは、前述の第5のモード(規模4kビット/精度64ビット)を用いる場合のSRAM60a1,60a2,…,60anに対する重み係数の格納例を示す。ここで、n=8192である。データ5d1,5d2,…,5dnは、各々、SRAM60a1,60a2,…,60anに格納される。このモードでは、スピンビット列として、LFEは4k個(=4096個)使用され、重み係数の格納のみの用途として、更に4k個(=4096個)のLFEが使用される。
次に、第3の実施の形態を説明する。前述の第2の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。
ここで、第3の実施の形態の情報処理システムの装置構成および情報処理装置20のハードウェア構成は、図2,図3と同様であるため、説明を省略する。第3の実施の形態の最適化装置は、第2の実施の形態の最適化装置25と回路構成の一部が異なる。
最適化装置26は、例えば、1チップの半導体集積回路であり、FPGAなどにより実現される。最適化装置26は、第1の実施の形態の最適化装置1の一例である。最適化装置26は、複数のLFBを有する。最適化装置26は、当該複数のLFBを制御する制御部25aを有する(図示を省略している)。
モード設定レジスタ92は、規模結合回路91に対する動作モードの設定を行う。モード設定レジスタ92は、モード設定レジスタ75によりLFE71a1,…,71amおよびランダムセレクタ部72に設定される動作モードと同じ動作モードを規模結合回路91に設定する。モード設定レジスタ75,92によるモード設定の詳細は後述される。LFB70a,…,70hの各々が有するモード設定レジスタ(モード設定レジスタ75を含む)およびモード設定レジスタ92は、第1の実施の形態の設定変更部5の一例である。
次に、LFB70aの回路構成例を説明する。LFB70b,…,70hもLFB70aと同様の回路構成である。
LFE71a1,71a2,…,71amの各々は、スピンビットの1ビットとして用いられる。mは、2以上の整数であり、LFB70aが備えるLFEの数を示す。図19では、一例として、m=1024としている。ただし、mは他の値でもよい。
規模結合回路91は、複数段にわたってツリー状に接続された選択回路91a1,91a2,91a3,91a4,91b1,91b2,91c1と、乱数生成部91dと、モード選択回路91e1,91e2,91e3,91e4,91e5,91e6,91e7,91e8を有する。
モード選択回路91e1,…,91e8の各々は、モード設定レジスタ92による規模(スピンビット数)の設定を受け付ける。ただし、図20では、モード設定レジスタ92からモード選択回路91e2,…,91e8の各々に対する信号線を「…」の表記により略記している。モード選択回路91e1,…,91e8の各々は、設定された規模に応じた入力端子に入力された状態信号を選択して、(xj,Fj,index=j)をLFB70a,…,70hへ出力し、ΔEjを加算器93a,…,93hへ出力する。
グラフ400は、横軸を規模比(規模の大きさを示す度合い)、縦軸を精度比(精度の大きさを示す度合い)とし、3種類の分野の問題に対して求められる規模精度の範囲を例示している。規模比は、規模の基準となる規模基準値に対して実際に所要される規模値(スピンビット数)の比である。精度比は、精度の基準となる精度基準値に対して実際に所要される精度値(結合係数のビット数)の比である。
そこで、第2,第3の実施の形態では、1チップの最適化装置25,26によって、種々の規模/精度のモードを実現可能とすることで、種々の分野の組合せ最適化問題に対応可能になる。
グラフ500は、最適化装置25,26により実現可能な規模精度の選択可能範囲の例を示す。ここで、LFE毎のSRAMにおいて重み係数の格納のために確保される容量の上限が128kビットであり、最適化装置25,26の各々の全体におけるLFEの数n=8192であるとする。上記で説明したように、最適化装置25,26は、例えば、5種類のモードを実現可能である。ただし、グラフ500のハッチングされた領域で示される範囲内において、他の規模/精度のモードを利用可能としてもよい。LFE毎のSRAMの容量を増やすことで、更に大きな規模/精度のモードも実現可能である。
図23は、LFEの使用パターンの例を示す図である。
図24は、最適化装置の利用フローの例を示す図である。
(S103)CPU21は、ユーザ指定動作条件602の入力を受け付ける。ユーザ指定動作条件602は、例えば、ある温度パラメータにおける状態更新の回数、温度パラメータの更新回数、温度パラメータの下げ幅および温度パラメータの初期値などを含む。また、ユーザ指定動作条件602は、組み合せるLFBの数を含んでもよい。CPU21は、当該組み合せるLFBの数を、規模精度モードデータ614に含める。CPU21は、規模精度モードデータ614およびユーザ指定動作条件602を、動作条件として制御部25aに入力する。規模精度モードデータ614は、モード設定レジスタ75を含む各LFEのモード設定レジスタおよびモード設定レジスタ92に設定される。
(S105)CPU21は、最適化装置26による演算が完了すると、最適化装置26から演算結果615を取得し、ユーザにとって把握し易い結果情報(例えば、結果表示画面の情報)に変換する。CPU21は、変換後の結果情報を、ユーザが解きたい問題の解616として、クライアント30に送信する。
なお、第1の実施の形態の最適化装置1の制御は、最適化装置1を制御するコンピュータが備えるプロセッサがプログラムを実行することで実現されてもよい。例えば、プログラムは当該コンピュータが備えるRAMに格納される。第2,第3の実施の形態の最適化装置25,26の制御は、CPU21にプログラムを実行させることで実現されてもよい。プログラムは、コンピュータ読み取り可能な記録媒体41に記録できる。
1a1,…,1aK,…,1aN ビット演算回路
2 選択回路部
3 閾値生成部
4 乱数生成部
5 設定変更部
6 制御部
11 記憶部
12 精度切替回路
13 反転判定部
14 ビット保持部
15 エネルギー変化計算部
16 状態遷移判定部
Claims (18)
- イジングモデルの状態を表すビット列のうちのビット間の相互作用の大きさを示す係数を記憶する記憶部と、
前記ビット列のうちの何れかのビットが反転されると、前記記憶部から読み出した反転された前記ビットと自ビットとに対応する係数を用いた前記イジングモデルのエネルギー変化の計算に応じて、前記自ビットの反転可否を示す信号を出力する複数のビット演算回路と、
前記複数のビット演算回路のうち前記ビット列の第1のビット数のビット演算回路の各々から出力された反転可否を示す信号に基づいて選択した前記ビット列のうち反転させるビットを示す信号を、前記第1のビット数のビット演算回路の各々に出力する選択回路部と、
前記選択回路部に対する前記第1のビット数の変更、および、前記第1のビット数のビット演算回路の各々に対する前記係数の第2のビット数の変更を行う設定変更部と、
を有する最適化装置。 - 前記複数のビット演算回路の各々は、前記設定変更部による前記第2のビット数の変更に応じて、前記記憶部から読み出す係数の第2のビット数を変更する精度切替回路を有する、
請求項1記載の最適化装置。 - 前記記憶部は、前記複数のビット演算回路の各々に設けられており、
前記精度切替回路は、前記設定変更部による前記第2のビット数の変更に応じて、前記自ビットと他ビットとに関する係数のうちの一部を、前記複数のビット演算回路のうち、前記ビット列に使用されない他のビット演算回路が有する前記記憶部から読み出す、
請求項2記載の最適化装置。 - 前記複数のビット演算回路は、複数のグループに分けられており、
前記選択回路部は、前記設定変更部による前記第1のビット数の変更に応じて、前記複数のビット演算回路のうち、前記第1のビット数のビット演算回路を含むように、1以上のグループを組合せる規模結合回路を有する、
請求項1記載の最適化装置。 - 前記選択回路部は、1つのグループに属する各ビット演算回路から出力された前記反転可否を示す信号に基づいて選択したビットを示す信号を、前記規模結合回路に出力するセレクタ部を、前記複数のグループの各々に対して有し、
前記規模結合回路は、前記1以上のグループの各々に対応する前記セレクタ部により選択された前記ビットを示す信号に基づいて選択した反転させる前記ビットを示す信号を、前記1以上のグループに属する各ビット演算回路に出力する、
請求項4記載の最適化装置。 - 前記規模結合回路は、前記設定変更部による複数の前記ビット列の各々に対する前記第1のビット数の設定を受け付け、複数の前記ビット列の各々に対して、前記1以上のグループを組合せる、
請求項4記載の最適化装置。 - グループの複数の組合せのうち、第1の組合せによる前記イジングモデルに対する演算と、第2の組合せによる前記イジングモデルまたは他のイジングモデルに対する演算とを並列に実行させる制御部、
を更に有する請求項6記載の最適化装置。 - 前記設定変更部は、グループの複数の組合せのうち、第1の組合せに対応する第1のビット列の前記第1のビット数と第2の組合せに対応する第2のビット列の前記第1のビット数とを、同じビット数、または、異なるビット数に設定する、
請求項6記載の最適化装置。 - 前記設定変更部は、グループの複数の組合せのうち、第1の組合せに属するビット演算回路に対する前記第2のビット数と第2の組合せに属するビット演算回路に対する前記第2のビット数とを、同じビット数、または、異なるビット数に設定する、
請求項6記載の最適化装置。 - 前記選択回路部は、前記複数のビット演算回路のうち、前記第1のビット数のビット演算回路以外の他のビット演算回路により出力された反転可否を示す信号を、強制的に反転不可に設定し、前記第1のビット数のビット演算回路により出力された反転可否を示す信号および前記他のビット演算回路に対して設定した反転不可を示す信号に基づいて選択した反転させる前記ビットを示す信号を、前記第1のビット数のビット演算回路だけでなく前記他のビット演算回路にも出力する、
請求項1記載の最適化装置。 - 入力された問題に応じて前記第1のビット数と前記第2のビット数とを決定する演算部による、前記第1のビット数と前記第2のビット数とを示す情報の入力を受け付け、前記第1のビット数と前記第2のビット数とを前記設定変更部に入力する制御部、
を更に有する請求項1記載の最適化装置。 - 最適化装置の制御方法において、
前記最適化装置が有する複数のビット演算回路が、イジングモデルの状態を表すビット列のうちの何れかのビットが反転されると、前記ビット列のうちの自ビットと他ビットとの相互作用の大きさを示す係数を記憶する記憶部から読み出した、反転された前記ビットに対応する係数を用いた前記イジングモデルのエネルギー変化の計算に応じて前記自ビットの反転可否を示す信号を出力し、
前記最適化装置が有する選択回路部が、前記複数のビット演算回路のうち前記ビット列の第1のビット数のビット演算回路の各々から出力された反転可否を示す信号に基づいて選択した前記ビット列のうち反転させるビットを示す信号を、前記第1のビット数のビット演算回路の各々に出力し、
前記最適化装置が有する設定変更部が、前記選択回路部に対する前記第1のビット数の変更、および、前記第1のビット数のビット演算回路の各々に対する前記係数の第2のビット数の変更を行う、
最適化装置の制御方法。 - 最適化装置の制御プログラムにおいて、
前記最適化装置が有する複数のビット演算回路に、イジングモデルの状態を表すビット列のうちの何れかのビットが反転されると、前記ビット列のうちの自ビットと他ビットとの相互作用の大きさを示す係数を記憶する記憶部から読み出した、反転された前記ビットに対応する係数を用いた前記イジングモデルのエネルギー変化の計算に応じて前記自ビットの反転可否を示す信号を出力させ、
前記最適化装置が有する選択回路部に、前記複数のビット演算回路のうち前記ビット列の第1のビット数のビット演算回路の各々から出力された反転可否を示す信号に基づいて選択した前記ビット列のうち反転させるビットを示す信号を、前記第1のビット数のビット演算回路の各々に出力させ、
前記最適化装置が有する設定変更部に、前記選択回路部に対する前記第1のビット数の変更、および、前記第1のビット数のビット演算回路の各々に対する前記係数の第2のビット数の変更を行わせる、
最適化装置の制御プログラム。 - 解くべき問題と動作条件とを入力する入力部と、
入力した前記問題をイジングモデルの基底状態の探索問題に変換するとともに、前記探索問題の規模を示す規模情報と、前記探索問題の表現の精度を表す精度情報と、前記探索問題のエネルギーの初期値を表すエネルギー情報と、規模および精度に応じた規模精度モード情報とを生成する変換部と、
前記規模情報と、前記精度情報と、前記エネルギー情報を入力するとともに前記動作条件と前記規模精度モード情報とを入力し、基底状態の探索を行う演算を実行して解を出力する制御部と、
前記制御部による基底状態の探索の結果として得られた解を表示する表示部と、
を有する最適化装置。 - 前記変換部は、前記基底状態の探索の結果として得られた解を、可視化した表示情報に変換し、
前記表示部は、前記可視化した表示情報を表示する請求項14の最適化装置。 - 前記規模情報は、規模の基準となる規模基準値に対する規模比により表され、
前記精度情報は、精度の基準となる精度基準値に対する精度比により表される、
請求項14又は15に記載の最適化装置。 - 最適化装置の制御方法において、
前記最適化装置が有する入力部が、解くべき問題と動作条件とを入力し、
前記最適化装置が有する変換部が、入力した前記問題をイジングモデルの基底状態の探索問題に変換するとともに、前記探索問題の規模を示す規模情報と、前記探索問題の表現の精度を表す精度情報と、前記探索問題のエネルギーの初期値を表すエネルギー情報と、規模および精度に応じた規模精度モード情報とを生成し、
前記最適化装置が有する制御部が、前記規模情報と、前記精度情報と、前記エネルギー情報を入力するとともに前記動作条件と前記規模精度モード情報とを入力し、基底状態の探索を行う演算を実行して解を出力し、
前記最適化装置が有する表示部が、前記制御部による基底状態の探索の結果として得られた解を表示する、
最適化装置の制御方法。 - 最適化装置の制御プログラムにおいて、
前記最適化装置が有する入力部から、解くべき問題と動作条件とを入力させ、
前記最適化装置が有する変換部に、入力した前記問題をイジングモデルの基底状態の探索問題に変換させるとともに、前記探索問題の規模を示す規模情報と、前記探索問題の表現の精度を表す精度情報と、前記探索問題のエネルギーの初期値を表すエネルギー情報と、規模および精度に応じた規模精度モード情報とを生成させ、
前記最適化装置が有する制御部に、前記規模情報と、前記精度情報と、前記エネルギー情報を入力するとともに前記動作条件と前記規模精度モード情報とを入力し、基底状態の探索を行う演算を実行して解を出力させ、
前記最適化装置が有する表示部に、前記制御部による基底状態の探索の結果として得られた解を表示させる、
最適化装置の制御プログラム。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020546656A JP7004937B2 (ja) | 2018-09-14 | 2018-09-14 | 最適化装置、最適化装置の制御方法および最適化装置の制御プログラム |
EP18933180.4A EP3852028A4 (en) | 2018-09-14 | 2018-09-14 | OPTIMIZATION DEVICE, CONTROL METHOD FOR OPTIMIZATION DEVICE AND CONTROL PROGRAM FOR OPTIMIZATION DEVICE |
CA3109735A CA3109735A1 (en) | 2018-09-14 | 2018-09-14 | Optimization device, optimization device control method, and optimization device control program |
PCT/JP2018/034233 WO2020054061A1 (ja) | 2018-09-14 | 2018-09-14 | 最適化装置、最適化装置の制御方法および最適化装置の制御プログラム |
US17/179,458 US11886780B2 (en) | 2018-09-14 | 2021-02-19 | Optimization device, optimization device control method, and computer-readable recording medium recording optimization device control program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2018/034233 WO2020054061A1 (ja) | 2018-09-14 | 2018-09-14 | 最適化装置、最適化装置の制御方法および最適化装置の制御プログラム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/179,458 Continuation US11886780B2 (en) | 2018-09-14 | 2021-02-19 | Optimization device, optimization device control method, and computer-readable recording medium recording optimization device control program |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020054061A1 true WO2020054061A1 (ja) | 2020-03-19 |
Family
ID=69776982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2018/034233 WO2020054061A1 (ja) | 2018-09-14 | 2018-09-14 | 最適化装置、最適化装置の制御方法および最適化装置の制御プログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US11886780B2 (ja) |
EP (1) | EP3852028A4 (ja) |
JP (1) | JP7004937B2 (ja) |
CA (1) | CA3109735A1 (ja) |
WO (1) | WO2020054061A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021157360A (ja) * | 2020-03-26 | 2021-10-07 | 富士通株式会社 | 最適化装置及び最適化方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03250244A (ja) * | 1990-01-24 | 1991-11-08 | Hitachi Ltd | 情報処理装置 |
WO2017037903A1 (ja) | 2015-09-02 | 2017-03-09 | 株式会社日立製作所 | 半導体システムおよび計算方法 |
JP2018041351A (ja) * | 2016-09-09 | 2018-03-15 | 富士通株式会社 | 情報処理装置、イジング装置及び情報処理装置の制御方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9633715B2 (en) * | 2013-05-31 | 2017-04-25 | Hitachi, Ltd. | Semiconductor device capable of attaining ground state in an ising model |
JP5864684B1 (ja) * | 2014-08-29 | 2016-02-17 | 株式会社日立製作所 | 半導体装置 |
JP5865457B1 (ja) * | 2014-08-29 | 2016-02-17 | 株式会社日立製作所 | 情報処理システム及び管理装置 |
-
2018
- 2018-09-14 CA CA3109735A patent/CA3109735A1/en active Pending
- 2018-09-14 WO PCT/JP2018/034233 patent/WO2020054061A1/ja unknown
- 2018-09-14 EP EP18933180.4A patent/EP3852028A4/en active Pending
- 2018-09-14 JP JP2020546656A patent/JP7004937B2/ja active Active
-
2021
- 2021-02-19 US US17/179,458 patent/US11886780B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03250244A (ja) * | 1990-01-24 | 1991-11-08 | Hitachi Ltd | 情報処理装置 |
WO2017037903A1 (ja) | 2015-09-02 | 2017-03-09 | 株式会社日立製作所 | 半導体システムおよび計算方法 |
JP2018041351A (ja) * | 2016-09-09 | 2018-03-15 | 富士通株式会社 | 情報処理装置、イジング装置及び情報処理装置の制御方法 |
Non-Patent Citations (1)
Title |
---|
See also references of EP3852028A4 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021157360A (ja) * | 2020-03-26 | 2021-10-07 | 富士通株式会社 | 最適化装置及び最適化方法 |
JP7410394B2 (ja) | 2020-03-26 | 2024-01-10 | 富士通株式会社 | 最適化装置及び最適化方法 |
Also Published As
Publication number | Publication date |
---|---|
US20210173978A1 (en) | 2021-06-10 |
CA3109735A1 (en) | 2020-03-19 |
EP3852028A4 (en) | 2021-10-06 |
US11886780B2 (en) | 2024-01-30 |
JPWO2020054061A1 (ja) | 2021-05-13 |
EP3852028A1 (en) | 2021-07-21 |
JP7004937B2 (ja) | 2022-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7063211B2 (ja) | 最適化問題演算プログラム、最適化問題演算方法および最適化問題演算装置 | |
CN111078621B (zh) | 优化装置及优化装置的控制方法 | |
CN111812972B (zh) | 优化装置和用于控制优化装置的方法 | |
US20200089728A1 (en) | Optimization problem arithmetic method and optimization problem arithmetic device | |
US11715003B2 (en) | Optimization system, optimization apparatus, and optimization system control method for solving optimization problems by a stochastic search | |
JP7410395B2 (ja) | 最適化装置及び最適化方法 | |
CN111077768B (zh) | 优化装置及优化装置的控制方法 | |
CN112381209A (zh) | 一种模型压缩方法、系统、终端及存储介质 | |
CN110889507A (zh) | 一种量子程序转有向无环图的方法、装置、存储介质及电子装置 | |
CN111914378B (zh) | 一种单振幅量子计算模拟方法及装置 | |
JP2019185602A (ja) | 最適化装置及び最適化装置の制御方法 | |
JP2019160169A (ja) | 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム | |
CN112149269A (zh) | 优化设备、优化设备的控制方法和记录介质 | |
JP6925546B1 (ja) | 演算システム、情報処理装置、および最適解探索処理方法 | |
US11409836B2 (en) | Optimization problem arithmetic method and optimization problem arithmetic apparatus | |
WO2020054061A1 (ja) | 最適化装置、最適化装置の制御方法および最適化装置の制御プログラム | |
WO2020054062A1 (ja) | 最適化装置および最適化装置の制御方法 | |
JP7155794B2 (ja) | 最適化問題演算プログラム、最適化問題演算方法および最適化問題演算装置 | |
Cortés-Antonio et al. | Design and implementation of differential evolution algorithm on FPGA for double-precision floating-point representation | |
Karlsen et al. | Learning versus optimal intervention in random Boolean networks | |
JP7398401B2 (ja) | 最適化方法、情報処理装置及びそれを用いたシステム | |
Song et al. | A differential evolution algorithm with local search for resource investment project scheduling problems | |
CN116644813B (zh) | 一种利用量子电路确定最优组合方案的方法及装置 | |
EP4148628A1 (en) | Data processing apparatus, data processing method, and data processing program | |
WO2022024324A1 (ja) | 情報処理方法および情報処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18933180 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2020546656 Country of ref document: JP Kind code of ref document: A |
|
ENP | Entry into the national phase |
Ref document number: 3109735 Country of ref document: CA |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2018933180 Country of ref document: EP Effective date: 20210414 |