The present application claims priority from Japanese application JP 2019-162856, filed on Sep. 6, 2019, the contents of which is hereby incorporated by reference into this application.
The present invention relates to an information processing technique, particularly to a technique that employs annealing as an algorithm for searching for an optimal solution.
Annealing is known as a general-purpose algorithm for searching for an optimal solution. An annealing machine is a device dedicated to executing annealing and outputting an approximate optimal solution (for example, see International Publication WO2015-132883, JP-A-2019-16077, JP-A-2019-16129, JP-A-2019-71113, JP-A-2019-87273, and “An accelerator architecture for combinatorial optimization problems”, Sanroku Tsukamoto et. Al., Fujitsu Sci. Tech. J., Vol. 53, No. 5 (September 2017)). The annealing machine uses an Ising model as a calculation model that can accept problems in general. The annealing machine has the parameters of the Ising model as inputs. Therefore, a user of the annealing machine needs to convert the problem to be solved into the Ising model.
In the stochastic transition, the spin state stochastically repeats a transition to a state σ′ near a current state σ. The probability of the transition from the state σ to the state σ′ is referred to as transition probability P(σ, σ′). Metropolis and Gibbs methods are known as transition probabilities (see JP-A-2019-16077, JP-A-2019-16129, and JP-A-2019-87273). The transition probability is adjusted by a parameter generally called temperature T.
As a method for generating the neighboring state σ′, it is general to update the value of one spin from the current state σ. By changing the spins to be updated one by one in order, the entire spins are searched. When the transition is executed while the temperature T is gradually decreased from a large value, the energy asymptotically converges to a state with the lowest energy (ground state) via a local solution. The method for finding an optimal solution or an approximate solution of the minimization problem by this manner is known as a simulated annealing method (SA method).
On the other hand, the complete graph illustrated on the right side of the drawing is a model in which one node is connected to all other nodes. In the complete graph, nodes interact with each other (indicated by the letter j and suffix in the drawing), and therefore multiple spins cannot be updated simultaneously. Therefore, in the SA method, for example, a method in which a node is divided into two and updated one by one is adopted (middle row on the right side of the drawing, “single update (non-parallel)”). However, since this method requires a long processing time, as illustrated by the equation in
The processing S201 is data initialization. An initial annealing step and a maximum step (t_max) are set, and how many times the spin update is repeated is set. An inverse temperature β(=1/T) is set to an initial value β0. An initial state is randomly set for each of N spins (nodes) Q included in the model. The value of a spin may be binary, but here, +1 and −1. The external magnetic field coefficient hi is determined for each node, and an interaction coefficient jij between the nodes is determined. The instantaneous magnetic field Ihi=hi+Σj=1˜Nσjjij is obtained. An inversion flag F indicating the inversion of a spin and an inversion index j specifying the inverted spin are set to an initial value 0. These data are determined based on the model and set in the annealing machine. Specific structures of the annealing machine are described in International Publication WO 2015-132883, JP-A-2019-16077, JP-A-2019-16129, JP-A-2019-71113, JP-A-2019-87273, and “An accelerator architecture for combinatorial optimization problems”, Sanroku Tsukamoto et. Al., Fujitsu Sci. Tech. J., Vol. 53, No. 5 (September 2017). Next, the processing S202 to S204 illustrate a flow of a spin update.
In the processing S202, the instantaneous magnetic field Ih1 is updated. If the inversion flag F is 1, the instantaneous magnetic field Ihi is calculated and updated in parallel for each spin. In this method, the spins are updated one by one, and only the change in the spins needs to be reflected in the instantaneous magnetic field, and therefore Ihi←Ihi+2σjjji.
In the processing S203, an update probability pi of each spin is calculated and updated in parallel.
pi←sigmoid(−2σiIhiβ)
sigmoid is a sigmoid function.
In the processing S204, whether or not each spin can be updated is determined based on the update probability pi of the spin. If there are updatable spins, one σj is randomly selected from the updatable spins, the spin is updated (σj←−σj), and the inversion flag is changed (F←1).
In processing S205, the annealing step is advanced by one (t←t+1). Further, the inverse temperature is updated (β=β(t)). In annealing, the inverse temperature, which is the reciprocal of the temperature, gradually increases.
The processing S202 to S205 are repeated until an annealing step t reaches t_max in the determination processing S206. When the annealing step t reaches t_max, the spin arrangement is read out and output as a (pseudo) optimized spin arrangement (S207).
In the above method, the update of the instantaneous magnetic field and the calculation of the update probability of the spin can be performed in parallel, and the speed can be increased. However, a spin update is not performed in parallel, but is performed sequentially for each spin.
Then, the method for updating spins in the annealing machine in parallel was examined.
A preferred aspect of the present invention is an information processing apparatus including an annealing control unit, a spin interaction memory, a random number generation unit, and a spin state update unit and obtaining a solution by using an Ising model. The annealing control unit controls an annealing step and a parameter of a temperature and a parameter of a self-action. The spin interaction memory stores the interaction coefficient of spins. The random number generation unit generates predetermined random numbers. The spin state update unit includes a spin buffer that stores values of a plurality of spins, an instantaneous magnetic field calculation unit that calculates instantaneous magnetic fields of the plurality of spins, a probability calculation unit that calculates update probabilities of the plurality of spins, and a spin state determination unit that updates the values of the spins based on the update probabilities and random numbers.
Another preferred aspect of the present invention is an information processing method for obtaining a solution by using an Ising model by an information processing apparatus including an annealing control unit, a spin interaction memory, a random number generation unit, and a spin state update unit. The annealing control unit controls an annealing step and updates the parameter of the temperature parameter and the parameter of the self-action. The spin interaction memory stores the interaction coefficient of the spins. The random number generation unit generates predetermined random numbers. The spin state update unit calculates instantaneous magnetic fields of a plurality of spins in parallel by using an interaction coefficient for each annealing step, calculates update probabilities of the plurality of spins in parallel by using the instantaneous magnetic fields, and updates the values of the plurality of spins in parallel by using the update probabilities and random numbers, and the interaction coefficient used for calculating the instantaneous magnetic fields is an interaction coefficient related to the spins updated in the immediately preceding annealing step.
Spin updates can be performed in parallel in the annealing machine.
Embodiments will be described in detail with reference to drawings. However, the present invention is not construed as being limited to the description of the embodiments below. It is easily understood by those skilled in the art that the specific configuration can be changed without departing from the idea or spirit of the present invention.
In the structures of the invention described below, the same portions or portions having similar functions are denoted by the same reference numerals in different drawings, and description thereof is not repeated in some cases.
When there are a plurality of elements having the same or similar functions, the same reference numerals may be given different subscripts for description. However, when there is no need to distinguish the plurality of elements, the description may be omitted with suffixes omitted.
Notations such as “first”, “second”, and “third” in this specification and the like are used to identify constituent elements, and do not necessarily limit the number, order, or content thereof. In addition, numbers for identifying constituent elements are used for each context, and numbers used in one context do not necessarily indicate the same configuration in another context. Further, this does not prevent a constituent element identified by a certain number from also having a function of a constituent element identified by another number.
The position, size, shape, range, or the like of each configuration illustrated in the drawings and the like are not accurately represented in some cases in order to facilitate understanding of the present invention. For this reason, the present invention is not necessarily limited to the position, size, shape, range, and the like disclosed in the drawings and the like.
Publications, patents, and patent applications cited herein form a part of the description of the present specification as they are.
Constituent elements described in the singular herein include the plural unless specifically stated otherwise.
The processing S401 is data initialization. The initial annealing step t is set to 0. The maximum step (t_max) is set, and how many times the spin update is repeated is set. The temperature T or the inverse temperature β(=1/T) is set to an initial value T0 or β0. An initial state is randomly set for each of N spins (nodes) σ included in the model. The value of a spin may be binary, but here, +1 and −1. The external magnetic field coefficient hi is determined for each node, and an interaction coefficient jij between the nodes is determined. In the present example, a self-action q is introduced as a parameter, and the self-action is set to an initial value q←q0. These data are determined based on the model and set in the annealing machine. Specific structures of the annealing machine are described in International Publication WO 2015-132883, JP-A-2019-16077, JP-A-2019-16129, JP-A-2019-71113, JP-A-2019-87273, and “An accelerator architecture for combinatorial optimization problems”, Sanroku Tsukamoto et. Al., Fujitsu Sci. Tech. J., Vol. 53, No. 5 (September 2017). Next, the processing S402 to S404 illustrate a flow of a spin update.
In the processing S402, an instantaneous magnetic field is calculated. The instantaneous magnetic field Ihi is calculated in parallel for each spin. In this method, since the spins are updated in parallel, the changes of all the spins are reflected, and Ih1←hi+Σj=1˜Nσjjij.
In the processing S403, the update probability p1 of each spin is calculated and updated in parallel.
pi←ρ(−βσiIhi-q)
Here, ρ generally uses a sigmoid function, but other functions are also possible.
In the processing S404, whether or not each spin can be updated is determined based on the spin update probability pi, and the spins are updated in parallel (σ1←−σi).
In the processing S405, the annealing step is advanced by one (t←t+1). Further, the temperature T or the inverse temperature β is updated ((T←T (t)) or (β←β(t))). Further, the self-action q is updated (q←q(t)). Here, T(t), β(t), and q(t) are functions defined by the user.
The user can arbitrarily select T(t), β(t), and q(t). In general, the temperature T gradually decreases as the annealing step proceeds, and the reciprocal inverse temperature β gradually increases. In addition, q(t) may set in principle so that the i-th spin of the left spin group and the i-th spin of the right spin group illustrated in
The processing S402 to S405 are repeated until the annealing step t reaches t_max in the determination processing S406. When the annealing step t reaches t_max, a spin arrangement σi is read and output as a (pseudo) optimized spin arrangement (S407).
The principle of the processing S402 to S404 related to the spin update is an application of an algorithm called probabilistic cellular automaton (PCA) (see “Sampling from a Gibbs Measure with Pair Interaction by Means of PCA”, Paolo Dai Pra et. Al., J Stat Phys (2012) 149:722-737 DOI 10.1007/s10955-012-0612-9). “Sampling from a Gibbs Measure with Pair Interaction by Means of PCA”, Paolo Dai Pra et. Al., J Stat Phys (2012) 149:722-737 DOI 10.1007/s10955-012-0612-9 introduces the self-action q as a parameter, and the parameter q controls the average number of spin inversions in one update step. However, “Sampling from a Gibbs Measure with Pair Interaction by Means of PCA”, Paolo Dai Pra et. Al., J Stat Phys (2012) 149:722-737 DOI 10.1007/s10955-012-0612-9 is a research paper on Gibbs Measure and does not relate to an optimization problem or annealing.
In the Ising model, two coupled spins cannot usually be updated simultaneously. This is because errors occur in the estimated values of the energy changes. Therefore, when the complete graph illustrated in
However, the spin arrangement on the right side and the spin arrangement on the left side in
Example 1 has illustrated a basic concept. In this method, the calculation of the instantaneous magnetic field, the calculation of the update probability of the spin, and the update of the spin can all be executed in parallel. However, the calculation of the instantaneous magnetic field needs to reflect the state of all nodes. When using a sigmoid function, it is necessary to calculate the function. In Example 2, a specific implementation that further considers computation efficiency will be described.
In Example 2, the update probability of a spin is calculated by xi=σIIhi+qT. An example of calculation will be described again with reference to
Here, assuming that the values of spins are σ1=σ2=σ3=σ5=1 and σ4=−1,
x1=qT+J21+j31−j41+j51
<1. Overview of Processing>
Step S501 is data initialization. The annealing step t is set to an initial value 0. The maximum step (t_max) is set, and how many times the spin update is repeated is set. A temperature 2T or the inverse temperature β(=½T) is set to an initial value 2T0 or ½T0. An initial state is randomly set for each of N spins (nodes) σ included in the model. The value of a spin may be binary, but here, +1 and −1. The external magnetic field coefficients hi is determined for each node, and an interaction coefficient jij between the nodes is determined. As in
The difference from Example 1 is that the temperature is twice T and the product qT of the temperature is used as the self-action q. The reason will be described later.
In the processing S502, the instantaneous magnetic field is updated. The instantaneous magnetic field Ihi is calculated and updated in parallel for each spin. Although each spin is updated in parallel in this method, the calculation of the instantaneous magnetic field reflects only the effect of the node with the spin inversion flag Fj=1, that is, the node whose spin has been updated. That is, Ihi←Ihi+2jijσj.
In the processing S503, an update probability xi of each spin is calculated and updated in parallel.
xi=σiIhi+qT
Here, a function obtained by linearly approximating the sigmoid function is used for xi.
In the processing S504, whether or not each spin can be updated is determined based on the spin update probability xi and updated in parallel. For the spin to be updated, σi←−σi. In addition, the spin inversion flag of the updated spin set is updated so that Fi←1. In the processing S505, the annealing step is advanced by one (t←t+1). Further, the temperature or the inverse temperature is updated ((2T+2T (t)) or (β/2←β/2(t))). The temperature 2T gradually decreases as the step proceeds, and the reciprocal inverse temperature β/2 gradually increases. Further, the self-action qT is updated (qT←qT (t)). Here, 2T(t), β/2 (t), and qT (t) are functions defined by the user. The conditions for setting the self-action qT(t) are the same as in Example 1.
The processing S502 to S505 are repeated until the annealing step t reaches t_max in the determination processing S506. When the annealing step t reaches t_max, the spin arrangement σi is read and output as a (pseudo) optimized spin arrangement (S507).
<2. Overview of Apparatus Configuration>
<2.1. Control Apparatus>
The control device 610 is, for example, a personal computer (PC) and includes a PCA annealing control unit 611 and an interaction/instantaneous magnetic field preparation unit 612. The control device 610 controls the annealing machine 620 as a higher-level device. Further, the control device 610 executes the initialization processing S501.
The PCA annealing control unit 611 performs overall control of the annealing machine 620, such as inputting/outputting data to/from the annealing machine 620, setting of an annealing step and various parameters. The interaction/instantaneous magnetic field preparation unit 612 converts the optimization problem into an Ising model, and calculates and prepares an interaction coefficient jij, an external magnetic field coefficient hi, and an instantaneous magnetic field Ihi. The PCA annealing control unit 611 inputs these data to the annealing machine 620 and sets the data.
The control device 610 includes an input device, an output device, a processing device, and a storage device, like a normal PC. In the present example, functions such as calculation and control are realized by executing a program stored in the storage device by the processing device in cooperation with other hardware. A program executed by a computer or the like, a function, or means for realizing the function may be referred to as “function”, “means”, “unit”, “module”, or the like.
The above configuration may be configured by a single computer, or any part of the input device, the output device, the processing device, and the storage device may be configured by another computer connected via a network. In the present example, the functions equivalent to the functions configured by software can be realized by hardware such as a field programmable gate array (FPGA) and an application specific integrated circuit (ASIC).
<2.2. Annealing Machine>
The annealing machine 620 includes an I/O interface 621 and a PCA annealer 622. The PCA annealer 622 includes a memory access interface 623, an annealing control unit 700, and a PCA step unit 800. The annealing machine 620 is a circuit dedicated to annealing that performs annealing.
The I/O interface 621 controls transmission and reception of data between the annealing machine 620 and the control device 610. The memory access interface 623 records and reads data to and from various memories included in the annealing machine 620.
<3. PCA Annealer>
The PCA annealer 622 exchanges data with the control device 610 via the I/O interface 621. The memory access interface 623 stores the data received from the I/O interface 621 in a memory in the PCA annealer 622. Further, data is read from the memory to the control device 610 via the I/O interface 621. Writing and reading of data to and from the memory can be configured by applying, for example, a static random access memory (SRAM) technology. Such hardware is described in International Publication WO 2015-132883, for example.
The annealing control unit 700 includes a step update/annealing end determination unit 710, a temperature update unit 720, a self-action update unit 730, and an annealing control register 740. The annealing control unit 700 performs initial value setting and updating of various parameters for updating spins in the annealing process. The annealing control unit 700 can be composed of, for example, a microcomputer. The annealing control register 740 stores the current temperature 2T and the value of the self-action qT and the change parameters thereof, the current number of steps t, and the maximum number of steps tmax. The temperature update unit 720 and the self-action update unit 730 update the temperature and the self-action by using the numerical values of the annealing control register 740.
The PCA step unit 800 includes a spin interaction memory 810, a spin state update unit 820, and a random number generation unit 830. The spin interaction memory 810 stores the interaction coefficient jij. The spin state update unit 820 includes N spin update units 821, and each spin update unit 821 includes an instantaneous magnetic field register 822. The PCA step unit 800 updates the values of the spins of the N spin update units 821 in parallel. In addition, the values of the instantaneous magnetic fields of the N instantaneous magnetic field registers 822 are updated in parallel. The random number generation unit 830 generates random numbers.
<3. Annealing Control Unit>
<3.1. Overall Configuration>
The step update/annealing end determination unit 710 determines whether the annealing step has reached the maximum value tmax and outputs N spin states in an inverted spin buffer 826 if the annealing step is the maximum value. The N spin states are output to the control device 610 as an optimized spin arrangement via the memory access interface 623 and the I/O interface 621. If the annealing step is not the maximum value, the annealing step t←t+1 is set, the temperature update unit 720 updates the temperature 2T, the self-action update unit 730 updates the self-action qT and updates the value of the annealing control register 740. The updated temperature 2T and self-action qT are output to the spin state update unit 820.
<3.2. Step Update/Annealing End Determination Unit>
<3.3. Temperature Update Unit and Self-Action Update Unit>
When a step end signal is obtained from the spin state update unit 820, a current parameter x and a parameter update parameter xmult are read from the annealing control register 740. The parameter x and the parameter update parameter xmult are integrated, and x←x*xmult is written to the annealing control register 740 as a new parameter.
<4. PCA Step Unit>
<4.1. Overall Configuration>
The temperature 2T is input from the annealing control register 740 of the annealing control unit 700 to the random number generation unit 830, and random numbers having a value in the range of −2T to 2T are generated. Different random numbers are input to a spin state determination unit 825.
The spin value is updated by the spin state update unit 820. The spin state update unit 820 includes an instantaneous magnetic field calculation unit 823, a probability calculation unit 824, a spin state determination unit 825, an inverted spin buffer 826, and an inverted spin selection circuit 827. The self-action qT is input from the annealing control register 740 of the annealing control unit 700 to the spin state update unit 820. The random numbers are input from the random number generation unit 830. The interaction coefficient jij is input from the spin interaction memory. Based on these, the state of each spin is updated.
<4.2. Instantaneous Magnetic Field Calculation Unit>
The spin value σi having +1 or minus −1 is sign-extended. “<<1” means to shift a bit one place to the left, which is the same as multiplying by 2. Thereby, 2σjjij is calculated. 2σjjij is added to the value of the current instantaneous magnetic field Ihi of the instantaneous magnetic field register 822, and a new instantaneous magnetic field value is written to the instantaneous magnetic field register 822 as Ihi←Ihi+2σjjij. The value of the instantaneous magnetic field Ihi is input to the probability calculation unit 824.
As described in
<4.3. Probability Calculation Unit>
The sign value of the value of the spin σi having +1 or −1 is sign-extended, and the instantaneous magnetic field Ihiσi is calculated and added to the self-action qT. Thereby, the inversion probability xi=σiIhi+qT is obtained.
<4.4. Spin State Determination Unit>
The spin state determination unit 825 compares the inversion probability xi with a random number and inverts the sign of the value of the spin σi if the inversion probability xi is smaller than the random number. When the spin is inverted, the inversion flag Fi of the inverted spin buffer 826 is set. As described above, Fi is set to “1” when the spin σi is inverted by the spin state determination unit 825 and is set to “0” when the spin σ1 is not inverted by the spin state determination unit 825.
<4.5. Spin Update Time Chart>
<4.6. Inverted Spin Buffer and Inverted Spin Selection Circuit>
The value of the spin σ1 is sent to the corresponding instantaneous magnetic field calculation unit 823 via a selector 1001 of the inverted spin selection circuit 827. The address of the spin for which the value of the inversion flag Fi is “1” is sent to a spin interaction memory 310. The spin interaction memory 310 sends the interaction jij specified by the address to the instantaneous magnetic field calculation unit 823.
When the transmission of all data is completed, a priority circuit 1002 transmits a step end signal to the annealing control unit 700. Upon receiving the step end signal, the annealing control unit 700 starts the next step.
<4.7. Example of Inversion Flag>
In cycle 1 in which the inverted spin selection circuit 827 starts processing, the inversion flag is set to “F4F3F2F1”=“1011”. The priority circuit 1002 knows from the inversion flag “1011” that F4=1 and the spin of σ4 has been updated. Therefore, the selector 1001 sends the updated spin σ4 of the inverted spin buffer to the instantaneous magnetic field calculation unit 823 and sends the corresponding address “11” to the spin interaction memory 810. The spin interaction memory 810 sends j41, j42, and j43 corresponding to the address “11” to the instantaneous magnetic field calculation unit 823. Next, F4=0 is set, and the inversion flag is changed to “0011”.
In cycle 2, the inversion flag is changed to “F4F3F2F1”=“0011”. The priority circuit 1002 knows from the inversion flag “0011” that F2=1 and the spin of σ2 has been updated. Therefore, the selector 1001 sends the updated spin σ2 of the inverted spin buffer to the instantaneous magnetic field calculation unit 823 and sends the corresponding address “01” to the spin interaction memory 810. Next, F2=0 is set, and the inversion flag is changed to “0001”.
The same applies to the following cycles. If the inversion flag eventually becomes all zeros, the priority circuit 1002 determines that the processing has been completed and generates a step end flag. Then, a step end signal is sent to the annealing control unit 700.
<5. Calculation of Spin Inversion Probability>
In Example 1, it has been described that a sigmoid function is generally used as the spin update probability p. However, when the sigmoid function is used, the calculation load is large. Therefore, the use of linear approximation to reduce the circuit scale and the amount of calculation was studied.
pi=sigmoid(−xi/T)
xi=σiIhi+qT
If pi>rand″∈(0,1), the spin is inverted and σi←−σi.
Here, pi is linearly approximated as follows. When xi<−2T, pi≅1
When −2T≤xi≤2T, pi≅½−xi/4T
When 2T<xi, pi≅0
If pi>rand″, the spin is inverted and σi←−σi.
As described above, in the graph of
rand′=(rand″−½)×4T
A spin update probability n is as follows.
ηi=(pi−½)×4T
By linear approximation,
When xi<−2T, ηi≅2T
When −2T≤xi≤2T, ηi≅−xi
When 2T<xi, ηi≅−2T
If ηi>rand′, the spin is inverted and σi←−σi.
rand=−rand′.
A spin update probability ξ is as follows.
ξ1=−ηi
By linear approximation,
When xi<−2T, ξ1−2T
When −2T≤xi≤2T, ξi≅xi
When 2T<xi, ξi≅2T
If ξi<rand, the spin is inverted and σi←−σi.
<6. Processing Flow of Spin Update>
<7. Processing of Spin Update Circuit>
<8. Method for Generating Random Numbers>
First, a random number of predetermined bits (for example, 32 bits) is generated by a known method (S1301).
Next, the random number generation unit 830 creates a 2T mask (S1302). The 2T mask is obtained by changing the bits of the 2T below the most significant bit where 1 exists to 1s. For example, when 2T is “01010”, the 2T mask is “01111”.
Then, a logical product (AND) of the 2T mask and the random number (A) is obtained (S1303). (B) of
Next, the AND result (B) is compared with 2T (S1304). If the AND result is not smaller than 2T, the exclusive OR (XOR) of the AND result (B) and the 2T mask is taken. (C) of
When the AND result (B) is smaller than 2T, the sign of the AND result (B) is directly extended to obtain a random number from −2T to 2T.
A comparator 835 compares the AND result (B) with 2T (S1304). The comparison result is input to a selector 836. When the AND result (B) is smaller than 2T, the selector 836 inputs the AND result (B) to a sign extender 837. When the AND result (B) is not smaller than 2T, the selector 836 inputs the exclusive OR (XOR) of the AND result (B) and the 2T mask generated by an XOR circuit 834 to the sign extender 837. The sign extender 837 generates a random number of 2T from −2T.
As described above, in the present example, the calculation speed is increased by the parallel processing. In addition, by compressing the amount of individual calculations in the parallel processing, the circuit configuration is simplified, the power consumption is reduced, and the processing speed is further increased.
In Example 2, as described with reference to
In order to construct an annealing machine capable of searching for a ground state of a large-scale Ising model including a large number of spins, it is necessary to mount unit elements on a semiconductor chip in a number corresponding to the number of spins. Such a semiconductor device has a large chip size and a high manufacturing cost. Therefore, when realizing such a semiconductor device, it is desirable to construct by connecting a plurality of semiconductor chips on which a certain number of unit elements are mounted. In Example 4, a plurality of the annealing machines described in Example 1 are connected. Here, the annealing machine is a semiconductor chip created by a semiconductor manufacturing technique and is referred to as an annealing chip.
In the configuration of the multi-annealer chips, it is necessary that the chips share the spin state σi and updated spin information. Therefore, these pieces of information are transmitted between the annealer chips 1700 as transmission data. The contents of the transmission data are the updated value of the spin σ1 and the interaction coefficient jij.
In
This example illustrates an example in which a macro-spin is used instead of a spin. The macro-spin applies a majority value of the values of a plurality of spins instead of a value of individual spin.
For example, it is assumed that the number of spins belonging to a certain group is 6. Assuming that the values of the six spins are 1,1, −1,1, −1, and 1, the macro-spin of this group is “1” because there are four “1” and two “−1”. All the values of the spins in the group are treated as “1”. By using the macro-spin, the amount of calculation can be reduced.
The initialization processing S1901 is the same as the initialization processing S501 in
In the macro-spin state determination processing S1902, the value of the macro-spin is determined by the majority determination described above. For example, if the sum of the values of the spins σi in a group m is greater than 0, macro-spin σ′m=1, otherwise σ′m=−1.
In the spin update processing S1903, the instantaneous magnetic field Ih and the update probability x of each spin are calculated by using the macro spin, and the spin is updated. Except for using the macro-spin instead of the spin, the example may be the same as the example of
In the processing S1904, the annealing parameters are updated. The details of the update may be the same as in the example of
This is repeated until the annealing step t reaches t_max in the determination processing S1905. When the annealing step t reaches t_max, the spin arrangement σi is read and output as a (pseudo) optimized spin arrangement (S1906).
The present invention is not limited to the embodiments described above and includes various modification examples. For example, a part of the configuration of one example can be replaced with the configuration of another example, and the configuration of another example can be added to the configuration of one example. Further, for a part of the configuration of each example, it is possible to add, delete, or replace the configuration of another example.
Number | Date | Country | Kind |
---|---|---|---|
2019-162856 | Sep 2019 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
20170068632 | Yoshimura et al. | Mar 2017 | A1 |
20170185380 | Hayashi | Jun 2017 | A1 |
20170351949 | Matsubara et al. | Dec 2017 | A1 |
20180107172 | Takatsu | Apr 2018 | A1 |
20190012409 | Matsubara et al. | Jan 2019 | A1 |
20190012410 | Matsubara et al. | Jan 2019 | A1 |
20190235033 | Ohzeki | Aug 2019 | A1 |
Number | Date | Country |
---|---|---|
2019-87273 | Apr 2018 | JP |
2019-16077 | Jan 2019 | JP |
2019-16129 | Jan 2019 | JP |
2019-71113 | May 2019 | JP |
2015132883 | Sep 2015 | WO |
Entry |
---|
Paolo Dai Pra et al., “Sampling from a Gibbs Measure with Pair Interaction by Means of PCA”, J Stat Phys, 2012, 149, p. 722-737. |
Sanroku Tsukamoto et al., “An Accelerator Architecture for Combinatorial Optimization Problems”, Fujitsu Sci. Tech. J., vol. 53, No. 5, Sep. 2017, p. 8-13. |
Number | Date | Country | |
---|---|---|---|
20210072959 A1 | Mar 2021 | US |