Data processing device, data processing method, and program

The data processing device improves computational efficiency by using a rejection-free selection method and switching balancing functions to facilitate state transitions, addressing the inefficiencies in existing methods for combinatorial optimization.

JP2026095805APending Publication Date: 2026-06-12FUJITSU LTD +1

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
FUJITSU LTD
Filing Date
2024-12-02
Publication Date
2026-06-12

AI Technical Summary

Technical Problem

Existing methods for solving combinatorial optimization problems face decreased computational efficiency due to states getting trapped in regions without solutions or where state transitions are unlikely, leading to increased solution times.

Method used

A data processing device with a search unit and control unit that employs a rejection-free selection method and switches between different balancing functions based on the state of the optimization process to facilitate transitions and improve efficiency.

🎯Benefits of technology

The method enhances computational efficiency by promoting transitions to better states, reducing the likelihood of getting stuck in local minima, and speeding up the solution process for combinatorial optimization problems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026095805000001_ABST
    Figure 2026095805000001_ABST
Patent Text Reader

Abstract

To improve computational efficiency. [Solution] The search unit 11 executes a search process. In the search process, the first process and the second process are executed repeatedly. The first process is the process of selecting a change state variable from among multiple state variables based on the amount of change in the value of the evaluation function when updating the value of each of the multiple state variables included in the evaluation function, and the first function which is a function that indicates the selection criteria for the change state variable according to the amount of change. The second process is the process of updating the value of the selected change state variable. The control unit 12 switches the function used in the search process by the search unit 11 to a second function which is different from the first function.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field] 【0001】 The present invention relates to a data processing device, a data processing method, and a program. [Background technology] 【0002】 Information processing devices are sometimes used to solve combinatorial optimization problems. Combinatorial optimization problems are formulated using an evaluation function that includes multiple state variables. For example, combinations of state variable values ​​correspond to states in an Ising model. The information processing device searches for a combination of state variable values ​​included in the evaluation function that minimizes the value of the evaluation function. In this case, the combination of state variable values ​​that minimizes the value of the evaluation function corresponds to the ground state or optimal solution represented by the set of state variables. Search methods for obtaining approximate solutions to combinatorial optimization problems in a practical amount of time include methods based on the Markov Chain Monte Carlo (MCMC) method, combined with methods such as Simulated Annealing (SA) and replica exchange. 【0003】 For example, there is a proposed solution system that includes multiple optimization processing units that optimize combinatorial optimization problems to be solved using a nearest neighbor search algorithm. This proposed solution system determines a new search region based on the state of the optimization processing unit with the best search efficiency, and transmits the new search region to the other optimization processing units. 【0004】 Furthermore, there is a proposed information processing device that expresses combinatorial optimization problems using the energy function of the Ising model and performs ground state searching. This proposed information processing device represents the energy function as a weighted sum of multiple subfunctions, and allows the weights of the subfunctions to be changed externally. 【0005】 Furthermore, there is a proposal for an information processing device that performs the task of solving problems that adhere to a constraint called the 2-way 1-hot constraint. Furthermore, there is a proposed apparatus that calculates the lower limit of the inverse temperature of a combinatorial optimization problem based on the estimation of the maximum change in the energy function between consecutive time steps, and calculates the upper limit of the same inverse temperature based on the estimation of the minimum change in the energy function. [Prior art documents] [Patent Documents] 【0006】 [Patent Document 1] International Publication No. 2023 / 181131 [Patent Document 2] International Publication No. 2021 / 084629 [Patent Document 3] Japanese Patent Publication No. 2023-107619 [Patent Document 4] U.S. Patent Application Publication No. 2023 / 0401282 [Overview of the Initiative] [Problems that the invention aims to solve] 【0007】 In calculations based on evaluation functions, the selected states may fall into regions within the state space where state transitions are unlikely to occur or regions without solutions, which can lead to decreased computational efficiency. In one aspect, the present invention aims to improve computational efficiency. [Means for solving the problem] 【0008】 In one embodiment, a data processing device is provided. The data processing device comprises a search unit and a control unit. The search unit repeatedly performs a search process that consists of a first process of selecting a state variable to be changed from a plurality of state variables based on the amount of change in the value of the evaluation function when updating the value of each of the plurality of state variables included in the evaluation function and a first function which is a function that indicates the selection criteria for the state variable to be changed according to the amount of change, and a second process of updating the value of the selected state variable to be changed. The control unit switches the function used in the search process by the search unit to a second function different from the first function. 【0009】 In one embodiment, a data processing method to be performed by a data processing device is provided. In another embodiment, a program to be performed by a computer is provided. In one embodiment, a data processing device is provided. The data processing device has a search unit and a control unit. The search unit repeatedly performs a search process for multiple replicas, each of which represents the values ​​of multiple state variables. This search process involves selecting a state variable to be changed from multiple state variables based on the amount of change in the evaluation function's value when updating each of the multiple state variables included in the evaluation function, and a function indicating the selection criteria for the state variable to be changed according to the amount of change; and updating the value of the selected state variable to be changed. This search process is performed in parallel for multiple replicas, each of which represents the values ​​of multiple state variables. The control unit sets a first function as the function used for the search process in the first replica among the multiple replicas, and sets a second function, different from the first function, as the function used for the search process in the second replica among the multiple replicas. [Effects of the Invention] 【0010】 In one respect, it can improve computational efficiency. [Brief explanation of the drawing] 【0011】 [Figure 1] This is a diagram illustrating a data processing device according to the first embodiment. [Figure 2] The figure shows an example of a balancing function. [Figure 3] This figure shows examples of the state transition properties for each balancing function. [Figure 4] This figure shows an example of the hardware of a data processing device according to the second embodiment. [Figure 5] This figure shows an example of the functions of a data processing device. [Figure 6] This figure shows an example of the search processing unit circuit. [Figure 7] This figure shows the first example of controlling the balancing function. [Figure 8] This flowchart shows an example of a search process using the first control example. [Figure 9] This flowchart shows an example of selection and update operations in the first control example. [Figure 10] This figure shows a second example of controlling the balancing function. [Figure 11] This flowchart shows an example of a search process using the second control example. [Figure 12] This figure shows a third example of the balancing function's control. [Figure 13] This flowchart shows an example of a search process using the third control example. [Figure 14] This flowchart shows an example of selection and update operations in the third control example. [Figure 15] This figure shows a fourth example of the control of the balancing function. [Figure 16] This flowchart shows an example of a search process using the fourth control example. [Figure 17] This flowchart shows an example of selection and update operations in the fourth control example. [Figure 18] This figure shows a fifth example of the balancing function's control. [Figure 19] This flowchart shows an example of a search process using the fifth control example. [Figure 20] This flowchart shows the first example of a selection / update operation in the fifth control example. [Figure 21] This flowchart shows the second example of a selection / update operation in the fifth control example. [Modes for carrying out the invention] 【0012】 This embodiment will be described below with reference to the drawings. [First Embodiment] A first embodiment will be described. 【0013】 Figure 1 is a diagram illustrating a data processing device according to the first embodiment. The data processing device 10 is used for calculations such as solving combinatorial optimization problems and sampling, based on the MCMC method. For solving combinatorial optimization problems, methods such as the SA method and the replica exchange method are used. The replica exchange method is also called the exchange Monte Carlo method or the parallel tempering (PT) method. The data processing device 10 has a search unit 11, a control unit 12, and a storage unit 13. 【0014】 The search unit 11 and the control unit 12 are processors such as a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), or a DSP (Digital Signal Processor). At least one of the search unit 11 and the control unit 12 may include application-specific electronic circuits such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array). The processor executes programs stored in memory such as RAM (Random Access Memory) (which may also be a storage unit 13). A collection of multiple processors is sometimes called a "multiprocessor" or simply a "processor." The search unit 11 and the control unit 12 may be implemented by a single processor. Alternatively, the processor corresponding to the search unit 11 and the processor corresponding to the control unit 12 may be different. 【0015】 The memory unit 13 may be a semiconductor memory such as RAM, or a storage device such as an HDD (Hard Disk Drive) or flash memory. The memory unit 13 may also include registers. Combinatorial optimization problems can be formulated using a predetermined evaluation function and can be rephrased as a problem of minimizing the value of the evaluation function, i.e., the evaluation score. The evaluation function is sometimes called the objective function or energy function. The evaluation function includes multiple state variables. These state variables are, for example, binary variables that take values ​​of 0 or 1. These state variables may also be called bits or spins. 【0016】 The solution to a combinatorial optimization problem is represented by the values ​​of multiple state variables. The value of the evaluation function indicates the energy of the Ising model. The solution that minimizes the value of the evaluation function represents the ground state of the Ising model and corresponds to the optimal solution of the combinatorial optimization problem. 【0017】 An Ising-type evaluation function can be expressed, for example, by equation (1). 【0018】 【number】 The state vector x represents the state of the Ising model, with multiple state variables as its elements. Equation (1) is the evaluation function formulated in the form of QUBO (Quadratic Unconstrained Binary Optimization). For the problem of maximizing energy, the sign of the evaluation function should be reversed. 【0019】 The first term on the right-hand side of equation (1) is the product of the values ​​of the two state variables and the weight coefficients for all possible combinations of two state variables that can be selected from all state variables, without any omissions or overlaps. The subscripts i and j are the indices of the state variables. i x is the i-th state variable. j W is the j-th state variable. ij This is the weight between the i-th state variable and the j-th state variable, or the coupling coefficient that indicates the strength of the bond. ij =W ji And W ii = 0. The total number of state variables is n. 【0020】 The second term on the right-hand side of equation (1) is the sum of the products of each state variable's bias and the value of that state variable. i This indicates the bias for the i-th state variable. Problem information, including weight coefficients and biases included in the evaluation function, is stored in the memory unit 13. In other words, the memory unit 13 stores information related to the evaluation function. 【0021】 The state vector x when the value of the i-th state variable changes. (i)is the change amount Δx of the value of the i-th state variable i and is represented by Equation (2). 【0022】 【Equation】 Tr indicates transpose. x (i) can be said to be the neighboring state when the bit i, that is, the i-th state variable, is inverted in a certain state x. The change amount ΔH of the value of the evaluation function accompanying the change in the value of the i-th state variable i is represented by Equation (3). 【0023】 【Equation】 Δx i is represented by Equation (4). 【0024】 【Equation】 Here, when the value of the state variable x i changes to 1 - x i the increase in the state variable x i is Δx i =(1 - x i ) - x i = 1 - 2x i and Equation (4) is derived. 【0025】 ΔH in Equation (3) i can be expressed by Equation (5). 【0026】 【Equation】 h i is called the local field and is represented by Equation (6). ΔH i can be calculated in parallel for each i. 【0027】 【Equation】 the j-th state variable x jChange in value Δx j For the i-th state variable x i local field h corresponding to i h is updated as shown in equation (7). i This can be updated in parallel for each i. 【0028】 【number】 Here, methods such as the steepest descent method, which always transition states in a direction that decreases energy, become trapped in local optima and cannot escape. Therefore, the Metropolis method and the Gibbs method are used to determine the transition probability A from one state to the next by changing a certain state variable. In other words, changes that increase the value of the evaluation function are probabilistically allowed. In this case, the transition probability A for the change amount ΔH is calculated by equation (8). 【0029】 【number】 β is the reciprocal of the temperature value T, and is called the inverse temperature. 【0030】 For example, when using the Metropolis method, ΔH i Based on equation (9), the inverted state variable x j The index j can be selected. The state variable selection method exemplified in equation (9) is called the rejection-free selection method. 【0031】 【number】 r i 0 corresponds to index i. <r i This is a uniformly random number < 1. The base of the logarithm is Napier's constant. The argmin operator selects the value of i that minimizes the argument. The max operator selects the maximum value among the argument values. 【0032】 In the standard Metropolis selection MCMC method shown in equation (10) below, the probability α of transitioning to a different state from the current state is α ≤ 1. α is expressed by equation (11). α can be said to be the probability of escaping from the current state. Note that calculating α requires N exponential operations and their sum. On the other hand, in the rejection-free selection method, the system transitions to the next state with a probability of 1. 【0033】 【number】 【0034】 【number】 The search unit 11 executes the MCMC method using the rejection-free selection method. In the rejection-free selection method, it is possible to choose different bit selection rules by switching the function h(r) that weights the probability ratio r = π(y) / π(x). Here, π(·) is the objective distribution. x is the current state. y is the destination state. A symmetric proposal q(y|x) = q(x|y) is assumed. The objective distribution can be, for example, the Boltzmann distribution. However, the objective distribution may be a distribution other than the Boltzmann distribution. The probability ratio function h(π(y) / π(x)) = h(r) is called the balancing function (BF). 【0035】 The control unit 12 controls the switching of the balancing function h(r) used by the search unit 11. For a given balancing function h(r), the weights η of the proposed transition state y for the current state x are used. h (y|x) is expressed by equation (12). 【0036】 【number】 |N| is the neighborhood N of the current state x. x Number | N x | for x |N x | is constant. 【0037】 The transition probability P from the current state x to the target state y. h (x,y) is expressed by equation (13). Note that in the rejection-free selection method, the proposal probability equals the transition probability. 【0038】 【number】 α h is, η h α is the normalization constant. h This is η over the neighboring states x' of the current state x. h The sum of these is calculated using formula (14). 【0039】 【number】 The weight of the k-th sample w k This is expressed by equation (15). 【0040】 【number】 Here, the k-th sample is the state x obtained as the k-th state from the initial state, obtained by sequentially performing state transitions from the initial state. k This indicates. 【0041】 The balancing function h(r) satisfies equation (16). 【0042】 【number】 For positive values ​​of r, h(r) takes a positive value. As the value of r increases, h(r) also increases. However, for a certain interval of r, h(r) may remain constant. Furthermore, h(r) is equal to rh(r). -1 It is equal to ). 【0043】 Proposed weights η using h(r) as in equation (16) h (y|x) is called locally balanced and satisfies equation (17).h If (y|x) is the transition probability from x to y, then detailed balance holds, but η h (y|x) is not normalized and therefore does not have the properties of probability. 【0044】 【number】 Here, X represents all possible states. The proposed probability η in equation (13) h (y|x) / α h The method of proposing a destination state y in (x) and accepting the transition to state y is called IIT (Informed Importance Tempering). The following reference 1 is useful for understanding IIT. 【0045】 Reference 1: Quan Zhou, Aaron Smith, “Rapid Convergence of Informed Importance Tempering”, [online], In International Conference on Artificial Intelligence and Statistics, 2022, [Retrieved July 11, 2024], Internet<URL:https:arxiv.org / abs / 2107.10827> Various functions exemplified in equation (18) can be used as h(r) that satisfy equation (16). 【0046】 【number】 The min operator indicates an operation that selects the minimum value among the argument values. 1∧r indicates an operation that selects the smaller of 1 and r. 1∨r indicates an operation that selects the larger of 1 and r. α in equation (18) is a predetermined real number. Also, h(r) may be a linear combination of at least two functions shown in equation (18). For example, the memory unit 13 stores information indicating multiple balancing functions. 【0047】 Furthermore, the expected value E of an arbitrary function f(x) under the objective function π(x) is π[f(x)] is calculated by a weighted sum of the samples, as shown in equation (19). 【0048】 【number】 J k This represents the k-th sample. k is x k It may also be written as follows: K is the number of the last sample. In this way, the search unit 11 calculates the sample weight w k It is also possible to perform importance sampling using this method. 【0049】 In optimization or sampling calculations based on the MCMC method, computational efficiency may decrease depending on the nature of the problem or the state during the solution process, such as getting stuck in a local minimum, a region that is difficult to move to, or a region with no solution. For example, a state may occur where the system remains stuck in a local region for a long time, increasing the solution time. Therefore, the control unit 12 improves the efficiency of solution and sampling by switching and using a bit selection rule (Rejection-Free selection rule) that facilitates transitions depending on the state and the nature of the problem. 【0050】 Figure 2 shows an example of a balancing function. Figure 2(A) shows graph 21 for h(r) = min(1,r). Figure 2(B) shows graph 22 for h(r) = √r. Figure 2(C) shows graph 23 for h(r) = max(1,r). The horizontal axis of graphs 21, 22, and 23 is r, and the vertical axis is h(r). 【0051】 For example, if the Boltzmann distribution is used as the target distribution, then r = exp(-ΔH i / T). In this case, h(r)=min(1,r) is expressed by equation (20). 【0052】 【number】 Equation (20) represents a standard Metropolis-type balancing function. When using equation (20) as h(r), the search unit 11 selects the index j of the state variable whose value to invert using equation (21). 【0053】 【number】 Furthermore, r i As mentioned above, 0 corresponds to index i. <r i It is a uniformly random number < 1. Also, h(r) = max(1,r) is expressed by equation (22). 【0054】 【number】 When equation (22) is used as h(r), the search unit 11 selects the index j of the state variable whose value to invert using equation (23). 【0055】 【number】 Furthermore, h(r) = √r is expressed by equation (24). 【0056】 【number】 When equation (24) is used as h(r), the search unit 11 selects the index j of the state variable whose value to invert using equation (25). 【0057】 【number】 Figure 3 shows examples of the state transition properties for each balancing function. 【0058】 The properties of state transitions differ for each h(r) due to the difference in weighting of the energy difference ΔH by each balancing function h(r). Table 30 illustrates the basic transitions from the current state and the properties of transitions when stuck in a local minima for each h(r). 【0059】 When h(r) = min(1,r), in basic transitions, the energy decreases or remains unchanged, and transitions proceed randomly. When stuck in a local minimum, transitions proceed probabilistically depending on the rate of energy increase. 【0060】 When h(r) = √r, in basic transitions, the transition occurs probabilistically depending on the rate of energy decrease. In transitions when stuck in a local minimum, the transition occurs probabilistically depending on the rate of energy increase. 【0061】 In the case where h(r)=max(1,r), basic transitions occur probabilistically depending on the rate of energy decrease. When stuck in a local minimum, transitions occur randomly. The qualitative transition properties of min(1,r), max(1,r), and √r are as follows: 【0062】 When h(r) = min(1,r), transitions in the direction of increasing energy are avoided with increasing probability as the energy increases, but transitions in the direction of decreasing energy are chosen randomly equally regardless of the amount of energy change. Therefore, transitions in the case of h(r) = min(1,r) have the properties of exploration. Here, "exploration" refers to an action that pursues diversity and flexibility. 【0063】 When h(r) = max(1,r), transitions in the direction of decreasing energy are selected with a higher probability as the energy decreases, while transitions in the direction of increasing energy are selected randomly regardless of the amount of energy change. Therefore, transitions in the case of h(r) = max(1,r) have the property of exploitation. Here, "exploitation" refers to progressive or forward-looking actions such as improvement or speeding up. 【0064】 When h(r) = √r, the transitions possess both the properties of min(1,r) and max(1,r). Therefore, a balanced search can be expected when h(r) = √r. 【0065】 Here, any proposed weight A i The roulette selection algorithm for this can be derived as follows: First, the state variable x whose value is reversed. j The selection formula is expressed by formula (26). 【0066】 【number】 A i =min(1,exp(-ΔH i If we set / T), we obtain equation (21). A i =max(1,exp(-ΔH i If we set / T), we obtain equation (23). A i =exp(-ΔH i If we use / (2T)), we obtain equation (25). 【0067】 State variable x j The probability of selecting is given by equation (27). 【0068】 【number】 In the case of the metropolis selection rule, A j This corresponds to the probability of the proposal being accepted. 【0069】 A i ∝h(exp(-ΔH i Since / T)) and the constant multiplication of the expression inside the parentheses of the argmin operation does not change the result of the argmin operation, equation (28) holds. 【0070】 【number】 The search unit 11 considers any proposed weight A i State variable x j Equation (28) can be used as the selection formula. 【0071】 As illustrated in Figure 1, the search unit 11 performs a search using the MCMC method, where j = argmin i [F(ΔHi ) + log(-log(r i ))], the next destination state x j is selected. For example, F(ΔH i ) = -logh(exp(-ΔH i / T)) = -log(h(r)). Note that Equation (28) is in the form where the inside of the argmin operation in the formula j = argmin i [F(ΔH i ) + log(-log(r i ))] is multiplied by T, but both equations are equivalent. 【0072】 Here, in the search process executed by the search unit 11, the following first process and second process are repeatedly performed. The first process is the change amount ΔH i of the value of the evaluation function when updating each value of a plurality of state variables included in the evaluation function H(x), and a first function h1(r) which is a function indicating the selection criterion of the state variable (changed state variable) according to the change amount ΔH i . Based on this, the process of selecting the changed state variable x j from a plurality of state variables. The function indicating the selection criterion of the state variable according to ΔH i corresponds to a balancing function. For example, in the selection formula of the above state variable x j , F(ΔH i ) = -log(h1(r)). Also, the values of the plurality of state variables may be stored in the storage unit 13. The second process is the process of updating the value of the selected changed state variable x j . In the update of the value of x j , the value of x j is inverted. 【0073】 The control unit 12 performs control to switch the balancing function used in the search process of the search unit 11 to a second function h2(r) different from the first function h1(r). After the switching, in the selection formula of the state variable x j , F(ΔH iThe search process continues by setting ) = -log(h2(r)). In one example, h1(r) = √r and h2(r) = min(1,r) or h2(r) = max(1,r). The control unit 12 can also perform the reverse switching. Furthermore, the control unit 12 can use various functions shown in equation (18), or a linear combination of at least two of these functions, or other functions that satisfy equation (16) as h1(r) and h2(r). 【0074】 The control unit 12 can switch the balancing function in various cases. For example, the control unit 12 may switch the balancing function for each temperature value set for multiple replicas used in the PT method. For example, the control unit 12 may set h(r)=min(1,r) on the high-temperature side and h(r)=max(1,r) on the low-temperature side. Alternatively, the control unit 12 may set h(r)=max(1,r) on the high-temperature side and h(r)=min(1,r) on the low-temperature side. Which balancing function is set for each temperature value may be changed depending on the problem. 【0075】 Furthermore, the control unit 12 may control the search unit 11 to perform searches with equal probability in the simulated tempering (ST) method, specifying pairs of temperature values ​​and balancing functions. 【0076】 Furthermore, the control unit 12 may switch the balancing function when the number of state transitions (number of iterations) in the search process reaches a threshold. Furthermore, the control unit 12 may switch the balancing function for each temperature value in the search process using the SA method. For example, the control unit 12 may set h(r)=min(1,r) on the high-temperature side and h(r)=max(1,r) on the low-temperature side. Alternatively, the control unit 12 may set h(r)=max(1,r) on the high-temperature side and h(r)=min(1,r) on the low-temperature side. The choice of which balancing function to set for each temperature value may be changed depending on the problem. 【0077】 Furthermore, the control unit 12 may switch the balancing function if it detects that the state obtained by the search unit 11 has fallen into a local minima or that it is difficult to reach a better solution. For example, the control unit 12 may switch the balancing function ΔH i If is positive for all i, it is possible to detect that a local optimum has been reached. Alternatively, the control unit 12 may use the sample weight w as an example of an indicator representing the search status. k It is also possible to use the following. Specifically, the control unit 12 uses the sample weight w k Based on this, it is possible to detect situations where it becomes difficult to reach a better solution. For example, sample weight w k The larger x k There tends to be fewer transition destinations in the vicinity where the value of the evaluation function decreases. Therefore, for example, the control unit 12 sets the sample weight w k Alternatively, if the sum of these values ​​exceeds a threshold, the balancing function may be switched. 【0078】 In this way, the data processing device 10 can switch the balancing function according to the problem and the solution status, thereby promoting transitions to better states and improving the computational efficiency of solving combinatorial optimization problems and sampling. For example, the data processing device 10 can speed up the solution process by suppressing the state adopted in the search process from remaining in a local region in the state space. 【0079】 Furthermore, the control unit 12 may set a balancing function for each of the multiple replicas used in the PT method. Even in this way, the data processing device 10 can improve the efficiency of solving combinatorial optimization problems and sampling calculations. 【0080】 Here, we will add some information about the objective distribution obtained by IIT and the probability of state exchange between replicas in the PT method. RF-MCMC (Rejection-Free MCMC) using the standard Metropolis method converges to the objective distribution π^(x) in equation (29), not π(x). Here, "π^" represents the symbol "π" with a "^" (hat symbol) above it. 【0081】 [Mathematics] Regarding the target distribution π^(x), "Proposition 5." in the following Document 2 is helpful for reference. 【0082】 Document 2: Jeffrey S. Rosenthal, et al., "Jump Markov Chains and Rejection-Free Metropolis Algorithms", [online], 2020, [searched on July 11, 2024], Internet <URL:https:arxiv.org / abs / 1910.13316> It is shown from Equations (13) and (17) that the target distribution in general IIT also has the same form as Equation (29). Equation (30) holds from Equations (13) and (17). 【0083】 [Mathematics] Therefore, Equation (31) is obtained for any balancing function h(r). 【0084】 [Mathematics] Here, the proposed weight η h (y|x) is represented by Equation (32). 【0085】 [Mathematics] Also, the normalization constant α h is represented by Equation (33). 【0086】 [Mathematics] x’ is a neighboring state with respect to the current state x. 【0087】 IIT has π h ∝ π(x)α hIt converges to (x). Therefore, according to reference 2, α h (x,β) appears in the state exchange probability in the PT method. Specifically, the inverse temperature values ​​set for the M replicas are β1, β2, ..., β M Let the inverse temperature value be p (p=1~M). p ,objective distribution π p Energy H p Let equation (34) hold true for this. 【0088】 【number】 ΔH p Δβ is the energy difference between adjacent inverse temperature values. p This is the difference between adjacent inverse temperature values. The probability of state exchange A in the PT method. p This is expressed by equation (35). 【0089】 【number】 A p The coefficient R included α This is expressed by equation (36). 【0090】 【number】 However, R α You can also set it to =1. 【0091】 [Second Embodiment] Next, a second embodiment will be described. Figure 4 shows an example of the hardware of a data processing device according to the second embodiment. 【0092】 The data processing device 100 includes a processor 101, RAM 102, HDD 103, GPU 104, input interface 105, media reader 106, communication interface 107, and accelerator card 108. These units of the data processing device 100 are connected to a bus inside the data processing device 100. 【0093】 The processor 101 is an arithmetic unit 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 RAM 102 and executes the program. The processor 101 may include multiple processor cores. The data processing unit 100 may also have multiple processors. The processor that executes one of the multiple processes performed by the data processing unit 100 may be different from the processor that executes a different process from the multiple processes. Furthermore, a collection of multiple processors is sometimes called a "multiprocessor" or simply a "processor". In addition, a processor may also be called a "processor circuitry". 【0094】 RAM 102 is a volatile semiconductor memory that temporarily stores programs executed by the processor 101 and data used by the processor 101 for calculations. The data processing device 100 may also be equipped with other types of memory, and may be equipped with multiple types of memory. 【0095】 HDD103 is a non-volatile storage device that stores software programs such as the 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 SSD (Solid State Drive), and may include multiple non-volatile storage devices. 【0096】 The GPU 104 outputs an image to the display 51 connected to the data processing unit 100, according to instructions from the processor 101. Any type of display can be used as the display 51, such as a CRT (Cathode Ray Tube) display, a liquid crystal display (LCD), a plasma display, or an organic electro-luminescence (OEL) display. 【0097】 The input interface 105 acquires input signals from the input device 52 connected to the data processing unit 100 and outputs them to the processor 101. The input device 52 can be a pointing device such as a mouse, touch panel, touchpad, or trackball, a keyboard, a remote controller, or a button switch. Furthermore, multiple types of input devices may be connected to the data processing unit 100. 【0098】 The media reader 106 is a reading device that reads programs and data recorded on the recording medium 53. The recording medium 53 can be, for example, a magnetic disk, an optical disk, a magneto-optical disk (MO), or semiconductor memory. Magnetic disks include flexible disks (FD) and HDDs. Optical disks include CDs (Compact Discs) and DVDs (Digital Versatile Discs). 【0099】 The media reader 106 copies programs and data read from the recording medium 53 to other recording media such as RAM 102 or HDD 103. The read programs are executed by the processor 101, for example. The recording medium 53 may be a portable recording medium and may be used for distributing programs and data. The recording medium 53 and HDD 103 are sometimes referred to as computer-readable recording media. 【0100】 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 router, or a wireless communication interface connected to a wireless communication device such as a base station or access point. 【0101】 The accelerator card 108 is a hardware accelerator for searching for solutions to combinatorial optimization problems. The accelerator card 108 has a processor 108a and RAM 108b. The processor 108a is, for example, a GPU, DSP, ASIC, FPGA, etc. RAM 108b stores data used for processing by the processor 108a. For example, RAM 108b holds data used for the search process by the processor 108a and the solutions found by the processor 108a. The RAM may be DRAM (Dynamic Random Access Memory), SRAM (Static Random Access Memory), or both. 【0102】 Accelerator card 108 is a hardware accelerator that searches for solutions to problems represented by the Ising-type energy function of equation (1) using the MCMC method. Accelerator card 108 uses the aforementioned IIT method for selecting the state transition destination in the MCMC method. Accelerator card 108 can be used as a sampler to perform sampling of states following a target distribution such as the Boltzmann distribution, or importance sampling based on equation (19) above, by performing the MCMC method or the PT method, which exchanges the states of the Ising model between multiple temperatures. In addition, accelerator card 108 performs the PT method, ST method, or SA method, etc., to solve combinatorial optimization problems. 【0103】 The PT method is a technique that independently executes the MCMC method using multiple temperature values. These independent computing resources that execute the MCMC method are called replicas. In the PT method, states or temperature values ​​are exchanged as appropriate for the states obtained by multiple replicas corresponding to multiple temperature values. When using the PT method, the accelerator card 108 performs state transition trials in parallel with multiple replicas, and after a certain number of trials, it repeats the operation of exchanging states or temperature values ​​with pairs of replicas adjacent to each other at a predetermined exchange probability. 【0104】 The ST method is a technique that performs the MCMC method using discrete temperature as a random variable. Here, let X be the variable to be sampled by the ST method, and the inverse temperature value β = (β1, β2, ..., β M Let ). In this case, the joint distribution with respect to X and β is given by equation (37). 【0105】 【number】 Z in equation (37) ST This is expressed by equation (38). 【0106】 【number】 Note that ω(β) is the marginal distribution P(β) = Σ X The values ​​are determined such that π(X,β) are uniform. 【0107】 The SA method is a technique for efficiently finding the optimal solution by lowering the temperature value used during sampling from high to low, that is, by increasing the inverse temperature β. For example, when using the SA method, the accelerator card 108 repeatedly performs a certain number of trials of state transitions at a constant temperature value, and then lowers the temperature value. 【0108】 Here, processors 108a and 101 are examples of the search unit 11 and control unit 12 of the first embodiment, respectively. However, the search unit 11 and control unit 12 may be implemented by processor 108a. For example, the first arithmetic circuit and the second arithmetic circuit, which are not shown, provided by processor 108a may be examples of the search unit 11 and control unit 12, respectively. Also, the search unit 11 and control unit 12 may be implemented by processor 101. For example, the first processor core and the second processor core, which are not shown, provided by processor 101 may be examples of the search unit 11 and control unit 12, respectively. Furthermore, RAM 102, 108b and HDD 103 are examples of the storage unit 13 of the first embodiment. 【0109】 Figure 5 shows an example of the functions of a data processing device. The data processing device 100 includes a search processing unit 110, a selection control unit 120, a selector 130, and a BF holding unit 140. 【0110】 The search processing unit 110 executes the MCMC method. The search processing unit 110 solves the combinatorial optimization problem using, for example, the PT method, ST method, or SA method. The search processing unit 110 selects the transition state in the MCMC method based on equation (28). The balancing function h(r) = h(exp(-ΔH)) in equation (28) i / T)) is set by the control of the selection control unit 120. 【0111】 The selection control unit 120 controls the bit selection rule used in the search process of the search processing unit 110. The selection control unit 120 switches the bit selection rule at a predetermined timing according to the search status in the search processing unit 110, for example. The selection control unit 120 controls the balancing function h(r)=h(exp(-ΔH) in equation (28). i By toggling / T), you can switch the bit selection rule (the selection rule for state variables). 【0112】 The selector 130 obtains information indicating the balancing function (BF) specified by the selection control unit 120 from the BF holding unit 140 and supplies it to the search processing unit 110. The BF holding unit 140 holds information indicating multiple balancing functions. In the example in Figure 5, an example is shown where information indicating three balancing functions BF1, BF2, and BF3 is held. For example, BF1 = min(1,r), BF2 = √r, and BF3 = max(1,r). However, the BF holding unit 140 may also hold information indicating other balancing functions. Furthermore, the BF holding unit 140 may also hold information indicating two or four or more balancing functions. 【0113】 As the balancing function, you can use any of the functions exemplified in equation (18), or a linear combination of at least two of them, or any other function that satisfies equation (16). Here, the search processing unit 110 and the selection control unit 120 are implemented by the processor 108a. However, the search processing unit 110 and the selection control unit 120 may also be implemented by the processor 101 executing a program stored in the RAM 102. Alternatively, the search processing unit 110 may be implemented by the processor 108a and the selection control unit 120 may be implemented by the processor 101. Furthermore, the selector 130 may be implemented by the processor 108a or by the processor 101. In addition, the BF holding unit 140 uses the storage area of ​​RAM 102, 108b or HDD 103. 【0114】 Figure 6 shows an example of the search processing unit circuit. The search processing unit 110 includes Σ arithmetic units 11_1, 11_2, ..., 11_n, h holding units 12_1, 12_2, ..., 12_n, multipliers 13_1, 13_2, ..., 13_n, and a selector 14. n is the total number of state variables and is an integer greater than or equal to 2. 【0115】 The summation units 11_1 to 11_n calculate the first term on the right-hand side of equation (6) for indices i=1 to n, based on the values ​​of multiple state variables. The values ​​of the multiple state variables may be stored in RAM 108b. 【0116】 The h holding section 12_1~12_n is defined by equation (6) for i=1~n i It holds the following. RAM 108b may be used for the storage area of ​​the h holding section 12_1~12_n. State variable x j If the value is updated, h i This is updated by equation (7). 【0117】 The multiplier 13_1~13_n has ΔH in equation (5) for i=1~n. i Calculate the result and output it to selector 14. Selector 14 is ΔH i And the state variable x whose value is reversed based on equation (28) j Select this option. Specifically, j=argmin i [F(ΔH i )+log(-log(r i ))). Also, F(ΔH i )=-logh(exp(-ΔH i It is / T)). 【0118】 Selector 14 is the state variable x j Depending on the selection, Δx j Output x j This is reversed. In this way, the state transitions in the search processing unit 110 are repeatedly executed. Furthermore, when selector 14 receives an update signal for h(r) from selector 130, it updates h(r) in the selection expression j to the h(r) specified by the update signal. This switches the bit selection rule in selector 14. 【0119】 Figure 7 shows a first example of control of the balancing function. For example, the search processing unit 110 executes the PT method. In this case, the search processing unit 110 has M replicas 111_1 to 111_M. For example, the search processing unit 110 may realize multiple replicas by performing pipeline processing with the circuit set illustrated in Figure 6, or it may realize multiple replicas by having multiple circuit sets illustrated in Figure 6. Each replica is set to a different temperature value. 【0120】 When the PT method is executed by the search processing unit 110, the selection control unit 120 specifies a balancing function for each temperature value or for each replica. For example, the selection control unit 120 may set h(r)=min(1,r) to a higher temperature than the median temperature value set for each replica, and h(r)=max(1,r) to a lower temperature than the median. This allows for transitions to various states on the higher temperature side and accelerates transitions in the direction of energy decrease on the lower temperature side. Alternatively, the selection control unit 120 may set h(r)=max(1,r) on the higher temperature side and h(r)=min(1,r) on the lower temperature side. Furthermore, the selection control unit 120 may change the balancing function set on the higher temperature side and the balancing function set on the lower temperature side depending on the type of problem. 【0121】 Furthermore, the selection control unit 120 may fix the balancing function initially set for each replica for the entire duration of the search process. In addition, the selection control unit 120 may change the balancing function set for each replica to a different balancing function at regular intervals or when a certain number of iterations are reached. 【0122】 Figure 8 is a flowchart showing an example of a search process using the first control example. (S10) The search processing unit 110 is initialized. During initialization, the search processing unit 110 sets information about the energy function of equation (1), sets the initial solution, and sets parameters including the temperature value to be used and the termination conditions for the search process. 【0123】 (S11) The selection control unit 120 selects one balancing function (BF) for each temperature value of the PT method to be used in equation (28). The selection control unit 120 sets the temperature value and the balancing function corresponding to that temperature value for each replica of the search processing unit 110. The setting of the balancing function by the selection control unit 120 to the search processing unit 110 is performed via the selector 130. 【0124】 (S12) The search processing unit 110 performs steps S13 to S15 for each replica (replica loop). Steps S13 to S15 are executed in parallel for each replica. (S13) The search processing unit 110 repeatedly performs step S14 for each replica (iteration loop). 【0125】 (S14) The search processing unit 110 performs a selection and update operation for the relevant replica, which involves selecting a state variable and updating the value of the selected state variable. Details of the selection and update operation will be described later. 【0126】 (S15) When the search processing unit 110 finishes the iteration loop, it proceeds to step S16. When the number of repetitions of step S14 reaches a predetermined number, the iteration loop ends. 【0127】 (S16) When the replica loop ends, the search processing unit 110 exchanges the adjacent temperature value replicas using the exchange probability A of equation (35). p A state exchange process is performed based on this, and the process proceeds to step S17. Here, R in equation (35) α This may be calculated by formula (36), or R α It may also be set to =1. Note that the replica loop terminates when the iteration loop has finished for all replicas. 【0128】 (S17) The search processing unit 110 determines whether the termination conditions for the search process are met. If the termination conditions are met, the search process ends. If the termination conditions are not met, the process proceeds to step S12. The termination conditions include, for example, that the replica loop in steps S12 to S16 has been performed for a certain period of time or a certain number of times. When the search process is terminated, the search processing unit 110 outputs, for example, the solution with the minimum energy obtained so far. 【0129】 Figure 9 is a flowchart showing an example of selection and update operations in the first control example. The selection and update operation shown in Figure 9 corresponds to step S14. (S20) The search processing unit 110 calculates ΔH for i=1 to n based on equation (5). 【0130】 (S21) The search processing unit 110 performs bit selection based on the balancing function (BF). Specifically, the search processing unit 110 selects a state variable whose value is inverted according to equation (28). The balancing function included in equation (28) is h(r) = h(exp(-ΔH i For / T), the balancing function specified by the selection control unit 120 for the temperature value of the corresponding replica is used. 【0131】 (S22) The search processing unit 110 performs a bit flip. Specifically, the search processing unit 110 inverts the value of the state variable selected in step S21. (S23) The search processing unit 110 updates the energy H in accordance with the inversion of the value of the state variable. Here, the search processing unit 110 holds the energy H of the current state of the corresponding replica. State variable x j The updated energy corresponding to the reversal of the value is H + ΔH j That is the case. 【0132】 (S24) The search processing unit 110 generates a local field h based on equation (7). i The data is updated. Then, the selection and update operation is completed. Figure 10 shows a second example of the balancing function's control. 【0133】 For example, the search processing unit 110 executes the ST method. In the ST method, the search processing unit 110 changes the temperature values ​​used for the search at regular intervals based on a predetermined standard. For example, M temperature values ​​T1 to T M These are prepared in advance. 【0134】 When the ST method is executed by the search processing unit 110, the selection control unit 120 selects a pair of temperature values ​​and balancing functions (T1, BF1), ..., (T k BF k ),…,(T M BF M The search processing unit 110 is controlled so that the search specified by ) is executed with equal probability. For example, the selection control unit 120 may set h(r)=min(1,r) to a higher temperature than the median temperature value set for each replica, and h(r)=max(1,r) to a lower temperature than the median. Alternatively, the selection control unit 120 may set h(r)=max(1,r) to a higher temperature and h(r)=min(1,r) to a lower temperature. Or, the selection control unit 120 may randomly assign a balancing function to each temperature value. 【0135】 Figure 11 is a flowchart showing an example of a search process using the second control example. (S30) The search processing unit 110 performs initialization. (S31) The selection control unit 120 selects a balancing function (BF) for each temperature value. 【0136】 (S32) The selection control unit 120 selects one set of temperature values ​​and balancing functions to be used next from among multiple sets of temperature values ​​and balancing functions. At this time, the selection control unit 120 ensures that each set of temperature values ​​and balancing functions is selected with equal probability throughout the entire duration of the search process. The selection control unit 120 sets the selected set of temperature values ​​and balancing functions in the search processing unit 110. 【0137】 (S33) The search processing unit 110 repeatedly executes step S34 (iteration loop). (S34) The search processing unit 110 performs a selection and update operation of the state variable. The selection and update operation is the same as the procedure in Figure 9. 【0138】 (S35) When the search processing unit 110 finishes the iteration loop, it proceeds to step S36. When the number of repetitions of step S34 reaches a predetermined number, the iteration loop ends. 【0139】 (S36) The search processing unit 110 determines whether the termination conditions for the search process are met. If the termination conditions are met, the search process ends. If the termination conditions are not met, the process proceeds to step S32. When the search process is terminated, the search processing unit 110 outputs, for example, the solution with the minimum energy obtained so far. 【0140】 The search processing unit 110 can also execute the SA method. In the SA method, the search processing unit 110 performs the search by gradually lowering the temperature value from the highest temperature value to the lowest temperature value. When the SA method is executed in the search processing unit 110, the selection control unit 120 may set a balancing function for the search processing unit 110 that corresponds to the current temperature value used in the search process. 【0141】 Figure 12 shows a third example of the balancing function's control. When the PT method is executed by the search processing unit 110, the selection control unit 120 may switch the balancing function used for the search at regular intervals. 【0142】 Figure 13 is a flowchart showing an example of a search process using the third control example. (S40) The search processing unit 110 is initialized. The selection control unit 120 sets a predetermined initial balancing function for each replica of the search processing unit 110. 【0143】 (S41) The search processing unit 110 performs steps S42 to S45 for each replica (replica loop). Steps S42 to S45 are executed in parallel for each replica. (S42) The search processing unit 110 and the selection control unit 120 repeatedly perform steps S43 and S44 for each replica (iteration loop). 【0144】 (S43) The selection control unit 120 counts the number of iterations for the corresponding replica. (S44) The search processing unit 110 and the selection control unit 120 perform selection and update operations on state variables. Details of the selection and update operations on state variables will be described later. 【0145】 (S45) When the search processing unit 110 finishes the iteration loop, it proceeds to step S46. When the number of repetitions of step S44 reaches a predetermined number, the iteration loop ends. 【0146】 (S46) When the replica loop ends, the search processing unit 110 exchanges the replicas of adjacent temperature values ​​using the exchange probability A of equation (35). p A state exchange process is performed based on this, and the process proceeds to step S47. Here, R in equation (35) α This may be calculated by formula (36), or R α It may also be set to =1. Note that the replica loop terminates when the iteration loop has finished for all replicas. 【0147】 (S47) The search processing unit 110 determines whether the termination conditions for the search process are met. If the termination conditions are met, the search process ends. If the termination conditions are not met, the process proceeds to step S41. When the search process is terminated, the search processing unit 110 outputs, for example, the solution with the minimum energy obtained so far. 【0148】 Figure 14 is a flowchart showing an example of selection and update operations in the third control example. The selection and update operation shown in Figure 14 corresponds to step S44. (S50) The selection control unit 120 determines whether the number of iterations > threshold. If the number of iterations > threshold, the process proceeds to step S51. If the number of iterations ≤ threshold, the process proceeds to step S53. 【0149】 (S51) The selection control unit 120 selects and switches the balancing function for the corresponding replica. The selection control unit 120 sets a balancing function different from the currently set balancing function for the corresponding replica. 【0150】 (S52) The selection control unit 120 initializes the number of iterations counted for the corresponding replica. (S53) The search processing unit 110 calculates ΔH for i = 1 to n based on Equation (5). 【0151】 (S54) The search processing unit 110 performs bit selection based on the balancing function (BF). Specifically, the search processing unit 110 selects the state variable whose value is to be inverted according to Equation (28). The balancing function h(r)=h(exp(-ΔH i included in Equation (28) uses the balancing function specified by the selection control unit 120 for the corresponding replica. 【0152】 (S55) The search processing unit 110 performs a bit flip. Specifically, the search processing unit 110 inverts the value of the state variable selected in step S54. (S56) The search processing unit 110 updates the energy H according to the inversion of the value of the state variable. 【0153】 (S57) The search processing unit 110 updates the local field h i based on Equation (7). Then, the selection and update operations are completed. Figure 15 is a diagram showing a fourth control example of the balancing function. 【0154】 When the PT method is executed by the search processing unit 110, the selection control unit 120 may obtain an index value Q representing the search status for each replica, and switch the balancing function used for the search in the replica at a timing according to the comparison between the index value Q and the threshold value. 【0155】 The index value Q is, for example, the sample weight w of Equation (15). k As described above, the sample weight w k is the reciprocal of the normalization constant α of Equation (14). h (x k ) is the reciprocal of it. x k is the state sampled at the k-th time. Here, the more neighboring states with a large reduction width of energy with respect to the state x k , that is, the more better solutions around the state x k , the larger the normalization constant α h (x k ) becomes. Since w k is the reciprocal of α h (x k ), the larger w k is, the fewer good solutions are around the current state x k . Therefore, the selection control unit 120 can improve the possibility of transitioning to a better solution in the corresponding replica by switching the balancing function when the value of w k exceeds the threshold value. 【0156】 Note that the index value Q may be a value obtained by integrating w k for each k, or may be a value obtained by filtering (for example, smoothing) a series of w k . Smoothing may be performed, for example, by taking a moving average of w k . 【0157】 FIG. 16 is a flowchart showing an example of search processing using a fourth control example. Here, the procedure of FIG. 16 is different from the procedure of FIG. 13 in that steps S43a and S44a are included instead of steps S43 and S44. Therefore, below, steps S43a and S44a will be described, and the description of steps S40 to S42 and S45 to S47 will be omitted. 【0158】 (S43a) The selection control unit 120 calculates an index value Q based on the sample weight w k for the corresponding replica. As described above, the sample weight w kThis indicates the weight of the current state in the corresponding replica. Also, for example, Q=w k However, the index value Q is w k Alternatively, the value obtained by accumulating over each k may be used, or w k The values ​​obtained by filtering (e.g., smoothing) the series are also acceptable. 【0159】 (S44a) The search processing unit 110 and the selection control unit 120 perform selection and update operations on state variables. Details of the selection and update operations on state variables will be described later. Then, the process proceeds to step S45. 【0160】 Figure 17 is a flowchart showing an example of a selection and update operation in the fourth control example. The selection and update operation shown in Figure 17 corresponds to step S44a. Here, the procedure in Figure 17 differs from the procedure in Figure 14 in that it includes steps S50a to S52a instead of steps S50 to S52. For this reason, steps S50a to S52a will be explained below, and the explanation of steps S53 to S57 will be omitted. 【0161】 (S50a) The selection control unit 120 determines whether the index value Q > threshold. If the index value Q > threshold, the process proceeds to step S51a. If the index value Q ≤ threshold, the process proceeds to step S53. 【0162】 (S51a) The selection control unit 120 selects and switches the balancing function for the replica in question. The selection control unit 120 sets a balancing function for the replica in question that is different from the balancing function currently set. 【0163】 (S52a) The selection control unit 120 initializes the index value Q for the corresponding replica. Note that the initialization of the index value Q is performed by setting the index value Q to w k The calculation of lol k This should be done when using the filtering value of Q=w. kIn this case, the initialization of the index value Q does not need to be performed, and step S52a may be skipped. Then, the process proceeds to step S53. 【0164】 Figure 18 shows a fifth example of the balancing function's control. The selection control unit 120 prepares separate balancing functions for use in the basic search and for use when it is determined that a local minimum has been reached. The selection control unit 120 may also output a selection signal that specifies the balancing function to be used for each replica, based on the status signal for each replica received from the search processing unit 110 that executes the PT method. 【0165】 The balancing function used in basic search is, for example, BF2 = √r. The balancing function used in local minima is, for example, BF1 = min(1,r) or BF3 = max(1,r). 【0166】 Figure 19 is a flowchart showing an example of a search process using the fifth control example. (S60) The search processing unit 110 is initialized. The selection control unit 120 sets the balancing function to be used in the basic search for each replica of the search processing unit 110. 【0167】 (S61) The search processing unit 110 performs steps S62 to S64 for each replica (replica loop). Steps S62 to S64 are executed in parallel for each replica. (S62) The search processing unit 110 and the selection control unit 120 repeatedly perform step S63 for each replica (iteration loop). 【0168】 (S63) The search processing unit 110 and the selection control unit 120 perform selection and update operations on state variables. Details of the selection and update operations on state variables will be described later. (S64) When the search processing unit 110 finishes the iteration loop, it proceeds to step S65. When the number of repetitions of step S63 reaches a predetermined number, the iteration loop ends. 【0169】 (S65) When the replica loop ends, the exploration processing unit 110 performs state exchange processing based on the exchange probability A in Equation (35) between replicas with adjacent temperature values, and proceeds to step S66. Here, R in Equation (35) p may be calculated by Equation (36), or R α may be set to 1. When the iteration loop ends for all replicas, the replica loop ends. α 【0170】 (S66) The exploration processing unit 110 determines whether or not the end condition of the exploration processing is satisfied. If the end condition is satisfied, the exploration processing ends. If the end condition is not satisfied, the process proceeds to step S61. When ending the exploration processing, the exploration processing unit 110 outputs, for example, the solution with the minimum energy obtained so far. 【0171】 FIG. 20 is a flowchart showing a first example of the selection and update operation in the fifth control example. The process of the selection and update operation in FIG. 20 corresponds to step S63. (S70) The exploration processing unit 110 calculates ΔH for i = 1 to n based on Equation (5). 【0172】 (S71) The exploration processing unit 110 performs bit selection based on the balancing function (BF). Specifically, the exploration processing unit 110 selects a state variable whose value is to be inverted by Equation (28). The balancing function h(r) = h(exp(-ΔH i / T)) included in Equation (28) uses the balancing function specified by the selection control unit 120 for the corresponding replica. 【0173】 (S72) The exploration processing unit 110 performs a bit flip. Specifically, the exploration processing unit 110 inverts the value of the state variable selected in step S71. (S73) The exploration processing unit 110 updates the energy H according to the inversion of the value of the state variable. 【0174】 (S74) The search processing unit 110 updates the local field h based on Equation (7). i It is updated. (S75) The selection control unit 120 determines whether H < minH. minH is the minimum energy obtained so far through the selection and update operations. If H < minH, the selection control unit 120 updates minH with the current H and proceeds to step S76. If H ≥ minH, the process proceeds to step S77. 【0175】 (S76) The selection control unit 120 resets cnt to 0. Then, the selection and update operations are completed. (S77) The selection control unit 120 increments cnt. That is, the selection control unit 120 updates cnt to cnt + 1. 【0176】 (S78) The selection control unit 120 determines whether cnt > τ. τ is a predefined count threshold. If cnt > τ, the process proceeds to step S79. If cnt ≤ τ, the selection and update operations are completed. 【0177】 (S79) The selection control unit 120 performs switching control of the balancing function (BF). For example, if the balancing function used by the search processing unit 110 is the balancing function used in basic search, the selection control unit 120 switches to the balancing function used in local solution. Also, if the balancing function used by the search processing unit 110 is the balancing function used in local solution, the selection control unit 120 switches to the balancing function used in basic search. Then, the process proceeds to step S76. 【0178】 Figure 21 is a flowchart showing a second example of the selection and update operations in the fifth control example. The process of the selection and update operations in Figure 21 corresponds to step S63. Here, in the procedure of Figure 21, compared with the procedure of Figure 20, it is different in that step S75a is included instead of step S75. Therefore, below, step S75a will be described, and the descriptions of steps S70 - S74, S76 - S79 will be omitted. 【0179】 (S75a) The selection control unit 120 determines whether all ΔH values ​​for i=1 to n calculated in step S70 are positive for the corresponding replica. If all ΔH values ​​are positive, the process proceeds to step S77. Otherwise, the process proceeds to step S76. 【0180】 As shown in Figure 21, the selection control unit 120 may switch the balancing function when all ΔH values ​​are positive, i.e., when it is determined that a local optimum has been reached. The data processing unit 100 can attempt to escape from the local optimum by switching the bit selection rule in the search process. 【0181】 Thus, according to the data processing device 100 of the second embodiment, by switching the balancing function according to the problem and the solution status, it is possible to promote transitions to better states and improve the computational efficiency of solving combinatorial optimization problems and sampling. For example, the data processing device 100 can suppress the state adopted in the search process from remaining in a local region in the state space, thereby speeding up the solution. 【0182】 Furthermore, the selection control unit 120 may set a balancing function for each of the multiple replicas used in the PT method. Even in this way, the data processing device 100 can improve the efficiency of calculations such as solving combinatorial optimization problems and sampling. 【0183】 As explained above, the data processing device 100 performs, for example, the following processing. In the following description, the search processing unit 110 may be read as the search unit 11, and the selection control unit 120 may be read as the control unit 12. 【0184】 The search processing unit 110 executes the search process. The search process repeatedly executes the first process and the second process. The first process is the process of selecting a change state variable from among multiple state variables based on the amount of change in the evaluation function value when updating the value of each of the multiple state variables included in the evaluation function, and the first function which is a function that indicates the selection criteria for the change state variable according to the amount of change. The second process is the process of updating the value of the change state variable selected in the first process. The selection control unit 120 switches the function used in the search process by the search processing unit 110 to the second function, which is different from the first function. 【0185】 This allows the data processing device 100 to improve its computational efficiency. The aforementioned balancing function h(r) corresponds to a function that indicates the selection criteria for the state variables. More specifically, the function indicating the selection criteria for state variables weights state transitions resulting from updating the values ​​of the modified state variables based on the amount of change in the evaluation function. The selection control unit 120 controls the selection probability of each of the multiple state variables in relation to the amount of change in the evaluation function when the search processing unit 110 updates the values ​​of the modified state variables by switching this function. This allows the data processing device 100 to easily control the selection probability of state variables by switching this function (balancing function). 【0186】 Here, h(r) is a function that weights the probability ratio r = π(y) / π(x), as mentioned above. π(y) / π(x) is a function of the difference ΔH in evaluation values ​​for state transitions from the current state x to the candidate transition destination y. Therefore, h(r) can be said to be a function that weights the state transitions corresponding to ΔH. 【0187】 The selection control unit 120 selects one of several functions as the first and second functions, including the following examples. The first example is a function in which the weight of all state transitions corresponding to a change in the value of the evaluation function that indicates an improvement in the value of the evaluation function is set to 1, and the weight of state transitions that indicate a deterioration in the value of the evaluation function that indicates a deterioration in the value of the evaluation function is set to less than 1, and the larger the absolute value of the change, the smaller the value. The second example is a function in which the weight of all state transitions that indicate a deterioration in the value of the evaluation function that indicates a change in the value of the evaluation function is set to 1, and the weight of state transitions that indicate an improvement in the value of the evaluation function that indicates a improvement in the value of the evaluation function is set to greater than 1, and the larger the absolute value of the change, the larger the value. The third example is a function in which the weight of the state transition corresponding to a change in the value of the evaluation function is set to a larger value the greater the degree of improvement in the value of the evaluation function based on the change in the value of the evaluation function. This allows the data processing device 100 to appropriately control the selection probability of the state variable. 【0188】 Here, when minimizing the value of the evaluation function, a negative change in the evaluation function's value indicates an improvement in the evaluation function's value or state. On the other hand, a positive change in the evaluation function's value indicates a deterioration in the evaluation function's value or state. 【0189】 In other words, for example, in the problem of minimizing the value of the evaluation function, the functions in the first to third examples above can be expressed as follows: The first example is a function in which the weight of all state transitions where the change in the value of the evaluation function is negative is set to 1, and the weight of state transitions where the change is positive is set to a value less than 1, and the larger the change, the smaller the value. The second example is a function in which the weight of all state transitions where the change in the value of the evaluation function is positive is set to 1, and the weight of state transitions where the change is negative is set to a value greater than 1, and the larger the absolute value of the change, the larger the value. The third example is a function in which the weight of a state transition is larger the smaller the change in the value of the evaluation function. The aforementioned h(r)=min(1,r) is an example of the function in the first example. h(r)=max(1,r) is an example of the function in the second example. h(r)=√r is an example of the function in the third example. 【0190】 Furthermore, by reversing the sign of the evaluation function, the sign of the change in the evaluation function can be reversed. For example, in a problem where the goal is to maximize the value of the evaluation function, a positive change indicates improvement in the solution, and a negative change indicates deterioration of the solution. However, by reversing the sign of the evaluation function in this problem, the problem can be transformed so that a negative change indicates improvement in the solution, and a positive change indicates deterioration of the solution. 【0191】 The selection control unit 120 may detect the timing for switching the function used in the search process based on information obtained from the search processing unit 110 during the execution of the search process. This allows the data processing unit 100 to switch the selection rule for the state variable according to the search status. 【0192】 For example, the selection control unit 120 assigns a first function to a first temperature value and a second function to a second temperature value. When the temperature value used in the search process switches from the first temperature value to the second temperature value, the selection control unit 120 switches the function used in the search process from the first function to the second function. This allows the data processing device 100 to switch to the appropriate selection rule according to the temperature value. This method of assigning a function to each temperature value can be used, for example, in the PT method, ST method, and SA method. 【0193】 Furthermore, the selection control unit 120 may switch the function used for the search process from the first function to the second function when the number of updates of the changed state variable value exceeds a threshold. This allows the data processing device 100 to select an appropriate selection rule according to the progress of the search process. Note that the function may be switched when the number of updates reaches a threshold. 【0194】 Furthermore, the selection control unit 120 may calculate sample weights, which are the weights of states represented by sets of values ​​of multiple state variables obtained in the search process, based on the first function. Based on these sample weights, the selection control unit 120 may detect the timing to switch the function used in the search process from the first function to the second function. This allows the data processing device 100 to switch to an appropriate selection rule according to the search situation. For example, if the data processing device 100 determines, based on a comparison of the sample weights and thresholds, that the current selection rule for the state variables has a low probability of transitioning to a better state, it can switch the selection rule by switching functions to encourage a transition to a better state. 【0195】 Furthermore, if the selection control unit 120 fails to update the best value of the evaluation function and the number of updates to the value of the changed state variable exceeds a threshold, it may switch the function used for the search process from the first function to the second function. This allows the data processing device 100 to switch the selection rule if the current selection rule for the state variable does not show improvement in the solution, thereby promoting a transition to a better state. The best value is the minimum value when minimizing the value of the evaluation function. The function may be switched when the number of updates reaches a threshold. 【0196】 Furthermore, the selection control unit 120 may switch the function used in the search process from the first function to the second function if all the changes in the evaluation function's value for updating each of the multiple state variables indicate a deterioration in the evaluation function's value. For example, when minimizing the value of the evaluation function, the selection control unit 120 may switch the function used in the search process from the first function to the second function if all the changes in the evaluation function's value are positive. 【0197】 This allows the data processing device 100 to switch the selection rule for state variables by switching a function (balancing function) when it determines that it has fallen into a local optimum. As a result, the data processing device 100 can attempt to escape from the local optimum and promote a transition to a better state. 【0198】 Furthermore, the search processing unit 110 selects a change state variable whose value to update based on the first or second function, the temperature value, and the random values ​​corresponding to each of the multiple state variables. This allows the data processing unit 100 to appropriately select the state variable whose value to update. 【0199】 Furthermore, the data processing device 100 may perform the following operations. The search processing device 110 performs the search operation in parallel for multiple replicas. In the search operation, the first and second operations are repeatedly performed. Each of the multiple replicas represents the values ​​of multiple state variables. The first operation is the process of selecting a change state variable from multiple state variables based on the amount of change in the evaluation function value when updating the values ​​of each of the multiple state variables included in the evaluation function, and the first function which is a function that indicates the selection criteria for the change state variable according to the amount of change. The second operation is the process of updating the value of the change state variable selected in the first operation. The selection control device 120 sets the first function as the function used for the search operation in the first replica among the multiple replicas. The selection control device 120 sets a second function, which is different from the first function, as the function used for the search operation in the second replica among the multiple replicas. 【0200】 This allows the data processing device 100 to improve its computational efficiency. The selection control unit 120 does not need to change the function (balancing function) set for each replica until the search process is completed, or it may switch to a function corresponding to a change in the temperature value set for each replica. 【0201】 Furthermore, the search processing unit 110 and the selection control unit 120 may be implemented by the same processor, or they may be implemented by different processors. For example, both the search processing unit 110 and the selection control unit 120 may be implemented by processor 101. Alternatively, both the search processing unit 110 and the selection control unit 120 may be implemented by processor 108a. Alternatively, the search processing unit 110 may be implemented by processor 108a and the selection control unit 120 may be implemented by processor 101. Also, the selector 130 may be implemented by processor 108a or by processor 101. 【0202】 The information processing in the first embodiment can be achieved by having the control unit 12 execute a program. The information processing in the second embodiment can be achieved by having the processor 101 execute a program. The program can be recorded on a computer-readable recording medium 53. 【0203】 For example, a program can be distributed by distributing a recording medium 53 on which the program is stored. Alternatively, the program may be stored on another computer and distributed via a network. A computer may, for example, store (install) a program stored on the recording medium 53 or a program received from another computer into a storage device such as RAM 102 or HDD 103, and then read and execute the program from that storage device. [Explanation of Symbols] 【0204】 10 Data Processing Devices 11 Exploration Department 12 Control Unit 13 Storage section

Claims

[Claim 1] A search unit that repeatedly performs a search process consisting of a first process of selecting a change state variable from a plurality of state variables based on the amount of change in the value of the evaluation function and a first function which is a function that indicates the amount of change in the value of the evaluation function when updating the value of each of the plurality of state variables included in the evaluation function, and a second process of updating the value of the selected change state variable. A control unit that switches the function used in the search process by the search unit to a second function different from the first function, A data processing device having [Claim 2] The function weights the state transitions resulting from updating the value of the changed state variable based on the amount of change. The control unit controls the selection probability of each of the multiple state variables with respect to the amount of change when the search unit updates the value of the changed state variable by switching the function. The data processing device according to claim 1. [Claim 3] The control unit uses the first function and the second function as follows: The function is defined such that the weights of all state transitions in which the change amount indicates an improvement in the value of the evaluation function are set to 1, and the weights of state transitions in which the change amount indicates a deterioration in the value of the evaluation function are set to less than 1, and the larger the absolute value of the change amount, the smaller the value. The function is such that the weights of all state transitions in which the amount of change indicates a deterioration in the value of the evaluation function are set to 1, and the weights of state transitions in which the amount of change indicates an improvement in the value of the evaluation function are set to be greater than 1, and the greater the absolute value of the amount of change, The greater the degree of improvement in the value of the evaluation function based on the amount of change, the larger the weight of the state transition corresponding to the amount of change in the function, Select one of the above functions, including The data processing device according to claim 2. [Claim 4] The control unit detects the timing of switching the function based on the information obtained from the search unit during the execution of the search process. The data processing device according to claim 1. [Claim 5] The control unit, Assign the first function to the first temperature value, and assign the second function to the second temperature value. When the temperature value used in the search process switches from the first temperature value to the second temperature value, the function used in the search process is switched from the first function to the second function. The data processing device according to claim 1. [Claim 6] When the number of updates to the value of the changed state variable exceeds a threshold, the control unit switches the function used in the search process from the first function to the second function. The data processing device according to claim 1. [Claim 7] The control unit, A sample weight, which is the weight of a state represented by a set of values ​​of the plurality of state variables obtained in the search process, is calculated based on the first function, and the timing to switch the function used in the search process from the first function to the second function is detected based on the sample weight. The data processing device according to claim 1. [Claim 8] The control unit, If the number of updates to the value of the modified state variable exceeds a threshold while the best value of the evaluation function remains unchanged, the function used in the search process is switched from the first function to the second function. The data processing device according to claim 1. [Claim 9] The control unit, If all the changes in the value of the evaluation function for updating each of the values ​​of the plurality of state variables indicate a deterioration in the value of the evaluation function, the function used in the search process is switched from the first function to the second function. The data processing device according to claim 1. [Claim 10] The search unit selects the change state variable from the plurality of state variables based on the first function or the second function, the temperature value, and the random value corresponding to each of the plurality of state variables. The data processing device according to claim 1. [Claim 11] The data processing device A search process is executed which repeatedly performs the following steps: a first process of selecting a changeable state variable from the multiple state variables based on the amount of change in the value of the evaluation function and a first function which is a function that indicates the selection criteria for the changeable state variable according to the amount of change when updating the value of each of the multiple state variables included in the evaluation function; and a second process of updating the value of the selected changeable state variable. The function used in the search process is switched to a second function that is different from the first function. Data processing method. [Claim 12] On the computer, A search process is executed which repeatedly performs the following steps: a first process of selecting a changeable state variable from the multiple state variables based on the amount of change in the value of the evaluation function and a first function which is a function that indicates the selection criteria for the changeable state variable according to the amount of change when updating the value of each of the multiple state variables included in the evaluation function; and a second process of updating the value of the selected changeable state variable. The function used in the search process is switched to a second function that is different from the first function. A program that executes a process. [Claim 13] A search unit that repeatedly performs a search process for multiple replicas, each of which represents the values ​​of the multiple state variables, in parallel: a first process that selects a changeable state variable from the multiple state variables based on the amount of change in the evaluation function value and a function that indicates the selection criteria for the changeable state variable according to the amount of change when updating the values ​​of each of the multiple state variables included in the evaluation function; and a second process that updates the value of the selected changeable state variable. A control unit sets a first function as the function used in the search process in the first replica among the plurality of replicas, and sets a second function different from the first function as the function used in the search process in the second replica among the plurality of replicas, A data processing device having