Arithmetic program, arithmetic method, and information processing device
By generating integer arrays with a 1-way 1-hot constraint and using a genetic algorithm, the method addresses inefficiencies in binary variable sampling, reducing sampling times and improving solution accuracy in QUBO Ising models.
Patent Information
- Application Number
- JP2024010328
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-01-26
- Publication Date
- 2025-08-07
AI Technical Summary
Existing binary variable sampling techniques, such as those using the QUBO Ising model, suffer from inefficient sampling that requires a large number of iterations to find a good solution, often leading to increased sampling times and a risk of local solutions due to sequential sampling and constraints like the 1-way 1-hot constraint.
A method that generates multiple types of integer arrays as initial points, converts them into bit arrays with a 1-way 1-hot constraint, and uses a genetic algorithm to search for recommendation points, combining both FMDA and GA optimization to reduce sampling times while ensuring compliance with constraints, thereby avoiding local solutions.
This approach reduces the number of sampling times and improves the accuracy of finding optimal solutions by effectively utilizing a genetic algorithm to generate and refine recommendation points within the constraints, enhancing search efficiency and avoiding local optima.
Smart Images

Figure 2025115723000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a computing program, a computing method, and an information processing device. [Background technology]
[0002] Techniques for performing optimization using binary variables have been disclosed (see, for example, Patent Documents 1 to 3). [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Publication No. 2023-108368 [Patent Document 2] International Publication No. 2023-276213 [Patent Document 3] Japanese Patent Application Publication No. 2022-90249 Summary of the Invention [Problem to be solved by the invention]
[0004] For example, optimization can be achieved by sampling binary variables. However, sampling techniques using the QUBO Ising model involve sequential sampling of recommendation points on the model, which can limit the sampling area. As a result, there is a risk that the number of samplings will increase.
[0005] In one aspect, the present invention aims to provide a calculation program, a calculation method, and an information processing device that can reduce the number of sampling times. [Means for solving the problem]
[0006] In one aspect, when repeatedly executing a calculation process of creating an Ising model based on a learning data group, searching for a first set number of first recommendation points for the Ising model, searching for a second set number of second recommendation points for the learning data group using a genetic algorithm, and adding the first recommendation points, the first evaluation values of the first recommendation points, and the second recommendation points, the second evaluation values of the second recommendation points, to the learning data group as learning data, respectively, the calculation program causes the computer to execute the following processes: generating a plurality of types of integer arrays as initial points of each learning data of the learning data group; and, when searching for the first recommendation points, converting each learning data into a bit array of i and j by setting 1 when i=j in the integer array in a matrix of i and j and 0 otherwise, and then searching for the first recommendation points under the constraint that only one of the variables in each row in the matrix is 1, where i is an index of a variable in the integer array and j is an index representing the type of the variable. [Effects of the Invention]
[0007] The number of sampling times can be reduced. [Brief explanation of the drawings]
[0008] [Figure 1] FIG. 1 illustrates a solution search in QUBO format. [Figure 2] FIG. 10 is a diagram showing the rating values of movies watched by many users. [Figure 3] 1 is a flowchart showing the execution procedure of a sampling technique using a QUBO format model. [Figure 4] FIG. 10 is a diagram for explaining an overview of a 1way1hot constraint. [Figure 5] 1A is a block diagram illustrating an example of the overall configuration of an information processing device, and FIG. 1B is a block diagram illustrating an example of the hardware configuration of the information processing device. [Figure 6] 10 is a flowchart illustrating an example of an operation of the information processing device. [Figure 7]10 is a flowchart showing details of step S11. [Figure 8] FIG. 10 is a diagram illustrating an example of step S21 and step S22. [Figure 9] FIG. 10 is a diagram illustrating another example of step S21 and step S22. [Figure 10] 10 is a flowchart showing details of step S13. [Figure 11] (a) is a diagram illustrating crossover, and (b) is a diagram illustrating mutation. [Figure 12] FIG. 1 is a diagram summarizing the processing of the embodiment. [Figure 13] FIG. 10 is a diagram illustrating an example of a test question. [Figure 14] FIG. 10 shows the best value found in the search. [Figure 15] 10A is a diagram showing the details of the results of the FM-DA method alone, and FIG. 10B is a diagram showing the details of the results of the method of the embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0009] Binary variable sampling technology is used to search for a good solution with a high evaluation value from a large number of combinations and sequences. Examples of binary variable sampling technology include random sampling technology and sampling technology using the QUBO format Ising model.
[0010] While random sampling techniques allow for easy sampling, they have the drawback of being inefficient and requiring a large number of samplings to obtain a good solution with high accuracy.
[0011] An example of a sampling technique using a QUBO-format model is FMQA (Factorization Machine with Quantum Annealing). FMQA is a method that combines QA (Quantum Annealing) and FM (Machine Learning). FMQA creates a QUBO-format FM model from training data, finds a good answer through QA, analyzes the evaluation value of the good answer with a solver, adds the result to the training data, and performs interactive sampling. Another sampling technique that uses a QUBO-format model is FMDA technology. FMDA replaces the QA portion of FMQA with an Ising machine such as DA (Digital Annealer).
[0012] Here, the QUBO format stands for Quadratic Unconstrained Binary Optimization, which is a format that allows binary optimization without quadratic constraints. The QUBO format can be expressed, for example, as in the following formula. Note that x i = 0 or 1 (i = 1, ..., N). ij is x i and x j is the coupling coefficient of b i is x i is the bias coefficient. The first term on the right-hand side is a quadratic term and represents the interaction. The second term on the right-hand side is a linear term and represents the bias action. The third term on the right-hand side is a constant term. In the QUBO format, a good solution x is searched for to minimize E(x), which represents energy, according to the following formula, as illustrated in Figure 1.
number
[0013] Here, we will provide an overview of FMDA as an example of a sampling technique using a QUBO-style model. Figure 2 shows, as an example, the ratings of movies watched by many users. These ratings are in the form of n-dimensional vectors. First, we create a QUBO-style model to represent interactions from these ratings. A QUBO-style model can be expressed as follows:
number
[0014] In the above formula, w0, w i , v i , and v j is the coefficient to be learned. This machine learning model is strong against sparse datasets. Since this model is in QUBO format, it is possible to automatically generate a QUBO format model by training FM.
[0015] Figure 3 is a flowchart showing the execution procedure of the sampling technique using a QUBO format model. As illustrated in Figure 3, first, a training data group is generated by randomly generating training data (initial points) (step S1). The number of training data to be generated is determined by the user's settings.
[0016] Next, a solver is used to calculate an evaluation value for the initial point (step S2). The evaluation value is an index for determining whether the initial point and the recommended point (described later) are good or not. Through these steps, an initial learning data group consisting of a set of initial point and evaluation value is generated.
[0017] Next, a QUBO format model is created by generating an FM using the training data group (step S3). Since the FM is in QUBO format, generating an FM is equivalent to generating a QUBO format model. Other machine learning models can also be used as long as they can generate a QUBO format model.
[0018] Next, the created QUBO format model is optimized using DA to generate a good solution (DA recommendation point) that provides the best evaluation value (step S4).
[0019] Next, the evaluation value of the DA recommendation point is calculated using a solver (step S5).
[0020] Next, the evaluation result (a set of recommendation points and evaluation values) is added as learning data to the learning data group (step S6).
[0021] Next, it is determined whether the number of iterations has reached the upper limit (step S7). If the determination in step S7 is "No", the process is executed again from step S3. As a result, steps S3 to S6 are repeated until the termination condition is met. If the determination in step S7 is "Yes", the execution of the flowchart ends. Note that the termination condition may be, for example, when the amount of change in the objective function is less than a threshold value for a certain period of time.
[0022] The above procedure updates the training data set, enabling the optimal solution to be obtained.
[0023] Although FMDA is explained in Figure 3, the DA part of FMDA may be replaced with QA, and any other method can be used as long as it is an Ising machine that can solve QUBO. In addition to using an Ising machine dedicated to solving QUBO, the Ising model may also be solved using software.
[0024] Sampling techniques using QUBO-style models involve sequential sampling of recommendation points on the model, which can limit the sampling area. Furthermore, sampling performance using QUBO-style models is dependent on the set of training data used to generate the model. Furthermore, because FM is a second-order model, it may not be able to fully express the problem. Furthermore, when using multiple recommendation methods, it is difficult to adjust the number of recommendations. For these reasons, the number of samples must be increased in order to improve the accuracy of the search for the optimal solution.
[0025] Therefore, it is possible to improve the search efficiency by using the penalty method. The penalty method is a technique for finding an approximate solution by imposing a numerical penalty (deteriorating the objective function) when a constraint is violated in a problem with constraints. As an example, it is possible to use a 1-way 1-hot constraint to generate an initial point. Figure 4 is a diagram for explaining the outline of the 1-way 1-hot constraint. As shown in the example of Figure 4, in the 1-way 1-hot constraint, x i and x j When expressing and as a matrix, x is set so that only one state variable in each row is 1. i and x j Set.
[0026] However, when the 1way1hot constraint is used, a solution that violates the 1way1hot constraint may occur during the solution search, which may reduce the efficiency of the solution search. As a result, the solution searched may fall into a local solution. Therefore, in the following embodiment, an example will be described in which the number of samplings can be reduced while avoiding local solutions even when the 1way1hot constraint is applied. [Example]
[0027] Fig. 5(a) is a block diagram illustrating an example of the overall configuration of an information processing device 100. As illustrated in Fig. 5(a), the information processing device 100 includes a storage unit 10, an initial point generation unit 20, an evaluation unit 30, an FMDA execution unit 40, a GA execution unit 50, a learning data update unit 60, an output unit 70, and the like.
[0028] Fig. 5(b) is a block diagram illustrating an example of a hardware configuration of the information processing device 100. As illustrated in Fig. 5(b), the information processing device 100 includes a CPU 101, a RAM 102, a storage device 103, an input device 104, a display device 105, and the like.
[0029] The CPU (Central Processing Unit) 101 is a central processing unit. The CPU 101 includes one or more cores. The RAM (Random Access Memory) 102 is a volatile memory that temporarily stores programs executed by the CPU 101, data processed by the CPU 101, etc. The storage device 103 is a non-volatile storage device. For example, the storage device 103 may be a read-only memory (ROM), a solid-state drive (SSD) such as a flash memory, or a hard disk driven by a hard disk drive. The storage device 103 stores a calculation program. The input device 104 is an input device such as a keyboard or a mouse. The display device 105 is a display device such as an LCD (Liquid Crystal Display). When the CPU 101 executes the calculation program, a storage unit 10, an initial point generation unit 20, an evaluation unit 30, an FMDA execution unit 40, a GA execution unit 50, a learning data update unit 60, an output unit 70, etc. are realized. The storage unit 10, the initial point generation unit 20, the evaluation unit 30, the FMDA execution unit 40, the GA execution unit 50, the learning data update unit 60, the output unit 70, and the like may be implemented using hardware such as dedicated circuits.
[0030] Fig. 6 is a flowchart illustrating an example of the operation of the information processing device 100. As illustrated in Fig. 6, the initial point generation unit 20 generates an initial point of the learning data to generate a learning data group (step S11). The number of learning data to be generated is determined by a user setting.
[0031] FIG. 7 is a flowchart showing the details of step S11. As illustrated in FIG. 7, the initial point generation unit 20 randomly generates the number of initial points, each having integer information (step S21). The user may also generate initial points having integer information. Next, the initial point generation unit 20 converts the initial points generated in step S21 into a bit array (step S22). Thereafter, the flowchart in FIG. 7 ends.
[0032] FIG. 8 is a diagram illustrating an example of steps S21 and S22. As illustrated in the upper left diagram of FIG. 8, one initial point is randomly generated in the form of an integer array. "i" is the index of a variable in the integer array. Each "i" value is a different integer. For example, each "i" value is an integer arranged in order within a predetermined range. In the example of FIG. 8, each "i" value is an integer arranged in order from 1 to 10. An integer is generated as a variable under each "i". In this case, the integer is one of the values of each "i". Since each integer may be any value of each "i", two or more of the integers generated for each "i" may be the same integer. For example, all the integers generated for each "i" may have the same value. Alternatively, all the integers generated for each "i" may have different values. "j" is an index representing the type of variable.
[0033] In the example in the upper left of Figure 8, when "i" is arranged in order from 1 to 10, an integer array arranged in order from 1 to 10 is generated. This integer array is converted into a bit matrix as shown in the right of Figure 8. In the example in Figure 8, when "i" is the row and "j" is the column and all combinations of (i,j) are represented as a matrix, i = j is expressed as "1" and i ≠ j is expressed as "0". In the example in Figure 8, an integer array with the same value is generated for each "i", so it is "1" when (i,j) = (1,1), (2,2), (3,3), (4,4), (5,5), (6,6), (7,7), (8,8), (9,9), (10,10), and "0" otherwise. The resulting bit matrix is converted into a bit array as shown in the lower left.
[0034] FIG. 9 shows another example of steps S21 and S22. As shown in the upper left diagram of FIG. 9, one initial point is generated in the form of an integer array. In the example shown in the upper left diagram of FIG. 9, when "i" is arranged in order from 1 to 10, an integer array of "2, 1, 4, 3, 6, 5, 8, 7, 10, 10" is generated. This integer array is converted into a bit matrix as shown in the right diagram of FIG. 9. In this example, when (i, j)=(1, 2), (2, 1), (3, 4), (4, 3), (5, 6), (6, 5), (7, 8), (8, 7), (9, 10), (10, 10), the value is "1," and otherwise the value is "0." The obtained bit matrix is converted into a bit array as shown in the lower left diagram.
[0035] The number of initial points as described above is determined by the user's settings.
[0036] Referring again to FIG. 6, the evaluation unit 30 then uses a solver to calculate an evaluation value for each initial point (step S12). The evaluation unit 30 calculates an evaluation value for a bit array generated from integers, and the obtained evaluation value is reflected in the evaluation value columns of FIGS. 8 and 9. An initial training data group, which is a set of the initial point obtained in step S11 and the evaluation value calculated in step S12, is stored in the storage unit 10. Each training data group is a set of integer information, bit array information, and an evaluation value.
[0037] Next, the FMDA executing unit 40 generates a DA recommendation point, and the GA executing unit 50 generates a GA recommendation point (step S13).
[0038] FIG. 10 is a flowchart showing the details of step S13. As illustrated in FIG. 10, the FMDA execution unit 40 generates a model in the QUBO format by generating an FM from a group of training data stored in the storage unit 10 (step S31). The FMDA execution unit 40 generates the FM using a bit array. Since the FM is in the QUBO format, generating the FM is equivalent to generating a model in the QUBO format. Other machine learning models can also be used as long as they can generate a model in the QUBO format.
[0039] Next, the FMDA execution unit 40 calculates the coefficient of determination R for the training data set of the FM model. 2 (Step S32) The coefficient of determination R 2 is an index of model accuracy, and the closer it is to 1, the better the accuracy of searching for a good solution with a high evaluation value. 2 can be calculated, for example, by the following formula:
number
number
number
[0040] Next, the FMDA execution unit 40 calculates the coefficient of determination R 2It is determined whether or not the ratio is equal to or greater than a threshold value δ (step S33). The threshold value δ is set in advance by the user. An example of the threshold value δ will now be described. For example, when step S33 is executed for the first time, the threshold value δ is set to about 0.8. It is preferable to reduce the value of the threshold value δ when the DA recommendation is working effectively, and to increase the value of the threshold value δ when the DA recommendation is not working effectively. For example, whether or not the DA recommendation is working effectively can be determined by whether or not the ratio at which the determination is made "Yes" in step S33 is equal to or greater than a threshold value.
[0041] If the answer in step S33 is "Yes," the FMDA execution unit 40 generates DA recommendation points for the number of DA setting recommendations through QUBO optimization using DA with a 1-way-1-hot constraint (step S34). The number of DA setting recommendations is set in advance by the user. A DA recommendation point is a good solution (recommendation point) with the best evaluation value. Alternatively, a DA recommendation point is a good solution (recommendation point) with an evaluation value equal to or greater than a threshold. Alternatively, a DA recommendation point is a good solution (recommendation point) with an evaluation value up to a predetermined top ranking. Note that in a DA with a 1-way-1-hot constraint, constraint conditions are utilized when selecting inversion bits, and in 1-way-1-hot, a search can be performed that avoids constraint violations by inverting two bits simultaneously.
[0042] After that, the GA execution unit 50 sets the GA recommended number to the GA setting recommended number (step S35).
[0043] If the determination in step S33 is "No," the GA execution unit 50 sets the number of GA recommendations to (number of GA setting recommendations + number of DA setting recommendations) (step S36). The number of GA setting recommendations is set in advance by the user. Note that the number of GA recommendations does not have to be (number of GA setting recommendations + number of DA setting recommendations), and may be any number greater than the number of GA recommendations.
[0044] After executing step S35 or step S36, the GA execution unit 50 selects parent solids from the learning data group stored in the storage unit 10 in a number equal to the number of GA recommendations (step S37). The method of selecting parent solids is not particularly limited, but for example, the number of parent solids selected from the learning data group exceeds the number of GA recommendations (tournament size N T ) individuals are randomly selected, and the number of highly rated individuals recommended by the GA is selected from them (tournament selection). Alternatively, the number of highly rated individuals recommended by the GA can be selected from the training data set (elite selection). T is preset by the user.
[0045] Next, the GA execution unit 50 generates the number of child individuals (GA recommended points) recommended by the GA recommendation number from the parent individuals through crossover and mutation of the integer GA (step S38). In this case, the GA execution unit 50 uses the information of the integer array contained in each learning data.
[0046] FIG. 11(a) is a diagram illustrating crossover. For example, for parent individual A and parent individual B, one or more elements "j" of the same "i" are set as crossover points. Next, the crossover point of parent individual A is exchanged with the crossover point of parent individual B. FIG. 11(b) is a diagram illustrating mutation. First, two "i"s are selected at random. Next, the elements "j" of the two selected "i"s are exchanged. The crossover probability and mutation probability are preset by the user.
[0047] Referring again to Fig. 10, the GA execution unit 50 converts the integer information of the GA recommendation point generated in step S38 into a bit array as described with reference to Figs.
[0048] Next, the GA executing unit 50 determines whether or not the recommended point obtained in step S39 is a point that has already been searched (step S40).
[0049] If the determination in step S40 is "No," the searched recommendation points are eliminated, and the number of deleted points is set as the GA recommendation number (step S41). Then, the process is executed again from step S37. As a result, the searched recommendation points can be eliminated and GA recommendation points can be generated. If the determination in step S40 is "Yes," the flowchart in FIG. 10 is executed.
[0050] Referring again to Figure 6, the evaluation unit 30 then uses a solver to calculate the evaluation value of the recommendation point (step S14). The recommendation point here refers to the DA recommendation point and the GA recommendation point if step S36 has been executed, and refers to the GA recommendation point if step S35 has been executed.
[0051] Next, the learning data update unit 60 adds the evaluation results (a set of recommendation points and evaluation values) to the learning data groups as learning data (step S15). Each learning data group includes a set of integer information, bit array information, and an evaluation value.
[0052] Next, the learning data update unit 60 determines whether the number of learning data in the learning data group exceeds an upper limit number (step S16). The upper limit number of learning data is set in advance by the user.
[0053] If the determination in step S16 is "Yes," the learning data update unit 60 selects the upper limit number of learning data in descending order of evaluation value, and deletes all learning data other than the selected learning data (step S17). Alternatively, the learning data update unit 60 may select learning data with evaluation values equal to or greater than a predetermined value, and delete all learning data other than the selected learning data.
[0054] If the determination in step S16 is "No," or after execution of step S17, the FMDA execution unit 40 determines whether the number of iterations has reached an upper limit (step S18). The number of times step S18 is executed may be taken as the number of iterations. The upper limit of the number of iterations is set in advance by the user.
[0055] If the determination in step S18 is "No", the process is executed again from step S 13. If the determination in step S18 is "Yes", the execution of the flowchart ends.
[0056] The output unit 70 outputs the results of the processing in Fig. 6. The output results are displayed, for example, by the display device 105. For example, the output unit 70 may output the contents of the training data group, or may output training data with a high evaluation value from the training data group as a good answer.
[0057] FIG. 12 is a diagram summarizing the processing of this embodiment. As illustrated in FIG. 12, initial points are generated randomly in the form of integers. Next, the generated initial points are converted into a bit array, thereby converting them into a form that satisfies the 1-way-1-hot constraint. Furthermore, an evaluation value is calculated for each training data. A training data set of the obtained integer array and evaluation value is stored.
[0058] Next, a QUBO is generated using machine learning as shown below.
number
[0059] Next, we set the 1way1hot constraint when solving the DA and search for the optimal value of the FM model (QUBO) that satisfies the 1way1hot constraint. As a result, the DA recommendation point satisfies the 1way1hot constraint.
[0060] On the other hand, the training data is treated as a population, and recommendation points are generated using integer GA processing (selection, crossover, mutation). Since the GA recommendation points are integer information, they are converted to bit arrays after generation. By processing them as individual integer representations, the recommendation points satisfy the 1way1hot constraint.
[0061] According to this embodiment, the number of recommended DA settings and the number of recommended GA settings are determined according to the accuracy of the FM model generated from the training data group, thereby achieving both high accuracy for obtaining a good solution and a reduction in the number of sampling times.
[0062] For example, if the accuracy of the FM model generated from the training data is low, there is a risk that the accuracy of the DA's search for a good solution will be low. Therefore, the number of GA recommendations is increased without DA recommendation. By using GA, the training data can be treated as a population and recommendation points can be generated using GA processing. This makes it possible to sample a wide range of areas where the evaluation value is likely to improve. In this case, DA recommendations are not made with low accuracy, and as a result, a good solution can be obtained with high accuracy with fewer sampling attempts.
[0063] For example, if the accuracy of the FM model generated from the training data set is high, a good answer on the FM model can be generated as a recommendation point using DA. In this case, areas with high evaluation values can be actively sampled. This reduces the number of samples required to obtain a good answer.
[0064] As described above, according to this embodiment, it is possible to achieve both high accuracy for obtaining a good solution and a reduction in the number of sampling times.
[0065] Furthermore, in this embodiment, by generating initial points in the form of an integer array, it is possible to generate a training data set in a format that satisfies the 1-way 1-hot constraint. By setting a constraint that satisfies the 1-way 1-hot constraint during DA optimization, it is possible to satisfy the 1-way 1-hot constraint. Furthermore, by using an integer GA during GA optimization, it is possible to generate a training data set in a format that satisfies the 1-way 1-hot constraint. As a result, it is possible to satisfy the 1-way 1-hot constraint, and it is possible to prevent the optimization from falling into a local solution.
[0066] In addition, when the number of data in the training data group exceeds the upper limit, the training data group is updated according to the evaluation value of each piece of training data included in the training data group, thereby improving the accuracy of the modeling used for sampling.
[0067] It is also possible to set a 2-way, 1-hot constraint for generating the initial point. However, 2-way, 1-hot constraints tend to impose more constraints on initial point generation and the search for the optimal solution. In contrast, 1-way, 1-hot constraints impose fewer constraints on initial point generation and the search for the optimal solution than 2-way, 1-hot constraints. This widens the sampling region, making it easier to avoid falling into a local solution. For example, 1-way, 1-hot constraints are particularly effective for optimizing discrete variables, especially for problems with multiple possible variables.
[0068] (Simulation results) Below, we will explain the results of a simulation in which a hypothetical problem was set and calculation processing according to the above embodiment was performed. FIG. 13 is a diagram illustrating an example of a test problem. In this test problem, the score is the degree of deviation between a target integer array and a solution. In the example of FIG. 13, target values are defined for four indexes: v0, v1, v2, and v3. Of the evaluation points for v0, v1, v2, and v3 of a certain solution, three differ from the target value. Since the number of these values is used as the degree of deviation, the score value E in the example of FIG. 13 is 3.
[0069] For this test problem, sampling was performed using two methods: FMDA using the penalty method and the method of this example. As common settings, the number of variables was set to 25 and the number of bits used was set to 530. The number of initial points was set to 160, which reduced the number of initial points relative to the number of bits used. v0∈{0,1,...,50}, and the other v1,v2,...,v 24 ∈{0,1,…,20}.
[0070] In the FMDA using the penalty method, the following formula was applied to the test problem in Figure 13. bit is the number of bits used, and x ij ∈{0,1}. α=5 / N bit Let β = 1 and C = Nv. The penalty term has a positive value in the case of constraint violation.
number
[0071] FIG. 14 is a diagram showing the best value found by the search. The vertical axis represents the energy E in QUBO format. Therefore, the smaller the value on the vertical axis, the better the result. The number of analyses on the horizontal axis represents the number of iterations. As shown in FIG. 14, in this example, it can be seen that the optimal solution was found with a small number of analyses.
[0072] Figure 15(a) shows the detailed results of the FM-DA method alone. In Figure 15(a), the evaluation value (energy E) of each solution obtained is plotted. As shown in Figure 15(a), it can be seen that FM-DA converges to a local solution. This is thought to be because a large number of constraint violations occurred in the penalty method.
[0073] In contrast, Figure 15(b) shows the detailed results of the method of this embodiment. As shown in Figure 15(b), in this embodiment, optimization can be searched for with a small number of analyses. This is thought to be because constraint violations during the search can be avoided.
[0074] In the above example, the initial point generation unit 20 is an example of an initial point generation unit that generates multiple types of integer arrays as initial points for each piece of learning data in a learning data group. When the FMDA execution unit 40 and the GA execution unit 50 search for a first recommendation point, for each piece of learning data, if the index of the variable in the integer array is i and the index representing the type of variable is j, then in a matrix of i and j, if i=j in the integer array, it is set to 1, and otherwise it is set to 0, and after converting into a bit array of i and j, it searches for a first recommendation point with a constraint that only one of the variables in each row in the matrix is 1, and when searching for a second recommendation point, it is an example of an execution unit that applies a genetic algorithm to the integer array format.
[0075] Although the embodiments of the present invention have been described in detail above, the present invention is not limited to such specific embodiments, and various modifications and variations are possible within the scope of the gist of the present invention as described in the claims. (Appendix 1) In a case where an arithmetic process of creating an Ising model based on a learning data group, searching for a first set number of first recommendation points for the Ising model, searching for a second set number of second recommendation points for the learning data group by a genetic algorithm, and adding the first recommendation points and the first evaluation values of the first recommendation points, and the second recommendation points and the second evaluation values of the second recommendation points to the learning data group as learning data, is repeatedly performed, On the computer, generating a plurality of types of integer arrays as initial points of each learning data of the learning data group; When searching for the first recommendation point, a process of converting each of the learning data into a bit array of i and j by setting the value of 1 when an index of a variable in the integer array is i and the value of an index representing a type of the variable in the matrix of i and j in the integer array and setting the value of 0 otherwise, and then searching for the first recommendation point under the constraint that only one variable in each row in the matrix is 1; and applying the genetic algorithm to an integer array format when searching for the second recommendation point. (Appendix 2) The computer, 2. The arithmetic program according to claim 1, wherein, when the searched-for second recommendation point is included in the learning data group, a process of searching for another second recommendation point is executed. (Appendix 3) The computer, 2. The arithmetic program according to claim 1, wherein the arithmetic program executes a process of determining the first set number and the second set number in accordance with accuracy of the Ising model. (Appendix 4) The computer, 4. The arithmetic program according to claim 3, wherein, when the accuracy of the Ising model is less than a threshold, the arithmetic program executes a process of increasing the second set number and searching for the second recommendation point without searching for the first recommendation point. (Appendix 5) The computer, 4. The arithmetic program according to claim 3, wherein, when the accuracy of the Ising model is less than a threshold, the arithmetic program executes a process of setting the sum of the first set number and the second set number as the second set number without searching for the first recommendation point, and searching for the second recommendation point. (Appendix 6) The computer, 4. The arithmetic program according to claim 3, wherein, when the accuracy of the Ising model is equal to or greater than a threshold, a process of searching for the first recommendation point and the second recommendation point is executed without changing the first set number and the second set number. (Appendix 7) an upper limit is set on the number of the training data in the training data group; The computer, 2. The arithmetic program according to claim 1, further comprising: a program for updating the training data group in accordance with an evaluation value of each of the training data when the number of the training data in the training data group exceeds the upper limit. (Appendix 8) The computer, 8. The arithmetic program according to claim 7, wherein, when the number of the training data in the training data group exceeds the upper limit, the arithmetic program executes a process of leaving the upper limit number of the training data in the training data group in order of highest evaluation value and deleting the other training data. (Appendix 9) In a case where an arithmetic process of creating an Ising model based on a learning data group, searching for a first set number of first recommendation points for the Ising model, searching for a second set number of second recommendation points for the learning data group by a genetic algorithm, and adding the first recommendation points and the first evaluation values of the first recommendation points, and the second recommendation points and the second evaluation values of the second recommendation points to the learning data group as learning data, is repeatedly performed, The computer generating a plurality of types of integer arrays as initial points of each learning data of the learning data group; When searching for the first recommendation point, a process of converting each of the learning data into a bit array of i and j by setting the value of 1 when an index of a variable in the integer array is i and the value of an index representing a type of the variable in the matrix of i and j in the integer array and setting the value of 0 otherwise, and then searching for the first recommendation point under the constraint that only one variable in each row in the matrix is 1; and applying the genetic algorithm to an integer array format when searching for the second recommendation point. (Appendix 10) The computer 10. The calculation method according to claim 9, wherein, when the searched-for second recommendation point is included in the learning data group, a process of searching for another second recommendation point is executed. (Appendix 11) The computer 10. The calculation method according to claim 9, wherein a process of determining the first set number and the second set number is executed in accordance with accuracy of the Ising model. (Appendix 12) The computer 12. The calculation method according to claim 11, wherein, when the accuracy of the Ising model is less than a threshold, a process of increasing the second set number and searching for the second recommendation point is executed without searching for the first recommendation point. (Appendix 13) The computer 12. The calculation method according to claim 11, wherein, when the accuracy of the Ising model is less than a threshold, the first recommendation point is not searched for, but the sum of the first set number and the second set number is set as the second set number, and a process of searching for the second recommendation point is executed. (Appendix 14) The computer 12. The calculation method according to claim 11, wherein, when the accuracy of the Ising model is equal to or greater than a threshold, a process of searching for the first recommendation points and the second recommendation points is executed without changing the first set number and the second set number. (Appendix 15) an upper limit is set on the number of the training data in the training data group; The computer 10. The calculation method according to claim 9, wherein, when the number of the training data in the training data group exceeds the upper limit, a process of updating the training data group is executed in accordance with an evaluation value of each of the training data. (Appendix 16) The computer 16. The computing method according to claim 15, wherein, when the number of the training data in the training data group exceeds the upper limit, a process is executed in which the upper limit number of the training data is left in the training data group in descending order of evaluation value, and the other training data is deleted. (Appendix 17) a computation process that repeatedly executes the following computation process: creating an Ising model based on a learning data group; searching for a first set number of first recommendation points for the Ising model; searching for a second set number of second recommendation points for the learning data group using a genetic algorithm; and adding the first recommendation points and first evaluation values of the first recommendation points, and the second recommendation points and second evaluation values of the second recommendation points, to the learning data group as learning data; an initial point generation unit that generates a plurality of types of integer arrays as initial points of each learning data of the learning data group; an execution unit that, when searching for the first recommendation point, converts each of the learning data into a bit array of i and j by setting 1 when an index of a variable in the integer array is i and j when an index representing a type of the variable is j, and setting 0 otherwise, and then searches for the first recommendation point under a constraint that only one of the variables in each row in the matrix is 1, and applies the genetic algorithm to the format of the integer array when searching for the second recommendation point. (Appendix 18) 18. The information processing device according to claim 17, wherein the execution unit searches for another second recommendation point when the searched second recommendation point is included in the learning data group. (Appendix 19) 18. The information processing device according to claim 17, wherein the execution unit determines the first set number and the second set number according to accuracy of the Ising model. (Appendix 20) The information processing device described in Appendix 19, wherein, when the accuracy of the Ising model is less than a threshold, the execution unit increases the second set number without searching for the first recommendation point and searches for the second recommendation point. (Appendix 21) The information processing device described in Appendix 19, wherein, when the accuracy of the Ising model is less than a threshold, the execution unit does not search for the first recommendation point, but sets the sum of the first set number and the second set number as the second set number and searches for the second recommendation point. (Appendix 22) The information processing device described in Appendix 19, wherein the execution unit searches for the first recommendation point and the second recommendation point without changing the first set number and the second set number when the accuracy of the Ising model is equal to or greater than a threshold. (Appendix 23) an upper limit is set on the number of the training data in the training data group; 18. The information processing device according to claim 17, wherein the execution unit updates the training data group according to the evaluation value of each of the training data when the number of the training data in the training data group exceeds the upper limit. (Appendix 24) 24. The information processing device according to claim 23, wherein, when the number of the training data in the training data group exceeds the upper limit, the execution unit leaves the upper limit number of the training data in the training data group in order of highest evaluation value and deletes the other training data. [Explanation of symbols]
[0076] 10 Storage area 20 Initial point generation section 30 Evaluation Department 40 FMDA Executive Department 50 GA Executive Department 60 Learning data update unit 70 Output section 100 Information processing device 101 CPU 102 RAM 103 Storage device 104 Input Device 105 Display device
Claims
1. In a case where an arithmetic process of creating an Ising model based on a learning data group, searching for a first set number of first recommendation points for the Ising model, searching for a second set number of second recommendation points for the learning data group by a genetic algorithm, and adding the first recommendation points and first evaluation values of the first recommendation points, and the second recommendation points and second evaluation values of the second recommendation points to the learning data group as learning data, is repeatedly performed, On the computer, generating a plurality of types of integer arrays as initial points of each learning data of the learning data group; a process of searching for the first recommendation point, for each of the learning data, assuming that an index of a variable in the integer array is i and an index representing a type of the variable is j, converting the learning data into a bit array of i and j by setting 1 when i=j in the integer array in a matrix of i and j and setting 0 otherwise, and then searching for the first recommendation point under the constraint that only one of the variables in each row in the matrix is 1; and applying the genetic algorithm to an integer array format when searching for the second recommendation point.
2. The computer, 2. The arithmetic program according to claim 1, wherein, when the searched-for second recommendation point is included in the learning data group, a process of searching for another second recommendation point is executed.
3. The computer, The arithmetic program according to claim 1 , further comprising: a program for executing a process of determining the first set number and the second set number in accordance with accuracy of the Ising model.
4. The computer, 4. The arithmetic program according to claim 3, wherein, when the accuracy of the Ising model is less than a threshold, a process of increasing the second set number and searching for the second recommendation point without searching for the first recommendation point is executed.
5. The computer, 4. The arithmetic program according to claim 3, further comprising: when the accuracy of the Ising model is less than a threshold, the program executes a process of searching for the second recommendation point by setting the sum of the first set number and the second set number as the second set number without searching for the first recommendation point.
6. The computer, 4. The arithmetic program according to claim 3, wherein, when the accuracy of the Ising model is equal to or greater than a threshold, a process of searching for the first recommendation points and the second recommendation points is executed without changing the first set number and the second set number.
7. an upper limit is set on the number of the training data in the training data group; The computer, 2. The arithmetic program according to claim 1, further comprising: a program for updating the training data group in accordance with an evaluation value of each of the training data when the number of the training data in the training data group exceeds the upper limit.
8. The computer, 8. The arithmetic program according to claim 7, wherein, when the number of the learning data in the learning data group exceeds the upper limit, a process is executed in which the upper limit number of the learning data is left in the learning data group in descending order of evaluation value and the remaining learning data is deleted.
9. In a case where an arithmetic process of creating an Ising model based on a learning data group, searching for a first set number of first recommendation points for the Ising model, searching for a second set number of second recommendation points for the learning data group by a genetic algorithm, and adding the first recommendation points and first evaluation values of the first recommendation points, and the second recommendation points and second evaluation values of the second recommendation points to the learning data group as learning data, is repeatedly performed, The computer generating a plurality of types of integer arrays as initial points of each learning data of the learning data group; a process of searching for the first recommendation point, for each of the learning data, assuming that an index of a variable in the integer array is i and an index representing a type of the variable is j, converting the learning data into a bit array of i and j by setting 1 when i=j in the integer array in a matrix of i and j and setting 0 otherwise, and then searching for the first recommendation point under the constraint that only one of the variables in each row in the matrix is 1; and applying the genetic algorithm to an integer array format when searching for the second recommendation point.
10. a computation process that repeatedly executes the following computation process: creating an Ising model based on a learning data group; searching for a first set number of first recommendation points for the Ising model; searching for a second set number of second recommendation points for the learning data group by a genetic algorithm; and adding the first recommendation points and first evaluation values of the first recommendation points, and the second recommendation points and second evaluation values of the second recommendation points, as learning data, to the learning data group; an initial point generation unit that generates a plurality of types of integer arrays as initial points of each learning data of the learning data group; an execution unit that, when searching for the first recommendation point, converts each of the learning data into a bit array of i and j by setting 1 when an index of a variable in the integer array is i and an index representing a type of the variable in a matrix of i and j, and setting 0 otherwise, and searches for the first recommendation point under a constraint that only one of the variables in each row in the matrix is 1, and applies the genetic algorithm to the format of the integer array when searching for the second recommendation point.
Citation Information
Patent Citations
Optimization device, optimization method, and optimization program
JP2022090249A
Information processing device, information processing method, and information processing program
JP2023108368A
Information processing device, information processing method, and information processing program
WO2023276213A1