Data processing apparatus, data processing method, and program
The data processing device efficiently solves large-scale discrete optimization problems by managing weighting coefficients and local fields within trial target portions, addressing inefficiencies in existing technologies.
Patent Information
- Application Number
- JP2024067224
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-04-18
- Publication Date
- 2025-10-30
AI Technical Summary
Large-scale discrete optimization problems involving constraints are inefficiently solved due to insufficient computational resources, particularly memory capacity to store weighting coefficients.
A data processing device and method that efficiently solve large-scale problems by using an Ising-type evaluation function, incorporating terms for multiple state variables and constraints, with a storage unit to manage weighting coefficients and local fields, and a processing unit to perform search processes within trial target portions.
Enables efficient solving of large-scale discrete optimization problems with reduced computational resources by managing weighting coefficients and local fields, allowing for optimal solution finding.
Smart Images

Figure 2025163739000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a data processing device, a data processing method, and a program. [Background technology]
[0002] Ising machines (also called Boltzmann machines) use Ising-type evaluation functions (also called energy functions) as machines that can calculate large-scale discrete optimization problems, which von Neumann computers are not good at.
[0003] An Ising machine converts a discrete optimization problem into an Ising model that represents the spin behavior of a magnetic material. Then, using Markov chain Monte Carlo methods such as simulated annealing and replica exchange, the Ising machine searches for the state of the Ising model where the value of the Ising-type evaluation function is minimized. The value of the evaluation function corresponds to the energy of the Ising model. The state where the minimum value of the evaluation function is obtained is the optimal solution. Note that by changing the sign of the evaluation function, the Ising machine can also search for the state where the value of the evaluation function is maximized. 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 evaluation function is expressed, for example, by the following equation (1).
[0005]
number
[0006] The first item on the right side is the sum of the products of the values of the two state variables (0 or 1) and the weighting coefficient (which represents the strength of the interaction between the two state variables) for all combinations of the N state variables of the Ising model, without any omissions or overlaps. x i is the state variable with identification number i, x j is the state variable with identification number j, and W ijis a weighting coefficient that indicates the magnitude of interaction between the state variables with identification numbers i and j. The two terms on the right side are the sum of the products of the bias coefficient and the state variable for each identification number. b i indicates the bias coefficient for identification number i.
[0007] Also, x i The change in energy due to the change in the value of i ) is expressed by the following equation (2).
[0008]
number
[0009] In equation (2), x i When changes from 1 to 0, Δx i becomes -1, and the state variable 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, exp(-βΔE i ) (β is the inverse of the parameter representing temperature) and the acceptance probability is x i The process of updating the value of , which causes a state transition and updates the local field is repeated.
[0011] Incidentally, some discrete optimization problems have constraints that the solution must satisfy. For example, the knapsack problem, which is one type of discrete optimization problem, has a constraint that the total volume of luggage that can be packed into a knapsack must be less than or equal to the capacity of the knapsack. Such constraints are called inequality constraints, and can be expressed by constraint terms whose values depend on whether the constraints are violated. In addition to inequality constraints, other constraints include equality constraints and absolute value constraints.
[0012] The evaluation function (H(x)) representing the total energy including the constraint term can be expressed by the following equation (3).
[0013]
number
[0014] In equation (3), the sum of the first and second terms on the right side represents the energy equivalent to E(x) in equation (1), and the third term on the right side represents the total energy of the constraint terms. Also, D represents the set of identification numbers of the state variables, k represents the identification number of the constraint terms, and A represents the set of identification numbers of the constraint terms. Also, λ k is a predetermined positive coefficient for the constraint term with identification number k.
[0015] As an example, if the constraint is an inequality constraint, G in Eq. (3) k (h k ) can be expressed by the following equation (4).
[0016]
number
[0017] In equation (4), max(0,h k ) is 0 and h k It is a function that outputs the larger value of R k is the consumption (also called resource amount) of the constraint term with identification number k, U k represents the upper limit of the resource amount. ki is the x in the inequality constraint with identification number k. iis a coefficient (weighting coefficient) that indicates the weight of
[0018] In equation (3), x j The change in energy due to the change in the value of (ΔH j ) is expressed by the following equation (5).
[0019]
number
[0020] If the constraint is an inequality constraint, x j The change in energy due to the change in the value of (ΔH j ) can be expressed by the following equation (6) instead of equation (5).
[0021]
number
[0022] In equation (6), a ij is the x in the inequality constraint with identification number i j is a coefficient indicating the weight of the above W ki Equivalent to C ui is the upper limit of the inequality constraint for the identification number i, and k where M represents the number of constraints.
[0023] x j The acceptance probability A(ΔH j ) is expressed by equation (7).
[0024]
number
[0025] The upper part of equation (7) is the Metropolis method, and the lower part is the Gibbs method. min[1,exp(-βΔH)] is a function that outputs the smaller value between 1 and exp(-βΔH). Here, a technology has been proposed in which constraint terms of inequality constraints such as those described above are used in linear form to find solutions using an Ising device. A system has also been proposed that solves large-scale combinatorial optimization problems in a distributed manner across multiple nodes. A method has also been proposed for solving continuous optimization problems using a sampling device for binary variables. A computational system has also been proposed that solves problems by linking quantum and non-quantum processors.
[0026] Furthermore, a device has been proposed that updates a local field corresponding to a constraint, which represents the amount of constraint violation that is affected by changes in state variables, when solving an optimization problem that includes constraints, and updates the local field corresponding to the state variables based on the local field before and after the update.
[0027] In addition, a device has been proposed that loads some of the coupling coefficients related to the state variables within a window from an external storage device that stores all coupling coefficients into its internal memory in order to solve the problem by switching between windows, which are portions of all state variables to which two or more state variables to be tested belong. [Prior art documents] [Patent documents]
[0028] [Patent Document 1] Japanese Patent Application Publication No. 2020-204928 [Patent Document 2] Japanese Patent Publication No. 2022-125725 [Patent Document 3] US Patent Application Publication No. 2015 / 0363358 [Patent Document 4] US Patent Application Publication No. 2020 / 0167685 [Patent Document 5] Japanese Patent Application Publication No. 2023-149428 [Patent Document 6] Japanese Patent Publication No. 2023-149806 Summary of the Invention [Problem to be solved by the invention]
[0029] In large-scale discrete optimization problems involving constraints, there are cases where the solution cannot be found efficiently due to a lack of computational resources, such as memory capacity to store weighting coefficients used in the solution search. In one aspect, the present invention aims to efficiently solve large-scale problems. [Means for solving the problem]
[0030] In one embodiment, a data processing device is provided that searches for a solution expressed by a combination of values of multiple state variables based on an Ising-type evaluation function including terms corresponding to multiple state variables and multiple constraints. The data processing device includes a storage unit and a processing unit. The storage unit stores a first weighting coefficient set indicating weights between each of the multiple state variables and a second weighting coefficient set indicating weights between each of the multiple state variables and each of the multiple constraints. The storage unit stores a portion of the first weighting coefficient set stored in the storage device, a portion of the second weighting coefficient set stored in the storage device, a first local field indicating a change in the value of the evaluation function when the value of each of the multiple state variables changes, and a second local field used to identify a constraint violation amount for each of the multiple constraints. The processing unit performs a first process of reading, from the storage device, a first weighting coefficient corresponding to the first state variable belonging to the trial target portion out of the first weighting coefficient group and a second weighting coefficient corresponding to the first state variable belonging to the trial target portion out of the second weighting coefficient group, and storing them in the storage unit, for a trial target portion that is a portion including a plurality of first state variables that are targets for a trial of whether or not to update the value of the plurality of state variables, and determining whether or not to allow a change in the value of the first state variable belonging to the trial target portion based on the first local field; and when it is determined that the change in the value of the first state variable is allowed, performing a first process of updating the first local field based on the first weighting coefficient stored in the storage unit. a search process is executed in which a first local field corresponding to each of the first state variables is updated based on the second weighting coefficient stored in the storage unit, and a second process is executed in which the first local field corresponding to each of the first state variables is further updated based on the second local field before the update and the second local field after the update; and when the search process for the current trial portion is completed, the first local field corresponding to the second state variable not belonging to the current trial portion is updated based on the second local field at the start of the search process for the current trial portion and the second local field after the search process for the current trial portion, and the process of changing the trial portion to the next portion of the multiple state variables is repeated.
[0031] In one aspect, a data processing method executed by a data processing device is provided. In another aspect, a program executed by a computer is provided. [Effects of the Invention]
[0032] On the one hand, it allows for efficient solving of large-scale problems. [Brief explanation of the drawings]
[0033] [Figure 1] FIG. 1 is a diagram illustrating a data processing device according to a first embodiment. [Figure 2] FIG. 10 illustrates an example of hardware of a data processing device according to a second embodiment. [Figure 3] FIG. 2 is a diagram illustrating an example of functions of a data processing device. [Figure 4] FIG. 10 is a diagram illustrating an example of a weighting coefficient group. [Figure 5] FIG. 10 is a diagram illustrating an example of a search process. [Figure 6] FIG. 10 is a diagram illustrating a continuation of the example of the search process. [Figure 7] 10 is a flowchart illustrating an example of an overall process. [Figure 8] 10 is a flowchart illustrating an example of a search process within a window. [Figure 9] 10 is a flowchart illustrating an example of a local field update process outside the search region. [Figure 10] FIG. 10 illustrates an example of functions of a data processing device according to a third embodiment; [Figure 11] FIG. 10 is a diagram illustrating an example of a weighting coefficient group. [Figure 12] FIG. 10 is a diagram illustrating an example of a search process. [Figure 13] FIG. 10 is a diagram illustrating a continuation of the example of the search process. [Figure 14] 10 is a flowchart illustrating an example of a local field update process outside the search region. [Figure 15] 10 is a flowchart illustrating an example of a division method determination process. [Figure 16] FIG. 10 is a diagram illustrating an example of changes in the value of a penalty function due to changes in the value of a state variable. [Figure 17] FIG. 10 is a diagram illustrating an example procedure for updating a local field. DETAILED DESCRIPTION OF THE INVENTION
[0034] The present embodiment will be described below with reference to the drawings. [First embodiment] A first embodiment will be described.
[0035] FIG. 1 is a diagram illustrating a data processing device according to a first embodiment. The data processing device 10 of the first embodiment includes a storage unit 11 and a processing unit 12. The data processing device 10 is connected to a storage device 20 via a predetermined interface.
[0036] The storage device 20 is a volatile storage device that is an electronic circuit such as a dynamic random access memory (DRAM). However, the storage device 20 may also be a non-volatile storage device that is an electronic circuit such as a hard disk drive (HDD) or flash memory. The storage device 20 may be external to the data processing device 10 or may be included in the data processing device 10.
[0037] The storage device 20 stores a plurality of (hereinafter referred to as N) state variables (x i ) values, N x i a first weighting coefficient group 30 indicating the weight between each of the N x i and a second weighting coefficient group 40 indicating the weight between each of the constraints and each of a plurality of (hereinafter, M) constraints. ij} For example, W ij =W ji W ii The second weighting coefficient group 40, where W = 0, is ki} and {W ik} For example, W ki =W ik However, W ki ≠W ik i is a set of N x iwhere k is an identification number representing any of the M constraint terms (or constraint conditions). Note that the storage unit 11 does not need to store the second weighting coefficients (second weighting coefficients with a value of 0) related to state variables that do not affect any of the M constraint conditions. The first weighting coefficient group 30 and the second weighting coefficient group 40 together constitute the entire weighting coefficients. Note that in the weighting coefficient groups 30 and 40 of FIG. 1, the direction from left to right in the figure is the direction from smaller to larger indexes, and the direction from top to bottom is the direction from smaller to larger indexes.
[0038] The storage unit 11 is an electronic circuit such as an SRAM (Static Random Access Memory) register. The storage unit 11 stores H(x), a part of the first weighting coefficient set 30 and a part of the second weighting coefficient set 40 read from the storage device 20, and (W ki ) to remember.
[0039] Furthermore, the storage unit 11 stores N x i The change in H(x) when each value of i ) representing the first local field (h i ) and the second local field (h k ) is stored. The state variables can also be called decision variables. Since each second local field corresponds to each constraint term, the second weighting coefficient can also be called a weighting coefficient between the state variables and the second local field.
[0040] H(x) is expressed by equation (8), which is a re-expression of equation (3).
[0041]
number
[0042] The total energy of the M constraint terms corresponding to the M constraint conditions corresponds to the third term on the right side of equation (8). k is a proportional coefficient for the constraint term with identification number = k, and represents the weight of the constraint term.k can be different for each constraint. G k (h k ) may be, for example, a Max function as expressed by equation (4), or may be another function such as a step function. As will be described later, G k (h k ) can express various constraints. k (h k ) is called the penalty function.
[0043] The second local field (h k ) can be expressed by the following equation (9).
[0044]
number
[0045] In equation (9), b k is a coefficient related to the constraint condition of identification number = k. When the constraint condition of identification number = k is an inequality constraint, one item on the right side of equation (8) is R in the above equation (4). k corresponds to +b k is the -U in equation (4). k Therefore, as mentioned above, h k is R k and U k It can be said that it is a variable used to identify the difference between the two, that is, the amount of constraint violation.
[0046] Here, as an example, G k (h k ) is expressed by equation (10).
[0047]
number
[0048] Hereafter, G in Equation (10) k (h k )=g(h k ) A state variable (x i) when the value of ΔH changes i can be expressed by the following equation (11) using a penalty function.
[0049]
number
[0050] g(h k +W ki Δx i )-g(h k ) is a state variable (x i ) changes, the change in the value of the penalty function (which can also be called the change in the constraint term).
[0051] In addition, the first local field (h i ) is expressed by the following equation (12).
[0052]
number
[0053] In equation (12), Δg(h k ,W ki Δx i ) is expressed by the following equation (13), and the current x i , h k , W ki It is a quantity that can be calculated from
[0054]
number
[0055] h as in equation (12) i By using ΔH i can be expressed by equation (14).
[0056]
number
[0057] The storage unit 11 further stores a bias coefficient (b i ), proportionality coefficient (λ k ), the coefficients related to the constraints (b k ) may be stored in the storage unit 11. 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. In addition, when the processing unit 12 executes part or all of the processing of the data processing method described below using software, the storage unit 11 or the storage device 20 may store a program for executing the processing.
[0058] 1 can be realized by a processor, which is hardware such as a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), a DSP (Digital Signal Processor), etc. Alternatively, the processing unit 12 may be realized by a processor such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).
[0059] For example, the processing unit 12 searches for a state where H(x) is minimal. The state where H(x) is the smallest of the minimal values becomes the optimal solution. Note that by changing the sign of H(x), the processing unit 12 can also search for a state where the value of H(x) is maximal. In this case, the state where H(x) is maximal becomes the optimal solution. The processing unit 12 repeatedly performs the following process.
[0060] The processing unit 12 identifies a trial target portion, which is a portion including a plurality of first state variables among the plurality of state variables, the plurality of first state variables being the targets of a trial to determine whether or not to update their values. A set of indices belonging to the trial target portion, or a set of first state variables corresponding to the set of indices, is called a window. The number P (P is an integer of 2 or more) of first state variables belonging to one trial target portion is determined in advance. The indices of the first state variables belonging to one trial target portion may be consecutive or discontinuous. The processing unit 12 divides all the state variables into a plurality of trial target portions in advance using a predetermined method.
[0061] The processing unit 12 reads out from the storage device 20 a first weighting coefficient corresponding to a first state variable belonging to the trial target portion of the first weighting coefficient group 30 and a second weighting coefficient corresponding to a first state variable belonging to the trial target portion of the second weighting coefficient group 40, and stores them in the storage unit 11.
[0062] In the following description, it is assumed that the processing unit 12 performs a solution search process by reading only a portion (e.g., portion 31) of the first weighting coefficient group 30 corresponding to a pair of first state variables belonging to the trial target portion as the first weighting coefficient to be read into the storage unit 11. That is, it is assumed that the processing unit 12 does not store a portion (e.g., portion 32) corresponding to a pair of the first state variable and a state variable not belonging to the trial target portion in the storage unit 11 during the search process. However, as will be described later, the processing unit 12 may store portion 32 in the storage unit 11 in addition to portion 31 during the search process.
[0063] Then, based on the information stored in the storage unit 11, the processing unit 12 repeatedly performs the search process including the following first process and second process. In the first processing, the processing unit 12 determines whether or not to allow a change in the value of a first state variable belonging to the trial target portion, based on the first local field.
[0064] More specifically, the processing unit 12 selects state variables of candidates whose values are to be changed (hereinafter referred to as flip candidates) from among a plurality of first state variables belonging to the trial target portion. The processing unit 12 selects the state variables of the flip candidates, for example, randomly or in a predetermined order.
[0065] Then, the processing unit 12 calculates ΔH when the value of the selected state variable changes. For example, x i If is selected, ΔH i As above, h i Based on ΔH i =-h i Δx i It can be calculated by the formula:
[0066] Next, the processing unit 12 determines whether or not to allow a change in the value of the state variable of the flip candidate, i.e., whether or not a flip is possible, based on the result of comparing ΔH with a predetermined value. Hereinafter, this determination process will be referred to as a flip determination process.
[0067] The predetermined value is, for example, a noise value obtained based on a random number and a temperature parameter value. For example, 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), can be used as the predetermined value. In this case, the processing unit 12 calculates -ΔH i If ≧log(rand)×T, it is determined that the change in the value of the state variable of the flip candidate is permitted (flip permitted). If it is determined that flip is permitted, the processing unit 12 performs the following second process.
[0068] Here, the processing unit 12 selects the state variables of the value change candidates one by one in order or randomly and determines whether or not the state variables can be flipped. On the other hand, the processing unit 12 uses, for example, -ΔH iBased on the determination formula ≧log(rand)×T, it is also possible to determine in parallel whether a plurality of first state variables belonging to the trial portion can be flipped. A method of determining in parallel whether a plurality of state variables can be flipped is called a rejection-free method. In the rejection-free method, the processing unit 12 searches for a solution by updating the value of any of the state variables determined to be flippable based on the results of the parallel determinations.
[0069] In the second processing, when it is determined that the change in the value of the first state variable is allowed, the processing unit 12 updates the first local field based on the first weighting coefficient stored in the storage unit 11. The processing unit 12 also updates the second local field based on the second weighting coefficient stored in the storage unit 11. Furthermore, the processing unit 12 further updates the first local field corresponding to each of the plurality of first state variables based on the second local field before the update and the second local field after the update.
[0070] More specifically, the processing unit 12 may, for example, j If it is determined that the flip is possible, the original h i , Δh i =W ij Δx j By adding h i In addition, when i=j, W ii =0, and h i h does not change, so no update is required. i The update to is expressed by equation (15).
[0071]
number
[0072] In addition, the processing unit 12 j If it is determined that flipping is possible, then x j The second weighting factor (W kj ) is non-zero k For Δh k =W kj Δ xj By adding hk Update the. h k The update to is expressed by equation (16).
[0073]
number
[0074] The processing unit 12 performs h with a parallelism of N+M according to the equations (15) and (16). i , h k The processing unit 12 then calculates the values of h before and after the update. k h for each of the plurality of first state variables based on i is further updated according to the following equation (17).
[0075]
number
[0076] In equation (17), h k (old) is the h before update k In addition, when i=j, h i Since does not change, no update is required. If the number of first state variables belonging to the trial target part is t, the processing unit 12 performs parallel updates of O(t) serially M times for k for all i (≠j) corresponding to the t first state variables in updating equation (17).
[0077] For details on the first and second processes described above, refer to Japanese Patent Application Laid-Open No. 2023-149428. The processing unit 12 repeatedly performs a search process including the first process and the second process. In the above description, an example has been shown in which flip candidate state variables are selected one by one from among a plurality of first state variables belonging to the trial target portion, and the first process is performed, but the first process may be performed in parallel for two or more first state variables. In this case, when there are a plurality of first state variables whose values are allowed to change, the processing unit 12 selects a first state variable whose value is to be changed randomly or according to a predetermined rule.
[0078] The processing unit 12 calculates the second local field h at the start of the search process for the current trial target portion, which is stored in the storage unit 11. k_before The processing unit 12 obtains h k_before and the second local field h after the search process for the current trial target area. k_after Based on this, the first local field corresponding to the second state variable that does not belong to the current trial target portion is updated. The update of the first local field is expressed by Equation (18).
[0079]
number
[0080] The process expressed by equation (18) can be said to be an update process for the first local field of the state variables outside the window. In updating the first local field corresponding to the second state variable, the processing unit 12 performs the update according to Equation (15) in addition to the update according to Equation (18). That is, the processing unit 12 also updates the first local field of the second state variable based on the change in the value of the first state variable belonging to the current trial target portion and the first weighting coefficient corresponding to the pair of the first state variable and the second state variable.
[0081] Then, the processing unit 12 changes the trial target portion to the next portion among the plurality of state variables. The processing unit 12 repeats the above series of processes. When the processing unit 12 changes the trial target portion to the next portion, it reads out the first weighting coefficient and the second weighting coefficient corresponding to the trial target portion from the storage device 20 and stores them in the storage unit 11. At this time, the first weighting coefficient and the second weighting coefficient corresponding to the previous trial target portion are deleted from the storage unit 11.
[0082] In this way, the processing unit 12 can switch between a plurality of trial target portions and perform search processing for each trial target portion. In this case, the weighting coefficients stored in the storage unit 11 are, for example, as follows:
[0083] First, when searching for a trial portion (1) of all state variables, the processing unit 12 reads, from the storage device 20, a portion 31 of first weighting coefficients in the first weighting coefficient group 30 that corresponds to a pair of first state variables belonging to the trial portion (1) into the storage unit 11. The processing unit 12 also reads, from the second weighting coefficient group 40, portions 41 and 42 of second weighting coefficients between each of the plurality of first state variables belonging to the trial portion (1) and each of the plurality of constraint conditions into the storage unit 11 (S1). In S1, a search process is repeatedly performed using the weighting coefficients included in the portions 31, 41, and 42 stored in the storage unit 11.
[0084] After completing the search process of S1, the processing unit 12 updates the first local field of the second state variable expressed by equation (15) based on the change in the value of each first state variable belonging to the trial target portion (1) and the first weighting coefficient of the portion 32. The first weighting coefficient of the portion 32 is a first weighting coefficient corresponding to a pair of a first state variable belonging to the trial target portion (1) and a second state variable not belonging to the trial target portion (1). In addition, the processing unit 12 updates the first local field of the second state variable expressed by equation (15) based on the change in the value of each first state variable belonging to the trial target portion (1) and the first weighting coefficient of the current h k_before and h k_after Based on this, the first local field of the second state variable, expressed by equation (18), is updated. The processing unit 12 can sequentially read out the first weighting coefficients of the portion 32 and the weighting coefficients used in equation (18) from the storage device 20 to the storage unit 11. Then, the processing unit 12 proceeds to the search process for the next trial target portion (2).
[0085] When searching the trial portion (2), the processing unit 12 reads, from the storage device 20, into the storage unit 11, a portion 33 of first weighting coefficients in the first weighting coefficient group 30 that corresponds to a pair of first state variables belonging to the trial portion (2). The processing unit 12 also reads, from the second weighting coefficient group 40, portions 43 and 44 of second weighting coefficients between each of the plurality of first state variables belonging to the trial portion (2) and each of the plurality of constraint conditions (S2). In S2, the search process is repeatedly performed using the weighting coefficients included in the portions 33, 43, and 44 stored in the storage unit 11.
[0086] After completing the search process of S2, the processing unit 12 updates the first local field of the second state variable expressed by equation (15) based on the change in the value of each first state variable belonging to the trial target portion (2) and the first weighting coefficient of the portion 34. The first weighting coefficient of the portion 34 is a first weighting coefficient corresponding to a pair of a first state variable belonging to the trial target portion (2) and a second state variable not belonging to the trial target portion (2). At the same time, the processing unit 12 updates the first local field of the second state variable expressed by equation (15) based on the change in the value of each first state variable belonging to the trial target portion (2) and the first weighting coefficient of the current h k_before and h k_after Based on this, the first local field of the second state variable is updated as expressed by equation (18). The processing unit 12 can sequentially read out the first weighting coefficients of the portion 34 and the weighting coefficients used in equation (18) from the storage device 20 to the storage unit 11. Then, the processing unit 12 proceeds to the search process for the next trial portion.
[0087] In this way, the processing unit 12 can reduce the size of the weighting coefficients stored in the storage unit 11 in the search process. As described above, the processing unit 12 may read the first weighting coefficients of the parts 31 and 32 from the storage device 20 into the storage unit 11 during the search process of S1, and store them in the storage unit 11. Then, the processing unit 12 calculates the first local fields h of all the N state variables by the first weighting coefficients of the parts 31 and 32 according to the equation (15) in response to a change in the value of any of the first state variables during the search process. i In this case, when the search process of S1 is completed, the processing unit 12 only needs to update the first local field of the second state variable expressed by equation (18), and does not update the first local field of the second state variable expressed by equation (15).
[0088] Similarly, during the search process of S2, the processing unit 12 may read the first weighting coefficients of the parts 33 and 34 from the storage device 20 into the storage unit 11 and store them in the storage unit 11. Then, in response to a change in the value of any of the first state variables during the search process, the processing unit 12 calculates the first local fields h iIn this case, when the search process of S2 is completed, the processing unit 12 only needs to update the first local field of the second state variable expressed by equation (18), and does not update the first local field of the second state variable expressed by equation (15).
[0089] Even in this way, processing unit 12 can reduce the size of the weighting coefficients stored in storage unit 11. However, the size of the weighting coefficients stored in storage unit 11 can be further reduced by not storing the first weighting coefficient of portion 32 or the first weighting coefficient of portion 34 in storage unit 11 during the search process.
[0090] When performing simulated annealing, for example, the processing unit 12 decreases the value of the temperature parameter (T) according to a predetermined temperature parameter change schedule each time the flip determination process for the state variables 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 (or when a predetermined T is reached) as the calculation result of the discrete optimization problem. Note that the processing unit 12 may store the minimum energy and the state up to that point in time 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 the calculation result.
[0091] When the processing unit 12 performs the replica exchange method, the processing unit 12 repeats the above process for each of a plurality of replicas, each of which has a different value of T set. The processing unit 12 then performs replica exchange every time the flip determination process is repeated a predetermined number of times. For example, the processing unit 12 selects two replicas having adjacent values of T and exchanges the values of each state variable 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 T. Note that the value of T may be exchanged between the two replicas instead of the values of each state variable. Alternatively, the processing unit 12 retains the minimum energy and its state up to that point. The processing unit 12 then outputs, as a calculation result, the state corresponding to the minimum energy among all replicas, among the minimum energies stored after the above flip determination process has been repeated a predetermined number of times for each replica.
[0092] According to the data processing device 10 described above, it is possible to reduce the size of the weight coefficients stored in the storage unit 11 during the search process. Furthermore, by narrowing the search process target to the trial target portion of all state variables, it is possible to reduce the computational resources for the search process in the processing unit 12. This allows the data processing device 10 to efficiently solve a large-scale discrete optimization problem including constraints using relatively small computational resources.
[0093] [Second embodiment] Next, a second embodiment will be described. FIG. 2 illustrates an example of hardware of a data processing device according to the second embodiment.
[0094] The data processing device 100 includes a processor 101, a DRAM 102, an HDD 103, a GPU 104, an input interface 105, a media reader 106, and a communication interface 107. These units included in the data processing device 100 are connected to a bus inside the data processing device 100.
[0095] The processor 101 is an arithmetic device that executes program instructions. The processor 101 is, for example, a CPU. The processor 101 loads at least a portion of the program and data stored in the HDD 103 into the DRAM 102 and executes the program. The processor 101 may include multiple processor cores. The data processing device 100 may also have multiple processors. A set of multiple processors may be called a "multiprocessor" or simply a "processor." The processor may also be called a "processor circuitry."
[0096] The DRAM 102 is a volatile semiconductor memory that temporarily stores programs executed by the processor 101 and data used in calculations by the processor 101. Note that the data processing device 100 may include a type of memory other than a DRAM, or may include multiple memories.
[0097] The HDD 103 is a nonvolatile storage device that stores software programs such as an OS (Operating System), middleware, and application software, as well as data. The data processing device 100 may also include other types of storage devices, such as flash memory or an SSD (Solid State Drive), or may include multiple nonvolatile storage devices.
[0098] The GPU 104 outputs an image to a display 51 connected to the data processing device 100 in accordance with an instruction from the processor 101. The display 51 may be any type of display, such as a CRT (Cathode Ray Tube) display, a liquid crystal display (LCD: Liquid Crystal Display), a plasma display, or an organic EL (OEL: Organic Electro-Luminescence) display.
[0099] The input interface 105 acquires an input signal from an input device 52 connected to the data processing device 100 and outputs the signal to the processor 101. The input device 52 may be a pointing device such as a mouse, a touch panel, a touch pad, or a trackball, a keyboard, a remote controller, or a button switch. In addition, multiple types of input devices may be connected to the data processing device 100.
[0100] The medium reader 106 is a reading device that reads programs and data recorded on the recording medium 53. 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 53. Magnetic disks include flexible disks (FD: Flexible Disks) and HDDs. Optical disks include compact discs (CDs) and digital versatile discs (DVDs).
[0101] The medium reader 106 copies, for example, programs and data read from the recording medium 53 to another recording medium such as the DRAM 102 or the HDD 103. The read programs are executed by, for example, the processor 101. The recording medium 53 may be a portable recording medium, which may be used to distribute programs and data. The recording medium 53 and the HDD 103 may also be referred to as computer-readable recording media.
[0102] The communication interface 107 is connected to the network 54 and communicates with other information processing devices via the network 54. The communication interface 107 may be a wired communication interface connected to a wired communication device such as a switch or a router, or may be a wireless communication interface connected to a wireless communication device such as a base station or an access point.
[0103] The accelerator card 108 is a hardware accelerator that searches for a solution to a discrete optimization problem. The discrete optimization problem is expressed by equation (3), which shows the total energy of the Ising model. The number of constraints, i.e., constraint terms, can be one or more.
[0104] The accelerator card 108 includes a processor 110 and a DRAM 120. The processor 110 is, for example, a GPU, a DSP, an ASIC, or an FPGA. The processor 110 includes an internal memory 111. The internal memory 111 is, for example, an SRAM. The DRAM 120 stores data used in processing by the processor 110.
[0105] The processor 110 is an example of the processing unit 12 of the first embodiment. The internal memory 111 is an example of the storage unit 11 of the first embodiment. The DRAM 120 is an example of the storage unit 20 of the first embodiment. However, the functions of the data processing device 100 described below may be realized by the processor 101 executing a program stored in the DRAM 102. In that case, the processor 101 is an example of the processing unit 12, and the cache memory included in the processor 101 is an example of the storage unit 11. It can also be said that the accelerator card 108 or the processor 110 is an example of the data processing device 10 of the first embodiment.
[0106] It should be noted that a device used to solve a problem formulated with an Ising-type evaluation function, such as the data processing device 100, the accelerator card 108, or the processor 110, is called an Ising machine.
[0107] FIG. 3 is a diagram illustrating an example of functions of the data processing device. The data processing device 100 includes a data storage unit 121, a search unit 130, an overall control unit 140, a memory control unit 150, a data transfer control unit 160, and a state change detection unit 170. The data storage unit 121 uses a storage area of the DRAM 102.
[0108] When the processor 110 is realized by an ASIC, an FPGA, or the like, the search unit 130, the overall control unit 140, the memory control unit 150, the data transfer control unit 160, and the state change detection unit 170 are realized by electronic circuits such as an ASIC, an FPGA, etc. These functions may be realized by the processor 101, such as a CPU or a GPU, executing a program stored in the DRAM 102, for example.
[0109] The data storage unit 121 stores all of the weighting coefficients used to solve the discrete optimization problem. The data storage unit 121 stores the local field (h i ) and the local field (h k ) is stored. Note that the state variable x i are called decision variables. The data processing device 100 may also manage constraints by associating them with binary variables. In this case, the binary variables corresponding to the constraints are called auxiliary variables. Therefore, the local fields corresponding to the constraints can also be called local fields corresponding to auxiliary variables. Information held in the data storage unit 121 is read out in accordance with processing by the processor 110 and stored in the internal memory 111.
[0110] The search unit 130 searches for a solution to a discrete optimization problem using the SA method or the replica exchange method. The search unit 130 searches for a solution by switching the window to be searched. The search unit 130 has a weighting coefficient storage unit 131, a state holding unit 132, a local field holding unit 133, a local field updating unit 134, a ΔH calculation unit 135, a selection unit 136, an H calculation unit 137, and a local field change detection unit 138. The weighting coefficient storage unit 131, the state holding unit 132, and the local field holding unit 133 use storage areas of the internal memory 111.
[0111] The weighting coefficient storage unit 131 stores some of the weighting coefficients stored in the data storage unit 121. During the search process, the weighting coefficient storage unit 131 stores, among all the weighting coefficients, weighting coefficients corresponding to pairs of decision variables belonging to the current window and weighting coefficients corresponding to pairs of decision variables and constraint conditions belonging to the current window.
[0112] The state storage unit 132 stores state information indicating the values of a plurality of decision variables. The state information stored in the state storage unit 132 is updated to the latest state in response to changes in the values of the decision variables.
[0113] The local field storage unit 133 stores the local fields corresponding to the decision variables belonging to the current window and the local fields corresponding to the constraint conditions, which are read from the data storage unit 121. The local field information in the data storage unit 121 is updated to the latest state when switching windows, etc.
[0114] The local field update unit 134 updates the local field of each decision variable belonging to the current window using equation (15) based on the weighting coefficients stored in the weighting coefficient storage unit 131. The local field update unit 134 also updates the local field corresponding to the constraint conditions using equation (16). The local field update unit 134 can update these local fields in parallel. Furthermore, the local field update unit 134 updates the local field of each decision variable based on equation (17).
[0115] Furthermore, when the search process for the current window is completed, the local field update unit 134 updates the local fields of the decision variables outside the window based on equations (15) and (18). When the search starts, the ΔH calculation unit 135 calculates in parallel the energy change ΔH corresponding to the change in the value of each decision variable based on the equation (14), and outputs the result to the selection unit 136 .
[0116] The selection unit 136 selects a decision variable whose value is allowed to change based on the energy change ΔH of each decision variable acquired from the ΔH calculation unit 135 and equation (7). If there are multiple decision variables whose values are allowed to change, the selection unit 136 randomly selects one from among them using, for example, a random number. The decision variable selected by the selection unit 136 is called a flip bit.
[0117] The selection unit 136 outputs information about the flip bit to the weighting coefficient storage unit 131, and causes the weighting coefficient storage unit 131 to output the weighting coefficient corresponding to the flip bit to the local field update unit 134. As a result, the local field update unit 134 updates the local field of each decision variable. The selection unit 136 also updates the state based on the information about the flip bit. For example, the selection unit 136 updates the state held in the state holding unit 132 to the latest state. The selection unit 136 also outputs ΔH corresponding to the flip bit to the H calculation unit 137.
[0118] The H calculation unit 137 calculates the total energy H corresponding to the latest state based on ΔH supplied from the selection unit 136, and stores the calculated total energy H in the internal memory 111. The H calculation unit 137 calculates H corresponding to the latest state by accumulating ΔH from the initial value of the total energy H.
[0119] When the search process for the current window is completed, the local field change detection unit 138 detects the local field h k_before , and the local field h at the end of the search process k_after The local field change detection unit 138 obtains h k_before ,h k_after Based on this, the local field h that has changed in this search process k and notifies the local field update unit 134. As a result, the local field update unit 134 detects the changed local field h k , the local field h of the decision variables outside the window i Updates can be made.
[0120] The overall control unit 140 controls the search unit 130, the memory control unit 150, and the data transfer control unit 160. For example, the overall control unit 140 controls the data transfer between the data storage unit 121 and the search unit 130 that accompanies window switching, and the solution search by the search unit 130.
[0121] The memory control unit 150 controls the transfer of weighting coefficients from the data storage unit 121 to the weighting coefficient storage unit 131 under the control of the overall control unit 140. The memory control unit 150 also controls the transfer of local fields between the data storage unit 121 and the local field holding unit 133 under the control of the overall control unit 140.
[0122] The data transfer control unit 160 instructs the memory control unit 150 on the weighting coefficients to be read out in accordance with the processing of the search unit 130, and causes the weighting coefficients to be read out to be read out into the weighting coefficient storage unit 131.
[0123] The state change detection unit 170 compares the state at the start of the search for the current window (start state) with the state at the end of the search for the window (end state), and identifies whether or not the value of each decision variable has changed due to the current search. The state change detection unit 170 notifies the local field update unit 134 of bit change information indicating whether or not the value of each decision variable has changed. Based on the bit change information supplied from the state change detection unit 170, the local field update unit 134 calculates the local field h of the decision variables outside the window according to equation (15). i Updates can be made.
[0124] FIG. 4 is a diagram illustrating an example of a weighting coefficient group. The weighting coefficient set 211 is {W ij}. ij} is a set of weighting coefficients between each of the N decision variables. ki The weighting coefficient set 213 is expressed as {W ik The weighting coefficient groups 212 and 213 are a set of weighting coefficients between each of the N decision variables and each of the M auxiliary variables (M constraints). ki =W ik But it's okay, Wki ≠W ik {W ij}, {W ki}, {W ik} is stored in its entirety in data storage unit 121.
[0125] In the weighting coefficient groups 211, 212, and 213 in FIG. 4, the direction from left to right in the drawing is the direction from smaller to larger indexes, and the direction from top to bottom is the direction from smaller to larger indexes.
[0126] In Figure 4, {W ij}, {W ki}, {W ik Each of the {W} has a numbered portion. The number corresponds to the window identification number. In the example of Figure 4, the total number of N decision variables is divided into four windows. ij}, {W ki}, {W ik} are parts held in the weighting coefficient storage unit 131 during the search process of the search unit 130.
[0127] 4, the data processing device 100 divides the N decision variables into a plurality of subregions (windows) and scans the entire region by sliding them. All auxiliary variables connected to the decision variables of the subregions are processed during the search of the subregions.
[0128] That is, for the search process, the weighting coefficients corresponding to each of the [decision variable, auxiliary variable] ranges are sequentially read from the data storage unit 121 to the weighting coefficient storage unit 131 as follows: [1,1], [2,2], [3,3], [4,4], [1,1], ...
[0129] Furthermore, hi_1, hi_2, hi_3, and hi_4 indicate the local fields of the decision variables belonging to windows 1 to 4, respectively. hk indicates the local fields corresponding to each of the M auxiliary variables. hi_1, hi_2, hi_3, hi_4, and hk are held in the local field holding unit 133.
[0130] xi_1, xi_2, xi_3, and xi_4 respectively indicate sets (states) of values of decision variables corresponding to windows 1 to 4. xi_1, xi_2, xi_3, and xi_4 are held in the state holding unit 132.
[0131] As described above, during the search process, the state storage unit 132 and the local field storage unit 133 may each store only hi_w and xi_w corresponding to the current window w among xi_1 to xi_4 and hi_1 to hi_4.
[0132] Next, an example of search processing for each window by the data processing device 100 will be described. FIG. 5 is a diagram illustrating an example of the search process. The search unit 130 performs a search process on the window 1 (step ST10).
[0133] In step ST10, the search unit 130 stores, in the weight coefficient storage unit 131, weight coefficients from the weight coefficient set 211 that correspond to pairs of decision variables in window 1. The search unit 130 also stores, in the weight coefficient storage unit 131, weight coefficients from the weight coefficient sets 212 and 213 that correspond to pairs of decision variables and auxiliary variables in window 1. The state storage unit 132 stores the latest xi_1. The local field storage unit 133 stores hi_1 and hk.
[0134] The state storage unit 132 also stores xi_1_old, which is the state xi_1 at the start of the search in step ST10. Furthermore, the local field storage unit 133 also stores hk_old, which is the local field hk at the start of the search in step ST10.
[0135] In step ST10, the search unit 130 repeatedly performs a search process based on the weighting coefficients and local fields for each of the decision variables and auxiliary variables in window 1. The search unit 130 updates xi_1 and hi_1 based on the weighting coefficients corresponding to the pair of decision variables in window 1 in response to changes in the values of the decision variables in window 1. The update of hi_1 is performed based on equation (15). At the same time, the search unit 130 updates hk based on the weighting coefficients corresponding to the pair of decision variables and auxiliary variables in window 1. The update of hk is performed based on equation (16). Furthermore, the search unit 130 updates hi_1 based on hk before and after the update. The update of hi_1 based on hk before and after the update is performed based on equation (17).
[0136] When the search unit 130 finishes the search process for the window 1, it performs a post-search update process for the window 1 (step ST11). In step ST11, the search unit 130 sequentially reads weighting factors from the weighting factor set 211 that correspond to pairs of decision variables in window 1 and decision variables outside window 1 into the weighting factor storage unit 131. In addition, the search unit 130 sequentially reads weighting factors (W ik ) are sequentially read into the weighting coefficient storage unit 131.
[0137] Then, the search unit 130 calculates the local field h of the decision variables outside the window 1 based on the weighting coefficients in the weighting coefficient set 211 corresponding to pairs of decision variables in the window 1 and decision variables outside the window 1, and information on the decision variables whose values have changed in the search of the window 1. i This update is performed based on equation (15). The decision variables whose values have changed are extracted by comparing xi_1_old with xi_1. At the same time, the search unit 130 extracts hk_old={h k_before}, current hk={h k_after}, and update the local field hi of the decision variables outside window 1 using equation (18).
[0138] Then, the search unit 130 moves on to the search process for window 2. FIG. 6 shows the continuation of the search processing example. The search unit 130 performs a search process on the window 2 (step ST12).
[0139] In step ST12, the search unit 130 stores, in the weight coefficient storage unit 131, weight coefficients from the weight coefficient set 211 that correspond to pairs of decision variables in window 2. The search unit 130 also stores, in the weight coefficient storage unit 131, weight coefficients from the weight coefficient sets 212 and 213 that correspond to pairs of decision variables and auxiliary variables in window 2. The state storage unit 132 stores the latest xi_2. The local field storage unit 133 stores hi_2 and hk.
[0140] The state storage unit 132 also stores xi_2_old, which is the state xi_2 at the start of the search in step ST12. Furthermore, the local field storage unit 133 also stores hk_old, which is the local field hk at the start of the search in step ST12.
[0141] In step ST12, the search unit 130 repeatedly performs a search process based on the weighting coefficients and local fields for each of the decision variables and auxiliary variables in window 2. The search unit 130 updates xi_2 and hi_2 based on the weighting coefficients corresponding to the pair of decision variables in window 2 in response to changes in the values of the decision variables in window 2. The update of hi_2 is performed based on equation (15). At the same time, the search unit 130 updates hk based on the weighting coefficients corresponding to the pair of decision variables and auxiliary variables in window 2. The update of hk is performed based on equation (16). Furthermore, the search unit 130 updates hi_2 based on hk before and after the update. The update of hi_2 based on hk before and after the update is performed based on equation (17).
[0142] When the search section 130 finishes the search process for window 2, it performs a post-search update process for window 2 (step ST13). In step ST13, the search unit 130 sequentially loads weighting coefficients from the weighting coefficient set 211 that correspond to pairs of decision variables in window 2 and decision variables outside window 2 into the weighting coefficient storage unit 131. The search unit 130 also sequentially loads weighting coefficients from the weighting coefficient sets 212 and 213 that correspond to pairs of decision variables and auxiliary variables outside window 2 into the weighting coefficient storage unit 131.
[0143] Then, the search unit 130 updates the local field hi of the decision variables outside window 2 based on the weighting coefficients in the weighting coefficient set 211 that correspond to pairs of decision variables in window 2 and decision variables outside window 2, and on information on decision variables whose values have changed in the search for window 2. This update is performed based on equation (15). Decision variables whose values have changed are extracted by comparing xi_2_old with xi_2. At the same time, the search unit 130 updates the local field hi of the decision variables outside window 2 based on the weighting coefficients in the weighting coefficient set 211 that correspond to pairs of decision variables in window 2 and decision variables outside window 2. k_before}, current hk={h k_after}, and update the local field hi of the decision variables outside window 2 using equation (18).
[0144] Then, searching unit 130 moves on to the search process for window 3. Thereafter, similar search processes and post-search update processes are performed for windows 3 and 4, and searches are performed sequentially for each window, for example, windows 1, 2, 3, 4, 1, 2, . . .
[0145] Next, an example of a processing procedure performed by the data processing device 100 will be described. The following describes an example in which the data processing device 100 uses a replica exchange method. The search unit 130 functions as multiple replicas. A different temperature value is set for each of the multiple replicas.
[0146] FIG. 7 is a flowchart showing an example of the overall processing. (S10) The overall control unit 140 initializes the search unit 130. (S11) The overall control unit 140 determines the next search area window.
[0147] (S12) The data transfer control unit 160 transfers data for the search space window using the memory control unit 150. The data transferred from the DRAM 102 to the internal memory 111 includes weighting coefficients corresponding to pairs of decision variables belonging to the next search space window and weighting coefficients corresponding to pairs of the decision variables and auxiliary variables (constraints). The data transferred from the DRAM 102 to the internal memory 111 also includes state information for each replica, indicating the values of each state variable after the previous search of the next search space window has ended. The data also includes local fields of the decision variables and auxiliary variables belonging to the search space window.
[0148] (S13) The search unit 130 performs a search process within the window for each replica. The details of the search process within the window will be described later. (S14) The search unit 130 performs a local field update process outside the search region. The local field update process outside the search region will be described in detail later.
[0149] (S15) The search unit 130 determines whether the local field update process outside the search region is completed. If the local field update process outside the search region is completed, the process proceeds to step S16. If the local field update process outside the search region is not completed, the process proceeds to step S14.
[0150] (S16) The search unit 130 determines whether the current time is the timing to perform replica exchange, i.e., whether it is replica exchange timing. If the current time is the replica exchange timing, the process proceeds to step S17. If the current time is not the replica exchange timing, the process proceeds to step S18.
[0151] (S17) The search unit 130 performs a replica exchange process, whereby temperature values or states are exchanged between replicas based on a predetermined probability, for example. (S18) The overall control unit 140 determines whether the search has ended. If the search has ended, the search process ends. If the search has not ended, the process proceeds to step S11. For example, the overall control unit 140 determines that the search has ended when it executes the series of procedures from steps S11 to S17 a predetermined number of times or for a predetermined time. For example, when the search ends, the overall control unit 140 outputs the solution with the smallest energy among the solutions obtained so far.
[0152] FIG. 8 is a flowchart showing an example of the in-window search process. The search process within the window corresponds to step S13. (S20) The overall control unit 140 sets search parameters in the search unit 130. The search parameters include the temperature value used in the search, the total number of iterations T, and the like.
[0153] (S21) The search unit 130 repeatedly executes steps S22 to S30 for the number of iterations i, where the initial value of i is 0. i is incremented by 1 until it reaches the total number of iterations T.
[0154] (S22) The search unit 130 executes steps S23 to S29 for each replica. The number of replicas is R. The search unit 130 can execute steps S23 to S29 for each replica in a pipeline, for example.
[0155] (S23) The search unit 130 calculates ΔH for each decision variable based on equation 14. The calculation of ΔH is performed in parallel for each decision variable. (S24) The search unit 130 performs bit acceptance determination based on equation (7).
[0156] (S25) The search unit 130 selects a flip bit based on the result of the bit acceptance judgment. If there are multiple decision variables that are allowed to change based on the result of the bit acceptance judgment, the search unit 130 selects one of them using, for example, a random number.
[0157] (S26) The search unit 130 determines whether a bit flip is permitted. If a bit flip is permitted, that is, if a flip bit was selected in step S25, the process proceeds to step S27. If a bit flip is not permitted, the process proceeds to step S30. For example, if there is no decision variable that is permitted to change in the bit acceptance determination in step S24, a bit flip is not permitted. Note that if a flip bit is selected, the search unit 130 reflects the change in the value of the decision variable to be flipped in the state, and updates the total energy H based on ΔH corresponding to the decision variable.
[0158] (S27) The search unit 130 performs local field update (1). That is, the search unit 130 updates the local fields of the decision variables in the current window using the weighting coefficients for the current window search stored in the weighting coefficient storage unit 131 according to equation (15), and updates the local fields of the auxiliary variables according to equation (16).
[0159] (S28) The search unit 130 calculates the contribution of the auxiliary variables to the decision variables. (S29) The search unit 130 performs local field update (2), that is, the search unit 130 updates the local field of the decision variables using equation (17) based on the contribution calculated in step S28.
[0160] (S30) When the search unit 130 completes the processing of the current iteration for all replicas, the process proceeds to step S31. (S31) When the search unit 130 completes the processing of all iterations, the process proceeds to step S32.
[0161] (S32) The search unit 130 determines whether the in-window search process for the current window has ended. If the in-window search process for the current window has ended, the in-window search process ends. If the in-window search process for the current window has not ended, the process proceeds to step S20. For example, the search unit 130 determines that the in-window search process has ended when it has executed steps S20 to S31 a predetermined number of times or for a predetermined period of time.
[0162] In selecting the flip bits in steps S23 to S25, the bits may be selected one by one, in order, or randomly, and the bits to be flipped may be selected based on equation (7), or a rejection-free method may be used. When the rejection-free method is used, as described above, the search unit 130 performs flip determination based on equation (7) for multiple bits in parallel, selects one of the bits determined to be flippable, and flips that bit.
[0163] FIG. 9 is a flowchart showing an example of a local field update process outside the search region. The local field update process outside the search region corresponds to step S14. (S40) The search unit 130 executes steps S41 to S48 for each replica. The number of replicas is R. Note that the search unit 130 can execute steps S41 to S48 for each replica in a pipeline.
[0164] (S41) The state change detection unit 170 acquires the start state and end state of the search process of step S13. The state change detection unit 170 compares the start state with the end state to detect bit change information and notifies the search unit 130.
[0165] (S42) The search unit 130 determines whether the local field update process for all bit changes in the read region has been completed. If the update process has been completed, the process proceeds to step S45. If the update process has not been completed, the process proceeds to step S43.
[0166] (S43) The search unit 130 reads out from the data storage unit 121 the weighting coefficient of the weighting coefficient set 211 that corresponds to the bit change indicated by the bit change information and stores it in the weighting coefficient storage unit 131.
[0167] (S44) The search unit 130 updates the local fields of the decision variables outside the window in accordance with the state change based on equation 15. Then, the process proceeds to step S42. (S45) The search unit 130 detects a change in the local field of the auxiliary variable by comparing the local field of the auxiliary variable at the start of the search process in step S13 with the local field of the auxiliary variable at the end. The detection of the change in the local field of the auxiliary variable is performed by the local field change detection unit 138 of the search unit 130.
[0168] (S46) The search unit 130 determines whether the update process of the local field for the auxiliary variable local field change has been completed. If the update process has been completed, the process proceeds to step S49. If the update process has not been completed, the process proceeds to step S47.
[0169] (S47) The search unit 130 reads out the weighting coefficients corresponding to the local field changes of the auxiliary variables from the data storage unit 121 to the weighting coefficient storage unit 131, out of the weighting coefficient set 213. (S48) The search unit 130 updates the local fields of the decision variables outside the window in accordance with the auxiliary variable local field transformation based on equation 18. Then, the process proceeds to step S46.
[0170] (S49) When the search unit 130 completes updating the local fields of the decision variables outside the window for all replicas, it ends the local field update process outside the search region. As described above, according to the data processing device 100 of the second embodiment, the size of the weighting coefficients stored in the weighting coefficient storage unit 131 during the search process can be reduced. This allows the data processing device 100 to save memory usage in the internal memory 111. Furthermore, by narrowing the targets of the search process to a portion of all the decision variables, it is possible to reduce the computational resources for the search process of the processor 110. This allows the data processing device 100 to efficiently solve a large-scale discrete optimization problem including constraints using relatively small computational resources.
[0171] [Third embodiment] Next, a third embodiment will be described. Differences from the second embodiment will be mainly described, and common features will be omitted.
[0172] In the third embodiment, the data processing device 100 provides a function of dividing and processing M auxiliary variables, that is, M constraints. FIG. 10 illustrates an example of functions of the data processing device according to the third embodiment.
[0173] The data processing device 100 of the third embodiment differs in that it includes an H correction amount calculation unit 139 in addition to the functions illustrated in FIG. Furthermore, in the third embodiment, during the in-window search process, the local field update of equation (16) is performed only for some of the constraints. Therefore, after the in-window search process, the local field update unit 134 updates the local fields corresponding to the other constraints using equation (16) in accordance with changes in the values of the in-window decision variables. Thereafter, the local field update unit 134 updates the local fields of the decision variables outside the window using equation (18) based on the local fields before and after the update corresponding to all the constraints. Furthermore, the local field update unit 134 also corrects the local fields of the in-window decision variables using equation (18) based on the local fields before and after the update corresponding to the other constraints.
[0174] Furthermore, during the in-window search process, the local field of equation (16) is updated only for some constraint conditions, and therefore an error occurs in the total energy H calculated by the H calculation unit 137 during the in-window search process. Therefore, the H correction amount calculation unit 139 corrects the error in H when the in-window search process is completed. Specifically, this is as follows.
[0175] When windowing auxiliary variables, the original h used in the energy difference formula in Eq. (14) i is expressed by equation (19).
[0176]
number
[0177] where A i is a set of indexes of auxiliary variables for which weighting coefficients are to be read into the weighting coefficient storage unit 131 in a certain window search process.o is a set of indexes of auxiliary variables that are not the subject of weighting coefficients being read into the weighting coefficient storage unit 131 in the in-window search process.
[0178] However, in the search process within the window in the third embodiment, the penalty contribution of the auxiliary variables outside the window is not reflected in the local field of the decision variables, so h' used in the energy difference formula of Eq. (14) i is expressed by equation (20).
[0179]
number
[0180] That is, h' used to calculate the energy difference i The third term on the right side of equation (19) becomes an error, and this error is reflected in the total energy H calculated by the H calculation unit 137 during the search process within the window. Therefore, the H correction amount calculation unit 139 corrects the error included in H.
[0181] The H correction amount calculation unit 139 calculates the local field h' used for calculating the energy difference in the window search process. i and the original local field h i The difference Δh i Calculate Δh i is expressed by equation (21).
[0182]
number
[0183] The calculation for this correction only needs to be performed for the local field of the decision variables that have changed during the search process within the window. For example, if the decision variables that have changed are 10 bits, the H correction amount calculation unit 139 calculates Δh for each 10 bits for the local field of the corresponding 10 bits in the order of the changed decision variables. i and accumulate the changes as shown in equation (22).
[0184]
number
[0185] The H correction amount calculation unit 139 calculates the corresponding Δh in the order in which they were used in the energy difference calculation. i Using this, delta_ΔH expressed by equation (23) i Then, correct H.
[0186]
number
[0187] That is, the H correction amount calculation unit 139 calculates Δh for each bit flip process. i The H correction amount calculation unit 139 calculates delta_ΔH for i used in the energy difference calculation for each bit flip process and accumulates the deviation from the auxiliary variable outside the window. i Correct H using
[0188] FIG. 11 is a diagram illustrating an example of a weighting coefficient group. In Figure 11, {W ij}, {W ki}, {W ik}, each of which is represented by a numbered portion. The numbers correspond to the identification numbers of the windows. In the example of FIG. 11, all N decision variables are divided into four windows. M auxiliary variables corresponding to each window of decision variables are divided into three windows. For example, auxiliary variable windows 1a, 1b, and 1c correspond to decision variable window 1. Auxiliary variable windows 2a, 2b, and 2c correspond to decision variable window 2. Auxiliary variable windows 3a, 3b, and 3c correspond to decision variable window 3. Auxiliary variable windows 4a, 4b, and 4c correspond to decision variable window 4.
[0189] The same auxiliary variables belong to windows 1a, 2a, 3a, and 4a. The same auxiliary variables belong to windows 1b, 2b, 3b, and 4b. The same auxiliary variables belong to windows 1c, 2c, 3c, and 4c.
[0190] In the third embodiment, the data processing device 100 divides each of the decision variables and auxiliary variables into a plurality of partial regions (windows) and slides them to scan the entire region. After sliding all auxiliary variable windows relative to one decision variable window, the data processing device 100 slides the decision variable window.
[0191] That is, for the search process, for each region of weighting coefficients corresponding to each of the [decision variables, auxiliary variables], the following are sequentially read from the data storage unit 121 to the weighting coefficient storage unit 131: [1,1a], [1,1b], [1,1c], [2,2a], [2,2b], [2,2c], [3,3a], [3,3b], [3,3c], [4,4a], [4,4b], [4,4c], [1,1a], ...
[0192] Furthermore, hi_1, hi_2, hi_3, and hi_4 indicate the local fields of the decision variables belonging to windows 1 to 4, respectively. hka, hkb, and hkc indicate the local fields of the auxiliary variables belonging to windows 1a, 1b, and 1c, respectively. hi_1, hi_2, hi_3, hi_4, hka, hkb, and hkc are held in the local field holding unit 133. States xi_1, xi_2, xi_3, and xi_4 are held in the state holding unit 132.
[0193] During the search process, the state storage unit 132 and the local field storage unit 133 may each store only the values corresponding to the current window among xi_1 to xi_4, hi_1 to hi_4, and hka to hkc.
[0194] FIG. 12 illustrates an example of the search process. The search unit 130 performs a search process on the window 1a (step ST20). The search process on the window 1a can also be said to be a search process on the windows 1, 1a.
[0195] In step ST20, the search unit 130 stores, in the weighting coefficient storage unit 131, weighting coefficients from the weighting coefficient set 211 that correspond to pairs of decision variables in window 1. The search unit 130 also stores, in the weighting coefficient storage unit 131, weighting coefficients from the weighting coefficient sets 212 and 213 that correspond to pairs of decision variables in window 1 and auxiliary variables in window 1a. The state storage unit 132 stores the latest xi_1. The local field storage unit 133 stores hi_1 and hka.
[0196] The state holding unit 132 also holds xi_1_old, which is the state xi_1 at the start of the search in step ST20. Furthermore, the local field holding unit 133 also holds hka_old, which is the local field hka at the start of the search in step ST20.
[0197] In step ST20, the search unit 130 repeatedly performs a search process based on the weighting coefficients and local fields for the decision variables in window 1 and the auxiliary variables in window 1a. The search unit 130 updates xi_1 and hi_1 based on the weighting coefficients corresponding to the pair of decision variables in window 1 in response to changes in the values of the decision variables in window 1. The update of hi_1 is performed based on equation (15). At the same time, the search unit 130 updates hka based on the weighting coefficients corresponding to the pair of decision variables and auxiliary variables in window 1. The update of hka is performed based on equation (16). Furthermore, the search unit 130 updates hi_1 based on hka before and after the update. The update of hi_1 based on hka before and after the update is performed based on equation (17).
[0198] When the search unit 130 finishes the search process for the window 1a, it performs a post-search update process for the window 1a (step ST21). In step ST21, the search unit 130 sequentially loads weighting factors from the weighting factor group 211 that correspond to pairs of decision variables in window 1 and decision variables outside window 1 into the weighting factor storage unit 131. The search unit 130 also sequentially loads weighting factors from the weighting factor group 212 that correspond to pairs of decision variables in window 1 and auxiliary variables outside window 1a into the weighting factor storage unit 131. The search unit 130 also sequentially loads weighting factors from the weighting factor group 213 that correspond to pairs of decision variables and auxiliary variables outside window 1a into the weighting factor storage unit 131.
[0199] Then, the search unit 130 updates the local field hi of the decision variables outside window 1 based on the weighting coefficients in the weighting coefficient set 211 corresponding to pairs of decision variables in window 1 and decision variables outside window 1, and on information about decision variables whose values have changed in the search for window 1. This update is performed based on equation (15). Decision variables whose values have changed are extracted by comparing xi_1_old with xi_1.
[0200] Furthermore, the search unit 130 updates the local fields hkb and hkc of the auxiliary variables outside window 1a based on the weighting coefficients in weighting coefficient set 212 corresponding to pairs of decision variables in window 1 and auxiliary variables outside window 1a, and on information about decision variables whose values have changed in the search for window 1. This update is performed based on equation (16). At this time, the search unit 130 holds the pre-update hkb and hkc as hkb_old and hkc_old, respectively.
[0201] Then, the search unit 130 searches hka_old, hkb_old, and hkc_old for {h k_before} and set the current hka, hkb, hkc to {h k_after}, and update the local field hi of the decision variables outside window 1 using equation (18).
[0202] Furthermore, the search unit 130 searches hkb_old and hkc_old for {h k_before} and set the current hkb, hkc to {h k_after}, and the local field hi_1 of the decision variables in window 1 is corrected using equation (18).
[0203] The search unit 130 also corrects the total energy H using equation (23). Then, the search unit 130 moves on to the search process for the window 1b. FIG. 13 illustrates a continuation of the example of the search process.
[0204] The search unit 130 performs a search process on the window 1b (step ST22). The search process on the window 1b can also be said to be a search process on the windows 1 and 1b.
[0205] In step ST22, the search unit 130 stores, in the weighting coefficient storage unit 131, weighting coefficients from the weighting coefficient set 211 that correspond to pairs of decision variables in window 1. The search unit 130 also stores, in the weighting coefficient storage unit 131, weighting coefficients from the weighting coefficient sets 212 and 213 that correspond to pairs of decision variables in window 1 and auxiliary variables in window 1b. The state storage unit 132 stores the latest xi_1. The local field storage unit 133 stores hi_1 and hkb.
[0206] The state storage unit 132 also stores xi_1_old, which is the state xi_1 at the start of the search in step ST22. Furthermore, the local field storage unit 133 also stores hkb_old, which is the local field hkb at the start of the search in step ST20.
[0207] In step ST22, the search unit 130 repeatedly performs a search process based on the weighting coefficients and local fields for the decision variables in window 1 and the auxiliary variables in window 1b. The search unit 130 updates xi_1 and hi_1 based on the weighting coefficients corresponding to the pair of decision variables in window 1 in response to changes in the values of the decision variables in window 1. The update of hi_1 is performed based on equation (15). At the same time, the search unit 130 updates hkb based on the weighting coefficients corresponding to the pair of decision variables and auxiliary variables in window 1. The update of hkb is performed based on equation (16). Furthermore, the search unit 130 updates hi_1 based on hkb before and after the update. The update of hi_1 based on hkb before and after the update is performed based on equation (17).
[0208] When the search unit 130 finishes the search process for the window 1b, it performs a post-search update process for the window 1b (step ST23). In step ST23, the search unit 130 sequentially loads weighting factors from the weighting factor group 211 that correspond to pairs of decision variables in window 1 and decision variables outside window 1 into the weighting factor storage unit 131. The search unit 130 also sequentially loads weighting factors from the weighting factor group 212 that correspond to pairs of decision variables in window 1 and auxiliary variables outside window 1b into the weighting factor storage unit 131. The search unit 130 also sequentially loads weighting factors from the weighting factor group 213 that correspond to pairs of decision variables and auxiliary variables outside window 1b into the weighting factor storage unit 131.
[0209] Then, the search unit 130 updates the local field hi of the decision variables outside window 1 based on the weighting coefficients in the weighting coefficient set 211 corresponding to pairs of decision variables in window 1 and decision variables outside window 1, and on information about decision variables whose values have changed in the search for window 1. This update is performed based on equation (15). Decision variables whose values have changed are extracted by comparing xi_1_old with xi_1.
[0210] Furthermore, the search unit 130 updates the local fields hka and hkc of the auxiliary variables outside window 1b based on the weighting coefficients in the weighting coefficient set 212 that correspond to pairs of decision variables in window 1 and auxiliary variables outside window 1b, and on information about decision variables whose values have changed in the search for window 1. This update is performed based on equation (16). At this time, the search unit 130 holds the pre-update hka and hkc as hka_old and hkc_old, respectively.
[0211] Then, the search unit 130 searches hka_old, hkb_old, and hkc_old for {h k_before} and set the current hka, hkb, hkc to {h k_after}, and update the local field hi of the decision variables outside window 1 using equation (18).
[0212] Furthermore, the search unit 130 searches hka_old and hkc_old for {h k_before}, and each of the current hka and hkc is {h k_after}, and the local field hi_1 of the decision variables in window 1 is corrected using equation (18).
[0213] The search unit 130 also corrects the total energy H using equation (23). Next, a description will be given of an example of a processing procedure by the data processing device 100. The overall processing and the in-window search processing by the data processing device 100 according to the third embodiment are similar to the procedures exemplified in Figs. 7 and 8, respectively, and therefore a description thereof will be omitted.
[0214] However, in the data transfer in step S12 of Fig. 7, the weighting coefficient and local field corresponding to one of the windows 1a, 1b, ... to be searched for, with respect to the auxiliary variables, are read from the data storage unit 121 to the search unit 130. Also, in the calculation of ΔH in step S23 of Fig. 8, h in equation (20) i ' is used.
[0215] FIG. 14 is a flowchart showing an example of a local field update process outside the search region. The outside-search-area local field update process of the third embodiment includes steps S44a and S48a in addition to the procedure of the second embodiment shown in Fig. 9. Therefore, steps S44a and S48a will be mainly described below, and descriptions of the other steps will be omitted. Step S44a is executed after step S43. Step S48a is executed after step S48.
[0216] (S44a) The search unit 130 updates the local fields of the decision variables outside the window in response to the state change based on equation (15). The search unit 130 also updates the local fields of the auxiliary variables outside the window in response to the state change based on equation (16). Then, the process proceeds to step S42.
[0217] Here, in step S48, in addition to updating the local fields of the decision variables outside the window using equation (18), the search unit 130 also corrects the local fields of the decision variables inside the window using equation (18) based on the local fields before and after the update of the auxiliary variables outside the window in step S44a.
[0218] (S48a) The search unit 130 corrects the total energy H according to the change in the local field of the auxiliary variable based on equation (23). The correction in step S48a is performed by the H correction amount calculation unit 139 of the search unit 130. Then, the process proceeds to step S46.
[0219] In step S48a, if the minimum energy solution is updated in the process of sequentially accumulating the correction amount for each change in the decision variable to H, the search unit 130 holds the minimum energy solution. Then, when the entire process is completed, the search unit 130 outputs the finally obtained minimum energy solution.
[0220] As described above, according to the data processing device 100 of the third embodiment, the size of the weighting coefficients stored in the weighting coefficient storage unit 131 during the search process can be reduced. This allows the data processing device 100 to save memory usage in the internal memory 111. Furthermore, by narrowing down the targets of the search process to a portion of all the decision variables, it is possible to reduce the computational resources for the search process of the processor 110. This allows the data processing device 100 to efficiently solve a large-scale discrete optimization problem including constraints using relatively small computational resources.
[0221] Furthermore, the data processing device 100 of the third embodiment also divides the weighting coefficients corresponding to auxiliary variables (constraint conditions) and reads them into the weighting coefficient storage unit 131. Therefore, the third embodiment can reduce the memory usage of the internal memory 111 more than the second embodiment. Also, the calculation resources for the search process of the processor 110 can be made smaller. Furthermore, the third embodiment reduces the amount of calculation in the search process compared to the second embodiment. Therefore, the data processing device 100 can speed up the search process.
[0222] In the second and third embodiments, G k (h k )=g(h k ), the inequality constraints have been mainly described, but the data processing device 100 can also handle high-order costs in addition to inequality constraints. k For example, an AND-type constraint expressed as an AND product of positive and negative literals can be considered, as in equation (24).
[0223]
number
[0224] where S k is the set of variable indices included in constraint k. G in equation (24) k The function form of W in Eq. (25) kj and b in Eq. (26) kUsing this, the equation becomes the same as the inequality constraint described above, as shown in equation (27).
[0225]
number
[0226]
number
[0227]
number
[0228] As another example, the data processing device 100 can also handle XOR type constraints. k is the W in equation (28). kj and h in Eq. (29) k Using this, it can be expressed as in equation (30).
[0229]
number
[0230]
number
[0231]
number
[0232] In addition to the functions of the second and third embodiments, the data processing device 100 may control whether to divide only the decision variables, only the auxiliary variables, or both the decision variables and the auxiliary variables depending on the problem. Next, an example of a procedure for determining the division method by the data processing device 100 will be described.
[0233] FIG. 15 is a flowchart showing an example of the division method determination process. (S50) The overall control unit 140 acquires the number N of decision variables and the number M of auxiliary variables used in the formulation of the problem to be solved. Further, the overall control unit 140 acquires a threshold value L. The threshold value L is the total number of decision variables and auxiliary variables for which calculations can be efficiently performed under the constraints of the calculation resource amounts of the internal memory 111 and the processor 110.
[0234] (S51) The overall control unit 140 determines whether N + M < L. If N + M < L, the process proceeds to step S52. Otherwise, the process proceeds to step S53. (S52) The overall control unit 140 determines not to perform window division for any of the decision variables and auxiliary variables. Then, the division method determination process ends.
[0235] (S53) The overall control unit 140 determines whether N > L / 2 and M ≤ L / 2. If N > L / 2 and M ≤ L / 2, the process proceeds to step S54. Otherwise, the process proceeds to step S55.
[0236] (S54) The overall control unit 140 determines to perform window division only for the decision variables. In this case, the search unit 130 can perform the search process by the method of the second embodiment. Then, the division method determination process ends.
[0237] (S55) The overall control unit 140 determines whether N ≤ L / 2 and M > L / 2. If N ≤ L / 2 and M > L / 2, the process proceeds to step S56. Otherwise, the process proceeds to step S57.
[0238] (S56) The overall control unit 140 determines to perform window division only for the auxiliary variables. Then, the division method determination process ends. (S57) The overall control unit 140 determines to perform window division for both the decision variables and the auxiliary variables. In this case, the search unit 130 can perform the search process by the method of the third embodiment. Then, the division method determination process ends.
[0239] In this way, the data processing apparatus 100 can select an appropriate division method depending on the problem. As described above, according to the data processing device 100, an extended Ising machine that introduces auxiliary variables capable of handling inequalities and high-order costs can handle large-scale problems with limited computational resources and memory. Furthermore, the data processing device 100 can enable efficient processing according to the problem with limited computational resources by selecting a division into only decision variables, only auxiliary variables, or both, depending on the number of decision variables and auxiliary variables used in formulating the problem.
[0240] For example, in the search process within a window, the data processing device 100 performs calculations only on bits within the window, thereby reducing the amount of calculations required for the search. Furthermore, the data processing device 100 can perform local field calculations outside the window on the final state after performing a search within the window, regardless of the process of bit changes in between, and can omit calculations when the same bit changes multiple times.
[0241] Furthermore, the data processing device 100 performs energy correction for the window division of auxiliary variables on a bit-by-bit basis for bit changes (changes in the value of decision variables) during the search within the window. In this case, the data processing device 100 only needs to process the local fields of the decision variables related to the energy correction that correspond to the bits that changed during the search within the window, and can omit calculations for the other local fields, thereby enabling efficient energy correction.
[0242] Here, in the following, h expressed by equation (12) i Further information regarding: FIG. 16 is a diagram showing an example of changes in the value of the penalty function due to changes in the value of the state variable. The vertical axis is g(h k ) and the horizontal axis represents the magnitude of h k represents.
[0243] In Figure 16, an example of a penalty function is g(h k )=max(0,h k ) is used. x i With the change in the value of h k h k +W ki Δx i When the value of the penalty function changes to g(h k +W ki Δx i )-g(h k )
[0244] The aforementioned data processing device 10, 100 calculates the local field of decision variables (h i ) as x i The sum of the first and second terms on the right side of equation (8) (E(x) in equation (1)) changes with the change in the value of h, but also reflects the change in the value of the third term. i is expressed by equation (12).
[0245] Next, we will provide additional information about the local field update based on equations (15), (16), and (17). FIG. 17 is a diagram illustrating an example of a procedure for updating a local field. x1, x i , x N is a state variable (decision variable), and h p , h k , h r is the local field corresponding to the constraints p, k, r.
[0246] The state variables x1 and x i , x N Of which, x i If the value of x changes, i The local field (first local field) corresponding to the decision variables with non-zero weight coefficients between x and i The local field (second local field) corresponding to the auxiliary variable with a non-zero weight coefficient between x and x is updated. For example, i The weighting factor (W 1i ) is non-zero, the h1 corresponding to x1 is Δh1=W 1i Δx iis updated by adding x i The weighting factor (W iN ) is nonzero x N h corresponding to N But Δh N =W iN Δx i It is updated by adding x i The weighting factor (W pi ) is non-zero p But Δh p =W pi Δx i is updated by adding x i The weighting factor (W ri ) is non-zero r But Δh r =W ri Δx i is updated by adding
[0247] Next, the local fields corresponding to the decision variables whose weighting coefficients with the local fields of the auxiliary variables whose values have changed are non-zero are updated based on equation (17). For example, h r The weighting factor (W ri , W rN ) is nonzero x i , x N h corresponding to i , h N is updated based on equation (17). p The weighting factor (W p1 , W pi , W pN ) are nonzero for x1, x i , x N h1, h corresponding to i , h N is updated based on equation (17).
[0248] The data processing device 100 described above executes the following processes, for example. The data processing device 100 searches for a solution expressed by a combination of values of multiple state variables based on an Ising-type evaluation function including terms corresponding to multiple state variables and multiple constraints. A storage device such as a DRAM 120 stores a first set of weighting coefficients indicating weights between each of the multiple state variables and a second set of weighting coefficients indicating weights between each of the multiple state variables and each of the multiple constraints. An internal memory 111 stores a portion of the first set of weighting coefficients stored in the storage device, a portion of the second set of weighting coefficients stored in the storage device, and a first local field representing a first amount of change in the value of the evaluation function when the value of each of the multiple state variables changes. The internal memory 111 also stores a second local field used to identify the amount of constraint violation for each of the multiple constraints.
[0249] For a trial portion, which is a portion including a plurality of first state variables among a plurality of state variables for which a trial is to be performed to determine whether or not to update their values, the processor 110 reads from the storage device a first weighting coefficient corresponding to the first state variables belonging to the trial portion in the first weighting coefficient group and a second weighting coefficient corresponding to the first state variables belonging to the trial portion in the second weighting coefficient group, and stores them in the internal memory 111.
[0250] The processor 110 executes a search process that repeats a first process and a second process. The first process is a process of determining, based on the first local field, whether or not to allow a change in the value of a first state variable belonging to a trial target portion. The second process is a process of updating the first local field based on a first weighting coefficient stored in the internal memory 111, updating the second local field based on a second weighting coefficient stored in the internal memory 111, and further updating the first local field corresponding to each of the multiple first state variables based on the second local field before the update and the second local field after the update, if it is determined that the change in the value of the first state variable is allowed.
[0251] When the processor 110 finishes the search process for the current trial portion, it updates the first local field corresponding to the second state variable that does not belong to the current trial portion based on the second local field at the start of the search process for the current trial portion and the second local field after the search process for the current trial portion, and then changes the trial portion to the next portion of the multiple state variables.
[0252] Processor 110 repeats the above process. This allows the data processing device 100 to reduce the size of the weight coefficients stored in the internal memory 111, thereby saving memory capacity, compared to when all weight coefficients are stored in the internal memory 111. Furthermore, the data processing device 100 can efficiently solve large-scale discrete optimization problems including constraints using relatively small computational resources. As mentioned above, the internal memory 111 is an example of a "storage unit." The processor 110 is an example of a "processing unit."
[0253] For example, the processor 110 may read all second weighting coefficients corresponding to the first state variables belonging to the trial portion from the storage device and store them in the internal memory 111. Then, in the search process, when the value of the first state variable is allowed to change, the processor 110 may update the second local fields corresponding to each of the multiple constraint conditions based on the second weighting coefficients stored in the internal memory 111.
[0254] This allows the data processing device 100 to appropriately update the second local fields corresponding to each of the plurality of constraint conditions. Furthermore, as exemplified in the third embodiment, the processor 110 may perform window division on both the decision variables and the auxiliary variables. That is, the processor 110 may read from the storage device some of the second weighting coefficients among all the second weighting coefficients corresponding to the multiple first state variables belonging to the trial target portion, and store the second weighting coefficients corresponding to some of the multiple constraint conditions in the internal memory 111, and perform the search process based on the second weighting coefficients stored in the internal memory 111. For example, in the search process, when a change in the value of the first state variable is allowed, the processor 110 calculates the value of the evaluation function based on the first local field and stores the calculated value in the internal memory. The processor 110 also updates the second local field corresponding to the some of the constraint conditions based on the second weighting coefficients stored in the internal memory 111, and further updates the first local fields corresponding to each of the multiple first state variables based on the second local fields before and after the update.
[0255] Then, upon completing the search process, processor 110 updates the second local fields corresponding to the constraint conditions other than the limited constraint conditions among the multiple constraint conditions based on changes in the values of the first state variables belonging to the current trial portion and second weighting coefficients, among all second weighting coefficients corresponding to the first state variables, that are different from the limited constraint conditions used in the search process. After the update, processor 101 updates the first local fields corresponding to the second state variables not belonging to the current trial portion based on the second local fields at the start of the search process for the current trial portion and the current second local fields, and corrects the first local fields corresponding to the first state variables belonging to the current trial portion. Furthermore, processor 110 corrects the value of the evaluation function stored in internal memory 111 based on changes in the values of the first state variables belonging to the current trial portion and the second local fields corresponding to the constraint conditions other than the limited constraint conditions.
[0256] Then, the processor 110 reads from the storage device the multiple first state variables belonging to the current trial target portion and the second weighting coefficients corresponding to the next part of the multiple constraint conditions, stores them in the internal memory 111, and proceeds to search processing based on the second weighting coefficients stored in the internal memory 111.
[0257] In this way, processor 110 repeats the above process for the current trial portion, and when search processing for all constraint conditions has been performed for the current trial portion, it changes the trial portion to the next portion of the multiple state variables.
[0258] This allows the data processing device 100 to efficiently solve a large-scale discrete optimization problem including constraints using relatively small computational resources. For example, the data processing device 100 can save memory capacity of the internal memory 111 and speed up search processing compared to the second embodiment.
[0259] In addition, the processor 110 may read from the storage device and store in the internal memory 111 the first weighting coefficients of the first part corresponding to pairs of first state variables among all the first weighting coefficients corresponding to each of the multiple first state variables belonging to the trial part.
[0260] In this case, in the search process, when a change in the value of the first state variable is allowed, processor 110 updates the first local field corresponding to each of the multiple first state variables belonging to the trial portion among the multiple state variables, based on the first weighting coefficient of the first portion stored in internal memory 111. In updating the first local field corresponding to the second state variable upon completing the search process for the current trial portion, processor 110 further updates the first local field corresponding to the second state variable based on the change in the value of the first state variable belonging to the current trial portion and the first weighting coefficient corresponding to the pair of the first state variable and the second state variable.
[0261] This allows the data processing device 100 to reduce the size of the weighting coefficients stored in the internal memory 111, thereby further saving memory capacity. Furthermore, the processor 110 may read all of the first weighting coefficients corresponding to each of the multiple first state variables belonging to the trial target portion from the storage device and store them in the internal memory 111. In this case, in the search process, when the value of the first state variable is allowed to change, the processor 110 updates the first local field corresponding to each of the multiple state variables based on the first weighting coefficients stored in the internal memory 111.
[0262] This allows the data processing device 100 to reduce the size of the weighting coefficients stored in the internal memory 111, compared to when all weighting coefficients are stored in the internal memory 111, thereby saving memory capacity.
[0263] 15, processor 110 may determine a method for dividing decision variables and auxiliary variables based on N, M, and L. That is, processor 110 may determine whether to divide at least one of the state variables and the constraints to perform search processing based on the number (N) of the state variables indicated by the evaluation function, the number (M) of the constraints, and an upper limit (L) allowed for the sum of the number of the state variables and the number of the constraints.
[0264] This allows the data processing device 100 to select an appropriate division method depending on the problem, and to perform search processing efficiently using limited computational resources. Here, whether or not to divide the weighting coefficient set 211, 212, 213 and store it in the internal memory 111 is determined depending on whether or not to perform window division of the decision variables and auxiliary variables. For example, if the decision variables are not divided into windows, the entire weighting coefficient set 211 will be stored in the internal memory 111. Furthermore, the weighting coefficient portion of the weighting coefficient set 211, 212, 213 to be stored in the internal memory 111 is determined depending on the window division method of the decision variables and auxiliary variables.
[0265] The information processing of the first embodiment can be realized by causing the processing unit 12 to execute a program. The information processing of the second embodiment can be realized by causing the processor 101 to execute a program. The program can be recorded on a computer-readable recording medium 53.
[0266] For example, the program can be distributed by distributing recording medium 53 on which the program is recorded. Alternatively, the program may be stored in another computer and distributed via a network. A computer may store (install) a program recorded on recording medium 53 or a program received from another computer in a storage device such as DRAM 102 or HDD 103, and then read and execute the program from the storage device. [Explanation of symbols]
[0267] 10 Data Processing Device 11 Storage section 12 Processing section 20 Storage device 30 First weighting coefficient group 40 Second weighting coefficient group 31,32,33,34,41,42,43,44 part
Claims
1. 1. A data processing device that searches for a solution expressed by a combination of values of a plurality of state variables based on an Ising-type evaluation function including terms corresponding to a plurality of state variables and a plurality of constraint conditions, a storage unit that stores a first weighting coefficient group indicating a weight between each of the plurality of state variables and a second weighting coefficient group indicating a weight between each of the plurality of state variables and each of the plurality of constraint conditions, the first weighting coefficient group being stored in the storage unit, the second weighting coefficient group being stored in the storage unit, a first local field that indicates an amount of change in a value of the evaluation function when a value of each of the plurality of state variables changes, and a second local field that is used to identify an amount of constraint violation for each of the plurality of constraint conditions; With respect to a trial portion that is a portion including a plurality of first state variables that are targets for a trial of whether or not to update the values of the plurality of state variables, a first weighting coefficient corresponding to the first state variables belonging to the trial portion in the first weighting coefficient group and a second weighting coefficient corresponding to the first state variables belonging to the trial portion in the second weighting coefficient group are read from the storage device and stored in the storage unit; executing a search process that repeats a first process of determining, based on the first local field, whether or not to allow a change in the value of the first state variable belonging to the trial target portion; and a second process of updating the first local field based on the first weighting coefficient stored in the storage unit when it is determined that the change in the value of the first state variable is allowed, updating the second local field based on the second weighting coefficient stored in the storage unit, and further updating the first local field corresponding to each of the plurality of first state variables based on the second local field before the update and the second local field after the update; when the search process for the current trial target portion is completed, updating the first local field corresponding to a second state variable that does not belong to the current trial target portion based on the second local field at the start of the search process for the current trial target portion and the second local field after the search process for the current trial target portion; changing the trial target portion to a next portion of the plurality of state variables; a processing unit that repeats the process; A data processing device having:
2. The processing unit reading out from the storage device all of the second weighting coefficients corresponding to the first state variables belonging to the trial target portion and storing them in the storage unit; in the search process, when a change in the value of the first state variable is allowed, the second local field corresponding to each of the plurality of constraint conditions is updated based on the second weighting coefficient stored in the storage unit.
2. The data processing device according to claim 1.
3. The processing unit reading out from the storage device some of the second weighting coefficients among all the second weighting coefficients corresponding to the plurality of first state variables belonging to the trial portion, the second weighting coefficients corresponding to some of the plurality of constraint conditions, and storing the second weighting coefficients in the storage unit; and performing the search process based on the second weighting coefficients stored in the storage unit; in the search process, when a change in the value of the first state variable is allowed, a value of the evaluation function is calculated based on the first local field and stored in the storage unit, the second local field corresponding to the part of the constraint conditions is updated based on the second weighting coefficient stored in the storage unit, and the first local field corresponding to each of the plurality of first state variables is further updated based on the second local field before and after the update, when the search process is completed, the second local field corresponding to constraint conditions other than the part of the constraint conditions among the plurality of constraint conditions is updated based on changes in the values of the first state variables belonging to the trial target portion and the second weighting coefficients of a part of all the second weighting coefficients corresponding to the first state variables that are different from the part of the second weighting coefficients used in the search process, and after the update, the first local field corresponding to the second state variables not belonging to the current trial target portion is updated based on the second local field at the start of the search process for the current trial target portion and the current second local field, and the first local field corresponding to the first state variables belonging to the trial target portion is corrected; correcting the value of the evaluation function stored in the storage unit based on a change in the value of the first state variable belonging to the trial target portion and the second local field corresponding to the constraint conditions other than the part of the constraint conditions; reading, from the storage device, the second weighting coefficients corresponding to the plurality of first state variables belonging to the trial target portion and the next part of the plurality of constraint conditions, and storing the second weighting coefficients in the storage unit, and proceeding to the search process based on the second weighting coefficients stored in the storage unit; Repeat the process, When the search process for all the constraint conditions has been performed on the current trial target portion, the trial target portion is changed to the next portion among the plurality of state variables.
2. The data processing device according to claim 1.
4. The processing unit reading out from the storage device the first weighting coefficients of a first portion corresponding to the pair of first state variables among all the first weighting coefficients corresponding to each of the plurality of first state variables belonging to the trial portion, and storing the first weighting coefficients in the storage unit; In the search process, when a change in the value of the first state variable is allowed, the first local field corresponding to each of the first state variables belonging to the trial target portion among the plurality of state variables is updated based on the first weight coefficient of the first portion stored in the storage unit; In updating the first local field corresponding to the second state variable when the search process for the current trial target portion is completed, the first local field corresponding to the second state variable is further updated based on a change in value of the first state variable belonging to the current trial target portion and the first weighting coefficient corresponding to a pair of the first state variable and the second state variable.
2. The data processing device according to claim 1.
5. The processing unit reading out from the storage device all of the first weighting coefficients corresponding to the plurality of first state variables belonging to the trial portion and storing them in the storage unit; in the search process, when a change in the value of the first state variable is allowed, the first local field corresponding to each of the plurality of state variables is updated based on the first weighting coefficient stored in the storage unit.
2. The data processing device according to claim 1.
6. the processing unit determines whether to perform the search process by dividing at least one of the plurality of state variables and the plurality of constraint conditions based on the number of the plurality of state variables indicated by the evaluation function, the number of the plurality of constraint conditions, and an upper limit value allowed for the sum of the number of the plurality of state variables and the number of the plurality of constraint conditions.
2. The data processing device according to claim 1.
7. 1. A data processing method for searching for a solution expressed by a combination of values of a plurality of state variables based on an Ising-type evaluation function including terms corresponding to a plurality of state variables and a plurality of constraint conditions, comprising: a data processing device, a storage device that stores a first weighting coefficient group indicating a weight between each of the plurality of state variables and a second weighting coefficient group indicating a weight between each of the plurality of state variables and each of the plurality of constraint conditions, and for a trial portion that is a portion including a plurality of first state variables that are targets for a trial of whether or not to update values of the plurality of state variables, reads out a first weighting coefficient from the first weighting coefficient group corresponding to the first state variables belonging to the trial portion and a second weighting coefficient from the second weighting coefficient group corresponding to the first state variables belonging to the trial portion, and stores these in a storage unit; a search process that repeats the following steps: a first process of determining whether or not to allow a change in the value of a first state variable belonging to the trial portion, based on a first local field that represents a change in the value of the evaluation function when a value of each of the plurality of state variables changes; and a second process of updating the first local field based on the first weighting coefficient stored in the storage unit when it is determined that the change in the value of the first state variable is allowed, updating a second local field that is used to identify a constraint violation amount for each of the plurality of constraint conditions, based on the second weighting coefficient stored in the storage unit, and further updating the first local field corresponding to each of the plurality of first state variables, based on the second local field before updating and the second local field after updating; when the search process for the current trial target portion is completed, updating the first local field corresponding to a second state variable that does not belong to the current trial target portion based on the second local field at the start of the search process for the current trial target portion and the second local field after the search process for the current trial target portion; changing the trial target portion to a next portion of the plurality of state variables; Repeat the process, Data processing methods.
8. 1. A program for searching for a solution expressed by a combination of values of a plurality of state variables based on an Ising-type evaluation function including terms corresponding to a plurality of state variables and a plurality of constraint conditions, a storage device that stores a first weighting coefficient group indicating a weight between each of the plurality of state variables and a second weighting coefficient group indicating a weight between each of the plurality of state variables and each of the plurality of constraint conditions, and for a trial portion that is a portion including a plurality of first state variables that are targets for a trial of whether or not to update values of the plurality of state variables, reads out a first weighting coefficient from the first weighting coefficient group corresponding to the first state variables belonging to the trial portion and a second weighting coefficient from the second weighting coefficient group corresponding to the first state variables belonging to the trial portion, and stores these in a storage unit; a search process that repeats the following steps: a first process of determining whether or not to allow a change in the value of a first state variable belonging to the trial portion, based on a first local field that represents a change in the value of the evaluation function when a value of each of the plurality of state variables changes; and a second process of updating the first local field based on the first weighting coefficient stored in the storage unit when it is determined that the change in the value of the first state variable is allowed, updating a second local field that is used to identify a constraint violation amount for each of the plurality of constraint conditions, based on the second weighting coefficient stored in the storage unit, and further updating the first local field corresponding to each of the plurality of first state variables, based on the second local field before updating and the second local field after updating; when the search process for the current trial target portion is completed, updating the first local field corresponding to a second state variable that does not belong to the current trial target portion based on the second local field at the start of the search process for the current trial target portion and the second local field after the search process for the current trial target portion; changing the trial target portion to a next portion of the plurality of state variables; Repeat the process, A program that causes a computer to perform a process.
Citation Information
Patent Citations
Optimization device and optimization method
JP2020204928A
Information processing system, information processing method, and program
JP2022125725A
Data processing apparatus, program, and data processing method
JP2023149428A
Information processing device, information processing method and program
JP2023149806A
Method and system for continuous optimization using a binary sampling device
US20150363358A1