Optimizing equipment, procedures, and methods

By introducing auxiliary variables and coupling coefficients, the amount of data transferred between the memory and computing resources is reduced, the problem of long computing time in the optimization of high-order energy functions is solved, and more efficient optimization operations are achieved.

CN115048756BActive Publication Date: 2025-09-30FUJITSU LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202111583244.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-03-08
Filing Date
2021-12-22
Publication Date
2025-09-30
Estimated Expiration
2041-12-22

AI Technical Summary

Technical Problem

When searching for the minimum value of an energy function E(x) including third-order or higher-order terms, the number of parameter elements transferred from the memory to the computing resources is huge, resulting in excessively long computing time.

Method used

Auxiliary variables and their corresponding coupling coefficients are used to select whether to adopt or reject bit inversion by calculating the difference of energy functions, thereby reducing the amount of data transmission between memory and computing resources.

Benefits of technology

It effectively reduces the amount of data transferred during optimization operations and shortens the calculation time.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115048756B_ABST
    Figure CN115048756B_ABST
Patent Text Reader

Abstract

The present disclosure relates to an optimization device, an optimization program, and an optimization method. The optimization device includes a memory and an operation unit. The memory stores one or more coupling coefficients representing the interaction of multiple variables, and the multiple variables correspond to multiple bits included in an energy function. The operation unit is configured to select whether to adopt or reject bit reversal based on the difference in the value of the energy function associated with the reversal of the value of each of the multiple bits to perform optimization. The operation unit specifies a coupling coefficient corresponding to an auxiliary variable from one or more coupling coefficients, and the auxiliary variable is a product of variables corresponding to each bit from which the variable corresponding to the specific bit in the energy function is excluded, and the operation unit uses the auxiliary variable and the coupling coefficient to perform calculation of a third-order or higher-order term of the difference associated with the reversal of the specific bit.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments discussed herein relate to optimization devices, optimization programs, and optimization methods. Background Art

[0002] Information processing is performed in various fields in today's society. This information processing is carried out by arithmetic devices such as computers, which perform calculations and reorganize various data to obtain meaningful results for prediction, determination, control, and other purposes. Optimization is one method of this information processing and has become a significant field.

[0003] One method of optimization is to solve discrete optimization problems. In large-scale multivariable discrete optimization problems, the number of combinations explodes, and exhaustively performing calculations to find all combinations sometimes results in unrealistic computation times.

[0004] An example of a method for solving such large-scale multivariable discrete optimization problems is simulated annealing (SA) using an Ising-type energy function. In this SA, calculations are performed by replacing the problem to be calculated with the Ising model, which is a model representing the spin behavior of magnetic materials.

[0005] In optimization calculation using the Ising model, bits are randomly inverted to calculate energy changes when one bit is inverted, and whether to accept the bit inversion is determined based on the energy changes, thereby searching for an optimal solution that minimizes energy.

[0006] [Citation List]

[0007] [Patent Document]

[0008] [Patent Document 1] Japanese Patent Publication No. 2019-145010

[0009] [Patent Document 2] Japanese Patent Publication No. 2019-46038

[0010] [Patent Document 3] International Publication Handbook No. WO 2015 / 190593

[0011] [Patent Document 4] U.S. Patent Application Publication No. 2019 / 0087388 Summary of the Invention

[0012] [Technical Issues]

[0013] However, the related art described above has a problem in that, in the case of searching for the minimum value of the energy function E(x) including third-order or higher-order terms, the number of parameter elements to be transferred from the memory to the computing resource becomes enormous.

[0014] For example, an example of describing the energy function E(x) associated with all orders is represented by the following equation (1), where k represents the order, and the k-th order coupling coefficient represents the k-th order array W 1,2…,k The coupling coefficient represents the mutual coupling strength of each of the plurality of spins in the Ising model, where each of the plurality of variables is regarded as each of the plurality of spins of the magnetic material.

[0015] [Mathematical formula 1]

[0016]

[0017] Here, j1, ..., j k Represents the element position in each order, and x represents binary (0, 1) or spin (1, -1). W represents an array that is different for each order, which is usually a multidimensional array.

[0018] Formula (1) can be rewritten as the following formula (2): ZK represents the coupling coefficient of the k-th order term, and the coupling coefficient of the k-th order term is a k-dimensional array.

[0019] [Mathematical formula 2]

[0020]

[0021] Here, equations (3) and (4) are as follows: Equation (3) is the calculation formula for the energy change ΔEk(x,i) of the kth order term associated with the inversion of the i-th element of x, and Equation (4) is the overall calculation formula. Note that E0 disappears due to its change.

[0022] [Mathematical formula 3]

[0023]

[0024] [Formula 4]

[0025] ΔE(x,i)=ΔEK(x,i)+…+ΔE1(x,i)…(4)

[0026] For example, in the third-order term, the calculation is done by adding x j1 x j2 x j3 x' obtained by inverting 1 bit j1 x' j2 x' j3 Therefore, when the inversion part is set to m and the potential difference is set to Δx m When the third-order term is the calculated Z m,j2,j3 Δx m x j2 x j3 , Z j1,m,j3 x j1 Δxm x j3 and Z j1,j2,m x j1 x j2 Δx m sum.

[0027] That is, for example, the amount of memory access required to perform the calculation is the number of hyperplanes of order Z. The case of order 4 or higher applies in a similar manner. The values ​​of k×N^(k-1) elements are transferred from the memory to the computing resource.

[0028] Figure 7 is a block diagram showing an exemplary conventional structure for minimum solution search. Figure 7 As shown, the arithmetic processing unit 201 reads the coupling coefficient (ZK) as a parameter to be used for calculation from the memory 202, and calculates the coupling coefficient (ZK) at the ith position x of x. i The energy difference between states of a particular order k. k Each of can take a value from 1 to N.

[0029] The arithmetic processing unit 201 includes a reading unit 203, operation units 204 to 206, and an adding unit 207. The arithmetic processing unit 201 determines a position (i) for bit inversion, an input including x i The difference Δx before and after the reversal i , reads a predetermined portion from the k-th order coupling coefficient ZK stored in the memory 202, and outputs the energy difference ΔEk of the term.

[0030] For a certain dimension of the multidimensional array Z, the reading unit 203 selects a hyperplane in which the position (i) for bit reversal of x is fixed for each dimension, and reads it from the memory 202 to prepare k fragments. This reading from the memory 202 is where the transfer load to the arithmetic processing unit 201 as a calculation resource is generated.

[0031] The operation units 204 to 206 and the adding unit 207 perform a product-sum operation on each hyperplane output from the reading unit 203. For example, in the case of k=3, the operation in the operation unit 204 is as follows.

[0032] [Formula 5]

[0033]

[0034] The adding unit 207 adds the calculation results of the operation units 204 to 206 to output ΔEk.

[0035] Figure 8 is an explanatory diagram showing an exemplary conventional operation for minimum solution search. Figure 8In [1], it is assumed that the initial value of E is pre-calculated according to equation (2). It is assumed that the initial value is not included in the transmission amount because it is the first time.

[0036] like Figure 8 As shown, the arithmetic processing units 201a to 201c correspond to Figure 7 The arithmetic processing unit 201 of FIG. 1 and performs the operation in the case where the order is K, 3 or 2. In the case of the first order, the multiplication unit 208 changes the value of U (U) at the position (i) to i ) multiplied by Δx i .

[0037] After the operations of the arithmetic processing units 201a to 201c and the multiplication unit 208, the addition unit 209 adds the respective results to generate ΔE(x,i). The adoption / rejection determination unit 210 determines adoption / rejection of the bit that has been changed according to the well-known metropolis criterion, etc. based on ΔE(x,i). The adoption / rejection determination unit 210 sets Enext = E + ΔE(x,i) for the current energy E in the case of adoption, and sets Enext = E in the case of rejection.

[0038] Figure 9 is an explanatory diagram showing an example of reading a hyperplane from a memory. Figure 9 In the example, select the third-order term. Figure 9 As shown, in order to calculate the difference in energy using computing resources (arithmetic processing unit 201 , etc.) based on bit inversion, a hyperplane of an order is read from a memory (memory 202 , etc.).

[0039] For example, in the case where the order k=3 and the number of bits is N, 3N 2 Therefore, when searching for the minimum value of the energy function E(x) including higher-order terms, the amount of transmission increases, and the transmission time may be longer. When the order is four or higher and N is larger, the amount of transmission further increases, and the transmission time increases.

[0040] On the one hand, the present invention aims to provide an optimization device, an optimization program, and an optimization method that can suppress the amount of data transmission during optimization operations.

[0041] [Solution to the problem]

[0042] According to one embodiment, the optimization device includes a memory and a processor. The memory is configured to store one or more coupling coefficients representing the interaction of multiple variables, and the multiple variables correspond to multiple bits included in the energy function. The operation unit is configured to select the adoption or rejection of bit reversal based on the difference in the value of the energy function associated with the reversal of the value of each of the multiple bits to perform optimization. The operation unit is also configured to: specify a coupling coefficient corresponding to an auxiliary variable from the one or more coupling coefficients stored in the memory, the auxiliary variable being the product of the variables corresponding to the respective bits from which the variables corresponding to the specific bits in the energy function are excluded; and use the auxiliary variable and the coupling coefficient to perform a calculation of a third-order or higher-order term of the difference associated with the reversal of the specific bit.

[0043] [Beneficial Effects of the Invention]

[0044] The amount of data transferred during optimization calculations can be reduced. BRIEF DESCRIPTION OF THE DRAWINGS

[0045] Figure 1 is a block diagram showing an exemplary structure of an information processing apparatus according to an embodiment;

[0046] Figure 2 is a block diagram showing an exemplary structure of a minimum solution search unit;

[0047] Figure 3 is a flowchart illustrating an exemplary operation of an information processing apparatus according to an embodiment;

[0048] Figure 4 is an explanatory diagram showing exemplary parameters;

[0049] Figure 5 is an explanatory diagram showing a comparative example of a time chart;

[0050] Figure 6 is an explanatory diagram showing the transmission amount per coupling coefficient;

[0051] Figure 7 is a block diagram illustrating an exemplary general structure for a minimum solution search;

[0052] Figure 8 is an explanatory diagram showing an exemplary conventional operation for minimum solution search; and

[0053] Figure 9 is an explanatory diagram showing an example of reading a hyperplane from a memory. DETAILED DESCRIPTION

[0054] Hereinafter, an optimization device, an optimization program, and an optimization method according to an embodiment will be described with reference to the accompanying drawings. Configurations having the same functions in the embodiments are denoted by the same reference numerals, and redundant descriptions will be omitted. Note that the optimization device, optimization program, and optimization method described in the following embodiments are merely examples and do not limit the embodiments. Furthermore, the following embodiments may be appropriately combined unless otherwise contradictory.

[0055] In an embodiment, an information processing device that performs various arithmetic processing is illustrated as an example of an optimization device. In this information processing device, in simulated annealing using an Ising-type energy function, the adoption / rejection of bit inversion is selected based on the difference in energy functions associated with bit inversion to perform optimization as an arithmetic processing. Specifically, for example, in the case where a bit is inverted, the information processing device randomly inverts one or more bits and calculates the energy change, and adopts whether to accept the bit inversion based on the energy change, thereby searching for the optimal solution that minimizes energy. Note that this embodiment is not limited to the case of using the Ising model to solve the optimization problem, and can also be applied to the case of using a model including higher-order terms of third order or higher to solve the optimization problem.

[0056] The information processing device according to the embodiment uses a Monte Carlo method in which one or more bits are randomly inverted to search for an optimal solution, thereby obtaining a state x that is the minimum energy of an energy function (E). Here, the amount of change (difference) in the energy function (E) compared to the energy before inversion caused by the inversion of the i-th bit as an inversion candidate is set to ΔE i The information processing device according to the embodiment calculates ΔE i , then based on ΔE i , using the metropolis criterion or the like to determine (select) the adoption / rejection of the inversion in the i-th position.

[0057] Here, ΔE in the information processing apparatus according to the embodiment will be described. i First, with respect to the above formula (2), third-order or higher-order terms are added to Z, and rewritten as the following formula (5).

[0058] [Formula 6]

[0059]

[0060] Here, considering the energy difference ΔE caused by bit inversion, E0 in equation (5) is a constant, and therefore it is unnecessary. In addition, although the variable x is a discrete value and cannot be subjected to differentiation, the main difference is set to Δx, which focuses on the difference (main difference) caused by the bit change in the coupled x. In the case where the number of variables of the coupled x is reduced by 1 using Δx, ΔE i It becomes as shown in the following formula (6).

[0061] [Formula 7]

[0062]

[0063] Next, in formula (6), an auxiliary bit (also called auxiliary variable) y is introduced which can be calculated based on x. i,m . Auxiliary position y i,m is obtained by calculating the sum of all variables x(x j1 、……、x jk ) excludes the variable x whose i-th bit is to be inverted from the product of i Since y can be calculated based on x, the introduction of y does not increase the bit itself. i,m In the case of , formula (6) can be rewritten as the following formula (7).

[0064] [Formula 8]

[0065]

[0066] Here, we introduce z i,m . z i,m is with y i,m The corresponding coupling coefficient, therefore ΔE i It can be expressed as the following formula (8). In the calculation of formula (8), g i The number of elements of Z referenced is reduced by one order.

[0067] [Formula 9]

[0068]

[0069] In the case of bit reversal, there are multiple auxiliary variables y i,m The value of the variable x used for energy update j The possibility of changing due to the reversal of i,m In the case of , the energy update is expressed by the following formula (9).

[0070] [Formula 10]

[0071]

[0072] In the information processing apparatus according to the embodiment, ΔE is calculated as in equations (8) and (9). i Specifically, for example, the information processing device uses the auxiliary variable y i,m and y i,m The corresponding coupling coefficient Z i,m To calculate ΔE i , auxiliary variable y i,m is the product of the variables corresponding to the respective bits, excluding the variables corresponding to the candidate bits to be inverted. At this time, the information processing device reads the coupling coefficient Z corresponding to the auxiliary variable from the memory storing the coupling coefficients corresponding to all bits related to the energy function. i,m Therefore, the information processing apparatus can reduce the number of elements to be read from the memory by one order, thereby being able to suppress the amount of data transfer at the time of operation.

[0073] Figure 1 : is a block diagram showing an exemplary structure of an information processing device according to an embodiment. Figure 1 As shown, the information processing apparatus 100 includes a UI 1 , a minimum solution search unit 2 , and a general-purpose central processing unit (CPU) 3 , and these respective units are connected via a bus etc. For example, a personal computer (PC) etc. can be used as the information processing apparatus 100 .

[0074] The UI 1 is a user interface (UI) that performs data input from the user, output of processing results, etc. The user inputs externally given parameters, such as the coupling coefficient Z corresponding to all bits related to the energy function and the temperature, via the UI 1 .

[0075] The minimum solution search unit 2 is a processing unit that performs arithmetic processing related to optimization and searches for an optimal solution that minimizes energy, and includes a memory 10 and an arithmetic processing unit 20. The general-purpose CPU 3 is a general-purpose CPU that processes applications for processing the UI 1 and the arithmetic processing unit 20 and the like.

[0076] The memory 10 is a hard disk drive (HDD), a random access memory (RAM), or the like, and stores parameters such as a coupling coefficient W input via the UI 1 .

[0077] The arithmetic processing unit 20 is a processing unit that calculates ΔE according to equations (8) and (9). i , and based on ΔE i , using the metropolis criterion or the like to determine the adoption / rejection of the inversion in the i-th bit to search for the optimal solution. A dedicated hardware device such as an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a graphics processing unit (GPU), a general-purpose CPU, etc. can be applied to the arithmetic processing unit 20.

[0078] For example, the arithmetic processing unit 20 reads and executes a program stored in the memory 10, thereby performing arithmetic processing related to optimization. Note that the program to be executed by the arithmetic processing unit 20 is not necessarily stored in the memory 10. For example, a program stored in a storage medium that can be read by the information processing device 100 can be read, and the arithmetic processing unit 20 can execute the program. For example, the storage medium that can be read by the information processing device 100 corresponds to: a portable recording medium such as a CD-ROM, a DVD disk or a universal serial bus (USB) memory, a semiconductor memory such as a flash memory, a hard disk drive, etc. In addition, the program can be pre-stored in a device connected to a public line, the Internet, a LAN, etc., and the information processing device 100 can read the program from these devices to execute it. In addition, the various processing functions implemented by the arithmetic processing unit 20 can be performed by multiple computers that collaborate through cloud computing.

[0079] Figure 2 is a block diagram showing an exemplary structure of the arithmetic processing unit 20. Figure 2 As shown, the arithmetic processing unit 20 includes an operation unit 21, an operation unit 22, an operation unit 23, an addition unit 24, an addition unit 25, an addition unit 26, a multiplication unit 27, and an acceptance / rejection determination unit 28. Note that in the arithmetic processing unit 20, it is assumed that the initial value of E and h are pre-calculated according to equation (8). i and g i In the example shown in the figure, the configuration of the arithmetic processing unit 20 that mainly calculates Δy,m, calculates ΔE from the result thereof, and determines adoption / rejection is illustrated.

[0080] The operation unit 21 reads the coupling coefficients Z corresponding to all the bits stored in the memory 10, excluding the dimension corresponding to the bit to be the candidate for inversion. i,m , and perform the operation according to formula (8).

[0081] The operation unit 22 calculates Δy,m according to the variable x and the candidate bit i to be changed.

[0082] The operation unit 23 and the addition unit 24 perform the calculation with h according to formula (8). i Related calculations. Note that whether to update h i depends on the adoption / rejection determination of the adoption / rejection determination unit 28, and updates h in the event that the adoption / rejection determination unit 28 determines adoption. i .

[0083] The adding unit 25 performs the addition operation based on the calculation result of the calculation unit 21 and g according to formula (8). i Related calculations. Note that whether to update g idepends on the adoption / rejection determination of the adoption / rejection determination unit 28, and updates g in the event that the adoption / rejection determination unit 28 determines adoption. i .

[0084] The adding unit 26 adds the calculation results of the adding unit 24 and the adding unit 25. The multiplying unit 27 multiplies the calculation result of the adding unit 26 by -Δx i For example, in the calculation of the adding unit 26 and the multiplying unit 27, ΔE is calculated according to equation (8): i .

[0085] The adoption / rejection determination unit 28 determines adoption / rejection of the bit changed according to the metropolis criterion based on ΔE(x,i) which is the operation result up to the multiplication unit 27 .

[0086] Figure 3 is a flowchart showing an exemplary operation of an information processing device according to an embodiment. Specifically, for example, Figure 3 The flowchart of shows an exemplary operation in the case of obtaining a minimum solution (x) of an energy function having a third-order term.

[0087] like Figure 3 As shown, when the process starts, the arithmetic processing unit 20 obtains the initial value E(0) of the energy function E for the initial value x0 of x according to the following equation (10) related to the energy function (S1).

[0088] [Mathematical formula 11]

[0089]

[0090] Next, the arithmetic processing unit 20 prepares h according to the following equation (11): i The initial value h i (0)(S2). Here, h i Represents an N-bit vector (N: number of bits).

[0091] [Mathematical formula 12]

[0092]

[0093] Next, the arithmetic processing unit 20 prepares g according to the following equation (12): i The initial value g i (0)(S3). Here, g i Represents a vector of N bits.

[0094] [Mathematical formula 13]

[0095]

[0096] Next, the arithmetic processing unit 20 randomly selects 1 bit (i) to be inverted at x, and sets the difference between the selected bit before and after inversion as Δx i (S4).

[0097] Next, the arithmetic processing unit 20 calculates the following equation (13) and the value of Δx i 、h i and g i Calculate ΔE i (S5).

[0098] [Mathematical formula 14]

[0099] ΔE i =-(h i +g i )Δx i ...(14)

[0100] Next, the acceptance / rejection determination unit 28 of the arithmetic processing unit 20 uses the calculated ΔE i , the adoption / rejection of bit inversion is determined based on the Metropolis criterion or the like (S6). For example, in the case of the Metropolis criterion, the adoption / rejection determination unit 28 generates a uniform random number rand in the range 0≦rand≦1. Next, if rand > exp(ΔE×β), the adoption / rejection determination unit 28 determines that bit inversion is to be adopted. Here, β represents the inverse temperature.

[0101] In the case of rejection (rejection in S6), the arithmetic processing unit 20 proceeds to S10 in the process. In the case of acceptance (acceptance in S6), the arithmetic processing unit 20 updates the energy E according to the following equation (14) (S7). The updated energy E(x, t+1) is obtained by dividing the E before update by ΔE of equation (13) i The value obtained by adding, ΔE i It is the calculation result of the multiplication unit 27.

[0102] [Mathematical formula 15]

[0103] E(x, t+1)←E(x, t)-(h i (t)+g i (t))Δx j ...(15)

[0104] Next, the arithmetic processing unit 20 updates h according to the following equation (15) based on the operations of the operation unit 23 and the addition unit 24. i (S8).

[0105] [Formula 16]

[0106] h i (t+1)←h i (t)+V i,j Δx j ...(16)

[0107] Next, the arithmetic processing unit 20 updates g according to equation (16) based on the operations of the operation unit 21, the operation unit 22, and the addition unit 25. i (S9) Here, Δy,m is Δy,m=Δx j Δx k .

[0108] [Mathematical formula 17]

[0109]

[0110] Next, the arithmetic processing unit 20 determines whether a termination condition is satisfied (S10), for example, whether the arithmetic processing of S4 to S9 has been repeated a predetermined number of times or whether a predetermined energy has been obtained. If the termination condition is satisfied (Yes in S10), the arithmetic processing unit 20 terminates the process, assuming that optimization has been achieved. If the termination condition is not satisfied (No in S10), the arithmetic processing unit 20 returns the process to S4. In this way, the arithmetic processing unit 20 repeats the bit inversion process until the predetermined number of times or the predetermined energy has been obtained.

[0111] As described above, the information processing device 100 uses the auxiliary variable (y i,m ) and the coupling coefficient corresponding to the auxiliary variable (Z i,m ) performs calculations on the third-order or higher-order terms of the difference associated with the inversion of a specific bit (i) in the energy function, and the auxiliary variable (y i,m ) is the product of the variables corresponding to the respective bits, excluding the variables corresponding to the bits to be inverted. During this calculation, the information processing device 100 then reads the coupling coefficients corresponding to the auxiliary variables from the memory 10, which stores the coupling coefficients (Z) representing the interactions between multiple variables corresponding to all bits related to the energy function. This allows the information processing device 100 to reduce the number of elements to be read from the memory 10 by one order, thereby reducing the amount of data transferred during the calculation.

[0112] Furthermore, when a specific bit is inverted, the information processing device 100 calculates a change in the auxiliary variable due to the inversion of the variable corresponding to the specific bit (S8 and S9). Therefore, when a specific bit is inverted, the information processing device 100 can update the value of the auxiliary variable according to the bit inversion.

[0113] Figure 4is an explanatory diagram showing exemplary parameters. Specifically, for example, Figure 4 Parameter Z is shown i,m The third-order case. Although Figure 4 Contains Δx i , but when x i When changing, x j and x k can also change (while pointing to the same bit position). Figure 4 As shown, it is sufficient to access the changed part when updating. Therefore, one access to the coupling coefficient (Z) corresponding to all bits related to the energy function is not N3, but a "maximum" of N2.

[0114] Figure 5 is an explanatory diagram showing a comparative example of a time chart. Figure 5 , case C1 is a time chart of arithmetic processing related to a conventional optimal solution search, and case C2 is a time chart of arithmetic processing related to an optimal solution search according to the embodiment.

[0115] like Figure 5 As shown, in the conventional case C1, the process for calculating ΔE is performed after at least the coupling coefficient (Z) is transmitted in the hyperplane unit. On the other hand, in the case C2 of the embodiment, each of g1(t) to gn(t) can be transmitted and processed independently. In most cases, the number of bits is greater than the order, and thus, the number of coupling coefficients to be transmitted at once in the conventional case C1 is greater than the number of coupling coefficients to be transmitted at once in the case C2 of the embodiment. Therefore, in the case C2, the total time associated with data loading is shorter.

[0116] In conventional optimal solution search, for each calculation of the energy difference, the amount of data transfer from memory to computing resources associated with a 1-bit flip is kN (k-1) , where the number of spins (number of bits) is N and the order is k. In the optimal solution search according to this embodiment, N can be set for one calculation of the energy difference. (k-1) or smaller.

[0117] Figure 6 The relationship between N and k and the data transmission amount is shown in FIG. Figure 6As shown in FIG. G1 of , and compared with the conventional case, the data transmission amount can be suppressed according to the optimal solution search in this embodiment. In addition, although the data transmission amount increases as k increases in the conventional optimal solution search, in this embodiment, the method of using auxiliary variables is recursively applied, whereby the number of elements of the coupling coefficient to be transmitted can be set to be similar to the case of k=3. Therefore, in this embodiment, as k increases, the effect of suppressing the data transmission amount is further enhanced. For example, in the case of applying the satisfiability problem (SAT) to the Ising model to perform the optimal solution search, k increases, whereby the effect of suppressing the data transmission amount becomes more significant.

Claims

1. An optimization device comprising: a memory configured to store one or more coupling coefficients representing an interaction of a plurality of variables corresponding to a plurality of bits included in the energy function; as well as an operation unit configured to select adoption or rejection of bit inversion based on a difference in the value of the energy function associated with the inversion of the value of each of the plurality of bits to perform optimization, wherein The computing unit is further configured to: specifying a coupling coefficient corresponding to an auxiliary variable from the one or more coupling coefficients stored in the memory, the auxiliary variable being a product of variables corresponding to respective bits from which a variable corresponding to a specific bit in the energy function is excluded, and Calculation of a third-order or higher-order term of a difference in a value of the energy function associated with an inversion of the specific bit is performed using the auxiliary variable and the coupling coefficient.

2. The optimization device according to claim 1, wherein When the specific bit is inverted, the operation unit specifies an amount of change in the auxiliary variable due to the inversion of the variable corresponding to the specific bit.

3. The optimization device according to claim 2, wherein: The operation unit updates the auxiliary variable based on the change amount of the auxiliary variable.

4. An optimization program product, wherein: A computer that selects adoption or rejection of bit inversion based on a difference in a value of an energy function associated with inversion of a value of each of a plurality of bits included in the energy function to perform optimization performs the following processing: specifying a coupling coefficient corresponding to an auxiliary variable from one or more coupling coefficients stored in a memory included in the optimization device, the auxiliary variable being a product of variables corresponding to respective bits from which a variable corresponding to a specific bit in the energy function is excluded, the one or more coupling coefficients representing interaction of a plurality of variables corresponding to the plurality of bits; as well as Calculation of a third-order or higher-order term of a difference in a value of the energy function associated with an inversion of the specific bit is performed using the auxiliary variable and the coupling coefficient.

5. The optimizer product of claim 4, wherein the processing further comprises: When the specific bit is inverted, the amount of change in the auxiliary variable due to the inversion of the variable corresponding to the specific bit is specified.

6. An optimization method performed by an optimization device, the optimization device selecting whether to adopt or reject bit inversion based on a difference in a value of an energy function associated with an inversion of a value of each of a plurality of bits included in the energy function to perform optimization, the optimization method comprising: specifying a coupling coefficient corresponding to an auxiliary variable from one or more coupling coefficients stored in a memory included in the optimization device, the auxiliary variable being a product of variables corresponding to respective bits from which a variable corresponding to a specific bit in the energy function is excluded, the one or more coupling coefficients representing interaction of a plurality of variables corresponding to the plurality of bits; as well as Calculation of a third-order or higher-order term of a difference in a value of the energy function associated with an inversion of the specific bit is performed using the auxiliary variable and the coupling coefficient.

7. The optimization method according to claim 6, further comprising: When the specific bit is inverted, the amount of change in the auxiliary variable due to the inversion of the variable corresponding to the specific bit is specified.