Annealing apparatus, annealing method and program

The annealing processing device and method facilitate high-speed merging and annealing through parallel processing using matrix calculations, addressing the speed limitations of existing technologies by integrating merging and annealing operations within a single device.

JP2025118413APending Publication Date: 2025-08-13INSTITUTE OF SCIENCE TOKYO +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024013724
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-01-31
Publication Date
2025-08-13

AI Technical Summary

Technical Problem

Existing annealing processes, such as those using quantum annealing or simulated annealing, face challenges in performing merging and annealing operations at high speed due to sequential processing or the need for communication between devices, leading to delays.

Method used

An annealing processing device and method that includes an annealing control unit, merging processing unit, local field calculation unit, and inversion processing unit, which perform merging and annealing operations in parallel using matrix calculations to determine merged spins and calculate local fields and inversion probabilities.

Benefits of technology

Enables high-speed merging and annealing processing by eliminating the need for sequential operations and device communication, thereby enhancing processing efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025118413000001_ABST
    Figure 2025118413000001_ABST
Patent Text Reader

Abstract

To provide an annealing apparatus capable of high-speed merging and annealing processes.SOLUTION: An annealing apparatus includes: an annealing control unit which controls an annealing process to be performed; a merging unit which performs a merging process to generate a matrix corresponding to merge information which is information determined by the merging process, the merging process including determining a merged spin which is a spin to be merged, in a plurality of spins in an Ising model, and a counter spin which is a spin to which the merged spin is to be merged; a local field calculation unit which calculates, in parallel, local fields of the spins in the Ising model by matrix calculation using the matrix; and a flip processing unit which calculates, in parallel, flip probabilities for the spins based on the local field and performs a process to flip the spins based on the flip probabilities.SELECTED DRAWING: Figure 5
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to an annealing processing apparatus, an annealing processing method, and a program. [Background technology]

[0002] Annealing algorithms (simulated annealing methods), such as quantum annealing or simulated annealing, are known for solving the problem of searching for the ground state of an Ising model. For example, Non-Patent Document 1 discloses a merging process for designing multi-spin flips in an Ising machine. The merging process is a process for merging spins in an Ising model with other spins. By performing the merging process, it is possible to obtain a better solution. [Prior art documents] [Non-patent literature]

[0003] [Non-Patent Document 1] Tatsuhiko Shirai and Nozomu Togawa, "Multi-Spin-Flip Engineering in an Ising Machine", IEEE Transactions On Computers, Vol. 72, No. 3, March 2023, https: / / www.computer.org / csdl / journal / tc / 2023 / 03 / 09783142 / 1DIx1TTQmB2 Summary of the Invention [Problem to be solved by the invention]

[0004] In the technology disclosed in Non-Patent Document 1, the merge process is performed sequentially for each spin. In contrast, the annealing process is performed in parallel for multiple spins. Therefore, if the merge process is performed in the same device that performs the annealing process, the processing speed may be slow. On the other hand, if the merge process is performed in a device other than the device that performs the annealing process, communication between these devices is required, which may also result in delays. Therefore, it is difficult to perform the merge process and annealing process at high speed.

[0005] An object of the present disclosure is to provide an annealing processing device, an annealing processing method, and a program that are capable of performing merging and annealing processing at high speed. [Means for solving the problem]

[0006] The annealing processing device according to the present disclosure is an annealing processing device that finds a solution using an Ising model, and includes an annealing control unit that controls the annealing processing to be performed, a merging processing unit that performs a merging processing including determining a merged spin, which is a spin to be merged among a plurality of spins in the Ising model, and a merge destination spin, which is a spin to merge the merged spin into, and generates a matrix corresponding to merge information, which is information determined by the merging processing, a local field calculation unit that calculates local fields of a plurality of spins in the Ising model in parallel by matrix calculation using the matrix, and an inversion processing unit that calculates inversion probabilities of the plurality of spins in parallel based on the local fields, and performs processing to invert the spins based on the inversion probabilities.

[0007] The annealing method according to the present disclosure is an annealing method for finding a solution using an Ising model, which performs control so that an annealing process is performed, performs a merging process including determining a merged spin, which is a spin to be merged among a plurality of spins in the Ising model, and a merge destination spin, which is a spin to merge the merged spin into, generates a matrix corresponding to merge information, which is information determined by the merging process, calculates local fields of a plurality of spins in the Ising model in parallel by matrix calculation using the matrix, calculates inversion probabilities of the plurality of spins in parallel based on the local fields, and performs processing to invert the spins based on the inversion probabilities.

[0008] The program according to the present disclosure is a program that realizes an annealing processing method for finding a solution using an Ising model, and causes a computer to execute the following processes: a process of controlling the annealing processing; a process of performing a merging process that includes determining a merged spin, which is a spin to be merged among a plurality of spins in the Ising model, and a merge destination spin, which is a spin to merge the merged spin into, and a process of generating a matrix corresponding to merge information, which is information determined by the merging process; a process of calculating local fields of a plurality of spins in the Ising model in parallel by matrix calculation using the matrix; and a process of calculating reversal probabilities of the plurality of spins in parallel based on the local fields, and performing a process to reverse the spins based on the reversal probabilities. [Effects of the Invention]

[0009] According to the present disclosure, it is possible to provide an annealing processing device, an annealing processing method, and a program that are capable of performing merging processing and annealing processing at high speed. [Brief explanation of the drawings]

[0010] [Figure 1] FIG. 10 is a diagram illustrating the significance of introducing a merge process. [Figure 2] FIG. 10 is a diagram illustrating a merge process. [Figure 3] 10 is a flowchart showing an annealing process according to a comparative example. [Figure 4] 10A and 10B are diagrams for explaining a specific method for calculating spin-spin interactions and an external magnetic field after merging processing according to a comparative example. [Figure 5] 1 is a functional block diagram showing a configuration of an annealing treatment apparatus according to a first embodiment. [Figure 6] FIG. 2 is a diagram for explaining a merge process performed by a merge processor according to the first embodiment; [Figure 7] FIG. 4 illustrates an example of processing by an inversion processing unit according to the first embodiment; [Figure 8] FIG. 2 is a diagram showing an annealing method performed by the annealing treatment apparatus according to the first embodiment. [Figure 9] FIG. 10 is a diagram showing a specific method for calculating the spin-spin interaction after the merging process and the external magnetic field after the merging process using a merge destination matrix and a spin product matrix according to the first embodiment. [Figure 10] FIG. 10 is a diagram for explaining a generalized merge process according to the first embodiment. [Figure 11] FIG. 10 is a diagram for explaining a spin product matrix when replica processing is performed in the first embodiment. [Figure 12] FIG. 4 is a diagram for explaining a method of calculating a local field when replica processing is performed in the first embodiment. [Figure 13] FIG. 4 is a diagram showing experimental results of an annealing algorithm executed by the annealing processing device according to the first embodiment. [Figure 14] FIG. 4 is a diagram showing experimental results of an annealing algorithm executed by the annealing processing device according to the first embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0011] (Outline of the embodiment) Before describing the embodiments, an outline of the embodiments will be described. Note that, although the embodiments will be described below, the following embodiments do not limit the scope of the invention according to the claims. Furthermore, not all of the combinations of features described in the embodiments are necessarily essential to the solution of the invention.

[0012] <About annealing> First, we will explain the combinatorial optimization problem using general simulated annealing (SA). The combinatorial optimization problem is equivalent to finding σ that minimizes the energy H shown in the following formula 1. In other words, the combinatorial optimization problem is equivalent to finding the minimum energy state (ground state) of the Ising model, where the energy H is given by formula 1. Formula 1 shows the energy function (Hamiltonian) in simulated annealing.

number

[0013] Here, σ on the left side of Equation 1 is the vector (σ i (spin arrangement). Also, σ i (and σ j ) is a component of σ.

number

[0014] where σ i is a binary parameter (state parameter; spin value) that indicates the state (Ising spin) of spin (node; lattice point) i in the Ising model. As shown in Equation 2, σ i takes the value of either -1 or +1. In the following explanation, for convenience, σ is used in the sense of spin i. i In addition, N is the number of spins. In addition, J in Eq. ij is the spin i(σ i ) and spin j(σ j) is the interaction coefficient (coupling coefficient) that indicates the interaction (spin-spin interaction; strength of bonding) between the two atoms. ij indicates, for example, the distance between spin i and spin j, or the weight between spin i and spin j. i is the spin i(σ i ) is the external magnetic field coefficient that indicates the external magnetic field relative to the ij and external magnetic field coefficient h i is given in advance according to the problem to be solved by the annealing algorithm. In other words, once the combinatorial optimization problem to be solved is determined, the interaction coefficient J ij and external magnetic field coefficient h i can be uniquely determined.

[0015] In simulated annealing, the combinatorial optimization problem corresponds to searching for σ that minimizes the energy H in Equation 1. The spin state in the ground state is expressed by the following Equation 3: σ g indicates the combination of spin states that forms the minimum energy state.

number

[0016] In addition, the interaction coefficient J ij The spin-spin interaction J of the entire Ising model, whose components are n, is expressed in matrix form as shown in the following formula 4. Note that in the following formulas 4 to 6, the number of spins is n. As shown in formula 4, the diagonal components of the spin-spin interaction J are 0.

number

[0017] Furthermore, when the spin state σ of the n spins in the entire Ising model is expressed in vector form (1×n matrix), it becomes as shown in the following formula 5.

number

[0018] In addition, the external magnetic field coefficient h i When the external magnetic field h of the entire Ising model, which has components, is expressed in vector form (1 × n matrix), it becomes as shown in the following Equation 6.

number

[0019] Furthermore, when formula 1 is expressed using formulas 4 to 6, the following formula 7 is obtained.

number

[0020] Generally, it is not possible to analytically solve σ that minimizes H. Therefore, a solution is searched for by stochastic sampling. For example, a simulated annealing algorithm based on the Monte Carlo method is executed. Then, as the annealing step, which is a Monte Carlo step, progresses, the number of updated spins (the number of spins updated (flipped) in each annealing step; the number of flips) decreases, and the simulated annealing algorithm is executed so that the energy H shown in Equation 1 decreases. Then, as the state approaches the ground state, the number of updated spins converges to 0, and the energy H converges to the minimum energy. In other words, as the execution of the annealing algorithm progresses, the state in the Ising model converges.

[0021] The annealing algorithm also introduces the concept of pseudo-temperature. Generally, the pseudo-temperature decreases as the annealing step progresses. In other words, the pseudo-temperature can be expressed as a monotonically decreasing function of the annealing step. Here, when the pseudo-temperature is large, i.e., at high temperatures, the annealing algorithm broadly explores various spin states of the Ising model, accepting spin flips that worsen energy, i.e., that increase energy. On the other hand, when the pseudo-temperature is small at the end of the annealing process, i.e., at low temperatures, the annealing algorithm locally explores spin states, rejecting spin flips that worsen energy.

[0022] In simulated annealing, in a fully connected (complete graph) Ising model where all spins interact with each other, updating (flipping) the state of each spin affects the states of all other spins. Therefore, the spin states cannot be updated in parallel, and the state of each spin is updated sequentially. Therefore, simulated annealing may have a slow processing speed (convergence speed).

[0023] In contrast, in PSA (Parallel-trial Simulated Annealing), which is one of the annealing algorithms, it is determined in parallel whether each of the multiple spins can be flipped (whether it can be updated (flipped)). That is, in PSA, it is determined in parallel whether each of the multiple spins can be updated. Then, in PSA, the local field (instantaneous magnetic field) is calculated in parallel for each of the multiple spins. Then, based on the calculated local field, the flip probability for each of the multiple spins is calculated in parallel. Then, based on the flip probability, it is determined whether each of the multiple spins can be flipped. Then, from the spins that can be flipped, one spin that will actually be flipped is randomly selected.

[0024] The local field is expressed by the following equation 8. For convenience, the left side of equation 8 may be expressed as "^h" or "h (hat)" in this specification. Furthermore, equation 8 is a matrix calculation. That is, the local field ^h, which is a 1×N matrix, is calculated using the spin state σ, which is a 1×N matrix, the spin-spin interaction J, which is an N×N matrix, and the external magnetic field h, which is a 1×N matrix.

number

[0025] <Merge process> Next, we will explain the merge process described in Non-Patent Document 1. The merge process is a technique in which an Ising model is temporarily deformed to virtually combine (merge) multiple spins, and when inverting one spin, one or more spins merged with that spin are inverted simultaneously, that is, multiple spins are inverted simultaneously.

[0026] Figure 1 is a diagram explaining the significance of introducing the merge process. Figure 1 is a graph with the horizontal axis representing the search solution and the vertical axis representing energy. The lower the vertical axis, the higher the quality of the solution. In the example of Figure 1, the Ising model is composed of four spins σ1 to σ4. In the example of Figure 1, each spin is represented by a circle, and the direction of the arrow inside the circle indicates the state of the corresponding spin (this is also true for other figures). Here, an upward arrow indicates that the corresponding spin state is "+1," and a downward arrow indicates that the corresponding spin state is "-1." Therefore, in Figure 1, the states of each spin in the local solution P1 are σ1 = -1, σ2 = +1, σ3 = -1, and σ4 = +1. In addition, the states of each spin in the optimal solution P2 are σ1 = +1, σ2 = +1, σ3 = -1, and σ4 = -1.

[0027] Here, for the spin state to transition from the local solution P1 to the optimal solution P2, it is sufficient to invert both spins σ1 and σ4. Here, in an annealing algorithm such as PSA, only one spin can be inverted. Therefore, when the spin state transitions from the local solution P1 to the optimal solution P2, it is necessary to pass through the intermediate solution P3 where the spin states are σ1 = -1, σ2 = +1, σ3 = -1, and σ4 = -1. As described above, at low temperatures where the pseudo temperature is small, spin inversions that increase energy are rejected. Therefore, if the energy of the intermediate solution P3 is higher than the energy of the local solution P1, it is not possible to transition from the local solution P1 to the intermediate solution P3. Therefore, it is not possible to transition from the local solution P1 to the optimal solution P2. In other words, at low temperatures, the spin state cannot escape from the local solution P1.

[0028] In contrast, by performing a merge process, it becomes possible to transition from the local solution P1 to the optimal solution P2, as described below. That is, in the local solution P1, the spins σ1 and σ4 are pseudo-merged by the merge process, and the spin-spin interaction J and the external magnetic field h after the merge process are recalculated. In this state, an annealing process is performed, and a demerge process is performed to return the merged state of multiple spins to their original state, thereby simultaneously inverting the spins σ1 and σ4. This allows the spin state to transition from the local solution P1 to the optimal solution P2 without passing through the intermediate solution P3. Therefore, even at low temperatures, the spin state can escape from the local solution P1 and transition to the optimal solution P2.

[0029] FIG. 2 is a diagram for explaining the merge process. First, among the multiple spins in an Ising model, a merged spin, which is a spin to be merged, and a merge destination spin, which is a spin to which the merged spin will be merged, are determined. In the example of FIG. 2, it is assumed that the Ising model is composed of five spins σ1 to σ5. In the example of FIG. 2, the spin states are σ1=-1, σ2=-1, σ3=-1, σ4=+1, and σ5=+1.

[0030] Then, suppose that spin σ1 is merged with spin σ4. That is, spin σ1 is determined as the merged spin, and spin σ4 is determined as the merge-destination spin corresponding to spin σ1. Then, merge information indicating the relationship between the merged spin and the merge-destination spin, and the spin product, is recorded. Here, the "spin product" is the product of a parameter (spin value) indicating the spin state of the merged spin and a parameter (spin value) indicating the spin state of the merge-destination spin. In the example of Figure 2, the spin state (spin value) of spin σ1, which is the merged spin, is "-1", and the spin state (spin value) of spin σ4, which is the merge-destination spin, is "+1", so the spin product σ1σ4 is -1.

[0031] Next, the spin-spin interaction and external magnetic field after the merge process are calculated based on the merge information. Specifically, the spin-spin interaction of the merge-destination spin after the merge process is obtained by adding the product of the original spin-spin interaction (interaction coefficient) of the merge-destination spin and the original spin-spin interaction (interaction coefficient) of the merged spin and the spin product. Similarly, the external magnetic field (external magnetic field coefficient) of the merge-destination spin after the merge process is obtained by adding the original external magnetic field (external magnetic field coefficient) of the merge-destination spin and the product of the original external magnetic field (external magnetic field coefficient) of the merged spin and the spin product. In the example of Figure 2, if the original spin-spin interaction of spin σ4 is J4, the original spin-spin interaction of spin σ1 is J1, and the spin-spin interaction of spin σ4 after the merge process is J4', then J4' = J4 + σ1σ4J1 as shown in Figure 2. In the example of FIG. 2, if the original external magnetic field of spin σ4 is h4, the original external magnetic field of spin σ1 is h1, and the external magnetic field after the merging process of spin σ4 is h4', then as shown in FIG. 2, h4'=h4+σ1σ4h1. Using these, the spin-spin interaction J' after the merging process of the entire Ising model and the external magnetic field h' after the merging process of the entire Ising model are calculated as shown in FIG. 2. Note that for the spin-spin interaction J' after the merging process and the external magnetic field h' after the merging process, the component related to the merged spin σ1 is 0. In addition, in the spin-spin interaction J' after the merging process, the component related to the merged spin σ1 is 0. i The diagonal component J of i,i will be 0.

[0032] The energy function H' (Hamiltonian) after the merging process is expressed as in the following formula 9. Here, in formula 9, σ' is a vector (1 × N matrix) that indicates the spin state after the merging process of the entire Ising model. σ' is composed only of components other than the spins to be merged, and the components of the spins to be merged are set to 0. Also, "'" indicates that it is after the merging process (the same applies to other formulas).

number

[0033] <Comparative Example> Next, an annealing algorithm incorporating a merge process according to a comparative example will be described. Here, the annealing algorithm performed by the PSA described above will be described, but the annealing algorithm is not limited to PSA.

[0034] 3 is a flowchart showing an annealing process according to a comparative example. First, a main loop starts in step S100. In the main loop, an annealing process is performed. In step S102, a pseudo temperature is updated. The pseudo temperature may be a function of the annealing step. In this case, the function of the pseudo temperature is a monotonically decreasing function of the annealing step.

[0035] In process S110, a merge process is performed. In process S111 of the merge process, a loop process starts. The loop process is performed sequentially for all spins, one spin at a time. In process S112, a spin to be merged is determined. That is, for all spins, it is determined sequentially whether the spin to be processed is a spin to be merged. Furthermore, processes S113 to S114 are performed sequentially for the determined spin to be merged. In process S113, a spin to be merged is determined. In process S114, as shown in FIG. 2, the spin-spin interaction J' after the merge process and the external magnetic field h' after the merge process are calculated. Then, when the process is completed for all spins, the loop process ends in process S115. The merge process may be performed a predetermined number of times in one main loop. Alternatively, one merge process may be performed for each predetermined number of main loops.

[0036] In process S120, a subloop is started for the spin state after the merge process. In the subloop, a process for spin reversal trial is performed. In process S122, the local field ^h' after the merge process is calculated by replacing ^h with ^h', σ with σ', J with J', and h with h' in Equation 8. Note that for each spin σ i Local field ^h' (i=1~N) i can be computed in parallel.

[0037] Next, in step S124, spin inversion processing is performed. In the inversion processing, each spin σ i For (i=1~N), the local field ^h' i Using this, the reversal probability P i The inversion probability P i is calculated using a sigmoid function.

[0038] Also, each spin σ i Regarding the reversal probability P iis greater than the random number rand, where 0≦rand<1. The random number rand can be generated for each of multiple spins. Therefore, the random number rand can be different for each spin. Then, the reversal probability P i Spin σ is larger than the random number rand i One spin to be inverted is randomly selected from the list. Then, the selected spin is inverted. Note that the repeated process from process S120 (start of sub-loop) to process S126 (end of sub-loop) may be repeated a predetermined number of times for the spin state after a certain merge process, for example. In other words, the local field of each spin is calculated a predetermined number of times, and the spin inversion process is performed.

[0039] When the sub-loop ends (S126), a demerge process is performed in step S130. In the demerge process, the spin state of the entire Ising model is returned from the state after the merge process to the state before the merge process. Specifically, the spin state σ' after the merge process is returned to σ by performing a process reverse to the merge process. The demerge process may be performed multiple times (i.e., the same number of times as the merge process) in one main loop.

[0040] In process S140, the main loop ends. The repeated process from process S100 (start of main loop) to process S140 (end of main loop) can be repeated, for example, until the pseudo temperature drops to a predetermined temperature. Alternatively, the repeated process may be repeated a given number of times. By repeatedly executing the processes from process S100 to process S140, the annealing step progresses and the annealing algorithm is repeated. Then, when the main loop ends and the annealing algorithm ends, in process S150, the spin arrangement σ i (i=1~N) is output as the optimal solution.

[0041] FIG. 4 is a diagram illustrating a specific method for calculating the spin-spin interaction J' after the merge process and the external magnetic field h' after the merge process according to a comparative example. FIG. 4 illustrates a case where, in an Ising model consisting of five spins σ1 to σ5, spin σ1 is merged into spin σ5 and spin σ3 is merged into spin σ4. That is, spin σ1, which is the spin to be merged, is merged into spin σ5, which is the merge destination spin, and spin σ3, which is the spin to be merged, is merged into spin σ4, which is the merge destination spin. Hereinafter, for convenience, merging spin σ1 into spin σ5 may be referred to as "merge 1 → 5," and merging spin σ3 into spin σ4 may be referred to as "merge 3 → 4." In addition, in the example of FIG. 4, the spin states of each spin are σ1 = -1, σ2 = +1, σ3 = +1, σ4 = -1, and σ5 = -1. In this case, the spin product σ1σ5 for "merge 1 → 5" is "1," and the spin product σ3σ4 for "merge 3 → 4" is "-1."

[0042] 4, a method for calculating the spin-spin interaction J' after the merge process for the spin-spin interaction J in the merge process according to the comparative example will be described. For "merge 1 → 5", as indicated by arrow A1, in the spin-spin interaction J indicated by arrow J0, the value obtained by multiplying each component in the first row, which is the row related to the merged spin σ1, by the spin product "1" is added to each component in the fifth row, which is the row related to the merge-target spin σ5. Then, each component in the first row is set to 0. Similarly, as indicated by arrow A1, the value obtained by multiplying each component in the first column, which is the column related to the merged spin σ1, by the spin product "1" is added to each component in the fifth column, which is the column related to the merge-target spin σ5. Then, each component in the first column is set to 0. However, the components in the first row and first column are not added to the diagonal components related to the merge-target spin σ5. Therefore, the diagonal components of the merge-target spin σ5 remain 0. In this way, the spin-spin interaction J' after the merge process for "merge 1 → 5" as indicated by arrow J1 is calculated.

[0043] Next, for "merge 3 → 4", as shown by arrow A2, in the spin-spin interaction J' shown by arrow J1, each component in the third row, which is the row related to the merged spin σ3, is multiplied by the spin product "-1", and the result is added to each component in the fourth row, which is the row related to the merge-target spin σ4. Then, each component in the third row is set to 0. Similarly, as shown by arrow A2, each component in the third column, which is the column related to the merged spin σ3, is multiplied by the spin product "-1", and the result is added to each component in the fourth column, which is the column related to the merge-target spin σ4. Then, each component in the third column is set to 0. However, the components in the third row and third column are not added to the diagonal components related to the merge-target spin σ4. Therefore, the diagonal components of the merge-target spin σ4 remain 0. In this way, the spin-spin interaction J' after the merge process of "merge 3 → 4" is calculated, as shown by arrow J2. The matrix shown by arrow J2 is the spin-spin interaction J' after the merge process, which is used in the calculation of the local field.

[0044] 4, a method for calculating the external magnetic field h' after the merge process for the external magnetic field h in the merge process according to the comparative example will be described. For "merge 1 → 5", in the external magnetic field h indicated by the arrow h0, the first component related to the merged spin σ1 is multiplied by the spin product "1", and the result is added to the fifth component related to the merge destination spin σ5. Then, the first component is set to 0. In this way, the external magnetic field h' after the merge process for "merge 1 → 5", as indicated by the arrow h1, is calculated.

[0045] Next, for "merge 3 → 4", in the external magnetic field h' indicated by arrow h1, the third component related to the merged spin σ3 is multiplied by the spin product "-1" and added to the fourth component related to the merged spin σ4. Then, the third component is set to 0. In this way, the external magnetic field h' after the merge process of "merge 3 → 4" is calculated as indicated by arrow h2. The matrix indicated by arrow h2 is the external magnetic field h' after the merge process, which is used in calculating the local field.

[0046] In this way, in the comparative example, spin-spin interactions are calculated for the merge process of "merge 1 → 5" and then calculated for the merge process of "merge 3 → 4". Similarly, in the comparative example, the external magnetic field is calculated for the merge process of "merge 1 → 5" and then calculated for the merge process of "merge 3 → 4". In this way, in the comparative example, the process is performed sequentially a number of times corresponding to the number of spins to be merged, and the spin-spin interactions and the external magnetic field after the merge process are calculated.

[0047] <Problem raised> Here, the problems of the comparative example will be explained. The processing of the annealing algorithm other than the merging process is performed in parallel for multiple spins. Therefore, the annealing algorithm other than the merging process (the processing surrounded by the dashed line in FIG. 3) is executed by an Ising machine (annealing computer; annealing machine), which is a device with excellent parallel processing capabilities such as a GPU (Graphics Processing Unit).

[0048] On the other hand, the above-mentioned merging process and demerge process are performed sequentially for each spin, as described above with reference to FIG. 4. Also, in the Ising model consisting of σ1 to σ5 illustrated in FIG. 2, consider merging spin σ1 with spin σ4 and merging spin σ4 with spin σ5. In this case, it is necessary to perform the processes of S113 and S114 for spin σ1, and then perform the processes of S113 and S114 for spin σ4. Thus, it is necessary to perform sequential calculations related to the merging process, such as calculating the spin-spin interaction J′ and the external magnetic field h′, for the number of spins to be merged. The same is true for the demerge process. Thus, in the comparative example, it is necessary to perform sequential merging processes for the number of spins to be merged. Therefore, in the comparative example, it is preferable that the merging process and demerge process (processes surrounded by dashed lines in FIG. 3) be performed by a device with excellent sequential arithmetic processing capabilities, such as a CPU (Central Processing Unit).

[0049] Here, in the comparative example, if the merging and demerge processes, which are sequential processes, are executed on an annealing computer that excels in parallel computing, such as a GPU, the processing speed will be slow. On the other hand, as described above, if the merging and demerge processes are executed on a CPU or the like and other annealing algorithms are executed on a GPU or the like, communication between the CPU and the GPU is required. Specifically, during the merging process, the spin state σ before the merging process, the spin-spin interaction J before the merging process, and the external magnetic field h before the merging process must be transmitted from the GPU to the CPU. Furthermore, the spin state σ' after the merging process, the spin-spin interaction J' after the merging process, and the external magnetic field h' after the merging process must be transmitted from the CPU to the GPU. Furthermore, during the demerge process, the spin state σ' after the merging process must be transmitted from the GPU to the CPU, and the spin state σ after the demerge process must be transmitted from the CPU to the GPU. If the number of spins is large and the number of merging and demerge processes is large, the frequency of communication becomes enormous, which may worsen communication delays.

[0050] In contrast, in this embodiment, as described below, a matrix corresponding to merge information related to the merge process is generated, and the local field is calculated by matrix calculation using this matrix. Therefore, instead of performing sequential merge processes as in the comparative example, calculations related to the merge process can be performed by matrix calculations that can be calculated in parallel. Therefore, even if the merge process is executed on an Ising machine that is excellent at parallel calculations, such as a GPU, it is possible to suppress the occurrence of processing delays. Furthermore, since it is not necessary to perform the merge process and the other annealing process on separate devices as in the comparative example, communication between devices does not occur. Therefore, it is possible to perform the merge process and the annealing process at high speed.

[0051] (Embodiment 1) Hereinafter, embodiments will be described with reference to the drawings. For clarity of explanation, the following description and drawings have been omitted and simplified as appropriate. In addition, the same elements in each drawing are designated by the same reference numerals, and duplicate explanations have been omitted as necessary.

[0052] <Annealing treatment equipment> 5 is a functional block diagram showing the configuration of an annealing processing apparatus 100 according to the first embodiment. The annealing processing apparatus 100 is, for example, a computer device such as a GPU or a GPGPU (General Purpose Computing on GPU). The annealing processing apparatus 100 has, as its main hardware components, a control unit 102, a storage unit 104, a communication unit 106, and an interface unit 108 (IF; Interface). The control unit 102, the storage unit 104, the communication unit 106, and the interface unit 108 are connected to each other via a data bus or the like.

[0053] The control unit 102 is, for example, a processor core. The control unit 102 has the function of executing control processing, arithmetic processing, etc. The control unit 102 has multiple processor cores. The storage unit 104 is, for example, a storage device such as a memory or a hard disk. The storage unit 104 is, for example, a ROM (Read Only Memory) or a RAM (Random Access Memory). The storage unit 104 has the function of storing control programs, arithmetic programs, etc. executed by the control unit 102. The storage unit 104 also has the function of temporarily storing processing data, etc. The storage unit 104 may include a database.

[0054] The communication unit 106 performs processing necessary for communicating with other devices via a wired or wireless network. The communication unit 106 may include a communication port, a router, a firewall, etc. The interface unit 108 is, for example, a user interface (UI). The interface unit 108 has an input device such as a keyboard, a touch panel, or a mouse, and an output device such as a display or a speaker. The interface unit 108 accepts data input operations by the user and outputs information to the user.

[0055] The annealing processing device 100 also has, as its components, a parameter storage unit 110, a model storage unit 112, and a matrix storage unit 114. The annealing processing device 100 also has, as its components, an annealing control unit 120, a merging processing unit 130, a local field calculation unit 140, an inversion processing unit 150, and a spin array output unit 170. The annealing processing device 100 uses these components to find a solution using an Ising model. The annealing processing device 100 is then configured to perform merging processing for each spin of the Ising model, and to perform annealing processing using a matrix generated using merge information related to the merging processing.

[0056] Each component can be realized, for example, by executing a program under the control of the control unit 102. More specifically, each component can be realized by the control unit 102 executing a program stored in the storage unit 104. Alternatively, each component may be realized by recording a necessary program on an arbitrary non-volatile recording medium and installing the program as needed. Each component may not necessarily be realized by software programs, but may be realized by any combination of hardware, firmware, and software. Each component may also be realized using a user-programmable integrated circuit, such as an FPGA (field-programmable gate array) or a microcomputer. In this case, a program consisting of each of the above components may be realized using this integrated circuit.

[0057] The parameter storage unit 110 may be realized by the memory unit 104. The parameter storage unit 110 stores various parameters used in the annealing process (annealing algorithm). Specifically, the parameter storage unit 110 stores the initial value of each parameter. Note that each parameter may change as the annealing steps progress. In other words, each parameter may be a function of the annealing steps. In this case, the parameter storage unit 110 may store a function corresponding to each parameter. Alternatively, the parameter storage unit 110 may store data (such as a lookup table) indicating the transition of the value of each parameter at each step.

[0058] For example, the parameter storage unit 110 may store parameters related to the annealing step t corresponding to the pseudo-temperature step. maxThe annealing step t corresponds to the number of steps in the main loop, which will be described later. The parameter storage unit 110 may also store parameters relating to sub-steps s in addition to the annealing step t, which corresponds to the pseudo-temperature step. The sub-step s is a step in one annealing step t. The sub-step s corresponds to a step in a sub-loop, which will be described later. The parameter storage unit 110 stores the maximum value s of the sub-steps s. max The annealing step t may be referred to as the main step t in contrast to the sub-step s.

[0059] The parameter storage unit 110 may also store parameters for the initial state of each spin. The parameter storage unit 110 may also store parameters related to the pseudo temperature. The parameter storage unit 110 may store data indicating the initial value T1 of the temperature T and the change in the temperature T (T(t)) as parameters related to the pseudo temperature. Alternatively, the parameter storage unit 110 may store data indicating the initial value β1 of the inverse temperature β (=1 / T) and the change in the inverse temperature β (β(t)) as parameters related to the pseudo temperature. T(t) and β(t) may be functions predetermined by the user. Note that the data of the functions related to the parameters described above may correspond to a lookup table indicating the correspondence between a certain annealing step t and the parameter values at that time.

[0060] The model storage unit 112 can be realized by the storage unit 104. The model storage unit 112 stores an Ising model corresponding to an optimization problem to be solved. Specifically, the model storage unit 112 stores an interaction coefficient J corresponding to the Ising model. ij External magnetic field coefficient h i That is, the model storage unit 112 stores the interaction coefficient J ij The spin-spin interaction J, which has the component, and the external magnetic field coefficient h i The external magnetic field h with components is stored.

[0061] The matrix storage unit 114 can be realized by the memory unit 104. The matrix storage unit 114 stores information indicating a matrix corresponding to merge information related to the merge process, which is generated by the merge processing unit 130, which will be described later. The matrix storage unit 114 stores a merge destination matrix L indicating the relationship between the merged spin and the merge destination spin, as a matrix corresponding to the merge information. The matrix storage unit 114 also stores a spin product matrix D indicating a spin product, which is the product of the spin value of the merged spin and the spin value of the merge destination spin that is the merge destination of the merged spin, as a matrix corresponding to the merge information. In other words, the spin product matrix D indicates the product of a parameter (spin value) indicating the state of the merged spin and a parameter (spin value) indicating the state of the merge destination spin that is the merge destination of the merged spin. The merge destination matrix L and the spin product matrix D will be described later.

[0062] The annealing control unit 120 can be realized by the control unit 102 (processor). The annealing control unit 120 controls the operations of the merge processing unit 130, local field calculation unit 140, and inversion processing unit 150, which will be described later. The annealing control unit 120 also performs control so that a predetermined annealing algorithm is executed. For example, the annealing control unit 120 may perform control so that the above-mentioned PSA algorithm is executed, but the algorithm to be executed is not limited to PSA.

[0063] The annealing control unit 120 also controls the annealing step. At this time, the annealing control unit 120 updates the temperature parameter T(t) for each main step t (first step) corresponding to a change in the pseudo temperature. The annealing control unit 120 performs control so that the states of multiple spins are determined in parallel for each updated temperature parameter. The annealing control unit 120 may perform control so that one or more merge processes are performed in one main step t. Alternatively, the annealing control unit 120 may perform control so that one merge process is performed every predetermined number of main steps t. Then, when one merge process is performed, the annealing control unit 120 may perform control so that one or more sub-steps s (second steps) are performed while maintaining the relationship between the merged spin and the merge-destination spin that underwent the merge process. In this case, the annealing control unit 120 may perform control so that one or more spin states are determined in parallel for each sub-step s. The annealing control unit 120 may also control the local field calculation unit 140 and the inversion processing unit 150 so that one inversion process is performed for one sub-step s. Then, the maximum value s of the sub-steps s in the main step t is max The number may be preset.

[0064] The merge processing unit 130 performs the above-described merge processing. That is, the merge processing unit 130 determines a merged spin among multiple spins in an Ising model and a merge destination spin for the merged spin, as described below. Then, the merge processing unit 130 generates merge information, which is information determined by the merge processing. As described with reference to FIG. 2, the merge information indicates the relationship between the merged spin and the merge destination spin, and the spin product of the spin value of the merged spin and the spin value of the merge destination spin. Note that the merge processing unit 130 according to the first embodiment does not calculate the spin-spin interaction after the merge processing, unlike process S110 according to the comparative example.

[0065] 6 is a diagram for explaining the merge processing performed by the merge processing unit 130 according to the first embodiment. Unlike the process S110 according to the comparative example, the merge processing unit 130 does not perform the merge processing sequentially for each spin, but performs the merge processing for all spins in parallel. The merge processing unit 130 performs the merge processing for N spins σ i (i=1,...N) is assigned a random number rand_m1, where 0≦rand_m1<1. The merge processing unit 130 assigns a random number rand_m1 to each spin σ i For the given random number rand_m1 and the preset merge rate P merge The merge processor 130 compares each spin σ i Regarding the given random number rand_m1, the merge rate P merge If the spin σ is smaller than i The merge processing unit 130 determines the spins σ1 and σ3 as the spins to be merged. The merge processing unit 130 executes the process of determining the spins to be merged in parallel for all spins. In the example of the merge processing shown in FIG. 4, the merge processing unit 130 determines the spins σ1 and σ3 as the spins to be merged.

[0066] The merge processor 130 also randomly determines a merge destination spin corresponding to each of the merged spins. Here, the merge processor 130 determines a merge destination spin in parallel for each of the merged spins. Specifically, as shown in FIG. 6, the merge processor 130 determines a merge destination spin for each of the N spins σ i A random number rand_m2 is assigned to each of the spins (i=1,...N). Here, 0≦rand_m2<1 may be satisfied. In the example of Figure 6, as shown by arrow SM1, rand_m2=0.1 is assigned to spin σ1, rand_m2=0.3 is assigned to spin σ2, rand_m2=0.5 is assigned to spin σ3, rand_m2=0.45 is assigned to spin σ4, and rand_m2=0.05 is assigned to spin σ5.

[0067] The merge processor 130 also calculates N spins σ i For each of these, its spin σ i All spins other than σ jSince (j≠i), it is not a merged spin and has spin σ i Random number rand_m2 and the spin σ with the closest random number rand_m2 j At this time, the merge processing unit 130 searches for N spins σ i In parallel for each of the spin σ j However, the merge processing unit 130 repeatedly searches for N spins σ i In other words, the merge processing unit 130 does not need to perform the above-described search process on the spins other than the merged spins. i For each of these, its spin σ i All spins other than σ j Therefore, it is not a merged spin and has spin σ i Random number rand_m2 and the spin σ with the closest random number rand_m2 j You may explore.

[0068] In the example of Fig. 6, as shown by the arrow SM2, in the initial state, the search results for the spins σ1 to σ5 indicate their own spins. j = σ1, and a search is performed for spins σ1 to σ5. Here, since spin σ1 is the spin to be merged, the merge processing unit 130 does not update the search results for spins σ1 to σ5.

[0069] Next, the merge processing unit 130 calculates the search target by the spin σ j = σ2, and a search is performed on spins σ1 to σ5. Here, spin σ2 is not a merged spin. And spin σ2 is the first spin to be searched that is not a merged spin. Therefore, the merge processing unit 130 updates the search results of spins σ1 and σ3, which are merged spins, to "σ2". Note that the search results of spins σ2, σ4, and σ5, which are not merged spins, are not updated. Note that the difference between the random number rand_m2 assigned to the merged spin σ1 and the random number rand_m2 assigned to spin σ2 is Δ 12= 0.2. The difference between the random number rand_m2 assigned to the merged spin σ3 and the random number rand_m2 assigned to the spin σ2 is Δ 32 =0.2.

[0070] Next, the merge processing unit 130 calculates the search target by the spin σ j = σ3, and a search is performed for spins σ1 to σ5. Here, since spin σ3 is the spin to be merged, the merge processing unit 130 does not update the search results for spins σ1 to σ5.

[0071] Next, the merge processing unit 130 calculates the search target by the spin σ j = σ4, and a search is performed for spins σ1 to σ5. Here, spin σ4 is not a merged spin. The difference between the random number rand_m2 assigned to the merged spin σ1 and the random number rand_m2 assigned to spin σ4 is Δ 14 =0.35. This difference Δ 14 is the difference Δ 12 = 0.2. Therefore, the merge processing unit 130 does not update the search result of the spin σ1, which is the spin to be merged, and keeps it as "σ2".

[0072] In addition, the difference between the random number rand_m2 assigned to the merged spin σ3 and the random number rand_m2 assigned to the spin σ4 is Δ 34 =0.05. This difference Δ 34 is the difference Δ 32 = 0.2. Therefore, the merge processing unit 130 updates the search result of the spin σ3, which is the merged spin, to “σ4.” Note that the search results of the spins σ2, σ4, and σ5, which are not merged spins, are not updated.

[0073] Next, the merge processing unit 130 calculates the search target by the spin σ j= σ5, and a search is performed for spins σ1 to σ5. Here, spin σ5 is not a merged spin. The difference between the random number rand_m2 assigned to the merged spin σ1 and the random number rand_m2 assigned to spin σ5 is Δ 15 =0.05. This difference Δ 15 is the difference Δ 12 = 0.2. Therefore, the merge processing unit 130 updates the search result of the spin σ1, which is the spin to be merged, to "σ5". Also, the difference between the random number rand_m2 assigned to the spin σ3 to be merged and the random number rand_m2 assigned to the spin σ5 is Δ 35 =0.45. This difference Δ 35 is the difference Δ 34 = 0.05. Therefore, the merge processing unit 130 does not update the search result for the spin σ3, which is the merged spin, and keeps it as "σ4." Note that the search results for the spins σ2, σ5, and σ5, which are not merged spins, are not updated.

[0074] In this way, the merge processing unit 130 executes the process of determining the merge destination spin for all spins in parallel. i For all other spins σ j When the search for is completed, the merge processing unit 130 determines the merge destination spin of the merged spin σ1 to be the spin σ5, and determines the merge destination spin of the merged spin σ3 to be the spin σ4.

[0075] Furthermore, the merge processing unit 130 generates a matrix corresponding to the merge information. The merge processing unit 130 stores the generated matrix in the matrix storage unit 114. Specifically, the merge processing unit 130 generates the merge destination matrix L and the spin product matrix D described above. The merge processing unit 130 may generate the spin product matrix D based on the merge destination matrix L. If the number of spins in the Ising model is N, the merge destination matrix L is an N×N matrix. Similarly, the spin product matrix D is an N×N matrix.

[0076] In the merge-destination matrix L, one of the rows and columns indicates the merged spins, and the other indicates the merge-destination spins. In the first embodiment, the columns of the merge-destination matrix L indicate the merged spins, and the rows indicate the merge-destination spins, but this is not limiting.

[0077] Spin σ y is not a merged spin, then for the y-th column of the merged matrix L, the spin σ y Diagonal components L y,y becomes "1" and the other components become "0". On the other hand, the spin σ y is the merged spin, and the merged spin is the spin σ x If , for the y-th column of the destination matrix L, x,y becomes "1" and the other components become "0". Therefore, in the merge destination matrix L, the component L of the xth row other than the diagonal component of the yth column x,y If is "1", then the spin σ y is the spin σ x On the other hand, in the merge destination matrix L, the diagonal element L in the y-th column y,y If is "1", then the spin σ y is not a merged spin.

[0078] In the Ising model consisting of five spins σ1 to σ5 illustrated in FIG. 4, the merge destination matrix L in the case where the spin σ1 is merged into the spin σ5 and the spin σ3 is merged into the spin σ4 is expressed by the following formula 10.

number

[0079] In the case of the merging process in Figure 4, spin σ is merged into spin σ, and spin σ is merged into spin σ. Therefore, as shown in Equation 10, L 5,1 =1, L 4,3 = 1. In addition, since the other spins σ2, σ4, and σ5 are not merged spins, as shown in Equation 10, the diagonal component L 2,2 =1, L4,4 =1, L 5,5 = 1. The other components are 0.

[0080] In addition, in the spin product matrix D, the spin products are shown in the diagonal elements. Specifically, the spin σ y is a merged spin, then spin σ y The y-th diagonal component D y,y is the spin σ y The spin value (σ y ) and spin σ y The merged spin σ x The spin value (σ x ) and the spin σ y If is not a merged spin, then the spin σ y The y-th diagonal component D y,y indicates 1. Also, the components other than the diagonal components D x,y (x≠y) indicates 0.

[0081] In the Ising model consisting of five spins σ1 to σ5 shown in FIG. 4, the spin product matrix D in the case where the spin σ1 is merged into the spin σ5 and the spin σ3 is merged into the spin σ4 is expressed by the following formula 11.

number

[0082] In the case of the merge process in FIG. 4, the product of the spin value "-1" of the merged spin σ1 and the spin value "-1" of the merge destination spin σ5 is 1. Also, the product of the spin value "1" of the merged spin σ3 and the spin value "-1" of the merge destination spin σ4 is -1. Therefore, as shown in Equation 11, D 1,1 =1, D 3,3 = 1. In addition, the other spins σ2, σ4, and σ5 are not merged spins, so as shown in Equation 11, the diagonal component D 2,2 =1, D 4,4 =1, D 5,5 = 1. Also, all components other than the diagonal components are 0.

[0083] Furthermore, the merge processing unit 130 performs a merge process on the external magnetic field h, and calculates the external magnetic field h' after the merge process. Specifically, the merge processing unit 130 uses the external magnetic field h, which is a 1×N matrix as shown in Equation 6, the merge destination matrix L, which is an N×N matrix, and the spin product matrix D, which is an N×N matrix, to calculate the external magnetic field h' after the merge process, which is a 1×N matrix, using the following Equation 12. In other words, the merge processing unit 130 calculates the external magnetic field h' after the merge process by matrix calculation using a matrix. Note that the T on the right superscript of L in Equation 12 indicates transpose (the same applies to other equations). Also, "'" indicates that it is after the merge process (the same applies to other equations).

number

[0084] Here, Equation 12 shows matrix calculation. Then, as described above, the merge destination matrix L and the spin product matrix D can be generated by parallel processing for all spins. Therefore, unlike process S114, the merge processing unit 130 can calculate the external magnetic field h' after the merge processing without performing sequential processing.

[0085] The local field calculation unit 140 calculates the local fields (instantaneous magnetic fields) of multiple spins in the Ising model in parallel. Here, the local field calculation unit 140 according to the first embodiment calculates the local fields for all spins in parallel using the matrix generated by the merge processing unit 130. That is, as will be described below, the local field calculation unit 140 calculates the local fields in parallel by matrix calculation using a matrix.

[0086] Here, the spin-spin interaction J′ after the merging process is calculated by a matrix calculation expressed by the following equation 13 using the merge destination matrix L and the spin product matrix D.

number

[0087] Here, J† is an N × N matrix, which is a matrix obtained by masking the spin-spin interaction J as follows: † is calculated by the matrix calculation shown in the following formula 14. Here, a symbol with a dot in a circle (a dot in a circle) indicates a Hadamard product (element product) (the same applies to other formulas).

number

[0088] When Equation 8 is expressed using the spin state σ' after the merging process, the external magnetic field h' after the merging process shown in Equation 12, and the spin-spin interaction J' after the merging process shown in Equation 13, the local field ^h' after the merging process is expressed as shown in Equation 15 below.

number

[0089] Here, the process of returning the spin state σ′ after the merge process to the original spin state σ by the demerge process is expressed by the following equation 16 using the merge destination matrix L and the spin product matrix D.

number

[0090] Therefore, Equation 15 can be transformed into Equation 17 below using Equation 16.

number

[0091] Therefore, the local field calculation unit 140 calculates the local field ^h' after the merging process by performing the matrix calculation shown in Equation 17. In other words, the local field calculation unit 140 calculates the local fields of multiple spins in parallel based on the spin-spin interaction J' after the merging process calculated by matrix calculation using a matrix. In further other words, the local field calculation unit 140 calculates the local fields of multiple spins in parallel by matrix calculation using the merge destination matrix L and the spin product matrix D. It should be noted that the local field calculation unit 140 can calculate the local field ^h' after restoring the spin state from the spin state σ' after the merging process to the original spin state σ.

[0092] The inversion processing unit 150 calculates a plurality of spins σ based on the local field ̂h′ calculated by the local field calculation unit 140. i Reversal probability P for (i=1, ,N) i (update probability) is calculated in parallel, and the reversal probability P i Based on the spin σ i Specifically, the inversion processing unit 150 uses the local field ^h' to invert the spin σ i The reversal probability P i are calculated in parallel, where T is a pseudo-temperature and may be a function of the annealing step t.

number

[0093] The inversion processing unit 150 calculates the inversion probability P i Specifically, the inversion processing unit 150 selects the spins to be inverted based on each spin σ i Regarding the reversal probability P i is greater than the random number rand, where 0≦rand<1. The random number rand can be generated for each of a plurality of spins. Therefore, the random number rand can be different for each spin. Then, the reversal processing unit 150 determines that the reversal probability P i Spin σ is larger than the random number rand iIn other words, the inversion processing unit 150 randomly selects one spin to be inverted from the inversion probability P i Spin σ is larger than the random number rand i are set as inversion candidates, and one spin to be inverted is randomly selected from the inversion candidate spins. Then, inversion processing unit 150 inverts the selected spin.

[0094] Here, the inversion processing unit 150 selects the spin σ i is the destination spin, refer to the destination matrix L and select the spin σ i , and inverts the merged spin that has been merged into the selected spin. Specifically, the inversion processing unit 150 inverts the spin σ k is selected as the inversion target, refer to the k-th row of the merge destination matrix L, and select the spin σ corresponding to the column number m that is "1" in the k-th row. m Invert.

[0095] 7 is a diagram illustrating an example of processing by the inversion processing unit 150 according to the first embodiment. FIG. 7 illustrates a case where merge processing of "merge 1 → 5" and "merge 3 → 4" is performed on five spins σ1 to σ5, as in the example of FIG. 4. The inversion processing unit 150 calculates an inversion probability P i The inversion processing unit 150 then determines that the inversion probability P2 of the spin σ2 and the inversion probability P5 of the spin σ5 are greater than the corresponding random number rand, and that the inversion probability P4 of the spin σ4 is less than or equal to the corresponding random number rand. Therefore, the inversion processing unit 150 determines the spins σ2 and σ5 as spins to be inverted. The inversion processing unit 150 then randomly selects the spin σ5 from the spins σ2 and σ5. The inversion processing unit 150 then inverts (updates) the spin σ5.

[0096] Furthermore, the inversion processing unit 150 inverts (updates) the spin σ1, which is the merged spin merged with the spin σ5, with reference to the merge destination matrix L shown in the above equation 10. Specifically, the inversion processing unit 150 inverts (updates) the merged spin σ1, which is the merged spin merged with the spin σ5, with reference to the merge destination matrix L shown in the above equation 10. More specifically, the inversion processing unit 150 refers to the fifth row in the merge destination matrix L shown in equation 10, which corresponds to the spin σ5 selected as the spin to be inverted. Then, since the element in the fifth column as well as the element in the first column in the fifth row of the merge destination matrix L are "1", the inversion processing unit 150 determines that the spin σ1 is the merged spin for the spin σ5, and inverts the spin σ1. As a result, the updated spin state is generated.

[0097] Here, when the spin selected as the inversion target is a merge-destination spin, the inversion processing unit 150 inverts the merged spin merged into the merge-destination spin along with the merge-destination spin. In other words, the inversion is synchronized between the merge-destination spin and the merged spin. As described above, the local field calculation unit 140 returns the spin state to the state before merging and calculates the local field. Therefore, the annealing processing device 100 according to the first embodiment can omit the demerge processing. In other words, the annealing processing device 100 according to the first embodiment can proceed with the annealing processing without performing the demerge processing. Therefore, the annealing processing device 100 according to the first embodiment can quickly execute the solution-finding processing using the Ising model.

[0098] The spin alignment output unit 170 outputs the annealing step t=t max This annealing step t=t max The spin arrangement σ_1^(t max ),···,σ_N^(t max ) is expected to be optimized by the annealing algorithm.

[0099] <Annealing treatment method> FIG. 8 is a diagram illustrating an annealing method performed by the annealing processing apparatus 100 according to the first embodiment. FIG. 8 illustrates a process flow for solving a problem using an Ising model, which is performed by the annealing processing apparatus 100. The annealing control unit 120 starts a main loop (process S200). The annealing control unit 120 increments the annealing step t (main step t) by one each time one main loop is performed. The annealing control unit 120 controls the merging processing unit 130, the local field calculation unit 140, and the inversion processing unit 150 so that the merging process and the annealing process are performed in the main loop. Then, the annealing control unit 120 updates the pseudo temperature T (process S202). As described above, the pseudo temperature may be a function T(t) of the annealing step t.

[0100] The annealing control unit 120 controls the merge processing unit 130 so that the merge processing is performed at a predetermined timing in the main loop. For example, the annealing control unit 120 may perform control so that the merge processing is performed every time the annealing step t (main step t) is performed a predetermined number of times. Alternatively, the annealing control unit 120 may perform control so that the merge processing is performed a predetermined number of times in one annealing step t (main step t).

[0101] The merge processing unit 130 performs the merge processing as described above (process S210). Specifically, the merge processing unit 130 performs processes S212 to S216, which will be described later, in parallel for all spins in the Ising model. As described above, the merge processing unit 130 determines the merged spins in parallel for all spins (process S212). Next, the merge processing unit 130 determines the merge destination spins in parallel for all spins as described above with reference to FIG. 6 (process S214). Once the merged spins and the merge destination spins are determined, the merge processing unit 130 generates the merge destination matrix L and the spin product matrix D as described above. Furthermore, the merge processing unit 130 calculates the external magnetic field h′ after the merge processing in parallel for each spin by matrix calculation according to Equation 12 described above (process S216). That is, the merge processing unit 130 merges the external magnetic fields h to calculate the external magnetic field h′ after the merge processing.

[0102] Once the merge process is performed, the annealing control unit 120 starts a sub-loop (process S220). The annealing control unit 120 increments the substep s by one each time a sub-loop is performed. The annealing control unit 120 controls the local field calculation unit 140 and the inversion processing unit 150 so that the spin state is updated in the sub-loop. The annealing control unit 120 performs control so that the sub-loop is performed while maintaining the merge state determined in S210.

[0103] As described above, the local field calculation unit 140 calculates the local field ^h' of each spin in parallel by matrix calculation as shown in Equation 17 (process S222). The inversion processing unit 150 performs the inversion process as described above (process S224). As a result, the spin state is updated in the sub-loop.

[0104] The annealing control unit 120 determines whether the substep s is a maximum value s max The control is to repeat the subloop until the substep s reaches the maximum value s maxWhen the time t reaches the time t, the annealing control unit 120 ends the sub-loop (process S226). When the sub-loop ends, the annealing control unit 120 increments the main step t by 1 and performs control so that the next main loop is performed. Note that in the first embodiment, as described above, the demerge process is not performed.

[0105] The annealing control unit 120 controls the main step t to a maximum value t max The main loop is repeated until the main step t reaches the maximum value t max When the value reaches the threshold, the annealing control unit 120 ends the main loop (step S240). Then, the spin array output unit 170 outputs the spin array (step S250).

[0106] As described above, all of the processes in the annealing method shown in FIG. 8 can be executed in parallel for multiple spins. Therefore, all of the processes in the annealing method shown in FIG. 8 can be executed by a device with excellent parallel processing capabilities, such as a GPU. Therefore, the annealing processing device 100 according to the first embodiment can be implemented by a device with excellent parallel processing capabilities, such as a GPU. As a result, the annealing processing device 100 with excellent parallel processing capabilities, such as a GPU, can efficiently perform not only the annealing processing but also the merging processing. Furthermore, since it is no longer necessary to separate the processing between a device performing the merging processing, such as a CPU, and a device performing the annealing processing, such as a GPU, as described in the comparative example above, communication between these devices is no longer necessary. Therefore, the frequency of communication is prevented from increasing, which can lead to communication delays. Therefore, the annealing processing device 100 according to the first embodiment can perform the merging processing and the annealing processing at high speed. Furthermore, since the annealing processing device 100 according to the first embodiment prevents sequential processing, it is possible to reduce the amount of memory usage, such as buffers.

[0107] Furthermore, the annealing processing apparatus 100 according to the first embodiment is configured to calculate the external magnetic field after the merge processing in parallel by matrix calculation using a matrix in the merge processing. Furthermore, the annealing processing apparatus 100 according to the first embodiment is configured to calculate the local field of a plurality of spins in parallel based on the spin-spin interaction J' after the merge processing calculated by matrix calculation using a matrix in the annealing processing. This allows the merge processing in the comparative example to be incorporated into the calculation of the local field. Here, in the comparative example, the spin-spin interaction J' after the merge processing is calculated in the merge processing, so it is necessary to store the spin-spin interaction J' in memory (buffer) for use in the subsequent local field calculation. In contrast, in the annealing processing apparatus 100 according to the first embodiment, the spin-spin interaction after the merge processing is calculated in the local field calculation, so it is not necessary to store the spin-spin interaction after the merge processing for the local field calculation. Therefore, the annealing processing apparatus 100 according to the first embodiment can reduce memory usage.

[0108] 9 is a diagram showing a specific method for calculating the spin-spin interaction J' after the merge process and the external magnetic field h' after the merge process using the merge-target matrix L and the spin product matrix D according to the first embodiment. FIG. 9 shows a case where the merged spins and the merge-target spins are determined in the same manner as the example of FIG. 4. Therefore, FIG. 9 shows a case where, in an Ising model consisting of five spins σ1 to σ5, the spin σ1 is merged into the spin σ5 and the spin σ3 is merged into the spin σ4. In this case, as shown in FIG. 9, the merge-target matrix L is expressed as in the above-mentioned Equation 10, and the spin product matrix D is expressed as in the above-mentioned Equation 11.

[0109] In this case, we consider calculating the spin-spin interaction J' after the merge process by the matrix calculation shown in Equation 13. First, we use Equation 14 to calculate the matrix J † Calculate L in Equation 14. T L is expressed as in the following equation 19.

number

[0110] The second term on the right side of Equation 14 is expressed as Equation 20 below.

number

[0111] Therefore, using Equation 20 and Equation 14, J † is expressed as the following Equation 21.

number

[0112] When Equation 13 is calculated using Equation 21, Equation 10, and Equation 11, the spin-spin interaction J' after the merging process, as indicated by the arrow J2', is obtained, as shown in Fig. 9. This spin-spin interaction J' after the merging process indicated by the arrow J2' is the same as the spin-spin interaction J' after the merging process indicated by the arrow J2 in Fig. 4. Therefore, it can be seen that the spin-spin interaction J' after the merging process shown in Fig. 4 can be calculated by matrix calculations alone.

[0113] Furthermore, when Equation 12 is calculated using the same external magnetic field h as in the example of FIG. 4, indicated by arrow h0 in FIG. 9, and Equation 10 and Equation 11, the external magnetic field h' after the merging process, indicated by arrow h2', is obtained as shown in FIG. 9. This external magnetic field h' after the merging process, indicated by arrow h2', is the same as the external magnetic field h' after the merging process, indicated by arrow h2 in FIG. 4. Therefore, it can be seen that the external magnetic field h' after the merging process shown in FIG. 4 can be calculated only by matrix calculation.

[0114] 10 is a diagram for explaining a generalized case of the merge process according to the first embodiment. FIG. 10 shows a case where a plurality of merged spins are merged into each of spins i and j. X i denotes the set of merged spins that are merged into spin i. X jdenotes the set of merged spins that are merged into spin j.

[0115] In this case, the interaction between spin i and spin j is calculated using the merge matrix L and the spin product matrix D as shown in the following equation 22. k indicates the product (spin product) of the spin value of the merged spin k and the spin value of the merge destination spin.

number

[0116] Here, the second term of the calculation result of Eq. 22 is the relationship between the spin j and the spin set X, which is shown by the dashed line in Fig. 10. i The third term of the calculation result of Equation 22 corresponds to the sum of the interactions between spin i and spin set X in the coupling shown by the two-dot chain line in Figure 10. j The fourth term of the calculation result of Eq. 22 corresponds to the sum of the interactions between the spins in the spin set X j and the spin set X j corresponds to the sum of the interactions between each spin of

[0117] Furthermore, the external magnetic field when multiple merged spins are merged into spin i is calculated as shown in the following equation 23.

number

[0118] From Equation 22, it can be seen that in the interaction between spin i and spin j after the merge process, all necessary elements are added after the merge process. Therefore, it can be seen that the spin-spin interaction J' after the merge process can be correctly calculated using the merge destination matrix L and the spin product matrix D. Similarly, from Equation 23, it can be seen that in the external magnetic field of spin i after the merge process, all necessary elements are added after the merge process. Therefore, it can be seen that the external magnetic field h' after the merge process can be correctly calculated using the merge destination matrix L and the spin product matrix D.

[0119] <Replica processing> Next, a case where the configuration of the annealing processing apparatus 100 according to the first embodiment is applied to replica processing will be described. Here, "replica processing" refers to processing in which multiple independent annealing processes are performed on one Ising model. Each of the multiple annealing processes performed in the replica processing is referred to as a "replica." In one annealing process, annealing processes for multiple replicas are performed in parallel. Note that the spin state differs for each replica. By performing the replica processing, multiple solutions can be output in parallel. Here, the output solution does not necessarily satisfy the conditions, so by performing the replica processing and outputting multiple solutions, the possibility of outputting a solution that satisfies the conditions increases. Therefore, by performing the replica processing, a solution that satisfies the conditions can be quickly found.

[0120] As described above, the annealing processing device 100 according to the first embodiment is realized by a device with excellent parallel computing capabilities, such as a GPU. Therefore, the annealing processing device 100 according to the first embodiment can execute multiple replicas in parallel. For example, if the number of replicas is 128, 128 independent annealing processes are executed in parallel by a device with excellent parallel computing capabilities, such as a GPU. Here, the annealing processing device 100, which executes merging and annealing processes for multiple spins in parallel using matrix calculations as described above, is extended to perform replica processing. That is, the annealing processing device 100 described below is configured to execute merging and annealing processes for multiple spins in parallel using matrix calculations, and further execute annealing processes for multiple replicas in parallel using matrix calculations.

[0121] The parameter storage unit 110 may store information related to the replica processing. For example, the parameter storage unit 110 may store information indicating the number R of replicas executed in parallel in the replica processing. The annealing control unit 120 performs control so that multiple replicas are executed in parallel. Then, the local field calculation unit 140 calculates the local field ^h' for the multiple replicas in parallel. The inversion processing unit 150 performs inversion processing for the multiple replicas in parallel.

[0122] Here, if different information is stored for each replica, the amount of memory required will be enormous, corresponding to the number of replicas. In particular, since the merge destination matrix L and the spin product matrix D, which are matrices related to the above-mentioned merging process, are N×N matrices, if different matrices are stored for each replica, the amount of memory required to store the matrices will be enormous. This becomes more pronounced as the number of spins N increases.

[0123] Therefore, in the first embodiment, when replica processing is performed, merge information is made common among multiple replicas. That is, in the first embodiment, the relationship between the merged spin and the merge destination spin is made the same among multiple replicas. Therefore, the merge processing unit 130 generates a merge destination matrix L common to multiple replicas. The matrix storage unit 114 stores the merge destination matrix L common to multiple replicas. Therefore, the amount of memory required to store the merge destination matrix L can be reduced compared to when different merge destination matrices L are stored for multiple replicas.

[0124] In the first embodiment, when replica processing is performed, the merge processor 130 generates a compressed spin product matrix D based on the merge destination matrix L. * Generate the compressed spin product matrix D * indicates only the diagonal elements of the spin product matrix D for each replica. If the number of replicas is R, then the compressed spin product matrix D * is an R×N matrix, i.e., the compressed spin product matrix D * In this matrix, the number of rows is the replica number R and the number of columns is the spin number N. Therefore, the compressed spin product matrix D * In this case, the rth row corresponds to the rth replica, and the ith column corresponds to the ith spin σ i In other words, the compressed spin product matrix D * In the matrix D, the r-th row indicates the spin product corresponding to each spin for the r-th replica. * In the i-th column, the spin σ i That is, the merge processing unit 130 generates a spin product matrix D * The matrix storage unit 114 generates the compressed spin product matrix D * Store the value. * " indicates that the matrix has been expanded to multiple replicas (similar to other expressions). *The matrix marked with " has R rows, with the rth row corresponding to the rth replica.

[0125] FIG. 11 shows the spin product matrix D when replica processing is performed in the first embodiment. * 11 is a diagram for explaining. FIG. 11 shows a case where replica processing is performed using replicas 1, 2, and 3. FIG. 11 also shows a case where merged spins and merge destination spins are determined similarly to the example of FIG. 4. In each of replicas 1, 2, and 3, annealing processing is performed using an Ising model consisting of five spins σ1 to σ5. Then, in replicas 1, 2, and 3, spin σ1 is merged with spin σ5, and spin σ3 is merged with spin σ4. That is, in each of replicas 1, 2, and 3, spin σ1, which is the merged spin, is merged with spin σ5, which is the merge destination spin, and spin σ3, which is the merged spin, is merged with spin σ4, which is the merge destination spin. In this way, the merge information is common to replicas 1, 2, and 3.

[0126] In addition, in replica 1, the spin states of each spin are σ1 = -1, σ2 = +1, σ3 = +1, σ4 = -1, and σ5 = -1. In this case, the spin product σ1σ5 for "merge 1 → 5" is "1", and the spin product σ3σ4 for "merge 3 → 4" is "-1". Therefore, the spin product matrix D for replica 1 is expressed as the matrix indicated by arrow A1, similar to Equation 11.

[0127] In addition, the spin states of each spin in replica 2 are σ1 = +1, σ2 = -1, σ3 = -1, σ4 = +1, and σ5 = +1. In this case, the spin product σ1σ5 for "merge 1 → 5" is "1," and the spin product σ3σ4 for "merge 3 → 4" is "-1." Therefore, the spin product matrix D for replica 2 is expressed as the matrix indicated by arrow A2.

[0128] In addition, in replica 3, the spin states of each spin are σ1 = -1, σ2 = -1, σ3 = -1, σ4 = -1, and σ5 = -1. In this case, the spin product σ1σ5 for "merge 1 → 5" is "1", and the spin product σ3σ4 for "merge 3 → 4" is "1". Therefore, the spin product matrix D for replica 3 is expressed as the matrix indicated by arrow A3.

[0129] In this case, the compressed spin product matrix D * In the equation, the first row corresponds to the diagonal elements of the spin product matrix D for replica 1, the second row corresponds to the diagonal elements of the spin product matrix D for replica 2, and the third row corresponds to the diagonal elements of the spin product matrix D for replica 3. In other words, the compressed spin product matrix D * Then, the first line is each spin σ with respect to replica 1. i The second line shows the spin product of each spin σ i The third line shows the spin product of each spin σ i The merge processor 130 generates one compressed spin product matrix D * The matrix storage unit 114 generates one compressed spin product matrix D for multiple replicas. * Store.

[0130] Here, the order of the memory required to store the spin product matrix D for each replica is O(RN 2 ) In contrast, one compressed spin product matrix D * The order of memory required to store the matrix is O(RN), since one R × N matrix needs to be stored. Therefore, instead of storing the spin product matrix D for each replica, we store one compressed spin product matrix D for multiple replicas. * By storing the matrix D, the amount of memory used to store the spin product matrix D can be reduced.

[0131] Furthermore, the merge processing unit 130 calculates the external magnetic field after the merge processing for the multiple replicas. Here, the merge processing unit 130 calculates the external magnetic field h′ of an R×N matrix expanded to the multiple replicas by the matrix calculation shown in the following Equation 24: * Calculate.

number

[0132] Here, the right-hand side of "h * " is the external magnetic field of R × N matrix, which is the external magnetic field h expanded to multiple replicas. h * The rth row of is the spin σ i (i=1, ,N) external magnetic field h i In this way, even when replica processing is performed, the merge processing unit 130 does not perform sequential processing, but instead calculates the external magnetic field h′ after the merge processing by matrix calculation. * This allows the external magnetic field after merging for multiple replicas to be calculated as a single matrix h' * Therefore, in the calculation of the local field described later, the local field expanded to multiple replicas can be calculated by matrix calculation.

[0133] In addition, when replica processing is performed, the spin state σ is expanded to multiple replicas, * is expressed as an R×N matrix. σ * The rth row of is the spin σ i (i=1,...,N) spin state. Similarly, the R×N matrix obtained by expanding the spin state σ' after the merge process to multiple replicas is σ' * Let σ' * The rth row of is the spin σ i The spin state after the merge process for (i=1, ,N) is shown.

[0134] 12 is a diagram for explaining a method of calculating a local field when replica processing is performed in the first embodiment. As will be described below, even when replica processing is performed, the local field calculation unit 140 calculates the local field after the merge processing in parallel using a matrix generated by the merge processing unit 130. That is, as will be described below, the local field calculation unit 140 calculates the local field after the merge processing in parallel by matrix calculation using a matrix. This allows the local field calculation unit 140 to calculate the local field after the merge processing expanded to multiple replicas in parallel by matrix calculation.

[0135] Here, the spin state σ' * , the compressed spin product matrix D * , and the external magnetic field h' * Transforming Equation 15 using * is expressed as the following Equation 25.

number

[0136] Here, the spin state σ′ after merging is calculated by demerge processing. * The original spin state σ expanded to multiple replicas * The process of returning to the original matrix is performed by merging the target matrix L and the compressed spin product matrix D * Using this, it is expressed as Equation 26 below.

number

[0137] Therefore, Equation 25 can be transformed into Equation 27 below using Equation 26.

number

[0138] Therefore, as shown in FIG. 12, the local field calculation unit 140 performs the matrix calculation shown in Equation 27 to obtain the local field ^h' after the merging process expanded to multiple replicas. * In other words, the local field calculation unit 140 calculates in parallel the local fields of the multiple spins of the multiple replicas based on the spin-spin interaction J' after the merge process, which is calculated by matrix calculation using a matrix. In further other words, the local field calculation unit 140 calculates the local fields of the multiple spins of the multiple replicas in parallel based on the merge target matrix L and the compressed spin product matrix D * The local field calculation unit 140 calculates the local fields of the multiple spins in each of the multiple replicas in parallel by matrix calculation using the following equation. Note that the local field calculation unit 140 calculates the spin state σ' after the spin state merging process. * to the original spin state σ * After returning to the local field ^h' * It should be noted that the local field calculation unit 140 can calculate the local fields for all spins in all replicas collectively by matrix calculation, as shown in Fig. 12. Therefore, even when replica processing is performed, the local fields after merging processing can be calculated efficiently.

[0139] The inversion processing unit 150 converts the local field ^h' calculated by the local field calculation unit 140 into * Based on the multiple spins σ of each of the multiple replicas, i The reversal probability P i * are calculated in parallel, and the inversion probability P i * For each of the multiple replicas, the spin σ i Specifically, the inversion processing unit 150 performs a process of inverting the local field ^h'. * , the spin σ at the r-th replica is calculated by the sigmoid function shown in Equation 28 below. i The reversal probability P i are calculated in parallel.

number

[0140] The inversion processing unit 150 calculates the inversion probability P i At this time, the inversion processing unit 150 selects the spin to be inverted based on the selected spin σ for each of the multiple replicas. i is the destination spin, refer to the destination matrix L and select the spin σ i At the same time, the merged spin that was merged into the selected spin is inverted.

[0141] Here, even when replica processing is performed, if the spin selected as the spin to be inverted is a merge-destination spin, the inversion processing unit 150 inverts the merged spin merged into the merge-destination spin along with the merge-destination spin. Therefore, even when replica processing is performed, the annealing processing unit 100 according to the first embodiment can omit the demerge processing. Therefore, the annealing processing unit 100 according to the first embodiment can quickly execute the solution-finding process using the Ising model. Furthermore, since the merge information is common to multiple replicas, the inversion processing unit 150 can determine whether the spin selected as the spin to be inverted is a merge-destination spin by referring to one merge-destination matrix L. Furthermore, if the spin selected as the spin to be inverted is a merge-destination spin, the inversion processing unit 150 can determine the merged spin by referring to one merge-destination matrix L.

[0142] The spin array output unit 170 outputs the annealing step t=t for each of the multiple replicas. max This annealing step t=t max The spin arrangement σ_1^(t max ),···,σ_N^(t max ) is expected to be optimized by the annealing algorithm.

[0143] (Experimental results) 13 and 14 are diagrams showing experimental results of the annealing algorithm executed by the annealing processing apparatus 100 according to the first embodiment. FIGS. 13 and 14 show experimental results when solving a quadratic knapsack problem. The quadratic knapsack problem is a problem of maximizing the value of luggage packed within a given capacity. In this experiment, a synergistic value is established between certain luggage and other luggage, and the value increases when a specific pair of luggage is packed together in a knapsack.

[0144] FIG. 13 shows experimental results for solving a quadratic knapsack problem with 300 items. FIG. 14 shows experimental results for solving a quadratic knapsack problem with 200 items. In the graphs of experimental results shown in FIGS. 13 and 14, points "△" indicate experimental results of the annealing algorithm executed by the annealing processing device 100 according to the first embodiment. In the graphs of experimental results shown in FIGS. 13 and 14, points "▽" indicate experimental results of an annealing algorithm using PSA without merging, as a comparison. In the graphs of experimental results shown in FIGS. 13 and 14, the vertical axis indicates the difference between the energy in the ground state of each experimental result and the energy of a known optimal solution, i.e., the quality of the solution. The lower this value, the higher the quality of the experimental result. The horizontal axis indicates the time required to obtain a solution that satisfies the conditions for each experimental result. In both Figures 13 and 14, it can be seen that the experimental results of the annealing algorithm executed by the annealing processing device 100 according to the first embodiment are able to obtain higher quality solutions in a shorter time than the comparative experimental results.

[0145] (Variation) The present invention is not limited to the above-described embodiments, and can be modified as appropriate without departing from the spirit of the present invention. For example, in the above-described flowchart, the order of each process (step) can be changed as appropriate. Furthermore, one or more of the multiple processes (steps) may be omitted. Furthermore, the relationship between the rows and columns of each matrix shown in the above-described embodiments may be reversed. In other words, the rows and columns of each matrix shown in the above-described embodiments may be swapped. In this case, the matrix calculation may be modified to one in which the rows and columns of each matrix are swapped.

[0146] In the above examples, the program includes instructions (or software code) that, when loaded into a computer, cause the computer to perform one or more functions described in the embodiments. The program may be stored on a non-transitory computer-readable medium or a tangible storage medium. By way of example and not limitation, computer-readable medium or tangible storage medium includes random-access memory (RAM), read-only memory (ROM), flash memory, solid-state drive (SSD) or other memory technology, CD-ROM, digital versatile disk (DVD), Blu-ray® disk or other optical disk storage, magnetic cassette, magnetic tape, magnetic disk storage or other magnetic storage device. The program may also be transmitted on a transitory computer-readable medium or communication medium. By way of example and not limitation, transitory computer-readable medium or communication medium includes electrical, optical, acoustic, or other forms of propagated signals. [Explanation of symbols]

[0147] 100 Annealing treatment device 102 Control section 104 Storage section 106 Communications Department 108 Interface section 110 Parameter storage section 112 Model storage area 114 Matrix Storage Unit 120 Annealing control section 130 Merge processing section 140 Local Field Calculation Unit 150 Reverse processing unit 170 Spin array output section

Claims

1. An annealing processing device that finds a solution using an Ising model, an annealing control unit that controls the annealing process; a merge processing unit that performs a merge process including determining a merged spin, which is a spin to be merged among a plurality of spins in the Ising model, and a merge destination spin, which is a spin to which the merged spin is merged, and generates a matrix corresponding to merge information, which is information determined by the merge process; a local field calculation unit that calculates local fields of a plurality of spins in the Ising model in parallel by matrix calculation using the matrix; an inversion processing unit that calculates inversion probabilities of the plurality of spins in parallel based on the local field and performs processing to invert the spins based on the inversion probabilities; An annealing treatment apparatus comprising:

2. the merging processing unit calculates the external magnetic field after the merging process by matrix calculation using the matrix; the local field calculation unit calculates the local fields of a plurality of spins in parallel based on the spin-spin interactions after merging calculated by matrix calculation using the matrix. The annealing treatment apparatus according to claim 1 .

3. the merge processing unit generates a merge destination matrix indicating a relationship between the merged spin and the merge destination spin, and generates a spin product matrix indicating a product of a parameter indicating a state of the merged spin and a parameter indicating a state of the merge destination spin that is a merge destination of the merged spin, based on the merge destination matrix; the local field calculation unit calculates local fields of a plurality of spins in parallel by matrix calculation using the merge destination matrix and the spin product matrix. The annealing treatment apparatus according to claim 1 .

4. the inversion processing unit selects a spin to be inverted based on the inversion probability, and when the selected spin is the merge-destination spin, inverts the selected spin and the merged spins merged into the selected spin by referring to the merge-destination matrix. The annealing treatment apparatus according to claim 3 .

5. the annealing control unit performs control so that a replica process is performed in which a plurality of replicas, each of which is an independent annealing process, are executed in parallel; the local field calculation unit calculates the local field for a plurality of the replicas in parallel; the inversion processing unit performs a process of inverting spins in parallel for the plurality of replicas. The annealing treatment apparatus according to claim 1 .

6. The merge processing unit generates a merge destination matrix indicating a relationship between the merged spins and the merge destination spins, the merge destination matrix being common to the plurality of replicas. The annealing treatment apparatus according to claim 5 .

7. The merge processing unit generates, based on the merge destination matrix, one spin product matrix indicating a product of a parameter indicating a state of the merged spin and a parameter indicating a state of the merge destination spin for each of the plurality of replicas. The annealing treatment apparatus according to claim 6 .

8. An annealing method for finding a solution using an Ising model, comprising: Controlling the annealing process, performing a merge process including determining a merged spin, which is a spin to be merged among a plurality of spins in the Ising model, and a merge destination spin, which is a spin to which the merged spin is merged, and generating a matrix corresponding to merge information, which is information determined by the merge process; calculating local fields of a plurality of spins in the Ising model in parallel by matrix calculation using the matrix; calculating inversion probabilities of the plurality of spins in parallel based on the local field, and performing processing to invert the spins based on the inversion probabilities; Annealing treatment method.

9. A program for implementing an annealing processing method for finding a solution using an Ising model, A process of controlling the annealing process; A process of performing a merge process including determining a merged spin, which is a spin to be merged among a plurality of spins in the Ising model, and a merge destination spin, which is a spin to which the merged spin is merged, and generating a matrix corresponding to merge information, which is information determined by the merge process; a process of calculating local fields of a plurality of spins in the Ising model in parallel by matrix calculation using the matrix; a process of calculating inversion probabilities of the plurality of spins in parallel based on the local field, and performing a process for inverting the spins based on the inversion probabilities; A program that causes a computer to execute the following.