OPTIMIZATION PROGRAM, OPTIMIZATION METHOD, AND OPTIMIZATION APPARATUS
Patent Information
- Application Number
- JP2021159484
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-09-29
- Publication Date
- 2025-03-27
- Estimated Expiration
- 2041-09-29
AI Technical Summary
【0025】 解の探索を効率的に行うことができる。
Smart Images

Figure 0007652040000003 
Figure 0007652040000004 
Figure 0007652040000005
Abstract
Description
[Technical field]
[0001] An embodiment of the present invention relates to an optimization program, an optimization method, and an optimization device. [Background technology]
[0002] Combinatorial optimization problems are used in fields such as manufacturing, finance, and logistics. Combinatorial optimization problems are optimization problems whose solutions have a combinatorial structure such as ordering or allocation.
[0003] One method for solving large-scale, multivariate optimization problems is an optimization device that uses an Ising-type energy function (sometimes called an Ising machine or a Boltzmann machine). Optimization devices calculate the problem to be calculated by replacing it with an Ising model, which is a model that represents the behavior of spin in magnetic materials.
[0004] The optimization device uses a stochastic search method such as simulated annealing to find the optimal solution, which is the combination of bit values that results in the minimum value of the Ising-type energy function (called energy) as described above. Simulated annealing is a type of Monte Carlo method, and is a method of finding a solution probabilistically using random values. Below, we will explain the problem of minimizing the value of the energy function to be optimized as an example. To maximize it, we simply change the sign of the energy function. The energy function is also called an evaluation function, cost function, or objective function.
[0005] The Ising model is a model that represents a system consisting of n spins that interact with each other, and each spin (corresponding to the state variables mentioned above) x i takes two values, ±1. The energy E(x) of the entire system is expressed by the following equation (1). Equation (1) is an example of an evaluation function.
[0006]
number
[0007] In formula (1), W ij is the spin x i and spin x j indicates the interaction coefficient between i W denotes the external magnetic field coefficient, which is the bias value of the entire system. ij and b i is a constant that is determined depending on the problem to be solved.
[0008] The candidates for the state transition from the current state to the next state are the inversion of one spin, and there are n possible transitions. Therefore, it is sufficient to generate a single spin number or a set of multiple spin numbers to be inverted as the transition candidate.
[0009] And the change in energy associated with the i-th spin inversion ΔE i is expressed by the following equation (2).
[0010]
number
[0011] Here, the value in parentheses in equation (2) is the local field (total input) value of bit i, and represents the proportion of energy change due to each spin flip. In equation (2), the output change δx i If the sign of the local field of bit i is the same as that of the local field of bit i, the energy decreases. In simulated annealing, ΔE i By repeatedly deciding whether to transition states depending on the increase or decrease in energy E, the minimum (or maximum) value of energy E is searched for.
[0012] Markov Chain Monte Carlo methods (MCMC) are a conventional technique for searching for the minimum (or maximum) value of energy E. Figure 8 is a diagram for explaining MCMC. The vertical axis of Figure 8 corresponds to the value of energy, and the horizontal axis corresponds to a certain state.
[0013] In MCMC, the amount of energy change ΔE when moving from the current state to a nearby state is calculated, and if the conditions are met, the state moves to the next state. ΔE is calculated by subtracting the energy after the transition E' from the energy before the transition E. In MCMC, the search is performed by probabilistically inverting the state (bit). Thermal noise is also added to prevent the state from remaining in a local solution.
[0014] Fig. 9 is a diagram for explaining simulated annealing. The graphs in cases C1 to C3 in Fig. 9 show the energy E of the entire system. Specifically, the vertical axis corresponds to the value of the energy E of the entire system, and the horizontal axis corresponds to each state of the bits from all 0s (000...0) to all 1s (111...1).
[0015] In case C1, the width of the thermal noise is large (e var In case C2, the thermal noise width is medium (e var In case C3, the width of the thermal noise is small (e var =min.) In the graph, the white circles indicate the minimum value of energy E (optimal solution), and the black circles indicate local solutions (minimum values in the neighborhood).
[0016] Generally, in steepest descent methods, if you get stuck in a local solution when searching for the minimum value of energy E, you cannot escape. In contrast, simulated annealing makes it possible to move to a higher energy solution to a certain extent by adding thermal noise (the gray part in the figure). In addition, simulated annealing gradually reduces the width of the thermal noise from case C1 to C3. As a result, in simulated annealing, if you get stuck in an optimal solution, you cannot escape (you can escape from a local solution), and it will eventually converge to the optimal solution.
[0017] Figure 10 is a diagram for explaining the conventional simulated annealing process. In the conventional simulated annealing process, the process shown in Figure 10 is repeated to eventually converge to an optimal solution.
[0018] Specifically, as shown in FIG. 10, in the conventional simulated annealing process, a bit (i) is selected randomly or sequentially (S101). Next, in the conventional simulated annealing process, the energy increment (ΔE i ) is calculated as in Equation (2) (S102).
[0019] Next, in the conventional simulated annealing process, based on the energy increment (ΔE i ), the acceptance probability (A(ΔE i )) of the state transition is calculated (S102). Here, the acceptance probability of the state transition is calculated by the formula A(ΔE i ) = min(1, exp(-ΔE i / T)) (T: temperature corresponding to thermal noise).
[0020] Next, in the conventional simulated annealing process, based on the calculated acceptance probability (A(ΔE i )) of the state transition, it is determined whether to accept the state transition using a uniform random number (u[i] (0 < u[i] < 1)) (S103). In this determination, if u[i] < (A(ΔE i )) (S103: Yes), the bit is inverted and updated (S104: accept the state transition), and the process returns to S101. If u[i] < (A(ΔE i )) is not satisfied (S103: No), the bit is not inverted and the process returns to S101 in the original state (without accepting the state transition).
Prior Art Documents
Patent Documents
[0021]
Patent Document 1
Patent Document 2
Patent Document 3
Patent Document 4
[0022] However, in the above conventional technology, if the state transition acceptance judgment is rejected consecutively during the search for the optimal solution, the time spent remaining at the local solution will be longer because no state change will occur, and the processing time required to obtain the optimal solution will be longer. For example, in the case of local optimum or low thermal noise, there is a problem that the efficiency of searching for the optimal solution will be significantly reduced because no state change will occur and the local solution will remain for a long time.
[0023] In one aspect, an object of the present invention is to provide an optimization program, an optimization method, and an optimization device that can efficiently search for a solution. [Means for solving the problem]
[0024] In one proposal, the optimization program causes the computer to execute a storing process, a selecting process, and a transitioning process when searching for a solution state by repeating a process of determining whether or not a state transition from a first state to a second state is possible based on a difference between a first energy value of an evaluation function based on each value of a plurality of variables indicating a first state and a second energy value of an evaluation function based on each value of a plurality of variables indicating a second state in which at least one of the values of the plurality of variables is changed, and transitioning the state. The storing process stores the difference between the first state and the second state and each value of the plurality of variables indicating the second state. The selecting process selects one state from the stored second states based on the difference when the negation of the state transition is repeated a specific number of times. The transitioning process transitions from the first state to the selected one state. Effect of the Invention
[0025] The search for a solution can be carried out efficiently. [Brief description of the drawings]
[0026] [Figure 1] FIG. 1 is a block diagram illustrating an example of a functional configuration of an optimization device according to an embodiment. [Diagram 2] FIG. 2 is a flowchart illustrating an example of the operation of the optimization device according to the embodiment. [Diagram 3] FIG. 3 is a flowchart showing an example of the setting process. [Figure 4] FIG. 4 is an explanatory diagram for explaining selection of a transition destination state. [Diagram 5] FIG. 5 is an explanatory diagram for explaining selection of a transition destination state. [Figure 6] FIG. 6 is an explanatory diagram for explaining selection of a transition destination state. [Figure 7] FIG. 7 is an explanatory diagram illustrating an example of a computer configuration. [Figure 8] FIG. 8 is a diagram for explaining MCMC. [Figure 9] FIG. 9 is a diagram for explaining simulated annealing. [Figure 10] FIG. 10 is a diagram for explaining the conventional simulated annealing process. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0027] Hereinafter, an optimization program, an optimization method, and an optimization device according to the embodiments will be described with reference to the drawings. Configurations having the same functions in the embodiments are given the same reference numerals, and duplicated descriptions will be omitted. Note that the optimization program, the optimization method, and the optimization device described in the following embodiments are merely examples, and do not limit the embodiments. In addition, the following embodiments may be appropriately combined within a range that does not cause contradiction.
[0028] Fig. 1 is a flowchart showing an example of the operation of an optimization device according to an embodiment. As shown in Fig. 1, the optimization device 1 includes a communication unit 10, an input unit 20, a display unit 30, a storage unit 40, and a control unit 50. As the optimization device 1, for example, a PC (Personal Computer) can be applied.
[0029] The communication unit 10 receives various data from an external device via a network. The communication unit 10 is an example of a communication device. For example, the communication unit 10 may receive a part or all of information of initial setting information 41, which will be described later, from the external device.
[0030] The input unit 20 is an input device that inputs various information to the control unit 50 of the optimization device 1. The input unit 20 corresponds to a keyboard, a mouse, a touch panel, etc. For example, the input unit 20 accepts part or all of information of initial setting information 41 described later by an input operation from a user.
[0031] The display unit 30 is a display device that displays information output from the control unit 50. For example, the display unit 30 displays the processing results in the optimization device 1, etc.
[0032] The storage unit 40 stores initial setting information 41, state information 42, and transition candidate information 43. The storage unit 40 corresponds to a semiconductor memory element such as a random access memory (RAM) or a flash memory, or a storage device such as a hard disk drive (HDD).
[0033] The initial setting information 41 is information about initial settings when an optimal solution of an Ising-type energy function corresponding to an optimization problem is obtained by a simulated annealing process. For example, the initial setting information 41 includes information on a model formula of an Ising-type energy function (evaluation function) corresponding to an optimization problem (W determined according to the problem to be solved). ij and b i constants).
[0034] The initial setting information 41 also includes the initial temperature of the thermal noise used in the simulated annealing process, the number of repetitions (N), the threshold value (M) for the number of consecutive rejections, the initial value (j=0) of the counter (j) for counting the number of consecutive rejections, and the number of candidate states (K). Here, the number of consecutive rejections indicates the number of consecutive repetitions in which a state transition is not accepted and is rejected in the simulated annealing process. The initial setting information 41 also includes a threshold value (TH) for determining which candidate states are candidates for the transition destination.
[0035] The state information 42 is information indicating the state of the energy function (values of each variable (spin)) when the optimal solution of the Ising type energy function is obtained by the simulated annealing process. Specifically, the state information 42 includes a predetermined number (for example, M) of states (S i ) information (values of each variable (spin)) and the increment of energy from before the transition to each state (ΔE i ) are included.
[0036] The transition candidate information 43 is information about candidate states that are candidates for the next transition destination when state transitions are repeatedly rejected in the simulated annealing process. Specifically, the transition candidate information 43 includes the values of each variable (spin) that indicates a candidate state and the increment of energy from before the transition to the candidate state.
[0037] The control unit 50 includes an initial state setting unit 51, an energy calculation unit 52, a state holding unit 53, and a calculation control unit 54. The control unit 50 is realized by a hardwired logic such as a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), an ASIC (Application Specific Integrated Circuit), or an FPGA (Field Programmable Gate Array).
[0038] The initial state setting unit 51 is a processing unit that sets an initial state when an optimal solution of an Ising type energy function corresponding to an optimization problem is obtained by simulated annealing processing.
[0039] Specifically, the initial state setting unit 51 receives information about the initial state via the communication unit 10 or the input unit 20. For example, the information about the initial state includes information about a model formula of an Ising-type energy function (evaluation function) corresponding to the optimization problem, an initial temperature of thermal noise, the number of repetitions (N), a threshold value (M) for the number of consecutive rejections, and an initial value of a counter (j) that counts the number of consecutive rejections. The information about the initial state also includes the number (K) of candidate states to be transition destination candidates, and a threshold value (TH) for determining that the state is a candidate state. The initial state setting unit 51 stores the received information about the initial state in the storage unit 40 as initial setting information 41.
[0040] The energy calculation unit 52 is a processing unit that performs calculations related to the energy value of an Ising-type energy function (evaluation function) in the simulated annealing process. Specifically, the energy calculation unit 52 calculates an energy value related to the energy E(x) of the entire system based on the above-mentioned formula (1). In addition, the energy calculation unit 52 calculates a state (S i ) to the energy increment (ΔE i ) to calculate
[0041] The state holding unit 53 is a processing unit that stores information on each state in which each variable (each bit) is changed in the simulated annealing process in the storage unit 40. Specifically, the state holding unit 53 stores information on each state in which at least one of each variable (each bit) is changed from the current state (S i ) to the energy increment (ΔE i ) and its state (S i ) and the values of the variables indicating the state are stored in the storage unit 40 as state information 42.
[0042] In addition, the state storage unit 53 stores the energy difference (ΔE i When the energy difference (ΔT) is smaller than a specific value (threshold value (TH)), the energy difference and the values of the variables indicating that state (candidate state) are stored in the storage unit 40 as transition candidate information 43.
[0043] The calculation control unit 54 is a processing unit that controls the calculation process (simulated annealing process) for finding an optimal solution. Specifically, in the simulated annealing process, the calculation control unit 54 calculates the current state (value of each variable) calculated by the energy calculation unit 52 and the state (S i ) and the energy difference (ΔE i ) to determine whether a state transition is possible. The calculation control unit 54 repeats this process to search for a state that is a solution.
[0044] Furthermore, when repeatedly searching for a solution in this manner, if the negation of a state transition is repeated a specific number of times, the calculation control unit 54 selects one state from among the states included in the stored state information 42 based on the energy difference. Then, the calculation control unit 54 transitions from the current state to the selected one state. This makes it possible to prevent the optimization device 1 from remaining at a local solution for a long time without causing a state change due to the state transition being repeatedly negated.
[0045] Fig. 2 is a flowchart showing an example of the operation of the optimization device 1 according to the embodiment. As shown in Fig. 2, when the process starts, the initial state setting unit 51 initializes the conditions for obtaining an optimal solution of an Ising type energy function corresponding to an optimization problem by a simulated annealing process (S1).
[0046] Specifically, the initial state setting unit 51 receives information about the initial state via the communication unit 10 or the input unit 20, and sets the initial state of the simulated annealing process. The initial state setting includes the initial setting of the Ising-type energy function and each variable (bit) in that function, as well as the setting of the initial temperature of the thermal noise, the number of iterations (N), the threshold value (M) for the number of consecutive rejections, and the initialization (j=0) of the counter (j) that counts the number of consecutive rejections. The initial state setting also includes the setting of the number (K) of candidate states to be transition destination candidates, the threshold value (TH) for determining a candidate state, and the like.
[0047] Next, the calculation control unit 54 sets a counter (i) for the number of iterations to i=1 (S2), and starts the simulated annealing process (S3 to S14).
[0048] Specifically, the energy calculation unit 52 calculates the current state (S min ) randomly or sequentially select a variable (bit) from the i ) is calculated according to equation (2) (S3). Here, if the iteration counter is i=1, the current state (S min ) is the initial setting state in S1.
[0049] Next, the state holding unit 53 calculates the energy increment (ΔE i ) and the state after changing the variables (S i ) is stored in the storage unit 40 as the state information 42 (S4).
[0050] Next, the calculation control unit 54 calculates the energy increment (ΔE i ) based on the state where the variables are changed (S i ) as a transition destination (S5).
[0051] Specifically, the calculation control unit 54 calculates the energy increment (ΔE i ) based on the state transition acceptance probability (A(ΔEi )) and determines whether to accept it or not depending on whether the probability is equal to or greater than a predetermined value. The calculation control unit 54 also calculates the uniform random number u[i] and the state transition acceptance probability (A(ΔE i The difference between the above may be used to determine whether or not the request is acceptable.
[0052] Status(S i ) as the transition destination (S5: Yes), the calculation control unit 54 min ) and the corresponding energy increment (ΔE min ) (S6), and the process proceeds to S10. i ) with ΔE min In addition, the calculation control unit 54 replaces the state in which the variables are changed (S i ) to the new current state (S min )
[0053] Status(S i ) is not accepted as a transition destination (S5: No), the calculation control unit 54 increments (j=j+1) the counter (j) that counts the number of consecutive rejections (S7).
[0054] Next, the calculation control unit 54 judges whether the counter (j) for counting the number of consecutive rejections is equal to the threshold value (M) of the number of consecutive rejections (j=M?) (S8). If the counter (j) for counting the number of consecutive rejections is not equal to the threshold value (M) of the number of consecutive rejections (S8: No), the calculation control unit 54 advances the process to S13.
[0055] If the counter (j) for counting the number of consecutive rejections is equal to the threshold value (M) of the number of consecutive rejections (S8: Yes), the calculation control unit 54 determines the state to which the user is to transition (S min ) and the corresponding energy increment (ΔE min ) is set (S9), and the process proceeds to S10.
[0056] FIG. 3 is a flowchart showing an example of the setting process. As shown in FIG. min and S. min When the setting of the state (S i ), the corresponding energy increment (ΔE i For example, if no state transitions have been accepted M times, the state information 42 is sorted from smallest to largest based on ΔE(iM) (S20). i The states are sorted in ascending order.
[0057] FIG. 4 is an explanatory diagram for explaining the selection of a state to which a transition is to be made. FIG. 4 illustrates an example of state information 42 in the case where no state transitions have been accepted M times. As shown in FIG. 4, the state information 42 includes M ΔE i and the corresponding state S i The calculation control unit 54 converts this state information 42 into an energy increment (ΔE i ) and sort them in ascending order (see left side of Figure 4).
[0058] Next, the calculation control unit 54 selects K states corresponding to the top K ΔEs after sorting as candidate states (S21). Next, the calculation control unit 54 randomly selects one of the selected K candidate states and determines it as a new state (S min ) (S22). Next, the calculation control unit 54 sets ΔE in the selected state as ΔE min (S23).
[0059] For example, in the example of FIG. 4, the calculation control unit 54 selects the top seven states from among M states, and sets one of the states (S1) as a new transition state (S min ) in the selected state (S1). i ΔE min It is set as:
[0060] Returning to FIG. 2, after the processes of S6 and S9, the calculation control unit 54 resets (j=0) the counter (j) that counts the number of consecutive rejections (S10). Next, the energy calculation unit 52 calculates ΔE min Using the current energy of the entire system E min Calculate (S11).
[0061] Next, the calculation control unit 54 calculates the total system energy E min If the given condition (E min <known energy> is satisfied (S12). Here, the known energy is a known energy value that is a minimum in the evaluation function (energy function), and is set together with the energy function, for example, at the time of initial setting.
[0062] If the condition is satisfied (S12: Yes), the calculation control unit 54 calculates the current state (S i ) is regarded as the solution state and the process ends.
[0063] If the condition is not satisfied (S12: No), the calculation control unit 54 judges whether the counter (i) of the number of repetitions is equal to the number of repetitions (N) set as the initial condition (i=N?) (S13). If it is equal (S13: Yes), the calculation control unit 54 checks the current state (S i ) is regarded as the solution state and the process ends.
[0064] If they are not equal (S13: No), the calculation control unit 54 increments (i=i+1) the counter (i) that counts the number of repetitions (S14), and returns the process to S3.
[0065] In addition, the state after the transition in S9 (S min ) and the corresponding energy increment (ΔE min In the process of setting the transition candidate state, the calculation control unit 54 may select one state from among the candidate states included in the transition candidate information 43 and set it.
[0066] Specifically, in S4, the state holding unit 53 stores the energy difference (ΔE i When the energy difference between the states (candidate states) is smaller than a specific value (threshold value (TH)), the energy difference and the values of the variables indicating the state (candidate state) are stored in the storage unit 40 as transition candidate information 43. Then, the calculation control unit 54 randomly selects one of the candidate states included in the transition candidate information 43 and sets it as a new state (S min ) (S22). Next, the calculation control unit 54 sets ΔE in the selected state as ΔE min (S23).
[0067] FIG. 5 is an explanatory diagram for explaining the selection of a state to which a transition is to be made. The left side of FIG. 5 illustrates an example of state information 42 in the case where no state transitions have been accepted M times. As shown in FIG. 5, when the threshold (TH) is 10, ΔE i The states (S1, S2, S5, S6 in the illustrated example) for which the difference is less than 10 are held as candidate states in the transition candidate information 43. The calculation control unit 54 randomly selects one (S4 in the illustrated example) from among the candidate states (S1, S2, S5, S6) and sets it as a new state (S min )
[0068] Also, in S4, the state holding unit 53 may store information on a specific number of candidate states as the transition candidate information 43 in the storage unit 40. For example, when three candidate states are held as the transition candidate information 43, the state holding unit 53 stores, in the storage unit 40, the energy difference and the value of each variable indicating the state (candidate state) when the energy difference is smaller than a specific value (threshold value (TH)) for up to the third candidate state as the transition candidate information 43. Next, when three candidate states are held, the state holding unit 53 updates one of the three candidate states with the latest information (the energy difference and the value of each variable indicating the state (candidate state)). For example, the state holding unit 53 updates the oldest information of the three candidate states with the latest information.
[0069] 6 is an explanatory diagram for explaining selection of a transition destination state. As shown in FIG. 6, the state storage unit 53 stores information on X number of candidate states (three in the illustrated example) (S1, S2, S6 and their ΔE′ i ) is stored in the storage unit 40 as transition candidate information 43. The calculation control unit 54 randomly selects one of the candidate states (S1, S2, S6) (S2 in the illustrated example) and sets it as a new transition destination state (S min )
[0070] As described above, the optimization device 1 calculates the energy value of the evaluation function based on the value of each variable indicating the current state, and the state (S i ) and the difference (ΔE i ) to determine whether a state transition is possible and to repeat the process of transitioning the state to search for a solution state. During this search, the optimization device 1 calculates the energy difference (ΔE i ) and the changed state (S i ) and the values of each variable indicating the state transition are stored as state information 42. When the optimization device 1 has repeatedly negated the state transition a specific number of times, it selects one state from among the states included in the stored state information 42 based on the energy difference. Then, the optimization device 1 transitions from the current state to the selected one state.
[0071] As a result, in the optimization device 1, when searching for a solution state, it is possible to prevent the state from remaining in a local solution for a long time without causing a state change, which leads to a reduction in the processing time required to obtain an optimal solution, thereby enabling efficient solution search.
[0072] In addition, the optimization device 1 calculates the energy difference (ΔE i ) in ascending order, select one state from the top specific number of states. i ) is the energy difference (ΔE iThe smaller the energy difference (ΔE i ) in ascending order and selecting one state from among a specific number of states with the highest rank, it is possible to select a more appropriate state as a transition destination.
[0073] In addition, the optimization device 1 calculates the energy difference (ΔE i The optimization device 1 stores, as transition candidate information 43, the energy difference and the value of each variable indicating the state (candidate state) when the energy difference (ΔE i ) can be selected from a pre-selected set of states with small
[0074] Furthermore, the optimization device 1 updates, with a new candidate state, one of the specific number of candidate states in the stored transition candidate information 43. In this way, the optimization device 1 can prevent the number of candidate states in the transition candidate information 43 from increasing beyond the specific number, thereby preventing an increase in memory usage.
[0075] Furthermore, the optimization device 1 calculates an energy value of the state to which the transition has been made, and if the calculated energy value satisfies a specific condition, the state to which the transition has been made is regarded as a solution state. In this way, the optimization device 1 can obtain a state in which the energy value of the evaluation function satisfies a specific condition as a solution. For example, if the maximum or minimum energy value of the energy value of the evaluation function is known, the optimization device 1 can obtain a state in which that energy value is obtained as a solution.
[0076] Note that each component of each device shown in the figure does not necessarily have to be physically configured as shown in the figure. In other words, the specific form of distribution and integration of each device is not limited to that shown in the figure, and all or part of them can be functionally or physically distributed and integrated in any unit according to various loads, usage conditions, etc.
[0077] Furthermore, the various processing functions of the initial state setting unit 51, the energy calculation unit 52, the state holding unit 53 and the calculation control unit 54 performed in the control unit 50 of the optimization device 1 may be executed in whole or in part on a CPU (or a microcomputer such as an MPU or an MCU (Micro Controller Unit)). Needless to say, the various processing functions may be executed in whole or in part on a program analyzed and executed by the CPU (or a microcomputer such as an MPU or an MCU), or on hardware based on wired logic. The various processing functions performed in the optimization device 1 may be executed by multiple computers working together through cloud computing.
[0078] The various processes described in the above embodiment can be realized by executing a program prepared in advance on a computer. Therefore, an example of a computer configuration (hardware) that executes a program having the same functions as those in the above embodiment will be described below. Figure 7 is an explanatory diagram for explaining an example of a computer configuration.
[0079] 7, the computer 200 includes a CPU 201 that executes various arithmetic processes, an input device 202 that accepts data input from a user, and a display 203. The computer 200 also includes a communication device 204 that receives data from an external device, and an interface device 205 that connects to various devices. The computer 200 also includes a RAM 206 that temporarily stores various information, and a hard disk device 207. The devices 201 to 207 are connected to a bus 208.
[0080] The hard disk drive 207 stores an initial state setting program 207a, an energy calculation program 207b, a state retention program 207c, and a calculation control program 207d. The CPU 201 reads out the initial state setting program 207a, the energy calculation program 207b, the state retention program 207c, and the calculation control program 207d and loads them in the RAM 206.
[0081] The initial state setting program 207a functions as an initial state setting process 206a. The energy calculation program 207b functions as an energy calculation process 206b. The state retention program 207c functions as a state retention process 206c. The calculation control program 207d functions as a calculation control process 206d.
[0082] The processing of the initial state setting process 206a corresponds to the processing of the initial state setting unit 51. The processing of the energy calculation process 206b corresponds to the processing of the energy calculation unit 52. The processing of the state holding process 206c corresponds to the processing of the state holding unit 53. The processing of the calculation control process 206d corresponds to the processing of the calculation control unit .
[0083] It is not necessary that each of the programs, the initial state setting program 207a, the energy calculation program 207b, the state retention program 207c, and the calculation control program 207d, is stored in the hard disk device 207 from the beginning. For example, each program is stored in a "portable physical medium" such as a flexible disk (FD), a CD-ROM, a DVD disk, a magneto-optical disk, or an IC card that is inserted into the computer 200. Then, the computer 200 may read and execute each program. Also, each program may be stored in a device connected to a public line, the Internet, a LAN, or the like, and the computer 200 may read and execute each program from the device.
[0084] The following supplementary notes are further disclosed regarding the above embodiment.
[0085] (Note 1) When searching for a state that is a solution by repeating a process of determining whether or not a state transition from a first state to a second state is possible based on a difference between a first energy value of an evaluation function based on each value of a plurality of variables that indicates a first state and a second energy value of the evaluation function based on each value of the plurality of variables that indicates a second state in which at least one of the values of the plurality of variables is changed, the difference between the first state and the second state and the values of each of the plurality of variables that indicates the second state are stored; When the negation of the state transition is repeated a specific number of times, one state is selected from the stored second states based on the difference; transitioning from the first state to the selected one of the states; An optimization program that causes a computer to execute a process.
[0086] (Note 2) The selecting process selects the one state from a specific number of the second states that are in a top position when the differences are sorted in ascending order. 2. The optimization program according to claim 1,
[0087] (Note 3) The storing process stores, when the difference is smaller than a specific value, the difference and each value of the plurality of variables indicating the second state as a candidate state; The process of selecting includes selecting the one state from among the stored candidate states. 2. The optimization program according to claim 1,
[0088] (Additional Note 4) The storing process updates one of the stored specific number of candidate states with a new candidate state. 4. The optimization program according to claim 3.
[0089] (Appendix 5) Calculating a third energy value of the transitioned state; When the calculated third energy value satisfies a specific condition, the state to which the transition is made is set to the solution state. 5. The optimization program according to any one of claims 1 to 4, further comprising a computer executing the process.
[0090] (Supplementary Note 6) When searching for a state that is a solution by repeating a process of determining whether or not a state transition from the first state to the second state is possible based on a difference between a first energy value of an evaluation function based on each value of a plurality of variables that indicates a first state and a second energy value of the evaluation function based on each value of the plurality of variables that indicates a second state in which at least one of the values of the plurality of variables is changed, the difference between the first state and the second state and the values of each of the plurality of variables that indicates the second state are stored; When the negation of the state transition is repeated a specific number of times, one state is selected from the stored second states based on the difference; transitioning from the first state to the selected one of the states; An optimization method characterized in that the processing is executed by a computer.
[0091] (Additional Note 7) The selection process selects the one state from a specific number of the second states that are in a top position when the differences are sorted in ascending order. 7. The optimization method according to claim 6,
[0092] (Note 8) The storing process stores, when the difference is smaller than a specific value, the difference and each value of the plurality of variables indicating the second state as a candidate state; The process of selecting includes selecting the one state from among the stored candidate states. 7. The optimization method according to claim 6,
[0093] (Additional Note 9) The storing process updates one of the stored specific number of candidate states with a new candidate state. 9. The optimization method according to claim 8,
[0094] (Appendix 10) Calculate a third energy value of the transitioned state; When the calculated third energy value satisfies a specific condition, the state to which the transition is made is set to the solution state. 10. The optimization method according to any one of claims 6 to 9, further characterized in that the processing is performed by a computer.
[0095] (Appendix 11) When searching for a state that is a solution by repeating a process of determining whether or not a state transition from the first state to the second state is possible based on a difference between a first energy value of an evaluation function based on each value of a plurality of variables that indicates a first state and a second energy value of the evaluation function based on each value of the plurality of variables that indicates a second state in which at least one of the values of the plurality of variables is changed, the difference between the first state and the second state and the values of each of the plurality of variables that indicates the second state are stored; When the negation of the state transition is repeated a specific number of times, one state is selected from the stored second states based on the difference; transitioning from the first state to the selected one of the states; An optimization device having a control unit that executes processing.
[0096] (Additional Note 12) The selection process selects the one state from a specific number of the second states that are in a top position when the differences are sorted in ascending order. 12. The optimization device according to claim 11,
[0097] (Note 13) The storing process stores, when the difference is smaller than a specific value, the difference and each value of the plurality of variables indicating the second state as a candidate state; The process of selecting includes selecting the one state from among the stored candidate states. 12. The optimization device according to claim 11,
[0098] (Additional Note 14) The storing process updates one of the stored specific number of candidate states with a new candidate state. 14. The optimization device according to claim 13,
[0099] (Appendix 15) Calculate a third energy value of the state to which the transition has been made; When the calculated third energy value satisfies a specific condition, the state to which the transition is made is set to the solution state. 15. The optimization device according to any one of claims 11 to 14, further comprising a control unit that performs processing. [Explanation of symbols]
[0100] 1. Optimization device 10. Communications Department 20...Input section 30…Display section 40...Storage section 41...Initial setting information 42...Status information 43…Transition candidate information 50...Control unit 51...Initial state setting section 52...Energy calculation section 53...Status holding section 54...Calculation control unit 200…Computer 201…CPU 202...Input device 203…Display 204...Communication equipment 205...Interface device 206…RAM 206a…Initial state setting process 206b…Energy calculation process 206c…State retention process 206d...Computer-controlled processes 207...Hard disk drive 207a…Initial state setting program 207b…Energy calculation program 207c…Status Maintenance Program 207d…Computer control program 208…Bus C1~C3…Case
Claims
1. a step of determining whether or not a state transition from the first state to the second state is possible based on a difference between a first energy value of an evaluation function based on each value of a plurality of variables indicating a first state and a second energy value of the evaluation function based on each value of the plurality of variables indicating a second state in which at least one of the values of the plurality of variables is changed, and repeating a process of transitioning the state to search for a state that is a solution by storing the difference between the first state and the second state and the values of each of the plurality of variables indicating the second state; selecting one state from the stored second states based on the difference when the negation of the state transition is repeated a specific number of times; transitioning from the first state to the selected one of the states; An optimization program that causes a computer to execute a process.
2. the selecting process selects the one state from a top specific number of the second states when the differences are sorted in ascending order.
2. The optimization program according to claim 1 .
3. the storing process includes storing, when the difference is smaller than a specific value, the difference and each value of the plurality of variables indicating the second state as a candidate state; The process of selecting includes selecting the one state from among the stored candidate states.
2. The optimization program according to claim 1 .
4. The storing process updates one of the stored specific number of candidate states with a new candidate state.
4. The optimization program according to claim 3.
5. calculating a third energy value for the transitioned state; When the calculated third energy value satisfies a specific condition, the state to which the transition is made is set to the solution state.
5. The optimization program according to claim 1, further comprising a computer program for executing a process.
6. a step of determining whether or not a state transition from the first state to the second state is possible based on a difference between a first energy value of an evaluation function based on each value of a plurality of variables indicating a first state and a second energy value of the evaluation function based on each value of the plurality of variables indicating a second state in which at least one of the values of the plurality of variables is changed, and repeating a process of transitioning the state to search for a state that is a solution by storing the difference between the first state and the second state and the values of each of the plurality of variables indicating the second state; selecting one state from the stored second states based on the difference when the negation of the state transition is repeated a specific number of times; transitioning from the first state to the selected one of the states; An optimization method characterized in that the processing is executed by a computer.
7. a step of determining whether or not a state transition from the first state to the second state is possible based on a difference between a first energy value of an evaluation function based on each value of a plurality of variables indicating a first state and a second energy value of the evaluation function based on each value of the plurality of variables indicating a second state in which at least one of the values of the plurality of variables is changed, and repeating a process of transitioning the state to search for a state that is a solution by storing the difference between the first state and the second state and the values of each of the plurality of variables indicating the second state; selecting one state from the stored second states based on the difference when the negation of the state transition is repeated a specific number of times; transitioning from the first state to the selected one of the states; An optimization device having a control unit that executes processing.
Citation Information
Patent Citations
System for solving combnatorial optimization problem
JP1994019507A
Combination optimizing method
JP1997034951A
Combination optimizing method
JP1998293756A
Optimization apparatus, control method of optimization apparatus, and control program of optimization apparatus
JP2020079991A
Solution system, solution method, and solution program
WO2021059338A1