Information processing system, information processing method, and information processing device
The information processing device improves simulated annealing by employing parallel operations and adaptive temperature control, addressing inefficiencies in existing algorithms to enhance convergence accuracy and speed.
Patent Information
- Application Number
- JP2021213496
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-01-08
- Filing Date
- 2021-12-27
- Publication Date
- 2025-08-12
- Estimated Expiration
- 2041-12-27
AI Technical Summary
Simulated annealing algorithms face challenges such as inefficient search due to high rejection rates at low temperatures, dependence on initial temperature settings, and difficulty in parallelizing computations on multi-core processors, limiting convergence accuracy and speed.
An information processing device and method that utilizes parallel operations to calculate energies of neighboring states, normalize adoption probabilities, and control inverse temperatures based on the ratio of neighbors with higher energy, enabling efficient neighborhood searches and improved convergence.
Enhances the speed and accuracy of optimization processes by reducing the dependency on initial conditions and facilitating parallel processing, particularly through the use of GPUs and multi-core processors.
Smart Images

Figure 0007721434000004 
Figure 0007721434000005 
Figure 0007721434000006
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to an information processing system, an information processing method, and an information processing device. [Background technology]
[0002] One of the most effective combinatorial optimization methods is the simulated annealing algorithm. This simulated annealing algorithm (SAN) performs optimization by (1) defining a neighborhood of possible transitions from a certain state, (2) starting with an appropriate state, (3) fixing the temperature and creating a distribution using the Markov Chain Monte Carlo method (MCMC), (4) lowering the temperature and repeating the process of (3), and (5) terminating according to the termination conditions. Simulated annealing is a highly versatile method in that it can be operated as long as the cost function and its neighborhood in (1) can be defined.
[0003] However, simulated annealing has three major challenges. First, when the temperature drops sufficiently, the rate at which MCMC calculations are rejected increases, making efficient search difficult. Second, this rejection is determined by temperature-based energy and is heavily dependent on the initial temperature value and the method of change. However, the ideal initial temperature and change method vary greatly depending on the optimization target. Furthermore, the ideal temperature conditions for each optimization target are also nontrivial. This creates a problem: convergence accuracy and speed depend on whether optimal nontrivial temperature conditions are set for each target or a more general-purpose temperature is set. Third, while multi-core and many-core processors are widely used to improve computational efficiency through parallel computing, it is difficult to parallelize the above steps for these processors, limiting the performance improvement achieved by parallelization. [Prior art documents] [Non-patent literature]
[0004] [Non-Patent Document 1] E. Sonuc, et. al., “A cooperative GPU-based Parallel Multistart Simulated Annealing algorithm for Quadratic Assignment Problem,” October 2018, Engineering Science and Technology, an International Journal, volume 21, issue 5, pp. 843-849 [Non-patent document 2] DJ Earl, et. al., “Parallel tempering: Theory, applications, and new perspectives,” September 5, 2005, Phys. Chem. Chem. Phys., 2005, 7, pp. 3910-3916 Summary of the Invention [Problem to be solved by the invention]
[0005] The present disclosure provides an information processing device that can quickly obtain a good solution. [Means for solving the problem]
[0006] According to one embodiment, an information processing system includes a memory circuit and one or more processing circuits capable of performing parallel operations, wherein the processing circuit performs a first parallel operation to calculate energies of a plurality of neighboring states relative to a current state, calculate indicators for adopting each of the neighboring states based on the energies of the neighboring states, calculate adoption probabilities for the neighboring states based on the indicators so that one of the neighboring states is adopted, and select a next state from the neighboring states based on the adoption probability.
[0007] Also, according to one embodiment, an information processing method includes a processing circuit that calculates energy for multiple neighboring states relative to a current state using a first parallel process, calculates a first probability that each of the multiple neighboring states will be adopted based on the energy for the multiple neighboring states, calculates a second probability by normalizing the first probability so that one of the multiple neighboring states will be adopted, and selects a next state from the multiple neighboring states based on the second probability.
[0008] Also, according to one embodiment, the program causes the processing circuit to execute an information processing method that calculates, through a first parallel process, the energy of multiple neighboring states relative to a current state, calculates an index indicating whether each of the multiple neighboring states will be adopted based on the energy of the multiple neighboring states, calculates an adoption probability for the multiple neighboring states based on the index so that one of the multiple neighboring states will be adopted, and selects a next state from the multiple neighboring states based on the adoption probability.
[0009] According to one embodiment, an information processing device includes a storage circuit and one or more processing circuits, which perform optimization using a simulated annealing method by transitioning a temperature according to a preset schedule, and in the repeated optimization, counts the number of neighbors whose energy in a neighborhood of a current state calculated by the optimization is greater than the energy of the current state, calculates a ratio between the counted number of neighbors and the total number of neighbors searched by the optimization, and controls an inverse temperature, which is an index representing the probability of the neighborhood being adopted, based on the ratio and the proportion of neighbors whose energy is greater than the energy of the current state, based on the temperature. [Brief explanation of the drawings]
[0010] [Figure 1] FIG. 1 is a diagram schematically illustrating an information processing system according to an embodiment. [Figure 2] 10 is a flowchart showing the process of simulated annealing. [Figure 3]10 is a pseudocode illustrating an example of a process for accepting a solution according to one embodiment. [Figure 4] 10 is pseudocode illustrating an example of a temperature schedule process according to one embodiment. [Figure 5] 10 is a pseudocode illustrating an example of determining a temperature change rate according to one embodiment. [Figure 6] FIG. 6 is a diagram showing an example of a temperature schedule using FIG. 5. [Figure 7] 1 is a flowchart illustrating an example of parallel processing of simulated annealing according to an embodiment. [Figure 8] 1 is a pseudocode illustrating an example of parallel processing of simulated annealing according to one embodiment. [Figure 9] FIG. 10 is a diagram showing an example of a part of a process according to an embodiment. [Figure 10] FIG. 10 is a diagram showing an example in which the order of steps is changed according to an embodiment. [Figure 11] FIG. 10 is a diagram showing an example of process description according to an embodiment. [Figure 12] FIG. 10 is a diagram showing an example of changing the processing order of jobs according to an embodiment. [Figure 13] FIG. 10 is a diagram showing an example of changing the processing order of jobs according to an embodiment. [Figure 14] FIG. 10 is a diagram showing an example of changing the processing order of jobs according to an embodiment. [Figure 15] FIG. 10 is a diagram showing an example of process selection according to an embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0011] The contents of several embodiments will be described below with reference to the drawings. Note that the embodiments shown below are shown as non-limiting examples, and the configurations etc. are not limited to these. In this disclosure, terms such as "greater than" and "less than" may be used, but are not strictly limited to these terms and may be appropriately read as "greater than" or "less than" or vice versa.
[0012] (Hardware implementation example) 1 is a diagram schematically illustrating an overview of an information processing system 1 according to an embodiment. The information processing system 1 includes, for example, an information processing device 100, external devices 90 and 94, and a network 92. The information processing system 1 is a system that implements parallelized simulated annealing.
[0013] The information processing device 10 includes a processing circuit 100, a memory circuit 102, and an interface 104. These components are connected by a bus 106 that appropriately transmits and receives data between the components.
[0014] The processing circuit 100 is a circuit that executes processing such as calculations in the information processing device 10. The processing circuit 100 is configured to include, for example, a general-purpose processor such as a CPU (Central Processing Unit). Furthermore, the processing circuit 100 may include a processor that operates as a general-purpose accelerator such as a GPU (Graphics Processing Unit). Furthermore, the processing circuit 100 may be a circuit that executes dedicated processing such as an ASIC (Application Specific Integrated Circuit), or may be a programmable circuit such as an FPGA (Field Programmable Gate Array). These circuits may be configured as digital or analog circuits. The processing circuit 100 may be a circuit that includes at least two of the above, as long as it is configured to execute information processing appropriately.
[0015] The memory circuitry 102 is a circuit that stores data and the like necessary for calculations and the like in the information processing device 10. When software-based information processing is specifically realized using hardware resources using the processing circuitry 100 in the information processing device 10, the memory circuitry 102 may store programs, executable files, and the like necessary for executing the software. The memory circuitry 102 may include, for example, a main memory device and an auxiliary memory device. In this way, the memory circuitry 102 in FIG. 1 may include at least one of a storage or the like that stores non-temporary data and a cache memory or the like such as an SRAM (Static Random Access Memory) that stores temporary data.
[0016] The interface 104 realizes input and output of data to and from the outside of the information processing device 10. For example, the interface 104 may be a device interface connected to an external device 90, or a network interface connected to a network 92. Information received from the interface 104 may be stored in the memory circuitry 102 non-temporarily or temporarily.
[0017] The external device 90 may be, for example, an input user interface such as a mouse or a keyboard, or an output user interface such as a display. The external device 90 may also be a storage device such as a storage connected to the information processing device 10. The external device 90 may also be a server, a computer, or the like equipped with a processor that executes part of the processing of the information processing device 10. In this case, the external device 90 may be equipped with a processing circuit such as a CPU or GPU separate from the information processing device 10, and an appropriate storage circuit, and may be implemented to be able to perform processing independently of or in cooperation with the information processing device 10.
[0018] The network 92 is a wired or wireless network. The information processing device 10 may be connected to an external device 94 via the network 92.
[0019] The external device 94 basically has the same configuration as the external device 90 .
[0020] In the information processing system 1, processing is executed by the information processing device 10, but as described above, processing may be executed in cooperation with external devices 90 and 94 in addition to the information processing device 10. For example, processing may be realized by a cluster or the like via a network 92. The embodiments described below may be realized by the information processing device 10 alone, or may be realized by the information processing system 1 alone including a configuration such as a cluster. In other words, it should be noted that in the following descriptions, the term "information processing device 10" can be replaced with "information processing system 1."
[0021] (Implementation of simulated annealing) FIG. 2 is a flowchart showing the process of simulated annealing. This flowchart shows the process of general simulated annealing, but in the present disclosure, a process different from the general process is executed in a predetermined step of this flowchart. First, the process of general simulated annealing will be explained using FIG. 2. Furthermore, although the explanation is given using simulated annealing, it is not limited to simulated annealing and can be applied to other similar optimization algorithms.
[0022] First, the processing circuit 100 initializes parameters and states such as temperature required for optimization (S10). If necessary, the processing circuit 100 may store the initialized data in the storage circuit 102.
[0023] Next, the processing circuit 100 searches the neighborhood of the current state (S20). Here, a state (hereinafter sometimes referred to as a solution) is a quantity (a scalar, vector, or any tensor) that indicates a point in the search space. By transitioning this state, the information processing device 10 obtains an optimal solution.
[0024] Next, the processing circuit 100 calculates the energy (calculated using a cost function, an evaluation function) of the nearby state found in S20 (S30). This energy calculation is realized by a predetermined function. The processing circuit 100 may use an evaluation function that is generally used for each physical phenomenon or event of interest as the function for calculating the energy of the state.
[0025] Next, the processing circuit 100 updates the state based on the energy calculated in S30 (S40). The state is updated, for example, by comparing the energy of the current state with the energy of the searched neighboring states and adopting the comparison result based on a temperature-based probability. For example, if the energy of the searched neighboring state is smaller than the energy of the current state, the processing circuit 100 updates this neighboring state as the state of the next step. On the other hand, if the energy of the searched neighboring state is equal to or greater than the energy of the current state, the processing circuit 100 selects either the current state or the neighboring state as the state of the next step based on a temperature-based probability. Note that the term "neighboring state" may be broadly interpreted as including the current state. In other words, in a broad sense, the processing of S40 may mean selecting an appropriate state from the neighboring states as the state of the next step.
[0026] Next, the processing circuit 100 determines whether an optimization termination condition is met (S50). The processing circuit 100 determines the termination of the processing based on conditions such as a predetermined temperature being reached, a predetermined number of updates being repeated, or the energy falling below a predetermined value. This termination condition may be any condition that achieves appropriate optimization.
[0027] If the termination condition is met (S50: YES), the processing circuit 100 outputs the state updated in S40 and terminates the processing (S60). Other necessary information may be output as appropriate. Furthermore, the output timing does not have to be this timing; for example, the energy value in S30, the information on the updated state in S40, etc. may be output at any appropriate timing.
[0028] If the termination condition is not met (S50: NO), the processing circuit 100 updates the temperature (S70) and repeats the optimization process (S20 to S40) until the termination condition is met.
[0029] The above is the general flow of simulated annealing processing. In this embodiment, processing is performed at each step to improve the accuracy and speed of the processing.
[0030] (Embodiment for Solution Adoption) Generally, a major problem in the simulated annealing process is that state updating does not progress when the temperature becomes low enough. In S40, when the energy of the searched next state is greater than the energy of the current state, the probability of accepting a solution is expressed as follows, for example. This is shown as an example, and the transition probability is not limited to this.
number
number
[0031] Fig. 3 is pseudocode showing an example of an algorithm (Algorithm 1) for selecting a solution in S40 according to this embodiment. Solution selection according to this embodiment will be explained using Fig. 3. In this pseudocode, the process of updating the solution (state) will be explained. That is, the input is the current solution x, and the output is the next solution x'.
[0032] 1. The processing circuit 100 determines the number of neighbors of the current solution x as N x The number of neighbors may be the number of neighbors that can be obtained within a predetermined range for the current solution x. However, the number of neighbors that can be obtained within a predetermined range is generally infinite. Therefore, this number N x may be determined as a predetermined number in advance, and the number of neighbors within this number may be acquired. For example, N x The number may be a number that can be calculated in parallel. It is desirable that the processing circuit 100 searches for multiple neighbors without overlapping.
[0033] 2. In this selection algorithm, the N set above x A search of N neighbors is then performed. x The probability of selection p accepted An array for storing the above and a memory area for storing the array are prepared. The array may be reserved in advance in the memory circuitry 102, and the processing circuitry 100 may use the reserved space.
[0034] 3. After making the above settings, execute the parallel calculation. The "for" statement in 3. means to execute the parallel calculation. In other words, the processing (process) in this loop is not executed sequentially, but in parallel. For example, by allocating different nearby solutions to each GPU calculation core, N x In the following explanation, we will assume that each of the adjacent operations is executed in the GPU's arithmetic core, but the parallelization method is not limited to allocation to the GPU's arithmetic cores, and any configuration that can appropriately realize parallel operations will do.
[0035] 4. For example, in each computing core of a GPU, ΔE i where ΔE i is the difference between the energy calculated in the i-th neighborhood and the energy in the current solution. i is E in Equation (2)s+1 Let be the energy of the neighboring states, and E s This corresponds to the energy calculated in the current state.
[0036] 5. In each computing core, for example, a calculation based on the above formula (1) is performed, and an index for obtaining the adoption probability of the nearby solution calculated in each computing core is calculated. As can be seen from the fact that this index can be calculated from formula (1), it may be calculated using the adoption probability in a general simulated annealing method. Note that ΔE i If ≦ 0, for example, the adoption probability is set to 1. The index calculated in the calculation core that calculates the i-th neighborhood is p accepted It is stored in [i].
[0037] 6. The processing circuit 100 ends the loop processing (parallel processing). For example, the processing from this point onwards may be executed by atomic operations or on the host side. accepted If [i] is an array that can be stored appropriately, it may be written as a shared memory shared between the processing cores, or it may be in a form that stores the output from each processing core at the end of the loop processing.
[0038] 7. p calculated by each computing core accepted The sum of the values of p sum This process may be executed on the host side after the parallel processing described above is completed, or may be further accelerated by parallel calculations using reduction operations or the like during the execution of the processes from 3. to 6.
[0039] 8. Next, for i, p accepted [i] / p sum Find p accepted This normalized probability (probability of solution adoption) is used to normalize N xOf the neighbors, one neighbor is always selected as the next solution. Note that normalization is given as an example of calculation for probability distribution, and normalization is not essential. Also, normalization is not limited to dividing each index by the sum of the indexes. If normalization is not performed, this process of 8 can be omitted, and even in this case, the obtained p accepted It is sufficient if it is possible to select a state transition with an appropriate probability based on the above.
[0040] 9. Processing circuit 100 calculates N based on this normalized probability. x i, which is one out of s As described above, by normalizing, one solution is selected from all neighbors, and no solution is rejected. Whether normalizing the index as an adoption probability or not, a method of obtaining one solution may be used, using a general method in which one solution is selected based on an individually set probability.
[0041] 10. The processing circuit 100 s Update the state x' of the th neighborhood as the next solution.
[0042] 11. Then, the processing circuit 100 outputs this next solution x', and ends the processing of S30 to S40 in FIG.
[0043] As described above, by selecting a solution without discarding it based on the temperature when updating the solution, it is possible to improve the processing speed. In particular, it is possible to improve the efficiency of the neighborhood search in the latter half of the optimization when the temperature is dropping. As described above, the neighborhood search can be parallelized, so for example, by using a GPU that can use tens of thousands of cores for parallel processing, it is possible to efficiently search for a solution.
[0044] It should be noted that the GPU need not be used, and a CPU, vector machine, or other architecture that is effective for parallel processing can also be used.
[0045] In the above, the selection probability is calculated based on ΔE, but the selection probability may be changed depending on the value of ΔE. For example, p accepted In the process of calculating p, the probability may be set so that a transition where ΔE < 0 is prioritized. Similarly, the priority of a transition where ΔE = 0 is higher than that where ΔE > 0, or conversely, the priority may be lowered. As an example, the processing circuit 100 calculates p based on equation (1) regardless of whether ΔE is positive or negative. accepted [j] = p, and this p accepted In this solution transition, the processing circuit 100 may select one of the neighbors by normalizing p based on a tabu search so as to lower the priority of the neighbors that have already been searched. accepted You may set the value of
[0046] Also, even when dividing the cases by ΔE, a priority may be set for ΔE in each computing core, and neighboring states may be stored in an array of determined priorities. The computing core that performs the calculation for each neighboring state may, for example, store the neighboring state in an array of first priority if ΔE is negative, store the neighboring state in an array of second priority if ΔE is positive, and store the neighboring state in an array of third priority if ΔE = 0. Then, a final solution may be selected in order from the array of first priority.
[0047] For example, if a neighbor is stored in the first-priority array, one state may be extracted from this array and used as the next solution. If a neighbor is not stored in the first-priority array, the second-priority array is referenced and a neighbor is extracted from the second-priority array. Similarly, if a neighbor is not stored in the second-priority array, the third-priority array is referenced to obtain the next solution. In this way, it is possible to expand the search space for solutions while preventing solutions from stagnating.
[0048] (Temperature Update Embodiment) The temperature update will be explained below. Unless otherwise specified, the inverse of the temperature T (or a value proportional to the inverse of the temperature T) is defined as β, and this β is referred to as the inverse temperature. In this embodiment, the inverse temperature β is used to define the selection of a solution. For example, the selection probability shown in equation (1) can be rewritten as follows:
number
[0049] Figure 4 shows a pseudocode of an example of an algorithm (Algorithm 2-1) for processing temperature updates. First, the update frequency f β , the initial value of the inverse temperature β init , maximum number of steps step max The maximum number of steps is set. max The number of temperature transitions in optimization is defined by: This process is similar to the process of S70 in FIG.
[0050] 1. ~ 3. First, initialize each variable. In order to measure the average adoption rate in the deteriorated neighborhood (hereafter referred to as the regressive adoption probability), s e and s n Use s e is the information that represents the sum of the adoption rates of the neighborhood that has been deteriorated. Deterioration means that ΔE > 0 occurs during the parallel processing of the solution selection algorithm described above. s n is the number of observed neighborhoods that deteriorate. This number of observed neighborhoods is the number of neighborhoods searched in the solution selection algorithm, and N x is a fixed value, the inverse temperature β may be a fixed value. init is initialized to
[0051] 4. Based on the above parameters, the inverse temperature is controlled in the above selection algorithm. In a general simulated annealing method, for example, the temperature is decreased linearly or exponentially, resulting in a monotonic decrease in the broad sense. In this embodiment, depending on the state of ΔE, the inverse temperature is not decreased monotonically, and the temperature is controlled without being bound by functions such as linear or exponential functions. This temperature update process is carried out in the above step max Repeated times.
[0052] 5. The processes described in 6. to 12 below are executed during the processing of Algorithm 1 above.
[0053] 6. and 7. These processes are the same as those explained in Algorithm 1 above, so details are omitted here.
[0054] 8. ~ 11. ΔE i After the calculation, each core is assigned ΔE i > 0, that is, when the solution is updated and made worse, the average acceptance rate is measured. This process is performed during parallel processing, and may be realized by, for example, atomic operations. The processing circuit 100 calculates s e The sum of the acceptance rates of the neighborhood where the solution has been worsened is calculated as s n The number of neighbors that have been deteriorated in the processing within the loop is set as . Note that, in updating the inverse temperature, an appropriate other process may be used instead of using the number of neighbors that have been deteriorated. In such a modification, the process in this paragraph may be omitted if not necessary.
[0055] 12. ~ 13. For example, other parallel processes of Algorithm 1 are executed.
[0056] 14. Determine whether or not to update the inverse temperature in the current loop. Note that although this determination is made at this point, it may also be made before Algorithm 1. In this case, an algorithm that omits steps 8. to 10. may be executed when executing Algorithm 1. As another example, a flag may be set so that steps 8. to 10. can be omitted at times when no update is required. In this way, the number of atomic operations can be reduced. Since such processing does not necessarily improve speed depending on the processing target, it may be set appropriately for each target, program, and optimization. If the condition of 14. is met, that is, if the inverse temperature is to be updated, the following steps 15. to 19. are executed to update the inverse temperature.
[0057] 15. First, current step step / maximum number of steps step max By calculating the above, the progress p of the current stage for the entire process is obtained.
[0058] 16. Next, calculate the change rate Δβ of β by the processing of Algorithm 2-2 described later. This Δβ is calculated by multiplying the s calculated in 9. e , s obtained in 13. n , and p calculated in 15.
[0059] 17. Based on the Δβ calculated in 16, update the inverse temperature β as β = β(1 - Δβ).
[0060] 18., 19.s e and s n Reinitialize the
[0061] Through this series of processes, the inverse temperature β, which is the inverse of the temperature, is increased by a predetermined step f β This inverse temperature increases or decreases according to the rate of change calculated in 16. This increase or decrease will be explained below.
[0062] Figure 5 shows pseudocode for an example of the process (Algorithm 2-2) for calculating the above-mentioned Δβ. As shown in 16 in Figure 4, in this algorithm, the input is the progress p of the process, the number of neighbors to be deteriorated s, e , the number of observed neighbors is s n The output is the rate Δβ multiplied by the update of the inverse temperature. The parameter required is the maximum change amount Δβ of the inverse temperature. max is.
[0063] 1. First, the proportion of neighborhoods that have been deteriorated in the searched neighborhoods, r real This ratio is calculated by the ratio s of the input variables. e / s n It is obtained by
[0064] 2. The processing circuit 100 determines r as the target value of the neighborhood deterioration rate depending on p. target Get this r target may be calculated in advance or may be calculated using parameters determined for the target. As described above, this target value may be expressed by, for example, a linear function, an exponential function, or the like. If calculated in advance, it may be stored in the memory circuitry 102.
[0065] 3. The processing circuit 100 calculates the difference between the target value and the calculated value, i.e., r target and r real For example, the processing circuit 100 calculates and outputs Δβ based on the difference between Δβ and Δβ. max (r target -r real ) is calculated and output.
[0066] FIG. 6 shows the transition of an example of a temperature schedule. The dashed line represents the ideal regressive adoption probability (r target ), and the solid line shows the observed regressive adoption probability (r realThe horizontal axis indicates the number of times the temperature (reverse temperature) has been updated, and the vertical axis indicates the reverse adoption probability. The processing circuit 100 does not directly adjust the temperature, but controls the reverse temperature until the next reverse temperature update based on the temperature and the current proportion of neighboring areas that are being deteriorated. By processing in this manner, the reverse adoption probability can be brought closer to the ideal value based on the actual measured value of the reverse adoption probability without directly controlling the temperature.
[0067] The processing circuit 100 controls the reverse temperature as shown in Figures 4 to 6. Referring to Figure 6, if the probability of reversing in the current step is higher than the ideal probability of reversing adoption based on the temperature schedule, the processing circuit 100 controls the reverse temperature to reduce the probability of reversing adoption. This is based on equation 3 of Algorithm 2-2.
[0068] If the reverse adoption probability at the current step is higher than the ideal reverse adoption probability, the output of Algorithm 2-2 will be negative and the reverse temperature will be higher than that of Algorithm 2-1 (17). This result will affect the value of Algorithm 1 (5), lowering the probability of adoption if the searched neighborhood is deteriorating.
[0069] Conversely, if the reverse adoption probability at the current step is lower than the ideal reverse adoption probability, the output of Algorithm 2-2 increases in the positive direction, and the reverse temperature is controlled to be low. As a result, the calculation of step 5 of Algorithm 1 increases the probability of adoption when the searched neighborhood is deteriorating.
[0070] Thus, rather than directly controlling the temperature, in this embodiment, processing circuitry 100 controls the adoption probability relative to an ideal adoption probability schedule. As described above, processing circuitry 100 decreases the reversal adoption probability when the actual neighborhood reversal rate is higher than the ideal reversal adoption probability, and increases the reversal adoption probability when the opposite is true.
[0071] As described above, by controlling the backward adoption probability, if the rate of deterioration in the observed and searched neighborhood is higher than ideal, the probability of deterioration is controlled to be higher than in the current step, and if the rate of deterioration is lower than ideal, the probability of deterioration is controlled to be lower than in the current step. By controlling in this way, it is possible to control the probability of a solution being adopted when adaptively backward.
[0072] The original role of temperature is to adjust the rate at which the neighborhood deteriorates during the search, but changing this temperature is highly problem-dependent and difficult to adjust for various problems. On the other hand, by controlling the selection probability based on statistical information, as in this embodiment, it is possible to reduce the dependency on the problem.
[0073] Note that the pseudocode in Figures 4 and 5 is shown as an example, and the calculations in the algorithm do not have to be exactly as shown. For example, 1. and 2. in Figure 5, which are methods for calculating the backward adoption probability, are not limited to these, and any method can be used as long as it can appropriately control the backward adoption probability as described above. Furthermore, the ideal backward adoption probability, shown as a dashed line in Figure 6, is depicted as a linear function as an example, but this is not limited to this, and any function that appropriately sets the adoption probability relative to the temperature, such as an exponential function, can be used. For example, functions similar to reciprocals, or functions expressed as the reciprocal of logistic functions such as sigmoid functions and hyperbolic cosine functions, etc., can be used, but are not limited to these.
[0074] As another example of the above, rather than controlling by the number of neighbors to be deteriorated, the adoption probability for deterioration may be controlled by adding or multiplying some value, for example, a predetermined value or an adoption probability based on a temperature schedule, to the adoption probability of the neighbors to be deteriorated. For example, the adoption probability may be controlled by adding the adoption probability of the neighbors rather than the number of neighbors to be deteriorated.
[0075] Furthermore, instead of 1 and 2 in Figure 5, the update itself in 17 in Figure 4 may be changed. For example, this rate is not limited to being multiplied by a fixed rate, and may be changed using inertia, a moving average, or the like.
[0076] In recent years, quantum annealing machines have been attracting attention as hardware capable of quickly solving optimization problems, and numerous efforts have been made to achieve operations similar to those of quantum annealing machines on classical computers using simulated annealing. In these efforts, the problem is described using an Ising model, and then the model is expressed in the QUBO (Quadratic Unconstrained Binary Optimization) format that corresponds to this Ising model, and optimization is performed. This formulation is performed using binary variables of 0 and 1. It is also possible to directly describe optimization problems in the QUBO format.
[0077] When optimizing a small number of variables or variables with low-dimensional correlation, it is possible to perform the calculation using these binary values of 0 and 1. On the other hand, when there are many variables or the correlation between the variables is complex, expressing the problem in binary format and optimizing using binary variables results in high computational costs.
[0078] In particular, when state transitions are repeated in the search for neighboring states using simulated annealing, the number of constraints in the transition process increases, resulting in a heavy calculation load.
[0079] Therefore, by expanding the variables to integer variables instead of binary variables, the calculation cost can be reduced. After expanding to integer variables, it becomes easy to repeat the search for neighbors using the above algorithm. In this way, variables and constraints representing states such as the current state and its neighboring states can be realized using integers.
[0080] (Parallel Processing Embodiment) In each of the above algorithms, the neighborhood search is parallelized, but the granularity of the parallelization can be further improved. For example, the information processing device 10 may execute multiple simulated annealing algorithms in parallel. In the simulated annealing algorithms executed in parallel, the neighborhood search algorithms described above are implemented in parallel.
[0081] FIG. 7 is a flowchart showing processing when simulated annealing is executed in parallel. The information processing device 10 executes two stages of parallelization. The outer parallel processing is parallel processing that executes simulated annealing based on each state (replica). The inner parallel processing is parallel processing that executes a neighborhood search for a state based on the simulated annealing itself according to the above-described embodiment or a method equivalent thereto. Hereinafter, the neighborhood search based on Algorithm 1 etc. will be referred to as the first parallel processing, and the parallel optimization based on FIG. 7 etc. will be referred to as the second parallel processing.
[0082] First, the processing circuit 100, which executes the processing (second parallel processing) for each replica, selects an initial state (initial value) (S100). At the beginning of optimization, this initial state may be a predetermined initial state set in advance, or may be a randomly assigned state. Alternatively, a process may be performed to set an inverse temperature together with the state.
[0083] Next, simulated annealing is performed on each replica (S110). In this simulated annealing, the parallel processing described with reference to Figures 3 to 6 is performed in the neighborhood search. This simulated annealing may be performed by a first parallel processing.
[0084] Next, in each replica, it is determined whether to update the optimal solution obtained at the current stage by simulated annealing, and if so, the optimal solution is updated (S120). The determination of whether to update may be made, for example, by comparing the energy value resulting from the previous stage of simulated annealing stored in the replica with the energy value resulting from the current stage of simulated annealing, and updating may be performed if the energy at the current stage has decreased. This update may also be performed using a parameter equivalent to temperature, and even if the energy value increases at a rate based on the parameter, it may be adopted.
[0085] Next, the processing circuit 100 determines whether or not a termination condition is satisfied based on the optimal solution output by each replica in the second parallel processing (S50). This determination may be made based on conditions such as whether a predetermined number of repeated calculations have been performed or whether the energy has fallen below a predetermined value, as in the processing of S50 in Fig. 2. When referring to the energy value, the energy values for the solutions obtained in the multiple replicas may be compared and the smallest one may be selected, or the energy value may be determined by other methods.
[0086] If the termination condition is met, the state is output (S60) and the process ends.
[0087] On the other hand, if the termination condition is not satisfied, the process is repeated from S100. Here, in the second and subsequent times of the process of S100, the optimal solution, for example, the solution with the smallest energy value or the inverse temperature, among the solutions obtained from the multiple replicas may be set as the initial state.
[0088] The above-described neighborhood search process may be appropriately performed using a multi-core processor or a many-core processor. For example, when a GPU is used as a computing unit, the process may be performed using operation block parallelism, thread parallelism, and parallel calculations using multiple boards. Here, thread parallelism means processing multiple threads in parallel. In addition, in the present disclosure, operation block parallelism refers to a parallelization concept one level higher than thread parallelism, in which threads are grouped. As a non-limiting example, a shared memory that can be accessed at high speed from each thread in the same operation block may be provided.
[0089] For example, parallel computation may be performed for each replica, or for each neighborhood within a replica. By performing computations in parallel in this way, it is possible to quickly perform neighborhood searches in metaheuristic methods such as simulated annealing as shown in FIG. 2. As shown in FIG. 2, metaheuristic methods include at least the calculation of energies of multiple neighboring states for each initial state (initial value) (S30) and state update (S40, which involves calculating an index for obtaining the selection probability, calculating the selection probability, and selecting the next state).
[0090] As another example, a predetermined number of states with the smallest energy values may be obtained from the best known solutions output by multiple replicas (the optimal solutions output by each replica described above), and the best known solutions may be allocated in a predetermined ratio as initial values for the next process. For example, the first best solution with the smallest energy at the current stage and the second best solution with the second smallest energy may be allocated as initial states for multiple replicas.
[0091] Specifically, if there are 50 replicas, 30 replicas may be set to the first best solution as their initial state, and 20 replicas may be set to the second best solution as their initial state. The number of known best solutions to be selected may be three or more, and the allocation ratio is not limited to the above. The number of known best solutions to be selected may be a predetermined value, or as another example, best known solutions with an energy value equal to or less than the minimum energy value multiplied by a predetermined value may be allocated.
[0092] As another example, multiple states within a predetermined range from the first best solution etc. may be extracted and sorted. In this case, the energy, inverse temperature etc. may be recalculated according to statistical values etc., or the energy, inverse temperature etc. for the state of the first best solution etc. may be used.
[0093] When multiple best solutions are obtained as described above, a neighborhood search may be performed in the next iteration by assigning a first predetermined number of patterns of optimization parameters to the first best solution and a second predetermined number of patterns of optimization parameters equal to or less than the first predetermined number to the second best solution. Of course, the number of best solutions is not limited to the first and second best solutions, and three or more best solutions may be obtained.
[0094] Here, the optimization parameters are parameters related to the reverse adoption probability and temperature scheduling. More specifically, the optimization parameters may be at least one of a target value of the reverse adoption probability, a scheduling parameter for the target value, and an update frequency of the reverse temperature, but are not limited to these.
[0095] As yet another example, a state of a predetermined rank among the best known solutions output by multiple replicas (e.g., the best known solution with the median energy or the best known solution with the maximum energy) may be set as the initial state of at least one replica. As yet another example, a state based on a statistic such as the average value of the states may be set as the initial value of at least one replica. In this way, by adding a replica whose initial value is set to a state other than the state with the minimum energy or a value close to it, a wide range of states can be searched.
[0096] Alternatively, the initial state may be selected at random, or may be selected at a ratio based on the energy value stored in each replica (shared among replicas), for example, so that the smaller the energy value, the higher the probability of being selected. In this way, various methods can be implemented for selecting the initial state.
[0097] In the optimization stage, a local neighborhood search for each initial value (initial state) may be assigned to a parallel processing block such as a GPU. For example, processing cores in the same processing block can execute local neighborhood searches based on the same initial value in parallel. By using multiple processing blocks, it is also possible to execute calculations from multiple initial values in parallel. By performing parallel calculations of local neighborhood states and evaluations based on each initial value, faster optimization can be performed.
[0098] From the states searched for using multiple initial values, multiple states may be selected based on a preset rule and used as new initial values. By reassigning these new initial values to the operation blocks, parallel operations can be performed appropriately for the new initial values.
[0099] When allocating a calculation block for each initial value as described above, the number of calculation blocks in optimization may be set to a divisor of the number of calculation blocks suitable for a GPU or the like. By setting the number to a divisor, it is possible to execute parallel calculations of neighborhood searches in which appropriate initial values are set for each group of units in the calculation core of a GPU or the like. Furthermore, one GPU or the like may be the same calculation block. In other words, when multiple GPUs or the like are used, each GPU or the like may execute neighborhood searches using the same initial value.
[0100] Furthermore, when multiple processing blocks are assigned to one replica, different optimization parameters (e.g., temperature parameters) may be assigned to each processing block. By using different optimization parameters for the same initial value, optimization can be performed using states in different search paths.
[0101] Figure 8 shows an example of an algorithm (Algorithm 3) for the second parallel processing in Figure 7 as pseudocode. The output is the solution obtained by optimization. The number of replicas running simultaneously, n, is taken as a parameter. r , the number of optimization iterations n iter The number of replicas that run simultaneously is the number of replicas that run the second parallel process described above simultaneously.
[0102] 1. First, create an array called result[n r ] is prepared. result is an array of structures that store, for example, the state, inverse temperature, and energy for each element. For example, result[i] = (x i , β i , E i ) structure. i is the state at the i-th replica, β i is the inverse temperature at the i-th replica, E i denotes the energy at the i-th replica.
[0103] 2. This loop represents the number of iterations of the parallel annealing, i.e., n r Optimizing using simulated annealing in parallel on n replicas, iter This means repeating it times.
[0104] 3. On the other hand, this loop represents the second parallel processing of simulated annealing. r n replicas of r This indicates that the optimization is performed using simulated annealing, meaning that the processes in this loop are executed in parallel rather than sequentially.
[0105] 4. to 8. Set the initial values for the replicas. At the beginning of the loop, the initial value of the replica state is set by processing 5. For example, it may be a pre-defined state or a state obtained by a random number. The initial energy may be a sufficiently large value (for example, the maximum value of the variable type). The initial value of the inverse temperature is set to the initial value of the temperature to be set for all replicas.
[0106] From the second loop onwards, the replica state is selected and set from result[] by processing step 7. As explained in the flowchart above, the selection method can be, for example, to select the state with the minimum energy, or to allocate several states according to a predetermined ratio.
[0107] 9. This loop determines how much optimization in simulated annealing is performed for each replica. For example, this loop defines how many times the process corresponding to Algorithm 2-1 is executed. In this case, the number of iterations may be determined based on the number of temperature updates. MaxStep indicates the number of iterations.
[0108] 10. Here, the processing of Algorithms 1, 2-1, and 2-2 (first parallel processing) is executed. Note that this is not limited to processing that is strictly the same as the above-mentioned algorithms. For example, an algorithm that does not parallelize the neighborhood search (processing that does not use first parallel processing), such as Algorithm 1, may be used, but it is of course better to execute the neighborhood search using first parallel processing. Similarly, as in Algorithm 2-1, optimization may be performed without controlling the inverse temperature, i.e., using only Algorithm 1. Furthermore, an inverse temperature update rate that does not follow Algorithm 2-2 may be defined. As such, the processing in this row may be any processing that appropriately realizes simulated annealing processing. However, in terms of accuracy and calculation speed, it is desirable for the processing to be equivalent to the above-mentioned Algorithms 1, 2-1, and 2-2, including first parallel processing.
[0109] 11. to 15. Based on the state obtained by the above algorithm, the best energy, inverse temperature, and solution are updated by the energy value. Details are as explained in the flowchart above. For example, in the i-th replica, the best energy value obtained in the process of 10, the inverse temperature that gives this best energy, and the state for the best energy are respectively defined as E i best , β i best , x i best It should be noted that this may be a state in which the final output of the process in 10 is updated, or a state in which the state with the minimum energy in the process in 10 is updated.
[0110] In the latter case, a memory area for storing the energy, inverse temperature, and state may be reserved during optimization, and if the stored energy becomes smaller after execution of step 10, for example, step 5 in Figure 4, the energy, inverse temperature, and state may be updated. By doing this, even if a worsening result due to the inverse temperature is finally output, the state, etc. can be updated using the optimal value obtained during the optimization process.
[0111] 17. The solution for the best energy obtained in steps 4 to 16 is stored in result[i].
[0112] Then, in the loops 3. to 17. from the second time onwards, it becomes possible to set the initial value of each replica in the process of 7. to the state that was optimal up to the previous loop, or a state equivalent thereto, or a state that can achieve wide-ranging optimization as a whole.
[0113] As described above, good solutions and parameters such as inverse temperature can be shared with other replicas, enabling efficient search around good solutions. By performing a search in this way, it becomes possible to solve the process of simulated annealing, which is difficult to set the solution location, initial temperature, etc., during optimization.
[0114] 8, the same state may be set for multiple replicas, but even in this case, because simulated annealing is a highly random method, it is possible to converge to a different state for each replica and ensure diversity. From the above, even when the placement of the initial solution, initial parameters, etc., in order to find a better solution are not self-evident, by using the method according to this embodiment, it is possible to search for a solution over a wider range in the initial stage, and then gradually narrow the range, thereby realizing a search for a solution within a narrow range with high accuracy and high performance.
[0115] According to the above-described embodiment, it is possible to improve the convergence speed, appropriately control the transition to a worsening state based on the ideal backward adoption probability, and execute an algorithm that effectively realizes parallel calculations in devices including multi-core and many-core processors.
[0116] (Implementation example) As a non-limiting example, a specific example will be described below using optimization of a job shop scheduling problem, which is a schedule management problem in a manufacturing process.
[0117] The job shop scheduling problem is an optimization problem that determines how to allocate jobs to efficiently complete multiple jobs (products) when processing multiple jobs (products) using multiple machines. This optimization can be performed under various conditions, such as the most time-efficient method, the earliest possible product shipment, or a consistent time-averaged number of products manufactured. This implementation example explains how to solve this job shop scheduling problem in the aforementioned embodiment. Hereinafter, the order in which jobs (products) are processed on a given machine may also be simply referred to as a process. Although the following explanation uses the job shop scheduling problem as an example, the method of the present application can be widely applied to scheduling problems that determine the order of processing, such as the traveling salesman problem.
[0118] For example, when optimizing scheduling, swapping the order of one job with another is equivalent to swapping pairs of corresponding elements in a binary matrix. This swapping of the order requires a determination of whether constraints are satisfied. For example, row constraints, column constraints, and other constraints must be determined before and after the swap. When the relationships between variables become complex, determining these constraints can require a huge amount of computational effort.
[0119] On the other hand, for example, by expressing jobs as integer values, these permutations can be realized simply by permuting two variables arranged in chronological order. Also, by expressing jobs as integer values, it is possible to reduce the dimension of variables. This makes it possible to achieve optimization by focusing on a cost function that only takes into account the order of jobs. Furthermore, neighborhoods where multiple jobs are permuted can be realized simply by permuting variables, which further improves the efficiency of neighborhood search.
[0120] Although a job shop scheduling problem is used here as a non-limiting example, the present invention can be applied to other scheduling problems as well.
[0121] FIG. 9 is a diagram showing an example of a portion of a schedule in its initial state (before optimization) according to one embodiment. It shows which jobs A to F each machine 1 to 4 will process at times 1 to 3, respectively. Consider optimizing this schedule to obtain a schedule that reduces costs and improves performance. For example, consider the case of swapping jobs on machine 3.
[0122] Fig. 10 shows an example in which the processes of machine 3 in the schedule of Fig. 9 are rearranged. As shown in Fig. 10, the processes of machine 3 that were B, C, and F are rearranged with F, C, and B, or with B, F, and C through a neighborhood search, and then an evaluation value is obtained and the schedule is optimized using a heuristics or metaheuristics technique. The information processing system 1 performs schedule optimization, for example, to increase the evaluation or reduce the energy.
[0123] The evaluation or energy is calculated based on information such as the acceleration / delay of processing time that is changed by switching between the jobs. The information processing system 1 may calculate the evaluation value using, for example, the number of manufactured items per actual processing time, delivery delay time, acceleration / delay of pipeline processing, estimated yield, or the like.
[0124] This evaluation or energy is performed using heuristics and metaheuristics techniques, without being limited to the machine 3. Then, the information processing system 1 performs optimization based on the evaluation using multiple replicas and inverse temperature in the above-described embodiment.
[0125] FIG. 11 shows a representation of a process formulated using QUBO variables when performing optimization using a quantum annealing machine or a classical computer using simulated annealing to perform operations similar to those of a quantum annealing machine, and illustrates the implementation of the process according to this embodiment. As shown in the left figure, a process in a format that realizes optimization using quantum computing is implemented by expressing states in a matrix format using binary notation of 0 and 1, specifying time steps and job IDs. For example, in the left figure, a schedule is expressed such that job ID 1 is executed at time 1, job ID 3 is executed at time 2, and so on.
[0126] State transitions, such as swapping jobs, require changes that violate variable constraints. In the QUBO model, processes are expressed like this. For example, if you swap a job with job ID 3 at time 2 with a job with job ID 4 at time 4, you need to swap the "1" in the second column of the third row and the "1" in the fourth column of the fourth row of the matrix with a "0" in the second column of the fourth row and a "0" in the fourth column of the third row, respectively.
[0127] However, when this binary representation is used, the dimensions of the variables become high when work is processed sequentially in each process. Furthermore, when transitions in simulated annealing are repeated, the number of constraints that must be considered increases, resulting in high computational costs due to calculations that take such constraints into account. For example, in the above example, constraints arise when swapping the values in the third row and the fourth row, and constraints arise when swapping the values in the second column and the fourth column. These constraints must be applied each time the optimization neighborhood is searched, and there is a high likelihood that the computational costs will be extremely high due to constraints between variables and other factors.
[0128] Therefore, in this embodiment, for example, by extending variables described in binary in quantum annealing to integer variables, it is possible to significantly reduce computational costs. The right diagram shows the representation of the job ID extended to integer variables. For example, process P1 is the process represented by the matrix in the left diagram, and it is possible to arbitrarily interchange each process within this process. Furthermore, as shown by P2, P3, and P4 in the right diagram of Figure 11, multiple processes can also be expressed as integers, so the number of variable dimensions can be reduced compared to when represented using QUBO variables.
[0129] 12 is a diagram showing an example of rearranging the processing order within a process (neighborhood search) according to one embodiment. For example, during the simulated annealing process, the information processing system 1 rearranges tasks 3 and 4, which are processes at times 2 and 4 in process P1. In FIG. 12, only the processes related to one process P1 are rearranged, but the present invention is not limited to this.
[0130] 13 is a diagram showing another example of changing the processing order of the processes according to an embodiment. The information processing system 1 may change the processing order of a plurality of processes, for example, during the annealing process.
[0131] While Figure 12 has been described as, for example, changing the processing order of one product in a process, it may also refer to the swapping of two products in a process. In this case, Figure 13 refers to the swapping of two products in multiple processes.
[0132] FIG. 14 is a diagram showing yet another example of changing the processing order within a process according to an embodiment. The information processing system 1 may, for example, change the processing order of the same combination of processes in multiple processes. In FIG. 14, the processing order of all of the tasks 2 and 3 is changed, but this is not limited to this. The processing circuitry 10 may, for example, change the processing order of the same combination of tasks in any combination of multiple processes other than all of the processes.
[0133] The above-described processing order changes in the simulated annealing process may be performed with a cost set for each combination of changes. The information processing system 1 may execute calculation of the energy value in the simulated annealing process by formulating the cost.
[0134] For example, different costs may be assigned to the case where the processing order of jobs 3 and 4 is swapped as in Fig. 12 and the case where the processing order of jobs 2 and 3 is swapped as in Fig. 14, and an energy value may be calculated taking these costs into consideration. Also, different costs may be assigned to the cost relating to swapping the processing order in one process as in Fig. 12 and the cost relating to swapping the processing order in multiple processes as in Fig. 13.
[0135] By formulating costs in this way, it is possible for a manager to achieve optimization while restricting the processing order of the processes to a certain extent.
[0136] In this embodiment, the neighborhood search is performed as shown in Figures 12 to 14 as some non-limiting examples, but this processing can be performed as parallel processing. By performing parallel processing, the information processing system 1 can perform many neighborhood searches at the same time. According to the processing method using replicas described above, the simulated annealing process can also be realized in parallel.
[0137] Figure 15 shows an example of how processes are swapped in steps for multiple replicas and some of the energy values extracted. Here, eight replicas, R1 to R8, are extracted as some of the replicas. Replicas R1 and R2 have the same initial state. Similarly, replicas R3 and R4, replicas R5 and R6, and replicas R7 and R8 have the same initial state.
[0138] The hollow right arrows in the figure indicate the annealing process, and indicate that the process shown to the left of the arrow is optimized to the process shown to the right of the arrow in each replica through annealing. The numbers in rows A and B in the table to the right of the arrow are values that indicate the work actually processed at times 1 to 7, respectively. The numbers on the right of the table are the energy after optimization in each replica. These processes are carried out based on Figures 4 and 5, and in line with the processes within the replica in Figure 8.
[0139] After optimization for each replica, the information processing system 1 removes all but one result from replicas with overlapping energy values to obtain candidates for the initial value of the next annealing cycle. Next, the information processing system 1 orders the candidates from the replicas obtained based on energy. This is performed according to the algorithm shown in FIG. 8. For example, in the example shown in FIG. 11, the solutions obtained from replicas R2, R5, and R8 are stored in result[i] in this order, and the best solution is updated. Then, according to the algorithm shown in FIG. 8, the next initial value is selected from the ordered candidates, and the operation of the next iteration is performed.
[0140] In this embodiment, after optimization for each replica, all but one result of replicas with overlapping energy values are deleted, but the method of deleting overlapping replicas is not limited to this. For example, whether multiple replicas are overlapping may be determined based on whether one or more steps are the same, rather than whether the energy values are the same.
[0141] Furthermore, as shown in FIG. 15, the same initial value may be assigned to multiple replicas. This corresponds to setting the same initial value among replicas in the replica settings shown in lines 3 to 17 of the algorithm in FIG. 8. In the example of FIG. 8, it appears as if all replica values are initialized with the same default value, but this is not limited to this. For example, as shown in FIG. 15, it is also possible to use the same default value for multiple replica groups, and use different default values among different replica groups.
[0142] The information processing system 1 may assign evaluations of neighboring states for each initial value to multiple processing blocks such as GPUs. For example, if there are 100 jobs and each job is replaced only once, 100 If the combination of C2 = 4950 and parallel processing is possible with 1024 threads in one operation block, then 4950 / 1024 = 4.8, which means five loop operations are required. On the other hand, by executing this process in five operation blocks, the evaluation value for this permutation can be obtained with one loop operation.
[0143] The selection of the initial values is not limited to the above. For example, the information processing system 1 may select multiple states from the final state of the previous loop derived from multiple initial values based on a preset rule, and perform a neighborhood search again using these as new initial values.
[0144] When the information processing system 1 is implemented using a GPU or the like, the number of the above-mentioned plurality of operation blocks can be set to a divisor of the number of operation blocks that can be parallelized.
[0145] When processing is performed independently for each initial value using a metaheuristic technique from multiple initial values, the GPU can be used efficiently by setting this number as a divisor of the number of parallel operations for operation blocks. For example, if the number of parallel operations for operation blocks is 80, the information processing system 1 can equalize the number of replicas calculated in parallel by setting the number of replicas that provide initial values to 2, 4, 5, 8, ..., which are divisors of 80. As a result, the GPU can be used efficiently. Similarly, when the information processing system 1 includes multiple GPUs, it is possible to use a number of GPUs from the available GPUs based on the divisor of the number of parallel operations.
[0146] In this way, the information processing system 1 may enumerate and evaluate candidates for processing permutations in parallel using GPU operation blocks, threads, or multiple boards. In the following cases, such implementation has the effect of increasing speed and improving accuracy.
[0147] Furthermore, as described above, it is also possible to use different calculation blocks to search for solutions using different optimization parameters such as temperature for the same initial value.
[0148] The information processing system 1 may configure multiple replicas for the same initial value as described above. When the metaheuristic method is simulated annealing, the information processing system 1 can realize a search with different sizes of the selected neighborhood area by setting different values for various parameters such as the temperature parameter. By implementing it in this way, a replica with a low inverse temperature can realize a search in a wide range, and a replica with a high inverse temperature can realize a search in a narrow range with finer granularity.
[0149] This type of implementation is also effective for search methods such as tabu search, and similar implementations are possible for other metaheuristic methods.
[0150] Furthermore, the process of searching for a solution from a processing order given as an initial value may be executed with multiple initial values and multiple (two or more) optimization parameters. In this case, multiple candidates that have received high evaluations during the search may be extracted, and one or multiple optimization parameters may be assigned to the extracted processing order to execute the solution search again. That is, when the information processing system 1 executes the process of searching for a solution from an initially given processing order with multiple initial values and multiple optimization parameters, it may extract multiple candidates that have received high evaluations during the search, and assign multiple optimization parameters to the extracted processing order to execute the search shown in FIG. 8, etc.
[0151] As described above, the optimization parameter may be at least one of a target value of the reverse adoption probability, a scheduling parameter for the target value, or an update frequency of the reverse temperature, but is not limited to these.
[0152] 15, the information processing system 1 stores the solutions obtained from multiple different replicas R2, R5, and R8 in this order in result[i] and updates the best solution. Then, the information processing system 1 may use, for example, multiple best solutions extracted from the top of these best solutions, and initialize them as default values for the next replica to achieve optimization.
[0153] For example, the information processing system 1 may use the best solution obtained from replica R2 as the initial value for the next replicas R1 to R4. The best solution obtained from replica R5 may then be used as the next replicas R5 and R6, and the best solution obtained from replica R8 may be used as the next replicas R7 and R8. An optimization parameter such as temperature (inverse temperature) may then be assigned to each replica. By assigning different replica numbers to the ordered candidates in this way, a wider range and more granular neighborhood search can be efficiently performed for the best solution with a good evaluation (low energy).
[0154] In the above, the term "processing of work within a process" is used, but this concept is not limited to these terms. For example, "work" may mean other concepts such as processing, task, subtask, or product used / produced / processed, and "process" may be replaced with "process," "pipeline," etc. The same applies to the claims.
[0155] In the above-described embodiments, the information processing system 1 performs optimization using simulated annealing, but the optimization method that can be used is not limited to this. As another example, the information processing system 1 can also incorporate and apply a concept corresponding to the temperature of simulated annealing in other evolutionary algorithms or metaheuristic optimization algorithms.
[0156] To summarize the contents of the present disclosure, an information processing system includes a memory circuit and one or more processing circuits capable of executing parallel operations. The processing circuit calculates energies of a plurality of neighboring states relative to a current state by a first parallel process, calculates an index indicating whether each of the plurality of neighboring states will be adopted based on the energies of the neighboring states, calculates an adoption probability for the plurality of neighboring states based on the calculated index so that one of the plurality of neighboring states will be adopted, and selects a next state from the plurality of neighboring states based on the adoption probability.
[0157] In the above process, the processing circuit may normalize the index to obtain the selection probability. Alternatively, as shown in the above-described embodiment, the processing circuit may perform the above process as a simulated annealing optimization process. In this case, the index may be calculated based on temperature or the difference between the energy of the current state and the energy of a neighboring state. The processing circuit may obtain this index as the selection probability that the next neighboring state will be selected.
[0158] As described above, for example, as shown in Fig. 6, the processing circuit can control the inverse temperature so that the inverse selection probability approaches the ideal inverse selection probability based on the inverse selection probability where the energy of the neighboring state after the transition in the calculation stage up to the current stage is greater than the energy of the state before the transition and the pre-scheduled ideal inverse selection probability.The processing circuit can then calculate an index for determining the selection probability based on this inverse temperature.
[0159] The processing circuit may use replicas representing multiple current states and execute the first parallel processing in the replicas as part of the second parallel processing, in which case the processing circuit may update the states based on the energy calculated by each of the first parallel processing, and select a next replica state from the multiple updated states as the second parallel processing.
[0160] As described in the specific example, the processing circuit may describe the state using integer values. In the scheduling problem, at least one of the multiple neighboring states may be a change in the processing order of one product on a machine, a swap of two products, or a swap of the processing order of two products in the same combination on multiple machines.
[0161] The processing circuit may include a GPU having one or more operation blocks, and may execute a metaheuristic method for multiple initial values, which are current states. For example, multiple neighboring states for each initial value may be processed using at least one of GPU operation block parallelism, thread parallelism, and parallelism using multiple GPUs to enumerate and evaluate combinations of components in the multiple neighboring states. Furthermore, multiple operation blocks may be used to enumerate and evaluate combinations of correction candidates for at least one of multiple initial values. Furthermore, the number of operation blocks may be a divisor of the number of operation blocks that can be parallelized. Furthermore, for the same initial value, neighbor searches using different optimization parameters may be performed using different operation blocks.
[0162] In the process of selecting multiple neighboring states, the processing circuit may extract and order multiple candidates that have received higher evaluations than other states based on energy, and based on this ordering, for example, for a candidate that is ranked higher, a neighboring search using different optimization parameters may be performed using a different operation block. As a result, a search can be realized in a wider range for the candidate that is ranked higher than the other candidates.
[0163] The present disclosure also includes a method for performing each of the above using a processing circuit. Similarly, the present disclosure also includes a program for specifically implementing software information processing in a processing circuit that is hardware. Of course, the processing circuit may be incorporated as part of an information processing device or an information processing system.
[0164] The aspects of the present disclosure are not limited to the above-described embodiments and include various conceivable modifications, and the effects of the present disclosure are not limited to the above-described contents. The components in each embodiment may be appropriately combined and applied. In other words, various additions, modifications, and partial deletions are possible within the scope of the conceptual idea and intent of the present disclosure, which is derived from the content defined in the claims and their equivalents. [Explanation of symbols]
[0165] 1: Information processing systems, 10: Information processing device, 100: Processing circuit, 102: Memory circuit, 104: Interface, 106: Bus, 90, 94: External device, 92: Network
Claims
1. a memory circuit and one or more processing circuits capable of performing parallel operations; The processing circuitry A first parallel process calculates energies in a plurality of neighboring states relative to a current state; calculating a simulated annealing acceptance probability for each of the neighbors calculated using temperature and the difference between the energy of the current state and the energy of the neighboring states; Calculating an acceptance probability for each of the plurality of neighborhoods as the probability that the neighborhood will be selected, where the adoption probability is defined as any one of the plurality of neighborhood states being adopted; selecting a next state from the plurality of neighboring states based on the adoption probability; It is configured as follows: The processing circuitry further comprises: In the stages up to the current stage, based on a retrograde adoption probability where the energy of the neighboring state after the transition is greater than the energy of the state before the transition and a pre-scheduled ideal retrograde adoption probability, an inverse temperature, which is the inverse of the temperature, is controlled so that the retrograde adoption probability approaches the ideal retrograde adoption probability. Information processing system.
2. The processing circuitry normalizing the acceptance probability calculated from the states of the plurality of neighborhoods across the plurality of neighborhoods to obtain the adoption probability; 2. The information processing system according to claim 1.
3. The processing circuitry calculating the acceptance probability based on the inverse temperature; 3. The information processing system according to claim 1 or 2.
4. The processing circuitry The first parallel processing for the plurality of replicas that are the current states is further executed in parallel in a second parallel processing for processing operations for the plurality of replicas in parallel; updating the state based on the energy calculated by the first parallel processing in each of the replicas; selecting the state of the next replica from the state updated by the second parallel processing; 4. An information processing system according to claim 1.
5. the processing circuitry describes the current state and the plurality of neighboring states using integer values; 5. An information processing system according to claim 1.
6. the processing circuitry determines, in the scheduling problem, a state obtained by at least one of the following operations: changing the processing order of one product on one machine, interchanging the processing order of two products, or interchanging the processing order of two products of the same combination on multiple machines, as at least one of the multiple neighboring states; 6. An information processing system according to claim 1.
7. The processing circuitry 7. The information processing system according to claim 1, wherein a plurality of mutually different optimization parameters are used for the current state to search for the plurality of neighboring states corresponding to each of the optimization parameters.
8. The processing circuitry extracting, from the plurality of current states, a plurality of current states that have been evaluated higher than the others based on the energies of the plurality of current states; using a plurality of optimization parameters different from each other for at least one of the extracted plurality of current states, and again searching the plurality of neighborhoods corresponding to each of the optimization parameters; 8. An information processing system according to claim 1.
9. the processing circuitry includes one or more GPUs (Graphics Processing Units); The GPU has one or more processing blocks capable of performing parallel processing with each other, Executing a metaheuristic technique including the calculation of the energy, the calculation of the acceptance probability, the calculation of the adoption probability, and the selection of the next state for a plurality of neighboring states for one or a plurality of the current states, using at least one of parallel processing of operation blocks of the GPU, parallel processing of threads, or parallel processing using a plurality of boards; 9. An information processing system according to claim 1.
10. The processing circuitry executing the metaheuristic technique for at least one of the one or more current states using a plurality of the operational blocks; 10. The information processing system according to claim 9.
11. the number of the plurality of processing blocks is a divisor of the number of processing blocks that can be parallelized; 11. The information processing system according to claim 10.
12. The processing circuitry Calculating energy in a plurality of neighboring states relative to a current state by a first parallel process; calculating a first probability, which is an acceptance probability in simulated annealing for each of the neighboring states, using a temperature and a difference between the energy of the current state and the energy of the neighboring states; calculating a second probability by normalizing the first probability so that any one of the states in the plurality of neighborhoods is adopted; selecting a next state from the plurality of neighboring states based on the second probability; An information processing method, further comprising: In the stages up to the current stage, based on a retrograde adoption probability where the energy of the neighboring state after the transition is greater than the energy of the state before the transition and a pre-scheduled ideal retrograde adoption probability, an inverse temperature, which is the inverse of the temperature, is controlled so that the retrograde adoption probability approaches the ideal retrograde adoption probability. Information processing methods.
13. The processing circuit A first parallel process calculates energies of a plurality of neighboring states relative to a current state; calculating a simulated annealing acceptance probability for each of the neighbors calculated using a temperature and a difference between the energy of the current state and the energy of the neighboring states; Calculating an acceptance probability for each of the plurality of neighborhoods as the probability that the neighborhood will be selected, where the adoption probability is defined as any one of the plurality of neighborhood states being adopted; selecting a next state from the plurality of neighboring states based on the adoption probability; An information processing method, further comprising: In the stages up to the current stage, based on a retrograde adoption probability where the energy of the neighboring state after the transition is greater than the energy of the state before the transition and a pre-scheduled ideal retrograde adoption probability, an inverse temperature, which is the inverse of the temperature, is controlled so that the retrograde adoption probability approaches the ideal retrograde adoption probability. A program that executes an information processing method.
14. a memory circuit and one or more processing circuits; The processing circuitry The temperature is transitioned according to a preset schedule to perform optimization using simulated annealing. In the repeated optimization operation, counting the number of neighbors of the current state whose energy calculated in the optimization is greater than the energy of the current state; calculating the ratio of the number of counted neighbors to the total number of neighbors searched by the optimization; Based on the ratio and a rate adopted based on the temperature when the energy of the vicinity is greater than the energy of the current state, control is performed so that the reverse temperature is increased when the temperature is higher than the temperature in the schedule, and the reverse temperature is decreased when the temperature is lower than the temperature in the schedule. Information processing device.
Citation Information
Patent Citations
Combination optimizing method
JP1997034951A
Device for analyzing combinatorial optimization problem
JP2003223322A
Optimization device and control method of optimization device
JP2020057306A
Sampling device and sampling device control method
JP2020135727A
Optimization device and control method of optimization device
JP2020187453A