Optimizing equipment, procedures, and methods
By allocating the bits of multiple combinatorial optimization problems to different combinatorial optimization problems in the optimization device and setting the interaction to zero, and using methods such as annealing machines, the problem of long time required to solve multiple combinatorial optimization problems in the prior art is solved, and a fast solution is achieved.
Patent Information
- Application Number
- CN202110089435.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-02-10
- Filing Date
- 2021-01-22
- Publication Date
- 2025-09-19
- Estimated Expiration
- 2041-01-22
AI Technical Summary
Existing technologies require separate and repeated calculations when solving multiple combinatorial optimization problems, resulting in excessively long calculation times and making it difficult to effectively solve them in a short period of time.
By optimizing the device and method, the bits of multiple combinatorial optimization problems are assigned to different combinatorial optimization problems, and the interactions between the bits are set to zero, and the multiple combinatorial optimization problems are solved using methods such as an annealing machine.
Efficiently solve multiple combinatorial optimization problems in a short time without having to repeatedly solve them separately, significantly reducing computation time.
Smart Images

Figure CN113255094B_ABST
Abstract
Description
Technical Field
[0001] The embodiments discussed herein relate to optimization devices, optimization programs, and optimization methods. Background Art
[0002] The problem of finding the optimal combination from a large number of combinations, taking into account various conditions and constraints, is called a combinatorial optimization problem. In recent years, attempts to obtain the optimal answer have been made in various fields of the real world, that is, applying combinatorial optimization problems to solve problems.
[0003] Examples of possible combinatorial optimization problems include molecular similarity search in drug discovery, portfolio optimization in finance, personalized advertising optimization in digital marketing, and warehouse parts placement optimization in factories and logistics.
[0004] However, since the number of combinations of factors in a combinatorial optimization problem increases exponentially as the number of factors to be considered increases, it is difficult to solve practical problems in the real world in a timely manner through conventional computing methods that perform processing sequentially.
[0005] Therefore, a technology that performs calculations by an annealing method using an annealing machine or the like has been proposed (for example, see Patent Document 1) as a technology capable of solving a combinatorial optimization problem at high speed.
[0006] Here, in this conventional technology, when solving multiple combinatorial optimization problems, each combinatorial optimization problem is calculated separately (calculated as a separate job), so that each combinatorial optimization problem is solved separately. For this reason, the conventional technology has the following problems: the combinatorial optimization problems to be solved need to be solved separately and repeatedly, and the calculation time required to solve the multiple combinatorial optimization problems becomes long.
[0007] [Citation List]
[0008] [Patent Document]
[0009] [Patent Document 1] Japanese Patent Publication No. 2019-121137. Summary of the Invention
[0010] [question]
[0011] On the one hand, the object of the present invention is to provide an optimization device, an optimization program, and an optimization method that can effectively solve multiple combinatorial optimization problems in a short time without having to repeatedly solve the problems individually.
[0012] [Solution to the problem]
[0013] In one embodiment, an optimization device includes a solving unit configured to: among a plurality of bits used to solve a plurality of combinatorial optimization problems, assign a plurality of first bits to a first combinatorial optimization problem included in the plurality of combinatorial optimization problems, and assign a plurality of second bits to a second combinatorial optimization problem included in the plurality of combinatorial optimization problems, set an interaction between each of the plurality of first bits and each of the plurality of second bits to zero, and solve the plurality of combinatorial optimization problems.
[0014] In addition, in one embodiment, an optimization program executed by an optimization device includes: among multiple bits used to solve multiple combinatorial optimization problems, assigning multiple first bits to a first combinatorial optimization problem included in the multiple combinatorial optimization problems, and assigning multiple second bits to a second combinatorial optimization problem included in the multiple combinatorial optimization problems, setting the interaction between each of the multiple first bits and each of the multiple second bits to zero, and solving the multiple combinatorial optimization problems.
[0015] In addition, in one embodiment, an optimization method includes: among a plurality of bits used to solve a plurality of combinatorial optimization problems, assigning a plurality of first bits to a first combinatorial optimization problem included in the plurality of combinatorial optimization problems, and assigning a plurality of second bits to a second combinatorial optimization problem included in the plurality of combinatorial optimization problems, setting an interaction between each of the plurality of first bits and each of the plurality of second bits to zero, and solving the plurality of combinatorial optimization problems.
[0016] [Effect]
[0017] In one aspect, the present invention can provide an optimization device, an optimization program, and an optimization method that can effectively solve multiple combinatorial optimization problems in a short period of time without having to repeatedly solve the problems individually. BRIEF DESCRIPTION OF THE DRAWINGS
[0018] Figure 1 is a diagram showing an example of a state in a case where a molecule having a similar structure to a query molecule is searched for by solving a combinatorial optimization problem;
[0019] Figure 2 is a diagram showing an example of a mode of solving three combinatorial optimization problems by minimizing Ising model formulas respectively corresponding to the three combinatorial optimization problems by using an annealing machine in an example of conventional technology;
[0020] Figure 3 is a diagram showing an example of a mode of solving three combinatorial optimization problems by minimizing Ising model expressions corresponding to the three combinatorial optimization problems respectively by using an annealing machine in an example of the technology disclosed in this case;
[0021] Figure 4 is a diagram showing an example of a method for allocating bits to be used for solving an individual combinatorial optimization problem among a plurality of combinatorial optimization problems in an example of the technology disclosed in this case;
[0022] Figure 5 is a diagram showing another example of a method for allocating bits to be used for solving an individual combinatorial optimization problem among a plurality of combinatorial optimization problems in an example of the technology disclosed in this case;
[0023] Figure 6 is a diagram showing another example of a method for allocating bits to be used for solving an individual combinatorial optimization problem among a plurality of combinatorial optimization problems in an example of the technology disclosed in this case;
[0024] Figure 7 is a diagram showing a configuration example of the optimization device disclosed in this case;
[0025] Figure 8 is a diagram showing another configuration example of the optimization device disclosed in this case;
[0026] Figure 9 is a diagram showing another configuration example of the optimization device disclosed in this case;
[0027] Figure 10 is a diagram showing a functional configuration example as an embodiment of the optimization device disclosed in this case;
[0028] Figure 11 is an example of a flow chart for solving multiple combinatorial optimization problems using examples of the techniques disclosed herein;
[0029] Figure 12 is a diagram showing an example of a functional configuration of an annealing machine used in the annealing method;
[0030] Figure 13 is a block diagram showing an example of the circuit level of a transition control unit;
[0031] Figure 14 is a diagram showing an example of an operation flow of a transition control unit;
[0032] Figure 15 1 is a diagram showing an example of the offset in the problem (A1) in the first embodiment;
[0033] Figure 16 1 is a diagram showing an example of the offset in the problem (A2) in the first embodiment;
[0034] Figure 17 1 is a diagram showing an example of offsets to be used to solve problems (A1) and (A2) in Embodiment 1;
[0035] Figure 18 : is a diagram showing an example of weights in question (A1) in embodiment 1;
[0036] Figure 19A : is a diagram showing an example of weights in question (A2) in embodiment 1;
[0037] Figure 19B : is a diagram showing an example of weights in question (A2) in embodiment 1;
[0038] Figure 20A is a diagram showing an example of weights to be used for solving problem (A1) and problem (A2) in embodiment 1;
[0039] Figure 20B is a diagram showing an example of weights to be used for solving problem (A1) and problem (A2) in embodiment 1;
[0040] Figure 21 is a diagram showing conditions and results of Embodiment 1 and Comparative Example 1;
[0041] Figure 22 is a diagram showing an example of a state in which graphs for acetic acid and methyl acetate are obtained;
[0042] Figure 23 is a diagram showing an example of combination in the case where the same elements in molecule A and molecule B are combined and a node of a conflict graph is obtained;
[0043] Figure 24 is a diagram illustrating an example of rules for creating edges in a conflict graph;
[0044] Figure 25 is a diagram showing an example of a conflict graph of molecule A and molecule B;
[0045] Figure 26 is a diagram illustrating an example of a maximum independent set in a conflict graph;
[0046] Figure 27 is a diagram showing an example of a flow in the case of finding a maximum common substructure between molecules A and B by finding a maximum independent set of a conflict graph (by solving a maximum independent set problem);
[0047] Figure 28 is an explanatory diagram for describing an example of a technique for searching for a maximum independent set in a graph having six nodes;
[0048] Figure 29 is an explanatory diagram for describing an example of a technique for searching for a maximum independent set in a graph having six nodes;
[0049] Figure 30is a diagram illustrating an example of a maximum independent set in a conflict graph;
[0050] Figure 31 is a diagram showing an example of an offset and weight arrangement method provided in Embodiment 2;
[0051] Figure 32 is a diagram showing an example of an offset and weight arrangement method set in Comparative Example 2;
[0052] Figure 33 is a diagram showing conditions and results of Embodiment 2 and Comparative Example 2;
[0053] Figure 34 is an example showing an example of a bit state when information of a bit state is obtained as a result of solving a separate combinatorial optimization problem by solving a plurality of combinatorial optimization problems in Embodiment 2;
[0054] Figure 35 is a diagram showing an example of an offset and weight arrangement method provided in Embodiment 3;
[0055] Figure 36 is a diagram showing an example of an offset and weight arrangement method set in Comparative Example 3;
[0056] Figure 37 is a diagram showing the conditions and results of Embodiment 3 and Comparative Example 3;
[0057] Figure 38 is a diagram showing an example of an offset and weight arrangement method provided in Embodiment 4;
[0058] Figure 39 is a diagram showing an example of an offset and weight arrangement method set in Comparative Example 4;
[0059] Figure 40 is a diagram showing conditions and results of Embodiment 4 and Comparative Example 4; and
[0060] Figure 41 : is a diagram showing an example of the relationship when a plurality of combinatorial optimization problems are solved in one embodiment of the technology disclosed in the present case and conventional technology. DETAILED DESCRIPTION
[0061] (Optimize equipment)
[0062] The optimization device disclosed in this case can be a device for optimizing multiple combinations in one aspect. The optimization device disclosed in this case is provided with a solution unit and further includes other units (devices) as needed.
[0063] First, before describing the details of the technology disclosed in this case, a method for solving a combinatorial optimization problem in conventional technology will be described.
[0064] Examples of methods for solving combinatorial optimization problems include methods using a "cost function," which is a function based on conditions and restrictions in the combinatorial optimization problem. Note that a cost function may also be referred to as an objective function, an energy function, a Hamiltonian function, or the like.
[0065] The cost function is a function that takes a minimum value when the combination of variables (parameters) in the cost function becomes the optimal combination in the combinatorial optimization problem. Therefore, the solution to the combinatorial optimization problem can be found by searching for the combination of variables that takes a minimum cost function.
[0066] Here, examples of the method for searching for a combination of variables that minimizes the cost function include a method for solving a combinatorial optimization problem by converting the cost function into a format called an Ising model and minimizing the value of the cost function converted into the Ising model.
[0067] For example, by performing an annealing method (annealing) using an annealing machine or the like, minimization of a cost function converted into an Ising model formula can be performed in a short time. Here, the annealing method is a method similar to a method of causing the crystal structure of a material to converge to an optimal state by heating the material to a high temperature and then gradually cooling the material. In the annealing method, the parameter corresponding to the temperature in the material is gradually reduced from a high state, so that the search range for a solution gradually narrows from a wide range, and the state with the lowest energy can be searched.
[0068] Furthermore, an annealing machine refers to an annealing-type computer that performs a basis state search for a cost function represented by an Ising model. Compared to a conventional Neumann computer, this annealing machine can minimize a cost function converted into an Ising model (search for the minimum value of the cost function) in a shorter time, and thus can solve combinatorial optimization problems in a shorter time.
[0069] For example, the following mathematical formula (1) can be used as a cost function for conversion into the Ising model. Note that the following mathematical formula (1) is an Ising model in a quadratic unconstrained binary optimization (QUBO) format.
[0070] [Formula 1]
[0071]
[0072] Note that in the above equation (1), E represents a cost function, wherein minimizing the cost function means solving a combinatorial optimization problem.
[0073] w ij is the coefficient used to weight the i-th element (bit) and the j-th element (bit).
[0074] x i is a binary variable representing that the i-th element (bit) is 0 or 1, and x j is a binary variable representing whether the jth element (bit) is 0 or 1.
[0075] b i It is a numerical value indicating the offset for the i-th element (bit).
[0076] Here, when the cost function of the Ising model (Ising model formula) of the above formula (1) is minimized by an annealing method using an annealer, a corresponding bit is allocated to each "x i Furthermore, when solving a combinatorial optimization problem by minimizing the Ising model formula, the annealer needs to allocate a larger number of bits as the scale of the combinatorial optimization problem (the number of combinations) becomes larger.
[0077] In the above Ising model formula (1), “b i " is an offset term for each bit and is a set of values having the same number as the bits used for calculation. In addition, "w ij " is a coefficient (weight) for weighting bits (weight means the magnitude of interaction between bits), and is a set of numerical values having the same number as the number of combinations of bits used for calculation (the square of the number of bits).
[0078] As described above, when the above Ising model equation (1) is minimized using an annealing machine, the minimum value of the Ising model equation is searched based on the offset and weight using the number of bits (0 or 1) allocated according to the scale of the combinatorial optimization problem. Therefore, in conventional technology, when the above Ising model equation (1) is minimized using an annealing machine, the offset and weight are set for each combinatorial optimization problem to be solved, and calculation by the annealing method is performed.
[0079] Here, when applying combinatorial optimization problems to real-world problems, sometimes a large number of combinatorial optimization problems need to be solved.
[0080] For example, in the case of finding similarities between molecules by solving combinatorial optimization problems in drug discovery, etc., there are some cases where it is necessary to obtain the similarities of various molecules relative to a reference molecule (query molecule). Figure 1As shown, for example, when searching for a molecule having a similar structure to a query molecule known to be effective as a drug, it is necessary to obtain a similarity for each of the query molecule and the search target molecule, wherein the similarity to the query molecule is obtained for the search target molecule. In this case, for example, when searching for a search target molecule similar to the query molecule in a database containing 10,000 molecules, it is necessary to solve a large number (e.g., 10,000) of combinatorial optimization problems to obtain a similarity for each search target molecule.
[0081] When solving multiple combinatorial optimization problems using conventional techniques, as described above, each combinatorial optimization problem is calculated separately (calculated as a separate job), so that each combinatorial optimization problem is solved separately. That is, when solving multiple combinatorial optimization problems using conventional techniques, the first combinatorial optimization problem is solved first, and then the second combinatorial optimization problem is solved after the first combinatorial optimization problem is completed. Therefore, in conventional techniques, when solving multiple combinatorial optimization problems, the combinatorial optimization problems are solved one after another, resulting in a problem in which the computation time required to solve the combinatorial optimization problems increases depending on the number of combinatorial optimization problems to be solved.
[0082] As an example of conventional technology, consider the case where three combinatorial optimization problems are solved by minimizing the Ising model formulas corresponding to the three combinatorial optimization problems, respectively, using an annealing machine. Figure 2 In Figure 2 In the example of , the operation (1) for solving the problem (1) is a combinatorial optimization problem using two bits (2 digits), the offset is a set of two numerical values, and the weight is a set of four numerical values. The operation (2) for solving the problem (2) is a combinatorial optimization problem using four bits, the offset is a set of four numerical values, and the weight is a set of sixteen numerical values. Similar to the problem (1), the operation (3) for solving the problem (3) is a combinatorial optimization problem using two bits, the offset is a set of two numerical values, and the weight is a set of four numerical values.
[0083] In addition, Figure 2 In the example, the computation time required to solve each of Problems (1), (2), and (3) is one second.
[0084] exist Figure 2 In the example, problem (1) is solved first, problem (2) is solved after problem (1) is completed, and then problem (3) is solved after problem (2) is completed. Therefore, in Figure 2 In the example shown, the computation time required to solve Problem (1), Problem (2), and Problem (3) is a minimum of three seconds.
[0085] exist Figure 2In the example shown, the computation time required to solve multiple combinatorial optimization problems increases in proportion to the number of combinatorial optimization problems to be solved. Therefore, in conventional techniques, for example, when solving N combinatorial optimization problems that each require one second to solve, a total of N seconds is required for the shortest computation time.
[0086] As described above, in conventional technology, combinatorial optimization problems need to be solved individually and repeatedly according to the number of combinatorial optimization problems to be solved, the calculation time required for solving the problems becomes long, and multiple combinatorial optimization problems cannot be effectively solved in a short time.
[0087] Therefore, the present inventors have diligently researched optimization devices and the like that can efficiently solve multiple combinatorial optimization problems in a short period of time without having to repeatedly solve the problems individually, and have made the following discovery. Specifically, the present inventors have discovered that multiple combinatorial optimization problems can be solved in a short period of time without having to repeatedly solve the problems individually, using an optimization device comprising a solving unit configured to: assign, among a plurality of bits for solving the multiple combinatorial optimization problems, a plurality of first bits to a first combinatorial optimization problem included in the multiple combinatorial optimization problems, assign a plurality of second bits to a second combinatorial optimization problem included in the multiple combinatorial optimization problems, set the interaction between each of the plurality of first bits and each of the plurality of second bits to zero, and solve the multiple combinatorial optimization problems. The technology disclosed in this case is based on this discovery.
[0088] Here, we will refer to Figure 3 An example of the technology disclosed in this case is described.
[0089] exist Figure 3 In the example shown, with Figure 2 The example shown similarly considers the case of using an annealing machine to solve three combinatorial optimization problems. Figure 3 In the example shown, problem (1) is a problem using two bits, problem (2) is a problem using four bits, and problem (3) is a problem using two bits, Figure 2 The examples shown are similar.
[0090] In the example of the technology disclosed in this case, first, bits are prepared for solving the three combinatorial optimization problems. The number of bits to be prepared (e.g., the number of bits of the annealer) is equal to or greater than the total number of bits required to solve each of the combinatorial optimization problems.
[0091] exist Figure 3In the example shown, the first and second bits of the prepared bits are used as bits for solving problem (1), the third to sixth bits are used as bits for solving problem (2), and the seventh and eighth bits are used as bits for solving problem (3). As described above, in the example of the technology disclosed in this case, bits to be used for solving a single combinatorial optimization problem among a plurality of combinatorial optimization problems are allocated. That is, in the example of the technology disclosed in this case, a plurality of first bits of a plurality of bits for solving a plurality of combinatorial optimization problems are allocated to a first combinatorial optimization problem included in the plurality of combinatorial optimization problems. Furthermore, in the example of the technology disclosed in this case, a plurality of second bits of a plurality of bits for solving a plurality of combinatorial optimization problems are allocated to a second combinatorial optimization problem included in the plurality of combinatorial optimization problems.
[0092] Then, in the example of the technology disclosed in this case, for each of the allocated bits, the value corresponding to “b i "The corresponding offset value. Figure 3 In the example shown, the first and second offsets are used as offsets for solving problem (1), the third to sixth offsets are used as offsets for solving problem (2), and the seventh and eighth offsets are used as offsets for solving problem (3). Note that in Figure 3 , the offset to be used to solve problem (1), the offset to be used to solve problem (2), and the offset to be used to solve problem (3) are represented by the shading of the offset boxes.
[0093] In the example of the technology disclosed in this case, for each combination of the allocated bits, the “w ij " corresponds to the coefficient (weight) value used to perform weighting. Weight means the interaction between the assigned bits.
[0094] exist Figure 3 In the example shown, the weight corresponding to the combination of the first and second digits is the weight to be used for solving problem (1), and the weight corresponding to the combination of the third to sixth digits is the weight to be used for solving problem (2). Similarly, in Figure 3 In the example shown, the weight corresponding to the combination of the seventh and eighth bits is used as the weight for solving problem (3). Figure 3 , the weight to be used to solve problem (1), the weight to be used to solve problem (2), and the weight to be used to solve problem (3) are represented by the shading of the weight boxes.
[0095] In addition, Figure 3 In the example shown, the weights between the bits to be used to solve problem (1) and the bits to be used to solve problems (2) and (3) are set to zero (0). Figure 3In the example shown, the weights between the bits to be used to solve problem (2) and the bits to be used to solve problems (1) and (3) are set to zero (0). Similarly, in Figure 3 In the example shown, the weights between the bits to be used to solve problem (3) and the bits to be used to solve problems (1) and (2) are set to zero (0). Figure 3 In the illustrated example, regarding three combinatorial optimization problems, weights between bits to be used for solving combinatorial optimization problems different from each other (problem (1) to problem (3)) are set to zero.
[0096] As described above, in an example of the technology disclosed in this case, the interactions between the bits used to solve different combinatorial optimization problems among the multiple combinatorial optimization problems are set to zero. In other words, in one example of the technology disclosed in this case, the interactions between each of the multiple first bits and each of the multiple second bits are set to zero. In this example of the technology disclosed in this case, the above configuration allows the different combinatorial optimization problems among the multiple combinatorial optimization problems to be correctly solved.
[0097] In addition, Figure 3 In the example shown, three combinatorial optimization problems can be solved collectively (as one job).
[0098] Here, since the Ising model formula is minimized using an annealing machine or the like, the computation time required to solve the combinatorial optimization problem depends on, for example, parameters (e.g., the number of computation iterations (iteration count)) when performing computation using the annealing method or the like. Therefore, when solving combinatorial optimization problems of the same quality, even if the number of bits to be allocated for solving the combinatorial optimization problem increases, the computation time required to solve the combinatorial optimization problem generally becomes the same as the computation time required to solve one combinatorial optimization problem.
[0099] Therefore, assuming that the computation time required to solve each of Problems (1), (2), and (3) is one second, then Figure 3 In the example shown, three combinatorial optimization problems can be solved in a total of one second. Figure 3 In the example shown, Figure 2 The three combinatorial optimization problems are solved in one-third (1 / 3) of the computation time of the conventional technique shown. Therefore, in the example of the technique disclosed in this case, even when solving N combinatorial optimization problems that each require one second to solve, all combinatorial optimization problems can be solved in one second. Therefore, the computation time of this case can be reduced to 1 / N of the computation time of the conventional technique.
[0100] As described above, the technology disclosed in this case can comprehensively and correctly solve multiple combinatorial optimization problems, thereby shortening the computation time required to solve multiple combinatorial optimization problems compared to conventional technologies. In other words, the technology disclosed in this case can solve multiple combinatorial optimization problems in a short period of time without having to repeatedly solve the problems individually.
[0101] Hereinafter, the optimization device as an example of the technology disclosed in this case will be described in more detail. Note that the processing (operation) of solving a combinatorial optimization problem using the optimization device as an example of the technology disclosed in this case can be performed, for example, by a solving unit included in the optimization device.
[0102] <Combinatorial optimization problem>
[0103] In the technology disclosed in the present case, the combinatorial optimization problem to be solved is not particularly limited as long as the combinatorial optimization problem can be expressed by the Ising model, and can be appropriately selected according to the purpose.
[0104] Examples of possible combinatorial optimization problems include: problems such as molecular (compound) similarity search, peptide stable structure search, portfolio optimization in finance, personalized advertising optimization in digital marketing, and warehouse parts placement optimization in factories and logistics.
[0105] Furthermore, the technology disclosed in this case can be particularly advantageously used, for example, when solving a large number of combinatorial optimization problems. For example, as described above, when obtaining similarities between compounds by solving combinatorial optimization problems in drug discovery, etc., there are some cases where it is necessary to calculate the similarity of various compounds relative to a reference compound (query compound).
[0106] In the case of obtaining the similarity between compounds by solving a combinatorial optimization problem using an annealing machine or the like, for example, in calculating the similarity between two compounds to obtain a compound having Figure 1 When measuring the similarity between compounds of the size shown (number of atoms), approximately 20 to 80 bits are allocated. The number of bits that can be processed by the annealing machine (the number of bits that can be prepared) varies depending on the annealing machine type. For example, in the case of approximately 8,000 bits, the similarity between two compounds in more than 100 cases can be calculated in one calculation.
[0107] In the technology disclosed in this case, when solving multiple combinatorial optimization problems, all combinatorial optimization problems to be solved are not necessarily of the same type and may include combinatorial optimization problems of different types. The technology disclosed in this case can collectively (through a single operation) solve, for example, a combinatorial optimization problem for obtaining similarities between chemical compounds and a combinatorial optimization problem for optimizing the placement of warehouse components in a factory.
[0108] As described above, in the technology disclosed in this case, the multiple combinatorial optimization problems may include at least the same type or different types of combinatorial optimization problems. In other words, in the technology disclosed in this case, the first combinatorial optimization problem and the second combinatorial optimization problem may be the same type or different types of combinatorial optimization problems.
[0109] <Preparation of Position>
[0110] In the example of the technology disclosed in this case, bits for solving multiple combinatorial optimization problems are prepared. Here, in the example of the technology disclosed in this case, for example, computer bits for solving combinatorial optimization problems can be used to prepare bits. The computer to be used for solving the combinatorial optimization problem is not particularly limited and can be appropriately selected according to the purpose. A computer (annealing machine) in the annealing method for performing a base state search for a cost function represented by an Ising model is advantageous.
[0111] Examples of annealing machines include quantum annealing machines, semiconductor annealing machines using semiconductor technology, machines that perform simulated annealing performed by software using a central processing unit (CPU) or a graphics processing unit (GPU), etc. In addition, for example, a digital annealer (registered trademark) can be used as the annealing machine.
[0112] Furthermore, the bits used to solve the plurality of combinatorial optimization problems may be selected, for example, depending on the type of annealer to be used to solve the combinatorial optimization problems, and may be, for example, arithmetic bits (standard bits having values 0 or 1) or may be quantum bits (bits capable of quantum superposition).
[0113] The number of bits to be prepared (e.g., the number of bits of the annealing machine) is not particularly limited and can be appropriately selected depending on the purpose as long as the number is equal to or greater than the total number of bits required to solve each of the multiple combinatorial optimization problems to be solved.
[0114] Furthermore, in the technology disclosed in this case, solving multiple combinatorial optimization problems can be performed multiple times. For example, when solving twenty combinatorial optimization problems, each of which uses 100 bits, using an annealing machine that can prepare 1,000 bits, first, ten combinatorial optimization problems are solved collectively, and then the remaining ten combinatorial optimization problems can be solved collectively. As described above, in the technology disclosed in this case, the number of times the multiple combinatorial optimization problems are solved can be appropriately selected based on the number of prepared bits and the number of bits allocated to the combinatorial optimization problems to be solved.
[0115] <Bit Allocation>
[0116] In the example of the technology disclosed in this case, bits to be used for solving a single combinatorial optimization problem among the plurality of combinatorial optimization problems are allocated. That is, in the example of the technology disclosed in this case, bits to be used for solving a single combinatorial optimization problem included in the plurality of combinatorial optimization problems are allocated to the prepared bits.
[0117] In other words, in the example of the technology disclosed in this case, the first bits among the plurality of bits used to solve the plurality of combinatorial optimization problems are allocated to the first combinatorial optimization problem included in the plurality of combinatorial optimization problems. Furthermore, in the example of the technology disclosed in this case, the second bits among the plurality of bits used to solve the plurality of combinatorial optimization problems are allocated to the second combinatorial optimization problem included in the plurality of combinatorial optimization problems.
[0118] For example, allocation of bits to be used to solve a single combinatorial optimization problem may be performed by setting interactions between bits corresponding to the single combinatorial optimization problem in an Ising model in the combinatorial optimization problem to be solved and an offset for each bit.
[0119] For example, in Figure 4 In the example shown, the first and second offsets are used as offsets for solving problem (1), the third to sixth offsets are used as offsets for solving problem (2), and the seventh and eighth offsets are used as offsets for solving problem (3). In addition, the weight (interaction) corresponding to the combination of the first and second digits is the weight to be used for solving problem (1), and the weight corresponding to the combination of the third to sixth digits is the weight to be used for solving problem (2). Similarly, in Figure 4 In the example shown, the weight corresponding to the combination of the seventh and eighth bits is used as the weight for solving problem (3). Figure 4 , the biases and weights to be used to solve each problem are indicated by the shading of the bias boxes.
[0120] exist Figure 4 In the example shown, by setting the offset and weight as described above, the first and second bits can be assigned as the bits to be used to solve problem (1). Figure 4 In the example of , the third to sixth bits may be allocated as bits to be used to solve problem (2), and the seventh and eighth bits may be allocated as bits to be used to solve problem (3).
[0121] In the technology disclosed in this case, for example, the bits to be used to solve a single combinatorial optimization problem are allocated so that the bits to be used to solve one combinatorial optimization problem among multiple combinatorial optimization problems do not overlap with the bits to be used to solve another combinatorial optimization problem. In other words, in the technology disclosed in this case, for example, the offsets and weights to be used to solve one combinatorial optimization problem among multiple combinatorial optimization problems are set so that they do not overlap with the offsets and weights to be used to solve another combinatorial optimization problem.
[0122] As described above, in the example of the technology disclosed in the present case, bits to be used for solving individual combinatorial optimization problems among a plurality of combinatorial optimization problems are allocated so as not to overlap, whereby the individual combinatorial optimization problems can be solved reliably and correctly.
[0123] In the example of the technology disclosed in this case, bits to be used for solving different combinatorial optimization problems are advantageously allocated adjacent to each other, such as Figure 4 In other words, in the example of the technology disclosed in this case, among the prepared bits, the bits to be used for solving one of the multiple combinatorial optimization problems are advantageously allocated adjacent to the bits to be used for solving another of the multiple combinatorial optimization problems. That is, in the example of the technology disclosed in this case, among the multiple bits, the multiple second bits are advantageously adjacent to the multiple first bits.
[0124] By doing so, in the example of the technology disclosed in the present case, bits to be used for solving individual combinatorial optimization problems among a plurality of combinatorial optimization problems can be efficiently allocated, and a large number of combinatorial optimization problems can be solved in one calculation.
[0125] Furthermore, in the technology disclosed in the present case, it is not necessary to allocate bits to be used for solving individual combinatorial optimization problems in order from the beginning of the prepared bits (making the bits adjacent), and the bit allocation format can be appropriately selected according to the purpose.
[0126] In the technology disclosed in this case, for example, (adjacent) bits used to solve different combinatorial optimization problems may not be adjacent to each other. In other words, in the technology disclosed in this case, between the bits used to solve one combinatorial optimization problem and the bits used to solve another combinatorial optimization problem, there may be bits that will not (are not allocated) be used to solve the combinatorial optimization problem. That is, in the technology disclosed in this case, between multiple first bits and multiple second bits, there may be bits that will not (are not allocated) be used to solve multiple combinatorial optimization problems.
[0127] For example, Figure 5As shown, there may be bits that will not be used for solving the combinatorial optimization problem between the bits to be used for solving problem (1) and the bits to be used for solving problem (2). Note that the bits that will not be used for solving the plurality of combinatorial optimization problems may be, for example, bits where the corresponding offset values and weight values are both zero.
[0128] Furthermore, in the technology disclosed in this case, for example, bits to be used to solve a single combinatorial optimization problem may not form a group. In other words, in the technology disclosed in this case, bits that will not be used (not allocated) to solve a combinatorial optimization problem may exist between bits to be used to solve a combinatorial optimization problem. For example, Figure 6 As shown, there may be bits between the bits to be used to solve problem (1) that will not be used to solve the combinatorial optimization problem.
[0129] <Interactions between bits>
[0130] In an example of the technology disclosed in this case, the interactions (weights) between bits used to solve different combinatorial optimization problems among a plurality of combinatorial optimization problems are set to zero. In other words, in an example of the technology disclosed in this case, among the weights associated with bits used to solve one combinatorial optimization problem among the plurality of combinatorial optimization problems, the weights other than the weights of the combination of bits used to solve the one combinatorial optimization problem are set to zero. That is, in an example of the technology disclosed in this case, the interactions between each of the plurality of first bits and each of the plurality of second bits are set to zero.
[0131] Here, return to Figure 4 , the interactions between the bits describing the different combinatorial optimization problems to be used to solve the multiple combinatorial optimization problems are set to zero.
[0132] like Figure 4 As shown in the example in , among the weights of the first and second digits (including the weight of the first or second digit in a row or column) assigned to the solution of problem (1), the weights other than the weight of the combination of the first or second digit are set to zero. Similarly, among the weights of the third to sixth digits (including the weight of any one of the third to sixth digits in a row or column) assigned to the solution of problem (2), the weights other than the weight of the combination of the third to sixth digits are set to zero. Furthermore, among the weights of the seventh and eighth digits (including the weight of the seventh or eighth digit in a row or column) assigned to the solution of problem (3), the weights other than the weight of the combination of the seventh or eighth digit are set to zero.
[0133] As mentioned above, in Figure 4In the example shown, the weights other than the weights between the bits to be used to solve each of the three combinatorial optimization problems (each of problems (1) to (3)) are set to zero. In other words, Figure 4 In the example shown, the interactions between the bits to be used to solve the three combinatorial optimization problems that are different from each other are set to zero. Figure 5 and Figure 6 In the example shown, the interactions between bits to be used for solving different combinatorial optimization problems among three combinatorial optimization problems are set to zero.
[0134] In an example of the technology disclosed in this case, as in the above example, the interaction between the bits used to solve different combinatorial optimization problems in a plurality of combinatorial optimization problems is set to zero. In other words, in one example of the technology disclosed in this case, the interaction between each of the plurality of first bits and each of the plurality of second bits is set to zero. By doing so, in the example of the technology disclosed in this case, the regions of the bits used to calculate the individual combinatorial optimization problems (the regions of the offsets and weights) can be separated. Therefore, the individual combinatorial optimization problems can be correctly solved.
[0135] Furthermore, when the interaction (weight) between the bits used to solve the different combinatorial optimization problems among the plurality of combinatorial optimization problems is set to zero, it is not necessary to set the weight to "strictly zero (0)", and a value that is considered to be "substantially zero" may be adopted. The value that is considered to be "substantially zero" may be, for example, a value having a size that does not affect the solution result of the combinatorial optimization problem (a size in which the combinatorial optimization problem can be correctly solved).
[0136] The value that can be considered "substantially zero" varies with the magnitude of the values of, for example, the offsets and weights to be used to solve the combinatorial optimization problem. For example, in the case where the values of the offsets and weights are large, the value that can be considered "substantially zero" can be a slightly larger value as long as the value does not affect the solution of the combinatorial optimization problem.
[0137] Here, the interaction (weight) between the bits to be used to solve the same combinatorial optimization problem in the plurality of combinatorial optimization problems is not particularly limited and can be appropriately selected according to the purpose, and can be, for example, an integer. For example, the interaction between the bits to be used to solve the same combinatorial optimization problem can be a positive integer, a negative integer, or zero.
[0138] For example, in the interaction between bits used to solve the same combinatorial optimization problem among multiple combinatorial optimization problems, the weights between bits with the same number are advantageously set to zero. In other words, in the example of the technology disclosed in this case, the weight of the combination of bits with the same number, such as the weight between the first bit and the first bit, has a meaning (function) similar to that of an offset and is therefore advantageously set to zero.
[0139] Solving multiple combinatorial optimization problems
[0140] In an example of the technology disclosed in this case, with respect to a plurality of combinatorial optimization problems, bits are allocated to be used to solve the individual combinatorial optimization problems, the interactions between the bits to be used to solve the different combinatorial optimization problems are set to zero, and then the plurality of combinatorial optimization problems are solved. That is, in an example of the technology disclosed in this case, a plurality of first bits are allocated to a first combinatorial optimization problem and a plurality of second bits are allocated to a second combinatorial optimization problem, the interactions between each of the plurality of first bits and each of the plurality of second bits are set to zero, and then the plurality of combinatorial optimization problems are solved.
[0141] Here, the method for solving the plurality of combinatorial optimization problems is not particularly limited and can be appropriately selected depending on the purpose. However, a method for solving the problem based on a "cost function" is advantageous. This cost function is a function based on the conditions and restrictions in the combinatorial optimization problem. In the example of the technology disclosed in this case, the combinatorial optimization problem can be solved by searching for a combination of variables that minimizes the cost function.
[0142] The cost function can be appropriately selected according to the conditions and restrictions of the combinatorial optimization problem to be solved, and for example, similar function formats (expressions) can be used for combinatorial optimization problems of the same type. The specific mathematical formula of the cost function will be described below.
[0143] In the example of the technology disclosed in this case, the cost function is advantageously a function defined so as to set the interactions between the bits used to solve the same combinatorial optimization problem in the plurality of combinatorial optimization problems to integers. In other words, in the example of the technology disclosed in this case, the cost function is advantageously a function defined so as to set the interactions between the corresponding bits included in the plurality of first bits to integers and the interactions between the corresponding bits included in the plurality of second bits to integers. Furthermore, in the example of the technology disclosed in this case, the cost function is advantageously a function defined so as to set the interactions between the bits used to solve different combinatorial optimization problems in the plurality of combinatorial optimization problems to zero.
[0144] That is, in the example of the technology disclosed in this case, the cost function is advantageously a function that is defined so that the interactions between bits used to solve the same combinatorial optimization problem are set to integers, and the interactions between bits used to solve different combinatorial optimization problems are set to zero. By doing so, in the example of the technology disclosed in this case, the weights used to solve the individual combinatorial optimization problems can be easily set, and the user's convenience when solving multiple combinatorial optimization problems can be further improved.
[0145] Furthermore, as a method for solving multiple combinatorial optimization problems based on a cost function, a method for solving the combinatorial optimization problems by converting the cost function into a format known as an Ising model and minimizing the value of the cost function converted into the Ising model is advantageous. Note that in the examples of the technology disclosed in this case, the cost function may be initially expressed in the Ising model format, and in such cases, the conversion of the cost function into the Ising model may not be performed.
[0146] For example, by performing an annealing method (annealing) using an annealing machine or the like, it is possible to minimize the value of the cost function converted into the Ising model in a short period of time. That is, in the example of the technology disclosed in this case, it is advantageous to solve multiple combinatorial optimization problems using the annealing method. Note that the details of the annealing method using the annealing machine will be described below.
[0147] For example, it is advantageous to use a mathematical formula represented by the following mathematical formula (1) as a cost function for conversion into the Ising model.
[0148] [Formula 2]
[0149]
[0150] Note that in the above equation (1), E represents a cost function, wherein minimizing the cost function means solving a plurality of combinatorial optimization problems.
[0151] w ij is a numerical value representing the interaction between the i-th and j-th positions.
[0152] x i is a binary variable representing the i-th bit as 0 or 1, and x j is a binary variable representing whether the jth bit is 0 or 1.
[0153] b i It is a numerical value indicating the offset for the i-th bit.
[0154] Here, w in the above formula (1) ij This can be done by, for example, i and x jEach combination of extracts the value of each parameter in the cost function, etc. to obtain, and w ij Typically a matrix.
[0155] The first term on the right side of equation (1) above is obtained by combining the products of the states (State) and weight values (Weight) of the two circuits for all combinations of two circuits that can be selected from all circuits without omission or duplication.
[0156] Furthermore, the second term on the right side in the above equation (1) is obtained by combining the product of the value of the offset and the state of each of all circuits.
[0157] That is, by extracting the parameters of the cost function before converting to the Ising model and obtaining w ij and b i , the cost function can be converted into the Ising model represented by the above equation (1).
[0158] In the example of the technology disclosed in this case, for example, as described above Figure 4 As shown in the example, w in the above formula (1) ij (weight) and b i (Offset) can be set corresponding to the individual combinatorial optimization problems. By doing so, in the example of the technology disclosed in this case, with respect to multiple combinatorial optimization problems, the bits to be used to solve the individual combinatorial optimization problems are allocated, and the interaction between the bits to be used to solve different combinatorial optimization problems can be set to zero.
[0159] In the example of the technology disclosed in this case, based on w set corresponding to the individual combinatorial optimization problem ij and b i , use an annealing machine to change x in the above formula (1) i and x j , and minimize the above formula (1). That is, in the example of the technology disclosed in this case, the above formula (1) is minimized using an annealing machine or the like, so that the bit state when the above formula (1) takes the minimum value (when the minimum value is given to the above formula (1)) can be obtained.
[0160] As described above, in the example of the technology disclosed in the present case, as a result of solving a plurality of combinatorial optimization problems, the minimum value of the cost function and the bit state that provides the minimum value can be obtained.
[0161] In an example of the technology disclosed in this case, as a result of solving multiple combinatorial optimization problems, the optimal bit state for a separate combinatorial optimization problem (the bit state that provides the minimum value for the separate cost function) can be obtained based on the bit state. In an example of the technology disclosed in this case, the separate combinatorial optimization problem can be solved by: based on the bit states (all bit states) obtained by solving the multiple combinatorial optimization problems, the state of the bits (the allocated bits) used to solve the separate combinatorial optimization problem is obtained.
[0162] Here, as an example, consider the case where the similarity of a large number of compounds relative to a reference compound (query compound) is obtained as multiple combinatorial optimization problems. In this case, the similarity of each individual compound relative to the query compound can be calculated based on the state of the bits used to solve the individual combinatorial optimization problems, wherein the bit states are obtained based on the bit states obtained by solving the multiple combinatorial optimization problems. Note that the details of the method for calculating similarity between compounds will be described below.
[0163] Furthermore, in the examples of the technology disclosed in this case, when multiple combinatorial optimization problems are solved, all combinatorial optimization problems to be solved are not necessarily combinatorial optimization problems of the same type, and may include combinatorial optimization problems of different types as described above.
[0164] Here, when solving a combinatorial optimization problem, it is advantageous to appropriately set the calculation conditions according to the nature of the combinatorial optimization problem to be solved. Examples of the calculation conditions for solving the combinatorial optimization problem include annealing machine parameters in the annealing machine, etc. Examples of annealing parameters in the annealing machine include parameters corresponding to the number of calculation iterations (iteration count), parameters corresponding to the annealing temperature, etc.
[0165] When multiple combinatorial optimization problems include different types of combinatorial optimization problems, it is advantageous to use the computational conditions for solving the most difficult (and time-consuming) of the combinatorial optimization problems to be solved as the computational conditions for solving the combinatorial optimization problem. By doing so, in the example of the technology disclosed in this case, all of the multiple combinatorial optimization problems can be reliably and correctly solved.
[0166] In an example of the technology disclosed in this case, using the computational conditions for solving the most difficult of the combinatorial optimization problems to be solved, the computational time required to solve multiple combinatorial optimization problems becomes the same as the computational time required to solve the most difficult problem. In this case, for example, when solving a combinatorial optimization problem that takes ten seconds to solve, a combinatorial optimization problem that takes five seconds to solve, and a combinatorial optimization problem that takes seven seconds to solve, the time required to solve all three combinatorial optimization problems becomes ten seconds.
[0167] Hereinafter, an example of the technology disclosed in this case will be described in more detail using configuration examples of devices, flowcharts, and the like.
[0168] Figure 7 An example of the hardware configuration of the optimization device disclosed in this case is shown.
[0169] In the optimization device 10 , for example, the control unit 11 , the memory 12 , the storage unit 13 , the display unit 14 , the input unit 15 , the output unit 16 , and the I / O interface unit 17 are connected via a system bus 18 .
[0170] The control unit 11 performs arithmetic operations (for example, four arithmetic operations, comparison operations, and arithmetic operations for an annealing method), hardware and software operation control, and the like.
[0171] The control unit 11 is not particularly limited and can be appropriately selected according to the purpose. For example, the control unit 11 may be a CPU or an optimization device for an annealing method to be described below, or may be a combination of these devices.
[0172] The solving unit in the optimization device disclosed in this case can be implemented by, for example, the control unit 11.
[0173] The memory 12 is a memory such as a random access memory (RAM) or a read only memory (ROM). The RAM stores an operating system (OS), application programs, etc. read from the ROM and the storage unit 13, and is used as a main memory and a work area of the control unit 11.
[0174] The storage unit 13 is a device that stores various programs and data, and may be, for example, a hard disk. The storage unit 13 stores programs to be executed by the control unit 11, data to be used when executing the programs, an OS, and the like.
[0175] Furthermore, the optimization program disclosed in the present case is stored in, for example, the storage unit 13 , loaded into the RAM (main memory) of the memory 12 , and executed by the control unit 11 .
[0176] The display unit 14 is a display device, and may be, for example, a display device such as a cathode ray tube (CRT) monitor or a liquid crystal panel.
[0177] The input unit 15 is an input device for various data, and may be, for example, a keyboard or a pointing device such as a mouse.
[0178] The output unit 16 is an output device for various data, and may be, for example, a printer or the like.
[0179] The I / O interface unit 17 is an interface for connecting various external devices. The I / O interface unit 17 enables input and output of data such as a compact disc read-only memory (CD-ROM), a digital versatile disc read-only memory (DVD-ROM), a magneto-optical (MO) disk, a universal serial bus (USB) memory (USB flash drive), and the like.
[0180] Figure 8 Another hardware configuration example of the optimization device disclosed in this case is shown.
[0181] Figure 8 The illustrated example is an example of a case where the optimization device is a cloud type device and the control unit 11 is independent of the storage unit 13 and the like. Figure 8 In the illustrated example, a computer 30 including the storage unit 13 and the like is connected to a computer 40 including the control unit 11 via network interface units 19 and 20 .
[0182] The network interface units 19 and 20 are hardware that performs communication using the Internet.
[0183] Figure 9 Another hardware configuration example of the optimization device disclosed in this case is shown.
[0184] Figure 9 The illustrated example is an example of a case where the optimization device is a cloud type device and the storage unit 13 is independent of the control unit 11, etc. Figure 9 In the illustrated example, a computer 30 including the control unit 11 and the like is connected to a computer 40 including the storage unit 13 via network interface units 19 and 20 .
[0185] Figure 10 A functional configuration example is shown as an embodiment of the optimization device disclosed in this case.
[0186] like Figure 10 As shown, the optimization device 10 includes a communication function unit 101 , an input function unit 102 , an output function unit 103 , a control function unit 104 and a storage function unit 106 .
[0187] The communication function unit 101 transmits and receives various data to and from an external device, for example. The communication function unit 101 can receive, for example, offset and weight data converted into a cost function of the Ising model from an external device.
[0188] The input function unit 102 receives various instructions for optimizing the device 10. In addition, the input function unit 102 may receive inputs such as offset and weight data converted into a cost function of the Ising model.
[0189] The output function unit 103 outputs information such as the minimum value of the cost function among a plurality of solved combinatorial optimization problems, the state of the bit assigned the minimum value, and the like.
[0190] The control function unit 104 includes a solver unit 105. The control function unit 104 executes various programs stored in, for example, the storage function unit 106, and controls the operation of the entire optimization apparatus 10.
[0191] The solving unit 105 performs processing for solving a plurality of combinatorial optimization problems.
[0192] The storage function unit 106 includes an offset database (offset DB) 107 and a weight database (weight DB) 108. The storage function unit 106 stores, for example, various programs.
[0193] The offset DB 107 is a database that stores offset data converted into a cost function of the Ising model, and is used to solve a plurality of combinatorial optimization problems.
[0194] The weight DB 108 is a database that stores weight (interaction) data converted into a cost function of the Ising model, and is used to solve a plurality of combinatorial optimization problems.
[0195] Figure 11 An example of a flow chart for solving multiple combinatorial optimization problems using examples of the techniques disclosed herein is shown.
[0196] First, the solving unit 105 defines the cost functions of the plurality of combinatorial optimization problems defined according to the conditions and restrictions of each of the plurality of combinatorial optimization problems (S101). At this time, the solving unit 105 can accept input of the cost function through the communication function unit 101 or the input function unit 102, and define the cost functions of the plurality of combinatorial optimization problems.
[0197] Next, the solving unit 105 extracts the parameters in the defined cost function and obtains b in the above mathematical formula (1). i (offset) and w ij (weight) to convert the cost function into the Ising model represented by the above equation (1) (S102).
[0198] Next, the solving unit 105 prepares bits for solving a plurality of combinatorial optimization problems by the annealing machine. Then, for the prepared bits, the solving unit 105 allocates b to be used in the Ising model based on the above formula (1). i (offset) and w ij (Weight) solves the position of the individual combination optimization problem (S103). In other words, in S103, the solving unit 105 sets the b corresponding to the individual combination optimization problem in the Ising model of the above formula (1)i (offset) and w ij (weights), and allocates bits to be used to solve a separate combinatorial optimization problem.
[0199] Then, the solving unit 105 sets calculation conditions (annealing parameters) that can solve the combinatorial optimization problem that is the most difficult to solve (takes a long time to solve) among the multiple combinatorial optimization problems to be solved (S104). Here, in S104, the solving unit 105 sets the number of calculation iterations (iteration count), a parameter corresponding to the annealing temperature, and the like as annealing parameters.
[0200] Next, the solving unit 105 solves the plurality of combinatorial optimization problems by minimizing the above formula (1) using an annealing machine (S105). In other words, in S105, the solving unit 105 solves the plurality of combinatorial optimization problems by performing a base state search using an annealing method for the above formula (1) to calculate the minimum energy in the above formula (1).
[0201] Subsequently, the solving unit 105 outputs the result of solving the individual combinatorial optimization problems based on the results of solving the plurality of combinatorial optimization problems (S106). Then, when the solving unit 105 outputs the result of solving the individual combinatorial optimization problems, the solving unit 105 terminates the processing.
[0202] Note that a specific processing order has been described here as an example of the technology disclosed in this case. However, the technology disclosed in this case is not limited to this, and as long as there is no technical contradiction, the order of the processing can be appropriately changed, or multiple processes can be performed collectively.
[0203] Examples of the annealing method and the annealing machine will be described below.
[0204] The annealing method is a method for probabilistically finding a solution using a superposition of random values and qubits. The following describes the problem of minimizing the value of an evaluation function to be optimized. The value of the evaluation function is called energy. Furthermore, to maximize the value of the evaluation function, only the sign of the evaluation function needs to be changed.
[0205] First, the process starts from an initial state in which one of the discrete values is assigned to each variable. For the current state (combination of variable values), a state close to the current state (for example, a state in which only one variable changes) is selected, and the state transition between these two states is considered. The energy change with respect to the state transition is calculated. Based on this value, it is probabilistically determined whether to adopt a state transition to change the state or not to adopt a state transition to maintain the original state. In the case where the adoption probability when the energy decreases is selected to be greater than the adoption probability when the energy increases, it can be expected that a state change will occur in the direction of an average decrease in energy, and over time, a state transition to a more appropriate state will occur. Then, there is the possibility that the optimal solution can be eventually obtained or an approximate solution that gives an energy close to the optimal value can be obtained.
[0206] If a state transition is deterministically adopted when energy decreases and not adopted when energy increases, then, broadly speaking, the energy change decreases monotonically with time, but once a local solution is reached, no further change occurs. As mentioned above, due to the extremely large number of local solutions in discrete optimization problems, the state is almost certainly trapped in a local solution that is not close to the optimal value. Therefore, when solving discrete optimization problems, it is important to probabilistically determine whether to adopt a state.
[0207] In the annealing method, it has been proven that by determining the adopted (allowed) probability of state transitions as follows, the state reaches the optimal solution in the limit of infinite time (iteration count).
[0208] Hereinafter, a method for finding an optimal solution using the annealing method will be described step by step.
[0209] (1) For the energy change (energy decrease) value (-ΔE) due to the state transition, the allowed probability p of the state transition is determined by any one of the following functions f().
[0210] [Formula 3]
[0211] p(ΔE,T)=f(-ΔE / T) Formula (1-1)
[0212] [Formula 4]
[0213] f metro (x) = min(1, e x )(Metropolis method) Formula (1-2)
[0214] [Formula 5]
[0215]
[0216] Here, T represents a parameter called a temperature value, and can be changed, for example, as follows.
[0217] (2) As expressed by the following equation, the temperature value T decreases logarithmically with respect to the iteration count t.
[0218] [Formula 6]
[0219]
[0220] Here, T0 is an initial temperature value and is desirably a sufficiently large value depending on the problem.
[0221] In the case of using the allowed probability expressed by the formula in (1), if a steady state is reached after sufficient iterations, the occupation probability of each state follows the Boltzmann distribution for the thermal equilibrium state in thermodynamics.
[0222] Then, as the temperature gradually decreases from a high temperature, the probability of occupying the low-energy state increases. Therefore, it is believed that a low-energy state is obtained when the temperature is sufficiently reduced. Since this state is very similar to the state change caused by annealing the material, this method is called an annealing method (or pseudo-annealing method). Note that the probability of state transition that increases energy corresponds to thermal excitation in physics.
[0223] Figure 12 An example of a functional configuration of an annealing machine that performs the annealing method is shown. However, in the following description, a case where a plurality of state transition candidates are generated is also described, but the basic annealing method generates one transition candidate at a time.
[0224] The annealing machine 100 includes a state holding unit 111 that holds a current state S (a plurality of state variable values). Furthermore, the annealing machine 100 includes an energy calculation unit 112 that calculates an energy change value {-ΔEi} for each state transition when a state transition occurs relative to the current state S due to a change in any one of the plurality of state variable values. Furthermore, the annealing machine 100 includes a temperature control unit 113 that controls a temperature value T and a transition control unit 114 that controls state changes. Note that the annealing machine 100 may be part of the aforementioned optimization apparatus 10.
[0225] The transition control unit 114 probabilistically determines whether to accept any of the plurality of state transitions according to the relative relationship between the energy change value {-ΔEi} and the thermal excitation energy based on the temperature value T, the energy change value {-ΔEi} and the random value.
[0226] Here, the transition control unit 114 includes a candidate generation unit 114a that generates state transition candidates, and an availability determination unit 114b that probabilistically determines whether to permit state transition for each candidate based on the energy change value {-ΔEi} and the temperature value T. Furthermore, the transition control unit 114 includes a transition determination unit 114c that determines a candidate to be adopted from permitted candidates, and a random number generation unit 114d that generates a random variable.
[0227] The operation of the annealer 100 in one iteration is as follows.
[0228] First, the candidate generation unit 114a generates one or more state transition candidates (candidate number {Ni}) from the current state S held in the state holding unit 111 to the next state. Next, the energy calculation unit 112 calculates the energy change value {-ΔEi} for each state transition listed as a candidate using the current state S and the state transition candidates. The availability determination unit 114b uses the temperature value T generated by the temperature control unit 113 and the random variable (random value) generated by the random number generation unit 114d to allow the state transition with the allowance probability of the above formula (1) according to the energy change value {-ΔEi} for each state transition.
[0229] The availability determination unit 114b then outputs the availability {fi} of each state transition. If there are multiple permitted state transitions, the transition determination unit 114c randomly selects one of the permitted state transitions using a random value. The transition determination unit 114c then outputs the transition number N and the transition availability f of the selected state transition. If there is one permitted state transition, the state variable value stored in the state holding unit 111 is updated based on the adopted state transition.
[0230] Starting from the initial state, the above iterations are repeated while the temperature control unit 113 decreases the temperature value. When the completion determination condition is met (for example, a certain iteration count is reached, or the energy drops below a certain value), the operation is completed. The answer output by the annealing machine 100 is the final state.
[0231] Figure 13 is a circuit-level block diagram of an exemplary configuration of a transition control unit (particularly, an arithmetic unit for an availability determination unit) in a general annealing method for generating one candidate at a time.
[0232] The transition control unit 114 includes a random number generation circuit 114 b 1 , a selector 114 b 2 , a noise table 114 b 3 , a multiplier 114 b 4 , and a comparator 114 b 5 .
[0233] Selector 114b2 selects and outputs the value corresponding to the transition number N, which is a random number value generated by the random number generation circuit 114b1, among the energy change values {-ΔEi} calculated for each state transition candidate.
[0234] The function of the noise table 114b3 will be described later. For example, a memory such as a RAM or a flash memory can be used as the noise table 114b3.
[0235] Multiplier 114b4 outputs the product obtained by multiplying the value output from the noise table 114b3 by the temperature value T (corresponding to the above-mentioned thermal excitation energy).
[0236] Comparator 114b5 outputs the comparison result obtained by comparing the multiplication result output from multiplier 114b4 with -ΔE, which is the energy change value selected by selector 114b2, as the transition availability f.
[0237] Figure 13 The illustrated transition control unit 114 basically implements the above functions as they are. However, the mechanism for allowing state transitions with the allowable probability represented by Equation (1) will be described in more detail.
[0238] A circuit that outputs 1 with an allowable probability p and outputs 0 with an allowable probability (1 - p) can be implemented by inputting a uniform random number to the following comparator, where the uniform random number takes the allowable probability p for input A and a value in the interval [0, 1) for input B. This comparator has two inputs A and B, outputs 1 when A > B, and outputs 0 when A < B. Therefore, if the value of the allowable probability p calculated based on the energy change value and the temperature value T using Equation (1) is input to input A of this comparator, the above function can be implemented.
[0239] This means that the above function can be implemented using a circuit that outputs 1 when f(ΔE / T) is greater than u, where f is the function used in Equation (1) and u is a uniform random number taking a value in the interval [0, 1).
[0240] In addition, the same function as the above can also be implemented by making the following modifications.
[0241] Applying the same monotonically increasing function to two numbers does not change the magnitude relationship. Therefore, even if the same monotonically increasing function is applied to the two inputs of the comparator, the output will not change. If the inverse function f -1 of f is used as this monotonically increasing function, it can be seen that a circuit that outputs 1 when -ΔE / T is greater than f -1 (u) can be given. In addition, since the temperature value T is positive, it can be seen that a circuit that outputs 1 when -ΔE is greater than Tf -1 (u) may be sufficient.
[0242] Figure 13 The noise table 114b3 is used to implement the inverse function f -1 (u), and is a table that outputs the value of the following function to the input discretized in the interval [0,1).
[0243] [Formula 7]
[0244]
[0245] [Formula 8]
[0246]
[0247] The transition control unit 114 also includes a latch for holding the determination result, a state machine for generating its timing, etc., but for simplicity of explanation, the following are omitted. Figure 13 These are not shown in FIG.
[0248] Figure 14 is a diagram showing an exemplary operation flow of the transition control unit 114 . Figure 14 The operational flow shown includes: a step of selecting a state transition as a candidate (S0001); a step of determining the availability of the state transition by comparing the product of a temperature value and a random value with an energy change value for the state transition (S0002); and a step of adopting the state transition if the state transition is allowed and not adopting the state transition if the state transition is not allowed (S0003).
[0249] (Optimization method)
[0250] The optimization method disclosed in this case includes the following solving steps: among multiple bits used to solve multiple combinatorial optimization problems, assigning multiple first bits to a first combinatorial optimization problem included in the multiple combinatorial optimization problems, and assigning multiple second bits to a second combinatorial optimization problem included in the multiple combinatorial optimization problems; setting the interaction between each of the multiple first bits and each of the multiple second bits to zero; and solving the multiple combinatorial optimization problems.
[0251] The optimization method disclosed in this case can be performed by, for example, the optimization device disclosed in this case. In addition, for example, the suitable mode in the optimization method disclosed in this case can be similar to the suitable mode in the optimization device disclosed in this case.
[0252] (Optimizer)
[0253] The optimization program disclosed in this case causes a computer to perform the following processing: among a plurality of bits used to solve a plurality of combinatorial optimization problems, assigning a plurality of first bits to a first combinatorial optimization problem included in the plurality of combinatorial optimization problems, and assigning a plurality of second bits to a second combinatorial optimization problem included in the plurality of combinatorial optimization problems; setting the interaction between each of the plurality of first bits and each of the plurality of second bits to zero; and solving the plurality of combinatorial optimization problems.
[0254] The optimization program disclosed in this case can be, for example, a program that causes a computer to execute the optimization method disclosed in this case. In addition, for example, the suitable mode in the optimization program disclosed in this case can be similar to the suitable mode in the optimization device disclosed in this case.
[0255] The optimization program disclosed in this case can be created using various known programming languages according to the configuration of the computer system to be used, the type and version of the operating system, etc.
[0256] The optimization program disclosed in this case may be recorded in a recording medium such as an internal hard disk or an external hard disk, or may be recorded in a recording medium such as a CD-ROM, a DVD-ROM, an MO disk, or a USB memory.
[0257] In addition, in the case where the optimization program disclosed in this case is recorded in the above-mentioned recording medium, the optimization program can be used directly, or the optimization program can be installed to the hard disk through the recording medium reader included in the computer system as needed, and then the optimization program can be used. In addition, the optimization program disclosed in this case can be recorded in an external storage area (another computer, etc.) that can be accessed from the computer system via an information communication network. In this case, the optimization program disclosed in this case recorded in the external storage area can be used directly, or the optimization program can be installed from the external storage area to the hard disk via the information communication network as needed, and then the optimization program can be used.
[0258] Note that the optimization program disclosed in this case can be divided for each of any processes and recorded in a plurality of recording media.
[0259] (Computer-readable recording medium)
[0260] The computer-readable recording medium disclosed in this case records the optimization program disclosed in this case.
[0261] The computer-readable recording medium disclosed in this case is not limited to any specific medium and can be appropriately selected according to the purpose. Examples of computer-readable recording media include built-in hard disks, external hard disks, CD-ROMs, DVD-ROMs, MO disks, USB memories, etc.
[0262] Furthermore, the computer-readable recording medium disclosed in this case may be a plurality of recording media in which the optimization program disclosed in this case is divided and recorded for each of any processes.
[0263] [Implementation Method]
[0264] Hereinafter, examples of the technology disclosed in this case will be described. However, the technology disclosed in this case is not limited to these examples.
[0265] (Example of using random numbers for bias and weights)
[0266] <Implementation Method 1>
[0267] As an embodiment 1, using an example of the optimization device disclosed in this case, a random number (random integer) is used for b in the Ising model of the above formula (1) to solve the individual combinatorial optimization problem. i (offset) and w ij (weights) to solve two combinatorial optimization problems. In Example 1, by using Figure 10 The functions shown are configured to optimize the device execution Figure 11 The two combinatorial optimization problems are solved by using steps S103 to S106 in the flowchart in FIG. Furthermore, a digital annealer (registered trademark) is used to solve the combinatorial optimization problem (minimization of the Ising model equation (1)).
[0268] In embodiment 1, problem (A1) and problem (A2) are solved as two combinatorial optimization problems. Figure 15 The columns of values shown are the b values of the Ising model in problem (A1). i (offset), and Figure 16 The columns of values shown are the b values of the Ising model in problem (A2). i (offset). Note that although Figure 15 and Figure 16 The offset in the vertical column is shown due to space limitations, but the manner of showing is not limited thereto. In addition, "..." indicates that the value in the subsequent row is "0".
[0269] At this time, according to Figure 15 The offset and Figure 16 The offset summary of the problem (A2) shown (to be used to solve these two optimization problems) is Figure 17 Shown in.
[0270] Therefore, in embodiment 1, the offsets in problem (A1) and problem (A2) are placed adjacent to each other. In other words, in example 1, bits are allocated so that bits to be used for solving different combinatorial optimization problems are adjacent to each other.
[0271] In addition, in embodiment 1, Figure 18 The matrix shown is used as w for the Ising model in problem (A1) ij (weight), and Figure 19A and Figure 19B The matrix shown is used as w for the Ising model in problem (A2) ij (weight).
[0272] At this time, according to Figure 18 The weights of the questions (A1) shown and Figure 19A and Figure 19B The weights for problem (A2) are summarized in the weights (to be used to solve these two optimization problems) shown in Figure 20A and Figure 20B As shown in Figure 20A and Figure 20B As shown, in the weights to be used for solving the two optimization problems in Embodiment 1, the interaction (weight) between the bits t for solving the different combinatorial optimization problems is zero.
[0273] In embodiment 1, the annealing parameters are set to the conditions in which problems (A1) and (A2) can be correctly solved, and based on Figure 17 The offset shown and Figure 20A and Figure 20B The weights shown minimize the Ising model of the above formula (1). That is, in embodiment 1, based on Figure 17 The offset shown and Figure 20A and Figure 20B The weights shown solve these two combinatorial optimization problems.
[0274] In implementation mode 1, when based on Figure 17 The offset shown and Figure 20A and Figure 20B When the weights shown minimize the Ising model of the above formula (1), the minimum value (E min ) is "-1081523". In addition, the calculation time required to minimize the Ising model of the above formula (1) is 0.9 seconds.
[0275] (Comparative Example 1)
[0276] In Comparative Example 1, the Ising model of the above formula (1) is minimized similarly to Example 1, except that the problem (A1) and the problem (A2) are solved separately as two calculations in Embodiment 1.
[0277] In Comparative Example 1, the Figure 15 The offset and Figure 18 Similarly, in Comparative Example 1, using Figure 16 The offset and Figure 19A and Figure 19B The weights of problem (A2) are used to solve problem (A2).
[0278] In Comparative Example 1, when Problem (A1) and Problem (A2) were solved separately, the minimum value of the Ising model of the above formula (1) in Problem (A1) was "-16", and the minimum value of the Ising model of the above formula (1) in Problem (A2) was "-1081507". In addition, the calculation time required to minimize the Ising model of the above formula (1) in each of Problem (A1) and Problem (A2) was 0.9 seconds, and the calculation time was 1.8 seconds in total.
[0279] Here, Figure 21 The comparison of conditions and results between Embodiment 1 and Comparative Example 1 is shown. Figure 21 The minimum value of the Ising model in each example is given by “E min ”, “E min1 ” and “E min2 ”, and the calculation time in each example is represented by “t”, “t1”, and “t2”.
[0280] The minimum value "-1081523" of the Ising model in Implementation Example 1 is the sum (total) of "-16" as the result of minimizing the Ising model of problem (A1) alone in Comparative Example 1 and "-1081507" as the result of minimizing the Ising model of problem (A2) alone.
[0281] From the above points, it can be seen that in Implementation 1, the individual combinatorial optimization problems in Problems (A1) and (A2) are correctly solved.
[0282] In addition, if Figure 21 As shown, in Embodiment 1, the calculation time is 0.9 seconds, and Problem (A1) and Problem (A2) are solved in a calculation time that is half (1 / 2) of the calculation time of 1.8 seconds in Comparative Example 1.
[0283] (Example of the problem of calculating similarity between molecules)
[0284] <Implementation Method 2>
[0285] As embodiment 2, a problem of calculating the similarity between molecules (compounds) by solving a combinatorial optimization problem is solved. In embodiment 2, similarly to embodiment 1, by using Figure 10 The functions shown are configured to optimize the device execution Figure 11Two combinatorial optimization problems are solved by using steps S101 and S103 to S106 in the flowchart in . Furthermore, a digital annealer (registered trademark) is used to solve the combinatorial optimization problem (minimization of the Ising model).
[0286] <<Method for calculating similarity between molecules>>
[0287] Here, a method for calculating similarities between molecules by solving a combinatorial optimization problem as in Embodiment 2 will be described.
[0288] As an example of a method for calculating similarity between molecules, a method for searching for a partial substructure common to molecules (compounds) to be compared and solving a maximum independent set problem of a conflict graph will be described.
[0289] When calculating the structural similarity between compounds by solving the maximum independent set problem using a conflict graph, the compounds are represented as a graph. Here, representing a compound as a graph means representing the structure of the compound using, for example, information about the types of atoms (elements) in the compound and information about the bonding states between the atoms.
[0290] The structure of a compound can be represented using, for example, a representation in the MOL format or a structure data file (SDF) format. Typically, the SDF format refers to a single file obtained by collecting structural information about a plurality of compounds represented in the MOL format. In addition, in addition to the MOL format structural information, the SDF format file is also capable of processing additional information for each compound (e.g., catalog number, Chemical Abstracts Service (CAS) number, molecular weight, etc.). The structure of such a compound can be represented as a graph in a comma separated value (CSV) format, in which, for example, "atom 1 (name), atom 2 (name), elemental information about atom 1, elemental information about atom 2, bond sequence between atom 1 and atom 2" are all contained in a single row.
[0291] Hereinafter, a method for creating a conflict graph will be described by taking a case where a conflict graph of acetic acid (CH 3 COOH) and methyl acetate (CH 3 COOCH 3 ) is created as an example.
[0292] First, acetic acid (hereinafter sometimes referred to as "molecule A") and methyl acetate (hereinafter sometimes referred to as "molecule B") are represented as a graph, and as shown in FIG. Figure 22 Given as shown. Figure 22 In the formula (A), atoms forming acetic acid are represented by A1, A2, A3, and A5, and atoms forming methyl acetate are represented by B1 to B5. Figure 22In FIG, A1, A2, B1, B2, and B4 represent carbon, and A3, A5, B3, and B5 represent oxygen, and single bonds are represented by thin solid lines and double bonds are represented by thick solid lines. Note that although Figure 22 In the illustrated example, atoms other than hydrogen are selected and represented as a graph, but when a compound is represented as a graph, all atoms including hydrogen may be selected and represented as a graph.
[0293] Next, the vertices (atoms) in the graphical molecules A and B are combined to create vertices (nodes) of the conflict graph. Figure 23 As shown, it is advantageous to combine the same elements in molecules A and B to create nodes of the conflict graph. Figure 23 In the example shown, the combination of A1, A2, B1, B2, and B4 representing carbon, and the combination of A3, A5, B3, and B5 representing oxygen are used as nodes of the conflict graph. By setting combinations of the same element as nodes as described above, a conflict graph can be created using nodes that can be included in the maximum independent set. Therefore, the number of nodes can be suppressed, and the number of computer bits required to solve the maximum independent set problem can be reduced.
[0294] exist Figure 23 In the example of , six nodes are created by the combination of the carbon of molecule A and the carbon of molecule B, and four nodes are created by the combination of the oxygen of molecule A and the oxygen of molecule B. Therefore, the number of nodes in the conflict graph created by the graphed molecules A and B is ten.
[0295] Subsequently, an edge (branch or side) in the conflict graph is created. At this time, two nodes are compared, and when the nodes are composed of atoms in different conditions (e.g., atomic number, presence or absence of bonds, bond order, etc.), an edge is created between the two nodes. On the other hand, when two nodes are compared and the nodes are composed of atoms in the same condition, no edge is created between the two nodes.
[0296] Here, we will refer to Figure 24 Describes the rules used to create edges in the conflict graph.
[0297] First, in Figure 24 In the example shown, it is described whether to create an edge between the node [A1B1] and the node [A2B2]. Figure 24As can be seen from the graphical structure of molecule A, carbon A1 of molecule A included in node [A1B1] and carbon A2 of molecule A included in node [A2B2] are bonded to each other (single bond). Similarly, carbon B1 of molecule B included in node [A1B1] and carbon B2 of molecule B included in node [A2B2] are bonded to each other (single bond). For example, the bonding conditions between carbons A1 and A2 and between carbons B1 and B2 are identical.
[0298] In this way, in Figure 24 In the example, the conditions of carbons A1 and A2 in molecule A and the conditions of carbons B1 and B2 in molecule B are the same as each other, and nodes [A1B1] and [A2B2] are considered to be nodes composed of atoms in the same conditions as each other. Figure 24 In the example shown, no edge is created between nodes [A1B1] and [A2B2].
[0299] Next, in Figure 24 In the example shown, it is described whether to create an edge between the node [A1B4] and the node [A2B2]. Figure 24 As can be seen from the structure of the graphical molecule A, carbon A1 of molecule A included in the node [A1B4] and carbon A2 of molecule A included in the node [A2B2] are bonded to each other (single bond). On the other hand, as can be seen from the structure of the graphical molecule B, carbon B4 of molecule B included in the node [A1B4] and carbon B2 of molecule B included in the node [A2B2] have oxygen B3 sandwiched between carbons B4 and B2, and carbon B4 and carbon B2 are not directly bonded. For example, the bonding condition between carbons A1 and A2 and the bonding condition between carbons B4 and B2 are different from each other.
[0300] That is, in Figure 24 In the example, the conditions of carbons A1 and A2 in molecule A are different from the conditions of carbons B4 and B2 in molecule B, and nodes [A1B4] and [A2B2] are considered to be nodes composed of atoms in different conditions. Figure 24 In the example shown, an edge is created between nodes [A1B4] and [A2B2].
[0301] In this way, a conflict graph may be created based on the rule that edges are created between nodes when the nodes are composed of atoms in different states, and that edges are not created between nodes when the nodes are composed of atoms in the same state.
[0302] Figure 25 is a diagram showing an exemplary conflict graph for molecules A and B. Figure 25As shown, for example, in the nodes [A2B2] and [A5B5], the bonding condition between carbon A2 and oxygen A5 in molecule A and the bonding condition between carbon B2 and B5 in molecule B are identical to each other. Therefore, the nodes [A2B2] and [A5B5] are considered to be nodes composed of atoms in the same condition as each other, and therefore no edge is created between the nodes [A2B2] and [A5B5].
[0303] Here, the edges of the conflict graph can be created, for example, based on the chemical structure data of two compounds for which the structural similarity is to be calculated. For example, when the chemical structure data of the compounds are input using an SDF format file, the edges of the conflict graph can be created (specified) by performing calculations based on the information contained in the SDF format file using a calculator, such as a computer.
[0304] Next, a method for solving the maximum independent set problem of the created conflict graph will be described.
[0305] A maximum independent set (MIS) in a conflict graph means a set including the largest number of nodes without edges between them, among a set of nodes constituting the conflict graph.
[0306] For example, the maximum independent set in the conflict graph means a set whose size (the number of nodes) is the largest among sets formed of nodes having no edges between each other.
[0307] Figure 26 is a diagram showing an exemplary maximum independent set in a graph. Figure 26 In , nodes included in the set are marked with reference numeral "1", and nodes not included in any set are marked with reference numeral "0"; in the case where there is an edge between the nodes, the nodes are connected by a solid line, and in the case where there is no edge, the nodes are connected by a dotted line. Note that here, as Figure 26 As shown, in order to simplify the description, a graph having six nodes is described as an example.
[0308] exist Figure 26 In the example shown, among the sets consisting of nodes with no edges between them, there are three sets with the largest number of nodes, and the number of nodes in each of these sets is three. Figure 26 In the example shown, three sets surrounded by a single-dot chain line are given as the maximum independent sets in the graph.
[0309] Here, as described above, the conflict graph is created based on the following rule: when nodes are composed of atoms in different states, edges are created between these nodes, and when nodes are composed of atoms in the same state, no edges are created between these nodes. Therefore, finding the maximum independent set in the conflict graph is synonymous with finding the largest substructure among the substructures shared by two molecules, where the maximum independent set is the set of nodes with no edges between them that has the largest number of nodes. For example, the maximum common substructure of two molecules can be specified by finding the maximum independent set in the conflict graph.
[0310] Therefore, by representing two molecules as graphs, creating a conflict graph based on the structures of the graphed molecules, and finding the maximum independent set in the conflict graph, the maximum common substructure of the two molecules can be found.
[0311] Figure 27 FIG. 2 shows an exemplary process for finding the maximum common substructure of molecules A (acetic acid) and molecule B (methyl acetate) by finding the maximum independent set in the conflict graph (solving the maximum independent set problem). Figure 27 As shown, a conflict graph is created by representing molecules A and B as graphs, combining identical elements as nodes, and forming edges based on the atoms that make up the nodes. Then, by finding the maximum independent set in the created conflict graph, the maximum common substructure of molecules A and B can be found.
[0312] Here, an exemplary specific method for finding (searching) the maximum independent set in the conflict graph will be described.
[0313] For example, the search for the maximum independent set in the conflict graph can be performed by using a Hamiltonian function, where minimization in the Hamiltonian function means searching for the maximum independent set. More specifically, for example, the search can be performed by using a Hamiltonian function (H) represented by the following equation (2). Note that the Hamiltonian function is an example of a cost function.
[0314] [Formula 9]
[0315]
[0316] Here, in the above formula (2), n represents the number of nodes in the conflict graph, and b i Represents a numerical value representing the offset with respect to the i-th node.
[0317] In addition, when there is an edge between the i-th node and the j-th node, w ij has a positive non-zero value, and when there is no edge between the i-th node and the j-th node, w ij Has zero.
[0318] In addition, x irepresents a binary variable with a value of 0 or 1 representing the i-th node, and x j represents a binary variable with either 0 or 1 representing the j-th node.
[0319] Note that α and β are positive numbers.
[0320] The relationship between the Hamiltonian function represented by the above equation (2) and the search for the maximum independent set will be described in more detail. The above equation (2) is a Hamiltonian function representing the Ising model in the QUBO format.
[0321] In the above formula (2), when x i When x is 1, it means that the i-th node is included in the set that is a candidate for the maximum independent set, and when x i When x is 0, it means that the i-th node is not included in the set of candidates for the maximum independent set. Similarly, in the above formula (2), when x j When x is 1, it means that the jth node is included in the set that is a candidate for the maximum independent set, and when x j When 0 is set, it means that the j-th node is not included in the set that is a candidate for the maximum independent set.
[0322] Therefore, in the above formula (1), the maximum independent set can be searched by searching for a combination in which as many nodes as possible have state 1 under the constraint that there is no edge between nodes whose states are designated as 1 (bits are designated as 1).
[0323] Here, each term in the above formula (2) will be described.
[0324] The first term on the right side of equation (2) (the term with coefficient -α) is a term whose value changes with x. i The larger the number of i with 1 bits (the larger the number of nodes included in the set that is a candidate for the maximum independent set), the smaller it becomes. Note that the smaller the value of the first term on the right side of the above equation (2) means that a larger negative number is given. Therefore, in the above equation (2), due to the effect of the first term on the right side, when many nodes have bits that are 1, the value of the Hamiltonian function (H) becomes smaller.
[0325] The second term on the right side of equation (2) above (the term with coefficient β) is a penalty term that is imposed when there is an edge between nodes with 1 in bit (when w ij The value of the penalty term increases when there is a positive non-zero number. For example, when there is no edge between nodes with bits set to 1, the second term on the right side of the above equation (2) is 0, and in other cases, the second term on the right side of the above equation (2) is a positive number. Therefore, in the above equation (2), due to the effect of the second term on the right side, when there is an edge between nodes with bits set to 1, the value of the Hamiltonian function (H) increases.
[0326] As described above, when many nodes have bit 1, the above formula (2) has a smaller value, and when there is an edge between nodes having bit 1, the above formula (2) has a larger value; therefore, it can be said that minimizing the above formula (1) means searching for the maximum independent set.
[0327] Here, the relationship between the Hamiltonian function represented by the above formula (2) and the search for the maximum independent set will be described using examples with reference to the drawings.
[0328] Will consider Figure 28 In the case where the bit of each node in a graph having six nodes is set as in the example shown in Figure 28 In the example, Figure 26 That way, the nodes are connected by solid lines for the case where there is an edge between them, and by dashed lines for the case where there is no edge.
[0329] against Figure 28 For example, assume that in the above formula (2), b i has 1, and when there is an edge between the i-th node and the j-th node, w ij With 1, the above formula (2) is as follows.
[0330] [Equation 10]
[0331] H=-α(x0+x1+x2+x3+x4+x5)
[0332] +β(λ 01 x0x1+λ 02 x0x2+λ 03 x0x3+λ04x0x4+λ 05 x0x5+…)
[0333] =-α(1+0+1+0+1+0)
[0334] +β(1*1*0+0*1*1+0*1*0+0*1*1+0*1*0+…)
[0335] =-3α
[0336] In this way, in Figure 28 In the example of , when there is no edge between nodes having 1 in the bit (when there is no contradiction as an independent set), the second term on the right side has 0, and the value of the first term is given as is as the value of the Hamiltonian function.
[0337] Next, we will consider Figure 29 As shown in the example, the bit of each node is set. Figure 28 As in the example in , assume that in the above formula (2), b ihas 1, and when there is an edge between the i-th node and the j-th node, w ij With 1, the above formula (2) is as follows.
[0338] [Equation 11]
[0339] H=-α(x0+x1+x2+x3+x4+x5)
[0340] +β(λ 01 x0x1+λ 02 x0x2+λ 03 x0x3+λ 04 x0x4+λ 05 x0x5+…)
[0341] =-α(1+1+1+0+1+0)
[0342] +β(1*1* 1 +0*1*1+0*1*0+0*1*1+0*1*0+…)
[0343] =-4α+5β
[0344] In this way, in Figure 29 In the example of , since there is an edge between nodes with 1 in the bit, the second term on the right side does not have 0, and the value of the Hamiltonian function is given as the sum of the two terms on the right side. Here, in Figure 28 and Figure 29 In the example shown, for example, under the assumption that α>5β, −3α<−4α+5β is satisfied, and therefore, Figure 28 The Hamiltonian function in the example is Figure 29 The value of the Hamiltonian function in the example is small. Figure 28 In the example, a node set without contradiction is obtained as a maximum independent set, and it can be seen that the maximum independent set can be searched by searching for a combination of nodes for which the value of the Hamiltonian function in the above formula (2) becomes small.
[0345] Next, a method for calculating the structural similarity between molecules based on the searched maximum independent set will be described.
[0346] The structural similarity between molecules can be calculated, for example, using the following formula (3).
[0347] [Equation 12]
[0348]
[0349] Here, in the above formula (3), S(GA, GB) represents the similarity between the first molecule represented as a graph (for example, molecule A) and the second molecule represented as a graph (for example, molecule B), and S(GA, GB) is expressed as 0 to 1, and means that the closer to 1, the higher the similarity.
[0350] In addition, V A represents the total number of node atoms of the first molecule represented as a graph, and V c A Indicates the number of node atoms included in the maximum independent set of the conflict graph among the node atoms of the first molecule represented as a graph. Note that the node atoms refer to atoms at the vertices of the graphed molecule.
[0351] In addition, V B represents the total number of node atoms of the second molecule represented as a graph, and V c B Indicates the number of node atoms included in the maximum independent set of the conflict graph, among the node atoms represented as the second molecule of the graph.
[0352] The symbol δ represents a number from 0 to 1.
[0353] In addition, in the above formula (3), max{A, B} means selecting a larger value from A and B, and min{A, B} means selecting a smaller value from A and B.
[0354] Here, if Figure 22 As with other figures, the method for calculating the similarity will be described by taking acetic acid (molecule A) and methyl acetate (molecule B) as an example.
[0355] exist Figure 30 In the conflict graph shown, the maximum independent set consists of four nodes: node [A1B1], node [A2B2], node [A3B3], and node [A5B5]. Figure 30 In the example, |V A | is given as 4, and |V C A | is given as 4, and |V B | is given as 5, and |V C B | is given as 4. Furthermore, in this example, when it is assumed that δ has 0.5 and an average of the first molecule and the second molecule is taken (the first molecule and the second molecule are treated identically), the above formula (3) is as follows.
[0356] [Equation 13]
[0357]
[0358] In this way, in Figure 30 In the example of , based on the above formula (2), the structural similarity between the molecules is calculated to be 0.9.
[0359] As described above, by solving the combinatorial optimization problem and solving the maximum independent set problem of the conflict graph, a partial structure common to the molecules (compounds) to be compared is searched, and the similarity can be calculated.
[0360] <<Solving Problem (B1) and Problem (B2)>>
[0361] In the second embodiment, two combinatorial optimization problems, Problem (B1) and Problem (B2), are solved as combinatorial optimization problems. Problem (B1) is to determine the structural similarity between ethyl acetoacetate and 2-methoxybenzaldehyde. Problem (B2) is to determine the structural similarity between an alanine (Ala)-glutamic acid (Glu) peptide and a glutamic acid (Glu)-alanine (Ala) peptide.
[0362] In the second embodiment, the above formula (2) is used as a cost function (Hamiltonian function), and b in the above formula (2) is set based on the information (graph) of the molecule. i (offset) and w ij (weight), wherein the similarity is obtained for the molecule in problem (B1) and problem (B2). Note that since the cost function in the above formula (2) is a function represented by the Ising model in the QUBO format, conversion to the Ising model is not performed.
[0363] In addition, in embodiment 2, as Figure 31 As in the example, the offsets in problem (B1) and problem (B2) are arranged adjacent to each other. In embodiment 2, as in Figure 31 As shown, the weights in problem (B1) and problem (B2) are made to correspond to offsets, and the weights between bits to be used for solving combinatorial optimization problems different from each other are set to zero.
[0364] In Embodiment 2, the annealing parameters are set to conditions in which the problem (B1) and the problem (B2) can be correctly solved, and the above formula (2) is minimized.
[0365] When the above formula (2) is minimized in Example 2, the minimum value (E min ) is "-20070". In addition, the calculation time required to minimize the Ising model cost function of the above formula (2) is 0.9 seconds.
[0366] (Comparative Example 2)
[0367] In Comparative Example 2, the cost function of the above-mentioned Ising model formula (2) is minimized similarly to Example 2, except that, as two calculations in Embodiment 2, Problem (B1) and Problem (B2) are solved separately.
[0368] In Comparative Example 2, Figure 32 As shown, the bias and weight in problem (B1) and the bias and weight in problem (B2) are set separately, and each of the combinatorial optimization problems is solved separately.
[0369] In Comparative Example 2, when Problem (B1) and Problem (B2) were solved separately, the minimum value of the cost function of the Ising model formula (2) in Problem (B1) was "-20000". In addition, the minimum value of the cost function of the Ising model formula (2) in Problem (B2) was "-70". In addition, the calculation time required to minimize the cost function of the Ising model formula (2) in each of Problem (B1) and Problem (B2) was 0.9 seconds, and the calculation time was 1.8 seconds in total.
[0370] Here, Figure 33 The comparison of conditions and results between Embodiment 2 and Comparative Example 2 is shown. Figure 33 The minimum value of the Ising model in the corresponding example is given by “E min ”, “E min1 ” and “E min2 ”, and the calculation times in the corresponding examples are represented by “t”, “t1”, and “t2”.
[0371] The minimum value "-20070" of the Ising model in Implementation Example 2 is the sum (total) of "-20000" and "-70" in Comparison Example 2, where "-20000" is the result of minimizing the Ising model of problem (B1) alone, and "-70" is the result of minimizing the Ising model of problem (B2) alone.
[0372] As can be seen from the above points, in Implementation 2, the individual combinatorial optimization problems in Problem (B1) and Problem (B2) are correctly solved.
[0373] In addition, if Figure 33 As shown, in Embodiment 2, the calculation time is 0.9 seconds, and Problem (B1) and Problem (B2) are solved in a calculation time that is half (1 / 2) of the calculation time of 1.8 seconds in Comparative Example 2.
[0374] Here, in Embodiment 2, ethyl acetoacetate in Problem (B1) is X1, 2-methoxybenzaldehyde is Y1, the number of atoms in molecule X1 is nX1, and the number of atoms in molecule Y1 is nY1. Similarly, in Embodiment 2, Ala-Glu peptide in Problem (B2) is X2, Glu-Ala peptide is Y2, the number of atoms in molecule X2 is nX2, and the number of atoms in molecule Y2 is nY2.
[0375] In the present case, when problem (B1) and problem (B2) are solved simultaneously, the number of bits in the state of "1" within the range of bits allocated for solving problem (B1) is equal to the number of the largest common partial structures of problem (B1) (the number of atoms common between molecules) nX1Y 1公共 Similarly, the number of bits in the state "1" within the range of bits allocated to solve problem (B2) is equal to the number of the largest common partial structures of problem (B2) (the number of atoms common between molecules) nX2Y 2公共 .
[0376] For example, Figure 34 As shown, information on the states of the bits assigned to the solutions of problem (B1) and problem (B2) can be obtained by solving problem (B1) and problem (B2) at the same time. Therefore, by solving problem (B1) and problem (B2) at the same time, the state of the bits in each problem can be obtained, and the number of bits with a state of "1" within the range of bits assigned to each problem can be obtained based on the bit state. Therefore, in Example 2, the number of the maximum common partial structures in problem (B1) and problem (B2) can be specified, and the similarity between molecules can be calculated for each problem.
[0377] When the similarities between the molecules calculated in Embodiment 2 and Comparative Example 2 are compared, the similarity of question (B1) calculated in Embodiment 2 matches the similarity of question (B1) calculated in Comparative Example 2. In addition, the similarity of question (B2) calculated in Embodiment 2 also matches the similarity of question (B2) calculated in Comparative Example 2.
[0378] (Example of solving the knapsack problem)
[0379] <Implementation Method 3>
[0380] As embodiment 3, the knapsack problem is solved by solving a combinatorial optimization problem. In embodiment 3, similar to embodiment 1, by using Figure 10 The functions shown are configured to optimize the device execution Figure 11Two combinatorial optimization problems are solved using steps S101 to S106 in the flowchart in . Furthermore, a digital annealer (registered trademark) is used to solve the combinatorial optimization problem (minimization of the Ising model of equation (1)).
[0381] Knapsack Problem
[0382] Here, the knapsack problem is a problem of finding a combination of items that maximizes the total value of the items placed in a knapsack, while placing multiple types of items, each with a predetermined value. In the knapsack problem, the weight (or volume) of the items that can be placed in the knapsack is determined, with the following constraint: the total weight (or volume) of the placed items does not exceed the capacity of the knapsack.
[0383] Examples of a cost function (Hamiltonian function (H)) that can solve the knapsack problem include the following equation (4).
[0384] [Equation 14]
[0385] H=-V+P item +P knapsack Formula (4)
[0386] Here, V in the above formula (4) refers to the total value of the items placed in the backpack. For example, V in the above formula (4) can be expressed as follows.
[0387] [Equation 15]
[0388]
[0389] Here, n refers to the number of items, m refers to the number of backpacks, and v i is the value of item i. In addition, x i,j is a binary variable indicating whether item i is included in backpack j and is either 0 or 1.
[0390] P in the above formula (4) item Refers to the constraint on the number of items, for example, the item is not placed in any backpack or is placed in any backpack. For example, P in the above formula (4) item It can be expressed by the following formula.
[0391] [Equation 16]
[0392]
[0393] Here, β is a parameter (coefficient) and may be 1000, for example.
[0394] P in the above formula (4) knapsackRefers to the constraints on the capacity of the backpack, for example, the weight of the items that can be placed in the backpack is less than or equal to the capacity of the backpack. For example, P in the above formula (4) knapsack It can be expressed by the following formula.
[0395] [Equation 17]
[0396]
[0397] Here, α is a parameter (coefficient), C j refers to the capacity of backpack j, w i is the weight of item i, and y i It refers to the slack variable. In addition, for example, the parameter α can be set to 1.
[0398] For example, the slack variable y i It can be expressed by the following formula.
[0399] [Equation 18]
[0400]
[0401] In addition, the slack variable y i is in [0, 2 | Here, I(L) can be expressed by the following formula.
[0402] [Equation 19]
[0403] w max =max(w i ), l=[log2(w max +1)]
[0404] In addition, we can use the slack variable y i Set the capacity C of backpack j to j Convert the inequality to an equation to obtain P in equation (4) knapsack The capacity C of backpack j j The conversion from inequality to equality can be performed by modifying the following three equations.
[0405] [Equation 20]
[0406]
[0407] [Equation 21]
[0408]
[0409] [Equation 22]
[0410]
[0411] <<Solve Problem (C1) and Problem (C2)>>
[0412] In the third embodiment, two combinatorial optimization problems, Problem (C1) and Problem (C2), are solved as combinatorial optimization problems to be solved.
[0413] Problem (C1) is a knapsack problem involving packing 10 types of items into three backpacks. In Problem (C1), the value of each item i is (v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) = (4, 2, 7, 4, 6, 9, 4, 8, 2, 3). Furthermore, in Problem (C1), the weight of each item i is (w0, w1, w2, w3, w4, w5, w6, w7, w8, w9) = (4, 8, 3, 7, 9, 2, 1, 6, 8, 9). Furthermore, in Problem (C1), the capacities of backpack j are set to (C0, C1, C2) = (12, 18, 26).
[0414] Problem (C2) is a knapsack problem involving packing 10 types of items into two backpacks. In Problem (C2), the value of each item i is (v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) = (1, 2, 3, 2, 5, 6, 9, 7, 4, 8). Furthermore, in Problem (C2), the weight of each item i is (w0, w1, w2, w3, w4, w5, w6, w7, w8, w9) = (1, 9, 7, 1, 5, 8, 6, 5, 9, 8). Furthermore, in Problem (C2), the capacity of each backpack j is set to (C0, C1) = (14, 22).
[0415] In the third embodiment, the above equation (4) is used as the cost function (Hamiltonian function). Then, the above equation (4) is converted into the Ising model of the above equation (1), and b is set based on the conditions of the above problems (C1) and (C2). i (offset) and w ij (weight).
[0416] In addition, in embodiment 3, if Figure 35 As in , the offsets in problem (C1) and problem (C2) are arranged adjacent to each other. In embodiment 3, as Figure 35 As shown, the weights in problem (C1) and problem (C2) are made to correspond to offsets, and the weights between bits to be used for solving combinatorial optimization problems different from each other are set to zero.
[0417] In the third embodiment, the annealing parameters are set to conditions in which the problem (C1) and the problem (C2) can be correctly solved, and the above equation (1) is minimized.
[0418] When the Ising model of the above equation (1) is minimized in the third embodiment, the minimum value (E min ) is "-1910". In addition, the calculation time required to minimize the Ising model of the above formula (1) is 8.4 seconds.
[0419] (Comparative Example 3)
[0420] In Comparative Example 3, the Ising model of the above formula (1) is minimized similarly to Example 3, except that, as two calculations in Example 3, Problem (C1) and Problem (C2) are solved separately.
[0421] In Comparative Example 3, Figure 36 As shown, the bias and weight in problem (C1) and the bias and weight in problem (C2) are set separately, and each of the combinatorial optimization problems is solved separately.
[0422] In Comparative Example 3, when Problem (C1) and Problem (C2) were solved separately, the minimum value of the Ising model of the above formula (1) in Problem (C1) was "-1192". In addition, the minimum value of the Ising model of the above formula (1) in Problem (C2) was "-718". In addition, the calculation time required to minimize the Ising model of the above formula (1) in each of Problem (C1) and Problem (C2) was 8.4 seconds, and the total calculation time was 16.8 seconds.
[0423] Here, Figure 37 The comparison of conditions and results between Embodiment 3 and Comparative Example 3 is shown. Figure 37 The minimum value of the Ising model in the corresponding example is given by “E min ”, “E min1 ” and “E min2 ”, and the calculation times in the corresponding examples are represented by “t”, “t1”, and “t2”.
[0424] The minimum value "-1910" of the Ising model in Example 3 is the sum (total) of "-1192" and "-718" in Comparative Example 3, where "-1192" is the result of minimizing the Ising model of problem (C1) alone, and "-718" is the result of minimizing the Ising model of problem (C2) alone.
[0425] As can be seen from the above points, in Implementation 3, the individual combinatorial optimization problems in Problem (C1) and Problem (C2) are correctly solved.
[0426] In addition, if Figure 37As shown, in Embodiment 3, the calculation time is 8.4 seconds, and Problem (C1) and Problem (C2) are solved in a calculation time that is half (1 / 2) of the calculation time of 16.8 seconds in Comparative Example 3.
[0427] (Multiple combinatorial optimization problems include examples of different types of combinatorial optimization problems)
[0428] <Implementation Method 4>
[0429] In the fourth embodiment, when the plurality of combinatorial optimization problems include combinatorial optimization problems of different types, the plurality of combinatorial optimization problems are solved. In the fourth embodiment, similar to the first embodiment, by using Figure 10 The functions shown are configured to optimize the device execution Figure 11 The three combinatorial optimization problems are solved by following steps S101 to S106 in the flowchart in FIG. Furthermore, a digital annealer (registered trademark) is used to solve the combinatorial optimization problem (minimization of the Ising model of equation (1)).
[0430] In the fourth embodiment, three combinatorial optimization problems are solved: the problem (A2) in the first embodiment, the problem (B2) in the second embodiment, and the problem (C1) in the third embodiment. Figure 38 As shown, set the b of the Ising model in the above problems (A2), (B2) and (C1) i (offset) and w ij (weight). In implementation mode 4, Figure 38 As shown, the weights in the above problems (A2), (B2) and (C1) are made to correspond to offsets, and the weights between bits to be used for solving combinatorial optimization problems different from each other are set to zero.
[0431] In embodiment 4, the annealing parameters are set to conditions in which problem (C1) can be correctly solved, and the above equation (1) is minimized, where problem (C1) is the most difficult problem to solve among the above problems (A2), (B2) and (C1).
[0432] When the Ising model of the above formula (1) is minimized in the fourth embodiment, the minimum value (E min ) is "-1082769". In addition, the calculation time required to minimize the Ising model of the above formula (1) is 8.4 seconds.
[0433] (Comparative Example 4)
[0434] In Comparative Example 4, the Ising model of the above formula (1) is minimized similarly to Embodiment 4, except that the above problems (A2), (B2), and (C1) are solved separately as three calculations in Embodiment 4.
[0435] In Comparative Example 4, Figure 39 As shown, the offset and weight in problem (A2), the offset and weight in problem (B2), and the offset and weight in problem (C1) are set individually, and each of the combinatorial optimization problems is solved individually.
[0436] In Comparative Example 4, when problems (A2), (B2), and (C1) are solved individually, the minimum value of the Ising model of the above formula (1) in problem (A2) is "-1081507". In addition, the minimum value of the Ising model of the above formula (1) in problem (B2) is "-70". In addition, the minimum value of the Ising model of the above formula (1) in problem (C1) is "-1192". In addition, the calculation time required to minimize the Ising model of the above formula (1) is 0.9 seconds in problem (A2), 0.9 seconds in problem (B2), and 8.4 seconds in problem (C1), and the total calculation time is 10.2 seconds.
[0437] Here, Figure 40 The comparison of conditions and results between Embodiment 4 and Comparative Example 4 is shown. Figure 40 The minimum value of the Ising model in the corresponding example is given by “E min ”, “E min1 ”, “E min2 ” and “E min3 ”, and the calculation times in the corresponding examples are represented by “t”, “t1”, “t2”, and “t3”.
[0438] The minimum value "-1082769" of the Ising model in Example 4 is the sum (total) of "-1081507", "-70" and "-1192" in Comparative Example 4, where "-1081507" is the result of minimizing the Ising model of problem (A2) alone, "-70" is the result of minimizing the Ising model of problem (B2) alone, and "-1192" is the result of minimizing the Ising model of problem (C1) alone.
[0439] From the above points, it can be seen that in Example 4, the individual combinatorial optimization problems in problems (A2), (B2), and (C1) are correctly solved.
[0440] In addition, if Figure 40 As shown, in Embodiment 4, the calculation time is 8.4 seconds, which can be made shorter than the 10.2 seconds of the calculation time in Comparative Example 4. In Embodiment 4, the calculation time for solving the plurality of combinatorial optimization problems is the same as the calculation time required for solving the most difficult problem (C1).
[0441] Figure 41: is a diagram showing an example of the relationship between one embodiment of the technology disclosed in this case and conventional technology when solving a plurality of combinatorial optimization problems.
[0442] like Figure 41 As shown, in conventional technology, when solving a plurality of combinatorial optimization problems, the combinatorial optimization problems are solved sequentially by repeatedly solving each of the combinatorial optimization problems (problem (1) and problem (2)) individually. Figure 41 As shown, in the conventional technology, when the computing time for solving a single combinatorial optimization problem is ten seconds, each of job (1) for solving problem (1) and job (2) for solving problem (2) takes ten seconds, and therefore the total computing time is twenty seconds.
[0443] At the same time, in the implementation of the technology disclosed in this case, Figure 41 As shown, the bits to be used to solve the individual combinatorial optimization problems of the two combinatorial optimization problems (1) and (2) are allocated to the prepared bits. That is, in the embodiment of the technology disclosed in this case, the first bits are allocated to the first combinatorial optimization problem included in the plurality of combinatorial optimization problems, and the second bits are allocated to the second combinatorial optimization problem included in the plurality of combinatorial optimization problems.
[0444] In addition, in the embodiments of the technology disclosed in this case, Figure 41 As shown, the interaction (weight) between the bits used to solve the two combinatorial optimization problems (Problem (1) and Problem (2)) that are different from each other is set to zero. That is, in the example of the technology disclosed in this case, the interaction between each of the plurality of first bits and each of the plurality of second bits is set to zero.
[0445] Then, in the embodiment of the technology disclosed in the present case, based on the conditions set as described above, a plurality of combinatorial optimization problems are solved as a whole (as one task).
[0446] By doing so, in the embodiment of the technology disclosed in this case, Figure 41 In the example shown, refer to Figure 41 , when solving problem (1) and problem (2) that each takes ten seconds to solve, problem (1) and problem (2) can be solved as a whole, and the total calculation time can be ten seconds. That is, in the embodiment of the technology disclosed in this case, Figure 41 In the example shown, the computational time required to solve multiple combinatorial optimization problems can be cut in half.
[0447] As described above, in the embodiments of the technology disclosed in this case, multiple combinatorial optimization problems can be solved in a short time without having to repeatedly solve the problems individually.
Claims
1. An optimization device comprising: An annealing-type computer for performing a basis state search on a cost function of a combinatorial optimization problem represented by an Ising model, the annealing-type computer comprising a quantum annealing machine or a semiconductor annealing machine using semiconductor technology, The annealing computer is configured to: preparing bits of the annealing computer based on a plurality of combinatorial optimization problems to be solved in a single job, wherein the number of bits of the annealing computer to be prepared is equal to or greater than the total number of bits required for solving the plurality of combinatorial optimization problems; allocating bits of the prepared annealing computer based on the determined number, wherein, among the plurality of bits used to solve the plurality of combinatorial optimization problems, a plurality of first bits are allocated to a first combinatorial optimization problem included in the plurality of combinatorial optimization problems, and a plurality of second bits are allocated to a second combinatorial optimization problem included in the plurality of combinatorial optimization problems, wherein the plurality of first bits and the plurality of second bits do not overlap; For each of the plurality of allocated bits, set a value of an offset corresponding to an Ising model, and for each combination of the plurality of allocated bits, set a weight corresponding to the Ising model; setting an interaction between each of the plurality of first bits and each of the plurality of second bits to zero by setting a corresponding weight; and The multiple combinatorial optimization problems are solved in a single job.
2. The optimization device according to claim 1, wherein The first combinatorial optimization problem and the second combinatorial optimization problem are combinatorial optimization problems of the same type or different types.
3. The optimization device according to claim 1 or 2, wherein: Among the plurality of bits, the plurality of second bits are adjacent to the plurality of first bits.
4. The optimization device according to claim 1 or 2, wherein: The annealing computer solves the plurality of combinatorial optimization problems based on the cost function, and The cost function is a function defined so that interactions between corresponding bits included in the plurality of first bits become integers, and Interactions between corresponding bits included in the plurality of second bits are made into integers.
5. The optimization device according to claim 4, wherein: The annealing computer solves the plurality of combinatorial optimization problems based on the cost function converted into an Ising model represented by the following equation: E=-Σw ij x i x j -Σb i x i in, The E is the cost function, wherein minimizing the E means solving the plurality of combinatorial optimization problems, The w ij is a numerical value representing the interaction between the i-th and j-th positions, The b i is a numerical value representing the offset with respect to the i-th bit, The x i is a binary variable indicating whether the i-th bit is 0 or 1, and The x j is a binary variable indicating whether the j-th bit is 0 or 1.
6. The optimization device according to claim 1 or 2, wherein: The annealing computer solves the multiple combinatorial optimization problems by using an annealing method.
7. The optimization device according to claim 1 or 2, wherein: The plurality of combinatorial optimization problems are similarity searches between a plurality of molecules.
8. A computer program product, comprising an optimization program executed by the optimization device according to any one of claims 1 to 7, the optimization program comprising: preparing bits of the annealing computer based on a plurality of combinatorial optimization problems to be solved in a single job, wherein the number of bits of the annealing computer to be prepared is equal to or greater than the total number of bits required for solving the plurality of combinatorial optimization problems; allocating bits of the prepared annealing computer based on the determined number, wherein, among a plurality of bits for solving a plurality of combinatorial optimization problems, a plurality of first bits are allocated to a first combinatorial optimization problem included in the plurality of combinatorial optimization problems, and a plurality of second bits are allocated to a second combinatorial optimization problem included in the plurality of combinatorial optimization problems, wherein the plurality of first bits and the plurality of second bits do not overlap; For each of the allocated bits, a value of an offset corresponding to an Ising model is set, and for each combination of the allocated bits, a weight corresponding to the Ising model is set, setting an interaction between each of the plurality of first bits and each of the plurality of second bits to zero by setting a corresponding weight; and The multiple combinatorial optimization problems are solved in a single job.
9. The computer program product according to claim 8, wherein: The first combinatorial optimization problem and the second combinatorial optimization problem are combinatorial optimization problems of the same type or different types.
10. The computer program product according to claim 8 or 9, wherein: Among the plurality of bits, the plurality of second bits are adjacent to the plurality of first bits.
11. The computer program product according to claim 8 or 9, wherein: The solving includes solving the plurality of combinatorial optimization problems based on a cost function, and The cost function is a function defined so that interactions between corresponding bits included in the plurality of first bits become integers, and Interactions between corresponding bits included in the plurality of second bits are made into integers.
12. The computer program product of claim 11, wherein: The solving includes solving the plurality of combinatorial optimization problems based on the cost function converted into an Ising model represented by: E=-Σw ij x i x j -∑b i x i in, The E is the cost function, wherein minimizing the E means solving the plurality of combinatorial optimization problems, The w ij is a numerical value representing the interaction between the i-th and j-th positions, The b i is a numerical value representing the offset with respect to the i-th bit, The x i is a binary variable indicating whether the i-th bit is 0 or 1, and The x j is a binary variable indicating whether the j-th bit is 0 or 1.
13. An optimization method using the optimization device according to any one of claims 1 to 7, the optimization method comprising: preparing bits of the annealing computer based on a plurality of combinatorial optimization problems to be solved in a single job, wherein the number of bits of the annealing computer to be prepared is equal to or greater than the total number of bits required for solving the plurality of combinatorial optimization problems; allocating bits of the prepared annealing computer based on the determined number, wherein, among a plurality of bits for solving a plurality of combinatorial optimization problems, a plurality of first bits are allocated to a first combinatorial optimization problem included in the plurality of combinatorial optimization problems, and a plurality of second bits are allocated to a second combinatorial optimization problem included in the plurality of combinatorial optimization problems, wherein the plurality of first bits and the plurality of second bits do not overlap; For each of the plurality of allocated bits, a value of an offset corresponding to an Ising model is set, and for each combination of the plurality of allocated bits, a weight corresponding to the Ising model is set; setting an interaction between each of the plurality of first bits and each of the plurality of second bits to zero by setting a corresponding weight; and The multiple combinatorial optimization problems are solved in a single job.
14. The optimization method according to claim 13, wherein: The first combinatorial optimization problem and the second combinatorial optimization problem are combinatorial optimization problems of the same type or different types.
15. The optimization method according to claim 13 or 14, wherein: The solving includes solving the plurality of combinatorial optimization problems based on a cost function, and The cost function is the following function: The function is defined so that interactions between corresponding bits included in the plurality of first bits become integers, and Interactions between corresponding bits included in the plurality of second bits are made into integers.
Citation Information
Patent Citations
Optimization problem calculation program and optimization problem calculation system
JP2020004387A