Optimization apparatus, optimization method, and computer-readable storage medium

By dynamically adjusting the flipping probability of state variables through an optimization device, the problem of low search efficiency in combinatorial optimization problems is solved, and efficient search for the optimal solution is achieved.

CN116894491BActive Publication Date: 2026-05-29FUJITSU LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
FUJITSU LTD
Filing Date
2023-01-04
Publication Date
2026-05-29

AI Technical Summary

Technical Problem

In existing technologies, during the search process of combinatorial optimization problems, some bits are frequently flipped while others are hardly flipped, resulting in a significant deterioration in search efficiency and a bias towards a portion of the state space's subspace.

Method used

By optimizing the device, the weight values ​​and sensitivity correction values ​​of the state variables in the evaluation function are used to dynamically adjust the flipping probability of the state variables, suppress the change in the flipping frequency, and limit the search to a part of the subspace of the state space.

Benefits of technology

It achieves efficient search for the optimal solution, reduces the number of iterations, and improves search efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116894491B_ABST
    Figure CN116894491B_ABST
Patent Text Reader

Abstract

The present application relates to an optimization device, an optimization method, and a computer-readable storage medium. The optimization device includes a state saving unit that saves each of values of a plurality of state variables included in an evaluation function; a calculation unit that, 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, calculates a change value of the evaluation function, and calculates an evaluation value for evaluating which state transition is accepted in the plurality of state variables based on the calculated change value and a correction value corresponding to sensitivity to a change in the state variable whose value has changed; and an update unit that changes one of the saved values of any one of the plurality of state variables based on the calculated evaluation value.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The implementation methods discussed herein relate to optimization apparatus, optimization methods, and non-transitory computer-readable storage media for storing optimization programs. Background Technology

[0002] As a method for solving combinatorial optimization problems, there exists a way to transform the combinatorial optimization problem into an Ising model representing the spin behavior of a magnetic material, and then use the Markov chain Monte Carlo method to transform the state of the Ising model into a low-energy state. In the following text, the Markov chain Monte Carlo method will be abbreviated as the MCMC method. The state of the Ising model can be represented by a combination of the values ​​of multiple state variables, and when the number of state variables is N, the state of the Ising model can be represented, for example, as x = (x1, x2, ..., x...). N 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) representing the energy of the Ising model is defined, for example, by the following formula (1).

[0004] [Mathematical Formula 1]

[0005] E(x)=-∑ <i,j> W ij x i x j -∑ i b i x i …(1)

[0006] The first term on the right is used to combine the products of the values ​​(0 or 1) of two state variables with their weights (representing the strength of the correlation between the two state variables) for all combinations of state variables in the Ising model, without omissions or repetitions. Reference symbol x i The reference symbol x represents a state variable with identification information i (hereinafter referred to as the index value). j This represents a state variable with an index value equal to j, and the reference symbol W. ij This represents a weight value indicating the magnitude of the correlation between state variables with index values ​​equal to i and j. Furthermore, when the number of state variables is N, the range of the index value i is 1, 2, ..., N.

[0007] The second term on the right is used to obtain the sum of the products of the bias coefficient and the state variable for each index value. (Reference symbol b) i Indicates the bias coefficient for index value i.

[0008] Additionally, when the state variable x i Change to become x' i At that time, a spin flip (a change in the value of a state variable) occurs—which is the energy change ΔE associated with a 1-bit flip. i —This is represented by the following formula (2). Note that formula (2) is established when 1 bit is flipped, and the part inside the parentheses indicates the local field (total input) of bit i. Furthermore, δx i =x' i –xi applies to δx i .

[0009] [Mathematical Formula 2]

[0010]

[0011] The acceptance probability of a particular state transition relative to the energy change ΔE associated with that transition can be specified using the Metropolis criterion (Metropolis method) expressed by the following formula (3): i wait.

[0012] [Mathematical Formula 3]

[0013] A i =min[1,exp(-β·ΔE) i )]…(3)

[0014] In formula (3), β represents the inverse temperature (representing the reciprocal of the temperature value). State transitions with increasing energy are also allowed to occur randomly. In the typical MCMC method, the flipped state index i is selected randomly or sequentially (orderly) based on the energy change ΔE associated with the state transition where the value of the selected state variable changes, with the acceptance probability A described above. i This state transition is allowed. For example, in the MCMC method, the acceptance probability A... i Compare with a uniformly random number u∈(0,1), and satisfy u<A i When this condition is met, a state transition (flipping) is allowed, but when u < A is not met... i If the state transition is denied, maintain the current state. Then, when the state transition is allowed, update the value of the state variable. Repeat this process for a predetermined number of iterations.

[0015] When the search finds a state that yields the lowest energy (optimal solution), for example, if a sufficiently large β (low temperature) is chosen, the low-energy state is achieved with a high probability. In practical optimization problems, if β is large, local annealing can occur. Therefore, when searching for the optimal solution, methods such as slow-temperature annealing (SA: simulated annealing) or exchange Monte Carlo methods (PT: parallel annealing) that exchange states between multiple MCMC simulations running at different temperatures are used to prevent local annealing.

[0016] In this search for the optimal solution, since it is locally optimal... At low temperatures (β >> 1), no state change (resistance) is induced, thus degrading the efficiency of solution search and, in some cases, causing the search to take a long time. The no-rejection scheme (hereinafter referred to as the RF method) is considered a method for efficiently searching for optimal solutions.

[0017] In the RF method, instead of randomly selecting a flip bit and deciding whether to accept it, a weighted probability (P) is used based on the formulas (4) to (7) below. i Select the flip bit.

[0018] [Mathematical Formula 4]

[0019]

[0020] [Mathematical Formula 5]

[0021]

[0022] [Mathematical Formula 6]

[0023]

[0024] [Mathematical Formula 7]

[0025]

[0026] Formula (4) is the weighted probability (P) used 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 bits k that satisfy formula (6) are flipped. Alternatively, the evaluation value f is calculated in parallel for all bits using one of the methods in formula (7). i (Random key), and flip the bits with the maximum or minimum value.

[0027] In this RF method, state transitions occur at each iteration, and state search can be performed efficiently. In addition, the computational cost in the RF method is more than N times greater than that in the typical MCMC, but by implementing the RF method in a parallel circuit (Equation (7)), the search can be performed efficiently without deceleration.

[0028] Examples of related technologies include: Japanese Patent Publication No. 2010-250599 and International Publication Booklet No. WO 2020 / 54062, which are disclosed as related technologies. Summary of the Invention

[0029] Technical issues

[0030] However, in the prior art described above, depending on the given problem, it is sometimes observed that only some (specific multiple) bits are flipped while the remaining bits are hardly flipped. This phenomenon means that the search for the optimal solution is biased towards a partial subspace of the state space, which will cause a significant deterioration in search efficiency.

[0031] In one aspect, the aim is to provide optimization apparatus, optimization methods, and optimization procedures that enable efficient searching for optimal solutions.

[0032] Solution to the problem

[0033] According to one aspect of the embodiments, an optimization apparatus is provided, comprising: a state storage unit that stores each of the values ​​of a plurality of state variables included in an evaluation function; a calculation unit that calculates a change value of the evaluation function when any one of the values ​​of the plurality of state variables changes with a probability based on the weight value of each of the plurality of state variables, and calculates an evaluation value for evaluating which state transition to accept among the plurality of state variables based on the calculated change value and a correction value corresponding to the sensitivity of the state variables whose values ​​have changed; and an update unit that changes one of the stored values ​​of any one of the plurality of state variables based on the calculated evaluation value.

[0034] Beneficial effects of the invention

[0035] This enables efficient searching for the optimal solution. Attached Figure Description

[0036] Figure 1 This is a block diagram illustrating an example configuration of the optimization apparatus according to an embodiment;

[0037] Figure 2A This is a block diagram illustrating an example of a computing unit of an optimization apparatus according to an embodiment;

[0038] Figure 2B This is a block diagram illustrating an example of a computing unit of an optimization apparatus according to an embodiment;

[0039] Figure 3 This is a block diagram illustrating an example of a selector for an optimization device according to an embodiment;

[0040] Figure 4A This is a flowchart illustrating a processing example of the optimization apparatus according to an embodiment;

[0041] Figure 4B This is a flowchart illustrating a processing example of the optimization apparatus according to an embodiment;

[0042] Figure 5A This is an explanatory diagram illustrating an example of the flip rate;

[0043] Figure 5B This is an explanatory diagram illustrating an example of the flip rate;

[0044] Figure 5C This is an explanatory diagram illustrating an example of the flip rate;

[0045] Figure 6 This is an explanatory graph illustrating the relationship between the number of iterations and the probability of obtaining the lowest energy state;

[0046] Figure 7 This is a block diagram illustrating modifications to the optimized apparatus according to the embodiment; and

[0047] Figure 8 This is an illustrative diagram illustrating an example of computer configuration. Detailed Implementation

[0048] In the following description, optimization apparatus, optimization method, and optimization procedure according to embodiments will be described with reference to the accompanying drawings. Configurations having the same function in the embodiments are indicated by the same reference numerals, and redundant descriptions will be omitted. Note that the optimization apparatus, optimization method, and optimization procedure described in the following embodiments are merely examples and do not limit the embodiments. Furthermore, unless otherwise contradictory, each of the following embodiments can be suitably combined.

[0049] Figure 1 This is a block diagram illustrating an example configuration of the optimization apparatus according to an embodiment. For example... Figure 1As shown, the optimization device 1 includes a coefficient storage unit 10, a random number generator 20, a copy controller 30, and a copy update unit 40. This optimization device 1 is an example of an optimization device that searches for a solution using a copy (a sequence of spin positions with different temperature parameters) of a specific state in simulated annealing using the Ising model. For example, optimization device 1 can be applied using dedicated hardware with integrated circuits, field-programmable gate arrays (FPGAs), etc., or a personal computer (PC) including a graphics processing unit (GPU) or a central processing unit (CPU).

[0050] Note that in simulated annealing using the Ising model, only one of the N state variables changes in association with a single state transition. Therefore, in the following description, it is assumed that the index value (i) used to identify each state transition is equal to the index value of a state variable. However, the index values ​​are not limited to a pattern where the index values ​​of a state transition match the index values ​​of state transitions that change in association with the state transition.

[0051] First, an overview of the optimization device 1 will be described. In this copy, the optimization device 1 computes the evaluation value f in parallel for all bits using the RF method. i (Random key), and by changing (flipping) its evaluation value f i The solution is searched by taking the state variable (bit k) that has the maximum or minimum value. Here, in optimization device 1, for each state variable, the evaluation value f is determined regarding whether to change that state variable. i By using the correction value (η) corresponding to the sensitivity to changes in the state variable. i This allows the optimization device 1 to suppress changes in the frequency of state variables and limit the search for the optimal solution to a subset of the state space.

[0052] For example, when assuming the proposal probability q i ——0 i ≤1 and Σ i q i When a state variable to be transformed is randomly selected with a value of 1, the transition probability (P) of each state variable in the Metropolis method is... i ) is given as P i =Q i A i =q i min(1,exp(-βΔE i )).

[0053] Optimization device 1 is based on the weighted probability (P') indicated by the following formula (8). i ​To select the bit to flip (the state variable to be changed). For example, calculate the random number (r) indicated by formula (9) and flip the bit k that satisfies formula (10).

[0054] [Mathematical Formula 8]

[0055]

[0056] [Mathematical Formula 9]

[0057]

[0058] [Mathematical Formula 10]

[0059]

[0060] For example, in the optimization device 1, the copy update unit 40 calculates the evaluation value (f) for all (N) bits in parallel using the following formula (11) to evaluate whether to accept the state transition. i ), and flip the bit with the minimum value.

[0061] [Mathematical Formula 11]

[0062] f i =β(max(0, ΔE) i )+η i )+log(-logu i (Minimum value for metropolis)...(11)

[0063] In formula (11), the η included in the preceding part i This represents the correction value corresponding to the sensitivity to changes in the state variable. Additionally, the latter part is an example of a random number. In formula (11), the sum of the acceptance probability of the state transition and the random number is calculated as the evaluation value.

[0064] Here, regarding η i The larger the value, the lower the probability that the state variable will be flipped (changed). Therefore, for bits (state variables) that are sensitive to change, it is only necessary to pre-set a large value (η) in memory or other storage devices as a correction value. i In principle, when the proposal probability q i Under the condition that relation η is satisfied i =-log(q) i )≥0. However, in the algorithm for searching the minimum value using formula (11), even if an appropriate real number α is used to take η i →η i +α, all state variables remain unchanged, and therefore any value can be used for the correction value (η). i ).

[0065] Furthermore, in the optimization device 1, the copy update unit 40 can dynamically adjust the correction value (η) for each state variable during the search for a solution. i For example, the replica update unit 40 updates each state variable (bit i) identified by the index value (i) based on the evaluation value (f). i The correction value (η) is determined by the number of times it is changed. i ).

[0066] For example, the replica update unit 40 finds the bit flip rate based on the number of times bit i is changed. The flip rate is assumed to be the number of times bit i is flipped / the number of iterations in the solution search. The replica update unit 40 measures the above flip rate over a fixed number of iterations and adds a correction value (η). i This continues until the flip rate falls within a threshold (e.g., 3 × 1 / N).

[0067] As an example, the replica update unit 40 performs the following processing: 1. Measure the flip rate; 2. Increment a bit with the maximum flip rate or exceeding a threshold (η). i =η i +δη) of the position η i ; and 3. Repeat steps 1 and 2 above until the maximum value of the toggle rate becomes equal to or less than the threshold. In the above process, if δη>0 is small enough, the toggle rate of each bit converges to the threshold or a smaller value.

[0068] Note that the copy update unit 40 can pre-group the state variables based on the values ​​of the coefficients of the problem, and determine the correction value within each group based on the number of changes made according to the evaluation value (f). For example, Σ in formula (2) is calculated for each variable (i). j W ij +b i Furthermore, bits with similar values ​​are grouped. By assuming a flip rate of (number of flips in each group) / (number of iterations × number of bits in each group), the replica update unit 40 obtains the average flip rate within each group. Next, the replica update unit 40 performs a process similar to that described above based on the average flip rate within each group to obtain a correction value (η) for each bit within the group. Note that when performing multiple independent simulations (replicas) (details will be described later), the flip rate can be found by averaging the same bits or groups in individual replicas, and the correction value (η) can be obtained.

[0069] In addition, the copy update unit 40 can obtain the energy change value (ΔE) in formula (2) for each state variable (bit i) identified by the index value (i). i The average value of ) is used to determine the correction value (η) based on the obtained average value. i ).

[0070] For example, replica update unit 40 obtains an average value as follows:

[0071] [Mathematical Formula 12]

[0072] max(0,ΔE i (x (t) ))

[0073] ( (This represents the state at iteration number t)

[0074] For each bit, obtain the average change over each iteration. Based on this average, calculate the correction value (η). i As shown in formula (12) below.

[0075] [Mathematical Formula 13]

[0076]

[0077] The configuration of the optimization device 1 will then be described. For example, the coefficient storage unit 10 is a register, static random access memory (SRAM), etc. The coefficient storage unit 10 stores each of the values ​​of the multiple state variables included in the evaluation function representing energy, and additionally, outputs the values ​​of the multiple state variables at every predetermined number of iterations. The evaluation function is, for example, the energy function E(x) indicated by formula (1).

[0078] Random number generator 20 generates random numbers used by replica update unit 40. Random number generator 20 produces a random value r = log(-log(u)). i ))), where, for example, u i 's is an independent uniform random number greater than 0 but equal to or less than 1. The random number generator 20 can be implemented, for example, using a Mersenne twister, a linear feedback shift register (LFSR), etc.

[0079] The replica controller 30 sets values ​​(energy E and inverse temperature (or temperature) β) related to the replication (copy) of a specific state (a spin position sequence with different temperature parameters).

[0080] The replica update unit 40 is a processing unit that uses replicas configured by the replica controller 30 to search the state (solution space). For example, the replica update unit 40 includes a calculation unit 41, a selector 42, and a proposal probability adjustment unit 43.

[0081] Computation unit 41 computes the evaluation value f in parallel for all bits from 1 to N using the RF method. i At the same time, a correction value (η) corresponding to the sensitivity to changes in the state variable is used. iThe processing unit that makes adjustments.

[0082] Figure 2A and Figure 2B This is a block diagram illustrating an example of a computing unit of an optimization apparatus according to an embodiment. For example, such as... Figure 2A As shown, the computation unit 41 for each state variable (bit i) includes registers 410a to 410d, adders 411a to 411c, integrators 412a and 412b, and arithmetic units 413a and 413b. Note that k indicates the index of the bit to be flipped, selected by selector 42.

[0083] Registers 410a to 410d store the values ​​read from coefficient storage unit 10 (local field h) i and state x i ), and the correction value (η) for the state variable (bit i). i ), evaluation value (f) i )wait.

[0084] For example, for the state variable (bit i), the value (h) read from the coefficient storage unit 10. i and x i The values ​​are stored in registers 410a and 410b. Adder 411a adds the value read from coefficient storage unit 10 to the value stored in register 410a. i Add to update h i .

[0085] Integrator 412a accesses h stored in register 410a i x stored in register 410b i The integration is performed. The arithmetic unit 413a calculates ΔE by performing an operation on formula (2) based on the result of the operation of integrator 412a. i .

[0086] The arithmetic unit 413b is based on ΔE calculated by the arithmetic unit 413a. i To calculate max(0, ΔE) i The integrator 412b will calculate the max(0,ΔE) by the arithmetic unit 413b. i Integrate with β (inverse temperature).

[0087] Adder 411c will add the correction value (η) stored in register 410c. i ) and β(max(0,ΔE) i Add them together. This gives the value corresponding to the first term of formula (11).

[0088] Additionally, adder 411c adds the random number generated by random number generator 20 (corresponding to the second term of formula (11)) to the value corresponding to the first term of formula (11). Calculation unit 41 obtains f through the operation up to adder 411c. i f obtained in this way i It is stored in register 410d.

[0089] Adder 411b will be notified by the proposal probability adjustment unit 43 of δη i With η stored in register 410c i Update η i .

[0090] Figure 2B The energy change value (ΔE) in (2) is depicted. i The average value of ) and the correction value (η) is determined based on the obtained average value. i ) Calculation unit 41a. For example, Figure 2B As shown, computing unit 41a and Figure 2A The difference in the calculation unit 41a is that it includes an arithmetic unit 413c that performs operations on formula (12).

[0091] Selector 42 selects the evaluation value f calculated by calculation unit 41. i Take the maximum or minimum value of the state variable (bit k) and change (flip) the selected state variable.

[0092] Figure 3 This is a block diagram illustrating an example of the selector 42 of the optimization device 1 according to an embodiment. Figure 3 As shown, selector 42 includes multiple selection circuits (e.g., selection circuits 421 to 426) arranged in a tree-like manner across multiple levels. For two evaluated values, each selection circuit in the first level selects and outputs the larger evaluated value (in the case of the maximum value) and the index value corresponding to the larger evaluated value. For example, when the evaluated value f1 with an index value of 1 (i=1) is greater than the evaluated value f2 with an index value of 2 (i=2), selection circuit 421 outputs the evaluated value f1 and its index value of 1. Note that when selecting the minimum value, for two evaluated values, each selection circuit selects and outputs the smaller evaluated value and the index value corresponding to the smaller evaluated value.

[0093] As in the first stage, the selection circuits in the second and subsequent stages select from the two evaluation values ​​output by the two selection circuits in the previous stage and output the larger evaluation value and the index value corresponding to the larger evaluation value.

[0094] In this way, selector 42 selects one of the state variables by choosing its evaluation value f based on the magnitude relationship between the evaluation values ​​of the various state variables. i Select a state variable (bit k) that takes the maximum or minimum value. Selector 42 outputs the selected state variable to coefficient storage unit 10 and changes the value of the selected state variable.

[0095] The proposal probability adjustment unit 43 sets a correction value (η) for each state variable in the calculation unit 41. i For example, the proposal probability adjustment unit 43 can read the preset η stored in memory or the like. i Furthermore, in the calculation unit 41, the η value to be read is set for each state variable. i .

[0096] Additionally, the proposal probability adjustment unit 43 obtains the modified (flipped) state variable (bit k) from the selector 42 and counts the obtained state variable (bit k) as the number of flips (c). k In this way, for each state variable, the correction value (η) i This can be set based on the number of flips counted for each state variable. For example, the proposal probability adjustment unit 43 is an example of a determination unit.

[0097] For example, as described above, the proposal probability adjustment unit 43 obtains the flip rate based on the number of flips and the number of iterations for the solution. Next, the proposal probability adjustment unit 43 increases (δ) based on a comparison between the obtained flip rate and a threshold. η The correction value for each state variable.

[0098] Note that, as described above, the proposal probability adjustment unit 43 can count the number of flips of state variables for each group based on preset values ​​such as the coefficients of the problem, and obtain the average flip rate for each group. In this case, the proposal probability adjustment unit 43 increases the correction value of the state variables within each group by (δη) based on the comparison between the average flip rate within the group and a threshold.

[0099] Figure 4A This is a flowchart illustrating a processing example of the optimization apparatus 1 according to an embodiment. For example... Figure 4A As shown, when the process begins, the optimization device 1 performs an initialization process (S1).

[0100] For example, in the initialization process, the replica controller 30 sets, for example, the number of repetitions (specifying the number N) to obtain the solution. loop The parameters of the inverse temperature (β) in the copy update unit 40 and the inverse temperature (β) are also considered. Additionally, the proposal probability adjustment unit 43 reads the preset η from the memory, etc. iTo set the read η in the calculation unit 41 i And reset the number of flips (c) k ).

[0101] Next, the computation unit 41 performs the following process (S2): It computes, in parallel for all (N) bits, the evaluation value (f) used to assess whether a state transition is accepted using formula (11). i ), and search for the bit with the minimum value (index k).

[0102] For example, calculation unit 41 reads the value corresponding to the index (local field h) from coefficient storage unit 10. i and state x i (S2a), and compute the evaluation values ​​f1 to f for all (N) bits in parallel. N (S2b). Next, selector 42 selects the evaluation values ​​f1 to f2 calculated by calculation unit 41. N Compare the values ​​and search for the index k(S2c) with the minimum value.

[0103] Next, selector 42 updates the value stored in coefficient storage unit 10 corresponding to the index k with the minimum value, such as state x. k Local field h i And energy E. Additionally, the proposal probability adjustment unit 43 increases and updates the flip count counter (c) corresponding to index k. k (S3).

[0104] Next, the replica controller 30 checks whether the state variable has been updated a specified number of times N. loop Perform verification (S4), and if the verification is negative (S4: No), return to S2. This will cause the optimization device 1 to search for a solution until a specified number of times N is reached. loop .

[0105] When the verification in S4 is positive (S4: Yes), the proposal probability adjustment unit 43 adjusts the probability based on the number of toggles for each state variable (c i To calculate the flip rate (r) i (S5) and end the process. For example, the flip rate (r) i The calculation of ) is given as r i =c i / N loop Etc. Note that when grouping state variables, the proposal probability adjustment unit 43 can count the number of flips of the state variables for each group and find the average flip rate for each group.

[0106] Figure 4B This is a flowchart illustrating a processing example of the optimization apparatus 1 according to an embodiment, and for example, Figure 4B This involves dynamically adjusting the correction value (η) for each state variable during the solution search. i Example of handling the case ).

[0107] like Figure 4B As shown, when the process begins, the optimization device 1 executes the initialization process (S1) described above. Next, the optimization device 1 executes the processes described above from S2 to S5, including calculating the tortuosity ratio (r). i RF method.

[0108] Next, the proposal probability adjustment unit 43 proposes a method based on the tort rate (r) of each state variable. i For each state variable described above, set (adjust) a correction value (η). i (S6).

[0109] For example, as a method to suppress the maximum value of the flip rate, it is proposed that the probability adjustment unit 43 set the correction value (η) for each state variable as follows. i ). ·For r among them i The bit k with the maximum value is η. k →η k +δη. • For δη, take a pre-specified value. • It is acceptable not only to apply to the maximum value, but also to bits equal to or greater than the threshold.

[0110] Furthermore, as a method for providing the slope of the flip rate, it is proposed that the probability adjustment unit 43 set the correction value (η) for each state variable as follows. i For example, for each state variable, take η. i →η i +δ η ·r i Instead of multiplying by δη, an appropriate monotonically increasing function can be used to adjust r. i Perform the transformation.

[0111] In addition, the probability adjustment unit 43 sets the correction value (η) by grouping the state variables. i The following operations can be performed: • Take the average value within the group as the flip rate, and use the same η within the group. i Value. • When using multiple replicas, the flip rate of the same index can be summed and averaged across the replicas.

[0112] Note that when all correction values ​​(η) i ) Satisfies η i When η > 0, the proposal probability adjustment unit 43 can subtract the minimum correction value from the whole. This allows the proposal probability adjustment unit 43 to limit η. i It can increase indefinitely.

[0113] Next, the replica controller 30 checks whether the state variable has been updated a specified number of times N. loop Perform verification (S7), and if the verification is negative (S7: No), return the process to S2. If the verification is positive (S7: Yes), the replica controller 30 ends the process.

[0114] Figures 5A to 5C This is an illustrative diagram illustrating an example of the flip rate. For example, in Figures 5A to 5C In the graph, the horizontal axis indicates the index values ​​(indexes) of the 256 state variables, and the vertical axis indicates the toggle rate (flip rate) for each index value. Here, the parallel lines represent the toggle rate of 1 / N when all bits are simultaneously toggled. Additionally, Figure 5A The uncorrected case without using the correction value (η) is depicted. Figure 5B It describes the case where a set of state variables is corrected using a common correction value (η = 5) when the index value is equal to or greater than 161. Figure 5C The text describes the case where index values ​​less than 161 are further divided into four groups and corrected using a correction value (η) for each group.

[0115] like Figure 5A As shown, without correction, the flip rate in the latter half (index ≥ 161) is 5 to 10 times higher than that in the former half. For example, the search for the optimal solution will be biased towards a partial subspace of the state space.

[0116] exist Figure 5B In, with Figure 5A Compared to the first half, the flip rate in the latter half (index ≥ 161) is close to that in the first half. Additionally, in... Figure 5C In this model, the bias of the flip rate is further improved, and the bias of the flip rate becomes smaller for all indices.

[0117] Figure 6 This is a diagram illustrating the relationship between the number of iterations and the probability of obtaining the lowest energy state. Figure 6 In the diagram, the horizontal axis represents the number of iterations until a solution is obtained (ITS: number of iterations to a solution), and the vertical axis represents the empirical cumulative distribution function (ECDF) where a solution is obtained when the experiment is repeated many times.

[0118] Additionally, Figure G1 indicates the relationship between... Figure 5A A graph showing the results of the calculations under the same conditions (without correction). Figure G2 indicates the results under the same conditions. Figure 5B A graph showing the results of calculations under the same conditions (using the same correction value (η = 5) to correct a set of state variables whose index values ​​are equal to or greater than 161). Figure G3 indicates the results under the same conditions. Figure 5CA graph showing the results of the operation under the same conditions (index values ​​less than 161 are further divided into four groups and corrected using the correction value (η) of each group).

[0119] like Figure 6 As shown, graphs G2 and G3 under the corrected condition can obtain solutions faster (with fewer iterations) compared to graph G1 under the uncorrected condition. For example, when comparing graphs G1, G2, and G3 at portions where ECDF is 0.50 (i.e., 50% success rate), the average number of iterations to find a solution can be reduced to 1 / 10.

[0120] Figure 7 This is a block diagram illustrating modifications to the optimized apparatus according to an embodiment. For example, Figure 7 An example configuration of the optimization apparatus 1a using parallel refracting (PT, also known as the exchange Monte Carlo method) is shown.

[0121] like Figure 7 As shown, the optimization device 1a using PT executes the MCMC method simultaneously using multiple (1 to M) replica update units 40. The replica controller 30 compares the energy of the state of each replica update unit 40 in the replica update unit 40 at each specific number of iterations and performs the operation of exchanging the state for two (or more) temperatures with appropriate probability.

[0122] In this way, in the optimization apparatus 1a using PT, by applying the replica update unit 40 described above, all bits are uniformly flipped even at lower maximum temperatures, and efficient searching is enabled by reducing the number of replicas. Furthermore, the replica controller 30 reduces the temperature (increases β) according to a pre-specified schedule at each specific number of iterations. In this case, multiple replica update units 40 perform the search independently and are used solely to improve the success rate of locating the solution.

[0123] As described above, the optimization device 1 stores each of the values ​​of multiple state variables included in the evaluation function representing energy. Furthermore, when any one of the values ​​of the multiple state variables changes with a probability based on the weight value of each state variable, the optimization device 1 calculates an energy change value (ΔE). Then, based on the calculated change value and a correction value (η) corresponding to the sensitivity to the change in the altered state variable, the optimization device 1 calculates an evaluation value (f) for assessing whether to accept a state transition. The optimization device 1 changes any one of the stored values ​​of the multiple state variables based on the calculated evaluation value (f).

[0124] This allows the optimization device 1 to limit the search for the optimal solution from being biased towards a subset of the state space due to only some state variables being changed while the rest remain almost unchanged. In this way, the optimization device 1 can achieve efficient solution search in which the search for the optimal solution is not biased towards a subset of the state space.

[0125] Furthermore, the optimization device 1 determines the correction value for each state variable based on the number of changes made according to the evaluation value (f). This allows the optimization device 1 to use correction values ​​corresponding to the actual changes in the state variables during the search for the optimal solution.

[0126] Furthermore, for each group of state variables, the optimization device 1 determines the correction value within that group based on the number of changes made according to the evaluation value (f). For example, regarding state variables, state variables with similar sensitivity to changes can be grouped together based on the values ​​of the coefficients of the problem (Ising model). Therefore, in the optimization device 1, by determining the correction value for each group, the correction value can be determined more efficiently than when determining the correction value for each state variable individually.

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

[0128] Note that each component shown in each device does not necessarily have to be physically configured as illustrated in the accompanying drawings. For example, the specific patterns of distribution and integration of the various devices are not limited to those shown, and all or part of the devices can be configured by functionally or physically distributing and integrating them in optional units, depending on various loads, usage conditions, etc.

[0129] Furthermore, not only are the various processing functions of the coefficient storage unit 10, random number generator 20, copy controller 30, and copy update unit 40 of the optimization device 1 implemented on an application-specific integrated circuit (ASIC) or FPGA, but all or optional portions of these processing functions can be executed on a CPU (or a microcomputer such as a microprocessor unit (MPU) or microcontroller unit (MCU)). Needless to say, all or optional portions of these processing functions can be executed on a program analyzed and executed by the CPU (or a microcomputer such as an MPU or MCU) or on hardware via wired logic. Moreover, the various processing functions executed by the optimization device 1 can be executed by multiple computers collaborating through cloud computing.

[0130] Furthermore, the various processes described in the above embodiments can be implemented by a computer executing a pre-prepared program. Therefore, in the following text, examples of computer configurations (hardware) that execute programs having functions similar to those in the above embodiments will be described. Figure 8 This is an illustrative diagram illustrating an example of computer configuration.

[0131] like Figure 8 As shown, the computer 200 includes a CPU 201 that performs various arithmetic operations, an input device 202 that receives data input, a monitor 203, and a speaker 204. Additionally, the computer 200 includes a media reading device 205 for reading programs from storage media, an interface device 206 for connecting to various devices, and a communication device 207 for connecting to and communicating with external devices via wired or wireless means. Furthermore, the optimization device 1 includes a random access memory (RAM) 208 for temporarily storing various types of information and a hard disk device 209. Moreover, each of the units (201 to 209) in the computer 200 is connected to a bus 210.

[0132] The hard disk device 209 stores programs 211 for performing various processes in the functional configurations described in the above embodiments (e.g., coefficient storage unit 10, random number generator 20, copy controller 30, and copy update unit 40). Additionally, the hard disk device 209 stores various types of data 212 related to the program 211. The input device 202 receives input of operation information from the operator, for example. The monitor 203 displays various screens operated by the operator, for example. The interface device 206 is connected to, for example, a printing device. The communication device 207 is connected to a communication network, such as a local area network (LAN), and exchanges various types of information with external devices via the communication network.

[0133] The CPU 201 reads the program 211 stored in the hard disk drive 209 and loads it into the RAM 208 for execution, thereby performing various processes related to the functional configuration described above (e.g., coefficient storage unit 10, random number generator 20, copy controller 30, and copy update unit 40). Note that the program 211 does not necessarily need to be stored in the hard disk drive 209. For example, the program 211 stored in a storage medium readable by the computer 200 can be read and executed. For example, a storage medium readable by the computer 200 corresponds to portable recording media such as CD-ROM, DVD, or USB memory, semiconductor memory such as flash memory, hard disk drive, etc. Alternatively, the program 211 can be pre-stored in a device connected to a public line, the Internet, LAN, etc., and the computer 200 can read and execute the program 211 from that device.

Claims

1. An optimization apparatus for solving combinatorial optimization problems using the Ising model, comprising: A state saving circuit is configured to save each of the values ​​of a plurality of state variables of the Ising model included in the evaluation function; The computing circuit is configured to calculate a change in the evaluation function when any of the values ​​of the plurality of state variables changes with a probability based on the weight value of each of the plurality of state variables, and to calculate an evaluation value for evaluating which state transition to accept among the plurality of state variables based on the calculated change value and a correction value corresponding to the sensitivity of the state variable whose value has changed, wherein each of the correction values ​​is a value determined for each state variable based on the counted number of flips of that state variable; as well as The update circuit is configured to change one of the stored values ​​of any of the plurality of state variables based on the calculated evaluation value.

2. The optimization device according to claim 1, wherein, The computing circuit is configured to compute the change value of the evaluation function in parallel for the plurality of state variables, and to compute the evaluation value in parallel for the plurality of state variables.

3. The optimization device according to claim 2 further includes: The selection circuit is configured to select a first state variable from the plurality of state variables based on the evaluation value, wherein... The update circuit is configured to change one of the values ​​of the first state variable selected by the selection circuit.

4. The optimization device according to claim 1, further comprising: The determining circuit is configured to determine the correction value for each of the plurality of state variables based on the number of times the updating circuit has made the change.

5. The optimization device according to claim 4, wherein, The determining circuit is configured to determine the correction value within each group of the plurality of state variables for each group based on the number of times the updating circuit has made the changes.

6. The optimization apparatus according to claim 4, wherein, The determining circuit is configured to determine the correction value based on the average value of the change when the updating circuit has made the change.