Program and data processing device
The data processing device and program address the issue of local solutions in combinatorial optimization by employing a second search range with fixed state variables and a modified evaluation function, enhancing solution-finding speed and accuracy.
Patent Information
- Application Number
- JP2024073559
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-04-30
- Publication Date
- 2025-11-12
AI Technical Summary
Existing local search methods for combinatorial optimization problems often get trapped in local solutions, leading to prolonged solution-finding times.
A data processing device and program that facilitate escape from local solutions by using a second search range with fixed state variables and a modified evaluation function based on Hamming distance, or by adding a constraint term proportional to the Hamming distance.
Reduces calculation time and hardware requirements while ensuring accurate solutions are found efficiently.
Smart Images

Figure 2025168797000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a program and a data processing device. [Background technology]
[0002] When searching for a solution to a combinatorial optimization problem, one method is to convert the combinatorial optimization problem into an Ising model that represents the spin behavior of magnetic materials. The Ising model is represented by an Ising-type evaluation function that evaluates the solution to the combinatorial optimization problem. An Ising-type evaluation function includes multiple state variables and multiple weight values. The state of the Ising model is expressed by a combination of the values of the multiple state variables. In an Ising-type evaluation function, the state variable is a binary variable that takes the value of 0 or 1 (or -1 or +1). The state variable may also be expressed as a bit. The Ising-type evaluation function can also be considered an energy function, and the value of the evaluation function can be considered the energy of the Ising model.
[0003] An apparatus that searches for a solution using such an Ising-type evaluation function is called an Ising machine. An Ising machine searches for a combination of state variable values included in the evaluation function that minimizes the value of the evaluation function, for example. In this case, the combination of state variable values that minimizes the value of the evaluation function corresponds to the ground state or the optimal solution.
[0004] Local search is a solution-finding technique for obtaining an approximate solution to a combinatorial optimization problem in a practical amount of time (see, for example, Patent Documents 1 to 4). Examples of local search methods include simulated annealing, which is a type of MCMC (Markov Chain Monte Carlo) method, and replica exchange (also known as exchange Monte Carlo).
[0005] Furthermore, some optimization problems have a constraint (1-hot constraint) that the number of state variables that have a value of 1 among the state variables included in the evaluation function is limited to one. Conventionally, an optimization device has been proposed that reduces calculation time by narrowing down the state to satisfy the 1-hot constraint and performing a local search (see, for example, Patent Document 5). [Prior art documents] [Patent documents]
[0006] [Patent Document 1] Japanese Patent Application Laid-Open No. 2003-223322 [Patent Document 2] Japanese Patent Application Laid-Open No. 2018-109950 [Patent Document 3] US Patent Application Publication No. 2019 / 0251227 [Patent Document 4] US Patent Application Publication No. 2016 / 0203419 [Patent Document 5] Japanese Patent Publication No. 2020-064536 Summary of the Invention [Problem to be solved by the invention]
[0007] In local search, the state represented by the combination of state variable values included in the evaluation function may fall into a local solution from which it is impossible to escape. In this case, the solution-finding time may be long. One aspect is to facilitate escape from local solutions in combinatorial optimization problems. [Means for solving the problem]
[0008] In one embodiment, a program is provided that causes a computer to execute a process of searching for a solution to a combinatorial optimization problem by local search in a first search range using a plurality of state variables, determining whether or not a current state represented by a combination of values of the plurality of state variables has fallen into a local solution in the search of the first search range, and if it is determined that the current state has fallen into the local solution, determining a first solution candidate based on a plurality of solution candidates stored in a storage unit, and executing the local search in a second search range using a second state variable among the plurality of state variables that has a different value between the current state and the first solution candidate, while fixing the value of a first state variable among the plurality of state variables that has the same value between the current state and the first solution candidate.
[0009] In one embodiment, a program is provided that causes a computer to execute the following processes: searching for a solution to a combinatorial optimization problem by local search using a first evaluation function; determining whether or not a current state represented by a combination of values of a plurality of state variables included in the first evaluation function has fallen into a local solution in the search using the first evaluation function; if it is determined that the current state has fallen into the local solution, determining a first solution candidate based on a plurality of solution candidates stored in a storage unit; changing the first evaluation function to a second evaluation function by adding a first constraint term having a magnitude proportional to the Hamming distance between the first solution candidate and the current state to the first evaluation function; and executing the local search using the second evaluation function.
[0010] Also provided in one embodiment is a data processing device. [Effects of the Invention]
[0011] On the one hand, it can facilitate escape from local solutions in combinatorial optimization problems. [Brief explanation of the drawings]
[0012] [Figure 1] FIG. 1 illustrates an example of a data processing device and its processing procedure according to a first embodiment. [Figure 2] FIG. 10 is a diagram illustrating an example in which the current state falls into a local solution. [Figure 3] FIG. 10 illustrates an example of a data processing device and its processing procedure according to a second embodiment. [Figure 4] FIG. 10 is a block diagram illustrating an example of hardware of a data processing device according to a third embodiment. [Figure 5] FIG. 2 is a block diagram illustrating an example of functions of a data processing device. [Figure 6] FIG. 2 is a block diagram illustrating an example of functions of a search processing unit. [Figure 7] FIG. 10 is a diagram showing an example in which multiple replicas are used. [Figure 8] 10 is a flowchart showing the flow of a first processing procedure of the data processing device. [Figure 9] 10 is a flowchart showing the flow of a second processing procedure of the data processing device. [Figure 10] FIG. 10 is a diagram illustrating a method for determining an elite solution using a path recombination method. [Figure 11] FIG. 10 is a diagram illustrating another example of a data processing device. DETAILED DESCRIPTION OF THE INVENTION
[0013] Hereinafter, embodiments of the invention will be described with reference to the drawings. (First embodiment) FIG. 1 is a diagram illustrating an example of a data processing device and its processing procedure according to a first embodiment. The data processing device 10a according to the first embodiment searches for a solution to a combinatorial optimization problem by local search. The data processing device 10a may be a client device or a server device. The data processing device 10a may also be called a computer.
[0014] The data processing device 10a of the first embodiment includes a storage unit 11 and a processing unit 12a. The storage unit 11 may include a volatile semiconductor memory such as a RAM (Random Access Memory), or may include a non-volatile storage such as an HDD (Hard Disk Drive) or a flash memory. Moreover, the storage unit 11 may include both a volatile semiconductor memory and a non-volatile storage.
[0015] The storage unit 11 stores problem information for combinatorial optimization problems. Combinatorial optimization problems can be formulated using an Ising-type evaluation function. For example, the combinatorial optimization problem can be replaced with a problem of minimizing the value of the Ising-type evaluation function.
[0016] The Ising-type evaluation function is expressed, for example, by the following equation (1).
[0017]
number
[0018] The state vector x has multiple state variables as elements and represents the state of the Ising model. Equation (1) is an evaluation function formulated in the QUBO (Quadratic Unconstrained Binary Optimization) format. Note that if the problem is to maximize the value of the evaluation function, the sign of the evaluation function can be reversed.
[0019] The first term on the right side of equation (1) is the sum of the values of the two state variables and the weighting coefficients for all combinations of two state variables that can be selected from all state variables, without omissions or duplications. The subscripts i and j are the indexes of the state variables. i is the i-th state variable. x j is the jth state variable. W ij is the weighting coefficient that indicates the strength of the connection between the i-th state variable and the j-th state variable. ij =W ji and W ii = 0. N is the total number of state variables.
[0020] The second term on the right side of equation (1) is the sum of the products of the biases of all state variables and the values of the state variables. i indicates the bias for the i-th state variable. The problem information of the combinatorial optimization problem stored in the storage unit 11 includes the weighting coefficients and biases included in the evaluation function as described above.
[0021] Furthermore, the storage unit 11 may store calculation conditions for the local search. When the local search is performed using the simulated annealing method, the calculation conditions include, for example, the maximum value of the temperature parameter (hereinafter referred to as the maximum temperature), the temperature parameter change schedule, the minimum value of the temperature parameter (hereinafter referred to as the minimum temperature), and the search termination condition. When the local search is performed using the replica exchange method, the calculation conditions include, for example, the maximum temperature, the minimum temperature, the number of replicas, the replica exchange frequency, and the search termination condition.
[0022] The storage unit 11 further stores multiple solution candidates for the combinatorial optimization problem and the value of the evaluation function for each solution candidate. Each of the multiple solution candidates is represented by a state (combination of values of multiple state variables) when the minimum value of the evaluation function obtained during the local search is updated.
[0023] If the value of the evaluation function corresponding to a state obtained during the search is smaller than the minimum value of the evaluation function obtained so far, that state is stored as a solution candidate in the storage unit 11. In other words, every time the minimum value is updated, a new solution candidate is stored in the storage unit 11 together with its evaluation function value. The storage unit 11 also stores the minimum value of the evaluation function obtained so far.
[0024] When local searches are performed under a plurality of different calculation conditions, the plurality of solution candidates may include solution candidates obtained in each of the local searches performed under a plurality of calculation conditions (different temperature conditions, different initial states, etc.). In this case, the solution candidates obtained in each local search can be commonly used when determining the first solution candidate in each local search, as described below.
[0025] In the problem of maximizing the value of the evaluation function, each of the multiple solution candidates is represented by the state when the maximum value of the evaluation function obtained during the search of the local search is updated. The processing unit 12a can be realized by an electronic circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array). However, the processing unit 12a can also be realized by a processor such as a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), or a DSP (Digital Signal Processor). The processor executes a program stored in a memory such as a RAM (which may be the storage unit 11). A set of processors may be called a multiprocessor or simply a "processor." Furthermore, the processing unit 12a may include a processor and an electronic circuit such as an ASIC or an FPGA.
[0026] The processing unit 12a searches for a solution to a combinatorial optimization problem by local search. Local search is x i The change in the value of the evaluation function due to the change in i ) is used. ΔE i is expressed by the following equation (2).
[0027]
number
[0028] ΔE i >0 x i When the value of one of the state variables changes, the value of Equation (1) becomes smaller. i is calculated for each of the state variables. i Changes in are accepted probabilistically, with priority given to changes that result in smaller values of the evaluation function.
[0029] In this case, the steepest descent method cannot escape if the state falls into a local solution. Therefore, the processing unit 12a uses the Metropolis method or the Gibbs method to determine the transition probability from one state to the next state by changing a certain state variable. That is, the processing unit 12a determines the transition probability from one state to the next state by changing a certain state variable. In other words, even if the value of the evaluation function increases, the processing unit 12a also determines the transition probability by changing the Metropolis method or the Gibbs method. i The thermal noise value is probabilistically accepted based on a comparison between the temperature parameter value and the thermal noise value. The thermal noise value is calculated based on the temperature parameter value and a random number. The larger the temperature parameter value, the larger the amplitude of the thermal noise value. The larger the amplitude of the thermal noise value, the more likely it is that a state transition with a large increase in the evaluation function value will be accepted.
[0030] For example, in the simulated annealing method, the processing unit 12a gradually changes the value of the temperature parameter from the maximum temperature to the minimum temperature according to a predetermined temperature parameter change schedule, thereby reducing the amplitude of the thermal noise value and causing the state of the Ising model to converge to the ground state.
[0031] Local search using MCMC methods such as simulated annealing and RF (Rackwitz Fiessler) methods allows for changes in state variables that increase the value of the evaluation function. However, the following problems may occur.
[0032] 2 is a diagram showing an example in which the current state falls into a local optimum. The horizontal axis represents the state, and the vertical axis represents the value of the evaluation function (E(x)). In the example of Figure 2, state 15 falls into a local solution where the value of the evaluation function is minimal. In local search using the MCMC method, RF method, or the like, once the state falls into a local solution, thereafter, for example, states around the local solution, such as states 15a to 15d, are only obtained, and there is a possibility that the state will be constrained to the same local solution again.
[0033] Therefore, the processing unit 12a performs the following processing to facilitate escape from a local solution of the combinatorial optimization problem. Figure 1 shows an example of the flow of processing that the processing unit 12a performs to facilitate escape from a local solution.
[0034] Step S1: The processing unit 12a performs the above-mentioned local search in a first search range using a plurality of state variables (for example, all state variables included in E(x)). Step S2: The processing unit 12a determines whether the current state represented by the combination of the values of the state variables in the search in the first search range has fallen into a local solution. For example, the processing unit 12a determines that the current state has fallen into a local solution when the minimum value of the evaluation function obtained during the search has not been updated for a predetermined period of time.
[0035] In the problem of maximizing the value of the evaluation function, the processing unit 12a determines that the current state has fallen into a local solution when the maximum value of the evaluation function obtained during the search has not been updated for a predetermined period of time.
[0036] Step S3: When the processing unit 12a determines that the current state has fallen into a local solution, it determines a first solution candidate (hereinafter referred to as an elite solution) based on the above-mentioned multiple solution candidates stored in the storage unit 11.
[0037] The elite solution is, for example, the solution candidate whose Hamming distance from the current state is closest to a threshold value among multiple solution candidates stored in the storage unit 11. It is possible to select the solution candidate whose Hamming distance from the current state is closest as the elite solution, but in that case, in the processing of step S4 described below, the current state may transition to the elite solution, and the search may then stop progressing. As the threshold value, for example, a value of about 20% of the total number of state variables is used. However, the threshold value can be changed as appropriate.
[0038] Alternatively, the elite solution may be determined by a path relinking (PR) method using two solution candidates randomly selected from a plurality of solution candidates stored in the storage unit 11. A method for determining an elite solution by the path relinking method will be described later (see FIG. 10).
[0039] Step S4: The processing unit 12a performs a local search while fixing the value of a first state variable, which has the same value between the current state and the elite solution, among the multiple state variables. The local search in the process of step S4 is performed in a second search range using a second state variable, which has a different value between the current state and the elite solution, among the multiple state variables.
[0040] The local search in the second search range corresponds to, for example, a local search using the evaluation function of the following equation (3).
[0041]
number
[0042] In formula (3), “mismatch” represents a set of identification numbers of second state variables that have different values between the current state and the elite solution among the multiple state variables. * i denotes the i-th state variable of the elite solution.
[0043] 1 shows a state 15 and an elite solution 16 as examples of the current state and the elite solution, as well as examples of the first search range and the second search range. When it is determined that the current state has fallen into a local solution and the elite solution 16 has been determined, the value of a first state variable among the multiple state variables that has the same value between the current state 15 and the elite solution 16 is fixed. Then, a local search is performed in a second search range using a second state variable among the multiple state variables that has a different value between the current state 15 and the elite solution 16.
[0044] This creates a directionality in the state transition from the current state 15, which is trapped in a local solution, to a direction where a better state (with a smaller E(x) value) is likely to be found (a direction approaching the elite solution 16), facilitating escape from the local solution. This shortens the solution-finding time.
[0045] Furthermore, since the local search in the second search range is more limited than the first search range, the amount of calculation required for the process to escape from a local solution can be reduced. During the search of the second search range, the processing unit 12a determines whether the current state has escaped from a local solution. If the minimum value among the values of the evaluation function obtained during the search of the second search range is updated, the processing unit 12a determines that the current state has escaped from a local solution. When the processing unit 12a determines that the current state has escaped from a local solution, it releases the value of the first state variable from its fixed state and executes a local search in the first search range. This makes it possible to perform a local search in a wider search range again.
[0046] Furthermore, when it is determined during the search in the second search range that the current state has not escaped from a local solution within a predetermined period, the processing unit 12a may determine a second solution candidate other than the elite solution based on the multiple solution candidates stored in the storage unit 11. In this case, the processing unit 12a fixes the value of a third state variable, among the multiple state variables, that has the same value between the current state and the second solution candidate. Then, the processing unit 12a may perform a local search in the third search range using a fourth state variable, among the multiple state variables, that has a different value between the current state and the second solution candidate. This increases the possibility of escaping from a local solution.
[0047] The data processing device 10a described above is expected to be useful as a means for reducing the amount of calculations and hardware required and obtaining accurate solutions in a short period of time when solving various problems in modern society that can be converted into combinatorial optimization problems.
[0048] (Second embodiment) FIG. 3 is a diagram illustrating an example of a data processing device and its processing procedure according to the second embodiment. Elements that are the same as those shown in FIG. 1 are assigned the same reference numerals. The processing unit 12b of the data processing device 10b according to the second embodiment also searches for a solution to a combinatorial optimization problem by local search, similar to the data processing device 10a according to the first embodiment. The method of the processing unit 12b for promoting escape from a local solution differs from that of the processing unit 12a. The processing unit 12b can also be realized by the same hardware as that of the processing unit 12a.
[0049] The processing unit 12b performs the following processing to facilitate escaping from a local solution of the combinatorial optimization problem. Figure 3 shows the flow of an example of processing performed by the processing unit 12b. Step S10: The processing unit 12b searches for a solution to the combinatorial optimization problem by local search using a first evaluation function. As the first evaluation function, the evaluation function shown in formula (1) can be used. The local search can be performed using an MCMC method such as simulated annealing, an RF method, or the like, as in the processing unit 12a of the first embodiment.
[0050] Step S11: In a search using the first evaluation function, the processing unit 12b determines whether the current state represented by a combination of values of a plurality of state variables included in the first evaluation function has fallen into a local solution. For example, the processing unit 12b determines that the current state has fallen into a local solution when the minimum value of the first evaluation function obtained during the search has not been updated for a predetermined period of time.
[0051] In the problem of maximizing the value of the evaluation function, the processing unit 12b determines that the current state has fallen into a local solution when the maximum value of the first evaluation function obtained during the search has not been updated for a predetermined period of time.
[0052] Step S12: When the processing unit 12b determines that the current state has fallen into a local solution, it determines an elite solution based on a plurality of solution candidates stored in the storage unit 11. The method for determining the elite solution may be the same as the method described in the first embodiment.
[0053] Step S13: The processing unit 12b changes the first evaluation function to a second evaluation function obtained by adding a first constraint term having a magnitude proportional to the Hamming distance between the elite solution and the current state to the first evaluation function. The second evaluation function can be expressed, for example, by the following equation (4).
[0054]
number
[0055] The three terms on the right side of equation (4) are the first constraint term, whose magnitude is proportional to the Hamming distance. λ is a positive proportionality coefficient. The larger the Hamming distance, the larger the value of the first constraint term. Step S14: The processing unit 12b executes a local search using the second evaluation function.
[0056] FIG. 3 shows a state 15 and an elite solution 16 as examples of the current state and the elite solution. FIG. 3 also shows examples of a first evaluation function 17a, a second evaluation function 17b, and a first constraint term 18. The first constraint term 18 is smallest when the state is the same as the elite solution 16 (Hamming distance = 0), and increases as the state moves away from the elite solution 16 (the Hamming distance increases). By adding such a first constraint term 18 to the first evaluation function 17a, the second evaluation function 17b is obtained. As a result, the value of the second evaluation function 17b in state 15, which is the current state, is larger than the value of the first evaluation function 17a.
[0057] When it is determined that the current state has fallen into a local solution and an elite solution 16 has been determined, the first evaluation function is changed to a second evaluation function 17b, which is obtained by adding a first constraint term 18 having a magnitude proportional to the Hamming distance between the elite solution 16 and the current state to the first evaluation function 17a. Then, a local search is performed using the second evaluation function 17b.
[0058] The second evaluation function 17b tends to have a smaller value in the elite solution 16 than the first evaluation function 17a. This causes a state transition directionality from the current state 15 to a direction where a better state (with a smaller E(x) value) is likely to be found (toward the elite solution 16), facilitating escape from a local solution. This reduces the solution-finding time.
[0059] During the search using the second evaluation function, the processing unit 12b determines whether the current state has escaped from a local solution. If the minimum value among the values of the evaluation function obtained during the search using the second evaluation function is updated, the processing unit 12b determines that the current state has escaped from a local solution. Then, when the processing unit 12b determines that the current state has escaped from a local solution, it returns the evaluation function to be used from the second evaluation function to the first evaluation function and executes a local search using the first evaluation function. As a result, after escaping from the local solution has been achieved, it becomes possible to perform a local search using the original first evaluation function again.
[0060] Furthermore, when it is determined that the current state has not escaped from a local solution within a predetermined period during the search in the second search range, the processing unit 12b may determine a second solution candidate different from the elite solution based on multiple solution candidates stored in the storage unit 11. In this case, the processing unit 12b changes the second evaluation function to a third evaluation function obtained by adding a second constraint term having a magnitude proportional to the Hamming distance between the second solution candidate and the current state to the second evaluation function. Then, the processing unit 12b may perform a local search using the third evaluation function. This increases the possibility of escaping from a local solution.
[0061] Such a data processing device 10b is also expected to be useful as a means for reducing the amount of calculations and hardware required and obtaining accurate solutions in a short period of time when solving various problems in modern society that can be converted into combinatorial optimization problems.
[0062] (Third embodiment) FIG. 4 is a block diagram illustrating an example of hardware of a data processing device according to the third embodiment.
[0063] The data processing device 20 is, for example, a computer, and includes a processor 21, a RAM 22, a HDD 23, a GPU 24, an input interface 25, a media reader 26, and a communication interface 27. The above units are connected to a bus.
[0064] The processor 21 is a processor such as a GPU or CPU that includes an arithmetic circuit that executes program instructions. The processor 21 loads at least a portion of the program and data stored in the HDD 23 into the RAM 22 and executes the program. The processor 21 may include multiple processor cores. The data processing device 20 may also include multiple processors. A set of multiple processors (multiprocessor) may also be called a "processor."
[0065] The RAM 22 is a volatile semiconductor memory that temporarily stores programs executed by the processor 21 and data used in calculations by the processor 21. Note that the data processing device 20 may include a type of memory other than the RAM 22, or may include multiple memories.
[0066] The HDD 23 is a non-volatile storage device that stores software programs such as an OS (Operating System), middleware, and application software, as well as data. The programs include, for example, a program that causes the data processing device 20 to execute a process for searching for a solution to a combinatorial optimization problem. Note that the data processing device 20 may also be equipped with other types of storage devices, such as a flash memory or an SSD (Solid State Drive), or may be equipped with multiple non-volatile storage devices.
[0067] The GPU 24 outputs an image to a display 24a connected to the data processing device 20 in accordance with an instruction from the processor 21. The display 24a may be a CRT (Cathode Ray Tube) display, a liquid crystal display (LCD: Liquid Crystal Display), a plasma display (PDP: Plasma Display Panel), an organic EL (OEL: Organic Electro-Luminescence) display, or the like.
[0068] The input interface 25 receives an input signal from an input device 25a connected to the data processing device 20 and outputs the signal to the processor 21. The input device 25a may be a pointing device such as a mouse, a touch panel, a touch pad, or a trackball, a keyboard, a remote controller, or a button switch. Multiple types of input devices may be connected to the data processing device 20.
[0069] The medium reader 26 is a reading device that reads programs and data recorded on a recording medium 26a. For example, a magnetic disk, an optical disk, a magneto-optical disk (MO: Magneto-Optical disk), or a semiconductor memory can be used as the recording medium 26a. Magnetic disks include flexible disks (FD: Flexible Disks) and HDDs. Optical disks include compact discs (CDs) and digital versatile discs (DVDs).
[0070] The medium reader 26 copies programs and data read from the recording medium 26a to another recording medium such as the RAM 22 or the HDD 23. The read programs are executed by the processor 21, for example. The recording medium 26a may be a portable recording medium and may be used to distribute programs and data. The recording medium 26a and the HDD 23 may also be referred to as computer-readable recording media.
[0071] The communication interface 27 is connected to a network 27a and communicates with other information processing devices via the network 27a. The communication interface 27 may be a wired communication interface connected to a communication device such as a switch via a cable, or may be a wireless communication interface connected to a base station via a wireless link.
[0072] Next, the function of the data processing device 20 will be described. FIG. 5 is a block diagram illustrating an example of functions of the data processing device. The data processing device 20 includes a storage unit 31, a memory control unit 32, an overall control unit 33, a data transfer control unit 34, a search processing unit 35, a state change detection unit 36, a current solution & Emin holding / updating unit 37, and a solution pool 38. The data processing device 20 further includes a solution non-updating state determination unit 39, an elite solution determination unit 40, an inversion variable restriction unit 41, a penalty weight value setting unit 42, and an output unit 43.
[0073] These realize functions similar to those of the storage unit 11 and processing unit 12a shown in FIG. 1 and the processing unit 12b shown in FIG. For example, the storage unit 31 is implemented using a storage area secured in the RAM 22 or the HDD 23. The other elements can be implemented using, for example, a program module executed by the processor 21 or a storage area (register or cache memory) within the processor 21. Note that the search processing unit 35, the current solution & Emin holding / updating unit 37, and the solution pool 38 may also be implemented using a storage area secured in the RAM 22 or the HDD 23.
[0074] The storage unit 31 stores, for example, problem information of a combinatorial optimization problem, calculation conditions for a local search, etc. The problem information is, for example, W ij ya b i When a local search is performed using the simulated annealing method, the calculation conditions include, for example, a maximum temperature, a temperature parameter change schedule, a minimum temperature, and a search termination condition. When a local search is performed using the replica exchange method, the calculation conditions include, for example, a maximum temperature, a minimum temperature, the number of replicas, a replica exchange frequency, and a search termination condition.
[0075] These data may be input by the user operating the input device 25a and stored in the storage unit 31, or may be input via the recording medium 26a or the network 27a and stored in the storage unit 31.
[0076] The memory control unit 32 controls reading and writing of data from and to the storage unit 31 . The overall control unit 33 controls the processing of each unit of the data processing device 20 . The data transfer control unit 34 controls the transfer of data such as weight values held in the search processing unit 35 .
[0077] The search processing unit 35 executes a local search. An example of the search processing unit 35 will be described later (see FIG. 6). The state change detection unit 36 detects a change in state represented by a combination of values of a plurality of state variables during a local search by the search processing unit 35.
[0078] The current solution & Emin holding / updating unit 37 holds the minimum energy (hereinafter referred to as Emin), which is the smallest value among the values of the evaluation function (E(x)) obtained so far, and the state when Emin was obtained, as the current solution. When the value of E(x) obtained during the search is smaller than Emin, the current solution & Emin holding / updating unit 37 updates the current solution to the current state at that time, and updates the value of Emin to the value of E(x) at that time.
[0079] The solution pool 38 registers (stores) the current solution, which is the current state when Emin is updated, as a solution candidate. The solution pool 38 also stores the value of Emin corresponding to the current solution. Note that when multiple local searches are performed under different calculation conditions, the solution pool 38 may store the solution candidates and Emin obtained in each local search.
[0080] The solution non-update state determination unit 39 determines whether the current state has fallen into a local solution during a search by local search. The solution non-update state determination unit 39 determines that the current state has fallen into a local solution when Emin has not been updated for a predetermined period of time (hereinafter, also referred to as a solution non-update state).
[0081] The elite solution determination unit 40 determines, as the elite solution, the solution candidate whose Hamming distance from the current state is closest to a threshold value among the multiple solution candidates stored in the solution pool 38. For example, a value of about 20% of the total number of state variables is used as the threshold value. The threshold value can be changed as appropriate. The elite solution determination unit 40 may also determine the elite solution using a path recombination method described below (see FIG. 10).
[0082] When an elite solution is determined, the inversion variable restriction unit 41 fixes the values of state variables that have the same values between the current state and the elite solution, among the multiple state variables. In other words, the inversion variable restriction unit 41 restricts state variables whose values are inverted from 0 to 1 or from 1 to 0.
[0083] When an elite solution is determined, the penalty weight setting unit 42 calculates a penalty weight to change the first evaluation function to a second evaluation function in which a constraint term having a magnitude proportional to the Hamming distance between the elite solution and the current state is added to the first evaluation function. The second evaluation function is expressed by the above-mentioned formula (4). The constraint term, which is the three items on the right side of formula (4), is calculated by adding the W ij The penalty weight value setting unit 42 can be incorporated into W ij The penalty weight value setting unit 42 sets the calculated penalty weight value in the search processing unit 35.
[0084] When the search termination condition is satisfied, the output unit 43 outputs, for example, the solution candidates stored in the solution pool 38 and the values of their evaluation functions as search results. The output unit 43 may, for example, output the calculation results to be displayed on the display 24a, transmit them to another information processing device via the network 27a, or store them in an external storage device.
[0085] FIG. 6 is a block diagram illustrating an example of functions of the search processing unit. The search processing unit 35 includes a weight value storage unit 35a, a penalty weight value storage unit 35b, a local field update unit 35c, a local field holding unit 35d, a state holding unit 35e, a ΔE calculation unit 35f, an inversion variable selection unit 35g, and an E(x) calculation unit 35h.
[0086] The weight value storage unit 35a stores the weights W included in E(x) in the formula (1). ij Remember. The penalty weight value storage unit 35b stores the penalty weight value set by the penalty weight value setting unit 42 in W ij Remember it as.
[0087] When the value of the state variable is inverted, the local field update unit 35c updates W ij Update the local field values corresponding to each state variable using x i The local field (h i) can be expressed by the following equation (5).
[0088]
number
[0089] x j When the value of is inverted, the local field corresponding to each state variable is W ij Δx j is added to the value. j is x j When the value of is inverted, x j The change is 1-2x j It can be expressed as:
[0090] When the evaluation function is expressed using N state variables, the local field update unit 35c can update the N local fields in parallel. The local field storage unit 35d stores the value of the local field corresponding to each state variable.
[0091] The state holding unit 35e holds the state represented by the current value of each state variable. When a state variable whose value is to be inverted is selected, the state holding unit 35e inverts the value of the selected state variable and holds it.
[0092] The ΔE calculation unit 35f uses the local field to calculate ΔE, which is the amount of change in the value of the evaluation function when the value of each state variable is inverted. i ΔE when the value of i is, h i Using this, ΔEi=-h i Δx i When the evaluation function is expressed using N state variables, the ΔE calculation unit 35f can calculate N ΔEs in parallel.
[0093] The inversion variable selection unit 35g selects a state variable whose value is to be inverted based on the result of comparing ΔE output by the ΔE calculation unit 35f with a predetermined value. The predetermined value is, for example, a noise value obtained based on a uniform random number (rand) greater than 0 and less than 1 and the value of a temperature parameter (T). The inversion variable selection unit 35g selects a state variable whose value is to be inverted based on max(0,ΔEi )<-log(rand)×T, then x i If there are multiple state variables whose values are allowed to be inverted, the inversion variable selection unit 35g selects one state variable randomly or according to a predetermined rule.
[0094] When the inversion variable restriction unit 41 specifies a state variable whose value is to be fixed, the inversion variable selection unit 35g does not select the state variable as the state variable to be inverted even if the inversion of the value of the state variable is permitted.
[0095] When there is a state variable whose value is inverted, the E(x) calculation unit 35h calculates E(x) using ΔE when the value of that state variable is inverted. FIG. 7 is a diagram showing an example in which multiple replicas are used.
[0096] 6 in parallel under different calculation conditions (temperature parameter values, initial states, uniform random number seeds, etc.). That is, each of the replicas 35r1 to 35rM may have each function of the search processing unit 35.
[0097] The solution candidates obtained from each of the replicas 35r1 to 35rM are stored in the solution pool 38. The solution candidates stored in the solution pool 38 can be used to determine an elite solution for each of the replicas 35r1 to 35rM. In other words, the solution pool 38 functions as a shared memory for each of the replicas 35r1 to 35rM.
[0098] When the current state of each of replicas 35r1 to 35rM falls into a local solution and search performance deteriorates, an elite solution can be determined based on the solution candidates obtained by other replicas from solution pool 38, thereby increasing the possibility of escaping from the local solution and improving solution-finding performance.
[0099] Next, two examples of processing procedures of the data processing device 20 will be described. The first processing procedure uses the inversion variable limiting unit 41, and the second processing procedure uses the penalty weight value setting unit 42. The overall control unit 33 may control so that either the first processing procedure or the second processing procedure is performed, or may control so that each processing procedure is switched between at a predetermined timing.
[0100] (First processing procedure) FIG. 8 is a flowchart showing the flow of a first processing procedure of the data processing device. Step S20: Initialization processing is performed. In the initialization processing, for example, the following processing is performed. The overall control unit 33 writes the W data stored in the storage unit 31 to the memory control unit 32. ij The read W ij are stored in the weight value storage unit 35a of the search processing unit 35.
[0101] Furthermore, the initial value of each state variable is held in the state holding unit 35e, the initial value of each local field is held in the local field holding unit 35d, and the initial value of E(x) is held in the E(x) calculation unit 35h. If these initial values are stored in the storage unit 31, they are read out from the storage unit 31. The overall control unit 33 may determine the initial value of each state variable randomly or according to a predetermined rule. Then, the overall control unit 33 calculates the initial value of each state variable and the initial value of W in equation (1). ij ya b i may be used to calculate the initial value of each local field and the initial value of E(x). Furthermore, the solution non-update state determination unit 39 resets the solution non-update period, which indicates the period during which Emin is not updated, to 0. Furthermore, the current solution & Emin holding / updating unit 37 sets the initial value of each state variable as the initial value of the current solution, and sets Emin corresponding to the initial value of the current solution as the initial value of Emin.
[0102] When the calculation conditions are stored in the storage unit 31, the calculation conditions are read out under the control of the memory control unit 32 and set, for example, in the overall control unit 33. Furthermore, under the control of the overall control unit 33, the solution non-updated state determination unit 39 sets the normal state as the initial mode out of two modes, the normal state and the solution non-updated state.
[0103] Step S21: The inversion variable selection unit 35g selects a state variable whose value is to be inverted based on the result of comparison between ΔE output by the ΔE calculation unit 35f and the above-mentioned predetermined value. Step S22: The local field update unit 35c calculates W based on the selected state variables. ij The local field values corresponding to each state variable are updated using
[0104] Step S23: The E(x) calculation unit 35h calculates E(x) using ΔE when the value of the selected state variable is inverted. Step S24: The current solution & Emin holding / updating unit 37 determines whether Emin has been updated. If it is determined that Emin has not been updated, the process of step S25 is performed, and if it is determined that Emin has been updated, the process of step S34 is performed.
[0105] Step S25: The solution non-update state determination unit 39 counts up the solution non-update period by +1. Step S26: The solution non-update state determination unit 39 determines whether the mode is the normal state and the solution non-update period is longer than a predetermined period T1. If it is determined that the mode is the normal state and the solution non-update period is longer than T1, the process of step S27 is performed. If it is determined that the mode is not the normal state or the solution non-update period is equal to or shorter than T1, the process of step S29 is performed.
[0106] Step S27: The solution non-updating state determination unit 39 sets the mode to the solution non-updating state. That is, the solution non-updating state represents a state in which the current state falls into a local solution. Step S28: The elite solution determination unit 40 determines, from among the multiple solution candidates stored in the solution pool 38, the solution candidate whose Hamming distance from the current state is closest to the threshold, as the elite solution.
[0107] Step S29: The solution non-update state determination unit 39 determines whether the mode is in the solution non-update state and the solution non-update period is longer than a predetermined period T2. T2 may be equal to T1, or T2 may be a length different from T1. If it is determined that the mode is in the non-update state and the solution non-update period is longer than T2, the process of step S30 is performed. If it is determined that the mode is not in the solution non-update state or the solution non-update period is equal to or shorter than T2, the process of step S40 is performed.
[0108] Step S30: The elite solution determination unit 40 again determines as the elite solution the solution candidate whose Hamming distance from the current state is closest to the threshold value from among the multiple solution candidates stored in the solution pool 38 that have not yet been adopted as an elite solution.
[0109] After the processes of steps S28 and S30, the process of step S31 is carried out. Step S31: The solution non-update state determination unit 39 resets the solution non-update period to zero. Step S32: The inversion variable limiting unit 41 extracts the difference between the current state and the determined elite solution. The difference is a state variable that has a different value between the current state and the elite solution, among multiple state variables.
[0110] Step S33: The inversion variable restriction unit 41 restricts the inversion of the values of the state variables other than the extracted difference, that is, the state variables that have the same value between the current state and the elite solution among the multiple state variables. Then, the process of step S40 is performed.
[0111] Step S34: The solution non-update state determination unit 39 resets the solution non-update period. Step S35: The solution non-update state determination unit 39 determines whether the mode is the normal state. If it is determined that the mode is the normal state, the process of step S36 is performed, and if it is determined that the mode is not the normal state, the process of step S38 is performed.
[0112] Step S36: The current solution and Emin holding / updating unit 37 stores Emin and the current solution, which is the state when Emin was obtained. Step S37: The current solution is registered as a solution candidate in the solution pool 38. Also, the value of Emin corresponding to the current solution is registered in the solution pool 38. Thereafter, the process of step S40 is performed.
[0113] Step S38: The solution non-updated state determination unit 39 sets the mode to the normal state, that is, it is determined that the current state has escaped from the local solution. Step S39: The inversion variable restriction unit 41 removes the restriction on the state variables (inversion variables) that allow the values to be inverted. After that, the process of step S40 is performed.
[0114] Step S40: The overall control unit 33 determines whether the search termination condition is satisfied. For example, if the number of times the inversion variable is selected in step S21 reaches a predetermined number, or if the search period of the local search reaches a predetermined period, it is determined that the search termination condition is satisfied. If it is determined that the search termination condition is satisfied, the process of step S41 is performed, and if it is determined that the search termination condition is not satisfied, the process from step S21 is repeated.
[0115] When the pseudo-annealing method is performed, for example, the overall control unit 33 decreases the value of the temperature parameter (T) according to a predetermined temperature parameter change schedule each time the process of step S21 is repeated a predetermined number of times.
[0116] When the replica exchange method is performed, for example, the overall control unit 33 performs replica exchange each time the process of step S21 is repeated a predetermined number of times. For example, the overall control unit 33 selects two replicas having adjacent values of T, and exchanges the values of T or the values of each state variable between the two selected replicas with a predetermined exchange probability based on the difference in E(x) or the difference in the value of T between the replicas.
[0117] Step S41: The output unit 43 outputs, for example, the solution candidates stored in the solution pool 38 and the values of their evaluation functions as search results, thereby completing the process. As described above, when the current state becomes a solution non-update state, which indicates a state in which the current state is trapped in a local solution, an elite solution is determined, and the values of the state variables that have the same values between the current state and the elite solution are fixed. Then, a local search is performed within the search range using the state variables that have different values between the current state and the elite solution.
[0118] This directs state transitions from the current state to a direction where a better state (smaller E(x) value) is more likely to be found (toward an elite solution), facilitating escape from local solutions. This reduces the solution time.
[0119] Furthermore, by limiting the inversion variables, the search range is limited, which reduces the amount of calculation required for the process of escaping from a local optimum. Furthermore, if Emin is updated during a search with limited inversion variables, it is determined that the current state has escaped from a local optimum, and the inversion variable restrictions are released, allowing for local search over a wider search range again.
[0120] Furthermore, during the search with limited inversion variables, when it is determined that the current state has not escaped from a local solution within a predetermined period (corresponding to the case where the mode is the solution non-update state and the solution non-update period is greater than T2), another elite solution is determined. Then, the values of the state variables that have the same value between the current state and the elite solution are fixed. Then, a local search is performed within the search range using the state variables that have different values between the current state and the elite solution. This increases the possibility of escaping from a local solution.
[0121] (Second processing procedure) FIG. 9 is a flowchart showing the flow of the second processing procedure of the data processing device. The processing in steps S50 to S61 is the same as the processing in steps S20 to S31 shown in FIG.
[0122] Step S62: The penalty weight value setting unit 42 calculates the penalty weight value described above. Step S63: The penalty weight value setting unit 42 sets the calculated penalty weight value in the search processing unit 35. As a result, the search processing unit 35 performs a local search using the penalty weight value stored in the penalty weight value storage unit 35b. After the process of step S63, the process of step S70 is performed.
[0123] The processing in steps S64 to S68 is the same as the processing in steps S34 to S38 shown in FIG. Step S69: The penalty weight setting unit 42 cancels the setting of the penalty weight in the search processing unit 35. As a result, the search processing unit 35 performs a local search using the weight stored in the weight storage unit 35a. Thereafter, the process of step S70 is performed.
[0124] The processing in steps S70 and S71 is the same as the processing in steps S40 and S41 shown in FIG. The second evaluation function using the penalty weighting value can be expressed, for example, by the aforementioned formula (4), and tends to have a smaller value at the elite solution than the first evaluation function expressed by formula (1). This creates a directionality in the state transition from the current state toward a direction where a better state (with a smaller value of E(x)) is more likely to be found (toward the elite solution), and promotes escape from a local solution.
[0125] If Emin is updated during a search (using the second evaluation function) with a penalty weight value set, it is determined that the current state has escaped from a local solution, and the penalty weight value setting is canceled. As a result, the evaluation function used in the local search returns from the second evaluation function to the first evaluation function, and a local search using the first evaluation function is executed. Therefore, after escaping from a local solution has been achieved, it becomes possible to perform a local search using the original first evaluation function again.
[0126] Furthermore, during the search (using the second evaluation function) with the penalty weight value set, if it is determined that the current state has not escaped from a local solution within a predetermined period (corresponding to the case where the mode is the solution non-update state and the solution non-update period is greater than T2), another elite solution is determined. Then, the second evaluation function is changed to a third evaluation function in which a second constraint term having a magnitude proportional to the Hamming distance between the determined elite solution and the current state is added to the second evaluation function. As a result, the search processing unit 35 performs a local search using the third evaluation function. This increases the possibility of escaping from a local solution.
[0127] The order of the processes in FIGS. 8 and 9 is an example, and the order of the processes may be changed as appropriate. (A variation of the method for determining the elite solution) The elite solution may be obtained by a path recombination method using two solution candidates randomly selected from a plurality of solution candidates stored in the solution pool 38. The path recombination method is introduced in, for example, the following document.
[0128] Y.Yang et al., "Path relinking for unconstrained binary quadratic programming", European Journal of Operational Research 223 (2012), p.584-p.604 10 is a diagram showing a method for determining an elite solution using the path recombination method. The horizontal axis represents the state, and the vertical axis represents the value of E(x).
[0129] First, two solution candidates are randomly selected from the multiple solution candidates stored in the solution pool 38. Then, using local search, new solution candidates are sequentially generated and updated so that one solution candidate approaches the other solution candidate. In the example of FIG. 10, of the first elite solution (solution candidate x1) and the second elite solution (solution candidate x7) selected from the multiple solution candidates, new solution candidates x2 to x6 are generated from the first elite solution so that it approaches the second elite solution. Also, in the example of FIG. 10, of the solution candidates x2 to x6, solution candidate x4 has the smallest value of E(x). Therefore, solution candidate x4 is adopted as the elite solution.
[0130] As mentioned above, the above processing contents can be realized by causing the data processing device 20 to execute a program. The program can be recorded on a computer-readable recording medium (e.g., recording medium 26a). Examples of recording media that can be used include magnetic disks, optical disks, magneto-optical disks, and semiconductor memories. Magnetic disks include FDs and HDDs. Optical disks include CDs, CD-R (Recordable) / RW (Rewritable), DVDs, and DVD-R / RWs. The program may be recorded on a portable recording medium and distributed. In this case, the program may be copied from the portable recording medium to another recording medium (e.g., HDD 23) and executed.
[0131] Fig. 11 is a diagram showing another example of a data processing device, in which the same elements as those shown in Fig. 4 are denoted by the same reference numerals. The data processing device 50 has an accelerator card 51 connected to the bus.
[0132] The accelerator card 51 is a hardware accelerator that searches for a solution to a combinatorial optimization problem and includes an FPGA 51a and a DRAM (Dynamic Random Access Memory) 51b.
[0133] In the data processing device 50, the FPGA 51a and the DRAM 51b perform processing of, for example, the processing units 12a and 12b and the storage unit 11 shown in Figures 1 and 3, or the units shown in Figure 5. In this case, the processing units 12a and 12b and the storage unit 11 shown in Figures 1 and 3, or the units shown in Figure 5 are realized by various circuits constructed within the FPGA 51a, memories within the FPGA 51a, or the DRAM 51b.
[0134] It should be noted that there may be a plurality of accelerator cards 51, for example, corresponding to the number of replicas 35r1 to 35rM in FIG. While one aspect of the program and data processing device of the present invention has been described above based on the embodiment, these are merely examples and the present invention is not limited to the above description. [Explanation of symbols]
[0135] 10a, 10b Data processing device 11 Storage section 12a, 12b Processing section 15, 15a~15d Condition 16 Elite Solution 17a First evaluation function 17b Second evaluation function 18 First constraint term
Claims
1. A solution to a combinatorial optimization problem is searched for by local search within a first search range using a plurality of state variables; determining whether or not a current state represented by a combination of values of the plurality of state variables falls into a local solution in the search of the first search range; determining a first solution candidate based on a plurality of solution candidates stored in a storage unit when it is determined that the current state has fallen into the local solution; performing the local search in a second search range using a second state variable, among the plurality of state variables, which has a different value between the current state and the first solution candidate, while fixing a value of a first state variable, among the plurality of state variables, which has the same value between the current state and the first solution candidate; A program that causes a computer to perform a process.
2. 2. The program according to claim 1, wherein each of the plurality of solution candidates is represented by a combination of values of the plurality of state variables when a minimum value among values of an evaluation function for the combinatorial optimization problem obtained during a search in the first search range is updated.
3. the local search is performed under a plurality of mutually different calculation conditions; the plurality of solution candidates include solution candidates obtained in each of the local searches performed under the plurality of calculation conditions; The program according to claim 2.
4. The program according to claim 1 , wherein the first solution candidate is a solution candidate among the plurality of solution candidates that has a Hamming distance from the current state that is closest to a threshold value.
5. The program according to claim 1 , wherein the first solution candidate is determined by a path recombination method using two solution candidates randomly selected from the plurality of solution candidates.
6. 2. The program according to claim 1, which causes the computer to execute a process of determining that the current state has fallen into the local solution when the minimum value among the values of the evaluation function for the combinatorial optimization problem obtained during a search of the first search range has not been updated for a predetermined period of time.
7. determining whether the current state has escaped from the local solution during the search of the second search range; when it is determined that the current state has escaped from the local solution, releasing the fixation of the value of the first state variable, and performing the local search in the first search range. The program according to claim 1 , which causes the computer to execute a process.
8. determining a second solution candidate different from the first solution candidate based on the plurality of solution candidates when it is determined that the current state has not escaped from the local solution within a predetermined period during the search of the second search range; fixing a value of a third state variable, which has the same value between the current state and the second solution candidate, among the plurality of state variables; performing the local search in a third search range using a fourth state variable having a different value between the current state and the second solution candidate among the plurality of state variables; The program according to claim 7, which causes the computer to execute processing.
9. A solution to the combinatorial optimization problem is searched for by a local search using a first evaluation function; determining whether or not a current state represented by a combination of values of a plurality of state variables included in the first evaluation function falls into a local solution in a search using the first evaluation function; determining a first solution candidate based on a plurality of solution candidates stored in a storage unit when it is determined that the current state has fallen into the local solution; changing the first evaluation function to a second evaluation function obtained by adding a first constraint term having a magnitude proportional to the Hamming distance between the first solution candidate and the current state to the first evaluation function; performing the local search using the second evaluation function; A program that causes a computer to perform a process.
10. 10. The program according to claim 9, wherein each of the plurality of solution candidates is represented by a combination of values of the plurality of state variables when a minimum value among values of the first evaluation function obtained during a search using the first evaluation function is updated.
11. 10. The program according to claim 9, which causes the computer to execute a process of determining that the current state has fallen into the local solution when a minimum value among values of the first evaluation function obtained during a search using the first evaluation function has not been updated for a predetermined period of time.
12. determining whether the current state has escaped from the local optimum during the search using the second evaluation function; when it is determined that the current state has escaped from the local solution, performing the local search using the first evaluation function. The program according to claim 9, which causes the computer to execute processing.
13. determining a second solution candidate different from the first solution candidate based on the plurality of solution candidates when it is determined that the current state has not escaped from the local solution within a predetermined period during the search using the second evaluation function; changing the second evaluation function to a third evaluation function obtained by adding a second constraint term having a magnitude proportional to the Hamming distance between the second solution candidate and the current state to the second evaluation function; performing the local search using the third evaluation function; The program according to claim 12, which causes the computer to execute a process.
14. a storage unit that stores a plurality of solution candidates for a combinatorial optimization problem; a processing unit that searches for a solution to the combinatorial optimization problem by local search in a first search range using a plurality of state variables, determines whether or not a current state represented by a combination of values of the plurality of state variables has fallen into a local solution in the search of the first search range, and when it is determined that the current state has fallen into the local solution, determines a first solution candidate based on the plurality of solution candidates, and performs the local search in a second search range using a second state variable among the plurality of state variables that has a different value between the current state and the first solution candidate, while fixing a value of a first state variable among the plurality of state variables that has the same value between the current state and the first solution candidate; A data processing device having:
15. a storage unit that stores a plurality of solution candidates for a combinatorial optimization problem; a processing unit that searches for a solution to the combinatorial optimization problem by local search using a first evaluation function, determines whether or not a current state represented by a combination of values of a plurality of state variables included in the first evaluation function has fallen into a local solution in the search using the first evaluation function, and when it is determined that the current state has fallen into the local solution, determines a first solution candidate based on the plurality of solution candidates, changes the first evaluation function to a second evaluation function by adding a first constraint term having a magnitude proportional to a Hamming distance between the first solution candidate and the current state to the first evaluation function, and executes the local search using the second evaluation function; A data processing device having:
Citation Information
Patent Citations
Device for analyzing combinatorial optimization problem
JP2003223322A
System and method for optimizing battery design
JP2018109950A
Optimization device and method for controlling optimization device
JP2020064536A
Metaheuristic-guided trust-TECH methods for global unconstrained optimization
US20160203419A1
Automated network-on-chip design
US20190251227A1