Program, data processing device, and data processing method
By initially solving the search for multiple combination optimization problems, determining the difficulty level and selecting high-difficulty problems for parameter search, the problem of long-term and inflexible parameters in combination optimization problems is solved, and the effect of efficiently obtaining flexible parameter values is achieved.
Patent Information
- Application Number
- JP2023179311
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-10-18
- Publication Date
- 2025-05-01
AI Technical Summary
When solving multiple combination optimization problems, the process of finding common parameter values is long, and random selection problems for parameter search may lead to inflexibility of the obtained parameter values.
By initially solving the search for multiple combination optimization problems, determine the first difficulty level and the second difficulty level of each problem, select the problem with the highest difficulty level for parameter search, and adjust the candidate parameter value through multiple searches to finally determine the parameter value.
The parameter search time is effectively shortened, the parameter values obtained have high flexibility, and can effectively solve multiple combination optimization problems.
Smart Images

Figure 2025069535000001_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] When searching for a solution to a combinatorial optimization problem, there is a method to convert the combinatorial optimization problem into an Ising model that represents the behavior of spin in 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 represented by the values of the multiple state variables. In an Ising-type evaluation function, the state variables are binary variables that take on values of 0 or 1 (or -1 or +1). The state variables may be expressed as bits. The Ising-type evaluation function can also be said to be an energy function, and the value of the evaluation function can be said to be 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 a ground state or an optimal solution.
[0004] Solution methods that can obtain approximate solutions to combinatorial optimization problems in a practical amount of time include, for example, the Simulated Annealing (SA) method and the Replica Exchange method. Other methods include the Genetic Algorithm (GA), the Simulated Quantum Annealing (SQA) method, and the Tabu Search method. Each of these solution methods uses a specific parameter to execute the solution search. For example, the SA method uses temperature parameters such as the maximum temperature and the minimum temperature.
[0005] The parameter values affect the solution-finding performance of the Ising machine. In order to determine the parameter values used in the SA method, the replica exchange method, etc., appropriate parameter values may be searched for before the actual solution search (for example, see Patent Document 1). [Prior art documents] [Patent documents]
[0006] [Patent Document 1] Patent Publication No. 2023-79015 Summary of the Invention [Problem to be solved by the invention]
[0007] When searching for highly versatile parameter values useful for searching for solutions to many combinatorial optimization problems based on the results of searching for solutions to each combinatorial optimization problem, the search time becomes long. In order to shorten the search time, it is conceivable to randomly select problems to be used for searching parameter values from among multiple combinatorial optimization problems, but there is a possibility that parameter values that are not versatile enough may be obtained.
[0008] In one aspect, the present invention aims to obtain highly versatile parameter values that are useful in searching for solutions to many combinatorial optimization problems. [Means for solving the problem]
[0009] In one embodiment, a program is provided that causes a computer to execute the following processes: determine a first level of difficulty for each of a plurality of combinatorial optimization problems using results of a first solution search for the plurality of combinatorial optimization problems; determine a second level of difficulty for each of the plurality of combinatorial optimization problems, or for some of the plurality of combinatorial optimization problems, using a problem scale, a type of constraint, or the number of constraints; select a plurality of problems to be evaluated from the plurality of combinatorial optimization problems in order of decreasing third difficulty obtained based on the first difficulty and the second difficulty; calculate evaluation values for the plurality of problems to be evaluated based on results of a second solution search using candidate values of parameters of a solution search, performing this process multiple times by changing the candidate values; and determine values of the parameters based on the evaluation values.
[0010] Also provided in one embodiment is a data processing apparatus. Also provided in one embodiment is a method for processing data. Effect of the Invention
[0011] On the one hand, it provides highly versatile parameter values that are useful for solving many combinatorial optimization problems. [Brief description of the drawings]
[0012] [Figure 1] FIG. 1 illustrates an example of a data processing device according to a first embodiment; [Diagram 2] FIG. 11 is a diagram illustrating a first example of a method for selecting questions to be evaluated. [Diagram 3] FIG. 11 is a diagram for explaining a second example of a method for selecting questions to be evaluated. [Figure 4] FIG. 11 is a diagram for explaining a third example of a method for selecting questions to be evaluated. [Diagram 5] FIG. 13 is a diagram showing an example of variation in trial difficulty due to differences in solution search time. [Figure 6] FIG. 11 illustrates an example of hardware of a data processing device according to a second embodiment. [Figure 7]FIG. 2 illustrates an example of functions of a data processing device. [Figure 8] 11 is a flowchart showing an example of a processing procedure of a data processing method. [Figure 9] 10 is a flowchart showing a processing procedure of a data processing method according to a comparative example. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0013] Hereinafter, an embodiment 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 according to a first embodiment. A data processing device 10 according to the first embodiment performs a process of searching for parameter values used in searching for a solution to a combinatorial optimization problem. The data processing device 10 may be a client device or a server device. The data processing device 10 may be called a computer.
[0014] The data processing device 10 of the first embodiment includes a storage unit 11 and a processing unit 12. 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 a HDD (Hard Disk Drive) or a flash memory. The storage unit 11 may also include both a volatile semiconductor memory and a non-volatile storage.
[0015] The storage unit 11 stores problem information for a combinatorial optimization problem. A combinatorial optimization problem can be formulated by an Ising-type evaluation function. For example, a combinatorial optimization problem can be replaced with a problem of minimizing the value of an Ising-type evaluation function. Hereinafter, an Ising-type evaluation function is referred to as an energy function. Also, the value of the evaluation function is referred to as energy.
[0016] The energy 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 energy function formulated in the QUBO (Quadratic Unconstrained Binary Optimization) format. In the case of a problem of maximizing energy, the sign of the energy function 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 indices of the state variables. i is the i-th state variable. x j is the jth state variable. W ij is the weighting coefficient indicating the strength of the connection between the i-th state variable and the j-th state variable. W ij =W ji And W ii =0.
[0020] The second term on the right-hand 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 for a combinatorial optimization problem includes weighting coefficients and biases included in the energy function as described above.
[0021] The storage unit 11 may further store calculation conditions for the solution search. For example, when a solution search is performed using the SA method, the calculation conditions include, for example, a maximum value of a temperature parameter (hereinafter referred to as maximum temperature), a temperature parameter change schedule, a minimum value of a temperature parameter (hereinafter referred to as minimum temperature), a search end condition, etc. When a solution 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, a search end condition, etc.
[0022] The storage unit 11 further stores the results of the solution search (for example, the update history of energy, which will be described later). The processing unit 12 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 12 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 collection of processors may be called a multiprocessor or simply a "processor." Furthermore, the processing unit 12 may include a processor and an electronic circuit such as an ASIC or an FPGA.
[0023] In the following description, an example will be shown in which the processing unit 12 searches for a solution to a combinatorial optimization problem. However, a solution searching unit realized by an FPGA, a GPU, or the like may perform a solution search in response to an instruction from the processing unit 12 and return the search result to the processing unit 12. In that case, the solution searching unit may be included in the data processing device 10, or may be included in another device that communicates with the data processing device 10.
[0024] The solution search is x i The change in energy due to the change in i ) is used. i is expressed by the following equation (2).
[0025]
number
[0026] ΔE i >0 x i When the value of one of the state variables changes, the energy of the formula (1) becomes smaller. The processing unit 12 calculates the energy of the state variables ΔE iis calculated for each of the state variables x i Changes in are accepted probabilistically, with changes that result in less energy being preferred.
[0027] In this case, if the steepest descent method is used, it is impossible to escape from a local solution. Therefore, the processing unit 12 uses the Metropolis method or the Gibbs method to determine the transition probability from a certain state to the next state by changing a certain state variable. That is, the processing unit 12 uses the Metropolis method or the Gibbs method to determine the transition probability from a certain state to the next state by changing a certain state variable. i and the thermal noise value are compared and allowed probabilistically. The thermal noise value is calculated based on the temperature parameter value and random numbers. 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 energy will be allowed.
[0028] For example, in the SA method, the processing unit 12 gradually changes the value of the temperature parameter from the maximum temperature to the minimum temperature according to a predetermined temperature parameter change schedule to reduce the amplitude of the thermal noise value and cause the state of the Ising model to converge to the ground state. In this way, parameters such as the maximum temperature and the minimum temperature are used in the SA method.
[0029] The processing unit 12 performs the following process to obtain generally applicable (useful) parameter values for multiple combinatorial optimization problems that the user wishes to solve. An example of the flow of the process performed by the processing unit 12 is shown in FIG.
[0030] Step S1: The processing unit 12 acquires problem information for a plurality of combinatorial optimization problems stored in the storage unit 11. The problem information for the combinatorial optimization problems is, for example, input by a user to the data processing device 10 and stored in the storage unit 11. In the example of FIG. 1, the number of combinatorial optimization problems (the number of problems) is n. The plurality of combinatorial optimization problems may include a problem for which a theoretical optimal solution is known. In that case, the problem information may include the optimal solution and the energy corresponding to that optimal solution.
[0031] The problem information may also include information that represents the constraints of the combinatorial optimization problem. If a constraint is violated when a value of a state variable is changed, the energy increases. Information that represents the constraints includes the type of constraint (e.g., 1-way 1-hot constraint, 2-way 1-hot constraint, etc.), the number of constraints, etc.
[0032] Step S2: The processing unit 12 performs a solution search for the n number of combinatorial optimization problems based on the problem information. When the solution search method is the SA method, for example, the maximum temperature and the minimum temperature are used as parameters. The parameter values used in the solution search here do not need to be highly versatile. In addition, the solution search in the processing of step S2 is performed not for the purpose of searching for a good solution but for the purpose of obtaining information for determining the trial difficulty level (such as the energy update history described later), so the solution search time can be relatively short. Various solution search methods, such as the SA method and the replica exchange method, can be applied as the solution search.
[0033] Step S3: The processing unit 12 uses the result of the solution search to determine a first difficulty level (hereinafter referred to as a trial difficulty level) of each of the n combinatorial optimization problems. An example of the energy update history during a solution search is shown in Figure 1. The horizontal axis represents time (t) and the vertical axis represents energy (E).
[0034] Time t1 represents the time when the constraints are no longer violated, time t2 represents the last update time when the energy was last updated, and time T3 represents the end time of the solution search. The trial difficulty level can be determined, for example, using the time (t1-t0) from the start time t0 of the solution search to time t1, and the time (t2-t0) from the start time t0 to time t2.
[0035] The longer the time until violations of constraint conditions are eliminated, the more difficult the combinatorial optimization problem is. Also, the longer the time from the start time to the last update time, the more difficult the combinatorial optimization problem is.
[0036] When the initial value of energy (E0) is given, the difference (ΔE1) between E0 and the energy at the end of the solution search (E1) can be used to determine the trial difficulty. The smaller ΔE1 is for a combinatorial optimization problem, the harder it is to reduce the energy, and the more difficult the combinatorial optimization problem is.
[0037] When the minimum energy (Emin), which is the energy corresponding to the theoretical optimal solution, is given, the difference between Emin and E1 (ΔE2) can also be used to determine the trial difficulty. The larger ΔE2 is, the more difficult it is to converge to Emin, and the more difficult the combinatorial optimization problem is.
[0038] The processing unit 12 can use the result of the solution search as described above to calculate the trial difficulty level, for example, by one of the following formulas (3) and (4). Trial difficulty = a1 × (t2-t0) + a2 × (t1-t0) + a3 / ΔE1 + a4 × ΔE2 (3) Trial difficulty=a×(t2-t0)×(t1-t0) / ΔE1×ΔE2 (4) a1 to a4, and a are coefficients representing weights. The values of a1 to a4, and a are stored in advance in the storage unit 11, for example. The values of a1 to a4, and a may be input by the user. Note that the processing unit 12 may use all or some of (t1-t0), (t2-t0), ΔE1, and ΔE2 to determine the trial difficulty level.
[0039] The method of determining the trial difficulty level is not limited to the above method. For example, the processing unit 12 may determine the trial difficulty level using table data in which the trial difficulty level is set according to the combination of the four conditions (t2-t0)≦b1, (t1-t0)≦b2, ΔE1≦b3, and ΔE2≦b4 that are satisfied. b1 to b4 are predetermined thresholds. The table data may be stored in the storage unit 11.
[0040] Step S4: The processing unit 12 determines a second difficulty level (hereinafter referred to as "pre-difficulty level") for each of the n combinatorial optimization problems or for some of the n combinatorial optimization problems using the problem scale, the type of constraint condition, or the number of constraint conditions. The larger the problem scale, the more likely it is that the combinatorial optimization problem is of high difficulty. Also, the more types of constraint conditions or the more constraint conditions there are, the more states with high energy there are, and therefore the more likely it is that the combinatorial optimization problem is of high difficulty.
[0041] The problem scale can be expressed by the number of state variables (which can also be called the number of bits) included in the energy function. For example, when the number of bits is nb, the number of types of constraints is two, and the numbers of the two types of constraints are p1 and p2, respectively, the processing unit 12 can calculate the preliminary difficulty level by, for example, one of the following formulas (5) and (6).
[0042] Pre-difficulty = c1 × nb + c2 × p1 + c3 × p2 (5) Preliminary difficulty = c × nb × p1 × p2 (6) c1 to c3, and c are coefficients representing weights. The values of c1 to c3, and c are stored in advance in the storage unit 11, for example. The values of c1 to c3, and c may be input by the user. The processing unit 12 may use all or some of nb, p1, and p2 to determine the preliminary difficulty level.
[0043] The method of determining the preliminary difficulty level is not limited to the above method. For example, the processing unit 12 may determine the preliminary difficulty level using table data in which the preliminary difficulty level is set according to the combination of the three conditions, nb≦d1, p1≦d2, and p2≦d3, that are satisfied. d1 to d3 are predetermined thresholds. The table data may be stored in the storage unit 11.
[0044] When determining the a priori difficulty levels for some of the n combinatorial optimization problems, the way in which the problems for which the a priori difficulty levels are determined is selected depends on the method used to select the N problems to be evaluated in the process of step S5 below.
[0045] The reason for using pre-difficulty rather than just trial difficulty will be explained later. Step S5: The processing unit 12 selects a plurality of (hereinafter, referred to as N) evaluation target problems from the n number of combinatorial optimization problems in descending order of the third difficulty level obtained based on the trial difficulty level and the preliminary difficulty level. The value of N is designated, for example, by the user. Hereinafter, the third difficulty level is referred to as the target selection difficulty level.
[0046] An example of a method for selecting questions to be evaluated will be described below. FIG. 2 is a diagram for explaining a first example of a method for selecting questions to be evaluated. In Fig. 2, n combinatorial optimization problems are arranged in order of increasing trial difficulty. When the selection method of the first example is applied, the processing unit 12 calculates the ex-ante difficulty for the Nf-th to N+f-th combinatorial optimization problems, counting in order of difficulty from the combinatorial optimization problem with the highest trial difficulty. f may be a fixed value independent of the value of N, or may be a value calculated according to the value of N, such as j% of N. Although not particularly limited, a value of about 10% of N is used as the value of f, for example.
[0047] In the process of step S5, the processing unit 12 uses the trial difficulty levels as the top Nf-1 of the difficulty levels for target selection. The processing unit 12 uses the preliminary difficulty levels as the top Nf to N+f of the difficulty levels for target selection. Then, the processing unit 12 selects N combinatorial optimization problems as problems to be evaluated in descending order of the difficulty levels for target selection.
[0048] FIG. 3 is a diagram for explaining a second example of a method for selecting questions to be evaluated. The second example is a selection method applicable when the time (t2-t0) from the start time t0 to the last energy update time t2 is used to determine the trial difficulty level. When the number of problems whose last update time t2 is within a predetermined time g range (for example, within a few seconds) from the end time t3 of the solution search exceeds N and is N+α, in the process of step S4, the processing unit 12 calculates the preliminary difficulty levels for those N+α combinatorial optimization problems. Then, the processing unit 12 uses the preliminary difficulty levels of the N+α combinatorial optimization problems as the difficulty levels for target selection, and selects N problems to be evaluated in order of the difficulty levels for target selection.
[0049] FIG. 4 is a diagram for explaining a third example of a method for selecting questions to be evaluated. In a third example, the processing unit 12 calculates the advance difficulty levels for N×h combinatorial optimization problems selected in the process of step S4 in order of difficulty, starting with the combinatorial optimization problem with the highest trial difficulty level (up to the N×h-th problem), where h is an integer equal to or greater than 2. Then, the processing unit 12 uses the advance difficulty levels of the N×h combinatorial optimization problems as the difficulty levels for target selection, and selects N problems to be evaluated in order of the difficulty levels for target selection.
[0050] In the above three examples, the number of combinatorial optimization problems that are candidates for the problem to be evaluated is narrowed down based on the trial difficulty, and then the problem to be evaluated is selected using the preliminary difficulty, but the method is not limited to this. For example, the processing unit 12 may narrow down the number of combinatorial optimization problems that are candidates for the problem to be evaluated using the trial difficulty, and then calculate the target selection difficulty = trial difficulty + i × preliminary difficulty for each of the narrowed down combinatorial optimization problems. Then, the processing unit 12 may select N combinatorial optimization problems as problems to be evaluated in descending order of target selection difficulty. i is, for example, 0 <i≦1である。
[0051] Alternatively, the processing unit 12 may calculate target selection difficulty=trial difficulty+i×preliminary difficulty for all n combinatorial optimization problems. Then, the processing unit 12 may select N combinatorial optimization problems in descending order of target selection difficulty as problems to be evaluated. However, there are combinatorial optimization problems that have a high preliminary difficulty but are actually easy when calculated. For this reason, it is preferable to use the trial difficulty to narrow down the number of combinatorial optimization problems that are candidates for problems to be evaluated, and then select problems to be evaluated using the preliminary difficulty.
[0052] In addition to the above method, a pre-diffraction level may be determined for multiple combinatorial optimization problems whose last update times differ by within a predetermined time, and the pre-diffraction levels may be used as the difficulty levels for target selection for those combinatorial optimization problems.
[0053] Step S6: After the N problems to be evaluated are selected as described above, a parameter search process is performed. The processing unit 12 performs a solution search for the N problems to be evaluated using candidate values of parameters for the solution search. The processing unit 12 acquires candidate values for the relevant parameters. For example, the processing unit 12 may acquire candidate values in a brute force manner from within a predetermined candidate value range by a grid search. Alternatively, the processing unit 12 may acquire candidate values randomly from within a predetermined candidate value range by a random search.
[0054] When the SA method is used as a solution search method, the parameter value to be acquired is, for example, both or either of the maximum temperature value and the minimum temperature value. When there are multiple types of parameters, such as the maximum temperature and the minimum temperature, the parameter value to be acquired is a set of the values of these parameters.
[0055] The solution search is performed using the solution-finding method applied in the process of step S2. For example, if the SA method is applied in the process of step S2, the SA method is also applied in the process of step S6. The processing unit 12 calculates an evaluation value of the candidate value based on the result of the solution search using the acquired candidate parameter values. The evaluation value is calculated using, for example, the minimum value of the energy function reached in a solution search for a certain period of time or the time required to reach the minimum value. The processing unit 12 evaluates the candidate value using the total value of the evaluation values calculated for each combinatorial optimization problem.
[0056] The processing unit 12 performs solution search and evaluation of the candidate values of the parameters multiple times by changing the candidate values. The processing unit 12 outputs the candidate value having the largest total evaluation value for the N problems to be evaluated as the parameter value resulting from the parameter search process.
[0057] Although not shown in FIG. 1, the processing unit 12 may then use the parameter values obtained by the parameter search process to perform solution searches for the multiple combinatorial optimization problems for which the trial difficulty levels have been determined, and output the results of the solution search.
[0058] As described above, according to the data processing device 10, a first difficulty level (trial difficulty level) of each of the multiple combinatorial optimization problems is determined using the results of the first solution search for the multiple combinatorial optimization problems. In addition, a second difficulty level (preliminary difficulty level) is determined for each of the multiple combinatorial optimization problems or for a part of the multiple combinatorial optimization problems using the problem scale, the type of constraint condition, or the number of constraint conditions. Then, from the multiple combinatorial optimization problems, multiple evaluation target problems are selected in descending order of the third difficulty level (target selection difficulty level) obtained based on the first difficulty level and the second difficulty level. Furthermore, for the multiple evaluation target problems, a process of calculating an evaluation value of a candidate value based on the result of the second solution search using candidate values of parameters in the solution search is performed multiple times while changing the candidate value, and a parameter value is determined based on the evaluation value.
[0059] When problems to be used in a parameter search are randomly selected from the n combinatorial optimization problems that a user wants to solve in order to shorten the parameter search time, there is a possibility that parameter values that are not sufficiently versatile for the n combinatorial optimization problems may be obtained. For example, if the problems selected for the parameter search are biased toward easy problems, the obtained parameter values may not be useful for the difficult problems included in the n combinatorial optimization problems.
[0060] In contrast, according to the data processing device 10, problems to be evaluated are selected in descending order of difficulty for target selection obtained from the trial difficulty and the preliminary difficulty. If a parameter value useful for a more difficult problem is obtained, it is highly likely that it will also be useful for easier problems. Therefore, according to the data processing device 10, by selecting a problem to be evaluated from among n combinatorial optimization problems, it is possible to obtain parameter values that are highly versatile for n combinatorial optimization problems even if the number of problems used in the parameter search is narrowed down.
[0061] Therefore, according to the data processing device 10, it is possible to appropriately reduce the number of problems used in the parameter search, and obtain highly versatile parameter values that are useful in searching for solutions to many combinatorial optimization problems.
[0062] The reason for using the preliminary difficulty level rather than just the trial difficulty level is explained below. FIG. 5 is a diagram showing an example of variation in trial difficulty due to differences in solution search time. Here, the trial difficulty is the time from the start time of the solution search to the last update time. The horizontal axis represents N pieces of problems 1 to N, and the vertical axis represents the time from the start time to the last update time. The dashed line represents a plot when the solution search time per problem is 10 minutes, and the solid line represents a plot when the solution search time per problem is 1 minute. Note that for problem 3, the trial difficulty is the same when the solution search time is 10 minutes and when it is 1 minute.
[0063] If the time from the start time to the last update time is taken as the trial difficulty, and the solution search time per question is 10 minutes, the difference in trial difficulty between questions is relatively large, as shown in Figure 5. However, for example, when N=10,000, the total solution search time will be more than 1,000 hours. For this reason, the actual solution search time per question is likely to be from several tens of seconds to about one minute.
[0064] However, if the solution search time per problem is set to a short time such as one minute, the trial difficulty of many problems reaches the upper limit, and the difference in trial difficulty for each problem cannot be obtained, as shown in Figure 5. Therefore, by using the pre-difficulty level together with the trial difficulty level, it is possible to obtain a difficulty level for target selection that more closely reflects the actual difficulty level.
[0065] Furthermore, as shown in Figures 2 to 4, multiple combinatorial optimization problems are narrowed down to a portion of combinatorial optimization problems based on the trial difficulty levels, and a pre-difficulty level is determined for those portions of the combinatorial optimization problems, thereby reducing the time required to determine the pre-difficulty level.
[0066] The above-mentioned part of combinatorial optimization problems may be counted in order of difficulty from the combinatorial optimization problem with the highest trial difficulty among the multiple combinatorial optimization problems, and may be a predetermined number (f in the example of FIG. 2) of combinatorial optimization problems before and after the combinatorial optimization problem corresponding to the number of problems (N) to be evaluated. In this case, the preliminary difficulty is used as the difficulty for target selection of the predetermined number of combinatorial optimization problems. The predetermined number of combinatorial optimization problems have trial difficulty levels near the Nth level (near the boundary between whether or not they are selected as problems to be evaluated). Even if a combinatorial optimization problem has a trial difficulty level higher than the Nth level, the difference in trial difficulty is small as shown in FIG. 5, so that it may actually be of a higher difficulty level than the Nth level. It is expected that by using the preliminary difficulty level for such problems, it will be possible to select problems to be evaluated that reflect the actual difficulty level.
[0067] In addition, when the trial difficulty is determined using the time from the start time of the solution search to the last update time, the part of combinatorial optimization problems may be combinatorial optimization problems whose last update time is within a predetermined time from the end time of the solution search and whose number is greater than the number of problems to be evaluated. In the example of FIG. 3 described above, N+α combinatorial optimization problems are set as the part of combinatorial optimization problems. In this case, the preliminary difficulty is used as the difficulty for selecting the target of these combinatorial optimization problems. Since the difference between the trial difficulty of these combinatorial optimization problems is small as shown in FIG. 5, there is a possibility that the difficulty is actually higher than the Nth one. It is expected that the preliminary difficulty can be used for such problems to select a problem to be evaluated that reflects the actual difficulty.
[0068] Furthermore, the part of combinatorial optimization problems may be a number of combinatorial optimization problems selected from the plurality of combinatorial optimization problems in order of difficulty, starting with the combinatorial optimization problem with the highest trial difficulty, the number of problems in the plurality of evaluation target problems multiplied by a predetermined value (f in the example of FIG. 4). In this case, the pre-difficulty levels are used as the difficulty levels for target selection of these combinatorial optimization problems.
[0069] For these combinatorial optimization problems, the difference in trial difficulty is small as shown in Figure 5, so there is a possibility that the actual difficulty level may be higher than the Nth difficulty level. For such problems, it is expected that by using the pre-difficulty level, it will be possible to select problems to be evaluated that reflect the actual difficulty level.
[0070] (Second embodiment) Next, a second embodiment will be described. FIG. 6 illustrates an example of hardware of a data processing device according to the second embodiment.
[0071] The data processing device 100 performs processing to search for parameter values used in searching for a solution to a combinatorial optimization problem. The data processing device 100 also solves the combinatorial optimization problem. The data processing device 10 may be called a computer. The data processing device 100 may be a client device or a server device.
[0072] A combinatorial optimization problem is formulated, for example, by the energy function of Equation (1). The data processing device 100 searches for a solution to the combinatorial optimization problem by executing the SA method or the like based on the energy function.
[0073] The data processing device 100 has a processor 101, a RAM 102, a HDD 103, a GPU 104, an input interface 105, a media reader 106, a communication interface 107, and an accelerator card 108. These units included in the data processing device 100 are connected to a bus inside the data processing device 100. The processor 101 corresponds to the processing unit 12 in the first embodiment. The RAM 102 or the HDD 103 corresponds to the storage unit 11 in the first embodiment.
[0074] The processor 101 is an arithmetic device that executes program instructions. The processor 101 is, for example, a CPU. The processor 101 loads at least a part of the program and data stored in the HDD 103 into the RAM 102 and executes the program. The processor 101 may include multiple processor cores. The data processing device 100 may have multiple processors. The processing described below may be executed in parallel using multiple processors or processor cores. A set of multiple processors may be called a "multiprocessor" or simply a "processor."
[0075] The RAM 102 is a volatile semiconductor memory that temporarily stores programs executed by the processor 101 and data used in calculations by the processor 101. Note that the data processing device 100 may include a type of memory other than a RAM, or may include multiple memories.
[0076] The HDD 103 is a non-volatile storage device that stores software programs such as an OS (Operating System), middleware, and application software, and data. The data processing device 100 may include other types of storage devices such as a flash memory or an SSD (Solid State Drive), or may include multiple non-volatile storage devices.
[0077] The GPU 104 outputs an image to a display 104a connected to the data processing device 100 in accordance with an instruction from the processor 101. As the display 104a, any type of display can be used, such as a CRT (Cathode Ray Tube) display, a liquid crystal display (LCD: Liquid Crystal Display), a plasma display, or an organic EL (OEL: Organic Electro-Luminescence) display.
[0078] The input interface 105 acquires an input signal from an input device 105a connected to the data processing device 100, and outputs the input signal to the processor 101. As the input device 105a, a pointing device such as a mouse, a touch panel, a touch pad, or a trackball, a keyboard, a remote controller, a button switch, etc. may be used. In addition, a plurality of types of input devices may be connected to the data processing device 100.
[0079] The medium reader 106 is a reading device that reads programs and data recorded on a recording medium 106a. For example, a magnetic disk, an optical disk, a magneto-optical disk (MO: Magneto-Optical disk), a semiconductor memory, etc. can be used as the recording medium 106a. Magnetic disks include flexible disks (FD: Flexible Disks) and HDDs. Optical disks include compact discs (CDs) and digital versatile discs (DVDs).
[0080] The medium reader 106 copies the programs and data read from the recording medium 106a, for example, to another recording medium such as the RAM 102 or the HDD 103. The read programs are executed by the processor 101, for example. The recording medium 106a may be a portable recording medium, and may be used for distributing the programs and data. The recording medium 106a and the HDD 103 may also be referred to as computer-readable recording media.
[0081] The communication interface 107 is connected to a network 107a and communicates with other information processing devices via the network 107a. The communication interface 107 may be a wired communication interface connected to a wired communication device such as a switch or a router, or a wireless communication interface connected to a wireless communication device such as a base station or an access point.
[0082] The accelerator card 108 is a hardware accelerator that executes the SA method based on an Ising-type energy function. The accelerator card 108 may perform a solution search using a solution-finding method other than the SA method. The accelerator card 108 has a processor 108a and a RAM 108b. The processor 108a is, for example, a CPU, a GPU, an FPGA, an ASIC, or the like. The processor 108a executes the SA method according to an instruction from the processor 101, and returns a solution obtained by the solution search. The RAM 108b is a memory that stores data used in the processing of the processor 108a. For example, parameter values such as maximum temperature and minimum temperature are used to execute the SA method. The parameter values are input to the accelerator card 108 by the processor 101 and are held in the RAM 108b.
[0083] An apparatus that solves a combinatorial optimization problem expressed by an Ising-type energy function, that is, an Ising problem, such as the accelerator card 108 or the data processing apparatus 100, is sometimes called an Ising machine.
[0084] FIG. 7 is a diagram illustrating an example of functions of the data processing device. The data processing device 100 has a memory unit 110, an information acquisition unit 111, a solution search unit 112, a trial difficulty determination unit 113, a preliminary difficulty determination unit 114, and an evaluation target problem selection unit 115. Furthermore, the data processing device 100 has a parameter acquisition unit 116, a parameter evaluation unit 117, a parameter search end determination unit 118, a parameter output unit 119, a solution search unit 120, and a search result output unit 121.
[0085] The storage unit 110 uses the storage areas of the RAM 102 and the HDD 103. The information acquisition unit 111, the solution search unit 112, the trial difficulty determination unit 113, the advance difficulty determination unit 114, and the evaluation target problem selection unit 115 are realized by the processor 101 executing programs stored in the RAM 102. The parameter acquisition unit 116, the parameter evaluation unit 117, the parameter search end determination unit 118, the parameter output unit 119, the solution search unit 120, and the search result output unit 121 are also realized by the processor 101 executing programs stored in the RAM 102.
[0086] The storage unit 110 stores problem information for n combinatorial optimization problems. The problem information for the combinatorial optimization problems includes, for example, weighting coefficients and biases included in the energy function of equation (1). The problem information is input, for example, by a user operating the input device 105a, and stored in the storage unit 110. Alternatively, the problem information may be received from another computer via the network 107a.
[0087] The n combinatorial optimization problems may include a problem for which a theoretical optimal solution is known. In that case, the problem information may include the optimal solution and the energy (minimum energy) corresponding to that optimal solution. The problem information may also include information representing the constraint conditions of the combinatorial optimization problem. Information representing the constraint conditions may include the type of constraint (e.g., 1-way 1-hot constraint, 2-way 1-hot constraint, etc.), the number of constraint conditions, etc.
[0088] The storage unit 110 also stores the calculation conditions for the solution search. For example, when a solution search is performed using the SA method, the calculation conditions include parameter values such as maximum and minimum temperatures. The parameter values stored in the storage unit 110 before the parameter search process do not need to be highly versatile values that are useful for all of the n combinatorial optimization problems.
[0089] The information acquisition unit 111 acquires problem information and calculation conditions stored in the memory unit 110 , and inputs them to the solution search units 112 and 120 , the advance difficulty determination unit 114 , and the evaluation target problem selection unit 115 . The solution search unit 112 sets problem information of the combinatorial optimization problem and parameter values representing calculation conditions in the accelerator card 108, and executes a solution search for a certain period of time. The solution search unit 112 acquires an energy update history in the solution search as a result of the solution search from the RAM 108b of the accelerator card 108. The solution search in the solution search unit 112 is performed for each of the n combinatorial optimization problems. As the solution search, various solution-finding methods such as the SA method and the replica exchange method can be applied.
[0090] The solution search in the solution search unit 112 is not performed to find a good solution, but to obtain information for determining the trial difficulty level, so the solution search time may be relatively short. For example, the solution search is performed for about one minute.
[0091] The trial difficulty determination unit 113 determines the trial difficulty of each of the n combinatorial optimization problems using the result of the solution search in the solution search unit 112. The trial difficulty determination unit 113 can calculate the trial difficulty by, for example, either of the above-mentioned formulas (3) and (4). Note that, in order to determine the trial difficulty, the trial difficulty determination unit 113 may use all or some of (t1-t0), (t2-t0), ΔE1, and ΔE2 in formulas (3) and (4). Note that the method of calculating the trial difficulty is not limited to the above-mentioned method.
[0092] The pre-difficulty level determination unit 114 determines the pre-difficulty level for each of the n combinatorial optimization problems or for a part of the n combinatorial optimization problems. The pre-difficulty level determination unit 114 can calculate the pre-difficulty level by, for example, any of the above-mentioned formulas (5) and (6). Note that the processing unit 12 may use all or some of nb, p1, and p2 in formulas (5) and (6) to determine the pre-difficulty level. However, formulas (5) and (6) may be changed depending on the number of types of constraint conditions. Note that the method of determining the pre-difficulty level is not limited to the above method.
[0093] When determining the a priori difficulty levels for some of the n combinatorial optimization problems, the way in which the problems for which a priori difficulty levels are to be determined depends on the method used by evaluation target problem selection unit 115 to select the N evaluation target problems.
[0094] The evaluation target problem selection unit 115 selects N evaluation target problems from the n combinatorial optimization problems in order of the difficulty level for target selection obtained based on the trial difficulty level and the preliminary difficulty level. The value of N is input by the user operating the input device 105a, for example.
[0095] As a method for selecting a problem to be evaluated, for example, any of the methods shown in Figs. 2 to 4 can be used. However, the method for selecting a problem to be evaluated is not limited to the methods shown in Figs. 2 to 4. For example, the evaluation target problem selection unit 115 may use the trial difficulty to narrow down the number of combinatorial optimization problems that are candidates for the problem to be evaluated, and then calculate the target selection difficulty = trial difficulty + i × pre-difficulty for each of the narrowed down combinatorial optimization problems. Then, the evaluation target problem selection unit 115 may select N combinatorial optimization problems in descending order of target selection difficulty as problems to be evaluated. i may be, for example, 0 <i≦1である。
[0096] Alternatively, the evaluation target problem selection unit 115 may calculate target selection difficulty=trial difficulty+i×preliminary difficulty for all n combinatorial optimization problems. Then, the evaluation target problem selection unit 115 may select N combinatorial optimization problems in descending order of target selection difficulty as the problems to be evaluated. Furthermore, the evaluation target problem selection unit 115 may determine a preliminary difficulty for multiple combinatorial optimization problems whose last update times differ by within a predetermined time, and use the preliminary difficulty as the target selection difficulty for those combinatorial optimization problems.
[0097] The parameter search process is carried out by the parameter acquisition unit 116, the parameter evaluation unit 117, and the parameter search end determination unit 118. The parameter acquisition unit 116 acquires candidate values of parameters used in the solution search. For example, the parameter acquisition unit 116 may acquire candidate values in a brute force manner from within a predetermined candidate value range by a grid search. Alternatively, the parameter acquisition unit 116 may acquire candidate values randomly from within a predetermined candidate value range by a random search. When the SA method is used as a solution-finding method for the solution search, the candidate values of the parameters to be acquired are, for example, both or either of the maximum temperature value and the minimum temperature value. When there are multiple types of parameters, such as the maximum temperature and the minimum temperature, the candidate values of the parameters to be acquired are a set of candidate values of these parameters.
[0098] The parameter evaluation unit 117 sets the problem information of the selected N problems to be evaluated and the candidate parameter values acquired by the parameter acquisition unit 116 in the accelerator card 108, and executes a solution search. The solution-finding method in the solution search is the same as the solution-finding method applied by the solution search unit 112. The parameter evaluation unit 117 acquires an energy update history from the RAM 108b of the accelerator card 108 as a result of the solution search. Then, the parameter evaluation unit 117 obtains an evaluation value representing an evaluation of the candidate parameter value based on the energy update history. The evaluation value can be calculated, for example, using the minimum energy value reached in a certain period of solution search or the time required to reach the minimum energy value. The minimum energy value or the time required to reach the minimum energy value can also be used as the evaluation value.
[0099] The parameter search end determination unit 118 determines whether or not a parameter search end condition is satisfied. For example, the parameter search end determination unit 118 determines that the end condition is satisfied when the candidate value that has the largest total evaluation value (highest evaluation) obtained for each evaluation target question does not change even if different candidate values are obtained a predetermined number of times.
[0100] The parameter output unit 119 outputs the candidate value that has the largest sum of the evaluation values (hereinafter referred to as the best parameter value). The best parameter value may be stored in the storage unit 110.
[0101] The solution search unit 120 sets problem information and best parameter values of the n combinatorial optimization problems in the accelerator card 108 and executes a solution search. The solution-finding method in the solution search is the same as the solution-finding method applied by the solution search unit 112. The solution search unit 120 acquires the search results of the solution search from the accelerator card 108. The solution search unit 120 outputs the acquired search results to the search result output unit 121. The search results include, for example, the minimum energy obtained within a predetermined period and the values of each state variable corresponding to that energy.
[0102] The search result output unit 121 outputs the search results acquired from the solution search unit 112. For example, the search result output unit 121 may cause the display 104a to display an image representing a solution to each of the n combinatorial optimization problems, or may transmit data of the solution to another computer via the network 107a.
[0103] Although the solution search units 112 and 120 and the parameter evaluation unit 117 are described as causing the accelerator card 108 to execute a solution search, the function of the solution search may be realized by the processor 101 executing a program. In this case, the data processing device 100 may not have the accelerator card 108.
[0104] Next, an example of the procedure of the data processing method by the data processing device 100 will be described. FIG. 8 is a flowchart showing an example of a processing procedure of the data processing method. Step S10: The information acquisition unit 111 acquires problem information and calculation conditions stored in the storage unit 110 , and inputs them to the solution search units 112 and 120 , the advance difficulty determination unit 114 , and the evaluation target problem selection unit 115 .
[0105] Step S11: The solution search unit 112 sets problem information of the combinatorial optimization problem and parameter values representing calculation conditions in the accelerator card 108, and executes a solution search for a certain period of time. The solution search unit 112 obtains an energy update history in the solution search from the RAM 108b of the accelerator card 108 as a result of the solution search.
[0106] Step S12: The trial difficulty level determination unit 113 uses the results of the solution search in the solution search unit 112 to determine the trial difficulty level of each of the n combinatorial optimization problems. Step S13: The pre-difficulty level determiner 114 determines a pre-difficulty level for each of the n combinatorial optimization problems or for some of the n combinatorial optimization problems, using the problem scale, the type of constraint condition, or the number of constraint conditions.
[0107] Step S14: The evaluation target problem selection unit 115 selects N evaluation target problems from the n combinatorial optimization problems in order of the difficulty level for target selection obtained as described above, based on the trial difficulty level and the preliminary difficulty level.
[0108] Step S15: The parameter acquisition unit 116 acquires candidate values of parameters used in the solution search. Step S16: Parameter candidate values are evaluated. In the process of step S16, the parameter evaluation unit 117 sets problem information of the selected N problems to be evaluated and the parameter candidate values acquired by the parameter acquisition unit 116 in the accelerator card 108, and causes a solution search to be performed. The parameter evaluation unit 117 acquires an energy update history as a result of the solution search from the RAM 108b of the accelerator card 108. Then, the parameter evaluation unit 117 obtains an evaluation value representing an evaluation of the parameter candidate values based on the energy update history.
[0109] Step S17: The parameter search end determination unit 118 determines whether or not the end condition of the parameter search is satisfied. If the parameter search end determination unit 118 determines that the end condition of the parameter search is satisfied, the process of step S18 is performed, and if it determines that the end condition of the parameter search is not satisfied, the process from step S15 is repeated.
[0110] Step S18: The parameter output unit 119 outputs the candidate value with the largest sum of the evaluation values as the best parameter value. Step S19: The solution search unit 120 sets the problem information of the n combinatorial optimization problems and the best parameter values in the accelerator card 108, and executes a solution search. The solution search unit 120 acquires the search results of the solution search from the accelerator card 108. The solution search unit 120 outputs the acquired search results to the search result output unit 121.
[0111] Step S20: The search result output unit 121 outputs the search result acquired from the solution search unit 112. This completes the process of the data processing method by the data processing device 100. Next, a comparative example will be described. In the comparative example, the functions of the solution search unit 112, the trial difficulty level determination unit 113, the advance difficulty level determination unit 114, and the evaluation target question selection unit 115 are not used.
[0112] FIG. 9 is a flowchart showing the processing procedure of the data processing method of the comparative example. Step S30: Problem information and calculation conditions for the n combinatorial optimization problems are acquired. Step S31: Candidate values for parameters used in a solution search are obtained.
[0113] Step S32: Parameter candidate values are evaluated. In the process of step S32, a solution search is performed based on the problem information of the n combinatorial optimization problems and the parameter candidate values. Then, an evaluation value of the parameter candidate value is obtained based on the update history of the energy obtained by the solution search.
[0114] Step S33: It is determined whether the end condition of the parameter search is satisfied. If it is determined that the end condition of the parameter search is satisfied, the process of step S34 is performed, and if it is determined that the end condition of the parameter search is not satisfied, the process from step S31 is repeated.
[0115] Step S34: The candidate value with the largest total evaluation value is output as the best parameter value. Step S35: A solution search is performed for each of the n combinatorial optimization problems based on the problem information and the best parameter values.
[0116] Step S36: The search result of the solution search is output, and the process ends. In the data processing method of the comparative example, a parameter search accompanied by a solution search is performed using problem information of n combinatorial optimization problems that a user wishes to solve. In this case, as the value of n (number of problems) increases, the number of times solution searches are performed also increases, and the time required to obtain highly versatile parameter values also increases. For example, a parameter search using several tens of combinatorial optimization problems may take approximately 100 hours. In actual business negotiations, the number of combinatorial optimization problems that a user wishes to solve may exceed 10,000, and it is not realistic to use all of the problems as evaluation target problems to be used in parameter search.
[0117] If a problem to be used for parameter search is randomly selected from the n combinatorial optimization problems that the user wishes to solve in order to shorten the time required for parameter search, there is a possibility that parameter values obtained will not be versatile enough for the n combinatorial optimization problems.
[0118] In contrast, according to the data processing device 100, problems to be evaluated are selected in descending order of difficulty for target selection obtained from the trial difficulty and the preliminary difficulty. If a parameter value useful for a more difficult problem is obtained, it is highly likely that it will also be useful for easier problems. Therefore, according to the data processing device 100, by selecting a problem to be evaluated from among n combinatorial optimization problems, it is possible to obtain parameter values that are highly versatile for n combinatorial optimization problems even if the number of problems used in the parameter search is reduced.
[0119] Therefore, according to the data processing device 100, the number of problems used in the parameter search can be appropriately reduced, and highly versatile parameter values that are useful in searching for solutions to many combinatorial optimization problems can be obtained.
[0120] Furthermore, the data processing device 100 sets the problem information and the best parameter values in an Ising machine (the accelerator card 108 in the above example) and executes a solution search for each of the n combinatorial optimization problems. Since the best parameter values have high versatility for the n combinatorial optimization problems, it is expected that a good solution will be obtained in a short time.
[0121] (Experimental Example) An experimental example is given below. 1,700 combinatorial optimization problems related to automobile production were used as n combinatorial optimization problems. Parameter search was performed using the following two methods.
[0122] (Method 1) A method for selecting questions to be evaluated using only trial difficulty without using the pre-test difficulty (Method 2) A method for selecting questions to be evaluated using both trial difficulty and preliminary difficulty, as in the data processing device 100 In the experimental example, the trial difficulty is the time from the start time to the last update time obtained by running a solution search for 60 seconds using default parameter values (for example, t2-t0 in Figure 1). The ex-ante difficulty used in Method 2 in the experimental example is the number of state variables (number of bits) included in the energy function. The ex-ante difficulty was calculated for multiple combinatorial optimization problems whose last update times differed by within 1 second. For these combinatorial optimization problems, the ex-ante difficulty was used as the difficulty for selecting targets. The number of problems to be evaluated (N) was 10.
[0123] In method 1, the top 10 problems in terms of trial difficulty among 1,700 combinatorial optimization problems were selected as the problems to be evaluated. In method 2, the top 10 problems in terms of target selection difficulty obtained using the trial difficulty and pre-trial difficulty of 1,700 combinatorial optimization problems were selected as the problems to be evaluated.
[0124] Parameter search was performed for 10 evaluation problems selected for each method. Then, using the obtained parameter values, a 10-second solution search was performed for the above 1,700 combinatorial optimization problems. The following results were obtained for each method.
[0125] Method 1: The total minimum energy obtained in searching for solutions to 1,700 problems = 58,541 Method 2: The total minimum energy obtained in searching for solutions to 1,700 problems = 53,324 When a similar solution search was performed using the default parameter values, the minimum total energy was 95953. Therefore, in method 1, the total energy value is 39% lower than when the default parameter values are used. In addition, in method 2, the total energy value is 8.9% lower than method 1.
[0126] Therefore, it was confirmed that by using both the trial difficulty and the pre-difficulty, more versatile parameter values (useful for 1,700 combinatorial optimization problems) could be obtained. The information processing of the first embodiment can be realized by causing the processing unit 12 to execute a program. The information processing of the second embodiment can be realized by causing the processor 101 to execute a program. The program can be recorded in a computer-readable recording medium 106a.
[0127] For example, the program can be distributed by distributing the recording medium 106a on which the program is recorded. The program may also be stored in another computer and distributed via a network. The computer may store (install) the program recorded in the recording medium 106a or received from another computer in a storage device such as the RAM 102 or HDD 103, and read and execute the program from the storage device.
[0128] While one aspect of the program, data processing method, 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]
[0129] 10 Data Processing Device 11 Storage section 12 Processing section
Claims
1. determining a first difficulty level for each of the plurality of combinatorial optimization problems using a result of a first solution search for the plurality of combinatorial optimization problems; determining a second difficulty level for each of the plurality of combinatorial optimization problems or for a part of the plurality of combinatorial optimization problems, using a problem scale, a type of constraint condition, or the number of the constraint conditions; selecting a plurality of evaluation target problems from the plurality of combinatorial optimization problems in order of a third difficulty level obtained based on the first difficulty level and the second difficulty level; a process of calculating an evaluation value of a parameter of a solution search based on a result of a second solution search using the candidate value of the parameter for the plurality of problems to be evaluated, the process being performed a plurality of times while changing the candidate value, and determining a value of the parameter based on the evaluation value; A program that causes a computer to carry out processing.
2. the plurality of combinatorial optimization problems are narrowed down to the part of combinatorial optimization problems based on the first difficulty level; The second difficulty level is determined for the part of the combinatorial optimization problems. The program according to claim 1.
3. the part of combinatorial optimization problems is a predetermined number of combinatorial optimization problems before and after a combinatorial optimization problem that corresponds to the number of problems to be evaluated, counting in order of difficulty from a combinatorial optimization problem with the highest first difficulty among the plurality of combinatorial optimization problems, The second difficulty level is used as the third difficulty level of the predetermined number of combinatorial optimization problems. The program according to claim 1.
4. the first difficulty level is determined using a time from a start time of the first solution search to a last update time at which values of the evaluation functions of each of the plurality of combinatorial optimization problems are last updated in the first solution search; the portion of combinatorial optimization problems is a number of first combinatorial optimization problems among the plurality of combinatorial optimization problems, the last update times of which are within a predetermined time from the end time of the first solution search, the number of first combinatorial optimization problems being greater than the number of problems among the plurality of problems to be evaluated, The second difficulty level is used as the third difficulty level of the plurality of first combinatorial optimization problems. The program according to claim 1.
5. the part of combinatorial optimization problems are a number of second combinatorial optimization problems selected from the plurality of combinatorial optimization problems in order of difficulty, starting from the combinatorial optimization problem with the highest first difficulty, the number of problems being equal to the number obtained by multiplying the number of problems in the plurality of evaluation target problems by a predetermined value, The second difficulty level is used as the third difficulty level of the plurality of second combinatorial optimization problems. The program according to claim 1.
6. The program according to claim 1 , wherein the first difficulty level is determined based on an update history of values of evaluation functions of each of the plurality of combinatorial optimization problems in the first solution search.
7. 2. The program according to claim 1, further comprising: setting, in an Ising machine, values of the parameters determined based on the evaluation value and problem information of the plurality of combinatorial optimization problems; and causing the Ising machine to perform a third solution search for the plurality of combinatorial optimization problems.
8. a storage unit that stores results of a first solution search for a plurality of combinatorial optimization problems; a processing unit that determines a first level of difficulty for each of the plurality of combinatorial optimization problems using a result of the first solution search, determines a second level of difficulty for each of the plurality of combinatorial optimization problems, or for some of the plurality of combinatorial optimization problems, using a problem scale, a type of constraint condition, or the number of the constraint conditions, selects a plurality of evaluation target problems from the plurality of combinatorial optimization problems in descending order of a third difficulty level obtained based on the first difficulty level and the second difficulty level, calculates an evaluation value of the candidate value for the plurality of evaluation target problems based on a result of a second solution search using candidate values of parameters of a solution search, multiple times by changing the candidate values, and determines values of the parameters based on the evaluation value; A data processing device having:
9. The computer determining a first difficulty level for each of the plurality of combinatorial optimization problems using a result of a first solution search for the plurality of combinatorial optimization problems; determining a second difficulty level for each of the plurality of combinatorial optimization problems or for a part of the plurality of combinatorial optimization problems, using a problem scale, a type of constraint condition, or the number of the constraint conditions; selecting a plurality of evaluation target problems from the plurality of combinatorial optimization problems in order of a third difficulty level obtained based on the first difficulty level and the second difficulty level; a process of calculating an evaluation value of a parameter of a solution search based on a result of a second solution search using the candidate value of the parameter for the plurality of problems to be evaluated, the process being performed a plurality of times while changing the candidate value, and determining a value of the parameter based on the evaluation value; Data processing methods.
Citation Information
Patent Citations
Information processing apparatus, information processing method, and program
JP2023079015A