Data processing device, program and data processing method

The data processing device and method address the challenge of increasing variable numbers in high-order evaluation functions by using auxiliary variables to calculate discrete optimization problems efficiently without expanding the problem space.

JP7610121B2Active Publication Date: 2025-01-08FUJITSU LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2021102484
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-06-21
Publication Date
2025-01-08
Estimated Expiration
2041-06-21

AI Technical Summary

Technical Problem

Conventional methods for converting high-order evaluation functions into quadratic evaluation functions result in an increase in the number of independent variables, leading to larger problem sizes and increased difficulty in solving discrete optimization problems.

Method used

A data processing device and method that calculates high-order evaluation functions without increasing the number of independent variables by using auxiliary variables to represent the change in energy for high-order terms, allowing the calculation of discrete optimization problems such as 3-SAT, by converting local fields into auxiliary variables and using them to determine the amount of change in the evaluation function.

Benefits of technology

Enables the calculation of discrete optimization problems expressed by high-order evaluation functions without increasing the number of independent variables, thereby reducing the complexity and size of the problem space.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007610121000014
    Figure 0007610121000014
  • Figure 0007610121000015
    Figure 0007610121000015
  • Figure 0007610121000016
    Figure 0007610121000016
Patent Text Reader

Abstract

To calculate a discrete optimization problem shown by a high-order evaluation function without increasing the number of independent variables.SOLUTION: A processing unit 12 reads out a coefficient (Z) showing magnitude of interaction among k state variables (xj1-xjk) (k is an integer of 3 larger) included in the k-th term of an evaluation function, calculates a local field (hjnXY) indicating a variation of the k-th term when a value of xjn out of xj1-xjk changes based on values of xj1-xjk, a value of yjn obtained based on coefficients (σj1-σjk) showing influence of each of xj1-xjk on a variable (for example yjn), and Z, and determines whether or not to accept a change of the value of xjn based on a comparison result of a predetermined value and a product of a variation (Δxjn) of xjn and a sum of a local field (hjnXX) indicating a variation of the second-order and lower terms of the evaluation function when the value of xjn changes, and hjnXY.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a data processing device, a program, and a data processing method. [Background technology]

[0002] As a device for calculating large-scale discrete optimization problems, which von Neumann-type computers are not good at, there is an Ising device (also called a Boltzmann machine) that uses an Ising-type evaluation function (also called an energy function, etc.).

[0003] The Ising machine converts the discrete optimization problem into an Ising model that represents the spin behavior of a magnetic material. Then, the Ising machine searches for a state of the Ising model where the value (corresponding to energy) of the Ising-type evaluation function is minimized by using Markov chain Monte Carlo methods such as simulated annealing and replica exchange (also known as parallel tempering). The state where the evaluation function has the smallest value among the minimum values ​​becomes the optimal solution. Note that the Ising machine can also search for a state where the value of the evaluation function is maximized by changing the sign of the evaluation function. The state of the Ising model can be expressed by a combination of the values ​​of multiple state variables. The value of each state variable can be 0 or 1.

[0004] The Ising-type evaluation function is defined, for example, by a quadratic function such as the following equation (1).

[0005]

number

[0006] The term on the right side is the sum of the values ​​of two state variables and the weight value (which represents the strength of interaction between the two state variables) for all combinations of the N state variables of the Ising model, without omissions or duplications. x i is the state variable with identification number i, x j is the state variable with identification number j, and W ijis the weight value indicating the magnitude of interaction between state variables with identification numbers i and j. The two terms on the right side are the sum of the products of the bias coefficients and state variables for each identification number. b i indicates the bias coefficient for the identification number = i.

[0007] Also, x i The change in energy due to a change in the value of (ΔE i ) is expressed by the following equation (2).

[0008]

number

[0009] In formula (2), for example, x may have a value of 0 or 1. i When changes from 1 to 0, Δx i becomes -1, and x i When changes from 0 to 1, Δx i is 1. Note that h i is called the local field, and Δx i Depending on h i Multiplying by the sign (+1 or -1) is ΔE i Therefore, h i can also be said to be a variable that represents the amount of change in energy, or a variable that determines the amount of change in energy.

[0010] And, for example, ΔE i If x is smaller than the noise value based on the random number and temperature parameter values, i The process of updating the value of , which causes a state transition and updates the local field is then repeated.

[0011] Incidentally, a conventional Ising device uses an Ising-type evaluation function defined by a quadratic function such as the above formula (1). In order to make the Ising device applicable to a wider variety of discrete optimization problems, it is conceivable to use an evaluation function including third- or higher-order terms (hereinafter referred to as a high-order evaluation function).

[0012] As a calculation method for discrete optimization problems using high-order evaluation functions, a calculation method has been proposed in which the high-order evaluation function is converted into a second-order evaluation function by adding a new independent variable similar to the state variable (for example, see Non-Patent Document 1).

[0013] A technique has been proposed in which an Ising device uses constraint terms of inequality constraints defined by linear functions in their linear forms to find a solution (see, for example, Patent Document 1). [Prior art documents] [Patent documents]

[0014] [Patent Document 1] JP 2020-204928 A [Non-patent literature]

[0015] [Non-Patent Document 1] R. Xia, et al., "Electronic Structure Calculations and the Ising Hamiltonian," J. Phys. Chem. B 2018, 122, 13, 3384-3395, 2017 Summary of the Invention [Problem to be solved by the invention]

[0016] In the conventional method of converting a high-order evaluation function into a quadratic evaluation function by adding an independent variable, the number of independent variables increases as the degree of the high-order term increases. As the number of independent variables increases, the size of the problem that can be solved decreases, and the solution space expands, which may make the problem more difficult to solve.

[0017] In one aspect, the present invention aims to provide a data processing device, a program, and a data processing method capable of calculating a discrete optimization problem represented by a high-order evaluation function without increasing the number of independent variables. [Means for solving the problem]

[0018] In one embodiment, a data processing device is provided that searches for a combination of values ​​of multiple state variables that results in a minimum or maximum value of an evaluation function including multiple state variables, the data processing device having: a memory unit that stores a first coefficient representing the magnitude of interaction between k state variables included in a k-th order term of the evaluation function among the multiple state variables (k is an integer equal to or greater than 3); and a processing unit that calculates a first local field indicating an amount of change in the k-th order term when a value of a first state variable among the k state variables changes based on a value of the first variable obtained based on values ​​of the k state variables and multiple second coefficients representing the influence of each of the k state variables on a first variable and the first coefficient read from the memory unit, and determines whether or not to allow a change in the value of the first state variable based on a comparison result between the sum of the first local field and a second local field indicating an amount of change in a second or lower order term of the evaluation function when the value of the first state variable changes and the amount of change in the first state variable, and a predetermined value.

[0019] Also, in one embodiment, a program is provided. Also provided in one embodiment is a method for processing data. Effect of the Invention

[0020] In one aspect, the present invention is capable of computing discrete optimization problems represented by high-order performance functions without increasing the number of independent variables. [Brief description of the drawings]

[0021] [Figure 1] FIG. 1 illustrates an example of a data processing device and a data processing method according to a first embodiment. [Diagram 2] FIG. 13 is a diagram showing an example of k auxiliary variables used corresponding to k state variables. [Diagram 3] A diagram showing the relationship between yjn and qjn. [Figure 4]FIG. 11 is a block diagram illustrating an example of hardware of a data processing device according to a second embodiment. [Diagram 5] FIG. 2 is a block diagram showing an example of functions of a data processing device. [Figure 6] FIG. 4 is a diagram illustrating an example of matrix information stored in a storage unit. [Figure 7] 1 is a flowchart illustrating a flow of an example of a data processing method. [Figure 8] 13 is a flowchart illustrating an example of a procedure for an initialization process. [Figure 9] 13 is a flowchart illustrating an example of a procedure for an update process. [Figure 10] FIG. 13 illustrates an example of a data processing device according to a third embodiment. [Figure 11] FIG. 2 is a diagram illustrating a configuration of an example of an FPGA. [Figure 12] FIG. 13 is a diagram showing an example using an auxiliary variable having a 2-bit value. [Figure 13] FIG. 13 is a diagram showing an example in which spin variables are used as state variables. [Figure 14] FIG. 13 is a diagram showing an example in which the number of auxiliary variables used for state variables that are k spin variables included in a k-th term is one. [Figure 15] FIG. 13 is a diagram showing an example in which multiple auxiliary variables are used in multiple layers. [Figure 16] FIG. 13 is a diagram illustrating an example of a calculation result. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0022] Hereinafter, an embodiment of the invention will be described with reference to the drawings. (First embodiment) FIG. 1 illustrates an example of a data processing device and a data processing method according to a first embodiment.

[0023] The data processing device 10 of the first embodiment is a device that searches for a combination of values ​​of a plurality of state variables that results in a minimum or maximum value of the high-order evaluation function as described above. When a constraint condition to be satisfied by a problem is given by a complex combination of various requirements, the constraint condition may be given by SAT (Satisfiability Problem). In that case, for example, it is desirable to minimize the number of logical clauses that cannot be satisfied by SAT. All SATs can be converted into 3-SAT with 3 literals, but a conventional Ising device that can only handle quadratic evaluation functions can only directly solve up to 2-SAT. As shown below, the data processing device 10 of the present embodiment calculates a local field that represents the amount of change (amount of change in energy) of a higher-order term accompanying a change in the value of a state variable included in the higher-order term, using auxiliary variables. With this method, the data processing device 10 can calculate problems of 3-SAT or more, for example.

[0024] A high-order evaluation function can be expressed, for example, by the following equation (3).

[0025]

number

[0026] On the right side, the first term is the kth (k≧3)th order term (higher order term), and the second and subsequent terms are second order or lower terms. x j1 ~x jk is a state variable included in the k-th term among the N state variables, and forms a k-body bond. Z <j1...jk> x j1 ~x jk (For example, it can also be said to be a coefficient that represents the bond strength of a k-body bond.)

[0027] When dealing with constraints for SAT-type discrete optimization problems, in higher-order terms, x j1 ~x jk The product part of may be a product of positive and negative literals. For example, for k=4, x j1 =x1, x j2 =x2, x j3 =x3, x j4 If we set x4, the product such as the following equation (4) can also be treated as a higher-order term.

[0028]

number

[0029] In formula (4), the state variables (x1, x3) marked with a bar are negative literals. In the case of such higher-order terms, if the logical clause in formula (5) below is not satisfied, that is, in the case of formula (6) below, Z <j1...jk> contributes to E (energy) (incurs a cost).

[0030]

number

[0031]

number

[0032] If the logical clause in formula (5) is not satisfied, then Z <j1...jk> Z as 1234 Suppose that such a Z 1234 The fourth order term that generates 1234 It can be expressed as (1-x1)x2(1-x3)x4. When the values ​​of x1 to x4 change, the local field (h1 XY ~h4 XY ) can be expressed as follows using auxiliary variables (y1 to y4):

[0033] That is, h1, which shows the change in the fourth-order term when the value of x1 changes XY h1 using y1 where y1=x2(1-x3)x4 XY =-Z 1234 It can be expressed as y1. h2 shows the change in the fourth-order term when the value of x2 changes. XY h2 using y2=(1-x1)(1-x3)x4 XY =+Z 1234 It can be expressed as y2. h3 shows the change in the fourth-order term when the value of x3 changes. XY h3 using y3=(1-x1)x2x4 XY=-Z 1234 It can be expressed as y3. h4 shows the change in the fourth-order term when the value of x4 changes. XY is expressed as h4 using y4=(1-x1)x2(1-x3). XY =+Z 1234 It can be expressed as y4.

[0034] In addition, h i XY to -Δx i The value multiplied by y i This is the increase in energy due to the fourth order term when =1. In this way, h i XY is the literal of the k state variables included in the k-th term, h i XY x that is causing i If all literals other than are 1, then Z <j1...jk> On the other hand, h i XY x i If any literal other than is false (zero), the result is 0.

[0035] The appropriately signed value is h i XY x that is causing i However, if the kth term is a positive literal, a plus sign is added, and if it is a negative literal, a negative sign is added. By using the auxiliary variables described above, when the value of the state variable included in the k-th order term changes, the local field h i XY can be calculated.

[0036] It should be noted that the auxiliary variables are obtained from the values ​​of the state variables, and therefore are not independent variables and do not enlarge the solution space. The data processing device 10 of FIG. i XY Three types of local fields (h i XX , h i XY , h j YX) and the auxiliary variables as above, x i Calculate the change in the value of the evaluation function (ΔE) in formula (3) when the value of x i It is determined whether or not to allow the value of

[0037] The data processing device 10 of the first embodiment includes a storage unit 11 and a processing unit 12. The storage unit 11 is, for example, a volatile storage device that is an electronic circuit such as a dynamic random access memory (DRAM), or a non-volatile storage device that is an electronic circuit such as a hard disk drive (HDD) or a flash memory. The storage unit 11 may include an electronic circuit such as a register.

[0038] The memory unit 11 stores problem information of the discrete optimization problem, values ​​of a number of state variables (hereinafter, N) included in the evaluation function of the formula (3), and i XX , h i XY , h j YX The value of is stored. The problem information is Z shown in Eq. (3). <j1...jk> (In Figure 1, it is simply written as Z), W ij and b i In addition to the coefficient (d j ) etc.

[0039] h i XX x i is a local field that represents the change in the second or lower terms of the evaluation function value of equation (3) when the value of h in equation (2) changes. i That is, h i XX can be expressed by the following equation (7).

[0040]

number

[0041] h j YXis the first local field for the k-th order term, and indicates the local field that N state variables generate for the auxiliary variables. h j YX can be expressed by the following equation (8).

[0042]

number

[0043] In formula (8), C jl x l is the coefficient that represents the influence of the jth auxiliary variable. The C jl is 0.

[0044] x included in the kth term j1 ~x jk y jn C represents the impact on jn,j1 ~C jn,jk As mentioned above, when the k-th term is expressed as a product of positive and negative literals, the appropriate sign σ j1 ~σ jk For example, x jn If is included in the above product as a positive literal, then σ jn = +1, and x jn is a negative literal (1-x jn ) is included in the above product, then σ jn =-1.

[0045] In equation (8), d j is a predetermined constant such as, for example, -(k-(3 / 2)) (see FIG. 3). In addition, x i The value of h changes j YX The updated value of h j YX =h j YX +C ji Δx i This can be expressed as:

[0046] h i XY is the second local field related to the k-th order term, and indicates the amount of change in the k-th order term when the value of the state variable included in the k-th order term changes as described above. In the first embodiment, h i XY is a parameter x i h i XY can be expressed by the following equation (9).

[0047]

number

[0048] In equation (9), y j is the jth auxiliary variable among M auxiliary variables, and y j =f(h j YX ) f is expressed as y j It is a function that represents the input / output relationship. F ij The jth auxiliary variable is x i For example, Z in the above formula (3) <j1...jk> and x i The coefficient (C jl ) is F ij It is used as.

[0049] In the first embodiment, the auxiliary variable, which is a one-bit value of 0 or 1, is the k state variables (x j1 ~x jk ), k auxiliary variables are used corresponding to the number of state variables. The auxiliary variables may have values ​​of 2 bits or more. In that case, one auxiliary variable may be used for k state variables (see the fourth embodiment (FIG. 12) described later).

[0050] FIG. 2 is a diagram showing an example of k auxiliary variables used corresponding to k state variables. k auxiliary variables (y j1 ~y jk ) are x j1~x jk In one of the local fields (h j1 XY ~h jk XY y j1 ~y jk Each of x j1 ~x jk The values ​​of state variables other than those that generate local fields, and the above σ j1 ~σ jk The local field is determined based on the sum of products of the state variables other than the state variables that generate the local field.

[0051] For simplicity, Figure 1 shows only one auxiliary variable (y jn ) is shown. jn x jn For the local field (h jn XY ) is generated. y jn But x jn The local field (h jn XY ) is the above σ jn Using and Z, h jn XY = σ jn Zy jn This can be expressed as:

[0052] y jn The function f(h jn YX ) is expressed by the following equation (10): jn Depending on the value of y jn is a function that determines the value of

[0053]

number

[0054] The first term on the right side of equation (10) is the h jn YX From this, σ jn x jn and d j The value is the sum of the two terms on the right side of equation (10)negative x jl (l=1 to k, l≠jn), is the number of state variables included in the above product as a negative literal.

[0055] Figure 3 shows the jn andq jn The horizontal axis is q jn The vertical axis represents y jn Represents. y jn q jn When k is the maximum value k-1, it is 1, and when it is smaller than k-1 (when it is equal to or smaller than k-2), it is 0. The threshold value for such a judgment is d j is used.

[0056] By doing this, x jn h represents the change in the kth order term when the value of jn XY can be sought. For example, as mentioned above, if the logical clause in formula (5) is not satisfied, then Z 1234 The fourth order term that generates 1234 It can be expressed as (1-x1)x2(1-x3)x4. When jn=1, h1 occurs in x1. XY The y1 used to calculate this can be determined to be 1 or 0 depending on whether q1=x2-x3+x4+1 is equal to or greater than (k-(3 / 2))=2.5. YX ) is the same as the above formula y1 = x2(1-x3)x4. For example, if x2 = 1, x3 = 0, and x4 = 1, then q1 = 3, which is k-1, so y1 = 1.

[0057] The storage unit 11 in FIG. j1 ~σ jk may be stored. The storage unit 11 may also store various data such as calculation conditions when the processing unit 12 executes a data processing method described below (for example, the number of replicas when executing a replica exchange method, the value of a temperature parameter to be set for each replica, the replica exchange period, and a calculation end condition). When the processing unit 12 executes a part or all of the processing of the data processing method described below by software, the storage unit 11 stores a program for executing the processing.

[0058] The processing unit 12 can be realized by a processor that is hardware, such as a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), etc. The processing unit 12 may also be realized by an electronic circuit, such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA).

[0059] For example, the processing unit 12 searches for a state where the value (energy) of the evaluation function shown in formula (3) is minimal. The state where the evaluation function is at its smallest among its minimal values ​​is the optimal solution. Note that by changing the sign of the evaluation function shown in formula (3), the processing unit 12 can also search for a state where the evaluation function is at its maximum (in this case, the state where the evaluation function is at its maximum is the optimal solution).

[0060] FIG. 1 shows an example of a flow of a part of the processing of the processing unit 12. In addition, here h i XX , h i XY , h j YX , y j , E, x1~x N It is assumed that a value based on the initial value of is stored in the storage unit 11.

[0061] The processing unit 12 is NAmong them, the processing unit 12 selects state variables of candidates whose values ​​are to be changed (hereinafter, referred to as flip candidates) (step S1). For example, the processing unit 12 selects state variables of the flip candidates randomly or in a predetermined order. In the following, x jn A case where is selected will be described.

[0062] The processing unit 12 is jn When the value of h changes jn XY , h j YX (=h jn YX ) is calculated (or updated) using the above-mentioned method (step S2). The processing unit 12 also calculates h i XX (=h jn XX ) and h jn XY The sum of and -Δx jn By multiplying with x jn The amount of change (ΔE) in the value of the evaluation function when the value of changes is calculated (step S3).

[0063] Then, the processing unit 12 calculates x based on the comparison result between ΔE and the predetermined value. jn It is determined whether or not a change in the value of is permitted (whether or not flipping is permitted) (step S4). Hereinafter, this determination process will be referred to as flip determination process.

[0064] The predetermined value is, for example, a noise value obtained based on a random number and a temperature parameter value. For example, when ΔE is smaller than log(rand)×T, which is an example of a noise value obtained based on a uniform random number (rand) between 0 and 1 and a temperature parameter (T), the processing unit 12 performs the following: jn It is determined that the change in the value of is acceptable.

[0065] When the processing unit 12 determines that the flip is possible, x jn By changing the value of h, the state stored in the memory unit 11 is updated, and the value of h is also updated accordingly. iXX , h i XY , h j YX , y are also updated (step S5).

[0066] For example, x jn As the value of h changes, i XX (i=1~N) is updated by h i XX =h i XX +W i,jn Δx jn That is, the processing unit 12 only needs to read out the weight values ​​of the jn column from the matrix W of N×N weight values.

[0067] h j YX , h i XY The update of h is performed in step S2. jn XY This can be done by finalizing the update value obtained when calculating After the process of step S5, or if the process of step S4 determines that flipping is not permitted, the processing unit 12 repeats the processes from step S1 until a predetermined end condition is satisfied.

[0068] The above processing order is an example, and the processing order may be changed as appropriate. In the above explanation, an example was given in which flip candidate state variables are selected one by one from the N state variables, and the processing of steps S2 to S4 is performed, but the processing of steps S2 to S4 may be performed in parallel for a plurality of state variables (for example, all N state variables). In that case, when there are a plurality of state variables whose values ​​are allowed to be changed, the processing unit 12 randomly or according to a predetermined rule selects the state variable whose value is to be changed, and performs the update processing of step S5. The above-mentioned parallel processing speeds up the calculation.

[0069] When performing the simulated annealing method, for example, the processing unit 12 decreases the value of the above-mentioned temperature parameter (T) according to a predetermined temperature parameter change schedule every time the flip determination process is repeated a predetermined number of times. Then, the processing unit 12 outputs the state obtained when the flip determination process is repeated a predetermined number of times as a calculation result of the discrete optimization problem (for example, displays it on a display device not shown). Note that the processing unit 12 may update the value (energy) of the evaluation function expressed by equation (3) every time a change occurs in the value of the state variable, and store the energy and state when the energy is the minimum so far in the storage unit 11. In this case, the processing unit 12 may output the state corresponding to the minimum energy stored after the flip determination process is repeated a predetermined number of times as a calculation result.

[0070] When the processing unit 12 performs the replica exchange method, the processing unit 12 performs the above-mentioned steps S1 to S5 for each of a plurality of replicas to which different temperature parameter values ​​are set. Then, the processing unit 12 performs replica exchange every time the flip determination process is repeated a predetermined number of times. For example, the processing unit 12 randomly selects two of the plurality of replicas, and exchanges the value or state of the temperature parameter between the two selected replicas with a predetermined exchange probability based on the energy difference between the replicas or the difference in the value of the temperature parameter. For example, the processing unit 12 updates the value (energy) of the evaluation function expressed by the formula (3) every time a change occurs in the value of the state variable in each replica, and holds the energy and state when the energy becomes the minimum so far. Then, the processing unit 12 outputs, as a calculation result, a state corresponding to the minimum energy in all replicas among the minimum energies stored after the above flip determination process is repeated a predetermined number of times in each replica.

[0071] According to the data processing device 10 and the data processing method described above, the amount of change in the k-th order term when the value of the state variable included in the k-th order term changes is calculated using the value of the auxiliary variable obtained based on the value of the state variable included in the k-th order term. The auxiliary variable is not an independent variable and does not enlarge the solution space. Therefore, it is possible to calculate a discrete optimization problem represented by a high-order evaluation function without increasing the number of independent variables.

[0072] Note that the coupling between the state variables and the auxiliary variables is determined by the coefficient (C in Eq. (8)) as described above. jl and F in equation (9) ij ), no wiring is required, and even if the number of auxiliary variables increases, problems such as wiring congestion do not occur.

[0073] (Second embodiment) FIG. 4 is a block diagram illustrating an example of hardware of a data processing device according to the second embodiment.

[0074] The data processing device 20 is, for example, a computer, and includes a CPU 21, a RAM 22, a HDD 23, a GPU 24, an input interface 25, a media reader 26, and a communication interface 27. The above units are connected to a bus.

[0075] The CPU 21 is a processor including an arithmetic circuit that executes program instructions. The CPU 21 loads at least a part of the program and data stored in the HDD 23 into the RAM 22 and executes the program. The CPU 21 may have multiple processor cores, and the data processing device 20 may have multiple processors, and the processes described below may be executed in parallel using multiple processors or processor cores. A set of multiple processors (multiprocessor) may also be called a "processor."

[0076] The RAM 22 is a volatile semiconductor memory that temporarily stores programs executed by the CPU 21 and data used in calculations by the CPU 21. Note that the data processing device 20 may include a type of memory other than the RAM 22, or may include multiple memories.

[0077] The HDD 23 is a non-volatile storage device that stores software programs such as an OS (Operating System), middleware, and application software, as well as data. The programs include, for example, a program that causes the data processing device 20 to execute a process of searching for a solution to a discrete optimization problem. Note that the data processing device 20 may include other types of storage devices such as a flash memory or an SSD (Solid State Drive), and may include multiple non-volatile storage devices.

[0078] The GPU 24 outputs an image to a display 24a connected to the data processing device 20 in accordance with an instruction from the CPU 21. As the display 24a, a CRT (Cathode Ray Tube) display, a liquid crystal display (LCD: Liquid Crystal Display), a plasma display (PDP: Plasma Display Panel), an organic EL (OEL: Organic Electro-Luminescence) display, or the like can be used.

[0079] The input interface 25 acquires an input signal from an input device 25a connected to the data processing device 20, and outputs the signal to the CPU 21. As the input device 25a, a pointing device such as a mouse, a touch panel, a touch pad, or a trackball, a keyboard, a remote controller, a button switch, etc. may be used. In addition, a plurality of types of input devices may be connected to the data processing device 20.

[0080] The medium reader 26 is a reading device that reads programs and data recorded on the recording medium 26a. For example, a magnetic disk, an optical disk, a magneto-optical disk (MO: Magneto-Optical disk), a semiconductor memory, etc. can be used as the recording medium 26a. The magnetic disk includes a flexible disk (FD: Flexible Disk) and a HDD. The optical disk includes a compact disc (CD) and a digital versatile disc (DVD).

[0081] The medium reader 26 copies the program and data read from the recording medium 26a to another recording medium such as the RAM 22 or the HDD 23. The read program is executed by the CPU 21, for example. The recording medium 26a may be a portable recording medium, and may be used for distributing the program and data. The recording medium 26a and the HDD 23 may also be referred to as computer-readable recording media.

[0082] The communication interface 27 is an interface that is connected to the network 27a and communicates with other information processing devices via the network 27a. The communication interface 27 may be a wired communication interface that is connected to a communication device such as a switch by a cable, or may be a wireless communication interface that is connected to a base station by a wireless link.

[0083] Next, the functions and processing procedures of the data processing device 20 will be described. FIG. 5 is a block diagram illustrating an example of functions of the data processing device. The data processing device 20 includes an input unit 30, a control unit 31, a storage unit 32, a search unit 33, and an output unit .

[0084] The input unit 30, the control unit 31, the search unit 33, and the output unit 34 have the functions of the processing unit 12 of the data processing device 10 of the first embodiment. The input unit 30, the control unit 31, the search unit 33, and the output unit 34 can be implemented, for example, by using a program module executed by the CPU 21 or a storage area (register or cache memory) in the CPU 21. The storage unit 32 has the functions of the storage unit 11 of the data processing device 10 of the first embodiment. The storage unit 32 can be implemented, for example, by using a storage area secured in the RAM 22 or the HDD 23.

[0085] The input unit 30 receives, for example, state variables (x1 to x N ) initial value, problem information, and calculation conditions are input. For example, the problem information is Z <j1...jk> , weight value (W ij ) and bias coefficient (b i ), as well as the coefficient (C jl , d j ) is included in the problem information. <j1...jk> to the aforementioned σ j1 ~σ jk F ij The calculation conditions may include, for example, the number of replicas when the replica exchange method is performed, the replica exchange period, the value of the temperature parameter to be set for each replica, the temperature parameter change schedule when the simulated annealing method is performed, the calculation end condition, and the like.

[0086] This information may be input by the user operating the input device 25a, or may be input via the recording medium 26a or the network 27a. The control unit 31 controls each unit of the data processing device 20 based on the calculation conditions and the like to execute the processes described below.

[0087] The memory unit 32 stores x1 to x N The storage unit 32 may store various information such as calculation conditions and the like. The search unit 33 includes an initial value calculation unit 33a, an h&y update / hold unit 33b, a flip candidate variable selection unit 33c, a Δx calculation unit 33d, a ΔE calculation unit 33e, and an E update / hold unit 33f. The search unit 33 further includes a flip determination unit 33g, a state hold unit 33h, a transition destination state calculation unit 33i, and a state update unit 33j.

[0088] The initial value calculation unit 33a calculates the values ​​of x1 to x N The initial value of b i , C jk , d j Based on these values, h is calculated using equations (7) and (8). i XX , h j YX The initial value calculation unit 33a calculates the initial value of h j YX From the initial value of y j =f(h j YX ) by the formula, y j Calculate the initial value of

[0089] Furthermore, the initial value calculation unit 33a calculates, for example, F ij Read out the calculated y j The initial value of F ij Based on this, h i XY Calculate the initial value of

[0090] The h&y update and storage unit 33b i XX , h j YX , h i XY , y j The above values ​​are updated and stored. x jn As the value of h changes, i XX The updated value of h i XX =h i XX +W i,jn Δx jn It can be expressed as the formula: xjn As the value of h changes, j YX The updated value of h j YX =h j YX +C j,jn Δx jn It can be expressed as the formula: x jn As the value of h changes, j XY The updated value of h i XY =h i XY +F ij Δy j It can be expressed as the formula: Δy j h j YX Using the updated value of Δy j =f(h j YX )-y j It is calculated by the following formula.

[0091] The flip candidate variable selection unit 33c selects state variables of flip candidates. The flip candidate variable selection unit 33c selects state variables of flip candidates, for example, randomly or in a predetermined order. The flip candidate variable selection unit 33c outputs the identification numbers (1 to N) of the state variables of the selected flip candidates.

[0092] The Δx calculation unit 33d calculates the amount of change in the value of the state variable of the selected flip candidate. For example, if the state variable of the flip candidate is x jn If x jn When changes from 1 to 0, Δx jn becomes -1, and the state variable x jn When changes from 0 to 1, Δx jn will be 1.

[0093] The ΔE calculation unit 33e calculates ΔE when the value of the state variable of the flip candidate changes based on the product of the sum of the two types of local fields and the amount of change in the value of the state variable of the flip candidate. For example, when the state variable of the flip candidate is x jn If x jn When the value of h changesjn XY And, h jn XX The sum of and -Δx jn Calculate ΔE by multiplying with

[0094] When the flip determination unit 33g allows the change in the value of the state variable of the flip candidate, the E update and retention unit 33f updates E, which is the value of the evaluation function shown in the formula (3), based on ΔE calculated by the ΔE calculation unit 33e, and retains E. Note that the E update and retention unit 33f may retain the smallest E obtained so far.

[0095] The flip determination unit 33g performs a flip determination process to determine whether or not to permit a change in the value of the state variable of the flip candidate based on a comparison result between ΔE and a predetermined value. The predetermined value is, for example, a noise value obtained based on a random number and a temperature parameter value. For example, when ΔE is smaller than log(rand)×T, which is an example of a noise value obtained based on a uniform random number (rand) between 0 and 1 and a temperature parameter (T), the flip determination unit 33g determines that the change in the value of the state variable of the flip candidate is permitted.

[0096] The state holding unit 33h holds N state variables (x1 to x N ) value. The transition destination state calculation unit 33i calculates x1 to x N The flip candidate variable selection unit 33c calculates a transition destination state by changing the value of the state variable of the identification number output from the flip candidate variable selection unit 33c.

[0097] If the flip determination unit 33g determines that the change in the value of the state variable is permitted, the state update unit 33j updates the state held in the state holding unit 33h using the transition destination state calculated by the transition destination state calculation unit 33i.

[0098] Under the control of the control unit 31, the search unit 33 repeats the above-mentioned flip determination process and update process of each parameter to search for a state in which the value (energy) of the evaluation function is minimized.

[0099] The output unit 34 outputs the search result (calculation result) by the search unit 33. For example, when the replica exchange method is performed, the output unit 34 outputs, as the calculation result, a state corresponding to the minimum energy in all replicas among the minimum energies stored after the above flip determination process is repeated a predetermined number of times in each replica.

[0100] The output unit 34 may, for example, output the calculation result to the display 24a for display, transmit the calculation result to another information processing device via the network 27a, or store the calculation result in an external storage device.

[0101] FIG. 6 is a diagram illustrating an example of matrix information stored in the storage unit. If the number of state variables in the evaluation function of equation (3) is N and the number of auxiliary variables is M, then W ij is an N × N matrix, and C in equation (8) jl is an M × N matrix, and F in equation (9) ij is an N×M matrix. Note that W ij =W ji In this embodiment, the weight value between the auxiliary variables is set to 0.

[0102] The following describes the processing procedure (data processing method) of the data processing device 20. Note that the following describes an example in which a search is performed using the replica exchange method. FIG. 7 is a flowchart showing the flow of an example of a data processing method.

[0103] Step S10: The input unit 30 inputs x1 to x N The initial value of x1~x is input. N The initial values ​​and problem information are stored in the storage unit 32, and the calculation conditions are supplied to the control unit 31.

[0104] Step S11: An initialization process is performed for each replica. An example of the procedure for the initialization process will be described later. The control unit 31 causes the search unit 33 to perform the following processes of steps S12 to S16 for each replica.

[0105] Step S12: The flip candidate variable selection unit 33c of the search unit 33 selects candidate state variables whose values ​​are to be changed (updated). Step S13: The ΔE calculation unit 33e calculates ΔE. ΔE when the value of the state variable of the flip candidate changes is calculated based on the product of the sum of the two types of local fields and the amount of change in the value of the state variable of the flip candidate. For example, when the state variable of the flip candidate is x jn If so, the ΔE calculation unit 33e calculates x jn When the value of h changes jn XY And, h jn XX The sum of and -Δx jn Calculate ΔE by multiplying with

[0106] Step S14: The flip determination unit 33g performs a flip determination based on the comparison result between ΔE and a predetermined value. If the flip determination unit 33g determines that the change in the value of the state variable is permitted (in the case of "flip permitted"), the process of step S15 is performed, and if the flip determination unit 33g determines that the change in the value of the state variable is not permitted (in the case of "flip not permitted"), the process of step S16 is performed.

[0107] Step S15: An update process is performed. In the process of step S15, the state is updated by the state update unit 33j, and the h&y update and storage unit 33b updates the h&y data. i XX , h j YX , h i XY , y j The E update holder 33f updates E. An example of the procedure of the process in step S15 will be described later.

[0108] Step S16: The control unit 31 judges whether the process satisfies a predetermined end condition. For example, the control unit 31 judges that the end condition is satisfied when the number of times the search unit 33 has performed the flip judgment process reaches the maximum number of flip judgments. If it is judged that the process satisfies the predetermined end condition, the process of step S19 is performed, and if it is judged that the process does not satisfy the predetermined end condition, the process of step S17 is performed.

[0109] Step S17: The control unit 31 judges whether the flip judgment count is the replica exchange period. For example, when the remainder when the flip judgment count is divided by the value indicating the replica exchange period is 0, the control unit 31 judges that the flip judgment count is the replica exchange period.

[0110] If the control unit 31 determines that the flip determination count is the replica exchange period, it performs processing in step S18, and if it determines that the flip determination count is not the replica exchange period, it causes the search unit 33 to repeat the processing from step S12.

[0111] Step S18: The control unit 31 performs a replica exchange process. For example, the control unit 31 randomly selects two of the multiple replicas, and exchanges the state or the set temperature parameter value between the two selected replicas with a predetermined exchange probability based on the energy difference between the replicas or the difference in the temperature parameter value. After the process of step S18, the control unit 31 causes the search unit 33 to repeat the process from step S12.

[0112] Step S19: The output unit 34 outputs the calculation result. For example, the output unit 34 outputs the state corresponding to the minimum energy in all replicas among the minimum energies stored for each replica as the calculation result. For example, the output unit 34 may output the calculation result to the display 24a for display, may transmit the calculation result to another information processing device via the network 27a, or may store the calculation result in an external storage device.

[0113] Next, an example of the procedure of the initialization process in step S11 will be described. FIG. 8 is a flowchart illustrating an example of a procedure for the initialization process. It is assumed that E is initialized to E0 (for example, 0) in equation (3).

[0114] The initial value calculation unit 33a first calculates all h i XX , h i XY , h j YX For h i XX =b i , h i XY =0, h j YX =d j (Step S20). j is the auxiliary variable y j When is an auxiliary variable for k (k≧3)-field connected state variables, for example, the value -(k-3 / 2) is used. j Yes j (see Figure 3 above)

[0115] The initial value calculation unit 33a calculates all y j , y j =f(h j YX After the process of step S21, the initial value calculation unit 33a calculates h i XY =h i XY +F ij y j By the formula, all h for i=1~N i XY For all F ij y j (step S22).

[0116] After that, the initial value calculation unit 33a sets the variable k representing the identification number of the state variable to 1 (step S23), andk 0 (h k XX +h k XY ) (step S24). Furthermore, the initial value calculation unit 33a updates E by the formula h i XX =h i XX +W ik x k 0 By the formula, all h for i=1~N i XX (Step S25). k 0 represents the initial value of the state variable of identification number = k.

[0117] After the process of step S25, the initial value calculation unit 33a determines whether or not k=N (step S26), and if it determines that k=N is not true, it sets k=k+1 (step S27) and repeats the process from step S24.

[0118] When it is determined that k=N, the initial value calculation unit 33a sets the variable j indicating the identification number of the auxiliary variable to 1 (step S28). In the following, the number of auxiliary variables is assumed to be M.

[0119] The initial value calculation unit 33a calculates h j YX =h j YX +C jk x k 0 By the formula, h j YX For all C jk x k 0 For example, the C jk is 0, and C for the state variables included in the kth order term jk is +1 or -1 (σ in Figure 1) j1 ~σ jk ) Among the state variables included in the k-th term, the C jkis +1, C for state variables that are negative literals jk is -1.

[0120] Then, the initial value calculation unit 33a calculates Δy j Δy j =f(h j YX )-y j (Step S30) i XY =h i XY +F ij Δy j By the formula, all h for i=1~N i XY (Step S31). ij is C ji and Z in Eq. (3) <j1...jk> It is expressed as the product of and . Note that C for state variables not included in the k-th order term ji Since is 0, F ij will also be 0.

[0121] After the process of step S31, the initial value calculation unit 33a determines whether j=M or not (step S32), and if it determines that j=M is ​​not true, it sets j=j+1 (step S33) and repeats the process from step S29.

[0122] If the initial value calculation unit 33a determines that j=M, it ends the initialization process. Next, an example of the procedure of the update process in step S15 in FIG. 7 will be described. FIG. 9 is a flowchart illustrating an example of a procedure for updating. jn An example is shown where the value of is allowed to change.

[0123] The Δx calculation unit 33d and the state update unit 33j use the transition destination state calculated by the transition destination state calculation unit 33i to update the state held in the state holding unit 33h. The updated state is x jn The value of x jn =x jn +Δx jnIn addition, the E update holding unit 33f changes the equation E=E-Δx jn (h jn XX +h jn XY E is updated by the formula (step S40). jn (h jn XX +h jn XY )=ΔE, which is supplied from ΔE calculation unit 33e.

[0124] Then, the h&y update and storage unit 33b stores all h i XX , h i XX =h i XX +W i,jn Δx jn (Step S41). The h&y update and hold unit 33b sets j=1 (Step S42) and j YX =h j YX +C j,jn Δx jn h is expressed by the formula j YX The updated value of h (calculated when calculating ΔE in step S13) j YX Furthermore, the h&y update and hold unit 33b updates Δy j =f(h j YX )-y j Δy expressed by the formula j The updated value of Δy (calculated when calculating ΔE in step S13) j (Step S43). j is the original h j YX Using y j =f(h j YX ) can be expressed as

[0125] After that, the h&y update and storage unit 33b i XY =hi XY +F ij Δy j By the formula, x jn For all h i = 1 to N with the change in the value of i XY The updated value of is calculated (step S44).

[0126] After the process of step S44, the h&y update and retention unit 33b determines whether j=M or not (step S45), and if it determines that j=M is ​​not true, it sets j=j+1 (step S46) and repeats the process from step S43.

[0127] If it is determined that j=M, the update process is terminated. It should be noted that the order of the processes shown in FIGS. 7 to 9 is merely an example, and the order of the processes may be changed as appropriate.

[0128] According to the data processing device 20 and the data processing method as described above, the same effect as that of the data processing device 10 and the data processing method of the first embodiment can be obtained. That is, a discrete optimization problem represented by a high-order evaluation function can be calculated without increasing the number of independent variables.

[0129] As described above, the above processing contents can be realized by causing the data processing device 20 to execute a program. The program may be recorded on a computer-readable recording medium (e.g., recording medium 26a). For example, a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory may be used as the recording medium. Magnetic disks include FDs and HDDs. Optical disks include CDs, CD-R (Recordable) / RW (Rewritable), DVDs, and DVD-R / RWs. The program may be recorded on a portable recording medium and distributed. In that case, the program may be copied from the portable recording medium to another recording medium (e.g., HDD 23) and executed.

[0130] (Third embodiment) Fig. 10 is a diagram illustrating an example of a data processing device according to the third embodiment, in which the same elements as those illustrated in Fig. 4 are denoted by the same reference numerals.

[0131] A data processing device 40 of the third embodiment has an accelerator card 41 connected to a bus. The accelerator card 41 is a hardware accelerator that searches for a solution to a discrete optimization problem and includes an FPGA 41a and a DRAM 41b.

[0132] In the data processing device 40 of the third embodiment, the FPGA 41a performs the processes of the control unit 31 and the search unit 33 shown in FIG. 5. The DRAM 41b functions as the storage unit 32 shown in FIG.

[0133] There may be a plurality of accelerator cards 41. In this case, for example, the processes for each replica (for example, the processes in steps S12 to S16 in FIG. 7) can be performed in parallel.

[0134] FIG. 11 is a diagram illustrating an example of a configuration of an FPGA. The FPGA 41a includes a controller 50, a state update / hold circuit 51, multipliers 52 and 53, and XX Update holding circuit 54, h YX Update hold circuit 55, y calculation hold circuit 56, E update hold circuit 57, multiplier 59, h XY It has an update holding circuit 60 and an adder circuit 61.

[0135] The controller 50 controls each part of the FPGA 41a. For example, the controller 50 generates and outputs clock signals (clkx, clky) for determining the operation timing of the state update holding circuit 51 and the y calculation holding circuit 56 as shown in FIG.

[0136] The controller 50 also has a function of selecting a state variable of a flip candidate, and a function of determining whether or not to allow a change in the value of the state variable of the flip candidate based on the sum of the two types of local fields output by the adder circuit 61. For example, the controller 50 selects x jn When selecting, the controller 50 outputs the identification number=jn. jn XX +h jn XY The state update / hold circuit 51 outputs Δx jn Based on this, ΔE=-Δx jn (h jn XX +h jn XY Then, the controller 50 calculates x based on a comparison result between ΔE and a noise value obtained based on the random number and the value of the temperature parameter. jn It is determined whether or not to allow the value of

[0137] The state update / hold circuit 51 has, for example, a register or a static random access memory (SRAM) and stores N x i (i=1 to N) are stored. Note that there are N x i The initial value of x i 0 is read out from the DRAM 41b and held in the state update holding circuit 51.

[0138] Moreover, the state update and hold circuit 51 outputs the amount of change when the value of the state variable of the flip candidate designated by the controller 50 is changed. For example, when jn is designated as the identification number of the state variable, the state update and hold circuit 51 outputs x jn The change in Δx jn Output.

[0139] Furthermore, when the state update and hold circuit 51 receives a signal from the controller 50 to the effect that a change in the value of the state variable of the flip candidate is permitted, the state update and hold circuit 51 updates the state by changing the value of that state variable.

[0140] The multiplier 52 multiplies the N×N W ij In the matrix W obtained by the above, the product of the weight value of the row or column related to the state variable of the flip candidate and the change amount of the state variable is output. For example, if the state variable of the flip candidate is x jn If so, the N weight values ​​(W i,jn ) is read from the DRAM 41b, and Δx jn and W i,jn The product with is output.

[0141] The multiplier 53 multiplies M×N C jk In the matrix C, the product of the column coefficients related to the state variables of the flip candidates and the change in the state variables is output. For example, if the state variable of the flip candidate is x jn If so, the M coefficients in the jn column of matrix C (C j,jn ) is read from the DRAM 41b, and Δx jn and C. j,jn The product with is output.

[0142] h XX The update / hold circuit 54 has, for example, a register or an SRAM, and stores N h i XX and multiplying each of the N products output by the multiplier 52 into N h i XX Of the corresponding h i XX By adding to, N h i XX Calculate the update value of h i XX The initial value of b i is read from DRAM41b, and XX The updated value is stored in the update storage circuit 54 .

[0143] h YX The update / hold circuit 55 has, for example, a register or an SRAM, and stores M h j YX Also, hold h YXThe update / hold circuit 55 converts each of the M products output by the multiplier 53 into M h j YX Of the corresponding h j YX By adding to M h j YX Calculate the updated value of h j YX The initial value of d j is read from DRAM41b, and YX The updated value is stored in the update storage circuit 55 .

[0144] The y calculation and holding circuit 56 calculates and holds M auxiliary variables y j Calculate the previously calculated y j The difference between (Δy j ) is calculated as above. j is y j =f(h j YX For example, the y calculation and holding circuit 56 is determined by the q jn value and -d j (for example, k-3 / 2 as mentioned above) jn Output.

[0145] The y calculation and storage circuit 56 includes, for example, a register or an SRAM, and stores the calculated M y j Hold. The E update / hold circuit 57 includes, for example, a register or an SRAM, and holds E, which is the value of the evaluation function shown in equation (1), and calculates an update value of E. For example, x jn If the value of is allowed to change, E=E-(h jn XX +h jn XY )Δx jn The updated value of E is obtained by the above equation. Note that E0 in equation (3) is set in the E update holding circuit 57 as the initial value of E.

[0146] Multiplier 59 multiplies Δy j and F read from DRAM41bij Output the product with . h XY The update / hold circuit 60 has, for example, a register or an SRAM, and stores N h i XY The multiplier 59 outputs F ij Δy j For each j, N h i XY Of the corresponding h i XY By adding to, N h i XY Calculate the update value of h i XY As the initial value of h XY The update holding circuit 60 is set to 0.

[0147] The adder circuit 61 is XX The local field and h held in the update / hold circuit 54 XY The result of addition with the local field held in the update / hold circuit 60 is output. The result of addition is used by the controller 50 and the E update / hold circuit 57 to calculate ΔE. jn When the value of changes, the adder circuit 61 adds h jn XX +h jn XY Output.

[0148] In the data processing device 40 of the third embodiment as described above, by using an FPGA 41a having a circuit configuration as shown in FIG. 11, a function similar to that of the processing unit 12 of the data processing device 10 of the first embodiment is realized, and an effect similar to that of the data processing device 10 is obtained.

[0149] (Fourth embodiment) In the above-mentioned embodiments, as shown in FIG. 2, the auxiliary variable, which is a 1-bit value of 0 or 1, is the k state variables (x j1 ~x jkHowever, as shown below, by using an auxiliary variable with a value of 2 or more bits, it is possible to use one auxiliary variable for the k state variables included in the k-th term.

[0150] FIG. 12 is a diagram showing an example in which an auxiliary variable having a 2-bit value is used. In FIG. 12, an auxiliary variable having a 2-bit value is q m It is written as follows. q m x j1 ~x jk The sum of k literals by is determined to be 2 for k, 1 for k-1, and 0 for k-2 or less. j1 ~x jk An example is shown in which all k literals are positive literals.

[0151] For example, σ j1 ~σ jk =1, d m h is calculated as = -(k-2) j YX ,q m In this case, q m =f(h j YX )=h j YX It is. q m x j1 ~x jk The local field (h j1 XY ~h jk XY ) is converted into q by the conversion units 70j1, ..., 70jn, ..., 70jk in FIG. m is converted from the value of

[0152] For example, the conversion unit 70jn m If is 2, the constraint expressed by the kth order term is not satisfied, so h jn XY Z as <j1...jk> The conversion unit 70jn outputs q m If is 1, then x jnIf the literal by is 0, the constraints will not be satisfied if the value is changed, so h jn XY Z as <j1...jk> The conversion unit 70jn outputs x jn If the literal by is 1, the constraint is satisfied when the value is changed, so h jn XY The conversion unit 70jn outputs 0 as q m If is 0, then x jn Regardless of the value of , the constraint is satisfied after the change, so h jn XY and outputs 0.

[0153] The above-described conversion units 70j1 to 70jk are incorporated into the h&y update and storage unit 33b shown in FIG. 5, or into the h&y update and storage unit 33b shown in FIG. XY By incorporating it as a logic circuit in the update / hold circuit 60, it can be applied to the data processing devices 20 and 40.

[0154] By using the above method, the number of auxiliary variables can be reduced. For example, if the number of state variables forming the k-body bond is m k If so, the number of auxiliary variables is m k It can be one.

[0155] (Fifth embodiment) In the above embodiments, the state variables (x1 to x N ) have been described as binary variables with values ​​of 0 or 1, but the state variables (x1~x N ) may be a spin variable, with a value of -1 or 1.

[0156] FIG. 13 is a diagram showing an example in which spin variables are used as state variables. x forming k-body bonds j1 ~x jk and auxiliary variable y j1 ~y jk The connection relationship is the same as that shown in FIG.

[0157] When using spin variables as state variables, Δx i Δx i =-x i -x i =-2x i By changing it to i XX This makes it possible to perform calculations at the time of updating (see steps S40 and S41 in FIG. 9).

[0158] However, h i XY To calculate f(h j YX ) is different from the case of using binary variables. Since the spin variables include signs, for example, the state variable x jn For the auxiliary variable y jn h generated when is 1 jn XY is expressed as (σ j1 ~σ jk = 1), which can be expressed by the following equation (11).

[0159]

number

[0160] Equation (11) is x jn Excluding x j1 ~x jk If the number of state variables with the value -1 is odd, then -Z <j1...jk> , if even, Z <j1...jk> Such a h jn XY In order to generate y jn =f(h jn YX )h jn YX As such, the following equation (12) can be used.

[0161]

number

[0162] When k is an odd number, the upper part of equation (12) is used, and when k is an even number, the lower part of equation (12) is used. Then, f(h jn YX ) is h jn YX If is even, then x jn Excluding x j1 ~x jk Since the number of state variables with a value of -1 is odd, h jn YX If is odd, it outputs +1.

[0163] Such a y jn =f(h jn YX ) and h jn XY h jn XY =Z <j1...jk> y jn This can be expressed as: As mentioned above, jn XY By changing the calculation method, it is possible to treat the spin variables as state variables. By being able to treat the spin variables, the following effects can be obtained, for example:

[0164] When a problem originally formulated using spin variables is converted to a problem using binary variables, the number of coefficients may increase. For example, when a cubic evaluation function using spin variables is converted to an evaluation function using binary variables, the number of coefficients may increase because quadratic and linear terms are also generated by the conversion.

[0165] By directly handling the spin variables, the increase in coefficients accompanying the transformation can be reduced, and the memory capacity required to store the coefficients can be reduced. Problems formulated using spin variables include, for example, problems related to quantum chemical calculations, in which the Hamiltonian of the ground state of an electronic system is expanded in terms of spin variables to obtain a form that includes a higher-order spin product.

[0166] (Sixth embodiment) As in the fourth embodiment, even when a spin variable is used, the number of auxiliary variables used for k state variables included in the k-th order term can be one.

[0167] In formula (11), x jl is the spin variable, and x jl 2 = 1, equation (11) can be transformed into the following equation (13).

[0168]

number

[0169] That is, one auxiliary variable, q m Generates q m Z <j1...jk> x jn By multiplying by x jn h for jn XY can be calculated. q m After the initial value (+1 or -1) is set, x j1 ~x jk It is updated by inverting the sign whenever any of the values ​​of x changes. jn If the value of h changes, jn XY does not change, and x jn Other than x j1 ~x jk h for j1 XY ~h jk XY changes, and the change is Z <j1...jk> x j1 Δq m ~Z <j1...jk> x jk Δq m It becomes.

[0170] FIG. 14 is a diagram showing an example in which the number of auxiliary variables used for state variables that are k spin variables included in a k-th order term is one. q m x j1 ~x jkThe local field (h j1 XY ~h jk XY ) is multiplied by the multiplication units 80j1, ..., 80jn, ..., 80jk in FIG. <j1...jk> q m To,x j1 ~x jk It is obtained by multiplying the value of

[0171] The multiplication units 80j1 to 80jk as described above may be incorporated into the h&y update and hold unit 33b shown in FIG. 5, or may be incorporated into the h&y update and hold unit 33b shown in FIG. XY By incorporating it into the update holding circuit 60 as a logic circuit (multiplier), it can be applied to the data processing devices 20 and 40.

[0172] By using the above method, auxiliary variables can be generated as multi-input, multi-output neurons for one k-th order connection. In addition, the identification numbers (j1 to jk) of the state variables included in the k-th order term and Z <j1...jk> If the set of x is read once from a memory (for example, the storage unit 32 or the DRAM 41b), j1 ~x jk The local field (h j1 XY ~h jk XY ) can be calculated.

[0173] (Seventh embodiment) In the above-mentioned embodiments, the auxiliary variable (y in FIG. 2) j1 ~y jk ) are used in a single layer, and the weights between the auxiliary variables are set to 0 as shown in FIG. 6, but they may be used in multiple layers as shown below.

[0174] FIG. 15 is a diagram showing an example in which multiple auxiliary variables are used in multiple layers. In the example of FIG. M The auxiliary variables form a multilayer network. y1~y MBy setting the initial values ​​and weight values, it can also function as a single-layer auxiliary variable group (or one auxiliary variable) that generates a local field related to the kth order term in the state variables included in the kth order term mentioned above.

[0175] Furthermore, as shown in FIG. M is formed in multiple layers, y1 to y M By setting weight values ​​between, it becomes possible to handle not only higher-order terms but also more general cost functions. (calculation example) FIG. 16 is a diagram showing an example of the calculation result.

[0176] Fig. 16 shows an example of calculation of a SAT-type discrete optimization problem (seven instances in Fig. 16) whose solution is known, using the data processing device 20 as shown in the second embodiment. The number of state variables included in the evaluation function and the number of logic clauses in higher-order terms differ in each instance. In the example of the calculation result in Fig. 16, all logic clauses are satisfied in all seven instances, and a solution is obtained in the time shown in "Solution time (s)".

[0177] While one aspect of the data processing device, the program, and the data processing method of the present invention has been described above based on the embodiment, these are merely examples and the present invention is not limited to the above description. [Explanation of symbols]

[0178] 10 Data Processing Device 11 Storage section 12 Processing section

Claims

1. 1. A data processing device for searching for a combination of state variable values ​​that results in a minimum or maximum value of an evaluation function including the state variables, comprising: a storage unit configured to store a first coefficient representing a magnitude of interaction between k state variables included in a kth term (k is an integer equal to or greater than 3) of the evaluation function among the plurality of state variables; a processing unit that calculates a first local field indicating an amount of change in the k-th order term when a value of a first state variable among the k state variables changes, based on values ​​of the k state variables and a plurality of second coefficients indicating influences of each of the k state variables on a first variable, and the first coefficient read from the storage unit, and determines whether or not to allow a change in the value of the first state variable based on a comparison result between a sum of a second local field indicating an amount of change in a second or lower order term of the evaluation function when the value of the first state variable changes and the first local field, and the amount of change in the first state variable, and a predetermined value; A data processing device having:

2. 2. The data processing apparatus according to claim 1, wherein said second coefficients are −1 or 1.

3. a value of the first variable is determined for each of the k state variables; the value of the first variable determined for the first state variable is determined based on a sum of products of values ​​of second state variables other than the first state variable among the k state variables and second coefficients related to the second state variable among the plurality of second coefficients.

3. A data processing device according to claim 1 or 2.

4. 4. The data processing apparatus according to claim 3, wherein the first local field is a product of a third coefficient related to the first state variable among the plurality of second coefficients, a value of the first variable determined for the first state variable, and the first coefficient.

5. A value of the first variable that is common to the k state variables is determined; The value of the first variable determined for the first state variable is determined to be 2 if the sum of k literals by the k state variables is k, 1 if the sum is k-1, and 0 if the sum is k-2 or less; The processing unit sets the first local field to the first coefficient when the value of the first variable is 2, sets the first local field to the first coefficient when the value of the first variable is 1, sets the first local field to the first coefficient when a literal based on the first state variable is 0, sets the first local field to 0 when the literal is 1, and sets the first local field to 0 when the value of the first variable is 0.

3. A data processing device according to claim 1 or 2.

6. each of the plurality of state variables and the first variable has a value of −1 or 1; The processing unit determines a value of the first variable for each of the k state variables; the first local field for the first state variable is a product of a sum of a value of a second state variable other than the first state variable among the k state variables, the first coefficient, and the first variable; 2. A data processing apparatus according to claim 1.

7. each of the plurality of state variables and the first variable has a value of −1 or 1; The processing unit includes: Calculating a value of the first variable common to the k state variables by multiplying the values ​​of the k state variables; calculating the first local field for the first state variable by multiplying the value of the first variable, the first coefficient, and the value of the first state variable; 2. A data processing apparatus according to claim 1.

8. A program for causing a computer to execute a search for a combination of values ​​of a plurality of state variables that results in a minimum or maximum value of an evaluation function including the plurality of state variables, comprising: reading out a first coefficient from a storage unit that stores a first coefficient representing a magnitude of interaction between k state variables included in a kth term (k is an integer of 3 or more) of the evaluation function among the plurality of state variables; calculating a first local field indicating an amount of change in the k-th order term when a value of a first state variable among the k state variables changes, based on a value of the first variable obtained based on values ​​of the k state variables and a plurality of second coefficients representing influences of each of the k state variables on a first variable, and based on the first coefficients read out from the storage unit; determining whether or not to permit a change in the value of the first state variable based on a comparison result between a sum of a second local field indicating a change in a second or lower order term of the evaluation function when the value of the first state variable changes and the first local field, and a change in the first state variable, and a predetermined value; A program that causes a computer to carry out processing.

9. A computer that searches for a combination of values ​​of a plurality of state variables that results in a minimum or maximum value of an evaluation function including the plurality of state variables, reading out a first coefficient from a storage unit that stores a first coefficient representing a magnitude of interaction between k state variables included in a kth term (k is an integer of 3 or more) of the evaluation function among the plurality of state variables; calculating a first local field indicating an amount of change in the k-th order term when a value of a first state variable among the k state variables changes, based on a value of the first variable obtained based on values ​​of the k state variables and a plurality of second coefficients representing influences of each of the k state variables on a first variable, and based on the first coefficients read out from the storage unit; determining whether or not to permit a change in the value of the first state variable based on a comparison result between a sum of a second local field indicating a change in a second or lower order term of the evaluation function when the value of the first state variable changes and the first local field, and a change in the first state variable, and a predetermined value; Data processing methods.

Citation Information

Patent Citations

  • Information processing device, ising device and method for controlling information processing device

    JP2017224227A

  • Optimization device and optimization method

    JP2020204928A