PROGRAM, INFORMATION PROCESSING METHOD AND INFORMATION PROCESSING APPARATUS

By implementing a search algorithm including selection, decision and state change processes in the information processing device, the combination optimization problem in the prior art is solved, and more efficient state transition and solution acquisition are achieved.

JP7648890B2Active Publication Date: 2025-03-19FUJITSU LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2021080535
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-05-11
Publication Date
2025-03-19
Estimated Expiration
2041-05-11

AI Technical Summary

Technical Problem

The prior art is less efficient when solving the problem of combination optimization represented by energy functions, especially in the case of stateless transitions of multiple state variables, which requires repeated determination processes, resulting in an increase in time consumption.

Method used

By implementing a search process in the information processing device, the process includes selection, decision and state change processes. The specific steps include: selecting the candidate change state variable in a predetermined order, deciding whether to change the value of the state variable based on the measurement of the change value, and changing the value of the state variable when the change is decided. When the number of times the state variable is determined continuously to not change reaches a predetermined number, the energy function change amount is corrected by the bias value, and whether to change the value of the state variable is determined based on the corrected change amount.

Benefits of technology

Improve the efficiency of solving combination optimization problems, reduce the invalid repeated determination process, and promote state transition, thereby achieving a good solution in a short time.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007648890000015
    Figure 0007648890000015
  • Figure 0007648890000016
    Figure 0007648890000016
  • Figure 0007648890000017
    Figure 0007648890000017
Patent Text Reader

Abstract

To make solution search efficient.SOLUTION: A processing unit 12 selects change candidate state variables that are parts of a plurality of state variables in a predetermined order, and on the basis of, an amount of change in a value of an energy function corresponding to a change in the value of the selected change candidate state variables, determines whether to change the value of the change candidate state variables. When the processing unit 12 determines to change the value of the change candidate state variables, the processing unit changes the value of the change candidate state variables. The processing unit 12 counts the number of times by which the same continuously determines not to change the value of the change candidate state variables, and when the number of times reaches a predetermined number of times, corrects, with an offset value, the amount of change of the energy function corresponding to a change in the value of change candidate state variables to be newly selected. The processing unit 12 determines whether to change the value of the change candidate state variables to be newly selected, on the basis of, the amount of change after the correction.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

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

[0002] Information processing devices are sometimes used to solve combinatorial optimization problems. The information processing device converts the combinatorial optimization problem into an energy function of an Ising model, which is a model that represents the behavior of spin in a magnetic material, and searches for a combination that minimizes or maximizes the energy function among combinations of state variable values ​​included in the energy function. The combination of state variable values ​​that minimizes or maximizes the energy function corresponds to a ground state or optimal solution represented by a set of state variables. Methods for obtaining an approximate solution to a combinatorial optimization problem in a practical amount of time include a method based on the Markov Chain Monte Carlo (MCMC) method, which combines the Simulated Annealing (SA) method, the Replica Exchange method, and the like.

[0003] For example, among devices that execute the MCMC method, there are those that select state variables in index order (sequential) and determine whether a state transition that changes the value of that state variable is acceptable, and those that perform parallel search that simultaneously selects one state transition from multiple state transition candidates. [Prior art documents] [Patent documents]

[0004] [Patent Document 1] JP 2020-135727 A [Patent Document 2] US Patent Application Publication No. 2014 / 0279816 Summary of the Invention [Problem to be solved by the invention]

[0005] As described above, in solving a problem represented by an energy function, it is possible to select state variables in a predetermined order, such as the index of the state variables, and determine whether a state transition related to the state variables is permitted. In this method, for example, after going through a number of state variables once, if none of the state transitions are permitted, the next round of determination is started, and so on. In this way, determinations are repeatedly made for each state variable until a state transition is made. However, the more the number of repetitions increases without a state transition being made, the more time is required to find a solution.

[0006] In one aspect, the present invention has an object to provide a program, an information processing method, and an information processing device that improve the efficiency of a solution search. [Means for solving the problem]

[0007] In one aspect, a program is provided that causes a computer to execute a search process for searching for a solution to a problem represented by an energy function including a plurality of state variables. The search process includes a selection process for selecting state variables of change candidates that are part of the plurality of state variables in a predetermined order, a determination process for determining whether or not to change the value of the state variable of the change candidate based on an amount of change in the value of the energy function corresponding to the change in the value of the state variable of the change candidate selected in the selection process, and a state change process for changing the value of the state variable of the change candidate when it is determined in the determination process that the value of the state variable of the change candidate is to be changed. In the search process, the program causes the computer to repeatedly execute the selection process, the determination process, and the state change process in a predetermined order. The search process further includes a count process for counting the number of times that it is determined that the value of the state variable of the change candidate is not changed consecutively in the repeatedly executed search process, and when the number of times counted in the count process reaches a predetermined number, a change amount of the energy function corresponding to the change in the value of the state variable of the newly selected change candidate is calculated. from Offset Value SubtractThe program causes the computer to execute a process of determining whether or not to change the value of the state variable of the newly selected change candidate based on the amount of change after the correction in a determination process after the amount of change has been corrected by the correction process.

[0009] Also, in one aspect, a method for processing information is provided. In one aspect, an information processing device is provided. Effect of the Invention

[0010] On the one hand, it can make solution searches more efficient. [Brief description of the drawings]

[0011] [Figure 1] FIG. 1 is a diagram illustrating an information processing apparatus according to a first embodiment. [Diagram 2] FIG. 11 is a diagram illustrating an information processing apparatus according to a second embodiment. [Diagram 3] FIG. 13 illustrates an example of hardware of an information processing apparatus according to a third embodiment. [Figure 4] FIG. 2 is a diagram illustrating an example of functions of an information processing device. [Diagram 5] FIG. 13 illustrates an example of the functions of a replica update unit; [Figure 6] 13 is a flowchart illustrating an example of processing by the information processing device. [Figure 7] FIG. 11 is a diagram showing an example (part 1) of a solution result. [Figure 8] FIG. 13 is a diagram showing an example (part 2) of a solution result. [Figure 9] FIG. 13 illustrates an example of the functions of a replica update unit according to the fourth embodiment; [Figure 10] 13 is a flowchart illustrating an example of processing by the information processing device. [Figure 11] 11 is a flowchart showing a comparative example. [Figure 12] FIG. 13 illustrates an example of functions of an information processing apparatus according to a fifth embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0012] The present embodiment will be described below with reference to the drawings. [First embodiment] A first embodiment will be described.

[0013] FIG. 1 is a diagram illustrating an information processing apparatus according to a first embodiment. The information processing device 10 searches for a solution to a combinatorial optimization problem using the MCMC method, and outputs the searched solution. The information processing device 10 has a storage unit 11 and a processing unit 12. The storage unit 11 may be a volatile storage device such as a random access memory (RAM), or a non-volatile storage device such as a hard disk drive (HDD) or a flash memory. The processing unit 12 may include a central processing unit (CPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a graphics processing unit (GPU), or the like. The processing unit 12 may be a processor that executes a program. The "processor" may include a set of multiple processors (multiprocessor).

[0014] A combinatorial optimization problem is formulated by an Ising-type energy function, and is replaced by, for example, a problem of minimizing the value of the energy function. The energy function is sometimes called an objective function or an evaluation function. The energy function includes multiple state variables. The state variables are binary variables that take on values ​​of 0 or 1, and may also be called bits. A solution to a combinatorial optimization problem is represented by the values ​​of the multiple state variables. A solution that minimizes the value of the energy function represents the ground state of the Ising model, and corresponds to the optimal solution to the combinatorial optimization problem. Here, the value of the energy function is called energy.

[0015] The Ising-type energy function is expressed by equation (1).

[0016]

number

[0017] The state vector x has multiple state variables as elements and represents the state of the Ising model. Equation (1) is an energy function formulated in the QUBO (Quadratic Unconstrained Binary Optimization) format. In the case of a problem of maximizing energy, the sign of the energy function should be reversed. The values ​​of the multiple state variables belonging to the state vector x are stored in the storage unit 11.

[0018] The first term on the right side of equation (1) is the sum of the values ​​of the two state variables and the weighting coefficients for all combinations of two state variables that can be selected from all state variables, without omissions or duplications. The subscripts i and j are the indices of the state variables. x i is the i-th state variable. x j is the jth state variable. W ij is the weighting coefficient indicating the strength of the connection between the i-th state variable and the j-th state variable. W ij =W ji And W ii =0.

[0019] The second term on the right side of equation (1) is the sum of the products of the biases of all state variables and the values ​​of the state variables. i denotes the bias for the i-th state variable. State variable x i The value of 1-x i Then, the state variable x i The increase in is δx i =(1-x i )-x i =1-2x i Therefore, for the energy function E(x), the state variable x i The change in energy due to the change in i is expressed by equation (2).

[0020] [Number]

[0021] In the search for a solution, the processing unit 12 uses the Metropolis method or the Gibbs method to determine whether to allow a state transition in which the amount of change in energy is ΔE i , that is, whether to allow a change in the value of the state variable x i . In the neighborhood search for a transition from a certain state to another state with lower energy than that state, the processing unit 12 probabilistically allows not only a transition to a state with decreasing energy but also a transition to a state with increasing energy. For example, the probability of accepting a state transition with an energy change amount of ΔE i , that is, the transition acceptance probability A i is represented by Equation (3).

[0022] [Number]

[0023] β is the reciprocal of the temperature value T (T > 0) (β = 1 / T) and is called the inverse temperature. The min operator indicates taking the minimum value among the arguments. The upper right side of the right side of Equation (3) corresponds to the Metropolis method, and the lower right side of the right side of Equation (3) corresponds to the Gibbs method. The processing unit 12 compares a uniform random number u where 0 < u < 1 with A i , and if u < A i , it accepts the change in the value of the state variable x i and changes the value of the state variable x i . If u < A i is not satisfied, the processing unit 12 does not accept the change in the value of the state variable x i and does not change the value of the state variable x i . According to Equation (3), the larger the value of ΔE i , the smaller A i becomes. Also, the smaller β is, that is, the larger T is, the larger ΔE iState transitions with large variances are also more easily tolerated. For example, the processing unit 12 can use the SA method, which is a type of MCMC method, the Parallel Tempering (PT) method, or the Population Annealing (PA) method to search for a solution. The PT method is also called the replica exchange method.

[0024] The processing unit 12 selects a part of the state variables as change candidates in a predetermined order, i.e., sequentially. In one example, the processing unit 12 selects one state variable as a change candidate. The selected state variable x of the change candidate is i becomes the state variable to be subjected to the next transition determination. Information indicating the predetermined order is preset in the storage unit 11. For example, the predetermined order may be the order of index i. If the number of all state variables is N, the order of index i is i=1, 2, ..., N-1, N, 1, 2, ..., N, 1, 2, .... Alternatively, the predetermined order may be a random permutation Π1, Π2, ..., Π N , Π1, Π2, … are also acceptable. However, {Π i} is a rearrangement of {1, ..., N}. Note that, as described later, the processing unit 12 may select two or more state variables as change candidates at one time.

[0025] The processing unit 12 selects the state variable x as described above. i The change in energy when the value of is changed ΔE i Based on the state variable x i If it is determined that the value is to be changed, the processing unit 12 changes the state variable x i The value of is changed, and the next state variable to be judged is selected according to the above-mentioned predetermined order.

[0026] On the other hand, the processing unit 12 calculates the state variable x i If it is decided not to change the value of state variable x i The processing unit 12 records in the storage unit 11 the number of consecutive times that it has been determined that the value of the state variable should not be changed.

[0027] Then, when the number of consecutive times that the processing unit 12 has determined that the value of the state variable should not be changed reaches a predetermined number, the processing unit 12 corrects the amount of change in energy using an offset value, and determines whether or not to change the value of the selected state variable based on the amount of change in energy after the correction.

[0028] For example, the processing unit 12 may set a transition acceptance probability A i ΔE included in i , offset value E off (E off >0), the transition acceptance probability A' after correction is i More specifically, we obtain A' i =A i (ΔE i -E off ) When using the Metropolis method, the transition acceptance probability A' i is expressed by equation (4).

[0029]

number

[0030] Inverse temperature β and offset value E off If is positive, the transition acceptance probability A' i =A(ΔE i -E off ) is the original transition acceptance probability A i =A(ΔE i ) with a coefficient of 1 or more exp(β E off ) is the probability that the transition is accepted. i =A(ΔE i -E off ) is used, the original transition acceptance probability A i =A(ΔE i ) is used, the ratio of the transition acceptance probabilities of each state transition does not change.

[0031] The processing unit 12 is A i Instead of A' i Compare with the uniform random number u and set the state variable x iThat is, the processing unit 12 determines whether to accept the change in the value of u <A’ i If so, state variable x i Accepting changes in the value of the state variable x i The processing unit 12 changes the value of u <A’ i Otherwise, state variable x i does not accept any change in the value of the state variable x i The value of is not changed. The probability of transition acceptance for each state variable is improved, so that state transitions become more likely to occur.

[0032] The processing unit 12 calculates a transition acceptance probability A' i If the value of any state variable is changed according to the judgment by off By resetting A = 0, the correction amount is set to 0, that is, the correction by the offset value is stopped. After that, the transition acceptance probability for the state variable of the newly selected transition candidate is A i Then, the processing unit 12 selects the next state variable to be judged, and restarts counting the number of times that it has been judged that the value of the state variable has not been changed continuously from 0. Note that the transition acceptance probability A' i State variable x based on i The next state variable to be determined after the state transition related to is accepted is the state variable x selected according to the above-mentioned predetermined order. i It may be the next state variable in the sequence, or it may be the first state variable in the sequence.

[0033] For example, the processing unit 12 may correct the amount of change in energy by an offset value when the number of consecutive times that the value of the state variable is not changed reaches one cycle of determination times Z. When the number of state variables of change candidates selected at one time is one, the one cycle of determination times Z may be Z=N.

[0034] 1 shows an example of processing by an information processing device 10. For example, a state vector 30 is a vector of state variables x1, x2, ..., x N The number of judgments in one round is Z=N. The processing unit 12 performs the following operations: NThen, when the number of consecutive times that the processing unit 12 has determined that the value of the state variable should not be changed reaches Z=N, the processing unit 12 selects the state variable one by one in order and determines whether to accept the state transition. i offset value E off Transition acceptance probability A' corrected by i Using the state variable x i A graph 40 shows the transition acceptance probability A i ,A' i As shown in Graph 40, ΔE i offset value E off By making the correction, the transition acceptance probability can be made larger than when no correction is made.

[0035] In addition, the processing unit 12 off =E off * E off * is expressed by equation (5).

[0036]

number

[0037] The max operator indicates that the maximum value of its arguments is to be taken. off =E off * By setting ΔE for all indexes i when no state transition occurs, i The minimum value of ΔE m The transition acceptance probability A' corresponding to m A' m = 1. That is, the processing unit 12 can set at least x m For example, the processing unit 12 stores in the storage unit 11 the minimum value of the amount of change in energy obtained while continuously determining that the value of the state variable is not changed, thereby making it possible to reliably accept the state transition for E off * can be obtained.

[0038] The processing unit 12 may select two or more state variables as change candidates at a time and change the values ​​of the two or more state variables of the change candidates simultaneously for one transition determination. The processing unit 12 can calculate ΔE when changing the values ​​of two or more state variables from the change in energy for each of the two or more state variables based on formula (2).

[0039] For example, the sequence for selecting two state variables may be expressed by using a set of indexes as (1,2),(1,3),...,(1,N),(2,3),(2,4),...,(2,N),...,(N-1,N). In this case, the number of judgments in one round is Z=(N-1)+(N-2)+...+1={N(N-1)} / 2.

[0040] Alternatively, the sequence of selecting two state variables is (Π1,Π2),(Π1,Π3),…,(Π N-1 ,Π N ), where {Π i} is a permutation of {1,…,N}. In each case, the same set of state variables is not selected more than once in a cycle, i.e., there are no duplicates in the sets of state variables selected in a cycle.

[0041] Moreover, the processing unit 12 may perform a search in which the number of state variables of change candidates to be selected at one time is 1, and then perform a search in which the number of state variables of change candidates to be selected at one time is 2. Furthermore, the processing unit 12 may select state variables to be determined in an order that takes into consideration a constraint that only one of the state variables belonging to a predetermined group is 1.

[0042] According to the information processing device 10, a search process is executed to search for a solution to a problem expressed by an energy function including a plurality of state variables. The search process includes a selection process, a determination process, and a state change process. In the selection process, the processing unit 12 selects state variables of change candidates, which are a part of the plurality of state variables, in a predetermined order. In the determination process, the processing unit 12 determines whether or not to change the value of the state variable of the change candidate based on the amount of change in the value of the energy function corresponding to the change in the value of the state variable of the change candidate selected in the selection process. In the state change process, if it is determined in the determination process that the value of the state variable of the change candidate is to be changed, the processing unit 12 changes the value of the state variable of the change candidate. In the search process, the processing unit 12 repeatedly executes the selection process, the determination process, and the state change process in a predetermined order. In the search process, the processing unit 12 further executes a count process and a correction process. In the count process, the processing unit 12 counts the number of times that it is determined that the value of the state variable of the change candidate is not to be changed continuously in the repeatedly executed search process. In the correction process, when the number of times counted in the count process reaches a predetermined number, the processing unit 12 corrects the amount of change in the energy function corresponding to the change in the value of the state variable of the newly selected change candidate by an offset value. In the determination process after the amount of change is corrected by the correction process, the processing unit 12 determines whether or not to change the value of the state variable of the newly selected change candidate based on the amount of change after the correction.

[0043] This enables the information processing device 10 to perform a solution search more efficiently. In solving a problem expressed by an energy function, it is conceivable to select state variables sequentially as described above, and judge whether or not to permit a state transition related to the state variable based on the amount of change in energy. In this method, for example, after going through multiple state variables once, if none of the state transitions are permitted, the next round of judgments is started, and judgments are repeated for each state variable until a state transition is made. However, the more repetitions are made without a state transition being made, the more time is required to find a solution. For example, if ΔE iIf β>0, i.e., if the solution is trapped in a local solution or at low temperatures (β>>1), even if a full pass of evaluations is performed on all state variables, no state transition occurs, sampling efficiency decreases, and it may take a long time to find a solution.

[0044] Therefore, when the number of consecutive times that the information processing device 10 determines that the value of the state variable should not be changed reaches a predetermined number, the amount of change in energy is set to an offset value E off By correcting the state variables by E, the state transitions related to the state variables are easily accepted, and the state transitions are promoted. off =E off * By doing so, it is possible to reliably cause a state transition in at least one state variable and promote the state transition. In this way, by preventing stagnation of state transitions, the information processing device 10 can make the solution search more efficient. As a result, the information processing device 10 can arrive at a good solution in a short time. For example, it becomes possible to efficiently search for a good solution even for a problem with few reversal candidates, particularly a combinatorial optimization problem with many states in which the energy takes a local minimum value.

[0045] [Second embodiment] Next, a second embodiment will be described. FIG. 2 is a diagram illustrating an information processing apparatus according to the second embodiment.

[0046] Like the information processing device 10, the information processing device 20 searches for a solution to a combinatorial optimization problem using a type of MCMC method such as the SA method, the PT method, or the PA method, and outputs the searched solution. The information processing device 20 has a storage unit 21 and a processing unit 22. The storage unit 21 may be a volatile storage device such as a RAM, or a non-volatile storage device such as a HDD or a flash memory. The processing unit 22 may include a CPU, a DSP, an ASIC, an FPGA, a GPU, etc. The processing unit 22 may be a processor that executes a program. The "processor" may include a set of multiple processors (multiprocessor).

[0047] As described in the first embodiment, the combinatorial optimization problem is replaced with a problem of obtaining a set of values of a plurality of state variables that minimizes the energy function of Equation (1). The values of the plurality of state variables belonging to the state vector x of Equation (1) are stored in the storage unit 21.

[0048] The processing unit 22 sequentially selects state variables of change candidates, which are a part of the plurality of state variables, in a predetermined order. In one example, the processing unit 22 selects one state variable of the change candidate. Information indicating the predetermined order is preset in the storage unit 21. For example, the predetermined order may be the order of index i. Assuming that the number of all state variables is N, the order of index i is i = 1, 2, …, N - 1, N, 1, 2, … N, 1, 2, …. Alternatively, the predetermined order may be a random permutation Π1, Π2, …, Π N , Π1, Π2, …, where {Π i} is a permutation of {1, …, N}. Note that, as will be described later, the processing unit 22 may select two or more state variables of change candidates at a time.

[0049] The processing unit 22 determines whether to change the value of the selected state variable x i based on the amount of change in energy ΔE represented by Equation (2). More specifically, the processing unit 22 makes the determination by comparing the transition acceptance probability A represented by Equation (3) i (ΔE i ) with a random number u (0 < u < 1). The method of this determination is the same as the determination by the processing unit 12. When the processing unit 22 determines to change the value, it changes the value of the state variable x i and selects the next state variable to be determined according to the above predetermined order. i

[0050] On the other hand, when the processing unit 22 determines not to change the value of the state variable x i , it does not change the value of the state variable x i and selects the next state variable to be determined. The processing unit 22 records in the storage unit 21 the number of consecutive determinations not to change the value of the state variable.

[0051] Then, when the number of consecutive determinations that the value of the state variable should not be changed reaches a predetermined number, the processing unit 22 determines, based on a probability key value calculated according to the amount of change in energy and the random number, which of the multiple state variables the value of which is to be changed, and changes the value of the determined state variable.

[0052] For example, the processing unit 22 calculates the state variables whose values ​​are to be changed by the weighted probability P i It is conceivable to select based on the above.

[0053]

number

[0054] Weighted Probability P i After several trials, the state variable x i In this case, the processing unit 22 calculates the random number r in the formula (7) and calculates the index that satisfies the formula (8). k State variable x k We decide to change the value of . We can consider r in equation (7) as a kind of probability key value.

[0055]

number

[0056]

number

[0057] Alternatively, the processing unit 22 may calculate a probability key value k i =k i (ΔE i ,u i ) for each state variable, and k i It may be decided to change the value of the state variable where u is at its maximum or minimum value. i is 0 i <1 are mutually independent uniform random numbers.​

[0058]

number

[0059]

number

[0060]

number

[0061] When using the formulas (9) and (10), the processing unit 22 calculates k i When using the formula (11), the processing unit 22 selects the state variable for which k i The state variable for which is the minimum value is selected. Equation (11) corresponds to the Metropolis method. The log in each equation is the natural logarithm. The denominator in equation (10) is A i and the numerator is log(u i ).

[0062] This allows the value of one of the state variables to be appropriately changed when state transitions are stagnant, facilitating the solution search. When the processing unit 22 changes the value of one of the state variables based on the probability key value, it selects the next state variable to be judged, and restarts counting the number of times it has been judged that the value of the state variable has not been changed consecutively from 0. Note that the state variable x i The next state variable to be determined after changing the value of x is selected according to the above-mentioned predetermined order. i It may be the next state variable in the sequence, or it may be the first state variable in the sequence.

[0063] For example, the processing unit 22 may select a state variable whose value is to be changed based on the probability key value when the number of consecutive times that the value of the state variable is determined not to be changed reaches a round of determinations, Z. When the number of state variables to be changed that are selected at one time is one, the round of determinations, Z, may be Z=N.

[0064] 2 shows an example of processing by the information processing device 20. For example, a state vector 30 is a vector of state variables x1, x2, ..., x N The number of judgments in one round is Z=N. The processing unit 22 performs the following operations: N Then, when the number of consecutive times that the processing unit 22 has determined that the value of the state variable should not be changed reaches Z=N, the processing unit 22 selects the state variable one by one in order and determines whether to accept the state transition. i (ΔE i ,u i ), for example, the probability key value k M (ΔE M ,u M ) corresponding to the state variable x M We decide to change the value of the state variable x M For example, the processing unit 22 changes the value of the probability key value k obtained while continuously determining that the value of the state variable is not changed depending on which of the formulas (9) to (11) is used. i (ΔE i ,u i ) is stored in the storage unit 21, the probability key value k M (ΔE M ,u M ) can be obtained.

[0065] The processing unit 22 may select two or more state variables as change candidates at a time and change the values ​​of the two or more state variables of the change candidates simultaneously for one transition determination. The processing unit 22 can calculate ΔE when changing the values ​​of two or more state variables from the change in energy for each of the two or more state variables based on formula (2).

[0066] For example, the sequence for selecting two state variables may be expressed by using a set of indexes as (1,2),(1,3),...,(1,N),(2,3),(2,4),...,(2,N),...,(N-1,N). In this case, the number of judgments in one round is Z=(N-1)+(N-2)+...+1={N(N-1)} / 2.

[0067] Alternatively, the sequence of selecting two state variables is (Π1,Π2),(Π1,Π3),…,(Π N-1 ,Π N ), where {Π i} is a rearrangement of {1, ..., N}. In either case, the same set of state variables is not selected more than once in one cycle, that is, there are no duplicate sets of state variables selected in one cycle. If the number of state variables of change candidates selected at one time is a (a is an integer equal to or greater than 1), the number of state variables selected by the processing unit 22 based on the probability key value is also a.

[0068] Moreover, the processing unit 22 may perform a search in which the number of state variables of change candidates to be selected at one time is 1, and then perform a search in which the number of state variables of change candidates to be selected at one time is 2. Furthermore, the processing unit 22 may select state variables to be determined in an order that takes into consideration a constraint that only one of the state variables belonging to a predetermined group is 1.

[0069] According to the information processing device 20, a search process is executed to search for a solution to a problem expressed by an energy function including a plurality of state variables. The search process includes a selection process, a determination process, and a state change process. In the selection process, the processing unit 22 selects state variables of change candidates, which are a part of the plurality of state variables, in a predetermined order. In the determination process, the processing unit 22 determines whether or not to change the value of the state variable of the change candidate based on the amount of change in the value of the energy function corresponding to the change in the value of the state variable of the change candidate selected in the selection process. In the state change process, if it is determined in the determination process that the value of the state variable of the change candidate is to be changed, the processing unit 22 changes the value of the state variable of the change candidate. In the search process, the processing unit 22 repeatedly executes the selection process, the determination process, and the state change process in a predetermined order. The processing unit 22 executes a count process to count the number of times that it is determined not to continuously change the value of the state variable of the change candidate in the repeatedly executed search process. When the number of times counted in the counting process reaches a predetermined number, the processing unit 22 selects a first state variable from the multiple state variables based on a probability key value calculated according to the amount of change and a random value value, and changes the value of the first state variable.

[0070] This enables the information processing device 20 to perform a solution search more efficiently. In solving a problem expressed by an energy function, it is conceivable to select state variables sequentially as described above, and judge whether or not to permit a state transition related to the state variable based on the amount of change in energy. In this method, for example, after going through multiple state variables once, if none of the state transitions are permitted, the next round of judgments is started, and judgments are repeated for each state variable until a state transition is made. However, the more repetitions are made without a state transition being made, the more time is required to find a solution. For example, if ΔE i If β>0, i.e., if the solution is trapped in a local solution or at low temperatures (β>>1), even if a full pass of evaluations is performed on all state variables, no state transition occurs, sampling efficiency decreases, and it may take a long time to find a solution.

[0071] Therefore, when the number of times that the information processing device 20 has consecutively determined that the value of the state variable should not be changed reaches a predetermined number, the state variable to be transitioned is determined by a probability key value according to the amount of change in energy and a random value, and the value of the state variable is changed, thereby promoting a state transition. In this way, by preventing stagnation of state transition, the information processing device 20 can make the solution search more efficient. As a result, the information processing device 20 can arrive at a good solution in a short time. For example, it becomes possible to efficiently search for a good solution even for problems with few reversal candidates, particularly combinatorial optimization problems with many states in which the energy takes a local minimum value.

[0072] The information processing devices 10 and 20 will be described in more detail below. [Third embodiment] Next, a third embodiment will be described.

[0073] FIG. 3 illustrates an example of hardware of an information processing apparatus according to the third embodiment. The information processing device 100 searches for a solution to a combinatorial optimization problem using the MCMC method and outputs the searched solution. The information processing device 100 includes a CPU 101, a RAM 102, an accelerator card 103, a HDD 104, a GPU 105, an input IF (Interface) 106, a media reader 107, and a NIC (Network Interface Card) 108.

[0074] CPU 101 is a processor that executes program instructions. CPU 101 loads at least a part of the programs and data stored in HDD 104 into RAM 102 and executes the programs. CPU 101 may include multiple processor cores. Information processing device 100 may have multiple processors. The processes described below may be executed in parallel using multiple processors or processor cores. A set of multiple processors may be called a "multiprocessor" or simply a "processor."

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

[0076] The accelerator card 103 is a hardware accelerator that uses the MCMC method to search for a solution to a problem expressed by an Ising-type energy function expressed by formula (1). The accelerator card 103 can be used as a sampler that samples a state following the Boltzmann distribution at a given temperature by performing the MCMC method at a constant temperature or the PT method that exchanges the state of an Ising model between multiple temperatures. To solve a combinatorial optimization problem, the accelerator card 103 executes annealing processes such as the PT method or the SA method that gradually lowers the temperature value.

[0077] The SA method is a method for efficiently finding an optimal solution by lowering the temperature value used during sampling from a high temperature to a low temperature, i.e., by increasing the inverse temperature β. Even on the low temperature side, i.e., when β is large, the state changes to some extent, so that it is more likely that a good solution can be found even if the temperature value is lowered quickly. For example, when the SA method is used, the accelerator card 103 repeats the operation of trying state transitions at a constant temperature value a certain number of times and then lowering the temperature value.

[0078] The PT method is a technique in which the MCMC method is executed independently using multiple temperature values, and the temperature values ​​are appropriately exchanged for the states obtained at each temperature value. A good solution can be found efficiently by searching a narrow range of the state space by MCMC at low temperatures and searching a wide range of the state space by MCMC at high temperatures. For example, when the PT method is used, the accelerator card 103 performs parallel trials of state transitions at each of multiple temperature values, and repeats the operation of exchanging the temperature values ​​for the states obtained at each temperature value with a predetermined exchange probability every time a certain number of trials are performed.

[0079] The accelerator card 103 includes an FPGA 111 and a RAM 112. The FPGA 111 realizes a search function in the accelerator card 103. The search function may be realized by other types of integrated circuits such as a GPU or an ASIC. The RAM 112 holds data used in the search by the FPGA 111 and a solution searched by the FPGA 111.

[0080] A hardware accelerator that searches for a solution to an Ising-type problem, such as the accelerator card 103, is sometimes called an Ising machine, a Boltzmann machine, etc. The information processing device 100 may have a plurality of accelerator cards.

[0081] The HDD 104 is a non-volatile storage device that stores software programs such as an OS (Operating System), middleware, and application software, as well as data. The information processing device 100 may include other types of storage devices, such as a flash memory or an SSD (Solid State Drive), or may include multiple non-volatile storage devices.

[0082] The GPU 105 outputs an image to a display 51 connected to the information processing device 100 in accordance with an instruction from the CPU 101. As the display 51, any type of display can be used, such as a CRT (Cathode Ray Tube) display, a liquid crystal display (LCD: Liquid Crystal Display), a plasma display, or an organic EL (OEL: Organic Electro-Luminescence) display.

[0083] The input IF 106 acquires an input signal from an input device 52 connected to the information processing device 100, and outputs the signal to the CPU 101. As the input device 52, a pointing device such as a mouse, a touch panel, a touch pad, or a trackball, a keyboard, a remote controller, a button switch, or the like can be used. Furthermore, a plurality of types of input devices may be connected to the information processing device 100.

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

[0085] The medium reader 107 copies, for example, the program or data read from the recording medium 53 to another recording medium such as the RAM 102 or the HDD 104. The read program is executed, for example, by the CPU 101. Note that the recording medium 53 may be a portable recording medium, and may be used for distributing the program or data. The recording medium 53 and the HDD 104 may also be referred to as computer-readable recording media.

[0086] The NIC 108 is an interface that is connected to the network 54 and communicates with other computers via the network 54. The NIC 108 is connected to a communication device such as a switch or a router via a cable.

[0087] Here, the FPGA 111 is an example of the processing unit 12 of the first embodiment and the processing unit 22 of the second embodiment. The RAM 112 is an example of the storage unit 11 of the first embodiment and the storage unit 21 of the second embodiment.

[0088] The function of the accelerator card 103 may be realized by causing the CPU 101 to execute a program stored in the RAM 102. In this case, the CPU 101 is an example of the processing unit 12 of the first embodiment and the processing unit 22 of the second embodiment. The RAM 102 is an example of the storage unit 11 of the first embodiment and the storage unit 21 of the second embodiment.

[0089] FIG. 4 is a diagram illustrating an example of functions of the information processing device. The information processing device 100 includes a coefficient holding unit 120, a search processing unit 130, and a control unit 190. The coefficient holding unit 120 uses storage areas of the RAM 102 and the HDD 104. The search processing unit 130 is realized by the accelerator card 103. The control unit 190 is realized by causing the CPU 101 to execute a program stored in the RAM 102.

[0090] The coefficient storage unit 120 stores weighting coefficients {W ij} is preserved. The search processing unit 130 searches for a solution corresponding to the ground state of the Ising model based on the energy function and the weighting coefficients stored in the coefficient storage unit 120. Here, one set of all state variables included in the energy function is called a replica. The search processing unit 130 has a replica update unit 140, an index generation unit 150, and a random number generation unit 160.

[0091] The replica update unit 140 updates a single replica using the SA method, the PT method, etc. The replica update unit 140 sequentially selects state variables that are candidates for a state transition based on an index input by the index generation unit 150. The details of the replica update unit 140 will be described later.

[0092] The index generating unit 150 generates an index indicating the state variable of the next change candidate, and inputs it to the replica updating unit 140. The index generating unit 150 generates the index in a predetermined order designated in advance by the control unit 190, and inputs it to the replica updating unit 140. In one example, the number of state variables of the change candidate in one trial is one. In this case, the index generating unit 150 inputs one index indicating the state variable of the next change candidate to the replica updating unit 140.

[0093] For example, the predetermined order may be the order of index i. If the number of all state variables is N, then the order of index i is i=1, 2, ..., N-1, N, 1, 2, ..., N, 1, 2, .... Alternatively, the order may be such that indexes are randomly skipped from the order of index i. For example, the following document 1 is a useful reference for such a method.

[0094] Reference 1: Ren et al., “Acceleration of Markov chain Monte Carlo simulations through sequential updating,” J.Chem. Phys. Volume 124, Issue 6, 064109, 2006. Alternatively, the predetermined order may be a random permutation Π1, Π2, …, Π N , Π1, Π2, … . However, {Π i} is a permutation of {1, …, N}. The order of the permutation of {1, …, N} for {Π i} may be changed at every round or at a predetermined timing for several rounds. Note that, as will be described later, the number of state variables of the change candidates in one trial may be two or more. In this case, the index generation unit 150 inputs two or more indexes indicating the state variables of the next change candidate to the replica update unit 140.

[0095] The random number generation unit 160 generates a uniform random number u (0 < u < 1) used for the acceptance determination of the state transition based on the transition acceptance probability A in Equation (3) i or the transition acceptance probability A' in Equation (4) i and inputs it to the replica update unit 140.

[0096] The control unit 190 acquires the information of the combinatorial optimization problem input by the user and generates the information of the energy function corresponding to the combinatorial optimization problem. The control unit 190 stores the weight coefficient corresponding to the combinatorial optimization problem in the coefficient holding unit 120. The control unit 190 inputs parameters such as the temperature value used for the search and the order of the indexes generated by the index generation unit 150 to the search processing unit 130 and starts the solution search by the search processing unit 130.

[0097] The control unit 190 acquires the solution searched by the search processing unit 130. The control unit 190 converts the acquired solution into the form of the solution for the combinatorial optimization problem and provides the solution to the user by displaying it on the display 51 or transmitting it to the terminal device used by the user via the network 54.

[0098] Note that, for example, the following Document 2 is a reference for the method of sequentially performing the transition determination as described above. Reference 2: Manousiothakis et al., “Strict Detailed Balance is Unnecessary in Monte Carlo Simulation,” J.Chem. Phys. Volume 110, Issue 6, pp.2753-2756, 1999. FIG. 5 illustrates an example of the functions of the replica update unit.

[0099] The replica update unit 140 includes a cache 141 , a state holding unit 142 , a ΔE calculation unit 143 , an acceptance determination unit 144 , and an offset setting unit 145 . The cache 141 stores the weighting factor {W 1i ,W 2i ,…,W Ni The replica update unit 140 holds the weighting coefficients {W 1i ,W 2i ,…,W Ni} into the cache 141.

[0100] The state storage unit 142 stores the current values ​​of a number of state variables {x1, x2, ..., x N}, energy E corresponding to the current values ​​of the state variables, and the inverse β of the current temperature value. N The local fields h1,h2,…,h N The local field h i is expressed by equation (12).

[0101]

number

[0102] The state storage unit 142 generates a local field h associated with the index i of the next transition candidate input by the index generation unit 150. i is output to the ΔE calculation unit 143. The ΔE calculation unit 143 calculates the local field h iBased on this, the change in energy ΔE i Calculate.

[0103]

number

[0104] The ΔE calculation unit 143 calculates the ΔE i to the acceptance determination unit 144. The acceptance judgment unit 144 judges whether the ΔE i The offset value E input from the offset setting unit 145 off The acceptance determination unit 144 performs a correction by subtracting the amount of change after the correction (ΔE i -E off ), the transition acceptance probability A' in Eq. (4) is i In addition, normally, the offset setting unit 145 calculates E off = 0. E off If =0, the transition acceptance probability A' i =A i It is.

[0105] The acceptance determination unit 144 receives a uniform random number u from the random number generation unit 160 and a transition acceptance probability A' i The acceptance decision unit 144 decides whether or not to accept the state transition of index i by comparing with u <A’ i If so, the processing unit 12 accepts the state transition of the index i. <A’ i Otherwise, the state transition of index i is not accepted, that is, the state transition of index i is rejected.

[0106] In addition, the acceptance determination unit 144 determines whether u,A' i Take the natural logarithm of log(u)<-β(ΔE i -E off), the state transition of index i may be accepted, and if not, the state transition of index i may not be accepted. In this way, for example, the acceptance decision unit 144 may hold information on log(u) and make a decision by calculating the left side of the decision equation, and the transition acceptance probability A' i Since it is not necessary to calculate the above, the acceptance decision can be made quickly.

[0107] When the state holder 142 accepts the state transition of the index i, the state holder 142 notifies the state holder 142 that the state transition of the index i is accepted. Based on the notification, the state holder 142 updates the state variable x i In addition, the state holding unit 142 inverts the value of ΔE i Based on this, E=E+ΔE i Furthermore, the state holding unit 142 updates the local fields h1, h2, ..., h N Update.

[0108] Here, the state variable x j When the value of is inverted, the local field h i The change in δh i (j) is expressed by equation (14).

[0109]

number

[0110] When rejecting the state transition of index i, acceptance determination unit 144 notifies offset setting unit 145 that the state transition of index i is rejected. The offset setting unit 145 sets the offset value E off The offset setting unit 145 includes an offset holding unit 145a and an offset control unit 145b.

[0111] The offset holding unit 145a holds the offset value E off The offset value E held by the offset holding unit 145a is output to the acceptance determination unit 144. offThe offset value E is set by the offset control unit 145b. off The default value of is 0. The offset value E held by the offset holding unit 145a off is reset to 0 by the acceptance determination unit 144 when the acceptance determination unit 144 accepts the state transition.

[0112] The offset control unit 145b counts the number of times that the state transition is consecutively rejected by the acceptance determination unit 144, and when the number of times reaches the number of determinations Z for one round of transition determination, the offset value E off from 0 to E off * Change to E off * is expressed by Equation (5). For example, when the number of state variables of change candidates selected at one time is one, the number of determinations in one round Z may be Z=N. The offset control unit 145b determines the minimum value ΔE min By holding this, when the number of consecutive rejections reaches Z, E off * = ΔE min As, E off * can be obtained.

[0113] The calculation function in the replica updating unit 140, the index generating unit 150, and the random number generating unit 160 are realized by an FPGA 111. For data storage in the replica updating unit 140, a RAM 112 is used.

[0114] The search processing unit 130 may be realized by causing the CPU 101 to execute a program stored in the RAM 102. In this case, information held in the search processing unit 130 may be held in the cache of the RAM 102 or the CPU 101.

[0115] FIG. 6 is a flowchart illustrating an example of processing by the information processing device. (S10) The control unit 190 stores weighting coefficients in the coefficient holding unit 120 and initializes the replica update unit 140. In the initialization, the control unit 190 sets an initial temperature value used in the SA method or the PT method, a number of trial repetitions in the search (prescribed number of times), in the replica update unit 140, and sets the order in which the state variables are scanned in the index generation unit 150. The control unit 190 sets an initial solution (state variables x1, x2, ..., x N The control unit 190 may set the offset value E held in the offset holding unit 145a, the initial value of the local field, and the initial value of the energy. off E off Furthermore, the control unit 190 resets the unupdated counter n held in the offset control unit 145b to n=0, and min to a relatively large initial value. The unupdated counter n is a counter for counting the number of times that a state transition has been rejected consecutively. Then, the control unit 190 causes the search processing unit 130 to start a solution search.

[0116] (S11) The replica update unit 140 reads the next index i generated by the index generation unit 150. The replica update unit 140 calculates the weighting factor {W 1i ,W 2i ,…,W Ni} into the cache 141.

[0117] (S12) The replica update unit 140 updates ΔE i Calculation of ΔE i E for off Subtraction of and ΔE min As mentioned above, ΔE i The calculation of ΔE is performed by the ΔE calculation unit 143. i E for off The subtraction of ΔE is performed by the acceptance determination unit 144. min The update of ΔE is performed by the offset control unit 145b. min The update of ΔE min =min(ΔE min ,max(0,ΔE i )).

[0118] (S13) The replica update unit 140 determines whether to accept the inversion of the value of the state variable x based on the uniform random number u input by the random number generation unit 160, that is, whether to accept the state transition of the index i. The determination of the value of the state variable x i is accepted, that is, when the state transition of the index i is accepted, the process proceeds to step S14. If the inversion of the value of the state variable x i is not accepted, that is, when the state transition of the index i is rejected, the process proceeds to step S15. The determination in step S13 is performed by the acceptance determination unit 144. As described above, the acceptance determination unit 144 may determine whether the determination formula of u < A’ i is true in the determination of step S13, or may determine whether the determination formula of log(u) < -β(ΔE i - E i ) is true. off ) is true.

[0119] (S14) The replica update unit 140 updates the state variable x i and the local field h i . Also, the replica update unit 140 resets n = 0 and E off = 0, and resets ΔE min . Specifically, the replica update unit 140 inverts the value of the state variable x i held in the state holding unit 142 to update the energy to E = E + ΔE i , and updates the local field {h1, h2,..., h N} according to the inversion. Then, the process proceeds to step S18.

[0120] (S15) The replica update unit 140 determines whether the unupdated counter n is equal to or greater than the number of determination times N in one cycle, that is, whether n ≧ N. If n ≧ N, the process proceeds to step S16. If n < N, the process proceeds to step S17. The determination in step S15 is performed by the offset control unit 145b.

[0121] The determination in step S15 can also be said to be whether or not the unupdated counter n has reached the number of determinations N for one cycle, that is, whether or not n = N. If n = N, the process proceeds to step S16, and if n ≠ N, the process proceeds to step S17.

[0122] (S16) The replica update unit 140 off = ΔE min Specifically, the offset control unit 145b sets the offset value held in the offset holding unit 145a to E off = ΔE min Then, the process proceeds to step S18.

[0123] (S17) The replica update unit 140 increments the unupdated counter n. Specifically, the offset control unit 145b sets n to n + 1. Then, the process proceeds to step S18.

[0124] (S18) The replica update unit 140 determines whether or not the value of the state variable has been updated a prescribed number of times. If the value has been updated the prescribed number of times, the process ends. If the value has not been updated the prescribed number of times, the process proceeds to step S11.

[0125] According to the above procedure, if the scan completes without inversion, the next scan will have at least ΔE i At the index where A' is the minimum i = 1, so the value of at least one state variable can be inverted in the next scan.

[0126] As described above, the search processing unit 130 can use the SA method, the PT method, or the like to search for a solution. In the SA method or the PT method, the temperature value T for the replica is changed at a predetermined timing. For this reason, the above steps S11 to S18 may be considered as a series of procedures for one temperature value T. For example, if the answer is YES in step S18, the search processing unit 130 repeats the procedure of changing the temperature value T to the next temperature value T and repeating steps S11 to S18, and outputs a set of values ​​of a plurality of state variables finally obtained by the state holding unit 142 to the control unit 190 as a solution. The search processing unit 130 may output the energy corresponding to the solution to the control unit 190 together with the solution.

[0127] In step S15, it is determined whether the value of the state variable has gone through one cycle without being inverted based on the unupdated counter n. There are two possible methods for determining whether the scanning of the state variables has gone through one cycle. In the first method, it is determined that a cycle has been completed when all permutations of the indexes generated in advance have been consumed. In the second method, it is determined that a cycle has been completed when N number of state variables have elapsed from the middle of the previous cycle. The flowchart in FIG. 6 illustrates the second method, but the first method may also be used.

[0128] The search processing unit 130 may select two or more state variables as change candidates at a time and change the values ​​of two or more state variables as change candidates simultaneously for one transition determination. The search processing unit 130 can calculate ΔE when changing the values ​​of two or more state variables from the change in energy for each of the two or more state variables based on formula (2).

[0129] For example, the sequence of selecting two state variables may be ordered using a set of indices: (1,2),(1,3),...,(1,N),(2,3),(2,4),...,(2,N),...,(N-1,N). Alternatively, the sequence of selecting two state variables may be ordered as (Π1,Π2),(Π1,Π3),...,(Π N-1 ,Π N ), where {Π i} is a rearrangement of {1, ..., N}. i The order of arrangement of {1, ..., N} for {1, ..., N} may be changed at a predetermined timing every round or every several rounds.

[0130] Moreover, the search processing unit 130 may perform a search in which the number of state variables of change candidates selected at one time is one, and then perform a search in which the number of state variables of change candidates selected at one time is two. Furthermore, the search processing unit 130 may select state variables to be determined in an order that takes into consideration a constraint that only one of the state variables belonging to a predetermined group is 1. Such constraints include, for example, those called 1W1H (1-Way 1-Hot) and 2W1H (2-Way 1-Hot).

[0131] In addition, if two state variables are changed simultaneously in a parallel search in which multiple state transitions are simultaneously selected as transition candidates and one state transition is selected from among them, the number of combinations of transition candidates increases to N(N-1). For this reason, it is not realistic to perform a search in which two or more state variables are changed simultaneously in a parallel search. On the other hand, a method of selecting state variables sequentially can easily perform a search in which two or more state variables are changed simultaneously, improving the degree of freedom of the search. As an example of parallel search, JP 2019-125155 A can be referred to.

[0132] Here, in solving a problem represented by an energy function, it is possible to select state variables sequentially as described above, and determine whether or not to allow a state transition related to the state variable based on the amount of change in energy. In this method, for example, if a plurality of state variables are cycled through and none of the state transitions are allowed, the next cycle of determination is started, and so on. In this way, determinations are repeated for each state variable until a state transition is made. However, the more the number of repetitions increases without a state transition being made, the more time is required to find a solution.

[0133] Therefore, when the number of consecutive times that the information processing device 100 determines that the value of the state variable should not be changed reaches a predetermined number, the amount of change in energy is set to an offset value E off By correcting the state variables by E, the state transitions related to the state variables are easily accepted, and the state transitions are promoted. off =E off * By so doing, a state transition can be reliably caused in at least one state variable, and the state transition can be promoted.

[0134] In this way, by preventing stagnation of state transitions, the information processing device 100 can make solution searches more efficient. As a result, the information processing device 100 can arrive at a good solution in a short time. For example, it becomes possible to efficiently search for a good solution even for a problem with few reversal candidates, particularly a combinatorial optimization problem with many states in which the energy takes a local minimum value.

[0135] FIG. 7 is a diagram showing an example (part 1) of the solution result. Graph G10 shows an example of the solution results at low temperature (T = 0.01) for the ferromagnetic Ising model. Graph G10 plots the number of trials that reached a solution and their cumulative frequency when 200 simulations were performed with different random number seeds. The horizontal axis of graph G10 is the number of trials that reached a solution. The vertical axis of graph G10 shows the cumulative frequency of runs that reached a solution as a percentage. A run corresponds to one of the 200 simulations.

[0136] Here, the number of state variables of the ferromagnetic Ising model set in the problem is 32 x 32 = 1024, and periodic boundary conditions are imposed. The initial state of the search is random, and in the ground state (lowest energy state), all state variables are 0 or 1. In this case, it is estimated that theoretically, about 2 / 3 of the runs will be trapped in a local solution.

[0137] Graph G10 shows series G11, G12, and G13. A sequence G11 shows the results when a parallel search is used in which multiple state transitions are simultaneously considered as transition candidates and one state transition is selected from among them.

[0138] The sequence G12 sequentially selects the state variables and sets the offset value E off This is the result when the search is performed without applying A sequence G13 sequentially selects state variables and calculates an offset value E off This is the result when a search is performed by applying the above.

[0139] Comparing the sequences G11 and G12, it is clear that the sequential method is about three times faster than the parallel search that simultaneously treats multiple state transitions as transition candidates. In addition, comparing the series G12 and G13, we can see that applying an offset value in the sequential method further increases the percentage of runs that reach a solution. In this way, by using an offset value, more runs reach a solution in a relatively short time, improving solution-finding performance.

[0140] FIG. 8 is a diagram showing an example (part 2) of the solution result. Graph G20 shows an example of the solution result for the Quadratic Assignment Problem (QAP) using the PT method. Graph G20 plots the number of trials that reached a solution and their cumulative frequency when 200 simulations were performed with different random number seeds. The horizontal axis of graph G20 is the number of trials that reached a solution. The vertical axis of graph G20 shows the cumulative frequency of runs that reached a solution, expressed as a percentage.

[0141] Here, the target QAP is esc16a of QAPLIB. The number of state variables is 16 × 16 = 256. In the initial state, all state variables are set to 0. The range of the temperature value T is 0.5 to 5.0. The number of replicas is 26. The number of attempts before exchanging the temperature value or state, i.e., the exchange interval, is 256.

[0142] Graph G20 shows series G21, G22, and G23. The sequence G21 is the result when a parallel search is used in which multiple state transitions are simultaneously considered as transition candidates and one state transition is selected from among them.

[0143] The sequence G22 sequentially selects the state variables and calculates the offset value E off This is the result when the search is performed without applying A sequence G23 sequentially selects state variables and calculates an offset value E off This is the result when a search is performed by applying the above.

[0144] Comparing series G23 with series G21 and G22, the offset value E off It can be seen that the number of trials required to reach a solution is reduced by about half by using the offset value E off It is possible to escape from the local solution with fewer trials by using the offset value E off It is possible to reach the optimal solution several times faster than if the method does not use

[0145] [Fourth embodiment] Next, a fourth embodiment will be described. Differences from the third embodiment will be mainly described, and descriptions of common points will be omitted.

[0146] FIG. 9 illustrates an example of functions of a replica update unit according to the fourth embodiment. The information processing device 100a is realized by the same hardware as the information processing device 100. Similarly to the information processing device 100, the information processing device 100a has the coefficient holding unit 120, the search processing unit 130, and the control unit 190 illustrated in Fig. 4. In Fig. 9, the replica update unit 140a, the index generation unit 150, and the random number generation unit 160 included in the search processing unit 130 are illustrated, and the search processing unit 130 and the control unit 190 are omitted.

[0147] The information processing device 100a differs from the third embodiment in that the search processing unit 130 has a replica updating unit 140a instead of the replica updating unit 140. Replica update unit 140a has cache 141, state holding unit 142, ΔE calculation unit 143, acceptance determination unit 144, and probability key setting unit 146. Cache 141, state holding unit 142, ΔE calculation unit 143, and acceptance determination unit 144 perform the same processing as the functions with the same names in Fig. 5. However, in the fourth embodiment, when acceptance determination unit 144 rejects a state transition of index i, it notifies probability key setting unit 146 that the state transition of index i is rejected.

[0148] The probability key setting unit 146 determines the probability key value k for the index i based on the formula (11). i In the fourth embodiment, the probability key value is abbreviated to probability key. The probability key setting unit 146 counts the number of times that the state transition is consecutively rejected by the acceptance judgment unit 144, and when the number of times reaches the number of judgments Z for one round of transition judgment, the probability key k i The state variable whose value is to be changed is determined based on the above, and the state holding unit 142 is notified of the determined state variable.

[0149] For example, when the number of state variables of change candidates selected at one time is one, the number of judgments in one round Z may be Z = N. The probability key setting unit 146 determines the minimum value k of the probability key obtained while the state transition is continuously rejected. min and k min ΔE used in the calculation m When the number of consecutive rejections reaches Z, the probability key setting unit 146 sets the index m of the held k min The state variable of index m corresponding to the k is determined as the transition target. min The state variable x corresponding to m and ΔE m The state holder 142 is notified of this.

[0150] The state storage unit 142 stores the state variable x mIn addition, the state holding unit 142 inverts the value of ΔE m Based on this, E=E+ΔE m Furthermore, the state holding unit 142 updates the local fields h1, h2, ..., h N Update.

[0151] The probability key setting unit 146 determines the probability key k based on the formula (9) or the formula (10). i In this case, as described above, the probability key setting unit 146 changes the value of the state variable that has the maximum probability key. Also, the probability key setting unit 146 may determine the state variable whose value is to be changed based on the weighted probability P i In this case, the probability key setting unit 146 calculates the random number r in the formula (7) and determines the index that satisfies the formula (8). k State variable x k We decide to change the value of . The r in equation (7) is the random number u and the change amount ΔE i It can also be thought of as a probability key according to

[0152] The search processing unit 130 or the replica updating unit 140a, index generating unit 150, and random number generating unit 160 included in the search processing unit 130 are realized by the accelerator card 103 provided in the information processing device 100a. The calculation function of the replica updating unit 140a, the index generating unit 150, and the random number generating unit 160 are realized by an FPGA 111. A RAM 112 is used to hold data in the replica updating unit 140a.

[0153] The search processing unit 130 or the replica update unit 140a, index generation unit 150, and random number generation unit 160 included in the search processing unit 130 may be realized by causing the CPU 101 to execute a program stored in the RAM 102 of the information processing device 100a. In this case, the information held in the search processing unit 130 may be held in the cache of the RAM 102 or the CPU 101.

[0154] FIG. 10 is a flowchart illustrating an example of processing by the information processing device. (S20) The control unit 190 stores weighting coefficients in the coefficient holding unit 120, and initializes the replica update unit 140a. In the initialization, the control unit 190 sets an initial temperature value used in the SA method or the PT method, and a number of repeated trials in the search (prescribed number), in the replica update unit 140a, and sets the order in which state variables are scanned in the index generation unit 150. The control unit 190 may set an initial solution, an initial value of the local field, and an initial value of the energy in the replica update unit 140a. The control unit 190 also sets the k min to a relatively large initial value. Furthermore, the control unit 190 resets the unupdated counter n held in the probability key setting unit 146 to n = 0. Then, the control unit 190 causes the search processing unit 130 to start a solution search.

[0155] (S21) The replica update unit 140a reads the next index i generated by the index generation unit 150. The replica update unit 140a calculates the weighting factor {W 1i ,W 2i ,…,W Ni} into the cache 141.

[0156] (S22) The replica update unit 140a updates ΔE i Calculation of and k min As mentioned above, ΔE i The calculation of is performed by the ΔE calculation unit 143. min The update of k is performed by the probability key setting unit 146. min Update of k min =min(k min ,k i ) is expressed as k i is expressed by the formula (11). The probability key setting unit 146 determines k min ΔE corresponding to i and also the index i.

[0157] (S23) The replica update unit 140a updates the state variable x based on the uniform random number u input by the random number generation unit 160.i Determine whether to accept the inversion of the value, that is, whether to accept the state transition of index i. State variable x i Accept the determination of the value, that is, when accepting the state transition of index i, the process proceeds to step S24. State variable x i If the inversion of the value is not accepted, that is, if the state transition of index i is rejected, the process proceeds to step S25. The determination in step S23 is performed by the acceptance determination unit 144. As described above, in the determination of step S23, the acceptance determination unit 144 may determine whether the determination formula of u < A’ i is true, or may determine whether the determination formula of log(u) < -β(ΔE i - E off ) is true.

[0158] (S24) The replica update unit 140a updates the state variable x i and the local field h i . Also, the replica update unit 140a resets n = 0, E off = 0, and resets ΔE min . Specifically, the replica update unit 140a inverts the value of the state variable x i held in the state holding unit 142 to update the energy to E = E + ΔE i , and updates the local field {h1, h2,..., h N} according to the inversion. Then, the process proceeds to step S28.

[0159] (S25) The replica update unit 140a determines whether the unupdated counter n is equal to or greater than the number of determination times N for one cycle, that is, whether n ≥ N. If n ≥ N, the process proceeds to step S26. If n < N, the process proceeds to step S27. The determination in step S25 is performed by the probability key setting unit 146.

[0160] Note that the determination in step S25 can also be said to be to determine whether the unupdated counter n has reached the number of determination times N for one cycle, that is, whether n = N. If n = N, the process proceeds to step S26. If n ≠ N, the process proceeds to step S27.

[0161] (S26) The replica update unit 140a updates the probability key k min The state variable x corresponding to m and the local field h i The replica update unit 140a also resets n to 0 and updates k min Specifically, the replica update unit 140a resets the state variable x i Invert the value of and change the energy to E=E+ΔE m and update the local fields {h1,h2,…,h N} is updated. Then, the process proceeds to step S28.

[0162] (S27) The replica update unit 140a increments the unupdated counter n. Specifically, the probability key setting unit 146 sets n=n+1. Then, the process proceeds to step S28.

[0163] (S28) The replica update unit 140a judges whether or not the value of the state variable has been updated a prescribed number of times. If it has been updated the prescribed number of times, the process ends. If it has not been updated the prescribed number of times, the process proceeds to step S21.

[0164] According to the above procedure, when the scan has completed one cycle and no inversion has occurred, it is possible to invert the value of the state variable corresponding to the index where the probability key has become the minimum value. As described above, the search processing unit 130 can use the SA method, the PT method, or the like to search for a solution. In the SA method or the PT method, the temperature value T for the replica is changed at a predetermined timing. For this reason, the above steps S21 to S28 may be considered as a series of procedures for one temperature value T. For example, if YES is determined in step S28, the search processing unit 130 repeats the procedure of changing the temperature value T to the next temperature value T and repeating steps S21 to S28, and outputs a set of values ​​of a plurality of state variables finally obtained by the state holding unit 142 to the control unit 190 as a solution. The search processing unit 130 may output the energy corresponding to the solution to the control unit 190 together with the solution.

[0165] Also, in step S25, it is determined whether the value of the state variable has gone through one cycle without being inverted based on the unupdated counter n. There are two possible methods for determining whether the scanning of the state variables has gone through one cycle. In the first method, it is determined that a cycle has been completed when all permutations of the indexes generated in advance have been consumed. In the second method, it is determined that a cycle has been completed when N number of state variables have elapsed from the middle of the previous cycle. The flowchart in FIG. 10 illustrates the second method, but the first method may also be used.

[0166] The search processing unit 130 may select two or more state variables as change candidates at a time and change the values ​​of two or more state variables as change candidates simultaneously for one transition determination. The search processing unit 130 can calculate ΔE when changing the values ​​of two or more state variables from the change in energy for each of the two or more state variables based on formula (2).

[0167] For example, the sequence of selecting two state variables may be ordered using a set of indices: (1,2),(1,3),...,(1,N),(2,3),(2,4),...,(2,N),...,(N-1,N). Alternatively, the sequence of selecting two state variables may be ordered as (Π1,Π2),(Π1,Π3),...,(Π N-1 ,Π N ), where {Π i} is a rearrangement of {1, ..., N}. i The order of {1, ..., N} for {1, ..., N} may be changed once per round or at a predetermined timing every several rounds. If the number of state variables of change candidates selected at one time is a (a is an integer equal to or greater than 1), the number of state variables selected by the replica update unit 140a based on the probability key is also a.

[0168] The search processing unit 130 may perform a search in which the number of state variables of change candidates selected at one time is one, and then perform a search in which the number of state variables of change candidates selected at one time is two. Furthermore, the search processing unit 130 may select state variables to be determined in an order that takes into consideration a constraint that only one of the state variables belonging to a predetermined group is 1. Such constraints include, for example, those called 1W1H and 2W1H.

[0169] In addition, if multiple state transitions are simultaneously selected as transition candidates in a parallel search in which one state transition is selected from among them, for example, if two state variables are changed simultaneously, the number of combinations of transition candidates increases to N(N-1). For this reason, it is not realistic to perform a search in which two or more state variables are changed simultaneously in a parallel search. On the other hand, the method of selecting state variables sequentially makes it easy to perform a search in which two or more state variables are changed simultaneously, improving the freedom of search.

[0170] Here, in solving a problem represented by an energy function, it is possible to select state variables sequentially as described above, and determine whether or not to allow a state transition related to the state variable based on the amount of change in energy. In this method, for example, if a plurality of state variables are cycled through and none of the state transitions are allowed, the next cycle of determination is started, and so on. In this way, determinations are repeated for each state variable until a state transition is made. However, the more the number of repetitions increases without a state transition being made, the more time is required to find a solution.

[0171] Therefore, when the number of times that the information processing device 100a has consecutively determined that the value of the state variable should not be changed reaches a predetermined number, the state variable to be transitioned is determined by a probability key according to the amount of change in energy, and the value of the state variable is changed, thereby promoting the state transition. In this way, by preventing stagnation of the state transition, the information processing device 100a can make the solution search more efficient. As a result, the information processing device 100a can arrive at a good solution in a short time. For example, it becomes possible to efficiently search for a good solution even for a problem with few reversal candidates, particularly a combinatorial optimization problem with many states in which the energy takes a local minimum value.

[0172] Next, a comparative example of a search using a probability key will be described. In the comparative example, sampling by the RF (Rejection Free) method is exemplified. As an example of the RF method, JP 2020-135727 A is a reference. In the comparative example, calculations of N probability keys corresponding to N state variables are performed in parallel, and a state variable whose value is to be inverted is selected based on the N probability keys. Note that the CPU 101 is exemplified as a processing entity in the comparative example.

[0173] FIG. 11 is a flowchart showing a comparative example. (S30) The CPU 101 initializes the search process. In this initialization, an initial temperature value and a specified number of repetitions are set in the same manner as in step S20.

[0174] (S31) The CPU 101 reads the index. (S32) CPU 101 calculates probability keys k1, k2, ..., k N The calculation of k is performed in parallel. i For example, the CPU 101 operates a plurality of search processors in parallel to calculate probability keys k1, k2, ..., k N Calculate each of the following.

[0175] (S33) CPU 101 calculates probability keys k1, k2, ..., k N Obtain the calculation result of the smallest k i Explore. (S34) CPU 101 sets state variable x i and the local field h i (i.e., h1, h2, …, h N ) will be updated.

[0176] (S35) CPU 101 determines whether or not the value of the state variable has been updated a prescribed number of times. If it has been updated the prescribed number of times, the process ends. If it has not been updated the prescribed number of times, the process proceeds to step S31.

[0177] Similarly to FIG. 10, steps S31 to S35 may be considered as a procedure for one temperature value in the SA method or the like, or steps S31 to S35 may be considered as being repeatedly executed at each temperature value used in the PT method, annealing, or the like.

[0178] In the method of the comparative example, if the problem to be solved is equal to or smaller than the parallelism of a single device, the loop of steps S31 to S35 can be executed at high speed. However, if the problem scale is larger than the parallelism of the device, the following method is used. In the first method, a single device divides the entire index into multiple parts, executes steps S31 to S33 for each part in a time-sharing manner, and calculates k of the entire index. i In the second method, a device distributes partial indexes to multiple devices and executes steps S31 to S33 on each device. i The results of the acquisition are integrated in one device, and k in all indexes are i Search for the minimum of .

[0179] However, in the first method, the number of iterations of the loop from steps S31 to S35 becomes very large, increasing the calculation time, while in the second method, the calculation time increases due to the overhead of communication between multiple devices.

[0180] On the other hand, the information processing device 100a can suppress the increase in calculation time that occurs in the first and second methods, and can arrive at a good solution in a short time even for a relatively large-scale problem. [Fifth Embodiment] Next, a fifth embodiment will be described. Mainly, matters different from the above-described third and fourth embodiments will be described, and descriptions of common matters will be omitted.

[0181] FIG. 12 is a diagram showing a functional example of the information processing apparatus according to the fifth embodiment. The information processing apparatus 100b is realized by the same hardware as the information processing apparatus 100. Also, similar to the information processing apparatus 100, the information processing apparatus 100b has a replica control unit 170 in addition to the coefficient holding unit 120, the search processing unit 130, and the control unit 190 exemplified in FIG. 4. In FIG. 12, replica update units 140b1, 140b2,..., 140bn and an index generation unit 150 included in the search processing unit 130 are illustrated, and illustrations of the search processing unit 130 and the control unit 190 are omitted.

[0182] The information processing apparatus 100b is different from the third and fourth embodiments in that, in the search processing unit 130, it has replica update units 140b1, 140b2,..., 140bn instead of the replica update units 140 and 140a. Here, n is the number of replica update units and is an integer of 2 or more. Each of the replica update units 140b1, 140b2,..., 140bn is the same as the replica update unit 140 or the replica update unit 140a. Note that, in FIG. 12, illustration of a random number generation unit 160 that supplies a uniform random number u (0 < u < 1) to each of the replica update units 140b1, 140b2,..., 140bn is omitted.

[0183] The information processing apparatus 100b may have a plurality of accelerator cards including the accelerator card 103. In this case, the replica update units 140b1, 140b2,..., 140bn, an index generation unit corresponding to each replica update unit, and a random number generation unit may be realized by the plurality of accelerator cards. Also, the replica control unit 170 may be realized by causing the CPU 101 to execute a program stored in the RAM 102, or may be realized by the accelerator card 103.

[0184] Each of the replica updating units 140b1, 140b2, ..., 140bn reads out a weighting coefficient corresponding to an index supplied from the index generating unit 150 from the coefficient holding unit 120, and performs transition determination for the index. Each of the replica updating units 140b1, 140b2, ..., 140bn updates the energy by changing the value of a state variable according to the result of the transition determination, and updates the local field. The index generating unit 150 may input the same index to all of the replica updating units 140b1, 140b2, ..., 140bn, or may input different indexes to all or some of the replica updating units.

[0185] The replica control unit 170 controls the solution finding by the SA method, the PT method, etc. using the replica update units 140b1, 140b2, ..., 140bn. The replica control unit 170 controls the change of the temperature value in the SA method and the exchange of the temperature value between replicas in the PT method in each of the replica update units 140b1, 140b2, ..., 140bn. The replica control unit 170 can also find a solution by executing the PA method using the replica update units 140b1, 140b2, ..., 140bn.

[0186] For example, the replica control unit 170 or the control unit 190 may obtain the solutions finally obtained by each of the replica update units 140b1, 140b2, . . . , 140bn, select the best solution, that is, the solution with the smallest energy, and provide it to the user.

[0187] In this way, the information processing device 100b selects state variables of change candidates in a predetermined order by each of the multiple replica update units, performs transition judgment for the state variables of the change candidates, and searches for a solution. When the number of times that the state transition is consecutively rejected reaches a predetermined number, each of the multiple replica update units corrects the amount of change in energy used in the transition judgment by an offset value, or determines the state variable to be the transition target based on a probability key according to the amount of change in energy.

[0188] In this way, the information processing device 100b can make the solution search more efficient and improve the solution-finding performance, similarly to the third and fourth embodiments. Moreover, the information processing device 100b can also handle relatively large-scale problems with a large number of state variables by distributing and allocating the index ranges of the state variables in charge of transition determination, for example, by each of the multiple replica update units.

[0189] By the way, in a parallel search in which multiple state transitions are simultaneously considered as transition candidates and one state transition is selected from among them, ΔE i Therefore, the calculation speed will decrease for problems that exceed the parallelism possible with the hardware. For example, when solving a 100k-bit problem using a 1k-bit parallel device, it will take time to determine which bit to invert after making 100 parallel judgments.

[0190] In addition, as exemplified in JP 2020-140631 A, a method of searching in parallel and sequentially inverting the values ​​of state variables has also been considered. However, even with this method, problems with few acceptance candidates or when all ΔE i For problems with many local minima where .gamma.>0, it is difficult to find a good solution in a short time without inversion of the state variable values.

[0191] In the information processing devices 100, 100a, and 100b, when a stagnation of state transition is observed in the method of sequentially selecting transition candidates, the state transition is promoted by an offset value or a probability key. This makes it possible to efficiently search for a good solution even for a relatively large-scale problem with few reversal candidates, especially a combinatorial optimization problem with many states where the energy is a local minimum.

[0192] For example, the information processing device 100 of the third embodiment executes the following process. The information processing device 100b of the fifth embodiment may also execute the same process as the information processing device 100. In addition, the processing unit 12 of the first embodiment may also execute the following process of the replica update unit 140. The information processing device 100 searches for a solution to a problem expressed by an energy function including multiple state variables.

[0193] The replica updating unit 140 selects state variables of change candidates, which are a part of the multiple state variables, in a predetermined order. The replica updating unit 140 determines whether or not to change the value of the state variable of the change candidate based on the amount of change in the value of the energy function corresponding to the state variable of the selected change candidate. When the replica updating unit 140 determines that the value of the state variable of the change candidate is to be changed, the replica updating unit 140 changes the value of the state variable of the change candidate. When the number of consecutive determinations that the value of the state variable of the change candidate is not to be changed reaches a predetermined number, the replica updating unit 140 corrects the amount of change corresponding to the state variable of the newly selected change candidate by an offset value. The replica updating unit 140 determines whether or not to change the value of the state variable of the change candidate based on the amount of change after correction.

[0194] This enables the information processing device 100 to perform a solution search more efficiently. For example, even if a search using a sequential method (sequential MCMC) falls into a local solution, the information processing device 100 can prompt a state transition, thereby enabling the information processing device 100 to perform a solution search more efficiently.

[0195] More specifically, the information processing device 100 executes a search process for searching for a solution to a problem represented by an energy function including a plurality of state variables. The search process includes a selection process, a determination process, and a state change process. In the selection process, the replica update unit 140 selects state variables of change candidates, which are part of the plurality of state variables, in a predetermined order. In the determination process, the replica update unit 140 determines whether or not to change the value of the state variable of the change candidate based on the amount of change in the value of the energy function corresponding to the change in the value of the state variable of the change candidate selected in the selection process. In the state change process, if it is determined in the determination process that the value of the state variable of the change candidate is to be changed, the replica update unit 140 changes the value of the state variable of the change candidate. In the search process, the replica update unit 140 repeatedly executes the selection process, the determination process, and the state change process in a predetermined order. In the search process, the replica update unit 140 further executes a count process and a correction process. In the count process, the replica update unit 140 counts the number of times that it is determined that the value of the state variable of the change candidate is not to be changed continuously in the repeatedly executed search process. In the correction process, when the number of times counted in the count process reaches a predetermined number, the replica update unit 140 corrects the amount of change in the energy function corresponding to the change in the value of the state variable of the newly selected change candidate by an offset value. In the determination process after the amount of change is corrected by the correction process, the replica update unit 140 determines whether or not to change the value of the state variable of the newly selected change candidate based on the amount of change after the correction.

[0196] This enables the information processing device 100 to perform a solution search more efficiently. For example, even if a search using a sequential method (sequential MCMC) falls into a local solution, the information processing device 100 can prompt a state transition, thereby enabling the information processing device 100 to perform a solution search more efficiently.

[0197] For example, the replica update unit 140 corrects the amount of change in the value of the energy function by subtracting an offset value from the amount of change. This makes it possible to increase the probability that the value of the state variable of the newly selected change candidate is determined to be changed in a search for a solution to a problem that minimizes energy, compared to a case where correction using an offset value is not performed. When searching for a solution to a problem that maximizes energy, the replica update unit 140 may perform a probabilistic selection by prioritizing a state transition with a large amount of change in energy. In this case, the replica update unit 140 may prompt a state transition by correcting the amount of change in energy by adding a positive offset value to the amount of change.

[0198] Furthermore, when the replica update unit 140 changes the value of the state variable of the change candidate based on the amount of change after correction, it stops the correction using the offset value. This allows the information processing device 100 to resume an appropriate search based on the normal amount of change in energy. For example, the correction based on the offset value can be stopped by resetting the offset value E off = Equivalent to resetting to 0.

[0199] Moreover, the replica update unit 140 sets the number of selections required for selecting a round of change candidate state variables in a predetermined order to a predetermined number of times. As a result, for example, the information processing device 100 can promote state transition even when a local solution occurs in a search using the sequential method, and can make solution search more efficient. The number of selections required for one round of selection is the number of selections of state variables of change candidates required to select all state variables of change candidates in a predetermined order from a plurality of state variables. The number of selections required for one round of selection corresponds to the number of judgments Z for one round described above.

[0200] The replica update unit 140 probabilistically determines whether or not to change the value of the state variable of the change candidate by comparing the amount of change in energy with a random value. The replica update unit 140 corrects the amount of change in energy with an offset value, thereby increasing the probability of determining that the value of the state variable of the change candidate is to be changed compared to the case where the correction with the offset value is not performed.

[0201] This allows the information processing device 100 to prompt a state transition even when a search using the sequential method falls into a local solution, thereby making the solution search more efficient. For example, the replica update unit 140 sets the offset value to the minimum value among the amounts of change obtained for each state variable of the change candidate while the number of times that it has been determined that the value of the state variable of the change candidate is not to be changed continuously reaches a predetermined number.

[0202] This allows the information processing device 100 to obtain an optimal offset value. More specifically, the replica update unit 140 performs a correction to subtract an offset value from the amount of change in energy, thereby setting the probability of determining to change the value of the state variable of the change candidate corresponding to the minimum value to 1.

[0203] This allows the information processing device 100 to determine that the value of the state variable of at least the change candidate corresponding to the minimum value is to be changed, and therefore allows a state transition to occur reliably.

[0204] Furthermore, the replica update unit 140 selects one or more state variables as change candidates for one determination of whether or not to change the value of the state variable as a change candidate. This allows the information processing device 100 to improve the degree of freedom in search, and increases the possibility of making the solution search more efficient depending on the problem.

[0205] Also, for example, the information processing device 100a of the fourth embodiment executes the following process. The information processing device 100b of the fifth embodiment may also execute the same process as the information processing device 100a. The processing unit 22 of the second embodiment may also execute the process of the replica update unit 140a described below. The information processing device 100a searches for a solution to a problem expressed by an energy function including multiple state variables.

[0206] The replica update unit 140a selects some of the state variables as change candidates in a predetermined order. The replica update unit 140a determines whether or not to change the value of the state variable of the change candidate based on the amount of change in the value of the energy function corresponding to the selected state variable of the change candidate. When the replica update unit 140a determines that the value of the state variable of the change candidate is to be changed, the replica update unit 140a changes the value of the state variable of the change candidate. When the number of consecutive determinations that the value of the state variable of the change candidate is not to be changed reaches a predetermined number, the replica update unit 140a selects a first state variable from the multiple state variables based on a probability key value calculated according to the amount of change and a random value, and changes the value of the first state variable.

[0207] This allows the information processing device 100a to perform a solution search more efficiently. For example, the information processing device 100a can promote state transition even when a search using the sequential method falls into a local solution, thereby making the solution search more efficient.

[0208] More specifically, the information processing device 100a executes a search process for searching for a solution to a problem represented by an energy function including a plurality of state variables. The search process includes a selection process, a determination process, and a state change process. In the selection process, the replica update unit 140a selects state variables of change candidates, which are a part of the plurality of state variables, in a predetermined order. In the determination process, the replica update unit 140a determines whether or not to change the value of the state variable of the change candidate based on the amount of change in the value of the energy function corresponding to the change in the value of the state variable of the change candidate selected in the selection process. In the state change process, if it is determined in the determination process that the value of the state variable of the change candidate is to be changed, the replica update unit 140a changes the value of the state variable of the change candidate. In the search process, the replica update unit 140a repeatedly executes the selection process, the determination process, and the state change process in a predetermined order. The replica update unit 140a executes a count process for counting the number of times that it is determined not to continuously change the value of the state variable of the change candidate in the repeatedly executed search process. When the number of times counted in the counting process reaches a predetermined number, the replica update unit 140a selects a first state variable from the multiple state variables based on a probability key value calculated according to the amount of change and a random value value, and changes the value of the first state variable.

[0209] This allows the information processing device 100a to perform a solution search more efficiently. For example, the information processing device 100a can promote state transition even when a search using the sequential method falls into a local solution, thereby making the solution search more efficient.

[0210] The replica update unit 140a calculates a probability key value according to the amount of change and the random value obtained for each state variable of the change candidate while the number of times that the value of the state variable of the change candidate is determined not to be changed continuously reaches a predetermined number. The replica update unit 140a sets the state variable of the change candidate corresponding to the minimum or maximum value of the calculated probability key values ​​as the first state variable.

[0211] This allows the information processing device 100a to appropriately obtain the first state variable. Note that the replica update unit 140a may use a random value generated at the timing of calculating a certain probability key value as a random value used for calculating the corresponding probability key value.

[0212] The replica update unit 140a calculates a probability key value based on the amount of change in energy, the random value, and the temperature value used in searching for a solution. This enables the information processing device 100a to select the first state variable in accordance with an appropriate criterion (for example, the Metropolis criterion, etc.).

[0213] Moreover, the replica update unit 140a sets the number of selections required for selecting a round of change candidate state variables in a predetermined order to a predetermined number of times. This allows the information processing device 100a to promote state transition even when a local solution occurs in a sequential search, thereby making solution search more efficient. The number of selections required for one round of selection is the number of selections of state variables of change candidates required to select all state variables of change candidates in a predetermined order from a plurality of state variables. The number of selections required for one round of selection corresponds to the number of judgments Z for one round described above.

[0214] The replica update unit 140a selects one or more state variables as change candidates for each determination of whether or not to change the value of the state variable as a change candidate. This allows the information processing device 100a to improve the degree of freedom in search, and increases the possibility of making the solution search more efficient depending on the problem.

[0215] The information processing of the first embodiment can be realized by making the processing unit 12 execute a program. The information processing of the second embodiment can be realized by making the processing unit 22 execute a program. Moreover, the information processing of the third to fifth embodiments can be realized by making the CPU 101 execute a program. The information processing devices 10, 20, 100, 100a, and 100b may be realized by a computer. The program is recorded in a computer-readable recording medium 53.

[0216] For example, the program is distributed by distributing recording medium 53 on which the program is recorded. Alternatively, the program may be stored in another computer and distributed via a network. For example, the computer may store (install) the program recorded in recording medium 53 or a program received from another computer in a storage device such as RAM 102 or HDD 104, and read and execute the program from the storage device. [Explanation of symbols]

[0217] 10. Information processing device 11 Storage section 12 Processing section 30 State Vector 40 Graphs

Claims

1. A program for causing a computer to execute a search process for searching for a solution to a problem expressed by an energy function including a plurality of state variables, the search process comprising: a selection process for selecting state variables as change candidates that are a part of the plurality of state variables in a predetermined order; a determination process for determining whether or not to change the value of the state variable of the change candidate based on an amount of change in the value of the energy function corresponding to a change in the value of the state variable of the change candidate selected in the selection process; a state change process for changing the value of the state variable of the change candidate when it is determined in the determination process that the value of the state variable of the change candidate is to be changed; having In the search process, the program causes the computer to repeatedly execute the selection process, the determination process, and the state change process in the predetermined order; The search process further comprises: a counting process for counting the number of times that it is determined that the value of the state variable of the change candidate is not changed continuously in the repeatedly executed search process; a correction process of subtracting an offset value from the change amount of the energy function corresponding to a change in the value of the state variable of the change candidate that is newly selected when the number of times counted in the count process reaches a predetermined number; having in the determination process after the change amount has been corrected by the correction process, a determination is made as to whether or not to change the value of the state variable of the newly selected change candidate based on the corrected change amount. A program that causes the computer to execute a process.

2. A program for causing a computer to execute a search process for searching for a solution to a problem expressed by an energy function including a plurality of state variables, the search process comprising: a selection process for selecting state variables as change candidates that are a part of the plurality of state variables in a predetermined order; a determination process for determining whether or not to change the value of the state variable of the change candidate based on an amount of change in the value of the energy function corresponding to a change in the value of the state variable of the change candidate selected in the selection process; a state change process for changing the value of the state variable of the change candidate when it is determined in the determination process that the value of the state variable of the change candidate is to be changed; having In the search process, the program causes the computer to repeatedly execute the selection process, the determination process, and the state change process in the predetermined order; The search process further comprises: a counting process for counting the number of times that it is determined that the value of the state variable of the change candidate is not changed continuously in the repeatedly executed search process; a correction process for increasing a probability of determining that the value of the state variable of the change candidate is to be changed by correcting the amount of change of the energy function corresponding to the change of the value of the state variable of the change candidate, using an offset value, when the number of times counted in the count process reaches a predetermined number. having in the determination process after the change amount has been corrected by the correction process, a determination is made as to whether or not to change the value of the state variable of the newly selected change candidate based on the corrected change amount. A program that causes the computer to execute a process.

3. A program for causing a computer to execute a search process for searching for a solution to a problem expressed by an energy function including a plurality of state variables, the search process comprising: a selection process for selecting state variables as change candidates that are a part of the plurality of state variables in a predetermined order; a determination process for determining whether or not to change the value of the state variable of the change candidate based on an amount of change in the value of the energy function corresponding to a change in the value of the state variable of the change candidate selected in the selection process; a state change process for changing the value of the state variable of the change candidate when it is determined in the determination process that the value of the state variable of the change candidate is to be changed; having In the search process, the program causes the computer to repeatedly execute the selection process, the determination process, and the state change process in the predetermined order; The search process further comprises: a counting process for counting the number of times that it is determined that the value of the state variable of the change candidate is not changed continuously in the repeatedly executed search process; a correction process for correcting the amount of change in the energy function corresponding to a change in the value of the state variable of the change candidate that is newly selected, by an offset value, when the number of times counted in the count process reaches a predetermined number; having in the determination process after the change amount has been corrected by the correction process, determining whether or not to change a value of the state variable of the newly selected change candidate based on the corrected change amount; In the correction process, a minimum value of the change amounts obtained for the state variables of the change candidates while the number of times reaches the predetermined number of times is set as the offset value; By performing a correction in which the offset value is subtracted from the amount of change, the probability of determining that the value of the state variable of the change candidate corresponding to the minimum value is to be changed is set to 1. A program that causes the computer to execute a process.

4. 4. The program according to claim 1, further comprising: causing the computer to execute a process of canceling the correction using the offset value when the value of the state variable candidate for change is changed based on the amount of change after correction.

5. 4. The program according to claim 1, which causes the computer to execute a process of setting a number of selections required for selecting a round of the state variables of the change candidates in the predetermined order to the predetermined number of selections.

6. A program described in any one of claims 1 to 3, which causes the computer to execute a process of selecting one or more state variables of the change candidate for one determination of whether or not to change the value of the state variable of the change candidate.

7. An information processing method executed by an information processing device that executes a search process for searching for a solution to a problem expressed by an energy function including a plurality of state variables, the search process comprising: a selection process for selecting state variables as change candidates that are a part of the plurality of state variables in a predetermined order; a determination process for determining whether or not to change the value of the state variable of the change candidate based on an amount of change in the value of the energy function corresponding to a change in the value of the state variable of the change candidate selected in the selection process; a state change process for changing the value of the state variable of the change candidate when it is determined in the determination process that the value of the state variable of the change candidate is to be changed; having In the search process, the information processing device repeatedly executes the selection process, the determination process, and the state change process in the predetermined order; The information processing device further comprises: a counting process for counting the number of times that it is determined that the value of the state variable of the change candidate is not changed continuously in the repeatedly executed search process; a correction process of subtracting an offset value from the change amount of the energy function corresponding to a change in the value of the state variable of the change candidate that is newly selected when the number of times counted in the count process reaches a predetermined number; Run in the determination process after the change amount has been corrected by the correction process, a determination is made as to whether or not to change the value of the state variable of the newly selected change candidate based on the corrected change amount. Information processing methods.

8. An information processing device that executes a search process for searching for a solution to a problem expressed by an energy function including a plurality of state variables, A storage unit that stores values ​​of the plurality of state variables; A processing unit that executes the search process, The search process includes: a selection process for selecting state variables as change candidates that are a part of the plurality of state variables in a predetermined order; a determination process for determining whether or not to change the value of the state variable of the change candidate based on an amount of change in the value of the energy function corresponding to a change in the value of the state variable of the change candidate selected in the selection process; a state change process for changing the value of the state variable of the change candidate when it is determined in the determination process that the value of the state variable of the change candidate is to be changed; having In the search process, the processing unit repeatedly executes the selection process, the determination process, and the state change process in the predetermined order; The processing unit further comprises: a counting process for counting the number of times that it is determined that the value of the state variable of the change candidate is not changed continuously in the repeatedly executed search process; a correction process of subtracting an offset value from the change amount of the energy function corresponding to a change in the value of the state variable of the change candidate that is newly selected when the number of times counted in the count process reaches a predetermined number; Run in the determination process after the change amount has been corrected by the correction process, a determination is made as to whether or not to change the value of the state variable of the newly selected change candidate based on the corrected change amount. Information processing device.

9. An information processing device that executes a search process for searching for a solution to a problem expressed by an energy function including a plurality of state variables, A storage unit that stores values ​​of the plurality of state variables; A processing unit that executes the search process, The search process includes: a selection process for selecting state variables as change candidates that are a part of the plurality of state variables in a predetermined order; a determination process for determining whether or not to change the value of the state variable of the change candidate based on an amount of change in the value of the energy function corresponding to a change in the value of the state variable of the change candidate selected in the selection process; a state change process for changing the value of the state variable of the change candidate when it is determined in the determination process that the value of the state variable of the change candidate is to be changed; having In the search process, the processing unit repeatedly executes the selection process, the determination process, and the state change process in the predetermined order; The processing unit further comprises: a counting process for counting the number of times that it is determined that the value of the state variable of the change candidate is not changed continuously in the repeatedly executed search process; a correction process for increasing a probability of determining that the value of the state variable of the change candidate is to be changed by correcting the amount of change of the energy function corresponding to the change of the value of the state variable of the change candidate, using an offset value, when the number of times counted in the count process reaches a predetermined number. Run in the determination process after the change amount has been corrected by the correction process, a determination is made as to whether or not to change the value of the state variable of the newly selected change candidate based on the corrected change amount. Information processing device.

10. An information processing device that executes a search process for searching for a solution to a problem expressed by an energy function including a plurality of state variables, A storage unit that stores values ​​of the plurality of state variables; A processing unit that executes the search process, The search process includes: a selection process for selecting state variables as change candidates that are a part of the plurality of state variables in a predetermined order; a determination process for determining whether or not to change the value of the state variable of the change candidate based on an amount of change in the value of the energy function corresponding to a change in the value of the state variable of the change candidate selected in the selection process; a state change process for changing the value of the state variable of the change candidate when it is determined in the determination process that the value of the state variable of the change candidate is to be changed; having In the search process, the processing unit repeatedly executes the selection process, the determination process, and the state change process in the predetermined order; The processing unit further comprises: a counting process for counting the number of times that it is determined that the value of the state variable of the change candidate is not changed continuously in the repeatedly executed search process; a correction process for correcting the amount of change in the energy function corresponding to a change in the value of the state variable of the change candidate that is newly selected, by an offset value, when the number of times counted in the count process reaches a predetermined number; Run in the determination process after the change amount has been corrected by the correction process, determining whether or not to change a value of the state variable of the newly selected change candidate based on the corrected change amount; In the correction process, a minimum value of the change amounts obtained for the state variables of the change candidates while the number of times reaches the predetermined number of times is set as the offset value; By performing a correction in which the offset value is subtracted from the amount of change, the probability of determining that the value of the state variable of the change candidate corresponding to the minimum value is to be changed is set to 1. Information processing device.

Citation Information

Patent Citations

  • Sampling device and sampling device control method

    JP2020135727A

  • Optimization device and method for controlling optimization device

    JP2020140631A

  • Combination optimization device, combination optimization method, and combination optimization program

    JP2021033657A

  • Techniques for producing statistically correct and efficient combinations of multiple simulated posterior samples

    US20140279816A1