Program, data processing apparatus, and data processing method
By adjusting constraint coefficients in the direction of a target value during local search and using a LUT, the method improves the efficiency of finding solutions to combinatorial optimization problems, addressing the inefficiencies of conventional methods.
Patent Information
- Application Number
- JP2024111269
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-07-10
- Publication Date
- 2026-01-23
AI Technical Summary
Conventional methods for adaptively adjusting constraint coefficients in combinatorial optimization problems may result in decreased search efficiency due to the inability to update solutions within certain ranges of coefficient values.
A program and data processing device that adjusts the value of a constraint coefficient in the direction of a target value during local search to improve the efficiency of finding solutions that satisfy constraints, using a Look-Up-Table (LUT) to guide the adjustment based on the value of the constraint function.
This approach enhances the efficiency of searching for solutions to combinatorial optimization problems by increasing the likelihood of escaping local optima and finding better solutions by adaptively adjusting the constraint coefficient values.
Smart Images

Figure 2026011029000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a program, a data processing device, and a data processing method. [Background technology]
[0002] Local search methods are solution techniques that can obtain approximate solutions to combinatorial optimization problems in a practical amount of time. Examples of local search methods include steepest descent, greedy algorithms, tabu search, MCMC (Markov Chain Monte Carlo) / rejection-free algorithms, and ensemble descent, which simultaneously executes multiple instances of one of these local search methods.
[0003] Some combinatorial optimization problems have constraints that the solution must satisfy (see, for example, Patent Documents 1-4). Constraints include inequality constraints and equality constraints. One method for solving combinatorial optimization problems with constraints is to search for a solution using an evaluation function expressed as the sum of an objective function and a constraint function (sometimes called a penalty function). The constraint function is weighted by a constraint coefficient that represents the weight of the constraint.
[0004] If the value of the constraint coefficient is too small, there is a high possibility that a solution violating the constraints will be obtained. Conversely, if the value of the constraint coefficient is too large, the value of the evaluation function for the solution violating the constraints will be too large, making it difficult to escape from a local solution and potentially reducing search efficiency. Since the appropriate value of the constraint coefficient differs depending on the problem, methods have been proposed in which the value of the constraint coefficient is not fixed but is adaptively adjusted according to predetermined rules (see, for example, Non-Patent Documents 1 and 2). [Prior art documents] [Patent documents]
[0005] [Patent Document 1] Japanese Patent Application Laid-Open No. 2004-361991 [Patent Document 2] US Patent Application Publication No. 2017 / 0011143 [Patent Document 3] International Publication No. 98 / 06550 [Patent Document 4] US Patent Application Publication No. 2003 / 0226122 [Non-patent literature]
[0006] [Non-Patent Document 1] JCBean and ABHadj-Alouane, “A Dual Genetic Algorithm for Bounded Integer Programs”, University of Michigan Technical Report 92-50, 1992 [Non-patent document 2] Aki Dote and Koji Hukushima, "Effect of Constraint Relaxation on the Minimum Vertex Cover Problem in Random Graphs", [online], Apr. 2024, [Retrieved May 10, 2024], Internet<https: / / arxiv.org / pdf / 2311.13237.pdf> Summary of the Invention [Problem to be solved by the invention]
[0007] However, in conventional methods that adaptively adjust the values of constraint coefficients, depending on the problem, the solution may not be updated even if the search is repeated within a certain range of constraint coefficient values, which may result in a decrease in search efficiency.
[0008] In one aspect, the present invention aims to provide a program, a data processing device, and a data processing method that can improve the efficiency of searching for a solution to a combinatorial optimization problem that includes constraints. [Means for solving the problem]
[0009] In one embodiment, a program is provided that causes a computer to execute a process of acquiring, from a storage unit, evaluation function information for an evaluation function of a combinatorial optimization problem, the evaluation function including a sum of an objective function and one or more constraint functions including a first constraint function weighted by a first coefficient representing the weight of a first constraint condition, and using the evaluation function information to repeatedly perform a local search to search for solution candidates for the combinatorial optimization problem while changing the value of the first coefficient, and changing the value of the first coefficient in a direction that brings the value of the first constraint function corresponding to the solution candidate obtained by the local search using each value of the first coefficient closer to a target value, which is a positive value.
[0010] Also provided in one embodiment is a data processing device. Also, in one embodiment, a data processing method is provided. [Effects of the Invention]
[0011] On the one hand, it can improve the efficiency of searching for solutions to combinatorial optimization problems that include constraints. [Brief explanation of the drawings]
[0012] [Figure 1] 1 illustrates an example of a data processing device and a data processing method according to a first embodiment; [Figure 2] FIG. 10 is a diagram illustrating an example of the relationship between γt and V(x*). [Figure 3] FIG. 10 is a block diagram illustrating an example of hardware of a data processing device according to a second embodiment. [Figure 4] FIG. 2 is a block diagram illustrating an example of functions of a data processing device. [Figure 5] FIG. 10 is a diagram illustrating an example of an LUT. [Figure 6] 10 is a flowchart showing a first example of a processing procedure of the data processing device. [Figure 7] 10 is a flowchart showing a second example of the processing procedure of the data processing device. [Figure 8] 10 is a flowchart showing a third example of the processing procedure of the data processing device. [Figure 9]FIG. 10 is a diagram showing an example of a change in V(x*) with respect to a change in γt. [Figure 10] 10 is a flowchart illustrating an example of a procedure for updating an LUT. [Figure 11] FIG. 10 is a diagram illustrating an example of updating an LUT. [Figure 12] 10 is a flowchart showing a processing procedure of Modification 1. [Figure 13] FIG. 10 is a diagram illustrating an example of determining the value of γt based on the relational expression between γt and V(x*). [Figure 14] 10 is a flowchart showing a processing procedure of a comparative example. [Figure 15] 10A and 10B are diagrams illustrating examples of numerical experiment results when the processing procedures of the comparative example and the first example are applied. [Figure 16] FIG. 10 is a diagram showing an example of the cumulative distribution of the minimum value of E(x) when the processing procedures of the comparative example and the first to third examples are applied. [Figure 17] FIG. 10 is a diagram showing an example of the number of times the minimum value of E(x) is updated when the processing procedures of the comparative example and the first to third examples are applied. [Figure 18] 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 illustrates an example of a data processing device and a data processing method according to the first embodiment.
[0014] The data processing device 10 of the first embodiment includes a storage unit 11 and a processing unit 12. The storage unit 11 is a volatile storage device (for example, an electronic circuit such as a DRAM (Dynamic Random Access Memory)) or a non-volatile storage device (for example, an electronic circuit such as a flash memory, an HDD (Hard Disk Drive), etc.). The storage unit 11 may include an electronic circuit such as a register.
[0015] The storage unit 11 stores evaluation function information of an evaluation function for a combinatorial optimization problem having one or more constraints. The evaluation function (E(x)) for a combinatorial optimization problem with constraints can be expressed by the following equation (1).
[0016]
number
[0017] E(x) is sometimes called the total energy or the extended objective function. x is a state expressed using N (N≧2) state variables. Note that x is expressed in bold to represent a vector in Figure 1 and equation (1) (the same applies to subsequent equations and figures). In equation (1), C(x) is the objective function (sometimes called a cost function), and can be expressed, for example, by the following equation (2).
[0018]
number
[0019] The first item on the right side is the total state variable (x i ) for all combinations of the two state variables, without omissions or overlaps, and multiplying the values of the two state variables (0 or 1) by the weight value (which represents the strength of the interaction between the two state variables). x i is the state variable with identification number i, x j is the state variable with identification number j, and W ij is a weight value that indicates the magnitude of the interaction between the state variables with identification numbers i and j. The two terms on the right side are the sum of the products of the bias coefficient and the state variable for each identification number. b i indicates the bias coefficient for the identification number = i.
[0020] Equation (2) is sometimes called an Ising-type evaluation function. In equation (1), V(x) is a constraint function (sometimes called a penalty function) related to a certain constraint. tis a coefficient (sometimes called a constraint coefficient) that represents the weight of the constraint. Examples of constraints that must be satisfied include f(x)=0 (equality constraint) and g(x)>0 (inequality constraint). V(x) is a function that becomes positive when the constraint is not satisfied. In the case of an equality constraint, for example, V(x)=f(x) 2 It is configured as follows.
[0021] There may be multiple constraints. In that case, multiple constraint functions are used. Independent constraint coefficients can also be used for each constraint. The evaluation function information stored in the storage unit 11 includes, for example, information on C(x) in equation (1) (W in equation (2)) ij , b i The information includes the value of V(x),
[0022] The storage unit 11 also stores the state variables (x i ), E(x), C(x), and V(x) may be stored. Furthermore, the storage unit 11 may store various data such as calculation conditions when the processing unit 12 executes a data processing method described below. Also, when the processing unit 12 executes part or all of the processing of the data processing method described below using software, the storage unit 11 stores a program for executing the processing.
[0023] 1 can be realized by a hardware processor such as a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), etc. Alternatively, the processing unit 12 may be realized by an electronic circuit such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA).
[0024] The processing unit 12 acquires the evaluation function information from the storage unit 11 and executes a local search based on the evaluation function information. Local search is a method for determining whether or not to transition from the current state (represented by the combination of values of all state variables) to a nearby state based on the amount of change in the value of the evaluation function. For example, states (combinations of state variable values) that minimize E(x) shown in equation (1) are searched for as solution candidates. The state that results in the smallest of the minimum values of E(x) is the optimal solution. Note that if you want to maximize the value of the evaluation function, you can reduce the problem to searching for the minimum value of E(x) by changing the sign of the first term in equation (1).
[0025] Examples of local search methods include steepest descent, greedy, tabu search, MCMC, rejection-free, and ensemble descent. The steepest descent method accepts a transition to the state that minimizes the aforementioned evaluation function among multiple neighboring states. The greedy method repeatedly inverts the value of the state variable that minimizes the change in the evaluation function when all state variables are changed, including the direction in which the evaluation function increases, and sets the next state as the next state. The tabu search method is based on the greedy method and prevents the solution from becoming trapped in the same local solution by prohibiting changes to the value of state variables whose values have changed for a certain period of time. The MCMC method probabilistically determines the next neighboring state among multiple neighboring states. The rejection-free method is a type of MCMC method that eliminates rejection of transitions in each trial. The ensemble descent method simultaneously performs multiple local searches like the one described above and generates the next state to be searched based on the minimum value of the evaluation function obtained in each local search. There is also a method called ensemble descent, which performs local search in parallel for multiple different states to perform efficient search, and there are also methods such as path-relinking and genetic algorithms.
[0026] In the local search based on the evaluation function information as above, γ t If the value of is too small, the possibility of obtaining a solution that violates the constraints increases. tIf the value of is too large, the value of the evaluation function for the constraint violating solution will become too large, making it difficult for a state transition to a good solution to occur via the constraint violating solution, which may result in a decrease in search efficiency.
[0027] Therefore, in the data processing device 10 of this embodiment, the processing unit 12 calculates γ t 1 shows a flow of an example of a data processing method by the processing unit 12.
[0028] Step S1: The processing unit 12 acquires the evaluation function information from the storage unit 11. Step S2: The processing unit 12 performs an initialization process. In the initialization process, the processing unit 12 initializes γ t The value of is set as the initial value (γ0). γ0 is a positive value. For example, γ0 = 0.1 is used. In the initialization process, the target value (V target ) is set. V target is a positive value. target may be input to the data processing device 10 by a user operating an input device, etc. In addition, the state (x) is initialized. For example, the initial value of each state variable can be a random value, a value of all 0s, or a value obtained by a ensemble descent method or the like.
[0029] In the process of step S2, γ t The coefficient values for changing the value of are set. Also, the end condition of the local search is set. V target The coefficient values, the termination conditions, etc. may be input from outside the data processing device 10.
[0030] Step S3: The processing unit 12 calculates γ t is set to γ0 or the value changed in the processing of step S5 described below, a local search is performed based on the obtained evaluation function information. Step S4: The processing unit 12 calculates the candidate solutions to the combinatorial optimization problem obtained by the local search in step S3 (hereinafter referred to as x * The value of the constraint function (hereinafter V(x *) is calculated.
[0031] In the problem of searching for the state where E(x) becomes the minimum, the state is updated based on the amount of change in the value of E(x) by local search until the predetermined termination condition is met. The state where the value of E(x) becomes the smallest is x. * The processing unit 12 calculates x * V(x) is the value of V(x) when * The processing unit 12 calculates the calculated V(x * ) is stored in the storage unit 11. The processing unit 12 stores x * Along with x * E(x * ) may be stored in the storage unit 11.
[0032] At this time, the processing unit 12 uses the γ t For each value of V(x * ) may be created and stored in the storage unit 11. As the table information, for example, a LUT (Look-Up-Table) may be used. In the following description, the table information is referred to as an LUT.
[0033] Step S5: The processing unit 12 calculates V(x * ) to V target In the direction approaching γ t Change the value of V(x * ) is, as will be explained later, t Therefore, the processing unit 12 calculates γ as follows, for example: t Change the value of
[0034] Let us assume that the solution candidate obtained in the previous local search was a constraint-satisfying solution. In this case, V(x * )=0. The x obtained in this local search * V(x * ) is V target If it is greater than γ tThis increases the value of V(x) corresponding to the solution candidate obtained in the next local search. In the problem of searching for a state where E(x) is minimized, it is difficult to accept a state transition where the change in the value of E(x) increases significantly in the positive direction. Therefore, constraint violations are less likely to occur, and V(x) corresponding to the solution candidate obtained in the next local search is * ) is reduced from the current value, and V target is more likely to approach
[0035] gamma t As a way to increase the value of γ, for example, t Alternatively, you can use the created LUT to multiply V(x * ) to V target γ to get closer to t may be determined.
[0036] On the other hand, V(x * ) is V target If γ is less than or equal to γ t This reduces the positive change in the value of E(x) when a constraint violation occurs in the next local search. This alleviates the condition that makes it difficult for a constraint violation to occur, and reduces V(x * ) is increased from the current value, and V target is more likely to approach
[0037] gamma t As a way to reduce the value of γ t Alternatively, you can use the created LUT to calculate V(x * ) to V target γ to get closer to t may be determined.
[0038] After the process of step S5, the processing unit 12 repeats the processes from step S3 until a predetermined search end condition is satisfied. For example, when a predetermined search termination condition is satisfied, the processing unit 12 may output the solution candidate with the smallest E(x) value among the obtained solution candidates as the search result solution together with the value of E(x). Alternatively, the processing unit 12 may output the x stored in the storage unit 11 when the predetermined search termination condition is satisfied. * and x * E(x * ) may be output as the search result.
[0039] Figure 2 shows the γ t and V(x * ) is a diagram showing an example of the relationship between γ and γ. Figure 2 shows an example of theoretical analysis of the minimum vertex cover problem. The minimum vertex cover problem is an example of a combinatorial optimization problem. t The vertical axis is the number of vertices, N, and C(x * ) / N, V(x * ) / N, E(x * ) / N(=(C(x * )+γ t V(x * ) / N).
[0040] In the example of Figure 2, the constraint satisfaction state (V(x * )=0) and the constraint violation state (V(x * )>0) t The value of (γ * ) is 1. Theoretically, V(x * ) is γ t is a non-increasing function of V(x * ) is γ t = 0, and γ t >γ * In order to obtain a constraint satisfying solution, γ t γ * It is preferable to make γ as large as possible, but in order to improve the search efficiency, it is preferable to make it as small as possible. * is not known in advance, and γ t It is difficult to set the value of γ t It is preferable to adaptively adjust
[0041] In the example of Figure 2, γ t In the range of 0.50 to 1.00 (no solution improvement range), C(x * ) hardly changes, and the solution is constrained to a local minimum. t Whether the interval of values of γ is a solution non-improvement interval depends on the combinatorial optimization problem to be calculated. t To what value should γ be reduced? t >γ * satisfies E(x * ) will be updated.
[0042] gamma t Unlike the method according to the present embodiment, a method for adaptively adjusting V(x * )=0, then γ t Decrease the value of V(x * )>0, then γ t There is a method for increasing the value of V(x * ) = 0, and then γ t This reduces the value of V(x * )>0, so γ t However, the value of γ t Depending on the range of increase or decrease in the value of γ t Therefore, the method of the comparative example may not be able to get out of the solution non-improvement section and may not be able to obtain a good solution.
[0043] In contrast, in the data processing device 10 of this embodiment, V(x * ) to a positive value V target γ in the direction approaching t For example, as shown in Figure 2, t can be changed to a value smaller than the solution non-improvement interval. In this case, x * The value of will change, escaping from the local solution, and in the next local search or later, it may transition to a better solution candidate (for example, a solution candidate whose value of E(x) is smaller than the previous minimum value and satisfies the constraints).
[0044] As described above, the processing unit 12 acquires the evaluation function information of the evaluation function of the combinatorial optimization problem from the storage unit 11. Then, the processing unit 12 uses the evaluation function information to perform a local search for solution candidates for the combinatorial optimization problem, using γ t When repeatedly executing while changing the value of γ t The value of V(x) corresponding to the solution candidate obtained by local search using each value of target In the direction approaching γ t This simply changes the value of V(x * )=0, then γ t Decrease the value of V(x * )>0, then γ t Compared to the comparative example method in which the value of is increased, the possibility that the solution can escape from a local optimum is increased, and the efficiency of searching for a solution to a combinatorial optimization problem including constraints can be improved.
[0045] In addition, for a given period, V(x * )=0 * If (constraint satisfying solution) is not updated, V target may be increased, which increases the chances that the solution will escape from a local minimum.
[0046] (Second embodiment) FIG. 3 is a block diagram illustrating an example of hardware of a data processing device according to the second embodiment.
[0047] 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.
[0048] 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."
[0049] 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.
[0050] 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 of searching for a solution to a combinatorial optimization problem by local search. 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.
[0051] 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.
[0052] 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.
[0053] 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).
[0054] 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.
[0055] 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.
[0056] Next, the function of the data processing device 20 will be described. FIG. 4 is a block diagram illustrating an example of functions of the data processing device. The data processing device 20 includes an evaluation function information storage unit 31 , a local search execution unit 32 , a search control unit 33 , a solution holding unit 34 , an LUT storage unit 35 , an LUT update unit 36 , and an output unit 37 .
[0057] These realize the same functions as the storage unit 11 and processing unit 12 shown in FIG. The evaluation function information storage unit 31, the solution holding unit 34, and the LUT storage unit 35 are implemented using storage areas secured in the RAM 22 or the HDD 23. The local search execution unit 32, the search control unit 33, the LUT update unit 36, and the output unit 37 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.
[0058] The evaluation function information storage unit 31 stores evaluation function information for combinatorial optimization problems. The evaluation function information may be, for example, information on C(x) in equation (1) (W in equation (2)) ij , b i The evaluation function information may be input by a user operating the input device 25a and stored in the evaluation function information storage unit 31, or may be input via the recording medium 26a or the network 27a and stored in the evaluation function information storage unit 31.
[0059] The local search execution unit 32 searches for a solution to the combinatorial optimization problem by local search. As the local search, the steepest descent method, the greedy method, the tabu search method, the MCMC method, the rejection-free method, the ensemble descent method, etc. can be used.
[0060] Furthermore, the local search execution unit 32 t The solution candidate (x * ) corresponding to E(x * ) and V(x * ) is calculated. Also, the local search execution unit 32 calculates V(x * ) used in the local search t The local search execution unit 32 outputs the value of x to the LUT update unit 36. * is the constraint satisfying solution (V(x* )=0), then x * E(x * ) to the solution storage unit 34. When there is one constraint, V(x * )=0, then E(x * )=C(x * ) Furthermore, the local search execution unit 32 t It has the function to change the value of
[0061] The search control unit 33 controls the execution of the local search. t , V target to the local search execution unit 32. Furthermore, the search control unit 33 target in the LUT update unit 36.
[0062] The solution storage unit 34 stores the x output by the local search execution unit 32. * E(x * ) along with the value. The LUT storage unit 35 stores the γ t For each value of V(x * ) and record the LUT.
[0063] The LUT update unit 36 updates the LUT stored in the LUT storage unit 35. A specific example of updating the LUT will be described later (see FIGS. 10 and 11). Furthermore, the LUT update unit 36 refers to the LUT stored in the LUT storage unit 35 and updates V(x * ) to V target γ to get closer to t Output.
[0064] In addition, γ t If an LUT is not used when changing the LUT, the LUT storage unit 35 and the LUT update unit 36 may be omitted. The output unit 37 outputs, for example, x held in the solution holding unit 34. * Among them, the most E(x * ) is output as the search result. * E(x *The output search result may include all x stored in the solution storage unit 34. * and E(x * The output unit 37 may, for example, output the search results to the display 24a for display, transmit the results to another information processing device via the network 27a, or store the results in an external storage device.
[0065] FIG. 5 is a diagram illustrating an example of the LUT. The LUT 35a in FIG. t γ, an array of values of s and γ t For each value of V(x * ) V is an array of s An example of V(x) as shown in Figure 2 is shown. * ) and γ t From the relationship, γ s are arranged in ascending order, and V s are arranged in descending order.
[0066] Next, three examples of processing procedures performed by the data processing device 20 will be described. (Processing procedure (first example)) FIG. 6 is a flowchart showing a first example of a processing procedure of the data processing device.
[0067] In the first example, no LUT is used and γ t Changes will be made. Step S10: The local search execution unit 32 reads the evaluation function information stored in the evaluation function information storage unit 31.
[0068] Step S11: The search control unit 33 performs an initialization process. In the initialization process, γ t is initialized. γ t A positive value, for example, γ = 0.1, is used as the initial value (γ0). t Setting c1 and c2, which are coefficients greater than 1 for changing the value of V target The settings are made. target is a positive value. targetmay be input to the data processing device 10 by the user operating the input device 25a. t "True" is set as "up", which is a flag indicating whether or not the value of is to be increased. Also, t, which is a variable for counting the number of times the local search (the processing of step S12) has been performed, is set to 0, and a predetermined positive integer value N is set as a search end condition. trial is set.
[0069] Step S12: The local search execution unit 32 calculates γ t In the state where γ is set to γ0 or the value changed in the processing of steps S16 and S18 described later, a local search is performed based on the acquired evaluation function information. In the local search, x that minimizes E(x) is * The local search is performed to update the state based on the change in the value of E(x). The state with the smallest value of E(x) is determined as x. * In the process of step S12, the local search execution unit 32 performs the local search on the solution candidate x * E(x * ) and V(x * ) is also calculated.
[0070] Step S13: The local search execution unit 32 updates t to t+1. Step S14: The local search execution unit 32 determines whether or not “up” is “true.” If it is determined that “up” is “true,” the process of step S15 is performed, and if it is determined that “up” is not “true,” the process of step S19 is performed.
[0071] Step S15: The local search execution unit 32 calculates the calculated V(x * ) is V(x * )>0. The local search execution unit 32 determines whether V(x * If it is determined that V(x)>0, the process of step S16 is performed. * )>0 (i.e., V(x *If it is determined that ≠ 0, the process of step S17 is performed.
[0072] Step S16: If "up" is "false", the local search execution unit 32 changes "up" to "true" and then t γ t ×c1. Then, the process of step S20 is performed.
[0073] Step S17: The local search execution unit 32 calculates E(x * ) and the value of x * to the solution holding unit 34. The solution holding unit 34 outputs E(x * ) and the value of x * Hold. Step S18: If "up" is "true", the local search execution unit 32 changes "up" to "false" and then t γ t / c2, and then the process of step S20 is performed.
[0074] Step S19: The local search execution unit 32 calculates the calculated V(x * ) is V(x * )>V target The local search execution unit 32 determines whether V(x * )>V target If it is determined that V(x * )>V target If it is determined that this is not the case, the process of step S18 is performed.
[0075] Step S20: The local search execution unit 32 executes t <N trial The local search execution unit 32 determines whether t <N trial If it is determined that t <N trial If it is determined that this is not the case, the process of step S21 is carried out.
[0076] Step S21: The output unit 37 outputs the search result (for example, x held in the solution holding unit 34). *Among them, the most E(x * The smaller value of ) is output. This completes the process.
[0077] As described above, in the processing procedure of the first example, the data processing device 20 searches for a vector (V(x * )=0) Solution candidate(x * ) until γ t Multiplying by c1 gives γ t Then, the data processing device 20 calculates the value of x that satisfies the constraint. * After obtaining V(x * ) is V target Until it reaches γ t Dividing by c2 gives γ t In the first example of the processing procedure, this process reduces the value of V(x * ) value to V target In the direction approaching γ t The value of is changed.
[0078] This simply means that V(x * )=0, then γ t Decrease the value of V(x * )>0, then γ t This method increases the possibility that the solution will escape from a local optimum compared to the method that increases the value of , and can improve the efficiency of searching for solutions to combinatorial optimization problems that include constraints.
[0079] (Processing procedure (second example)) FIG. 7 is a flowchart showing a second example of the processing procedure of the data processing device. In the second example, we use the LUT to calculate γ t Changes will be made.
[0080] The processing in steps S30 to S33 is the same as the processing in steps S10 to S13 in FIG. Step S34: The LUT update unit 36 updates the γ t The value of V(x * ) is used to update the LUT. An example of the LUT update process will be described later (see FIGS. 10 and 11).
[0081] The processing in steps S35 and S36 is the same as the processing in steps S14 and S15 in FIG. Step S37: The local search execution unit 32 calculates γ t γ t ×c1 After that, the process of step S43 is performed.
[0082] The process in step S38 is the same as the process in step S17 in FIG. Step S39: The local search execution unit 32 changes "up" to "false." Then, the LUT update unit 36 refers to the LUT stored in the LUT storage unit 35 and updates V(x * ) to V target γ to get closer to t In Figure 7, γ t ←LUT(V target ) is written.
[0083] For example, the LUT update unit 36 target is recorded in LUT35a in Fig. 5. s = 17, the corresponding γ s =0.51 after changing t The value of V is output. target is recorded in LUT35a in Fig. 5. s If the value does not correspond to the value of γ t The value of can be determined.
[0084] LUT, V(x * ) are recorded as adjacent first and second values, and V target is greater than the first value and less than the second value. In this case, the LUT update unit 36 updates γ t and the value of γ corresponding to the second value t By linearly interpolating between the values of target The modified γ t Determine the value of
[0085] After the process of step S39, the process of step S43 is performed. The process in step S40 is the same as the process in step S19 in FIG. Step S41: V(x * )>V target If it is determined that γ t γ t In the process of step S41, the γ t After the change, fine adjustment is made by c2. This makes V(x * ) to V target can be made closer to
[0086] After the process of step S41, the process of step S43 is performed. Step S42: V(x * )>V target If it is determined that "up" is true, the local search executing unit 32 changes "up" to "true" and proceeds to the processing of step S43.
[0087] The processing in steps S43 and S44 is the same as the processing in steps S20 and S21 shown in FIG. As described above, in the processing procedure of the second example, the data processing device 20 calculates γ t For each value of V(x * ) is stored in the LUT storage unit 35. In the local search, the data processing device 20 searches for a vector (V(x * )=0) Solution candidate(x * ) until γ t Multiplying by c1 gives γ t Then, the data processing device 20 calculates the value of x that satisfies the constraint. * After obtaining V(x), the value of V(x) is calculated based on the LUT. target γ t In the processing procedure of the second example, the value of V(x) is determined by such processing. target In the direction approaching γ t The value of is changed.
[0088] This simply means that if V(x)=0 then γ t Decrease the value of γ if V(x)>0 t This method increases the likelihood that a solution will be able to escape from a local optimum compared to the method of increasing the value of , thereby improving the efficiency of searching for a solution to a combinatorial optimization problem that includes constraints. Furthermore, this method increases the likelihood that a solution will be able to escape from a local optimum faster than the processing procedure in the first example, thereby further improving the efficiency of searching for a solution to a combinatorial optimization problem that includes constraints.
[0089] (Processing procedure (third example)) FIG. 8 is a flowchart showing a third example of the processing procedure of the data processing device. In the third example, we also use the LUT to calculate γ t The processing in steps S50 to S61 is the same as the processing in steps S30 to S41 in the second example.
[0090] Step S62: V(x * )>V target If it is determined that V(x * ) to approach 0. t In Figure 8, γ t ←It is written as LUT(0).
[0091] For example, the LUT update unit 36 may obtain, from the LUT, i >0=V i+1 V becomes i ,V i+1 Detect V i ,V i+1 is the i-th and i+1-th V(x * ) and the LUT update unit 36 calculates V i γ corresponding to t and the value of V i+1 γ corresponding to t By linearly interpolating between the values of t By doing this, the value of γ tThe value of the constraint satisfaction state (V(x * )=0) and the constraint violation state (V(x * )>0) * can be approached quickly.
[0092] After the process of step S62, the process of step S63 is carried out. The processing in steps S63 and S64 is the same as the processing in steps S20 and S21 shown in FIG.
[0093] As described above, according to the procedure of the third example, γ t By using the LUT when increasing the value of γ t This allows the value of t to be increased efficiently, and as a result, the efficiency of searching for a solution is further improved.
[0094] (Example of LUT update process) Figure 9 shows the t V(x) * ) is a diagram showing an example of a change in When the processing procedures of the first to third examples are executed, as shown in FIG. 9, V(x * ) = 0, γ t The value of increases from γ0. * is the constraint satisfaction state (V(x * )=0) and the constraint violation state (V(x * )>0) t The value of (unknown value).
[0095] When using an LUT as in the second and third examples, the γ t V(x * ) are recorded in the LUT. As a result, for example, the LUT 35a shown in FIG. 5 is obtained. Thereafter, the LUT is updated according to the following procedure.
[0096] FIG. 10 is a flowchart illustrating an example of the procedure of the LUT update process. Step S70: The LUT update unit 36 receives a new γ t and the corresponding new V(x * ) to get the
[0097] Step S71: The LUT update unit 36 refers to the LUT stored in the LUT storage unit 35 and updates the currently acquired γ t For values of γ k <γ t <γ k+1 Determine k such that k is the t γ, an array of values of s and V(x * ) V is an array of s is an identification number representing the kth element of
[0098] Step S72: The LUT update unit 36 updates V s The kth value of V k From this, the V(x * ) is smaller than V. k From V(x * ) is determined to be small, the process of step S73 is performed, and V k From V(x * If it is determined that the difference is not small, the process proceeds to step S74.
[0099] Step S73: The LUT update unit 36 updates γ s and V s The k+1th γ t and the value of V(x * ) is inserted. Then, the process of step S75 is carried out. Step S74: The LUT update unit 36 updates γ s and V s The k+1th γ t and the value of V k After that, the process of step S75 is carried out.
[0100] Step S75: The LUT update unit 36 updates γ s And, V sLet m be the identification number representing the m-th element of the matrix, m=k+2. Step S76: The LUT update unit 36 updates V m From this, the V(x * The LUT update unit 36 determines whether V m From V(x * ) is larger than the LUT update process. m From V(x * If it is determined that the difference (.gtoreq..times ...
[0101] Step S77: The LUT update unit 36 updates V s The mth value of (V m ) to V(x * ). Step S78: The LUT update unit 36 increments the value of m by 1. Thereafter, the LUT update unit 36 repeats the process from step S76.
[0102] The LUT can be updated through the above procedure. 11 is a diagram showing an example of updating the LUT. In FIG. 11, when the LUT 35a is obtained, γ t = 0.5, V(x * ) are shown. t = 0.5, V used in the process of step S72 shown in FIG. k is V k =76.
[0103] V k <V(x * ) (in the example of Figure 11, V(x * )=80), the process of step S74 is performed. s , V s The k+1th t =0.5 and V k =76 is inserted.
[0104] V k >V(x *)≧V k+1 In the case of (in the example of Figure 11, V(x * )=25), the process of step S73 is performed, and γ s , V s The k+1th t =0.5 and V(x * )=25 is inserted.
[0105] V(x * ) <V k+1 In the case of (in the example of Figure 11, V(x * )=7), the process of step S73 is also performed, and γ s , V s The k+1th t =0.5 and V(x * )=7 is inserted. This insertion makes V m =V k+2 =17, and V m <V(x * ), the process of step S77 is performed, and V m =17 is V(x * )=7 and updated like LUT35d.
[0106] By updating the LUT as described above, it is possible to obtain an LUT that reflects the search status of the local search. t By determining the changed value of V(x * ) more quickly than V target This can further improve the search efficiency.
[0107] (Variation 1) 12 is a flowchart showing the processing procedure of Modification 1. In FIG. 12, a modification of the processing procedure of the first example shown in FIG.
[0108] In the process of step S20, t <N trial If it is determined that this is the case, the process of step S22 below is carried out. Step S22: The search control unit 33 determines whether or not the constraint satisfying solution has been updated within a predetermined period. * )=0 * is updated within a predetermined period, the constraint satisfying solution is determined to be updated. The predetermined period can be, for example, V(x * )=0 * After obtaining γ t Decrease the value of V target The period may be a predetermined number of cycles, where one cycle is defined as the time it takes for the temperature to reach the temperature.
[0109] If the search control unit 33 determines that the constraint satisfying solution has been updated within the predetermined period, the process repeats from step S12. If the search control unit 33 determines that the constraint satisfying solution has not been updated within the predetermined period, the process proceeds to step S23.
[0110] Step S23: The search control unit 33 target Increase V target The initial value of is set to a small positive value. For example, the search control unit 33 sets a coefficient c3 greater than 1 to V target By multiplying by V target Then, the process is repeated from step S12.
[0111] The above-mentioned predetermined period is N trial In this case, in the process of step S20, t <N trial If it is determined that t is not N trial If the search control unit 33 determines that the constraint satisfying solution has not been updated, it may perform the process of step S23, and if it determines that the constraint satisfying solution has been updated, it may perform the process of step S21.
[0112] As described above, if the constraint satisfying solution is not updated within a predetermined period, V targetBy increasing , the possibility that the solution will escape from a local minimum increases. In other words, the number of unnecessary searches that do not update the solution is reduced, and it is expected that a constraint-satisfying solution can be obtained in a short time.
[0113] In the above, V target Although an example in which processing to increase is applied has been shown, this can also be applied to the processing procedures of the second and third examples. (Variation 2) In the processing procedures of the second and third examples, the LUT update unit 36 updates V(x * ) to V target γ t The value of γ t and V(x * ) based on the relation V(x * ) to V target γ t The value of may be determined.
[0114] Figure 13 shows the γ t and V(x * ) based on the relationship t 10 is a diagram illustrating an example of determining the value of . As shown in Fig. 9, γ t V(x * ) are obtained, the LUT update unit 36 uses these values to update γ t and V(x * The relational expression 35f1 is determined by, for example, utilizing the convexity of the function. target is given, the LUT update unit 36 obtains V from the relation 35f1. target γ corresponding to t The value of γ t1 (Fig. 13(B)). Then, γ t1 V(x * ) to update relation 35f1.
[0115] FIG. 13C shows the updated relational expression 35f2. Then, V target γ corresponding tot The value of γ t2 Then, γ t2 V(x * ) to update the relational expression 35f2. The above process is repeated.
[0116] As mentioned above, γ t and V(x * ) is updated, a relational expression that reflects the search status of the local search can be obtained. t By determining the changed value of V(x * ) more quickly than V target can be approached as follows.
[0117] (Variation 3) The processing procedures of the first to third examples may be executed in parallel using multiple states (replicas). This method of obtaining new solution candidates or initial states for the next search from multiple minimum values obtained by multiple local searches is sometimes called the ensemble descent method, and may be used in combination with this. For example, a different initial state is used for each replica, and γ t A common value is used for all replicas. When updating the LUT in the processing procedures of the second and third examples, a common γ t V(x * ), for example, V(x * ) can be used as the average value.
[0118] By performing a local search using multiple replicas, it is possible to quickly find a solution with a smaller value of E(x). (Variation 4) There may be multiple constraints. For example, if there are two constraints, E(x) is expressed by the following equation (3).
[0119]
number
[0120] In equation (3), V1(x) is the first constraint function related to the first constraint condition. V2(x) is the second constraint function related to the second constraint condition. γ 1t is the first constraint coefficient that represents the weight of the first constraint. 2t is the second constraint coefficient that represents the weight of the second constraint condition.
[0121] When multiple constraint functions are used, V target As shown above, two constraint functions (V1(x), V2(x)) are used. For V1(x), V target1 is set, and for V2(x), V target2 is set.
[0122] Also, for each constraint, a separate LUT needs to be created and updated, or γ 1t and V1(x) and γ 2t The relation between V2(x) and V2(x) is calculated and updated. gamma 1t ,γ 2t For each of these, the value is changed (increased) from an appropriate initial value, and γ 1t ,γ 2t In this case, V1(x)=0 and V2(x)>0. In this case, in the subsequent processing, γ 1t The value of is fixed, and γ 2t All we need to do is increase the value of .
[0123] When V1(x)=0 and V2(x)=0, γ 1t ,γ 2t The values of γ can be decreased by the processing procedures of the first to third examples. 1t ,γ 2t When decreasing the value of V(x), one of V1(x) and V2(x) is V(x)>V target In this case, V(x) is V1(x), V2(x) is V target γ corresponding to V(x) until it becomes larger than t (γ 1t ,γ 2t The value of either (or) may be fixed.
[0124] In another example, γ 1t is fixed at the value when V1(x)=0 is obtained, and γ 2t The solution is searched by increasing or decreasing the value of γ 2t is fixed at the value when V2(x)=0 is obtained, and γ 1t The value of is increased or decreased to search for a solution. The above process may be repeated.
[0125] The order of the processes shown in FIGS. 6 to 8, 12, and 14 is an example, and the order of the processes may be changed as appropriate. Furthermore, the processing procedures of the above examples and the processing contents of the modified examples can be realized by having the data processing device 20 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.
[0126] (Processing procedure for comparative example) A processing procedure of a comparative example in comparison with the processing procedures of the first to third examples will be described below. FIG. 14 is a flowchart showing a processing procedure of the comparative example.
[0127] Step S80: The local search execution unit 32 reads the evaluation function information stored in the evaluation function information storage unit 31. Step S81: The search control unit 33 performs an initialization process. In the initialization process, γ t is initialized to γ0. Also, γ t The coefficients c1 and c2 are set to be greater than 1 to change the value of N.trial is set.
[0128] Step S82: The local search execution unit 32 calculates γ t is set to γ0 or the value changed in the processing of steps S85 and S87 described later, a local search is performed based on the acquired evaluation function information. In the local search, x that minimizes E(x) is * The local search is performed to update the state based on the change in the value of E(x). The state with the smallest value of E(x) is determined as x. * In the process of step S82, the local search execution unit 32 calculates x * E(x * ) and V(x * ) is also calculated.
[0129] Step S83: The local search execution unit 32 updates t to t+1. Step S84: The local search execution unit 32 calculates the calculated V(x * ) is V(x * )>0. The local search execution unit 32 determines whether V(x * If it is determined that V(x)>0, the process of step S85 is performed. * )>0 (i.e., V(x * If it is determined that ≠ 0, the process proceeds to step S86.
[0130] Step S85: The local search execution unit 32 calculates γ t γ t ×c1 After that, the process of step S88 is performed. Step S86: The local search execution unit 32 calculates E(x * ) and the value of x * to the solution holding unit 34. The solution holding unit 34 outputs E(x * ) and the value of x * Hold.
[0131] Step S87: The local search execution unit 32 calculates γ t γ t / c2 After that, the process of step S88 is performed. Step S88: The local search execution unit 32 executes t <N trial The local search execution unit 32 determines whether t <N trial If it is determined that t <N trial If it is determined that this is not the case, the process of step S89 is carried out.
[0132] Step S89: The output unit 37 outputs the search result (for example, the x * Among them, the most E(x * The smaller value of ) is output. This completes the process.
[0133] In the processing procedure of the comparative example described above, V(x * )=0, then γ t Decrease the value of V(x * )>0, then γ t This is a method to increase the value of Next, an example of an evaluation experiment was performed to compare the effects of executing the processing procedure of such a comparative example with those of executing the processing procedures of the first to third examples according to the second embodiment.
[0134] (Example of evaluation experiment) 15A and 15B show examples of numerical experiment results when the processing procedures of the comparative example and the first example are applied. FIG. 15A shows the results of the numerical experiment when the processing procedure of the comparative example is applied, and FIG. 15B shows the results of the numerical experiment when the processing procedure of the first example is applied. In FIGS. 15A and 15B, the vertical axis represents the minimum value of E(x), and the horizontal axis represents the number of trials. In this experimental example, one trial is defined as 3N times that the value of the state variable included in E(x) is changed (bit flip count) by local search.
[0135] The problem to be calculated is the minimum vertex cover problem on a random graph based on the Erdős-Rényi model. The number of vertices is 1024, and the average degree is 15. The local search is performed using tabu search.t The values of c1 and c2, which are coefficients used to change the value of V, were set to c1 = 1.2 and c2 = 1.3. target was set to 20. Both processing procedures were executed in parallel using multiple replicas as explained in the above modification 3. The number of parallel processes was 40.
[0136] As shown in Figure 15(A), when the processing procedure of the comparative example was applied, the system was constrained to a local minimum after several dozen trials, and the minimum value of E(x) was not updated. In contrast, as shown in Figure 15(B), when the processing procedure of the first example was applied, the number of updates to the minimum value of E(x) increased, and a smaller minimum value was found.
[0137] Fig. 16 is a diagram showing an example of the cumulative distribution of the minimum value of E(x) when the processing procedures of the comparative example and the first to third examples are applied. Fig. 16 shows an example of the cumulative distribution of the minimum value after 500 trials. The vertical axis represents the cumulative frequency, and the horizontal axis represents the minimum value of E(x).
[0138] As shown in FIG. 16, when the first to third examples were applied, a smaller minimum value of E(x) was obtained than when the processing procedure of the comparative example was applied. 17 is a diagram showing an example of the number of updates of the minimum value of E(x) when the processing procedures of the comparative example and examples 1 to 3 are applied, where the vertical axis represents the cumulative frequency and the horizontal axis represents the number of updates.
[0139] 17, when the first to third examples are applied, the number of updates to the minimum value of E(x) is greater than when the processing procedure of the comparative example is applied. When the processing procedures of the second and third examples using the LUT are applied, the number of updates is greater than when the processing procedure of the first example is applied. Furthermore, when the processing procedure of the third example is applied, the number of updates is greater than when the processing procedure of the second example is applied.
[0140] Therefore, the processing procedures of the second and third examples using the LUT are expected to be more effective in improving search efficiency than the processing procedure of the first example when searching for a solution to a large-scale problem. (Another example of a data processing device) Fig. 18 is a diagram showing another example of a data processing device, in which the same elements as those shown in Fig. 3 are denoted by the same reference numerals.
[0141] The data processing device 50 has an accelerator card 51 connected to the bus. 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 51b.
[0142] In the data processing device 50, the FPGA 51a and the DRAM 51b perform processing of, for example, the processing unit 12 and the storage unit 11 shown in Fig. 1, or each unit shown in Fig. 4. In this case, the processing unit 12 and the storage unit 11 shown in Fig. 1, or each unit shown in Fig. 4, are realized by various circuits constructed within the FPGA 51a, memories within the FPGA 51a, or the DRAM 51b. Note that there may be multiple accelerator cards 51.
[0143] While one aspect of the program, data processing device, and data processing method 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]
[0144] 10 Data Processing Device 11 Storage section 12 Processing section
Claims
1. acquiring, from a storage unit, evaluation function information of an evaluation function for a combinatorial optimization problem, the evaluation function including a sum of an objective function and one or more constraint functions including a first constraint function weighted by a first coefficient representing a weight of a first constraint condition; when repeatedly executing a local search for solution candidates of the combinatorial optimization problem using the evaluation function information while changing the value of the first coefficient, changing the value of the first coefficient in a direction that brings the value of the first constraint function corresponding to the solution candidate obtained by the local search using each value of the first coefficient closer to a target value, which is a positive value; A program that causes a computer to perform a process.
2. Increasing the value of the first coefficient in the local search until the solution candidate that satisfies the first constraint is obtained; after the solution candidate that satisfies the first constraint condition is obtained, decreasing the value of the first coefficient until the value of the first constraint function reaches the target value; The program according to claim 1 , which causes the computer to execute a process.
3. storing table information in which values of the first constraint function for each value of the first coefficient are recorded in the storage unit; determining a value of the first coefficient that brings the value of the first constraint function closer to the target value based on the table information; The program according to claim 1 , which causes the computer to execute a process.
4. 4. The program according to claim 3, which causes the computer to execute a process of updating the table information every time new values of the first coefficients and new values of the first constraint function are obtained.
5. determining a relational expression that expresses a relationship between the value of the first coefficient and the value of the first constraint function based on the value of the first constraint function for each value of the first coefficient; determining a value of the first coefficient that brings the value of the first constraint function closer to the target value based on the relational expression; The program according to claim 1 , which causes the computer to execute a process.
6. 6. The program according to claim 5, which causes the computer to execute a process of updating the relational expression every time a new value of the first coefficient and a new value of the first constraint function are obtained.
7. The program according to claim 1 , causing the computer to execute a process of increasing the target value if the solution candidate that satisfies the first constraint condition is not updated within a predetermined period of time.
8. a storage unit that stores evaluation function information of an evaluation function for a combinatorial optimization problem, the evaluation function including a sum of an objective function and one or more constraint functions including a first constraint function weighted by a first coefficient that represents the weight of a first constraint condition; a processing unit that acquires the evaluation function information from the storage unit, and when repeatedly executing a local search that searches for solution candidates for the combinatorial optimization problem using the evaluation function information while changing the values of the first coefficients, changes the values of the first coefficients in a direction that brings the values of the first constraint function corresponding to the solution candidates obtained by the local search using each value of the first coefficients closer to a target value that is a positive value; A data processing device having:
9. The computer acquiring, from a storage unit, evaluation function information of an evaluation function for a combinatorial optimization problem, the evaluation function including a sum of an objective function and one or more constraint functions including a first constraint function weighted by a first coefficient representing a weight of a first constraint condition; when repeatedly executing a local search for solution candidates of the combinatorial optimization problem using the evaluation function information while changing the value of the first coefficient, changing the value of the first coefficient in a direction that brings the value of the first constraint function corresponding to the solution candidate obtained by the local search using each value of the first coefficient closer to a target value, which is a positive value; Data processing methods.
Citation Information
Patent Citations
Allocation table creation system
JP2004361991A
Parameter variation tolerant method for circuit design optimization
US20030226122A1
Search and poll method for solving multi-fidelity optimization problems
US20170011143A1
Method of designing multicomponent material, optimization analyzer and storage medium on which multicomponent material optimization analysis program is recorded
WO1998006550A1