Optimization device, optimization program, and optimization method

By employing an auxiliary variable to calculate energy differences in high-order terms, the optimization device addresses the data transfer bottleneck in large-scale discrete optimization, enhancing calculation efficiency.

JP7600776B2Active Publication Date: 2024-12-17FUJITSU LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2021036691
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-03-08
Publication Date
2024-12-17
Estimated Expiration
2041-03-08

AI Technical Summary

Technical Problem

Conventional methods for solving large-scale multivariable discrete optimization problems, such as those using the Ising model, face significant challenges due to the enormous amount of data transfer required for high-order terms, leading to prolonged calculation times.

Method used

An optimization device and method that utilizes an auxiliary variable to calculate the energy difference for bit inversion in high-order terms, reducing the number of memory accesses by using the product of variables excluding the inverted bit, thereby minimizing data transfer.

Benefits of technology

This approach significantly reduces the amount of data transferred during calculations, thereby shortening the time required for optimization processes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007600776000018
    Figure 0007600776000018
  • Figure 0007600776000019
    Figure 0007600776000019
  • Figure 0007600776000020
    Figure 0007600776000020
Patent Text Reader

Abstract

To suppress a data transfer amount upon optimization calculation.SOLUTION: The present invention is directed to an optimization apparatus according to an embodiment for carrying out optimization by selecting application or no-application of bit inversion based on difference of values of energy functions following inversion of each of values of a plurality of bits in an energy function including a plurality of bits. The optimization apparatus has a memory and an arithmetic unit connected to the memory. The arithmetic unit carries out calculation of terms of third order or higher of the difference resulting from inversion of a specific bit in the energy function with an auxiliary variable as a product of variables corresponding to each bit except for a variable corresponding to the specific bit and a combination coefficient corresponding to the auxiliary variable. The arithmetic unit, in the execution of the calculation, reads the combination coefficient corresponding to the auxiliary variable from the memory for storing the combination coefficient representing correlation of a plurality of variables corresponding to the plurality of bits included in the energy function.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to an optimization device, an optimization program, and an optimization method. [Background technology]

[0002] In today's society, information processing is carried out in all fields. This information processing is carried out by calculation devices such as computers, which calculate and process various data to obtain meaningful results, thereby making predictions, decisions, control, etc. One type of information processing is optimization processing, which is an important field.

[0003] One type of optimization process is solving discrete optimization problems. In discrete optimization problems, when the problem is large-scale and involves many variables, the number of combinations increases explosively, and the calculation time required to solve the problem by exhaustively calculating all combinations may become unrealistic.

[0004] One method for solving such large-scale, multivariate discrete optimization problems is simulated annealing (SA), which uses an Ising-type energy function. In SA, the problem to be calculated is replaced with an Ising model, which represents the behavior of spin in magnetic materials, and then the calculation is performed.

[0005] In optimization calculations using the Ising model, bits are probabilistically flipped to calculate the change in energy when one bit is flipped, and the optimal solution that minimizes energy is searched for by deciding whether or not to accept the bit flip based on the energy change. [Prior art documents] [Patent documents]

[0006] [Patent Document 1] JP 2019-145010 A [Patent Document 2] JP 2019-46038 A [Patent Document 3] International Publication No. 2015 / 190593 [Patent Document 4] US Patent Application Publication No. 2019 / 0087388 Summary of the Invention [Problem to be solved by the invention]

[0007] However, in the above conventional techniques, when searching for the minimum value of an energy function E(x) including third or higher order terms, the number of parameter elements to be transferred from memory to computational resources becomes enormous.

[0008] For example, if k is the order, the energy function E(x) for all orders is written as an equation: 1,2,…,k This is expressed by the following formula (1): The coupling coefficient represents the strength of mutual coupling between multiple spins in an Ising model in which multiple variables are likened to multiple spins of a magnetic material.

[0009]

number

[0010] j1...j k is the position of the element at each order, x is binary (0,1) or spin (1,-1), and W is a different array for each order, and in general is a multidimensional array.

[0011] Equation (1) is rewritten as the following equation (2). ZK is the coupling coefficient of the k-th order term, and is a K-dimensional array.

[0012]

number

[0013] Here, the formula (3), which is the calculation formula for the change in energy of the Kth term ΔEK(x,i) accompanying the inversion of the i-th element of x, and the formula (4), which is the overall calculation formula, are as follows. Note that since it is a change, E0 disappears.

[0014]

number

[0015]

number

[0016] For example, in the third order term, x j1 x j2 x j3 x', which is one bit inverted j1 x' j2 x' j3 To do this, the inverted part is m, and the bit difference is Δx m Then, the third order term is Z m,j2,j3 Δx m x j2 x j3 , Z j1,m,j3 x j1 Δx m x j3 , Z j1,j2,m x j1 x j2 Δx m The above is calculated and added together.

[0017] In other words, the amount of memory access required to perform the calculation is the number of hyperplanes of Z that are the degree of Z. The same is true for degrees 4 and above. The values ​​of K×N^(K-1) elements are transferred from memory to the computational resources.

[0018] 7 is a block diagram showing a conventional configuration example for a minimum solution search. As shown in FIG. 7, a calculation processing unit 201 reads out a coupling coefficient (ZK) which is a parameter used in calculation from a memory 202, and calculates the i-th bit x of x of a term of degree K. iThe energy difference is calculated while changing j1 to jk. j1 to jk can each take values ​​from 1 to N.

[0019] The arithmetic processing unit 201 includes a reading unit 203, arithmetic units 204 to 206, and an adding unit 207. The arithmetic processing unit 201 determines the position (i) at which the bit is inverted, and calculates x before and after the inversion. i The difference value Δx i A vector (x) including the above is input, a predetermined portion is read out from the K-th order coupling coefficient ZK stored in the memory 202, and the energy difference ΔEk of that term is output.

[0020] The reading unit 203 selects, for each dimension of the multidimensional array Z, a hyperplane in which the position (i) of x at which the bit is inverted is fixed, and reads it from the memory 202 to prepare K pieces of hyperplanes. This reading from the memory 202 is where the transfer load to the calculation processing unit 201, which is a computational resource, occurs.

[0021] The calculation units 204 to 206 and the addition unit 207 perform product-sum calculations for each hyperplane output from the reading unit 203. For example, when K=3, the calculation unit 204 performs the following calculations.

number

[0022] Adder 207 adds up the calculation results of calculators 204 to 206 and outputs ΔEk.

[0023] Fig. 8 is an explanatory diagram for explaining a conventional operation example related to a minimum solution search. In Fig. 8, the initial value of E is calculated in advance according to formula (2). This initial value is not included in the transfer amount because it is the first time.

[0024] As shown in Fig. 8, the calculation processing units 201a to 201c correspond to the calculation processing unit 201 in Fig. 7, and perform calculations when the orders are K, 3, and 2. In the case of the first order, the multiplication unit 208 multiplies the value of U at the changed position (i) (U i ) and Δx iMultiply it by

[0025] After the calculations are performed by the calculation processing units 201a to 201c and the multiplication unit 208, the addition unit 209 adds up the respective results to create ΔE(x,i). The adoption / rejection determination unit 210 determines whether or not to adopt the bits changed using the known Metropolis standard or the like, based on ΔE(x,i). If the bits are to be adopted, the adoption / rejection determination unit 210 sets E=E+ΔE(x,i) for the current energy E, and if not, sets E=E.

[0026] FIG. 9 is an explanatory diagram illustrating an example of reading out a hyperplane from a memory. In the example of Fig. 9, the third-order term is picked up. As shown in Fig. 9, in order to calculate the energy difference by bit inversion using a calculation resource (such as the calculation processing unit 201), hyperplanes of the order are read out from a memory (such as the memory 202).

[0027] For example, if the degree K=3 and the number of bits N, then 3N 2 elements are transferred from memory to the computational resources. Therefore, when searching for the minimum value of the energy function E(x) that includes higher-order terms, the amount of data transferred may become large and the transfer time may take longer. When the order is 4 or more and N is larger, the amount of data transferred becomes even larger and the transfer time increases.

[0028] In one aspect, an object of the present invention is to provide an optimization device, an optimization program, and an optimization method that can reduce the amount of data transfer during optimization calculation. [Means for solving the problem]

[0029] In one proposal, an optimization device that selects whether to adopt bit inversion based on a difference in the value of an energy function associated with inversion of each value of multiple bits in an energy function including multiple bits and performs optimization includes a memory and a calculation unit connected to the memory. The calculation unit calculates a third or higher order term of the difference associated with inversion of a specific bit in the energy function using an auxiliary variable that is a product of variables corresponding to each bit except for the variable corresponding to the specific bit, and a coupling coefficient corresponding to the auxiliary variable. In performing the calculation, the calculation unit reads out a coupling coefficient corresponding to the auxiliary variable from a memory that stores coupling coefficients that represent interactions between multiple variables corresponding to multiple bits included in the energy function. Effect of the Invention

[0030] The amount of data transferred during optimization calculations can be reduced. [Brief description of the drawings]

[0031] [Figure 1] FIG. 1 is a block diagram illustrating an example of a configuration of an information processing device according to an embodiment. [Diagram 2] FIG. 2 is a block diagram showing an example of the configuration of the minimum solution searching unit. [Diagram 3] FIG. 3 is a flowchart illustrating an example of the operation of the information processing device according to the embodiment. [Figure 4] FIG. 4 is an explanatory diagram illustrating an example of parameters. [Diagram 5] FIG. 5 is an explanatory diagram for explaining a comparative example of a time chart. [Figure 6] FIG. 6 is an explanatory diagram for explaining the transfer amount per one transfer of the coupling coefficient. [Figure 7] FIG. 7 is a block diagram showing an example of a conventional configuration for a minimum solution search. [Figure 8] FIG. 8 is an explanatory diagram for explaining a conventional operation example related to a minimum solution search. [Figure 9] FIG. 9 is an explanatory diagram illustrating an example of reading out a hyperplane from a memory. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0032] Hereinafter, an optimization device, an optimization program, and an optimization method according to the embodiments will be described with reference to the drawings. Components having the same functions in the embodiments will be given the same reference numerals, and duplicated descriptions will be omitted. Note that the optimization device, the optimization program, and the optimization method described in the following embodiments are merely examples, and do not limit the embodiments. In addition, the following embodiments may be appropriately combined within a range that does not cause contradiction.

[0033] In the embodiment, an information processing device that performs various types of arithmetic processing is exemplified as an example of an optimization device. In this information processing device, as one of the arithmetic processing, in simulated annealing using an Ising-type energy function, optimization is performed by selecting whether to adopt bit inversion based on the difference in the energy function associated with bit inversion. Specifically, the information processing device stochastically inverts one or more bits to calculate the energy change when the bit is inverted, and searches for an optimal solution that minimizes energy by selecting whether to accept the bit inversion according to the energy change. Note that the embodiment is not limited to the case where an optimization problem is solved using an Ising model, but can also be applied to the case where an optimization problem is solved using a model including a third or higher order term.

[0034] The information processing device of the embodiment uses a Monte Carlo method that randomly inverts one or more bits to search for an optimal solution, and obtains a state x with the minimum energy of the energy function (E). Here, the change (difference) between the energy before inversion of the energy function (E) due to the inversion of the i-th bit that is a candidate for inversion is defined as ΔE i In the information processing device according to the embodiment, ΔE i After calculating ΔEi, a decision (selection) is made as to whether or not to invert the i-th bit based on the Metropolis criterion or the like.

[0035] Here, ΔE iThe calculation of is explained below. First, the third and higher terms of the above formula (2) are grouped with Z, and rewritten as the following formula (5).

[0036]

number

[0037] Here, when considering the energy difference ΔE caused by bit inversion, E0 in formula (5) is unnecessary because it is a constant. Also, since the variable x is a discrete value, it cannot be differentiated, but we focus on the difference (first-order difference) due to the change in the bit in the linked x, and set the first-order difference as Δx. By using this Δx, we can reduce the variable of x to be linked by one, and ΔE i is expressed as follows:

[0038]

number

[0039] Next, in equation (6), an auxiliary bit (also called an auxiliary variable) y that can be calculated from x is i,m This auxiliary bit y i,m is the product of all variables x (x j1 ,…x jk ) to find the variable x whose ith bit is to be inverted. i Since y can be calculated from x, the number of bits does not increase by introducing y. i,m By introducing the above, equation (6) can be rewritten as the following equation (7).

[0040]

number

[0041] Here, Z i,m Introduce Z. i,m is y i,m This is the coupling coefficient corresponding to ΔE ican be expressed as the following formula (8). In the calculation of this formula (8), g i The number of elements of Z referenced can be reduced by one order.

[0042]

number

[0043] When bit flipping is employed, the energy update is performed by using the variable x j By inverting the multiple auxiliary variables y i,m The value of y may change. This change is called Δy i,m Then, the energy update is as shown in the following equation (9).

[0044]

number

[0045] In the information processing device according to the embodiment, the third or higher order terms in the calculation of ΔEi are calculated as shown in equations (8) and (9). Specifically, the information processing device calculates an auxiliary variable y i,m and,y i,m The coupling coefficient Z i,m At this time, the information processing device calculates ΔEi using the coupling coefficients Z corresponding to the auxiliary variables from the memory that stores the coupling coefficients corresponding to all bits related to the energy function. i,m Therefore, the information processing device can reduce the number of elements read from the memory by an order of magnitude, and can suppress the amount of data transfer during calculation.

[0046] Fig. 1 is a block diagram showing a configuration example of an information processing device according to an embodiment. As shown in Fig. 1, the information processing device 100 has a UI 1, a minimum solution search unit 2, and a general-purpose CPU 3 (CPU: Central Processing Unit), and these units are connected by a bus or the like. For example, a PC (Personal Computer) or the like can be applied as the information processing device 100.

[0047] UI1 is a user interface (UI) that inputs data from the user, outputs processing results, etc. Externally provided parameters such as coupling coefficients Z corresponding to all bits related to the energy function and temperature are input by the user via UI1.

[0048] The minimum solution search unit 2 is a processing unit that performs calculation processing related to optimization and searches for an optimal solution that minimizes energy, and has a memory 10 and a calculation processing unit 20. The general-purpose CPU 3 is a general-purpose CPU that handles applications for the processing of the UI 1 and the calculation processing unit 20.

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

[0050] The arithmetic processing unit 20 is a processing unit that calculates ΔEi according to formulas (8) and (9), and based on the ΔEi, determines whether or not to invert the i-th bit according to the Metropolis criterion or the like, and searches for an optimal solution. A dedicated hardware device such as an ASIC (Application Specific Integrated Circuit), an FPGA (Field-Programmable Gate Array), a GPU (Graphics Processing Unit), a general-purpose CPU, etc. can be used for the arithmetic processing unit 20.

[0051] For example, the arithmetic processing unit 20 performs arithmetic processing related to optimization by reading and executing a program stored in the memory 10. The program executed by the arithmetic processing unit 20 may not be stored in the memory 10. For example, the arithmetic processing unit 20 may read and execute a program stored in a storage medium readable by the information processing device 100. Examples of the storage medium readable by the information processing device 100 include portable storage media such as CD-ROMs, DVD disks, USB (Universal Serial Bus) memories, semiconductor memories such as flash memories, and hard disk drives. In addition, the program may be stored in a device connected to a public line, the Internet, a LAN, or the like, and the information processing device 100 may read and execute the program from the device. In addition, the various processing functions performed by the arithmetic processing unit 20 may be executed by a plurality of computers working together through cloud computing.

[0052] 2 is a block diagram showing an example of the configuration of the calculation processing unit 20. As shown in FIG. 2, the calculation processing unit 20 includes calculation units 21, 22, and 23, addition units 24, 25, and 26, a multiplication unit 27, and an adoption / rejection determination unit 28. Note that the calculation processing unit 20 calculates the initial value of E, h i , g i The initial value of is calculated in advance according to the formula (8). In the illustrated example, the configuration of the calculation processing unit 20 is illustrated which mainly calculates Δy,m, and calculates ΔE according to the result to determine whether or not to accept the result.

[0053] The calculation unit 21 calculates Z by removing the dimension corresponding to the candidate bit to be inverted from the coupling coefficients Z corresponding to all bits stored in the memory 10. i,m is read and the calculation is performed according to equation (8).

[0054] The calculation unit 22 calculates Δy,m from the variable x and the candidate i for the bit to be changed.

[0055] The calculation unit 23 and the addition unit 24 calculate h i The calculation is performed for h iWhether or not to update is determined according to the adoption / rejection determination unit 28. When the adoption / rejection determination unit 28 determines that the data is to be adopted, i will be updated.

[0056] The adder 25 calculates g according to the formula (8) based on the calculation result of the calculator 21. i Calculations are performed for g i Whether to update is determined according to the adoption / rejection determination unit 28. If the adoption / rejection determination unit 28 determines that the i will be updated.

[0057] The adder 26 adds the results of the calculations by the adders 24 and 25. The multiplier 27 multiplies the result of the calculation by the adder 26 by -Δx i That is, in the calculations of the adder 26 and the multiplier 27, ΔE i The following calculation is performed.

[0058] The acceptance / rejection determination unit 28 determines whether or not to accept the bits changed according to the Metropolis criterion, based on ΔE(x,i), which is the calculation result up to the multiplication unit 27.

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

[0060] As shown in FIG. 3, when the process starts, the calculation processing unit 20 obtains an initial value E(0) of the energy function E for the initial value x0 of x by the following equation (10) relating to the energy function (S1).

[0061]

number

[0062] Next, the calculation processing unit 20 calculates h i The initial value of h i Prepare (0) (S2). Here, hi is an N-bit (N: number of bits) vector.

[0063]

number

[0064] Next, the calculation processing unit 20 calculates g i The initial value of g i Prepare (0) (S3). Here, g i is an N-bit vector.

[0065]

number

[0066] Next, the calculation processing unit 20 randomly selects one bit (i) to be inverted in x, and calculates the difference between before and after the inversion of the selected bit as Δx i Let us assume (S4).

[0067] Next, the calculation processing unit 20 calculates Δx i , h i , g i from ΔE i Calculate (S5).

[0068]

number

[0069] Next, the acceptance / rejection determination unit 28 of the calculation processing unit 20 calculates the calculated ΔE i Using this, it is judged whether or not to adopt bit inversion according to the Metropolis criterion or the like (S6). For example, in the case of the Metropolis criterion, the adoption / rejection judgment unit 28 generates a uniform random number rand in the interval 0≦rand≦1 as an example. Next, the adoption / rejection judgment unit 28 judges that bit inversion is adopted if rand>exp(ΔE×β), where β is the inverse temperature.

[0070] If not adopted (S6: not adopted), the calculation processing unit 20 advances the process to S10. If adopted (S6: adopted), the calculation processing unit 20 updates the energy E according to the following formula (14) (S7). The updated energy E(x,t+1) is the product of E before the update and ΔE in formula (13), which is the calculation result of the multiplication unit 27. i This is the sum of the above values.

[0071]

number

[0072] Next, the calculation processing unit 20 calculates h i Update (S8).

[0073]

number

[0074] Next, the calculation processing unit 20 calculates g according to the formula (16) by the calculations of the calculation unit 21, the calculation unit 22, and the addition unit 25. i Update (S9). Here, Δy,m is Δy,m=Δx j Δx k It is.

[0075]

number

[0076] Next, the arithmetic processing unit 20 repeats the arithmetic processing of S4 to S9 a predetermined number of times, or determines whether or not a termination condition, such as a predetermined energy being obtained, is satisfied (S10). If the termination condition is satisfied (S10: Yes), the arithmetic processing unit 20 assumes that optimization has been obtained and terminates the processing. If the termination condition is not satisfied (S10: No), the arithmetic processing unit 20 returns the processing to S4. In this manner, the arithmetic processing unit 20 repeats bit inversion a predetermined number of times or until a predetermined energy is obtained.

[0077] As described above, the information processing device 100 calculates an auxiliary variable (y i,m ) and the coupling coefficients (Z i,m ) is used for the calculation. During this calculation, the information processing device 100 reads out coupling coefficients corresponding to auxiliary variables from the memory 10 that stores coupling coefficients (Z) that represent 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 read out from the memory 10 by an order of magnitude, thereby reducing the amount of data transfer during calculation.

[0078] Furthermore, when inversion of a specific bit is adopted, the information processing device 100 calculates the change in the auxiliary variable due to inversion of the variable corresponding to the specific bit (S8, S9). As a result, when inversion of a specific bit is adopted, the information processing device 100 can update the value of the auxiliary variable in accordance with the bit inversion.

[0079] FIG. 4 is an explanatory diagram for explaining an example of a parameter. Specifically, in FIG. 4, a parameter Z i,m In Fig. 4, the third order case is shown. i Although x is being bracketed, i When changes occur, x j ,x k may also change (if they point to the same bit position). Therefore, as shown in Figure 4, when updating, it is sufficient to access the changed part. Therefore, the number of accesses to the coupling coefficients (Z) corresponding to all bits related to the energy function at one time is "at most" N2, not N3.

[0080] Fig. 5 is an explanatory diagram for explaining a comparative example of a time chart, in which case C1 is a time chart of a calculation process related to a conventional optimum solution search, and case C2 is a time chart of a calculation process related to an optimum solution search of the embodiment.

[0081] As shown in FIG. 5, in conventional case C1, the calculation of ΔE is performed after transferring the coupling coefficients (Z) at least in hyperplane units. In contrast, in case C1 of the embodiment, g1(t) to gn(t) can be transferred and processed independently. In most cases, the number of bits is greater than the order, so the number of coupling coefficients to be transferred at one time is greater in conventional case C1 than in case C2 of the embodiment. Therefore, the total time required for loading data is shorter in case C2.

[0082] In conventional optimal solution searches, the amount of data transferred from memory to computing resources for one bit flip is kN for one energy difference calculation, where N is the number of spins (number of bits) and k is the degree. (k-1) In the search for an optimal solution in this embodiment, N (k-1) It can be as follows:

[0083] FIG. 6 is an explanatory diagram for explaining the transfer amount of the coupling coefficient per one time. The relationship between N, k and the data transfer amount is shown in graph G1 of FIG. 6, and the optimal solution search of this embodiment can reduce the data transfer amount compared to the conventional method. In addition, in the conventional optimal solution search, the data transfer amount increases as k increases, but in this embodiment, the number of elements of the coupling coefficient to be transferred can be made the same as in the case of k=3 by recursively applying the method using auxiliary variables. Therefore, in this embodiment, the effect of reducing the data transfer amount becomes greater as k increases. For example, when the satisfiability problem (SAT) is applied to the Ising model to perform the optimal solution search, the effect of reducing the data transfer amount becomes more pronounced since k increases.

[0084] Regarding the above embodiment, the following supplementary notes are further disclosed.

[0085] (Supplementary Note 1) An optimization device that selects whether or not to perform bit inversion based on a difference in a value of an energy function including a plurality of bits, the difference being caused by inverting the values ​​of each of the plurality of bits, and performs optimization, Memory, A computing unit connected to the memory; having The calculation unit is Calculating a third or higher order term of the difference associated with the inversion of a specific bit in the energy function using an auxiliary variable that is a product of variables corresponding to each bit excluding the variable corresponding to the specific bit, and a coupling coefficient corresponding to the auxiliary variable; In the execution of the calculation, a coupling coefficient corresponding to the auxiliary variable is read from the memory storing coupling coefficients representing interactions between a plurality of variables corresponding to the plurality of bits included in the energy function. Optimization device characterized by:

[0086] (Note 2) When the inversion of the specific bit is adopted, the calculation unit calculates a change in the auxiliary variable due to the inversion of the variable corresponding to the specific bit. 2. The optimization device according to claim 1,

[0087] (Appendix 3) An optimization program for causing a computer including a memory and a calculation unit connected to the memory to execute a process of selecting whether or not to adopt bit inversion based on a difference in a value of an energy function including a plurality of bits associated with inversion of each value of the plurality of bits, the program comprising: Calculating a third or higher order term of the difference associated with the inversion of a specific bit in the energy function using an auxiliary variable that is a product of variables corresponding to each bit excluding the variable corresponding to the specific bit, and a coupling coefficient corresponding to the auxiliary variable; In the execution of the calculation, a coupling coefficient corresponding to the auxiliary variable is read from the memory storing coupling coefficients representing interactions between a plurality of variables corresponding to the plurality of bits included in the energy function. An optimization program that causes a computer to execute a process.

[0088] (Additional Note 4) When the inversion of the specific bit is adopted, a change in the auxiliary variable due to the inversion of the variable corresponding to the specific bit is calculated. 4. The optimization program according to claim 3, further comprising causing the computer to execute a process.

[0089] (Appendix 5) An optimization method for selecting whether or not to invert a bit inversion based on a difference in a value of an energy function including a plurality of bits associated with inversion of each value of the plurality of bits, the method being executed by a computer including a memory and a calculation unit connected to the memory, Calculating a third or higher order term of the difference associated with the inversion of a specific bit in the energy function using an auxiliary variable that is a product of variables corresponding to each bit except for the variable corresponding to the specific bit, and a coupling coefficient corresponding to the auxiliary variable; In the execution of the calculation, a coupling coefficient corresponding to the auxiliary variable is read from the memory storing coupling coefficients representing interactions between a plurality of variables corresponding to the plurality of bits included in the energy function. An optimization method characterized in that the processing is executed by a computer.

[0090] (Additional Note 6) When the inversion of the specific bit is adopted, a change in the auxiliary variable due to the inversion of the variable corresponding to the specific bit is calculated. 6. The optimization method according to claim 5, further characterized in that the processing is performed by the computer. [Explanation of symbols]

[0091] 1...UI 2...Minimum solution search unit 3…General-purpose CPU 10, 202…Memory 20, 201, 201a to 201c...Calculation processing unit 21~23, 204~206...Arithmetic section 24~26, 207, 209…Addition section 27, 208…Multiplication section 28, 210…Adoption / rejection decision section 100...Information processing device 203…Reading section C1, C2…Case G1…Graph

Claims

1. 1. An optimization device that performs optimization by selecting whether or not to perform bit inversion based on a difference in a value of an energy function including a plurality of bits, the difference being caused by inverting each value of the plurality of bits, the optimization device comprising: Memory, A computing unit connected to the memory; having The calculation unit is Calculating a third or higher order term of the difference associated with the inversion of a specific bit in the energy function using an auxiliary variable that is a product of variables corresponding to each bit excluding the variable corresponding to the specific bit, and a coupling coefficient corresponding to the auxiliary variable; In the execution of the calculation, a coupling coefficient corresponding to the auxiliary variable is read from the memory storing coupling coefficients representing interactions between a plurality of variables corresponding to the plurality of bits included in the energy function. Optimization device characterized by:

2. When the inversion of the specific bit is adopted, the calculation unit calculates a change in the auxiliary variable due to the inversion of the variable corresponding to the specific bit.

2. The optimization device according to claim 1 .

3. 1. An optimization program for causing a computer to execute an optimization process for selecting whether or not to invert a bit based on a difference in an energy function value associated with inversion of each of a plurality of bits in an energy function including the plurality of bits, the optimization program comprising: Calculating a third or higher order term of the difference associated with the inversion of a specific bit in the energy function using an auxiliary variable that is a product of variables corresponding to each bit excluding the variable corresponding to the specific bit, and a coupling coefficient corresponding to the auxiliary variable; In the execution of the calculation, a coupling coefficient corresponding to the auxiliary variable is read from the memory storing coupling coefficients representing interactions between a plurality of variables corresponding to the plurality of bits included in the energy function. An optimization program that causes a computer to execute a process.

4. 1. An optimization method for selecting whether or not to invert a bit inversion based on a difference in a value of an energy function including a plurality of bits when the value of each of the plurality of bits is inverted, the method being executed by a computer including a memory and a calculation unit connected to the memory, Calculating a third or higher order term of the difference associated with the inversion of a specific bit in the energy function using an auxiliary variable that is a product of variables corresponding to each bit excluding the variable corresponding to the specific bit, and a coupling coefficient corresponding to the auxiliary variable; In the execution of the calculation, a coupling coefficient corresponding to the auxiliary variable is read from the memory storing coupling coefficients representing interactions between a plurality of variables corresponding to the plurality of bits included in the energy function. An optimization method characterized in that the processing is executed by a computer.

Citation Information

Patent Citations

  • Evaluation function converter and program

    JP2019046038A

  • Computer, calculation program, recording medium, and calculation method

    JP2019145010A

  • Information processing apparatus, ising device, and information processing apparatus control method

    US20170364477A1

  • System and method to hardcode interger linear optimization problems on physical implementations of the ising model

    US20190087388A1

  • Information processing method, information processing device, and program therefor

    WO2015190593A1