Optimization apparatus, optimization method, and optimization program

The optimization device dynamically adjusts correction values for state variables to balance bit flipping, addressing the bias in conventional methods and enhancing the efficiency of combinatorial problem solving by reducing the number of trials needed to find optimal solutions.

JP7896323B2Active Publication Date: 2026-07-29FUJITSU LTD
View PDF 4 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
FUJITSU LTD
Filing Date
2022-04-04
Publication Date
2026-07-29

AI Technical Summary

Technical Problem

Conventional optimization methods for combinatorial problems using the Ising model and Markov chain Monte Carlo method often result in biased search towards certain subspaces of the state space, reducing efficiency and increasing search time due to local minima trapping and uneven bit flipping.

Method used

An optimization device and method that includes a state-holding unit, calculation unit, and update unit to dynamically adjust correction values for state variables based on their change frequency, using weighted probabilities to ensure balanced flipping of bits, thereby avoiding subspace bias and enhancing search efficiency.

Benefits of technology

The solution enables efficient and unbiased exploration of the state space, reducing the number of trials required to find the optimal solution by ensuring balanced flipping of state variables, thus improving search efficiency and reducing computational complexity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007896323000014
    Figure 0007896323000014
  • Figure 0007896323000015
    Figure 0007896323000015
  • Figure 0007896323000016
    Figure 0007896323000016
Patent Text Reader

Abstract

To efficiently search for an optimal solution.SOLUTION: An optimization device includes a state holding unit, a calculation unit, and an updating unit. The state holding unit holds each of values of a plurality of state variables included in an evaluation function. The calculation unit calculates change values of the evaluation function when any one of the values of the plurality of state variables changes with a probability based on a weight value of each of the plurality of state variables, and calculates evaluation values that evaluate which state transition to accept among the plurality of state variables, on the basis of the calculated change values and correction values that correspond to susceptibility to change in the state variables whose values have been changed. The updating unit changes one of the held values of the state variables, on the basis of the calculated evaluation values.SELECTED DRAWING: Figure 2A
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] Embodiments of the present invention relate to an optimization apparatus, an optimization method, and an optimization program. [Background technology]

[0002] One method for solving combinatorial optimization problems involves converting the problem into an Ising model representing the spin behavior of a magnetic material, and then using the Markov chain Monte Carlo method to transition the state of the Ising model to a lower energy state. Hereafter, the Markov chain Monte Carlo method will be abbreviated as MCMC (Markov-Chain Monte Carlo) method. The state of the Ising model can be represented by a combination of values ​​of multiple state variables, and when there are N state variables, x = (x1, x2, ..., x N ) can be expressed as follows. Each state variable can be a binary variable that takes a value of 0 or 1, or a spin variable that takes a value of ±1.

[0003] The Ising-type energy function E(x), which represents the energy of the Ising model, is defined, for example, by the following equation (1).

[0004]

number

[0005] The first term on the right-hand side is the product of the values ​​(0 or 1) of two state variables and their weight values ​​(representing the strength of the interaction between the two state variables) for all possible combinations of state variables in the Ising model, without any omissions or overlaps. i In this case, the identification information (hereinafter referred to as the index value) is the state variable i, x j This is a state variable with index value = j, and W ij This is a weight value indicating the magnitude of the interaction between state variables with index values ​​i and j. The range of index value i is 1, 2, ..., N when there are N state variables.

[0006] The two terms on the right side are the sum of the products of the bias coefficient and the state variable for each index value. b i represents the bias coefficient for the index value i.

[0007] Also, when the state variable x i changes to x’ i a spin flip (change in the value of the state variable), that is, the energy change ΔE associated with a 1-bit flip is i represented by the following equation (2). Note that equation (2) is correct for a 1-bit flip, and the contents in parentheses indicate the local field (total input) of bit i. Also, for δx i it holds that δx i =x’ i -x i is true.

[0008]

Equation

[0010]

Equation

[0011] In equation (3), β is the inverse temperature (the reciprocal of the temperature value representing the temperature). State transitions with an increase in energy are also probabilistically allowed. In the normal MCMC method, the state variable is selected randomly or in the order of index values (sequentially), and based on the energy change ΔE associated with the state transition in which the value of the state variable changes, the above acceptance probability A i is used to allow that state transition. For example, in the MCMC method, the acceptance probability A<00000%is compared with a uniform random number u ∈ (0, 1), and u < A iIf the condition is met, the inversion (state transition) is allowed; otherwise, the current state is maintained (rejected). If the state transition is allowed, the value of the state variable is updated. This process is repeated a predetermined number of times.

[0012] When searching for the lowest energy state (optimal solution), for example, if β is set sufficiently large (low temperature), the low-energy state is realized with a high probability. In actual optimization problems, a large β can trap the system in a local minimum. Therefore, in the search for the optimal solution, simulated annealing (SA), which slowly lowers the temperature, or parallel tempering (PT), which exchanges states at multiple temperatures, are used in combination with MCMC to avoid being trapped in a local minimum.

[0013] In the search for such an optimal solution, local optima (∀ΔE i In cases where the value is >0 or the temperature is low (β≫1), no state change occurs (rejection), which reduces the efficiency of solution search and can make the search time-consuming. The rejection-free method (hereinafter referred to as the RF method) is known as an efficient method for searching for the optimal solution.

[0014] In the RF method, instead of randomly selecting one inverted bit, a weighted probability (P) is used as shown in equations (4) to (7) below. i Select the inverted bit based on ).

[0015]

number

[0016]

number

[0017]

number

[0018]

number

[0019] Equation (4) is the weighted probability (P) in the RF method. i The formula is as follows. In the RF method, a random number (r) is calculated according to formula (5), and the bit k that satisfies formula (6) is inverted. Alternatively, the evaluation value f is obtained using either formula (7). i The (stochastic key) is calculated in parallel for all bits, and the bit that gives the maximum or minimum value is inverted.

[0020] In this RF method, a state transition occurs in each trial, allowing for efficient state exploration. Although the RF method requires more than N times the computational complexity of a typical MCMC, implementing it in a parallel circuit (equation (7)) enables efficient exploration without sacrificing speed. [Prior art documents] [Patent Documents]

[0021] [Patent Document 1] Japanese Patent Publication No. 2010-250599 [Patent Document 2] International Publication No. 2020 / 54062 [Overview of the project] [Problems that the invention aims to solve]

[0022] However, with the conventional techniques described above, depending on the given problem, a phenomenon may be observed where only some (specific multiple) bits are flipped, while the remaining bits are hardly flipped at all. This phenomenon means that the search for the optimal solution is biased towards a certain subspace of the state space, which significantly reduces the search efficiency.

[0023] One aspect of this project is to provide an optimization device, optimization method, and optimization program that enable the efficient search for the optimal solution. [Means for solving the problem]

[0024] In one design, the optimization device comprises a state-holding unit, a calculation unit, and an update unit. The state-holding unit holds the values ​​of multiple state variables included in the evaluation function. The calculation unit calculates the change in the evaluation function when any of the multiple state variables change, based on the probability of each state variable's weight value. Based on this change and a correction value corresponding to the ease of change in the state variable whose value has changed, the calculation unit calculates an evaluation value that evaluates which state transition among the multiple state variables to accept. The update unit changes the value of one of the multiple state variables held based on the calculated evaluation value. [Effects of the Invention]

[0025] It enables efficient searching for the optimal solution. [Brief explanation of the drawing]

[0026] [Figure 1] Figure 1 is a block diagram showing an example configuration of an optimization device according to an embodiment. [Figure 2A] Figure 2A is a block diagram showing an example of the calculation unit of an optimization device according to an embodiment. [Figure 2B] Figure 2B is a block diagram showing an example of the calculation unit of the optimization device according to the embodiment. [Figure 3] Figure 3 is a block diagram showing an example of a selector for the optimization device according to the embodiment. [Figure 4A] Figure 4A is a flowchart showing an example of the operation of the optimization device according to the embodiment. [Figure 4B] Figure 4B is a flowchart showing an example of the operation of the optimization device according to the embodiment. [Figure 5A] Figure 5A is an explanatory diagram illustrating an example of a reversal rate. [Figure 5B] Figure 5B is an explanatory diagram illustrating an example of a reversal rate. [Figure 5C] Figure 5C is an explanatory diagram illustrating an example of a reversal rate. [Figure 6]Figure 6 is an explanatory diagram illustrating the relationship between the number of trials and the probability of obtaining the lowest energy state. [Figure 7] Figure 7 is a block diagram showing a modified example of the optimization apparatus according to the embodiment. [Figure 8] Figure 8 is an explanatory diagram illustrating an example of a computer configuration. [Modes for carrying out the invention]

[0027] The following describes an optimization apparatus, optimization method, and optimization program according to an embodiment, with reference to the drawings. Components having the same function in the embodiment are denoted by the same reference numerals, and redundant descriptions are omitted. The optimization apparatus, optimization method, and optimization program described in the following embodiment are merely examples and do not limit the embodiments. Furthermore, the following embodiments may be combined as appropriate within a non-contradictory range.

[0028] Figure 1 is a block diagram showing an example configuration of an optimization device according to an embodiment. As shown in Figure 1, the optimization device 1 includes a coefficient holding unit 10, a random number generator 20, a replica controller 30, and a replica update unit 40. This optimization device 1 is an example of an optimization device that searches for a state at a certain temperature parameter (β) when searching for a solution using a replica of a certain state (a spin bit sequence with different temperature parameters) in simulated annealing using the Ising model. The optimization device 1 may use dedicated hardware such as an integrated circuit or FPGA (Field-Programmable Gate Array), or it may use a PC (Personal Computer) with a GPU (Graphics Processing Unit) or CPU (Central Processing Unit).

[0029] In simulated annealing using the Ising model, only one of the N state variables changes with each state transition. Therefore, in the following explanation, the index value (i) that identifies each state transition will be assumed to be equal to the index value of one state variable. However, this is not limited to the form in which the index value of a state transition and the index value of a state transition that changes with the state transition are the same.

[0030] First, let's explain the overview of the optimization device 1. In the replica, the optimization device 1 evaluates the value f using the RF method. i The (stochastic key) is calculated in parallel for all bits, and the evaluation value f is obtained. i The solution is searched by changing (inverting) the state variable (bit k) that has the maximum or minimum value. Here, the optimization device 1 evaluates whether to change the state variable or not for each state variable f i This is a correction value (η) corresponding to the ease of change in the state variable. i This is adjusted by [the specified method]. This allows the optimization device 1 to suppress variations in the frequency of changes in state variables and prevent the search for the optimal solution from being biased towards a subspace of the state space.

[0031] For example, one of the transitioning state variables is randomly proposed with a probability q. i If we choose, the transition probabilities (P) of each state variable in the Metropolis method are i ) is P i =Q i A i =q i min(1, exp(-βΔE) i )

[0032] In the optimization device 1, the inverted bit (the state variable to be changed) is given by the weighted probability (P') shown in the following equation (8). i The selection is made based on the following. For example, calculate the random number (r) shown in equation (9) and invert the bit k that satisfies equation (10).

[0033]

number

[0034]

number

[0035]

number

[0036] Specifically, in the optimization device 1, the replica update unit 40 evaluates whether or not to accept a state transition using the following equation (11), and the evaluation value (f i The entire bit (N bits) is calculated in parallel, and the bit that yields the smallest value is inverted.

[0037]

number

[0038] In this equation (11), the η included in the preceding term i This is a correction value corresponding to the ease of change in the state variable. The latter part is an example of a random number. In equation (11), the sum of the acceptance probability of the state transition and the random number is calculated as the evaluation value.

[0039] Here, η i Regarding this, the larger the value, the lower the probability that the state variable will invert (change). Therefore, for bits (state variables) that are prone to change, the correction value (η) i ) can be set to a large value in memory beforehand. In principle, the proposed probability q i and, η i =-log(q i The relationship )≧0 is satisfied. However, in the algorithm that searches for the minimum value using equation (11), all state variables are set to an appropriate real number α and η i →η i Adding +α does not change anything, therefore the correction value (η i ) can be any value.

[0040] Furthermore, in the optimization device 1, the replica update unit 40 dynamically adjusts the correction value (η) for each state variable while searching for a solution. i ) may be adjusted. Specifically, in the replica update unit 40, for each state variable (bit i) identified by the index value (i), the evaluation value (f i Based on the number of times it was changed by ) the correction value (η i ) will be decided.

[0041] For example, the replica update unit 40 calculates the bit inversion rate based on the number of times bit i has been changed. The inversion rate is the number of times bit i has been inverted / the number of trials in the solution search. The replica update unit 40 measures the above inversion rate for a certain number of trials and adjusts a correction value (η) until the inversion rate is within a threshold (e.g., 3 × 1 / N). i ) increases.

[0042] As an example, the replica update unit 40 1. measures the inversion rate, and 2. measures the bit with the largest inversion rate or the bit that exceeds the threshold η i Increase (η i =η i +δη), 3. Repeat steps 1 and 2 above until the maximum value of the inversion rate falls below the threshold. In the above process, if δη > 0 is sufficiently small, the inversion rate of each bit will converge below the threshold.

[0043] In addition, the replica update unit 40 may pre-group the state variables based on the values ​​of the coefficients in question, and for each group, determine the correction value within the group based on the number of times it has been changed by the evaluation value (f). For example, in equation (2) Σ j W ij +b iThe inversion rate is calculated for each variable (i), and bits with similar values ​​are grouped together. In the replica update unit 40, the inversion rate is set to (number of inversions in each group) / (number of trials × number of bits in each group), and the average inversion rate within each group is calculated. Then, in the replica update unit 40, the correction value (η) for each bit within each group is calculated by performing the same process as above based on the average inversion rate within each group. Note that when multiple independent simulations (replicas) are executed (details will be described later), the inversion rate may be calculated by averaging the same bits or groups from other replicas, and the correction value (η) may be calculated.

[0044] Furthermore, in the replica update unit 40, for each state variable (bit i) identified by the index value (i), the change in energy (ΔE) in equation (2) is calculated. i The average value of ) is calculated, and a correction value (η) is calculated based on the obtained average value. i ) may be decided.

[0045] Specifically, in the replica update unit 40, each bit changes with each trial.

number

[0046]

number

[0047] Next, the configuration of the optimization device 1 will be described. The coefficient holding unit 10 is, for example, a register or SRAM (Static Random Access Memory). The coefficient holding unit 10 holds the values ​​of multiple state variables included in the evaluation function representing energy, and outputs the values ​​of multiple state variables after a predetermined number of trials. The evaluation function is, for example, the energy function E(x) shown in equation (1).

[0048] The random number generator 20 generates random numbers to be used in the replica update unit 40. For example, the random number generator 20 generates a uniform random number r = log(-log(u)) which is greater than 0 and less than or equal to 1. i The random number generator 20 can be implemented using, for example, a Mersenne twister or an LFSR (Linear Feedback Shift Register).

[0049] The replica controller 30 sets values ​​(energy E, inverse temperature (or temperature) β) related to the replication (replica) of a certain state (spin bit sequence with different temperature parameters).

[0050] The replica update unit 40 is a processing unit that searches for a state (solution space) using replicas set by the replica controller 30. Specifically, the replica update unit 40 includes a calculation unit 41, a selector 42, and a proposed probability adjustment unit 43.

[0051] The calculation unit 41 calculates a correction value (η) corresponding to the ease of change in the state variable. i While adjusting by ), the evaluation value f is obtained using the RF method. i This is a processing unit that calculates all bits from 1 to N in parallel.

[0052] Figures 2A and 2B are block diagrams showing an example of the calculation unit of the optimization device according to the embodiment. Specifically, as shown in Figure 2A, the calculation unit 41 for each state variable (bit i) has registers 410a to 410d, adders 411a to 411c, integrators 412a and 412b, and arithmetic units 413a to 413c. Note that k indicates the index of the bit to be inverted selected by the selector 42.

[0053] Registers 410a to 410d contain the value (local field h) read from the coefficient holding unit 10 for the state variable (bit i). i state x i ), correction value (η i ), evaluation value (f i ) holds things like this.

[0054] For example, for a state variable (bit i), the value (h) read from the coefficient holding unit 10 i , x i The values ​​are held in registers 410a and 410b. Adder 411a is used with the values ​​held in register 410a i Then, the value read from the coefficient holding unit 10 is added to h i Update.

[0055] The integrator 412a uses the h held in register 410a i And x held in register 410b i The two are multiplied. The arithmetic unit 413a performs the calculation of equation (2) based on the calculation result of the integrator 412a, and ΔE i Calculate.

[0056] The arithmetic unit 413b calculates ΔE calculated by arithmetic unit 413a. i Based on this, max(0,ΔE i The integrator 412b calculates the max(0,ΔE) calculated by the arithmetic unit 413b. i ) is then integrated with β (inverse temperature).

[0057] Adder 411c is β(max(0,ΔE i The correction value (η) held in register 410c i Add ). This gives the value corresponding to the first term of equation (11).

[0058] Furthermore, the adder 411c adds the random number generated by the random number generator 20 (corresponding to the second term of equation (11)) to the value corresponding to the first term of equation (11). The calculation unit 41 performs the calculations up to the adder 411c and then f i We obtain f in this way. i This is stored in register 410d.

[0059] The adder 411b stores η in register 410c i δη notified by the proposed probability adjustment unit 43 i Add η i Update.

[0060] In Figure 2B, the change in energy (ΔE) in (2) is shown. i The average value of ) is calculated, and a correction value (η) is calculated based on the obtained average value. i Figure 2B illustrates the calculation unit 41a when determining (12). As shown in Figure 2B, the calculation unit 41a differs from the calculation unit 41a in Figure 2A in that it has an arithmetic unit 413c that performs the calculation of equation (12).

[0061] Selector 42 is the evaluation value f calculated by the calculation unit 41. i Select a state variable (bit k) that has the maximum or minimum value, and change (invert) the selected state variable.

[0062] Figure 3 is a block diagram showing an example of the selector 42 of the optimization device 1 according to the embodiment. As shown in Figure 3, the selector 42 has multiple selection circuits (selection circuits 421 to 426, etc.) arranged in multiple stages in a tree-like structure. Each selection circuit in the first stage selects and outputs the larger evaluation value (in the case of the maximum value) and its corresponding index value for two evaluation values. For example, if the evaluation value f1 with an index value of 1 (i=1) is greater than the evaluation value f2 with an index value of 2 (i=2), selection circuit 421 outputs the evaluation value f1 and its index value of 2. When selecting the minimum value, each selection circuit selects and outputs the smaller evaluation value and its corresponding index value for two evaluation values.

[0063] The selection circuits in the second and subsequent stages, similar to the first stage, select the larger of the two evaluation values ​​output by the two selection circuits in the preceding stage, and output that evaluation value along with its corresponding index value.

[0064] In this way, the selector 42 selects one of the options based on the relative magnitudes of the evaluation values ​​of each state variable, thereby determining the evaluation value f i The selector 42 selects one state variable (bit k) that has the maximum or minimum value. The selector 42 outputs the selected state variable to the coefficient holding unit 10 and changes the value of the selected state variable.

[0065] The proposal probability adjustment unit 43 sets correction values (η i ) for each state variable for the calculation unit 41. For example, the proposal probability adjustment unit 43 may read η i preset in a memory or the like and set it for the calculation unit 41 for each state variable.

[0066] Also, the proposal probability adjustment unit 43 acquires the changed (inverted) state variable (bit k) from the selector 42 and counts it as the number of inversions (c k ). Thus, correction values (η i ) for each state variable may be set based on the number of inversions counted for each state variable. That is, the proposal probability adjustment unit 43 is an example of a determination unit.

[0067] Specifically, as described above, the proposal probability adjustment unit 43 obtains the inversion rate for both the number of inversions and the number of solution trials. Next, the proposal probability adjustment unit 43 increases the correction value (δη) of each state variable based on the comparison result between the obtained inversion rate and the threshold value.

[0068] Note that the proposal probability adjustment unit 43 may count the number of inversions of state variables for each preset group based on the value of the coefficient of the problem or the like, and obtain the average inversion rate for each group. In this case, the proposal probability adjustment unit 43 increases the correction value (δη) of the state variables within each group based on the comparison result between the average inversion rate within the group and the threshold value.

[0069] FIG. 4A is a flowchart showing an operation example of the optimization device 1 according to the embodiment. As shown in FIG. 4A, when the process starts, the optimization device 1 performs an initialization process (S1).

[0070] Specifically, in the initialization process, the replica controller 30 sets parameters such as the number of repetitions (prescribed number N loop ) for solution seeking and the inverse temperature (β) for the replica update unit 40. Also, the proposal probability adjustment unit 43 reads η i preset in a memory or the like and sets it for the calculation unit 41, and the number of inversions (c kReset

[0071] Next, the calculation unit 41 calculates evaluation values (f i ) for all bits (N bits) in parallel to evaluate whether to accept the state transition according to Equation (11), and performs a process of searching for the bit (index k) that becomes the minimum value (S2).

[0072] Specifically, the calculation unit 41 reads the values (local field h i , state x i ) corresponding to the index from the coefficient holding unit 10 (S2a), and calculates the evaluation values f1 to f N for all bits (N bits) in parallel (S2b). Next, the selector 42 compares the evaluation values f1 to f N calculated by the calculation unit 41, and searches for the index k that becomes the minimum value (S2c).

[0073] Next, the selector 42 updates the values stored in the coefficient holding unit, such as the state x k , local field i , and energy E corresponding to the index k that becomes the minimum value. Also, the proposal probability adjustment unit 43 increments and updates the inversion count counter (c k ) corresponding to the index k (S3).

[0074] Next, the replica controller 30 determines whether the state variables have been updated a specified number of times N loop (S4). If the determination is negative (S4: No), the process returns to S2. As a result, in the optimization device 1, the search for the solution is performed until the specified number of times N loop is reached.

[0075] If the determination in S4 is positive (S4: Yes), the proposal probability adjustment unit 43 calculates the inversion rate (r i ) based on the inversion count (c i ) for each state variable (S5), and ends the process. The calculation of this inversion rate (r i ) is, for example, r i = c i / N loopAnd so on. If the state variables are grouped, the proposed probability adjustment unit 43 may count the number of reversals of the state variables for each group and calculate the average reversal rate for each group.

[0076] Figure 4B is a flowchart showing an example of the operation of the optimization device 1 according to the embodiment, and more specifically, while searching for a solution, it dynamically calculates correction values ​​for each state variable (η i This is an example of how to adjust the settings.

[0077] As shown in Figure 4B, when processing starts, the optimization device 1 performs the initialization process described above (S1). Then, the optimization device 1 executes the processes described above from S2 to S5, and the inversion rate (r i The RF method is executed, including the calculation of ).

[0078] Next, the proposed probability adjustment unit 43 adjusts the inversion rate (r) of each state variable. i Based on the above, the correction values ​​(η) for each state variable are used. i Set (adjust) (S6).

[0079] For example, the proposed probability adjustment unit 43 uses the following correction value (η) for each state variable as a method to suppress the maximum value of the reversal rate. i Set ). ·r i For bit k where the value is maximized, η k →η k Let +δη • δη is a predetermined value that is decided in advance. • It may be applied not only to the maximum value but also to bits above a certain threshold.

[0080] Furthermore, the proposed probability adjustment unit 43 uses the following correction values ​​(η) for each state variable as a method of applying a slope with the reversal rate. i Set ). For each state variable, for example, Exp. i →η i +δη·r i Let's assume that. Instead of multiplying by δη, use a suitable monotonically increasing function r iYou can convert it.

[0081] Furthermore, the proposed probability adjustment unit 43 groups the state variables and corrects the value (η i If you want to set it as follows: • The reversal rate is the average within the group, η i Use the same value within the group. • When using multiple replicas, you can add up the inversion rates of the same index across all replicas and average them.

[0082] Furthermore, the proposed probability adjustment unit 43 adjusts all correction values ​​(η i ) is η i If >0, the smallest correction value may be subtracted from the total. Thus, the proposed probability adjustment unit 43 determines η i This can prevent it from increasing without limit.

[0083] Next, the replica controller 30 checks the state variable a specified number of times N loop The system determines whether the update was successful (S7). If the result is negative (S7: No), the process returns to S2. If the result is positive (S7: Yes), the replica controller 30 terminates the process.

[0084] Figures 5A to 5C are explanatory diagrams illustrating an example of the flip rate. Specifically, in Figures 5A to 5C, the horizontal axis shows the index values ​​of 256 state variables, and the vertical axis shows the flip rate for each index value. Here, the parallel lines in the figures represent the flip rate of 1 / N when all bits are equivalent. Figure 5A illustrates the case without correction, without using a correction value (η). Figure 5B illustrates the case where a common correction value (η=5) is used to correct a group of state variables with index values ​​of 161 or higher. Figure 5C illustrates the case where index values ​​less than 161 are further divided into four groups and corrected using the correction value (η) for each group.

[0085] As shown in Figure 5A, without correction, the reversal rate in the latter half (index ≥ 161) is 5 to 10 times higher than in the first half. In other words, the search for the optimal solution becomes biased towards a certain subspace of the state space.

[0086] In Figure 5B, the reversal rate in the latter half (index ≥ 161) is closer to the reversal rate in the first half compared to Figure 5A. Furthermore, in Figure 5C, the bias in the reversal rate is further improved, and the bias in the reversal rate is smaller across all indices.

[0087] Figure 6 is an explanatory diagram illustrating the relationship between the number of trials and the probability of obtaining the lowest energy state. In Figure 6, the horizontal axis represents the number of trials to obtain a solution (ITS), and the vertical axis represents the cumulative empirical distribution (ECDF) of the number of trials to obtain a solution after repeating the experiment multiple times.

[0088] Furthermore, graph G1 shows the calculation results under the same conditions as Figure 5A (no correction). Graph G2 shows the calculation results under the same conditions as Figure 5B (the same correction value (η=5) is used to correct the group of state variables with index values ​​of 161 or higher). Graph G3 shows the calculation results under the same conditions as Figure 5C (the index values ​​less than 161 are further divided into four groups and corrected using the correction value (η) for each group).

[0089] As shown in Figure 6, the corrected graphs G2 and G3 yield solutions faster (with fewer trials) than the uncorrected graph G1. For example, comparing graphs G1, G2, and G3 at an ECDF of 0.50 (essentially a 50% success rate), the number of trials required to find a solution is reduced to 1 / 10 on average.

[0090] Figure 7 is a block diagram showing a modified example of the optimization apparatus according to the embodiment. Specifically, Figure 7 shows an example configuration of the optimization apparatus 1a that uses Parallel Tempering (PT, also called the exchange Monte Carlo method).

[0091] As shown in Figure 7, the optimization device 1a using PT simultaneously performs the MCMC method using multiple (1 to M) replica update units 40. The replica controller 30 compares the state energy of each replica update unit 40 at each given number of trials and performs an operation to exchange the states (or temperatures) for two temperatures with an appropriate probability.

[0092] Thus, in the optimization device 1a using PT, by applying the aforementioned replica update unit 40, all bits are flipped equally even at the lowest maximum temperature, reducing the number of replicas and enabling efficient searching. The replica controller 30 also lowers the temperature (increases β) according to a predetermined schedule after a certain number of trials. In this case, the multiple replica update units 40 perform searches independently and simply work to increase the success rate of finding a solution.

[0093] As described above, the optimization device 1 maintains the values ​​of multiple state variables included in the evaluation function representing energy. The optimization device 1 also calculates the change in energy (ΔE) when any of the values ​​of the multiple state variables changes, based on the probability derived from the weight values ​​of each state variable. Then, the optimization device 1 calculates an evaluation value (f) that evaluates whether or not to accept a state transition, based on the calculated change value and a correction value (η) corresponding to the ease of change of the changed state variable. The optimization device 1 changes the value of one of the multiple state variables that it has maintained based on the calculated evaluation value (f).

[0094] As a result, in the optimization device 1, only some state variables change while the remaining state variables hardly change, preventing the search for the optimal solution from being biased towards a subspace of the state space. In this way, the optimization device 1 can achieve efficient solution searching that is not biased towards a subspace of the state space.

[0095] Furthermore, the optimization device 1 determines a correction value for each state variable based on the number of times it has been changed by the evaluation value (f). This allows the optimization device 1 to use a correction value that corresponds to the actual changes in the state variables during the search for the optimal solution.

[0096] Furthermore, the optimization device 1 determines a correction value for each group of state variables based on the number of times the evaluation value (f) has been changed. For example, state variables can be grouped together based on the coefficients of the problem (Ising model), etc., if they have similar ease of change. Therefore, by determining the correction value for each group, the optimization device 1 can determine the correction value more efficiently compared to determining it for each state variable.

[0097] Furthermore, the optimization device 1 determines a correction value based on the average of the energy changes when the evaluation value (f) is changed. This allows the optimization device 1 to determine a correction value for each state variable so that, for example, the average of the energy changes is approximately the same.

[0098] It should be noted that the components of each illustrated device do not necessarily have to be physically configured as shown. In other words, the specific forms of distribution and integration of each device are not limited to those shown, and all or part of them can be functionally or physically distributed and integrated in any unit according to various loads and usage conditions.

[0099] Furthermore, the various processing functions of the coefficient holding unit 10, random number generator 20, replica controller 30, and replica update unit 40 of the optimization device 1 may be implemented not only on a dedicated integrated circuit or FPGA, but also executed in whole or in part on a CPU (or a microcomputer such as an MPU or MCU (Micro Controller Unit)). It goes without saying that the various processing functions may also be executed in whole or in part on a program analyzed and executed by a CPU (or a microcomputer such as an MPU or MCU), or on wired logic hardware. Additionally, the various processing functions performed by the optimization device 1 may be executed collaboratively by multiple computers using cloud computing.

[0100] Incidentally, the various processes described in the above embodiment can be realized by executing a pre-prepared program on a computer. Therefore, below we will describe an example of a computer configuration (hardware) that executes a program having the same functions as the above embodiment. Figure 8 is an explanatory diagram illustrating an example of a computer configuration.

[0101] As shown in Figure 8, the computer 200 includes a CPU 201 that performs various calculations, an input device 202 that accepts data input, a monitor 203, and a speaker 204. The computer 200 also includes a media reader 205 that reads programs and the like from a storage medium, an interface device 206 for connecting to various devices, and a communication device 207 for communicating with external devices via wired or wireless connections. The optimization device 1 includes a RAM 208 for temporarily storing various information and a hard disk drive 209. The various parts (201 to 209) within the computer 200 are connected to a bus 210.

[0102] The hard disk drive 209 stores a program 211 for executing various processes in the functional configuration described in the above embodiment (for example, the coefficient holding unit 10, the random number generator 20, the replica controller 30, and the replica update unit 40). The hard disk drive 209 also stores various data 212 that the program 211 refers to. The input device 202 receives, for example, operation information from the operator. The monitor 203 displays, for example, various screens operated by the operator. The interface device 206 is connected to, for example, a printer. The communication device 207 is connected to a communication network such as a LAN (Local Area Network) and exchanges various information with external devices via the communication network.

[0103] The CPU 201 reads the program 211 stored in the hard disk drive 209, loads it into the RAM 208, and executes it, thereby performing various processes related to the above-mentioned functional configuration (for example, the coefficient holding unit 10, the random number generator 20, the replica controller 30, and the replica update unit 40). Note that the program 211 does not necessarily have to be stored in the hard disk drive 209. For example, the computer 200 may read and execute the program 211 stored in a storage medium that it can read. Examples of storage media that the computer 200 can read include portable recording media such as CD-ROMs, DVD discs, USB (Universal Serial Bus) memory, semiconductor memory such as flash memory, and hard disk drives. Alternatively, the program 211 may be stored in a device connected to a public network, the internet, a LAN, etc., and the computer 200 may read and execute the program 211 from there.

[0104] The following additional information is disclosed regarding the embodiments described above.

[0105] (Note 1) A state holding unit that holds the values ​​of multiple state variables included in the evaluation function, A calculation unit calculates the change in the evaluation function when any of the values ​​of the multiple state variables changes, based on the probability of the respective weight values ​​of the multiple state variables, and calculates an evaluation value that evaluates which of the multiple state variables to accept based on the change in value and a correction value corresponding to the ease of change in the state variable whose value has changed. An update unit that changes the value of one of the multiple state variables held based on the calculated evaluation value, An optimization device characterized by having the following features.

[0106] (Note 2) The calculation unit calculates the change in the evaluation function in parallel for the multiple state variables, and calculates the evaluation value in parallel for the multiple state variables. The optimization apparatus described in Appendix 1, characterized by the features described herein.

[0107] (Note 3) The system further includes a selection unit that selects a first state variable from the plurality of state variables based on the evaluation value, The update unit changes the value of the first state variable selected by the selection unit. The optimization apparatus described in Appendix 2, characterized by the features described herein.

[0108] (Note 4) The system further includes a determination unit that determines the correction value for each of the multiple state variables based on the number of times the update unit has changed it. The optimization apparatus described in Appendix 1, characterized by the features described herein.

[0109] (Note 5) The determination unit determines the correction value within each group of the plurality of state variables based on the number of times the update unit has changed it. The optimization apparatus described in Appendix 4, characterized by the features described herein.

[0110] (Note 6) The determination unit determines the correction value based on the average of the change values ​​when the update unit makes changes. The optimization apparatus described in Appendix 4, characterized by the features described herein.

[0111] (Note 7) The values ​​of the multiple state variables included in the evaluation function are each stored, The change in the evaluation function is calculated based on the probability of each of the weight values ​​of the plurality of state variables changing, and an evaluation value is calculated to evaluate which of the plurality of state variables will be accepted based on the change in value and a correction value corresponding to the ease of change in the state variable whose value has changed. Based on the calculated evaluation value, the value of one of the multiple state variables held is changed. An optimization method characterized by having a computer perform the processing.

[0112] (Note 8) The calculation process involves calculating the change value of the evaluation function in parallel for the multiple state variables, and calculating the evaluation value in parallel for the multiple state variables. The optimization method described in Appendix 7, characterized by the features described herein.

[0113] (Note 9) Based on the evaluation value, the computer further performs the process of selecting a first state variable to be included in the plurality of state variables. The process of changing the war record involves changing the value of the first state variable selected by the selection process. The optimization method described in Appendix 8, characterized by the features described herein.

[0114] (Note 10) For each of the multiple state variables, the computer further executes a process to determine the correction value based on the number of times the process to be changed has changed it. The optimization method described in Appendix 9, characterized by the features described herein.

[0115] (Note 11) The process for determining the above-mentioned state variables determines the correction value within the group based on the number of times the process for changing the state variables has changed it, for each group of the plurality of state variables. The optimization method described in Appendix 10, characterized by the features described herein.

[0116] (Note 12) The process to determine the above-mentioned correction value is determined based on the average of the changed values ​​when the process to change the above-mentioned change is performed. The optimization method described in Appendix 10, characterized by the features described herein.

[0117] (Note 13) The values ​​of the multiple state variables included in the evaluation function are each stored, The change in the evaluation function is calculated based on the probability of each of the weight values ​​of the plurality of state variables changing, and an evaluation value is calculated to evaluate which of the plurality of state variables will be accepted based on the change in value and a correction value corresponding to the ease of change in the state variable whose value has changed. Based on the calculated evaluation value, the value of one of the multiple state variables held is changed. An optimization program characterized by having a computer perform the processing.

[0118] (Note 14) The calculation process involves calculating the change value of the evaluation function in parallel for the multiple state variables, and calculating the evaluation value in parallel for the multiple state variables. The optimization program described in Appendix 13, characterized by the features described herein.

[0119] (Note 15) Based on the evaluation value, the computer is further instructed to perform the process of selecting a first state variable to be included in the plurality of state variables. The process of changing the war record involves changing the value of the first state variable selected by the selection process. The optimization program described in Appendix 14, characterized by the features described herein.

[0120] (Note 16) For each of the multiple state variables, the computer is further instructed to perform a process to determine the correction value based on the number of times the process to be changed has made a change. The optimization program described in Appendix 13, characterized by the features described herein.

[0121] (Note 17) The process of determining the above determines the correction value within each group of the multiple state variables based on the number of times the process of changing the variables has changed them. The optimization program described in Appendix 16, characterized by the features described herein.

[0122] (Note 18) The process to determine the above-mentioned correction value is determined based on the average of the changed values ​​when the process to change the above-mentioned change is performed. The optimal program described in Appendix 16, characterized by the features described herein. [Explanation of Symbols]

[0123] 1…Optimization device 1a...Optimization device 10...Coefficient holding part 20... Random number generator 30… Replica controller 40…Replica Update Department 41...Calculation section 41a...Calculation section 42...Selector 43…Proposal Probability Adjustment Department 200... Computer 201…CPU 202...Input device 203…Monitor 204...Speaker 205... Media reading device 206…Interface device 207...Communication equipment 208...RAM 209…Hard disk drive 210... Bus 211…Program 212... Various data 410a~410d... Registers 411a~411c... Adder 412a, 412b... Calculators 413a~413c...Arithmetic unit 421~426…Selection Circuit G1~G3...Graph

Claims

1. A state holding unit that holds the values ​​of multiple state variables included in the evaluation function, A proposed probability adjustment unit calculates the reversal rate for each of the aforementioned multiple state variables based on the number of reversals and the number of trials for the solution. A calculation unit calculates the change in the evaluation function when any of the values ​​of the multiple state variables changes, based on the probability of the respective weight values ​​of the multiple state variables, and calculates an evaluation value that evaluates which of the multiple state variables to accept based on the change in value and a correction value corresponding to the reversal rate. An update unit that changes the value of one of the multiple state variables held based on the calculated evaluation value, An optimization device characterized by having the following features.

2. The calculation unit calculates the change in the evaluation function in parallel for the multiple state variables, and calculates the evaluation value in parallel for the multiple state variables. The optimization apparatus according to feature 1.

3. The system further includes a selection unit that selects a first state variable from the plurality of state variables based on the evaluation value, The update unit changes the value of the first state variable selected by the selection unit. The optimization apparatus according to feature 2.

4. For each group of the plurality of state variables, the system further includes a determination unit that determines the correction value within the group based on the number of times the update unit has changed it. The optimization apparatus according to feature 1.

5. The system further includes a determination unit that determines the correction value based on the average of the change values ​​when the update unit makes changes. The optimization apparatus according to feature 1.

6. The evaluation function stores the values ​​of each of the multiple state variables included in it. The change in the evaluation function is calculated based on the probability of each of the weight values ​​of the plurality of state variables changing, and an evaluation value is calculated to evaluate which of the plurality of state variables will be accepted based on the change in value and a correction value corresponding to the ease of change in the state variable whose value has changed. Based on the calculated evaluation value, the value of one of the multiple state variables held is changed. An optimization method characterized by having a computer perform the processing.

7. The evaluation function stores the values ​​of each of the multiple state variables included in it. For each of the aforementioned state variables, the reversal rate is calculated based on the number of reversals and the number of trials for the solution. The change in the evaluation function is calculated based on the probability of each of the weight values ​​of the multiple state variables, when any of the values ​​of the multiple state variables changes, and an evaluation value is calculated based on this change and a correction value corresponding to the reversal rate to evaluate which of the multiple state variables will be accepted. Based on the calculated evaluation value, the value of one of the multiple state variables held is changed. An optimization program characterized by having a computer perform the processing.