Program, data processing apparatus, and data processing method

By determining selection probabilities for higher-level solutions and generating initial solutions through path recombination, the method addresses the limitations of conventional path recombination methods, enabling efficient exploration of a wide search space and improving solution-finding performance.

JP2026032447APending Publication Date: 2026-02-26FUJITSU LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024135013
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-08-13
Publication Date
2026-02-26

AI Technical Summary

Technical Problem

Conventional path recombination methods for combinatorial optimization problems are limited by their dependence on the best solution, hindering exploration of a wide search space and inefficiently exploring search spaces where good solutions may be found.

Method used

A program and data processing device that determines selection probabilities for higher-level solutions based on their evaluation function values, selects a first and second solution, and generates a third solution using path recombination, allowing for a more diverse initial solution.

Benefits of technology

This approach enables efficient search across a wide search space, improving solution-finding performance by diversifying initial solutions and emphasizing the best solution while allowing other solutions to be selected probabilistically.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026032447000001_ABST
    Figure 2026032447000001_ABST
Patent Text Reader

Abstract

To efficiently search a solution in a wide search space.SOLUTION: The processing unit 12 determines a plurality of upper solutions from a plurality of solutions of the combinatorial optimization problem stored in the storage unit 11 based on an evaluation function value of each of the plurality of solutions, determines, for each of the plurality of upper solutions, a selection probability such that an upper solution having an evaluation function value closer to a highest solution among the plurality of upper solutions has a higher probability of being selected, and selects a first solution from the plurality of upper solutions according to the selection probability. A second solution different from the first solution is selected from the plurality of solutions, a third solution is generated by a path recombination method using the selected first and second solutions, and the solution search of the combination optimization problem is executed with the third solution as an initial solution.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a program, a data processing device, and a data processing method. [Background technology]

[0002] In a solution search for a combinatorial optimization problem, a method called Path Relinking is sometimes used to generate a new solution from multiple provisional solutions held in a solution pool (see, for example, Non-Patent Documents 1 and 2). The newly generated solution is used as the initial solution for further solution searches.

[0003] In a typical path recombination method, the best solution (the solution with the best evaluation function value) is selected from multiple solutions held in a solution pool, another solution is randomly selected from the remaining solutions, and an initial solution is generated using both selected solutions. By generating an initial solution using the best solution, an initial solution similar to the best solution can be obtained.

[0004] When searching for a solution to a combinatorial optimization problem with constraints, there is a method of temporarily relaxing the constraints during the search in order to diversify the group of solution candidates (see, for example, Patent Document 1). [Prior art documents] [Patent documents]

[0005] [Patent Document 1] International Publication No. 2020 / 235649 [Non-patent literature]

[0006] [Non-Patent Document 1] F. Glover, “Tabu search and adaptive memory programming - Advances, applications and challenges”, In RS Barr, RV Helgason, and JL Kennington, editors, Interfaces in Computer Science and Operations Research, Kluwer, 1996, pages 1-75 [Non-patent document 2] Y. Wang et al, “Path relinking for unconstrained binary quadratic programming”, European Journal of Operational Research 223, 2012, pp.595-604 Summary of the Invention [Problem to be solved by the invention]

[0007] In the conventional path recombination method, which generates an initial solution using the best solution, the initial solution is highly dependent on the best solution, making it difficult to generate an initial solution that is significantly different from the best solution, which hinders the exploration of a wide search space. Furthermore, if two solutions from a solution pool are randomly selected to generate an initial solution using the path recombination method in order to expand the search space, the search space where a good solution may be obtained is explored equally with other search spaces, which is inefficient.

[0008] In one aspect, the present invention aims to efficiently search a wide search space for a solution. [Means for solving the problem]

[0009] In one embodiment, a program is provided that causes a computer to execute the following processes: determine multiple higher-level solutions from multiple solutions of a combinatorial optimization problem stored in a storage unit based on respective evaluation function values ​​of the multiple solutions; determine a selection probability for each of the multiple higher-level solutions such that a higher-level solution having an evaluation function value closer to a top solution among the multiple higher-level solutions is more likely to be selected; select a first solution from the multiple higher-level solutions according to the selection probability; select a second solution from the multiple solutions that is different from the first solution; generate a third solution by a path recombination method using the selected first solution and second solution; and perform a solution search for the combinatorial optimization problem using the third solution as an initial solution.

[0010] Also provided in one embodiment is a data processing device. Also provided in one embodiment is a data processing method. [Effects of the Invention]

[0011] On the one hand, it allows for efficient solution search across a wide search space. [Brief explanation of the drawings]

[0012] [Figure 1] FIG. 1 illustrates an example of a data processing device according to a first embodiment. [Figure 2] FIG. 10 illustrates an example of hardware of a data processing device according to a second embodiment. [Figure 3] FIG. 2 is a block diagram illustrating an example of functions of a data processing device. [Figure 4] 10 is a flowchart showing an example of a processing procedure for solution search by a data processing device. [Figure 5] 10 is a flowchart illustrating a processing procedure of an example of an initial solution generation process. [Figure 6] FIG. 10 is a diagram illustrating an example of determining a candidate solution. [Figure 7] FIG. 10 is a diagram illustrating an example of generating a hash value. [Figure 8] 10A and 10B are diagrams illustrating examples of calculation of dk and f(dk) and examples of normalization. [Figure 9]FIG. 10 is a diagram illustrating an example of selection of a solution A. [Figure 10] FIG. 10 is a diagram illustrating an example of selection of a solution B. [Figure 11] FIG. 10 is a diagram illustrating an example of generating a solution C. [Figure 12] 10 is a flowchart showing a processing procedure of an example of an initial solution generating process in a modified example. [Figure 13] FIG. 10 is a diagram illustrating an example of variation in the number K of candidate solutions. [Figure 14] FIG. 1 is a diagram illustrating an example of an experiment for searching for a solution to a combinatorial optimization problem. [Figure 15] 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. FIG. 1 illustrates an example of a data processing device according to a first embodiment. The data processing device 10 of the first embodiment searches for a solution to a combinatorial optimization problem and generates an initial solution using a path recombination method. The data processing device 10 may be a client device or a server device. The data processing device 10 may also 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 an HDD (Hard Disk Drive) or a flash memory. Moreover, the storage unit 11 may include both a volatile semiconductor memory and a non-volatile storage.

[0015] The storage unit 11 stores a plurality of solutions to a combinatorial optimization problem. In the example of Fig. 1, the plurality of solutions are held in a solution pool 11a constructed in the storage unit 11. The solution pool 11a may also hold evaluation function values ​​of the solutions together with the solutions.

[0016] Furthermore, the storage unit 11 may store problem information for a combinatorial optimization problem. A combinatorial optimization problem can be formulated using an Ising-type evaluation function. For example, the combinatorial optimization problem can be replaced with a problem of minimizing the value of the Ising-type evaluation function.

[0017] The Ising-type evaluation function is expressed, for example, by the following equation (1).

[0018]

number

[0019] The state vector x has multiple state variables as elements and represents the state of the Ising model. Equation (1) is an evaluation function formulated in the QUBO (Quadratic Unconstrained Binary Optimization) format. For problems that maximize the evaluation function value, simply reverse the sign of the evaluation function. The solution to a combinatorial optimization problem can be expressed as the state vector x.

[0020] The first term on the right side of equation (1) is the sum of the values ​​of the two state variables and the weighting coefficients for all combinations of two state variables that can be selected from all state variables, without omissions or duplications. The subscripts i and j are the indexes of the state variables. i is the i-th state variable. x j is the jth state variable. W ij is the weighting coefficient that indicates the strength of the connection between the i-th state variable and the j-th state variable. ij =W ji and W ii =0.

[0021] The second term on the right side of equation (1) is the sum of the products of the biases of all state variables and the values ​​of the state variables. i indicates the bias for the i-th state variable. The problem information for a combinatorial optimization problem includes the weighting coefficients and biases included in the evaluation function as described above.

[0022] The storage unit 11 may further store calculation conditions for the solution search. As a solution search method, for example, a local search method such as a simulated annealing (SA) method, a replica exchange method, or a tabu search method can be applied. When a solution search is performed using SA, the calculation conditions include, for example, a maximum value of a temperature parameter, a temperature parameter change schedule, a minimum value of a temperature parameter, and a search termination condition.

[0023] The storage unit 11 may also store the number (K) of higher-order solutions, which will be described later, used in the process of generating an initial solution by the path recombination method. 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." The processing unit 12 may also include a processor and an electronic circuit such as an ASIC or an FPGA.

[0024] The processing unit 12 searches for a solution to the combinatorial optimization problem. As described above, local search methods such as SA, replica exchange, and tabu search can be applied as a solution search method. Furthermore, the processing unit 12 generates an initial solution using a path recombination method. However, unlike conventional path recombination methods, the processing unit 12 generates the initial solution by the following process.

[0025] 1 shows an example of the flow of processing performed by the processing unit 12. In the following explanation, it is assumed that a solution search has been performed multiple times (hereinafter referred to as N times) in advance, and N provisional solutions (solution 1 to solution N) have been stored in the solution pool 11a.

[0026] Step S1: The processing unit 12 determines multiple top solutions from the N solutions of the combinatorial optimization problem stored in the storage unit 11 based on the evaluation function values ​​of the N solutions. The top solutions are determined preferentially from the solution with the best evaluation function value. In the case of a problem of minimizing the evaluation function value, the top solutions are determined preferentially from the N solutions with the smallest evaluation function value.

[0027] The number of top solutions to be determined can be set in advance. In the example of Fig. 1, K (K ≥ 2) top solutions are determined. When there are multiple solutions with the same evaluation function value, the processing unit 12 may rank them based on a hash value that can be generated from the state variables of the solutions (see Fig. 7 described later).

[0028] Step S2: The processing unit 12 determines a selection probability for each of the K top solutions, such that the closer a top solution has an evaluation function value to the top solution, the higher the probability of it being selected. For example, the processing unit 12 determines the selection probability as follows:

[0029] First, the processing unit 12 calculates the difference between the evaluation function value of the top solution and the evaluation function values ​​of each of the K top solutions. Then, the processing unit 12 inputs the calculated difference into a probability density function to calculate the probability density of each of the K top solutions. As the probability density function, for example, a Gaussian distribution as shown in the following formula (2) can be used.

[0030]

number

[0031] In equation (2), d k is the difference between the evaluation function value of the highest-ranked solution among the K top-ranked solutions and the evaluation function value of the kth top-ranked solution. kis the standard deviation of the K top solutions, and is determined based on the K top solutions. Furthermore, by setting μ=0, the processing unit 12 can make the probability density higher for top solutions that are closer to the evaluation function value of the top solution.

[0032] As the probability density function, for example, a Laplace distribution as shown in the following equation (3) can be used.

[0033]

number

[0034] In equation (3), b is a predetermined scale parameter. By setting μ=0, the processing unit 12 can make the probability density of a higher-rank solution larger as the higher-rank solution is closer to the evaluation function value of the top-rank solution.

[0035] The processing unit 12 normalizes the probability densities so that the sum of the calculated K probability densities becomes 1, and sets the normalized probability as the selection probability for each top solution. By using such selection probabilities, it becomes possible to select any one of the K top solutions. Note that if the K top solutions all have the same evaluation function value, the processing unit 12 may set the selection probability for each of the K top solutions to 1 / K.

[0036] The method for determining the selection probabilities is not limited to the above example. For example, when K=4, the selection probability of the top solution may be set to 0.4, the selection probability of the second top solution to 0.3, the selection probability of the third top solution to 0.2, and the selection probability of the lowest top solution to 0.1.

[0037] Step S3: The processing unit 12 selects one of the two solutions (hereinafter referred to as solution A) to be used for generating an initial solution by the path recombination method from the K top solutions according to the determined selection probability.

[0038] Step S4: The processing unit 12 selects a solution (hereinafter referred to as solution B) different from solution A from the N solutions. For example, the processing unit 12 randomly selects one solution B different from solution A from the N solutions. The processing unit 12 may select solution B according to a predetermined rule, or may calculate the above-mentioned selection probability for each of the N solutions and select solution B different from solution A according to the selection probability.

[0039] Step S5: The processing unit 12 generates a new solution C by a path recombination method using the selected solutions A and B. In the path recombination method, the processing unit 12 generates solution C by replacing some of the state variables of solution A that have different values ​​from those of solution B with the values ​​of the state variables of solution B, based on the values ​​of the state variables of solution A. For example, if the state variable x i ,x j ,x k ,x l If the values ​​of x and x are different, the processing unit 12 i ,x j Regarding x of solution A i ,x j The value of x in solution B i ,x j A more specific example of generating the solution C will be described later (see FIG. 11).

[0040] Step S6: The processing unit 12 performs a solution search for the combinatorial optimization problem using the solution C as the initial solution. Although not shown in FIG. 1, after the processing of step S6, it is determined whether or not a rewrite condition for the solution pool 11a is satisfied. If it is determined that the rewrite condition is satisfied, the solution pool 11a is rewritten. For example, if the solution obtained by the solution search is a better solution than the worst solution among the N solutions stored in the storage unit 11, the processing unit 12 determines that the rewrite condition is satisfied. At this time, the processing unit 12 rewrites the solution pool 11a by replacing the worst solution with the solution obtained by the current solution search. If the solution obtained by the solution search is a better solution than the best solution (corresponding to the top solution) among the N solutions stored in the storage unit 11, the processing unit 12 may replace the worst solution with the solution obtained by the current solution search.

[0041] The above process is repeated until a predetermined search termination condition is met. When the search termination condition is met, for example, the best solution among the N solutions held in the solution pool 11a is output as the solution search result for the combinatorial optimization problem.

[0042] As described above, the data processing device 10 determines K top solutions from N solutions of a combinatorial optimization problem stored in the storage unit 11 based on the evaluation function values ​​of the N solutions. The data processing device 10 also determines a selection probability for each of the K top solutions, such that a top solution having an evaluation function value closer to the top solution among the K top solutions is more likely to be selected. The data processing device 10 then selects solution A from the K top solutions according to the selection probability, selects solution B different from solution A from the N solutions, and generates solution C by a path recombination method using the selected solutions A and B. The data processing device 10 performs a solution search for the combinatorial optimization problem using solution C as an initial solution. As a result, top solutions other than the best solution are probabilistically selected as solution A, and the initial solution C is less likely to be limited to the vicinity of the best solution. In other words, the initial solution C can be made more diverse. This enables efficient search of a wide search space. As a result, improved solution-finding performance can be expected.

[0043] In addition, the data processing device 10 dynamically adjusts the selection probability according to the difference between the evaluation function value of the top solution and the evaluation function values ​​of each of the K top solutions, thereby placing emphasis on the top solution (best solution) while also allowing other solutions to be selected probabilistically.

[0044] (Second embodiment) Next, a second embodiment will be described. FIG. 2 illustrates an example of hardware of a data processing device according to the second embodiment.

[0045] The data processing device 20 searches for a solution to a combinatorial optimization problem and generates an initial solution using a path recombination method. The data processing device 20 may also be called a computer. The data processing device 20 may be a client device or a server device.

[0046] A combinatorial optimization problem is formulated, for example, by an evaluation function of Equation (1). The data processing device 20 searches for a solution to the combinatorial optimization problem by executing a solution-finding method such as SA or Tabu search based on the evaluation function.

[0047] The data processing device 20 has a processor 21, a RAM 22, a HDD 23, a GPU 24, an input interface 25, a medium reader 26, and a communication interface 27. The above units are connected to a bus. The processor 21 corresponds to the processing unit 12 in the first embodiment. The RAM 22 or the HDD 23 corresponds to the storage unit 11 in the first embodiment.

[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 include multiple processors. A processor that executes one of multiple processes performed by the data processing device 20 may be different from a processor that executes another of the multiple processes. The processor may also be referred to as a processor circuitry. A collection of multiple processors (a 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 processes for searching for a solution to a combinatorial optimization problem and generating an initial solution. 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. 3 is a block diagram illustrating an example of functions of the data processing device. The data processing device 20 includes an input unit 30 , a problem information storage unit 31 , a solution search execution unit 32 , a solution pool 33 , an initial solution generation unit 34 , and an output unit 35 .

[0057] These realize the same functions as the storage unit 11 and processing unit 12 shown in FIG. The problem information storage unit 31 and the solution pool 33 are implemented using storage areas secured in the RAM 22 or the HDD 23. The input unit 30, the solution search execution unit 32, the initial solution generation unit 34, and the output unit 35 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 input unit 30 accepts inputs of problem information for the combinatorial optimization problem, calculation conditions, and the like. The problem information for the combinatorial optimization problem includes, for example, weighting coefficients and biases included in the evaluation function of Equation (1). The input unit 30 may also accept input of the number (K) of top solutions that are candidates for solution A used to generate an initial solution (solution C) using the path recombination method. This information may be input by a user operating the input device 25a, or may be received from another computer via the network 27a.

[0059] The problem information storage unit 31 stores problem information for combinatorial optimization problems. The problem information storage unit 31 may also store other information such as calculation conditions for solution search and the number (K) of top solutions that are candidates for solution A.

[0060] The solution search execution unit 32 executes a solution search based on the problem information of the combinatorial optimization problem and the calculation conditions. For example, a local search method such as a tabu search method, an SA method, or a replica exchange method can be applied as the solution search.

[0061] The solution pool 33 holds a plurality of solutions obtained as a result of a search for a solution to a combinatorial optimization problem. The solution pool 33 may hold the solutions together with evaluation function values ​​of the solutions. The initial solution generating unit 34 uses a plurality of solutions held in the solution pool 33 to generate an initial solution by the path recombination method.

[0062] When the search termination condition is satisfied, the output unit 35 outputs the best solution held in the solution pool 33 as a solution search result for the combinatorial optimization problem. The output unit 35 may, for example, output the calculation result to be displayed on the display 24a, transmit the calculation result to another information processing device via the network 27a, or store the calculation result in an external storage device.

[0063] Next, the processing procedure of the data processing device 20 will be described. (Processing Procedure) FIG. 4 is a flowchart showing an example of a processing procedure for solution search by the data processing device.

[0064] Step S10: The input unit 30 accepts input of problem information for a combinatorial optimization problem. The input problem information is stored in the problem information storage unit 31. Step S11: The initial solution generation unit 34 generates an initial solution by the path recombination method using multiple solutions held in the solution pool 33. An example of the process of generating an initial solution by the path recombination method will be described later (see FIG. 5). However, when multiple solutions are not held in the solution pool 33, the initial solution generation unit 34 generates an initial solution randomly or according to a predetermined rule. The initial solution generation unit 34 may generate an initial solution in which the values ​​of multiple state variables included in the evaluation function are all 1 or all 0.

[0065] Step S12: The solution search execution unit 32 executes a solution search based on the problem information of the combinatorial optimization problem and the calculation conditions. Step S13: The solution search executing unit 32 determines whether or not the rewrite condition for the solution pool 33 is satisfied. For example, if the solution obtained by the solution search is a better solution than the worst solution among the N solutions held in the solution pool 33, the solution search executing unit 32 determines that the rewrite condition is satisfied.

[0066] In addition, in order to prevent an increase in the number of rewrites, the solution search execution unit 32 may determine that the rewrite condition is satisfied if the solution obtained by the solution search is a better solution than the best solution among the N solutions held in the solution pool 33.

[0067] If the solution search executing unit 32 determines that the rewriting condition of the solution pool 33 is satisfied, it performs the process of step S14, and if it determines that the rewriting condition is not satisfied, it performs the process of step S15.

[0068] Step S14: The solution search executing unit 32 rewrites the solution pool 33 by replacing the worst solution among the N solutions held in the solution pool 33 with the solution obtained in the current solution search.

[0069] Step S15: The solution search execution unit 32 determines whether the search termination condition is satisfied. For example, the solution search execution unit 32 determines that the search termination condition is satisfied when the number of solution searches (number of trials) reaches a predetermined upper limit or when a predetermined time has elapsed. If it is determined that the search termination condition is satisfied, the process of step S16 is performed, and if it is determined that the search termination condition is not satisfied, the process from step S11 is repeated.

[0070] Step S16: When the search termination condition is satisfied, the output unit 35 outputs the best solution held in the solution pool 33 as the solution search result for the combinatorial optimization problem, and the solution search process ends.

[0071] FIG. 5 is a flowchart illustrating an example of a processing procedure for the initial solution generation processing. Step S20: The initial solution generation unit 34 determines K candidate solutions for solution A from the N solutions held in the solution pool 33. The K candidate solutions for solution A correspond to the top K solutions (top solutions) when the N solutions are arranged in order of superiority of the evaluation function value.

[0072] FIG. 6 is a diagram illustrating an example of determining a candidate solution. In the case of a problem of minimizing an evaluation function value, candidate solutions are determined preferentially starting from the smallest evaluation function value, as shown in Fig. 6. Fig. 6 shows an example in which K=3 candidate solutions are determined from N solutions 1 to N held in the solution pool 33 in ascending order of evaluation function value.

[0073] When there are multiple solutions with the same evaluation function value, the initial solution generating section 34 may rank them based on a hash value that can be generated from the state variables of the solutions. FIG. 7 is a diagram illustrating an example of generating a hash value.

[0074] In the example of Fig. 7, the evaluation function values ​​of solutions a and b are both the same, -2000. Therefore, the initial solution generation unit 34 generates a hash value from the values ​​of the state variables x1 to x6 of solutions a and b. This is because there are cases where the solutions are different (the values ​​of the state variables are different) even if the evaluation function values ​​are the same. In the example of Fig. 7, the values ​​of x5 and x6 are different between solutions a and b.

[0075] The initial solution generation unit 34 generates a hash value using, for example, a predetermined checksum algorithm. In the example of Fig. 7, the hash value is generated using the Adler-32 checksum algorithm. The initial solution generation unit 34 determines that the smaller the hash value, the higher the solution. In the example of Fig. 7, solution a is a higher-ranking solution than solution b.

[0076] This makes it possible to determine K solution candidates (top solutions) even if there are multiple solutions with the same evaluation function value. The above ranking method when there are multiple solutions with the same evaluation function value is an example, and is not limited to this example. Solutions with the same evaluation function value may also be ranked randomly.

[0077] After determining K candidate solutions for solution A, the following process is performed. Step S21: The initial solution generating unit 34 calculates the difference d between the evaluation function value of the best solution (top solution) among the K candidate solutions (top solutions) and the evaluation function value of each of the K candidate solutions. k Calculate.

[0078] Step S22: The initial solution generating unit 34 calculates d k is input to a probability density function (Gaussian or Laplace distribution) such as shown in equation (2) or equation (3), and the probability density f(d k ) is calculated. When the probability density functions of equations (2) and (3) are used, μ=0 is set.

[0079] Step S23: The initial solution generating unit 34 calculates the K probability densities f(d k ) to obtain the selection probability P k The initial solution generating unit 34 determines, for example, K f(d k ) so that the sum of f(d k ) is normalized and used as the P k When the K top solutions all have the same evaluation function value, the initial solution generating unit 34 sets the selection probability of each of the K top solutions to 1 / K.

[0080] Figure 8 shows the k and f(d k ) and an example of normalization. As shown in Figure 6, when three solutions, solution 1, solution 2, and solution 3, are determined as candidate solutions for solution A, the d calculated for solution 1, which is the top solution, is k (=d1) is 0. Also, the d calculated for solution 2 k (=d2) is 50, and the calculated d for solution 3 k (=d3) is 100.

[0081] When the probability density function shown in equation (2) is used, f(d k )(=f(d1)) is approximately 0.00977. Also, the f(d k )(=f(d2)) is approximately 0.00461, and the calculated f(d k )(=f(d3)) is approximately 0.00048.

[0082] In addition, P for solution 1 calculated by normalizing f(d1) to f(d3) k (=P1) is approximately 0.657. Also, P for solution 2 k (=P2) is approximately 0.310, and P for solution 3 k (=P3) is approximately 0.032.

[0083] As mentioned above, P k After this is determined, the following process is performed. Step S24: The initial solution generating unit 34 calculates the determined P k According to the above, solution A is selected from the K top solutions.

[0084] FIG. 9 is a diagram showing an example of selection of solution A. As shown in Figure 8, P of Solution 1 k (=P1) is approximately 0.657, and P in solution 2 k (=P2) is approximately 0.310, and P in Solution 3 k (=P3) is approximately 0.032. The initial solution generation unit 34 probabilistically selects one of solution 1, solution 2, or solution 3 as solution A according to P1 to P3. The top solution (best solution) is solution 1, but in the example of FIG. 9, solution 2 is selected as solution A.

[0085] Step S25: The initial solution generating unit 34 selects a solution B different from the solution A from the N solutions in the solution pool 33. FIG. 10 is a diagram showing an example of selection of solution B.

[0086] Of the N solutions 1 to N, excluding solution 2 selected as solution A, one solution is randomly selected as solution B. In the example of FIG. 10, solution 4 is selected as solution B. The initial solution generating unit 34 may select a solution B different from the solution A according to a predetermined rule, or may generate the above-mentioned P k P k According to this, a solution B different from solution A may be selected.

[0087] Step S26: The initial solution generating unit 34 generates a new solution C as an initial solution by using the selected solution A and solution B through the path recombination method. FIG. 11 is a diagram illustrating an example of generating a solution C.

[0088] The initial solution generating unit 34 generates a solution C by replacing some of the state variables whose values ​​are different from those of solution B with the values ​​of the state variables of solution B, using the values ​​of the state variables of solution A as a base. In the example of Fig. 11, the values ​​of the state variables x3, x4, x7, and x8 are different between solution A and solution B. The initial solution generation unit 34 generates solution C by replacing the values ​​of x3 and x4 of solution A, which are part of these state variables, with the values ​​of x3 and x4 of solution B. Note that the state variables to be replaced and the number of them are not limited to those in the above example.

[0089] As described above, the data processing device 20 determines K top solutions (candidate solutions for solution A) from the N solutions of the combinatorial optimization problem stored in the solution pool 33 based on the evaluation function values ​​of the N solutions. Furthermore, the data processing device 20 determines a selection probability (P k ) is determined. Then, the data processing device 20 determines P kAccording to the above, solution A is selected from the K top solutions, solution B different from solution A is selected from the N solutions, and solution C is generated by a path recombination method using the selected solutions A and B. The data processing device 20 performs a solution search for the combinatorial optimization problem using solution C as the initial solution. This makes it possible to efficiently search a wide search space for the same reasons as the data processing device 10 of the first embodiment. As a result, improvement in solution-finding performance can be expected.

[0090] 8, the data processing device 20 calculates the difference d between the evaluation function value of the top solution and each of the K top solutions. k Depending on the k This dynamically adjusts the algorithm, so that the top solution (best solution) is emphasized, while other solutions can also be selected probabilistically.

[0091] (Variation) In the above example, the number of determined higher-level solutions (candidate solutions for solution A) is fixed at K. However, K may be a variable value.

[0092] FIG. 12 is a flowchart illustrating an example of a processing procedure for initial solution generation processing in the modified example. In the initial solution generation process in the modified example, unlike the process of step S20 in which K candidate solutions for solution A shown in FIG. 5 are determined, solutions whose evaluation function values ​​are equal to or less than a threshold are determined as candidate solutions (superior solutions) for solution A (step S30). The threshold is set based on an evaluation function value for determining a solution as a good solution, for example, based on execution results of similar instances in the past. A minimum number K may be set to avoid a situation in which no candidate solutions are selected when there are no solutions equal to or less than the threshold. Note that in the problem of maximizing the evaluation function value, solutions whose evaluation function values ​​are equal to or greater than a threshold may be determined as candidate solutions for solution A in the process of step S30.

[0093] The processing in steps S31 to S36 is the same as the processing in steps S21 to S26 shown in FIG. Due to the processing in step S30, the number K of candidate solutions may change each time the solution pool 33 is rewritten in the processing in step S14 of FIG.

[0094] 13 is a diagram showing an example of variation in the number of candidate solutions K. Here, the minimum number of K is 1, and the threshold value of the evaluation function value is −1900. As shown in Figure 13, when the solution pool 33 is in the retention state 1, solution 1, which has an evaluation function value of -1000, is the best solution, so there is no solution whose evaluation function value is less than or equal to the threshold value (=-1900). Therefore, K becomes 1, which is the minimum number. When the solution pool 33 is rewritten and the retention state 2 is entered, the evaluation function value of solution 1 is -2000, so there is only one solution whose evaluation function value is less than or equal to the threshold value. Therefore, K becomes 1.

[0095] When the solution pool 33 is further rewritten and reaches retention state 3, there are three solutions whose evaluation function values ​​are below the threshold: solution 1, solution 2, and solution 3. Therefore, K is 3. When the solution pool 33 is further rewritten and reaches retention state 4, there are three solutions whose evaluation function values ​​are below the threshold: solution 1, solution 2, solution 3, and solution 4. Therefore, K is 4.

[0096] As described above, in the initial solution generation process in the modified example, a candidate solution (higher-order solution) for solution A is determined based on the result of comparison with the threshold value of the evaluation function value. As a result, a candidate solution for solution A is determined from among solutions that are likely to be good solutions. By determining solution A using such a candidate solution, a solution search for obtaining a good solution can be performed more efficiently.

[0097] As mentioned above, the processing contents of FIGS. 4, 5, and 12 can be realized by causing the data processing device 20 to execute a program. The program can be recorded on a computer-readable recording medium (e.g., recording medium 26a). Examples of recording media that can be used include magnetic disks, optical disks, magneto-optical disks, and semiconductor memories. Magnetic disks include FDs and HDDs. Optical disks include CDs, CD-R (Recordable) / RW (Rewritable), DVDs, and DVD-R / RWs. The program may be recorded on a portable recording medium and distributed. In this case, the program may be copied from the portable recording medium to another recording medium (e.g., HDD 23) and executed.

[0098] (Experimental example) Figure 14 shows an example of an experiment in which a solution search was performed for a combinatorial optimization problem. Figure 14(A) shows the results of a solution search for the first of two problems (Problem 1) related to IT drug discovery, and Figure 14(B) shows the results of a solution search for the second of two problems (Problem 2) related to IT drug discovery. In Figures 14(A) and (B), the vertical axis represents the average evaluation function value obtained in a solution search using 20 different random number seeds.

[0099] FIG. 14 shows the results of a solution search in which solution A was probabilistically selected from the K=3 top solutions in the process of FIG. 5 to generate an initial solution, as well as the results of a solution search in which the best solution was determined as solution A and an initial solution was generated for comparison. Tabu search was used as the solution search method. If there were multiple solutions with the best evaluation function value, the one with the smallest generated hash value was selected as the best solution, as shown in FIG. 7. The probability density function used was the Gaussian distribution shown in Equation (2). Solution B was also randomly selected from among the solutions stored in the solution pool 33 that were different from solution A.

[0100] As shown in Figures 14(A) and (B), for both problems, the results of the solution search using the process in Figure 5 were found to yield better solutions (solutions with smaller average evaluation function values) than the results of the solution search when the best solution was determined as solution A and an initial solution was generated.

[0101] (Another example of a data processing device) Fig. 15 is a diagram showing another example of a data processing device, in which the same elements as those shown in Fig. 2 are denoted by the same reference numerals.

[0102] 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 (Dynamic RAM) 51b.

[0103] In the data processing device 50, the FPGA 51a and the DRAM 51b execute at least a part of the processing (e.g., solution search processing) of the processing unit 12 and the storage unit 11 shown in Fig. 1, or at least a part of the functions (e.g., functions of the solution search execution unit 32) shown in Fig. 3. In this case, the processing unit 12 and the storage unit 11 shown in Fig. 1, or the functions shown in Fig. 3 are realized by various circuits constructed in the FPGA 51a, memories in the FPGA 51a, or the DRAM 51b.

[0104] There may be multiple accelerator cards 51. 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]

[0105] 10 Data Processing Device 11 Storage section 11a Solution Pool 12 Processing section

Claims

1. determining a plurality of superior solutions from a plurality of solutions of the combinatorial optimization problem stored in a storage unit based on respective evaluation function values ​​of the plurality of solutions; determining a selection probability for each of the plurality of higher-rank solutions, such that a higher-rank solution having an evaluation function value closer to the highest-rank solution among the plurality of higher-rank solutions has a higher probability of being selected; selecting a first solution from the plurality of top solutions according to the selection probability; selecting a second solution from the plurality of solutions, the second solution being different from the first solution; generating a third solution by a path recombination method using the selected first solution and the selected second solution; performing a solution search for the combinatorial optimization problem using the third solution as an initial solution; A program that causes a computer to perform a process.

2. calculating a difference between the evaluation function value of the top solution and each of the evaluation function values ​​of the plurality of top solutions; calculating a probability density for each of the plurality of top solutions based on the difference; determining the selection probability for each of the plurality of top solutions by normalizing the probability density; The program according to claim 1 , which causes the computer to execute a process.

3. The program according to claim 2 , wherein the probability density is calculated according to a Gaussian distribution or a Laplace distribution.

4. The program according to claim 1 , wherein the number of the plurality of top solutions is determined based on a comparison result between the threshold value of the evaluation function value and the evaluation function value of each of the plurality of solutions.

5. 2. The program of claim 1, wherein when determining the plurality of top solutions, if there are two solutions among the plurality of solutions that have the same evaluation function value, the solutions are ranked based on hash values ​​generated based on the values ​​of state variables representing the two solutions.

6. a storage unit that stores a plurality of solutions to a combinatorial optimization problem; a processing unit that determines a plurality of higher-ranking solutions from the plurality of solutions based on respective evaluation function values ​​of the plurality of solutions, determines a selection probability for each of the plurality of higher-ranking solutions such that a higher-ranking solution having an evaluation function value closer to a highest-ranking solution among the plurality of higher-ranking solutions is more likely to be selected, selects a first solution from the plurality of higher-ranking solutions in accordance with the selection probability, selects a second solution different from the first solution from the plurality of solutions, generates a third solution by a path recombination method using the selected first solution and second solution, and performs a solution search for the combinatorial optimization problem using the third solution as an initial solution; A data processing device having:

7. The computer determining a plurality of superior solutions from a plurality of solutions of the combinatorial optimization problem stored in a storage unit based on respective evaluation function values ​​of the plurality of solutions; determining a selection probability for each of the plurality of higher-rank solutions, such that a higher-rank solution having an evaluation function value closer to the highest-rank solution among the plurality of higher-rank solutions has a higher probability of being selected; selecting a first solution from the plurality of top solutions according to the selection probability; selecting a second solution from the plurality of solutions, the second solution being different from the first solution; generating a third solution by a path recombination method using the selected first solution and the selected second solution; performing a solution search for the combinatorial optimization problem using the third solution as an initial solution; Data processing methods.

Citation Information

Patent Citations

  • Coevolutionary combinatorial optimization system and program

    WO2020235649A1