The present case is related to an arithmetic method, an arithmetic program, and an information processing device.
In fields of various industries, optimization problems to obtain good effects exist. For these optimization problems, an optimization algorithm for obtaining an exact solution that achieves a highest effect in calculation has been studied.
Related art is disclosed in Z. Xue, and F. Pedroso de Lima: Robust Design Optimization on an Inline Three-Cylinder Engine Balance Shaft with Many Stochastic Variables. SAE Technical Paper, 12 (2019) 2019-01-0329 and S. Tsutsui: Genetic Algorithms with a Robust Solution Searching Scheme. IEEE transactions on Evolutionary Computation, 1 (1997) 201-208.
According to an aspect of the embodiments, an arithmetic method executed by a computer includes: a first processing of repeating generation evolution by a first optimization algorithm that causes generation evolution by a genetic algorithm such that an objective function satisfies a predetermined condition by giving variations to an input variable for each individual; and a second processing of repeating generation evolution by a second optimization algorithm that repeats to give variations to an input variable for each individual after a predetermined generation obtained by the first processing to obtain an individual a plurality of times, and causes generation evolution by a genetic algorithm such that a statistical value of an objective function of each individual obtained satisfies a predetermined condition.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention.
However, in an actual field, work may not be performed according to an exact solution. In this case, there is a possibility that an effect that is supposed to be obtained with the exact solution is greatly reduced. Therefore, a highly robust optimization algorithm has been studied.
However, a calculation time monotonically increases as the number of sampling points increases. Therefore, it is difficult to obtain an optimal solution in a practical calculation time. On the other hand, since an evaluation value of one sampling point greatly affects selection of a solution, a position of a Pareto solution calculated as an optimal solution tends to be overestimated.
In one aspect, an object of the present invention is to provide an arithmetic program, an arithmetic method, and an information processing device that may obtain a highly effective optimal solution while suppressing a calculation time.
Before describing an embodiment, an outline of an optimization algorithm will be described.
Optimization problems exist in fields of various industries including a distribution industry and a manufacturing industry. For these problems, an optimization algorithm for obtaining an exact solution that achieves a highest effect in calculation has been studied.
Here, the exact solution is a solution having a highest evaluation index. For example, in a production line, the evaluation index includes a production completion time, a delivery time, a production cost, and the like. In boxing work, the evaluation index is a waste material amount, a working time, and the like. The optimization algorithm is an algorithm that uses one or more evaluation indexes as an objective function and performs optimization such that the objective function becomes favorable. Note that, in the production line, input variables are conditions such as a working time needed for each product in addition to initial order of input of products into the production line. In the boxing work, input variables are conditions such as a size of each product, a weight of each product, and a size of a box, in addition to initial order of boxing of products. A solution to be obtained is order of input of the products into the production line, or the like. In the boxing work, a solution to be obtained is boxing order of the products, or the like.
In the optimization algorithm, an exact solution having the highest evaluation index may be obtained. However, when an attempt is made to apply the exact solution obtained by these optimization algorithms to a field, since various variations may occur in the actual field, it is difficult to perform work according to the exact solution, and as a result, it is conceivable that work content is slightly deviated from the exact solution.
Here, an exact solution obtained by a conventional method is often a solution that may locally obtain a high effect. Therefore, it is conceivable that, when work content deviates from the exact solution (=tolerance occurs), an effect is drastically reduced, and an assumed effect may not be obtained.
For example, in the boxing work, phenomena are conceivable in which a time needed for work becomes long due to a difference in a skill level of a worker, packing work according to the exact solution may not be performed due to a size error of a product handled in the work, and the like. These phenomena may occur in an actual field. When these phenomena occur, the work content deviates from the exact solution.
For example, an optimal solution on a right side of
The central processing unit (CPU) 101 is a central processing unit. The CPU 101 includes one or more cores. The random access memory (RAM) 102 is a volatile memory that temporarily stores a program to be executed by the CPU 101, data to be processed by the CPU 101, and the like. The storage device 103 is a nonvolatile storage device. As the storage device 103, for example, a read only memory (ROM), a solid state drive (SSD) such as a flash memory, a hard disk to be driven by a hard disk drive, or the like may be used. The storage device 103 stores an arithmetic program. The input device 104 is an input device such as a mouse or a keyboard. Alternatively, the input device 104 is an interface such as an external memory such as a USB memory. The display device 105 is a device that displays a processing result of the information processing device 100 or the like, and is a display or the like. Each unit of the information processing device 100 is implemented by the CPU 101 executing the arithmetic program. Note that hardware such as a dedicated circuit may be used as each unit of the information processing device 100.
The storage unit 10 stores a model of a packaging box.
Furthermore, the storage unit 10 stores product information regarding products to be arranged in the packaging box in order.
Here, a multi-objective robust design optimization (MORDO) method will be described as the highly robust optimization method. The MORDO method is a method of repeating arithmetic operations by multiplexing variations by a Monte Carlo method. Specifically, the MORDO method is a method of preparing a solution in which variations are given to an input variable, and obtaining an optimal solution by using a statistical value such as an average value or a standard deviation obtained by a variable to which variations are repeatedly given at a time of evaluation of an optimization arithmetic operation as an objective function.
Next, variations are given to the primary parent using Gaussian noise or the like (step S2). For example, a plurality of types of variations is generated. For example, for a product shape of each piece of the product information stored in the storage unit 10, a size of 1% increase, a size of 2% increase, a size of 1% decrease, a size of 2% decrease, or the like is generated as each variation.
Next, an objective function of each individual corresponding to each variation when the variations are given to the primary parent is evaluated (step S3). In other words, an objective function of a solution obtained for each variation value is evaluated.
Next, a plurality of excellent individuals whose objective functions satisfy predetermined conditions is selected (step S4). Next, a plurality of children is generated by multiplying the excellent individuals (step S5). Next, the plurality of children is mutated (step S6).
Next, variations are given to each individual after the mutation using the Gaussian noise (step S7). The variations are similar to those in step S2. Next, an objective function of each individual corresponding to each variation when the variations are given to each individual after the mutation is evaluated (step S8). By executing steps S7 and S8 a plurality of times, it is possible to give variations to each individual the plurality of times. After steps S7 and S8 are executed the plurality of times, an average value and variance of the objective functions of each individual are calculated for the variations given the plurality of times (step S9). Next, the average value and the variance of each individual are evaluated (step S10). Thereafter, the processing is again executed from step S4. After the processing from step S4 to step S10 is repeated a predetermined number of times, the execution of the flowchart ends.
In this manner, a solution having a high evaluation value is finally calculated as an optimal solution. In the MORDO method, a sufficient number of sampling points are repeatedly evaluated in the vicinity of an input variable, so that a highly robust solution may be obtained.
However, in the MORDO method, a calculation time monotonically increases as the number of sampling points increases. Therefore, in an optimization problem in which “finite element method analysis” or the like in which a calculation cost of an evaluation value of one time is high is used as a solver, it is difficult to obtain an optimal solution in a practical calculation time by the MORDO method.
Next, as another highly robust optimization method, a robust genetic algorithm (Robust GA) method will be described. The Robust GA method is a method of performing generation evolution by using a genetic algorithm (GA) in an optimization engine and generating variations for each evaluation of generation evolution by the genetic algorithm.
Next, a plurality of excellent individuals whose objective functions satisfy predetermined conditions is selected (step S14). Next, a plurality of children is generated by multiplying the excellent individuals (step S15). Next, the plurality of children is mutated (step S16).
Next, variations are given to each individual after the mutation using the Gaussian noise (step S17). The variations are similar to those in step S12. Next, an objective function of each individual corresponding to each variation when the variations are given to each individual after the mutation is evaluated (step S18). Thereafter, the processing is again executed from step S4. After the processing from step S14 to step S18 is repeated a predetermined number of times, the execution of the flowchart ends.
In this manner, a solution to which variations are given is prepared as an input variable, and objective functions obtained by giving variations only once are used as evaluation values. In the course of generation evolution, solutions with low robustness are weeded out, and a highly robust solution that remains finally is calculated as an optimal solution.
In the Robust GA method, since there is only one sampling point in the vicinity of an input variable, there is no calculation loss, and a large number of solutions may be evaluated. On the other hand, since an evaluation value of one sampling point greatly affects selection of a solution, a position of a Pareto solution calculated as an optimal solution tends to be overestimated.
Therefore, in the present embodiment, a Hybrid method in which a switch generation is set and the MORDO method and the Robust GA method are selectively used is adopted. Specifically, in younger generations whose number of generations is smaller than the number of switch generations, the Robust GA method is used to weed out solutions with low robustness while reducing a calculation cost. In generations whose number of generations exceeds the number of switch generations, the MORDO method that may obtain solutions with higher robustness is used.
In this manner, by switching from the Robust GA method to the MORDO method in the middle, it is possible to weed out solutions with low robustness that may have been overestimated in the Robust GA method. Therefore, it is possible to calculate a highly robust optimal solution in a practical time. Note that, when the MORDO method is used first and is switched to the Robust GA method from the middle, a final solution becomes a most elite solution, and thus the robustness is reduced.
Next, the first arithmetic unit 30 gives variations to the primary parent using the Gaussian noise or the like (step S22). For example, a plurality of types of variations is generated. For example, for a product shape of each piece of the product information stored in the storage unit 10, a size of 1% increase, a size of 2% increase, a size of 1% decrease, a size of 2% decrease, or the like is generated as each variation.
Next, the determination unit 50 evaluates an objective function of each individual corresponding to each variation when the variations are given to the primary parent (step S23). In other words, an objective function of a solution obtained for each variation is evaluated. For example, the determination unit 50 determines whether or not each individual is favorable by determining whether or not the objective function of each individual is equal to or greater than a threshold. In a case where there is a plurality of objective functions, the determination unit 50 determines whether or not each individual is favorable by determining whether or not each objective function is equal to or greater than the threshold. Alternatively, the determination unit 50 determines whether or not each individual is favorable by determining whether or not an arithmetic mean in a case where a weight is set to each objective function is equal to or greater than the threshold.
Next, the first arithmetic unit 30 selects a plurality of excellent individuals whose objective functions are favorable (step S24). Next, the first arithmetic unit 30 generates a plurality of children by multiplying the excellent individuals (step S25). Next, the first arithmetic unit 30 causes the plurality of children to be mutated (step S26). Next, the first arithmetic unit 30 determines whether or not the number of generations exceeds the number of switch generations (step S27).
In a case where it is determined as “No” in step S27, the first arithmetic unit 30 gives variations to each individual after the mutation using the Gaussian noise or the like (step S28). The variations in this case are similar to those in step S22. Next, the determination unit 50 evaluates an objective function of each individual corresponding to each variation when the variations are given to each individual after the mutation (step S29). For example, the evaluation similar to that in step S23 is performed. Thereafter, the processing from step S24 is repeated.
In a case where it is determined as “Yes” in step S27, the second arithmetic unit 40 gives variations to each individual after the mutation using the Gaussian noise or the like (step S31). The variations in this case are similar to those in step S22. Next, the determination unit 50 evaluates an objective function of each individual corresponding to each variation when the variations are given to each individual after the mutation (step S32). By executing steps S31 and S32 a plurality of times, it is possible to give variations to each individual the plurality of times. After steps S31 and S32 are executed the plurality of times, the second arithmetic unit 40 calculates an average value and variance of the objective functions of each individual for the variations given the plurality of times (step S33).
Next, the determination unit 50 evaluates the average value and the variance of each individual (step S34). For example, the determination unit 50 determines whether or not the average value is equal to or greater than a threshold, and determines whether the variance is equal to or less than a threshold. Thereafter, the processing is again executed from step S24. After the processing from step S24 is repeated a predetermined number of times, the execution of the flowchart ends. Note that the output unit 60 outputs an obtained optimization result to the display device 105. As a result, the display device 105 displays the optimization result.
Note that, in the present embodiment, the average value and the variance of the objective functions are evaluated, but other statistical values such as a median value and a standard deviation may be used.
Subsequently, a modification will be described. As illustrated in
Next, the first arithmetic unit 30 selects a plurality of excellent individuals whose objective functions are favorable (step S44). Next, the first arithmetic unit 30 generates a plurality of children by multiplying the excellent individuals (step S45). Next, the first arithmetic unit 30 causes the plurality of children to be mutated (step S46). Next, the first arithmetic unit 30 gives variations to each individual after the mutation using the Gaussian noise or the like (step S47). Next, the determination unit 50 evaluates an objective function of each individual corresponding to each variation when the variations are given to each individual after the mutation (step S48). Next, the determination unit 50 evaluates an objective function of each individual when the variations are given (step S49). Thereafter, the processing from step S44 is repeated. In this case, the number of repetitions is set to exceed the number of switch generations.
In a case where the number of repetitions from step S44 reaches a predetermined number exceeding the number of switch generations, after the execution of step S49, the second arithmetic unit 40 extracts a solution of a higher generation equal to or higher than a switch generation (step S50). Next, the second arithmetic unit 40 gives variations to each individual after the mutation using the Gaussian noise or the like (step S51). Next, the determination unit 50 evaluates an objective function of each individual corresponding to each variation when the variations are given to each individual after the mutation (step S52). Thereafter, the processing from step S51 is repeated.
In a case where the number of repetitions from step S51 reaches the predetermined number, after the execution of step S52, the second arithmetic unit 40 calculates an average value and variance of the objective functions for the variations given the predetermined number (step S53). Next, the determination unit 50 evaluates an objective function when the variations are given (step S54). For example, the determination unit 50 determines whether or not the average value is equal to or greater than a threshold, and determines whether the variance is equal to or less than a threshold. Thereafter, the execution of the flowchart ends. Note that the output unit 60 outputs an obtained optimization result to the display device 105. As a result, the display device 105 displays the optimization result.
It may be seen that, also in the present modification, a highly robust and highly effective optimal solution may be obtained while suppressing the calculation time, by repeating generation evolution by the Robust GA method and thereafter repeating generation evolution by the MORDO method for individuals after a predetermined generation.
Note that, in each example described above, the result output by the output unit 60 is output to the display device 105, but may be output to an operation device 200.
In each example described above, the first arithmetic unit 30 is an example of a first arithmetic unit that repeats generation evolution by a first optimization algorithm that causes generation evolution by a genetic algorithm such that an objective function satisfies a predetermined condition by giving variations to an input variable for each individual. The second arithmetic unit 40 is an example of a second arithmetic unit that repeats generation evolution by a second optimization algorithm that repeats to give variations to an input variable for an individual after a predetermined generation obtained by the first arithmetic unit to obtain an individual a plurality of times, and causes generation evolution by a genetic algorithm such that a statistical value of an objective function of each individual obtained satisfies a predetermined condition. The output unit 60 is an example of an output unit that outputs an individual obtained by repeating the processing by the second arithmetic unit to the display device.
While the embodiment of the present invention has been described above in detail, the present invention is not limited to such a particular embodiment, and a variety of modifications and alterations may be made within the scope of the gist of the present invention described in the claims.
All examples and conditional language provided herein are intended for the pedagogical purposes of aiding the reader in understanding the invention and the concepts contributed by the inventor to further the art, and are not to be construed as limitations to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although one or more embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
This application is a continuation application of International Application PCT/JP2022/009337 filed on Mar. 4, 2022 and designated the U.S., the entire contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP2022/009337 | Mar 2022 | WO |
Child | 18787393 | US |