The present case relates to an arithmetic program, an arithmetic method, and an information processing device.
A technique is disclosed for optimizing a plurality of objective functions such as a production cost or a production completion time when an input order of products to a production line is optimized (for example, refer to Patent Documents 1 to 4).
Japanese Laid-open Patent Publication No. 2022-83200, Japanese Laid-open Patent Publication No. 2002-366587, US Patent Publication No. 2015/0019173, and US Patent Publication No. 2016/0306899 are disclosed as related arts
According to an aspect of the embodiments, a non-transitory computer-readable recording medium storing an arithmetic program for causing a computer to execute processing includes calculating single-objective optimal solutions that have better values than initial solutions by executing single-objective optimization by using each of a plurality of objective functions as a first evaluation function for the initial solutions, and executing, by using the single-objective optimal solutions as starting points, multi-objective optimization for a second evaluation function by using, as the second evaluation function, a linear weighted sum obtained by performing weighting for each of the plurality of objective functions according to the single-objective optimal solutions.
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.
In a case where multi-objective optimization with a plurality of objective functions set is performed, a solution space widens. Therefore, it involves a long time to start a search from an initial input order as an initial solution and calculate a Pareto optimal solution set that contains candidates for an optimal solution.
In one aspect, an object of the present invention is to provide an information processing device, an arithmetic method, and an arithmetic program that may shorten a calculation time.
There are optimization problems in fields of various industries including a manufacturing industry and a distribution industry. For example, in an optimization problem of a production plan at a manufacturing field, there is a problem that a relationship between a manufacturing time needed for a certain production plan and a cost generated in proportion to an operation time of a device becomes a trade-off. For example, there is a problem of a trade-off that, when the manufacturing time is shortened, an operation time of a legacy device having a high operating cost is increased and a cost is increased, and the like.
A multi-objective optimization problem for simultaneously optimizing a plurality of objective functions having a trade-off relationship is generally a problem of obtaining a Pareto solution. In the example described above, each of the manufacturing time needed for the certain production plan and the cost generated in proportion to the operation time of the device is the objective function. An explanatory variable is the production plan, and is, for example, an input order in which each product is input to a production process, or the like. The Pareto solution is a solution in which at least one of the plurality of objective functions is superior to those of other optional solutions.
In the example of
For example, a case is conceivable where a plurality of objective functions desired to be optimized is set to an evaluation function of a multi-objective optimization engine and the multi-objective optimization calculation is performed.
Therefore, a case is conceivable where the plurality of objective functions desired to be optimized is weighted, one evaluation function is set, and optimization calculation is performed with a single-objective optimization engine.
Therefore, in the following embodiments, an information processing device, an arithmetic method, and an arithmetic program that may shorten the calculation time will be described.
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 a device for a user to input needed information, and is a keyboard, a mouse, or the like. The display device 105 is a device that displays, on a screen, a result output from the result output unit 40, 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 objective function setting unit 10 sets a plurality of objective functions. The objective function setting unit 10 may set two objective functions or may set three or more objective functions. In the present embodiment, the objective function setting unit 10 sets N objective functions f1 to fN. The optimization execution unit 20 executes optimization such that the objective functions f1 to fN are optimized. The intermediate process recording unit 30 records a result in the middle of the execution of the optimization by the optimization execution unit 20. The result output unit 40 outputs the result of the optimization executed by the optimization execution unit 20.
Hereinafter, Pareto optimal solution calculation processing will be described with reference to a flowchart of
First, the objective function setting unit 10 sets the N objective functions (fn; n=1 to N) desired to be optimized (step S1). Each objective function is, for example, a production completion time in a production process, a cost related to production, or the like. A shorter production completion time is better, and a lower cost is better.
Next, the optimization execution unit 20 sets n to 1 (step S2). As a result, first, the objective function f1 is focused.
Next, the optimization execution unit 20 sets an initial value of each explanatory variable with a random value (step S3). The number of initial values may be one or plural. The initial value may be input by a user using the input device 104.
Next, the optimization execution unit 20 calculates values of the objective functions f1 to fN according to the explanatory variable (step S4). In a case where step S4 is executed for the first time, the values of the objective functions f1 to fN are calculated from the initial value of the explanatory variable. In a case where there is a plurality of the initial values, an initial solution group as exemplified in
Next, the intermediate process recording unit 30 records the explanatory variable used in step S4 and the values of the objective functions f1 to fN calculated in step S4 (step S5). Therefore, the intermediate process recording unit 30 records the initial solution group.
Next, the optimization execution unit 20 determines whether or not an optimal solution of the objective function fn has converged (step S6). Here, it is determined whether or not the objective function fn has reached the best value. Note that it may be determined whether or not a solution better than the initial value has been obtained.
In a case where it is determined as “No” in step S6, the optimization execution unit 20 updates the explanatory variable so that an evaluation function is optimized by a single-objective optimization engine (step S7). Thereafter, step S4 and the subsequent steps are executed again.
In a case where it is determined as “Yes” in step S6, the optimization execution unit 20 determines whether or not n is N or more (step S8). By execution of step S8, it may be determined whether or not single-objective optimization has been ended for all the objective functions.
In a case where it is determined as “No” in step S8, the optimization execution unit 20 adds 1 to n to obtain n+1 (step S9). Thereafter, step S3 and the subsequent steps are executed again.
In a case where it is determined as “Yes” in step S8, the optimization execution unit 20 extracts Pareto solutions from all calculation results (step S10). As a result, as exemplified in
Next, the optimization execution unit 20 calculates a linear weighted sum obtained by performing weighting according to arrangement of the Pareto solutions extracted in step S10 (step S11). For example, the weighting is performed in a direction perpendicular to an approximate plane approximating the arrangement of the Pareto solutions. When there are two objective functions, an approximate straight line of the Pareto solutions is used instead of the approximate plane described above. In
Next, the optimization execution unit 20 executes multi-objective optimization using the objective functions f1 to fN and the linear weighted sum as the evaluation functions (step S12). The initial value of the explanatory variable in this case is the explanatory variable corresponding to the Pareto solutions extracted in step S10.
Next, the optimization execution unit 20 calculates Pareto solutions by using an execution result of step S12 (step S13). The Pareto solutions are drawn in
As described above, each of the plurality of N objective functions fn(x) (n=1, . . . , N) desired to be optimized is set as the evaluation function of the single-objective optimization, and the optimization is performed by the single-objective optimization engine, and each optimal solution of the single-objective optimization and an explanatory variable thereof are solved. Using each optimal solution of the single-objective optimization as a starting point, the linear weighted sum obtained by weighting each objective function in the direction perpendicular to the Pareto front is set as the evaluation function, and the multi-objective optimization calculation is executed to solve the Pareto solutions. The search direction of the optimal solutions is set with the linear weighted sum while minimizing each objective function to solve the true Pareto front.
In this method, the single-objective optimization is performed on each objective function before the multi-objective optimization. Since the multi-objective optimization is performed using the optimal solutions obtained by the single-objective optimization as the starting points, a calculation time until reaching the true Pareto front is shortened. Note that, since a calculation load of the single-objective optimization is significantly smaller than that of the multi-objective optimization, the calculation load is reduced as a result as compared with a case where the multi-objective optimization is performed without performing the single-objective optimization, and the calculation time may be shortened.
In the first embodiment, a result of an optimal calculation process is used in the single-objective optimization, but the present invention is not limited to this. In a second embodiment, a case will be described where a result of an optimal calculation process is not used in single-objective optimization.
Hereinafter, Pareto optimal solution calculation processing according to the second embodiment will be described with reference to a flowchart of
First, the objective function setting unit 10 sets N objective functions (fn; n=1 to N) desired to be optimized (step S21). Each objective function is, for example, a production completion time in a production process, a cost related to production, or the like. A shorter production completion time is better, and a lower cost is better.
Next, the optimization execution unit 20 sets n to 1 (step S22). As a result, first, the objective function f1 is focused.
Next, the optimization execution unit 20 sets an initial value of an explanatory variable with a random value (step S23). The number of initial values may be one or plural. The initial value may be input by a user using the input device 104.
Next, the optimization execution unit 20 calculates values of the objective functions f1 to fN according to the explanatory variable (step S24). In a case where step S24 is executed for the first time, the values of the objective functions f1 to fN are calculated from the initial value of the explanatory variable. In a case where there is a plurality of the initial values, an initial solution group as exemplified in
Next, the optimization execution unit 20 determines whether or not an optimal solution of the objective function fn has converged (step S25). Here, it is determined whether or not the objective function fn has reached the best value. Note that it may be determined whether or not a solution better than the initial value has been obtained.
In a case where it is determined as “No” in step S25, the optimization execution unit 20 updates the explanatory variable so that an evaluation function is optimized by a single-objective optimization engine (step S26). Thereafter, step S24 and the subsequent steps are executed again.
In a case where it is determined as “Yes” in step S26, the optimization execution unit 20 determines whether or not n is N or more (step S27). By execution of step S27, it may be determined whether or not the single-objective optimization has been ended for all the objective functions.
In a case where it is determined as “No” in step S27, the optimization execution unit 20 adds 1 to n to obtain n+1 (step S28). Thereafter, step S23 and the subsequent steps are executed again.
In a case where it is determined as “Yes” in step S27, the optimization execution unit 20 extracts an optimal solution for each objective function (step S29). As exemplified in
Next, the optimization execution unit 20 calculates a linear addition sum obtained by performing weighting according to arrangement of the optimal solutions extracted in step S29 (step S30). For example, the weighting is performed in a direction perpendicular to a surface coupling the optimal solutions. When there are two objective functions, a straight line coupling the optimal solutions is used. In
Next, the optimization execution unit 20 executes multi-objective optimization using the objective functions f1 to fN and the linear weighted sum as the evaluation functions (step S31). The initial value of the explanatory variable in this case is an explanatory variable corresponding to the optimal solutions extracted in step S29.
Next, the optimization execution unit 20 calculates Pareto solutions by using an execution result of step S31 (step S32). The Pareto solutions are drawn in
As described above, each of the plurality of N objective functions fn(x) (n=1, . . . , N) desired to be optimized is set as the evaluation function of the single-objective optimization, and the optimization is performed by the single-objective optimization engine, and each optimal solution of the single-objective optimization and an explanatory variable thereof are solved. Using each optimal solution of the single-objective optimization as a starting point, each objective function fn and the linear weighted sum obtained by weighting each objective function in the direction perpendicular to a Pareto front are set as the evaluation functions, and the multi-objective optimization calculation is executed to solve the Pareto solutions. The search direction of the optimal solutions is set with the linear weighted sum while minimizing each objective function to solve the true Pareto front.
In this method, the single-objective optimization is performed on each objective function before the multi-objective optimization. Since the multi-objective optimization is performed using the optimal solutions obtained by the single-objective optimization as the starting points, a calculation time until reaching the true Pareto front is shortened. Note that, since a calculation load of the single-objective optimization is significantly smaller than that of the multi-objective optimization, the calculation load is reduced as a result as compared with a case where the multi-objective optimization is performed without performing the single-objective optimization, and the calculation time may be shortened.
Hereinafter, simulation results for the first embodiment will be described. As the objective functions, f1 and f2 are used. The multi-objective optimization was performed to minimize these objective functions. As an example, a standard problem of the following expression was used. This standard problem is disclosed in “Eckart Zitzler, Kalyanmoy Ded, and Lothar Thiele, Comparison of Multiobjective Evolutionary Algorithms: Empirical Results, Evolutionary Computation, vol. 8, Issue 2, pp. 173?195 (2000).”.
The following expressions are used as examples of the objective function f1 and the objective function f2.
Here, g(x2, . . . , xm) may be represented as the following expression.
Note that it is assumed that m=30 holds and the following expression holds.
The single-objective optimization was performed for each of the objective functions described above. An explanatory variable x=(x1, x2, . . . , x30) with an initial value set with a random value was updated by the single-objective optimization engine to minimize the objective functions. In each single-objective optimization, results of a calculation process (values of the explanatory variable x and f1(x) and f2(x)) were also output. Pareto solutions and explanatory variables thereof were obtained from all calculation results including the results of the calculation process of the single-objective optimization.
Next, using the Pareto solutions of f1(x) and f2(x) as starting points, the multi-objective optimization was performed with three objective functions including a linear weighted sum weighted in a direction perpendicular to an approximate straight line of a Pareto front, f1(x), and f2(x). Results are indicated in
Next, simulation results of the second embodiment will be described. In the second embodiment, the objective function was set using a specific layout of a manufacturing field.
The production line model in
In the process 2, no changeover is needed. In the process 2, three manufacturing devices 2 and two legacy devices with specifications different from those of the manufacturing devices 2 are arranged. The legacy device is a costly and time consuming device.
As an example, there are two changeover workers. Therefore, it is possible to simultaneously perform the changeover in at most two devices in parallel. A cost of each device increases in proportion to an operation time of the device.
With such a layout, as an example, a plan for optimizing a manufacturing time and a cost is made. For example, when it is attempted to shorten the manufacturing time by reducing the changeover, use of the legacy device increases and the cost increases, so that the manufacturing time and the cost are in a trade-off relationship.
As exemplified in
Two objective functions were set: the manufacturing time and the cost. It was assumed that a calculation time was extremely short by using a single-objective solving specialized engine capable of high-speed solving. A random value was set as an initial value. Results are indicated in
Next, the multi-objective optimization was performed with three objective functions of a linear weighted sum obtained by performing weighting in a direction perpendicular to a straight line coupling optimal solutions, the manufacturing time, and the cost using each single-objective optimal solution of the manufacturing time and the cost as a starting point. Results are indicated in
Note that, in each of the examples described above, the genetic algorithm is used as an optimization algorithm, but the present invention is not limited to this. Other optimization algorithms such as evolutionary algorithms may be used.
In each of the examples described above, the optimization execution unit 20 is an example of an execution unit that calculates single-objective optimal solutions that have better values than initial solutions by executing single-objective optimization by using each of a plurality of objective functions as a first evaluation function for the initial solutions, and executes, by using the single-objective optimal solutions as starting points, multi-objective optimization for a second evaluation function by using, as the second evaluation function, a linear weighted sum obtained by performing weighting for each of the plurality of objective functions according to the single-objective optimal solutions.
While the embodiments of the present invention have been described above in detail, the present invention is not limited to such specific embodiments, 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/032329 filed on Aug. 29, 2022 and designated the U.S., the entire contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP2022/032329 | Aug 2022 | WO |
Child | 19039792 | US |