Optimization device, optimization method, and recording medium for recording optimization program
By introducing temperature control and expected value comparison mechanisms into the Ising computing device, the spin state transition process is optimized, the problem of high computational overhead in spin state setting is solved, and the processing performance and computational speed of large-scale combinatorial optimization problems are improved.
Patent Information
- Application Number
- CN202110183715.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-04-13
- Filing Date
- 2021-02-10
- Publication Date
- 2025-09-23
- Estimated Expiration
- 2041-02-10
AI Technical Summary
Existing Ising computing devices have a problem of excessive computational overhead in the process of setting the spin state when calculating the initial state, making it difficult to improve processing performance, especially in large-scale combinatorial optimization problems, making it difficult to effectively search for the optimal solution.
By introducing a temperature control unit, an energy change calculation unit, an expected value storage unit, an expected value comparison unit and a confirmation unit, it is randomly determined whether to accept the state transition, and the spin state is optimized through expected value comparison and energy calculation. Finally, the state transition is accepted after reaching the expected value, thereby improving processing performance.
It achieves the goal of reaching the lowest energy state in a shorter time, improves the processing performance of the Ising computing device in combinatorial optimization problems, and reduces computing time and resource consumption.
Smart Images

Figure CN113537551B_ABST
Abstract
Description
Technical Field
[0001] The embodiments discussed herein relate to optimization devices, optimization methods, and optimization programs. Background Art
[0002] Our society presents numerous combinatorial optimization problems, such as those for optimizing disaster recovery processes and delivery routes. Each of these combinatorial optimization problems involves selecting the optimal combination of factors under constraints such as limited human resources and time. One method for searching for optimal solutions to combinatorial optimization problems is the Ising calculation method, which uses a Monte Carlo method known as simulated annealing. Simulated annealing is a method that randomly obtains solutions using random values.
[0003] An Ising calculation device searches for a combination of variables that minimizes the energy of an Ising model represented by a predetermined evaluation formula. In some cases, this variable is called a spin, its value is called a spin state, and a transition between spin states is called a reversal.
[0004] The Ising calculation device determines whether to invert each spin based on an inversion determination formula and searches for the lowest energy by sequentially transitioning states. By formulating each practical problem into the Ising model's energy formula and using the Ising calculation device to search for the combination of spin states that minimizes energy, various combinatorial optimization problems can be solved.
[0005] The minimum energy search method in the simulated annealing method will be briefly described. The Ising calculation device begins its search from an initial state, where each variable in the evaluation function representing the problem to be solved is substituted with either 0 or 1. The Ising calculation device selects a state close to the current state of the variable combination and considers transitioning to that state. A state close to the current state is, for example, a state in which the state of one variable has changed. Next, the Ising calculation device calculates the energy change associated with the transition to the selected state and, based on the calculated value, randomly chooses whether to accept the state transition or reject it and maintain the current state. When the acceptance probability for energy decreases is set higher than the acceptance probability for energy increase, state transitions occur in a direction that, on average, decreases in energy, and the Ising calculation device ultimately reaches an energy at or near the optimal solution. If state transitions are consistently accepted when energy decreases and rejected when energy increases, the energy change will, in general, decrease monotonically over time. However, once a local solution is reached, no further state transitions will occur, making it difficult to expect to reach the optimal solution. Therefore, randomly deciding whether to accept a state transition is important in searching for combinatorial optimization problems.
[0006] In the annealing method, by determining, for example, -(ΔE / T) The smaller value in is used as the acceptance probability of the state transition, proving that the state is optimized within the limit of an infinite number of times. Here, T is a parameter called temperature. The Ising calculation device sets T to a sufficiently high initial temperature and reduces T according to the number of iterations of the search. When a steady state is reached after a sufficiently large number of iterations by using the acceptance probability set according to the above formula, the probability occupied by each state follows the Boltzmann distribution under thermal equilibrium in mechanics. Therefore, when the temperature gradually decreases from a high temperature, the occupancy rate of the low-energy state increases. For this reason, when the temperature is sufficiently reduced, the Ising calculation device is able to obtain a low-energy state close to the optimal solution.
[0007] The Ising calculation device begins with an initial state, iterates the above process, and terminates after completing a specific number of iterations. In the initial state, the initial values of the spin state, the initial values of the local field, and the energy that can be calculated based on the initial values of the spin state are appropriately set. The combination of the lowest energy value and spin state maintained by the Ising calculation device at this point is the search result.
[0008] In recent years, for reasons of solving large-scale and difficult problems, among other reasons, methods have been proposed that use an Ising calculation device in conjunction with software to search for the lowest energy, rather than using the Ising calculation device alone. In such methods, the software pre-determines the spin state used to start the calculation through preprocessing, or extracts the results of the Ising calculation device during the calculation process, modifies certain spin states, and then returns the resulting spin states to the Ising calculation device to continue the search.
[0009] As a method for solving a combinatorial optimization problem, there is a related art in which an offset value in a local solution having the lowest energy is set to be larger than an offset value in a case where the energy is not the lowest, and then the offset is added to the amount of change in energy to perform acceptance determination.
[0010] The related technology is disclosed in Japanese Patent Publication No. 2018-63626. Summary of the Invention
[0011] However, as described above, before calculations begin, the Ising calculation device sets energy and initial local fields for each spin based on the spin state. The calculations used to calculate these values are based on the square of the number of spins, regardless of the spin state. Calculating these values using software would be prohibitively expensive in terms of computational time and impractical. Therefore, in related art, the calculations required to generate the initial state are avoided by starting the calculation from a state where all spins have their spin states set to 0. This is because, when the spin state is 0, the energy is simply a constant term, and the local fields are simply bias terms for each spin. In related art, starting the calculation from a specific spin state can reduce the software overhead. As described above, in related art, generating an appropriate initial state is not easy, and improving the processing performance of the Ising calculation device is difficult.
[0012] Even by using the offset in the related art in which acceptance determination is performed by adding the offset to the amount of change in energy, it is difficult to calculate the local field and energy in the initial state and to improve the processing performance of the Ising calculation device.
[0013] The disclosed technology has been proposed in view of the above discussion, and an object of the disclosed technology is to provide an optimization apparatus, an optimization method, and an optimization program that improve processing performance for combinatorial optimization problems.
[0014] In one aspect of the optimization device, optimization method, and optimization program disclosed in this application, a temperature control unit controls a temperature value indicating a temperature. An energy change calculation unit calculates the change in energy represented by an evaluation function when a state transition is performed by changing the state of any one of a plurality of state variables included in the evaluation function representing energy. A determination unit stochastically determines whether to accept the state transition based on a relationship between the energy change and a threshold value calculated based on the temperature value and a random numerical value. An expected value storage unit stores an expected value for each of the states of the plurality of state variables. An expected value comparison unit compares each of the expected values stored by the expected value storage unit with a corresponding value in the state values of the state variables and extracts any state variables that are unequal. A confirmation unit selects a state variable extracted by the expected value comparison unit and changes the state of the selected state variable until all state values of the state variable equal the expected value. Once the state value of the state variable equals the expected value, a state variable whose state transition is accepted by the determination unit is selected and the state of the selected state variable is changed. An energy calculation unit calculates the post-transition energy after the state of the state variable selected by the confirmation unit is changed. In a case where the post-transition energy calculated by the energy calculation unit is smaller than the lowest energy, the search unit sets the post-transition energy to the lowest energy.
[0015] On the one hand, the present invention can improve the processing performance for combinatorial optimization problems. BRIEF DESCRIPTION OF THE DRAWINGS
[0016] Figure 1 This is a block diagram of an Ising calculation device according to Embodiment 1.
[0017] Figure 2 is a block diagram showing details of the annealing unit according to Embodiment 1.
[0018] Figure 3A and Figure 3B This is a flowchart of the optimal solution search process performed by the Ising calculation device according to the first embodiment.
[0019] Figure 4 This is a diagram of the layout configuration of the Ising calculation device.
[0020] Figure 5 This is a diagram showing a circuit image of a unit circuit.
[0021] Figure 6 This is a flowchart of a process using the Ising calculation device according to the first embodiment.
[0022] Figure 7 is a block diagram of an Ising computing device in cooperation with software.
[0023] Figure 8 is a flow chart of a process using an Ising calculation device in cooperation with software.
[0024] Figure 9 This figure is used to explain acceleration through cooperation with software. DETAILED DESCRIPTION
[0025] Hereinafter, embodiments of the optimization device, optimization method, and optimization program disclosed in the present application will be described in detail with reference to the accompanying drawings. The optimization device, optimization method, and optimization program disclosed in the present application are not limited to the following embodiments.
[0026] [Implementation Method 1]
[0027] Figure 1 1 is a block diagram of an Ising calculation device according to Embodiment 1. The Ising calculation device 1 includes a plurality of annealing units 10, a temperature control unit 20, a threshold generation unit 30, a random number generation unit 40, a reverse spin selection unit 50, an energy calculation unit 60, a search result storage unit 70, and an initial setting control unit 80. For example, one Ising calculation device 1 is equipped with 1024 annealing units 10.
[0028] The Ising calculation device 1 is a device that searches for a variable x that minimizes the energy of the Ising model represented by equations (1) to (4) as an evaluation function.i (x0,x1,...,x n ) combined with the optimization device. Here, the variable x in formula (1) i is a state variable and takes the value 0 or 1. In the following description, the variable x i is called "spin", the variable x i The value of is called a "spin state," and a transition of the spin state is called an "inversion." For example, a spin state is represented as 0 or 1. An inversion is a transition of the spin state from 0 to 1 or from 1 to 0.
[0029] [Mathematical formula 1]
[0030]
[0031] [Mathematical formula 2]
[0032]
[0033] [Mathematical formula 3]
[0034]
[0035] [Formula 4]
[0036]
[0037] Here, E is energy, and ΔE i is in x i The amount of energy change when it is reversed. In addition, h i is x i The local field, and δh i is x i The change in local field. The change in energy can also be expressed as ΔE below.
[0038] The temperature control unit 20 is a circuit that controls the value of a temperature parameter. The temperature parameter is a temperature value used to control the temperature. The temperature parameter can also be represented by T below.
[0039] For example, according to the simulated annealing method, the temperature control unit 20 gradually reduces the value of the temperature parameter in proportion to the number of iterations of the search, thereby lowering the temperature from a sufficiently high initial temperature. After starting from the initial state, the temperature control unit 20 iterates while lowering the temperature, and ends the operation when a termination determination condition is satisfied, such as a condition that a certain number of iterations have been completed or the energy has fallen below a certain value. Alternatively, the temperature control unit 20 may also use a replica exchange method in which a minimum energy search is performed under low and high temperature conditions by executing several systems, called replicas, with different temperature conditions in parallel and exchanging these systems after every predetermined number of iterations.
[0040] The random number generator 40 is a circuit that generates a random number and outputs the generated random number to the threshold generator 30 and the inverted spin selector 50 .
[0041] The threshold generation unit 30 is a circuit that generates a threshold for determining whether to set each spin as an inversion candidate. The threshold generation unit 30 acquires a temperature parameter from the temperature control unit 20. The threshold generation unit 30 acquires a random value from the random number generation unit 40.
[0042] In this embodiment, the inversion of variables is accepted according to the following formula (5). For example, by using e -ΔE / T The smaller value of and 1 is used as the acceptance probability to accept the inversion of the variable.
[0043] [Formula 5]
[0044]
[0045] In this embodiment, the inversion spin is randomly accepted according to formula (5) using the random number generated by the random number generation unit 40. In this case, the condition that the acceptance probability follows formula (5) is equivalent to the condition that the inversion is accepted when the following formula (6) using the uniform random number r is satisfied.
[0046] [Formula 6]
[0047]
[0048] Formula (6) is a formula for determining whether to accept inversion, and is referred to as a "inversion determination formula" in some cases below.
[0049] The threshold value generating unit 30 generates the value on the right side of the formula (6) using the temperature parameter and the random value, and outputs the generated value on the right side of the formula (6) to the annealing unit 10 .
[0050] When the Ising calculation device 1 starts operating, the initial setting control unit 80 outputs an initialization signal. Thereafter, when initialization is completed with the formation of the desired initial state and there are no spins for which the inversion candidate flag needs to be set, the initial setting control unit 80 receives a notification from the inversion spin selection unit 50 that there are no inversion candidate flags. In this case, the initial setting control unit 80 stops outputting the initialization signal. Hereinafter, in some cases, the state in which the initial setting control unit 80 outputs the initialization signal is referred to as the state in which the initialization signal is enabled (on), and the state in which the initial setting control unit 80 stops outputting the initialization signal is referred to as the state in which the initial setting control unit 80 stops outputting the initialization signal.
[0051] The annealing unit 10 is a circuit that stores a spin state and a local field of a 1-bit spin, for example, 1 spin, and determines whether to set the own spin as an inversion candidate based on the amount of energy change associated with the inversion of the own spin. Figure 2 The annealing unit 10 is described in more detail. Figure 2 is a block diagram showing details of the annealing unit according to Embodiment 1. Figure 1 As shown, there are multiple annealing units 10. The annealing units 10 control different spins but perform the same process. Therefore, a specific annealing unit 10 will be described below. In the following description, the spin controlled by each annealing unit 10 is referred to as a self spin.
[0052] like Figure 2 As shown, the annealing unit 10 includes a local field management unit 101, a spin state management unit 102, an energy change amount calculation unit 103, an inversion candidate flag generation unit 104, a signal selector circuit 105, a spin number storage unit 106, an expected value storage unit 107 and an expected value comparison unit 108.
[0053] The spin number storage unit 106 stores the spin number for identifying the own spin. For example, when the spin is represented as x i In the case of spin number i, the spin number is spin x. i In the annealing unit 10, the spin number storage unit 106 uses i as a number for identifying the spin x i The spin number storing unit 106 outputs the stored spin number to the spin state managing unit 102 and the inverted spin selecting unit 50 .
[0054] The spin state management unit 102 stores the current spin state of the own spin and manages the spin state of the own spin. For example, the spin state management unit 102 receives the initial value of the spin state of the own spin at the start of the optimal solution search process. The spin state management unit 102 obtains the spin number from the spin number storage unit 106. The spin state management unit 102 outputs the spin state and the spin number to the energy change calculation unit 103 and the expected value comparison unit 108.
[0055] Thereafter, if the spin inversion is accepted, the spin state management unit 102 receives a notification of confirmation of the spin inversion and the spin number of the inverted spin from the inverted spin selection unit 50. If the own spin is the inverted spin, the spin state management unit 102 updates the stored spin state by setting the inverted spin state as the current spin state of the own spin.
[0056] The local field management unit 101 stores information about the current local field and manages the local field of the own spin. Here, since the energy change amount when the own spin is reversed can be calculated according to formula (2) based on the local field and the spin state, the local field management unit 101 in each annealing unit stores information about the local field so that the annealing unit 10 can calculate the energy change amount. The local field management unit 101 outputs the stored local field to the energy change amount calculation unit 103.
[0057] For example, the local field management unit 101 receives the initial value of the local field for the own spin at the start of the optimal solution search process. Alternatively, the local field management unit 101 may receive the input of the initial value of the spin and calculate the initial value of the local field for the own spin. Thereafter, if spin inversion is confirmed, the local field management unit 101 updates the stored information about the local field for the own spin as described later. The local field management unit 101 outputs the stored information about the local field to the energy change calculation unit 103.
[0058] When the inversion is accepted, the local field management unit 101 receives a notification of confirmation of the inversion spin and the spin number of the inversion spin from the inversion spin selection unit 50. Next, the local field management unit 101 calculates the amount of change in the local field according to formula (4) using the spin number of the inversion spin confirmed to be inverted. The local field management unit 101 calculates the local field of its own spin by adding the calculated amount of change in the local field to the information on the local field stored by the local field management unit 101 itself. Thereafter, the local field management unit 101 updates the stored information on the local field by setting the calculated information on the local field as the information on the current local field.
[0059] The energy variation calculation unit 103 receives input of information about the local field from the local field management unit 101. The energy variation calculation unit 103 receives input of the spin state of the own spin from the spin state management unit 102. The energy variation calculation unit 103 calculates the energy variation associated with the reversal of the own spin by using formula (2). Thereafter, the energy variation calculation unit 103 outputs the calculated energy variation associated with the reversal of the own spin to the reversal candidate flag generation unit 104 and the reversal spin selection unit 50.
[0060] The inversion candidate flag generation unit 104 receives an input of the energy change amount associated with the inversion of the own spin from the energy change amount calculation unit 103. The inversion candidate flag generation unit 104 receives an input of the value on the right side of the inversion determination formula represented by formula (6) from the threshold value generation unit 30. The inversion candidate flag generation unit 104 determines whether the energy change amount satisfies the inversion determination formula obtained by substituting the value obtained from the threshold value generation unit 30 into the right side of formula (6).
[0061] If the amount of change in energy satisfies the inversion determination formula, the inversion candidate flag generation unit 104 generates an inversion candidate flag indicating that the own spin is an inversion candidate and outputs the inversion candidate flag to the inversion spin selection unit 50. On the other hand, if the amount of change in energy does not satisfy the inversion determination formula, the inversion candidate flag generation unit 104 generates an inversion candidate flag indicating that the own spin is not an inversion candidate and outputs the inversion candidate flag to the inversion spin selection unit 50. For example, assuming that the inversion candidate flag is F, the inversion candidate flag generation unit 104 sets the value F to 1 if the inversion candidate flag indicates that the own spin is an inversion candidate, and sets the value F to 0 if the inversion candidate flag indicates that the own spin is not an inversion candidate. Thereafter, the inversion candidate flag generation unit 104 outputs the generated inversion candidate flag to the signal selector circuit 105. The inversion candidate flag generation unit 104 is an example of a "determination unit."
[0062] The expected value storage unit 107 receives input of the expected value of the spin at the calculation start time from an input device (not shown) or the like. Here, the calculation start time is the timing at which substantial annealing begins after the spin states of all spins have transitioned to a predetermined initial state. The expected value is a value indicating the spin state assigned to each spin in the evaluation function and determined to be the initial state at the calculation start time. The expected value storage unit 107 uses 0 or 1 as the expected value. The expected value storage unit 107 stores the expected value acquired at the calculation start time.
[0063] The expected value comparison unit 108 determines whether the inverted spin state is equal to the expected value and outputs the determination result. For example, the expected value comparison unit 108 receives input of the inverted spin state of the own spin from the spin state management unit 102. The expected value comparison unit 108 obtains the expected value of the own spin from the expected value storage unit 107. The expected value comparison unit 108 compares the inverted spin state of the own spin with the expected value. If the inverted spin state of the own spin is not equal to the expected value, the expected value comparison unit 108 generates an inversion candidate flag indicating that the own spin is an inversion candidate. If the inverted spin state of the own spin is equal to the expected value, the expected value comparison unit 108 generates an inversion candidate flag indicating that the own spin is not an inversion candidate. The expected value comparison unit 108 then outputs the generated inversion candidate flag to the signal selector circuit 105.
[0064] The signal selector circuit 105 receives an input of an inversion candidate flag based on an inversion determination formula from the inversion candidate flag generation unit 104. The signal selector circuit 105 also receives an input of an inversion candidate flag based on an expected value from the expected value comparison unit 108.
[0065] When the Ising calculation device 1 starts operating and performs initialization, the signal selector circuit 105 receives an input of an initialization signal from the initial setting control unit 80. If the initialization signal is enabled, the signal selector circuit 105 outputs the inversion candidate flag obtained from the expected value comparison unit 108 to the inversion spin selection unit 50. Therefore, during the execution of initialization, a spin whose inverted spin state is equal to the expected value is set as an inversion candidate spin, regardless of whether the energy is increased or decreased.
[0066] When initialization is completed and the initialization signal is deactivated, the signal selector circuit 105 outputs the inversion candidate flag acquired from the inversion candidate flag generation unit 104 to the inversion spin selection unit 50. For example, after initialization is completed, a spin whose inverted spin state satisfies the inversion determination formula is set as an inversion candidate spin.
[0067] Back to Figure 1 , the description continues. The inverted spin selection unit 50 obtains the spin number of its own spin in each annealing unit 10 from the spin number storage unit 106 of the annealing unit 10. The inverted spin selection unit 50 receives an energy variation input from the energy variation calculation unit 103 of each annealing unit 10. The inverted spin selection unit 50 receives an inversion candidate flag input from the signal selector circuit 105 of each annealing unit 10. The inverted spin selection unit 50 receives a random number input from the random number generation unit 40.
[0068] The inversion spin selection unit 50 checks the inversion candidate flags acquired from the respective annealing units 10 and determines whether there is an inversion candidate spin having an inversion candidate flag indicating that the spin is an inversion candidate.
[0069] If there is a candidate inversion spin, the inversion spin selection unit 50 selects one candidate inversion spin from the obtained candidate inversion spins based on the random number obtained from the random number generation unit 40. The inversion spin selection unit 50 confirms the selected candidate inversion spin as the inversion spin. Thereafter, the inversion spin selection unit 50 outputs a notification of confirmation of the inversion spin, as well as the spin number and spin state of the inversion spin, to the annealing unit 10, the energy calculation unit 60, and the search result storage unit 70. The inversion spin selection unit 50 is an example of a "confirmation unit."
[0070] If there is no inversion candidate spin, the inversion spin selection unit 50 outputs the absence of the inversion candidate spin to the initial setting control unit 80. Thus, the inversion spin selection unit 50 notifies the initial setting control unit 80 of the completion of initialization.
[0071] In this manner, when the initialization signal is enabled, the inversion spin selection unit 50 considers spins with inversion results equal to the desired value as inversion candidate spins. Thus, when the initialization signal is enabled, each spin with an inversion result equal to the desired value is sequentially inverted until no inversion candidate spins remain. The spin states of these spins equal to the corresponding desired values are obtained as the initialization states. Thereafter, the initialization signal is deactivated, and the optimal solution search process is executed starting from the desired initialization state.
[0072] The energy calculation unit 60 has, for example, initial values of the respective spins, in which all spin states are previously set to 0. The energy calculation unit 60 obtains energy according to Formula (1) using the initial values of the respective spins and stores the energy.
[0073] Thereafter, the energy calculation unit 60 receives a notification of confirmation of the inverted spin and an input of the spin number and spin state of the inverted spin from the inverted spin selection unit 50. Next, the energy calculation unit 60 processes the spin states of the spins stored in the energy calculation unit 60 by inverting the spin state of each spin number notified by the inverted spin selection unit 50, and thereby generates new spin states of these spins.
[0074] The energy calculation unit 60 acquires the energy change amount when the spin state of the reverse spin is reversed from the reverse spin selection unit 50. The energy calculation unit 60 updates the stored energy by setting the sum of the acquired energy change amount and the already stored energy as new energy.
[0075] The energy calculation unit 60 stores the spin state of the spin in the state where the spin state of the inverted spin is inverted. The energy calculation unit 60 outputs the energy calculated in the state where the spin state of the inverted spin is inverted to the search result storage unit 70.
[0076] The search result storage unit 70 sets the initial energy to the initial value of the lowest energy. Next, the search result storage unit 70 receives input of information on the calculated energy from the energy calculation unit 60. The search result storage unit 70 receives input of the spin number and spin state of the reverse spin from the reverse spin selection unit 50.
[0077] Search result storage unit 70 compares the acquired energy with the stored lowest energy. If the acquired energy is less than the lowest energy, search result storage unit 70 sets the acquired energy to the lowest energy. Search result storage unit 70 stores the spin state of the spin that achieved the acquired energy. On the other hand, if the acquired energy is equal to or greater than the lowest energy, search result storage unit 70 continues to store the lowest energy and the already stored spin state of the spin. Search result storage unit 70 is an example of a "search unit."
[0078] Next, we will refer to Figure 3A and Figure 3B A description is given of the sequence of the optimal solution search process of the Ising calculation device 1 according to the present embodiment. Figure 3A and Figure 3B This is a flowchart of the optimal solution search process performed by the Ising calculation device according to the first embodiment.
[0079] Based on input information from an operator or the like, the spin number of the own spin is set in the spin number storage unit 106, and the initial value of the spin state of the own spin is set in the spin state management unit 102 of each annealing unit 10. Here, the spin state of all the spins is 0. The initial value of the local field of the own spin is set in the local field management unit 101 (step S101). In this case, since the spin state of each spin is 0, the local field is a bias term for the spin.
[0080] In the expected value holding unit 107 , the expected value of the own spin at the calculation start time is set based on input information from the operator or the like (step S102 ).
[0081] The energy calculation unit 60 obtains the initial value of the spin state of each spin based on input information from the operator, etc., and obtains and sets the initial value of energy according to the obtained spin state of the spin (step S103). In this case, since the spin state of all spins is 0, the energy is a constant term itself.
[0082] The initial setting control unit 80 outputs the initialization signal to the signal selector circuit 105 of the annealing unit 10 to enable the initialization signal (step S104 ).
[0083] The energy variation calculation unit 103 of each annealing unit 10 obtains the information about the local field stored by the local field management unit 101. The energy variation calculation unit 103 receives the input of the inverted spin state of the own spin from the spin state management unit 102. The energy variation calculation unit 103 calculates the energy variation associated with the inversion of the own spin by using formula (2) (step S105). Thereafter, the energy variation calculation unit 103 outputs the calculated energy variation associated with the inversion of the own spin to the inversion candidate flag generation unit 104 and the inversion spin selection unit 50.
[0084] The inversion candidate flag generation unit 104 receives an input of the energy variation associated with the inversion of the own spin from the energy variation calculation unit 103. The inversion candidate flag generation unit 104 receives an input of the value on the right side of the formula (6) to be used as a threshold from the threshold generation unit 30. The inversion candidate flag generation unit 104 determines whether the acquired energy variation satisfies the inversion determination formula in which the value acquired from the threshold generation unit 30 is substituted into the right side of the formula (6), and generates an inversion candidate flag based on the inversion determination formula (step S106). Thereafter, the inversion candidate flag generation unit 104 outputs the inversion candidate flag based on the inversion determination formula to the signal selector circuit 105.
[0085] In addition, the expected value comparison unit 108 compares the expected value acquired from the expected value holding unit 107 with the inverted spin state of the own spin acquired from the spin state management unit 102 to determine whether the two values are equal to each other (step S107 ).
[0086] Next, based on the comparison result, the expected value comparison unit 108 generates an inversion candidate flag based on the expected value (step S108 ) and outputs the inversion candidate flag based on the expected value to the signal selector circuit 105 .
[0087] The signal selector circuit 105 receives an input of an inversion candidate flag based on the inversion determination formula from the inversion candidate flag generation unit 104. The signal selector circuit 105 also receives an input of an inversion candidate flag based on an expected value from the expected value comparison unit 108. The signal selector circuit 105 determines whether the initialization signal is enabled (step S109).
[0088] If the initialization signal is enabled (step S109 : Yes), the signal selector circuit 105 outputs the inversion candidate flag based on the expected value acquired from the expected value comparison unit 108 to the inversion spin selection unit 50 (step S110 ).
[0089] On the other hand, if the initialization signal is deactivated (step S109 : No), the signal selector circuit 105 outputs the inversion candidate flag based on the inversion determination formula acquired from the inversion candidate flag generation unit 104 to the inversion spin selection unit 50 (step S111 ).
[0090] The inversion spin selection unit 50 receives the spin number of the own spin in each annealing unit 10 and the input of the spin state, energy change amount and inversion candidate flag. The inversion spin selection unit 50 determines whether there is an inversion candidate spin based on the inversion candidate flag (step S112).
[0091] If there is no inversion candidate spin (step S112: No), the inversion spin selection unit 50 notifies the initial setting control unit 80 that there is no inversion candidate spin. In response to receiving the notification that there is no inversion candidate spin, the initial setting control unit 80 stops outputting the initialization signal to the signal selector circuit 105 to deactivate the initialization signal (step S113).
[0092] On the other hand, if a candidate inversion spin exists (step S112: Yes), the inversion spin selection unit 50 selects a candidate inversion spin from the candidate inversion spins acquired from the annealing unit 10 based on the random number value input from the random number generation unit 40. The inversion spin selection unit 50 confirms the selected candidate inversion spin as the inversion spin (step S114). Thereafter, the inversion spin selection unit 50 outputs a notification of confirmation of the inversion spin, as well as the spin number and spin state of the inversion spin, to the energy calculation unit 60 and the search result storage unit 70.
[0093] Upon receiving the notification confirming the spin inversion, the energy calculation unit 60 processes the stored spin state by inverting the spin state of each spin number obtained from the inverted spin selection unit 50. The energy calculation unit 60 obtains the energy change amount when the spin state of the inverted spin is inverted from the inverted spin selection unit 50. The energy calculation unit 60 then updates the stored energy information by setting the sum of the obtained energy change amount and the already stored energy as the new energy (step S115).
[0094] After that, the energy calculation unit 60 outputs the calculated energy to the search result storage unit 70. The search result storage unit 70 determines whether the energy obtained from the energy calculation unit 60 is less than the stored minimum energy (step S116). If the energy obtained from the energy calculation unit 60 is equal to or greater than the stored minimum energy (step S116: No), the optimal solution search process proceeds to step S118.
[0095] On the other hand, if the energy acquired from the energy calculation unit 60 is less than the stored lowest energy (step S116: YES), the search result storage unit 70 updates the stored lowest energy by setting the energy acquired from the energy calculation unit 60 as the lowest energy. The search result storage unit 70 stores the spin state of the spin in which the spin state of the inverted spin is inverted among the stored spin states of the spins as a new spin state that achieves the lowest energy (step S117).
[0096] Each annealing unit 10 receives confirmation of the reverse spin and the spin number of the reverse spin from the reverse spin selection unit 50. If the reverse spin confirmed to be reversed is the own spin, the spin state management unit 102 updates the spin state of the own spin (step S118).
[0097] The local field management unit 101 calculates the amount of change in the local field according to formula (4) using the spin number of the inverted spin that has been confirmed to be inverted. The local field management unit 101 calculates the local field of its own spin by using the calculated amount of change in the local field and the local field information stored in the local field. Thereafter, the local field management unit 101 updates the stored information about the local field by setting the information about the calculated local field as the information about the current local field (step S119).
[0098] Afterwards, the search result storage unit 70 determines whether the predetermined number of calculation iterations has been completed (step S120). If the predetermined number of calculation iterations has not been completed (step S120: No), the optimal solution search process returns to step S105. On the other hand, if the predetermined number of calculation iterations has been completed (step S120: Yes), the search result storage unit 70 determines the spin state that achieves the lowest energy, which was saved at that time, as the optimal solution and ends the optimal solution search process.
[0099] Figure 4 The Ising calculation device 1 according to this embodiment is equivalent to Figure 4The annealing circuit 201 in FIG. The annealing circuit 201 is a functional unit capable of performing annealing. Each annealing circuit 201 includes a plurality of unit circuits 202 and a control circuit 203. For example, one annealing circuit 201 is equipped with 1024 unit circuits 202. The unit circuit 202 is a logic unit for implementing the determination and state management of a single spin and functions as the annealing unit 10. The control circuit 203 is a circuit that performs control in the annealing circuit 201 and functions as the energy calculation unit 60, the search result storage unit 70, and the like. For example, the control circuit 203 selects any one of the own spins processed by each unit circuit 202 as a candidate spin for inversion, accepts the candidate spin for inversion, and notifies the unit circuit 202 after confirming the inversion spin.
[0100] Figure 5 1 is a diagram showing a circuit diagram of a unit circuit. Figure 5 The register 221 shown in FIG. 1 is an example of the local field management unit 101. Here, h i Indicates the value of the local field. Register 222 is an example of the spin state management unit 102. Here, x i represents spin x i The spin state of .
[0101] The circuit 223 is an example of the energy variation calculation unit 103. The circuit 223 uses the local field h i and spin x i Calculate the energy change ΔE of the spin state i .
[0102] The circuit 224 is an example of the inversion candidate flag generation unit 104. The circuit 224 converts the energy change amount ΔE i Compare with the threshold Th and output the value of the inversion candidate flag.
[0103] The register 226 is an example of the expected value holding unit 107. Here, x exp Indicates expected value.
[0104] The circuit 227 is an example of the expected value comparison unit 108. The circuit 227 spins x i The spin state and expected value x exp Compare and output the value of the inverted candidate flag.
[0105] The selector circuit 225 is an example of the signal selector circuit 105. When receiving the input of the initialization signal, the selector circuit 225 selects and outputs the value of the inversion candidate flag input from the circuit 227. When not receiving the input of the initialization signal, the selector circuit 225 selects and outputs the value of the inversion candidate flag input from the circuit 224.
[0106] Figure 6 This is a flowchart of a process when using the Ising calculation device according to Embodiment 1. Here, a person who uses the Ising calculation device 1 is referred to as a user.
[0107] There is a problem 51 that the user wishes to solve. The user converts the problem into an Ising model using a computer or the like (step S151). As a result, an Ising model energy formula 53 represented by formula (1) is obtained. Initial values 54 of the spin state, local field, and energy are obtained.
[0108] In addition, after converting the problem into the Ising model, the user determines the spin state at the start of the calculation (step S152 ), thereby obtaining the expected value 55 of the spin state at the start of the calculation.
[0109] Next, the Ising model energy formula 53, the spin state, the initial value 54 of the local field and energy, and the expected value 55 are input as parameters to the Ising calculation device 1. The operating conditions 52 for executing the optimal solution search process, such as the number of calculation iterations, are also input as parameters to the Ising calculation device 1 (step S153).
[0110] Thereafter, the Ising calculation device 1 performs calculation (step S154). This process is an optimal solution search process performed by the Ising calculation device 1. As a result of the execution of this calculation, a calculation result 56 is obtained.
[0111] The user obtains the calculation result 56 (step S155 ). The user interprets the obtained calculation result 56 (step S156 ). Thus, the user obtains the solution 57 of the problem 51 .
[0112] As described above, the Ising calculation device according to this embodiment performs spin state inversion so that the spin state of each spin equals the desired value, thereby generating a desired initial state. The Ising calculation device then obtains a solution by performing an optimal solution search based on the generated initial state. Therefore, the optimal solution search process can be performed in the Ising calculation device starting from the desired spin state, and the minimum energy can be reached in a shorter time. Because local fields are calculated in parallel for each spin, the calculation speed is higher than when the calculations for obtaining the initial state are performed by software. Consequently, the processing performance of the Ising calculation device for combinatorial optimization problems can be improved.
[0113] The Ising calculation device according to this embodiment has modified the method used to select inversion candidates until the transition to the initial state is complete, but the calculation of energy and local fields remains the same as in the related art. Therefore, after reaching the desired initial state, the correct value can be obtained by performing the optimal solution search process used in the related art. The Ising calculation device also achieves the goal of suppressing the increase of physical resources.
[0114] For example, when calculating the energy and local field of a spin, an Ising calculation device capable of performing calculations on N spins performs the calculations in N squared steps. In contrast, although the number of steps depends on the number of spins to be inverted, the Ising calculation device according to this embodiment can perform the above calculations in N steps even in the worst case. When the number of spins to be processed is approximately 1024, the calculation speed is approximately 1024 times faster in terms of the number of steps. Since software also incurs latency for memory accesses, etc., even higher performance can be expected. Compared to the time required to transmit the interaction coefficients set for the problem or the time required to calculate the energy search, the time required to transition to the initial state is negligible.
[0115] In the above description, the operator determines an expected value and inputs it into the Ising computing device, but the embodiment is not limited thereto. For example, the Ising computing device may be internally equipped with a function to create an expected value and set the spin state of the spins to be equal to the expected value. In this case, the Ising computing device is enabled to internally perform a transition to a specific state. Such a function can be applied to, for example, bit operations such as parallel tempering with isoenergetic cluster moves (PTICM). Utilizing such a function, the Ising computing device can also perform a process of resetting the spin state of all spins to 1.
[0116] [Implementation Method 2]
[0117] Figure 7 is a block diagram illustrating an information processing system according to Embodiment 2. The Ising calculation device 1 according to this embodiment performs optimal solution search processing while solving the constraints of a problem in collaboration with software processing. In the following description, some operations of units identical to those in Embodiment 1 will be omitted.
[0118] Some combinatorial optimization problems have constraints on the values used in the combination. An example of a constraint is that, when bits representing spins are assigned, n bits out of a predetermined number of spins must be 1. This constraint is called an "n-hot constraint." The following describes solving an optimization problem with such a constraint.
[0119] The annealing unit 10 receives a setting of a desired value for each spin in a desired initial state. Thereafter, after confirming the calculation result, the annealing unit 10 receives an input of a calculation result adjusted to satisfy a predetermined constraint condition, and sets the spin state in the obtained adjusted calculation result to the desired value.
[0120] The search result storage unit 70 stores the search result that obtains the lowest energy after a predetermined number of calculation iterations. This search result does not necessarily meet the constraint conditions. Therefore, the search result storage unit 70 outputs the calculation result to the information processing device 2 executing the software.
[0121] The units in the Ising calculation device 1 generate an initial state by using the expected value, start the optimal solution search process from the generated initial state, and acquire calculation results.
[0122] Afterward, when the calculation results adjusted by the software to satisfy the constraints are input, the Ising calculation device 1 generates an initial state using the newly set expected value, starts the optimal solution search process from the generated initial state, and obtains the calculation results. The Ising calculation device 1 iterates the calculation results with the software a predetermined number of times and then ends the calculation.
[0123] The software executed by the information processing device 2 receives the input of the calculation result from the search result storage unit 70. The software determines whether the input calculation result satisfies the constraint conditions. If the calculation result satisfies the constraint conditions, the software sends the spin state in the calculation result as is to the annealing unit 10 of the Ising calculation device 1. On the other hand, if the calculation result does not satisfy the constraint conditions, the software adjusts the calculation result to satisfy the constraint conditions and sends the adjusted spin state as the expected value to the annealing unit 10 so that the annealing unit 10 stores it.
[0124] Figure 8 is a flow chart of a process using an Ising calculation device in cooperation with software. Figure 8 The sequence of the problem-solving process in the case of using the Ising calculation device 1 according to the present embodiment will be described.
[0125] There is a problem 61 that the user wishes to solve. The user converts the problem into an Ising model using a computer or the like (step S161). As a result, an Ising model energy formula 63 represented by formula (1) is obtained. Initial values 64 of the spin state, local field, and energy are obtained.
[0126] After converting the problem into the Ising model, the user determines the spin state at the start of the calculation to satisfy the calculation constraints, thereby obtaining the expected value 65 of the spin state at the start of the calculation.
[0127] Next, the Ising model energy formula 63, the spin state, the initial value 64 of the local field and the energy, and the expected value 65 are input as parameters to the Ising calculation device 1. The operating conditions 62 for executing the optimal solution search process, such as the number of calculation iterations, are also input as parameters to the Ising calculation device 1 (step S162).
[0128] After that, the Ising calculation device 1 performs calculation (step S163). This process is the optimal solution search process performed by the Ising calculation device 1 described above. By performing this calculation, a calculation result 66 is obtained (step S164).
[0129] The Ising calculation device 1 determines whether calculation using the calculation result adjusted by software has been performed for a predetermined number of iterations (step S165 ).
[0130] If the number of iterations of the calculation using the software-adjusted calculation result 66 as the expected value has not reached the predetermined number (step S165: No), the Ising calculation device 1 transmits the calculation result 66 to the information processing device 2. The software on the information processing device 2 receives the input of the calculation result 66 and changes the spin state in the calculation result 66 to satisfy the constraints used for the calculation (step S166). Thereafter, the software on the information processing device 2 transmits the calculation result 66, which has been changed to satisfy the constraints used for the calculation, to the Ising calculation device 1 as the expected value 65 of the spin state at the start of the calculation. The process then returns to step S162.
[0131] On the other hand, if the number of iterations of the calculation using the calculation result 66 adjusted by the software reaches the predetermined number (step S165: Yes), the user interprets the calculation result 66 (step S167). Thus, the user obtains the solution 67 of the problem 61.
[0132] As described above, when solving an optimization problem with constraints, the Ising calculation device according to this embodiment performs an optimal solution search process by using a spin state that satisfies the constraints as an expected value. The Ising calculation device iterates by adjusting the search results through software to satisfy the constraints and then re-executing the optimal solution search process using the adjusted search results as initial values. This allows the Ising calculation device to obtain a more optimal solution to the optimization problem with constraints than if the Ising calculation device were to solve the problem on its own.
[0133] [Implementation Method 3]
[0134] Next, embodiment 3 will be described. As an example of a search method for an optimal value, a method for searching for the lowest energy by iterating the following process has been proposed: comparing the spin states obtained by parallel calculation of two systems, extracting spins with different values between the two systems, and exchanging some of these values. Such a search method is called parallel tempering of equal-energy cluster moves (PTICM). Such a search method is disclosed in, for example, Z. Zhu, C. Fang, and HG Katzgramer, borealis - a generalized global update algorithm for Boolean optimization problems, arXiv: 1605.09399 (2016). When performing such a search process, the Ising computing device according to the present embodiment performs the search in collaboration with the software by causing the software to perform the following process: exchanging the spin states of the extracted spins and obtaining the result of the process. In Figure 7 The Ising calculation device 1 according to this embodiment is also shown in the block diagram.
[0135] The annealing unit 10 first obtains a convenient value, for example, in which the spin states of all spins are 0, as a desired value. Thereafter, after confirming the search result, the annealing unit 10 receives an input of the spin state of each spin to be used as an initial state in the next calculation from the software on the information processing device 2. The annealing unit 10 sets the spin state obtained from the information processing device 2 as the initial value for the next calculation.
[0136] The units in the Ising calculation device 1 execute the optimal value search process in parallel in the two systems and obtain corresponding search results. The units in the Ising calculation device 1 again execute the optimal value search process in parallel in the two systems using the spin state input from the information processing device 2 to the annealing unit 10 as the expected value and obtain corresponding search results. The units in the Ising calculation device 1 perform the calculation using the spin state obtained from the information processing device 2 as the expected value for a predetermined number of iterations.
[0137] The search result storage unit 70 obtains the stored search results for the two systems. The search result storage unit 70 determines whether the calculation using the spin state acquired from the information processing device 2 as the expected value has been performed for a predetermined number of iterations. If the number of iterations has not reached the predetermined number, the search result storage unit 70 outputs the search results for the two systems to the software. If the number of iterations has reached the predetermined number, the search result storage unit 70 terminates the optimal solution search process while storing the search results for the two systems.
[0138] Figure 8A flowchart of a process when the Ising calculation device according to this embodiment is used is also shown. Hereinafter, processes different from those in Embodiment 2 will be described, and descriptions of other processes will be omitted.
[0139] In this embodiment, in step S163 , the optimal solution search process is executed in parallel in the two systems. The Ising calculation device 1 obtains the search results of the two systems as the calculation result 66 .
[0140] In step S165 , the Ising calculation apparatus 1 determines whether calculation using the spin state exchanged between the two systems by software as an expected value has been performed for a predetermined number of iterations (step S165 ).
[0141] If the number of iterations of the calculation using the spin state changed by the software has not reached the predetermined number (step S165: No), the Ising calculation device 1 transmits the calculation result 66 to the information processing device 2. The software executed by the information processing device 2 compares the search results of the two systems included in the calculation result 66 with each other and extracts spins having different spin states between the two systems. Next, the software executed by the information processing device 2 swaps some of the extracted spins to change the spin states of the search results of the two systems (step S166). Thereafter, the software executed by the information processing device 2 transmits the changed spin states of the search results of the two systems to the Ising calculation device 1 as the expected value 65. The process returns to step S162.
[0142] Figure 9 This diagram illustrates acceleration achieved through collaboration with software. Figure 9 Flow 301 in FIG. 1 shows a sequence of optimal solution search processes performed by the Ising calculation device 1 according to this embodiment. Flow 302 shows a sequence of optimal solution search processes that do not use expected values.
[0143] The optimal solution search process performed by the Ising calculation device 1 according to this embodiment will be described with reference to process 301. The operator performs initial settings for the Ising calculation device 1 (step S201). In this embodiment, the processing time for establishing the initial values can be considered to be zero, because the first expected value of the spin state of all spins only needs to be set to 0.
[0144] Next, the Ising calculation device 1 performs a search process on the two systems (step S202 ). As a result, the Ising calculation device 1 obtains search results for the two systems (step S203 ).
[0145] Thereafter, if the number of iterations of the search process does not reach a predetermined number, the Ising calculation device 1 transmits the search results to the information processing device 2. The software executed by the information processing device 2 performs a bit operation on the search results of the two systems (step S204).
[0146] Next, the software executed by the information processing device 2 transmits the spin states of the spins on which the bit operations are performed in the two systems to the Ising calculation apparatus 1 as expected values (step S205 ).
[0147] The Ising calculation device 1 sets the initial state so that the spin state of each spin is equal to the acquired expected value (step S206 ). Thereafter, the process returns to the search process in step S202 .
[0148] In contrast, the optimal solution search process performed by the Ising calculation device 1 without using expected values will be described with reference to process 302. The operator performs initial settings for the Ising calculation device 1 (step S211). In this case, the spin states of all spins are set to 0. This process is the same as the process in step S201 of process 301.
[0149] Next, the Ising calculation device 1 performs a search process on the two systems (step S212 ). The Ising calculation device 1 then obtains search results for the two systems (step S213 ). These processes are the same as those in steps S202 and S203 of the flowchart 301 .
[0150] Thereafter, if the number of iterations of the search process does not reach a predetermined number, the Ising calculation device 1 sends the search results to the information processing device 2. The software executed by the information processing device 2 performs a bit operation on the search results of the two systems (step S214).
[0151] Next, the software executed by the information processing device 2 calculates the local field and energy based on the spin states of the spins on which the bit operation was performed in the two systems (step S215). Thereafter, the software executed by the information processing device 2 transmits information about the calculated local field and energy to the Ising calculation device 1 (step S216).
[0152] The Ising calculation device 1 sets the acquired local field and energy as initial values and returns to the search process in step S212 .
[0153] In this case, in step S215, the calculation of the local field and energy after the spin state exchange is performed by software involves a large amount of calculation and therefore requires a large cost in terms of calculation time. In contrast, in the processing of steps S205 and S206 of flow 301, the Ising calculation device obtains the spin state after the exchange and sets the initial state, so that the calculation time can be reduced.
[0154] As described above, when solving an optimization problem using a method known as PTICM, the Ising calculation device according to this embodiment iterates the optimal solution search process using the spin states of the following spins as initial values: specific spin states in two systems are swapped via software. In related art, when solving an optimization problem using the PTICM method, the following operations are performed each time: local fields and energies are calculated after the spin states are swapped; and the calculation results are sent to the Ising calculation device. In contrast, the Ising calculation device according to this embodiment performs the second and subsequent iterations of the calculation by obtaining the spin states after the software swap as the expected values to be used for continued calculations. Consequently, the execution time of the optimal solution search process can be shortened.
[0155] The software executed by the information processing device 2 described in Embodiments 2 and 3 is an example of a "state change unit." In Embodiments 2 and 3, the Ising calculation device 1 that searches for the optimal solution and the information processing device 2 that executes the software are described as separate devices, but these devices may be combined into the same device to form a single optimization device.
Claims
1. An optimization device comprising: a temperature control unit, which is a circuit, configured to control a temperature value indicating a temperature; a plurality of annealing units, each of the plurality of annealing units being a circuit, the plurality of annealing units being configured to preserve states of corresponding state variables among a plurality of state variables included in an evaluation function representing energy, and each of the plurality of annealing units comprising: an energy change amount calculation unit configured to calculate a change amount of energy represented by the evaluation function in a case where state transition is performed by changing a state of a state variable held by the annealing unit, the state being represented by 0 or 1; a determination unit configured to randomly determine whether to accept the state transition based on a comparison between the amount of change in the energy and a threshold value calculated based on the temperature value and a random value; an expected value holding unit configured to hold an expected value of the state of the state variable held by the annealing unit, the expected value representing a predetermined initial state; and an expected value comparison unit configured to compare the expected value held by the expected value holding unit with the value of the state of the state variable held by the annealing unit and output an indication of whether the expected value held by the expected value holding unit is not equal to the value of the state of the state variable held by the annealing unit; A confirmation unit configured to: During initialization execution, a state variable whose value is not equal to the expected value of the state variable held by the expected value holding unit is selected based on the output of the expected value comparison unit of each of the plurality of annealing units, and the state of the selected state variable is changed to another state until the values of the state of the state variable are all equal to the expected value, so as to obtain a spin state having a spin equal to the corresponding expected value as an initialization state; and After the initialization is performed, selecting a state variable for which the state transition is accepted by a corresponding determination unit and changing the state of the selected state variable; an energy calculation unit configured to calculate a post-transition energy after a state of the state variable selected by the confirmation unit is changed; and A search unit configured to set the post-transition energy to the lowest energy if the post-transition energy calculated by the energy calculation unit is smaller than the lowest energy.
2. The optimization device according to claim 1, further comprising: an initial setting control unit configured to output an initialization signal when the states of the state variables are not all equal to the expected values, and stop outputting the initialization signal when the states of the state variables become all equal to the expected values; Wherein, the confirmation unit is configured to, when the initial setting control unit outputs the initialization signal, cause the confirmation unit to select a state variable in which the expected value stored by the corresponding expected value storage unit is not equal to the value of the state of the state variable stored by the corresponding annealing unit, and to, when the initial setting control unit stops outputting the initialization signal, cause the confirmation unit to select a state variable whose state transition is accepted by the determination unit.
3. An optimization method implemented on the optimization device according to claim 1, the method comprising: During initialization execution: comparing each of predetermined expected values of states of a plurality of state variables included in an evaluation function representing energy with corresponding values among values of states of the state variables held by a plurality of annealing units, each expected value representing a predetermined initial state and the state being represented by 0 or 1; outputting, for each of the state variables, an indication of whether the expected value is not equal to a value of a state of the state variable maintained by a corresponding annealing unit; selecting, based on the outputted indication, a state variable whose value is not equal to an expected value of the state variable held by the expected value holding unit; as well as Changing the state of the selected state variable to another state until the values of the state variable are all equal to the expected value, so as to obtain a spin state of the spin equal to the corresponding expected value as an initialization state; as well as After said initialization is performed: Control the temperature value of the indicated temperature; calculating a change amount of energy represented by the evaluation function when a state transition is performed by changing a state of any one of the plurality of state variables; randomly determining whether to accept the state transition based on a comparison between the amount of change in the energy and a threshold value calculated based on the temperature value and a random value; selecting a state variable for which the state transition is accepted and changing the state of the selected state variable; calculating a post-transition energy after the state of the state variable is changed; as well as In a case where the calculated post-transition energy is less than the lowest energy, the post-transition energy is set to the lowest energy.
4. A program product for optimization, which, when executed on the optimization device according to claim 1, causes the optimization device to perform the following processing: During initialization execution: comparing each of predetermined expected values of states of a plurality of state variables included in an evaluation function representing energy with corresponding values among values of states of the state variables held by a plurality of annealing units, each expected value representing a predetermined initial state and the state being represented by 0 or 1; outputting, for each of the state variables, an indication of whether the expected value is not equal to a value of a state of the state variable maintained by a corresponding annealing unit; selecting, based on the outputted indication, a state variable whose value is not equal to an expected value of the state variable held by the expected value holding unit; as well as Changing the state of the selected state variable to another state until the values of the state variable are all equal to the expected value, so as to obtain a spin state of the spin equal to the corresponding expected value as an initialization state; as well as After said initialization is performed: Control the temperature value of the indicated temperature; calculating a change amount of energy represented by the evaluation function when a state transition is performed by changing a state of any one of the plurality of state variables; randomly determining whether to accept the state transition based on a comparison between the amount of change in the energy and a threshold value calculated based on the temperature value and a random value; selecting a state variable for which the state transition is accepted and changing the state of the selected state variable; calculating a post-transition energy after the state of the state variable is changed; as well as In a case where the calculated post-transition energy is less than the lowest energy, the post-transition energy is set to the lowest energy.
Citation Information
Patent Citations
Information Processing Apparatus and Information Processing Method
US20190130295A1
Optimization apparatus and control method thereof
US20200090026A1