This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2010-212686, filed on Sep. 22, 2010, the entire contents of which are incorporated herein by reference.
This technique relates to a computational processing technique using computer algebra.
A problem to simultaneously minimize values of two or more objective functions is known as a multiobjective optimization problem. Such a multiobjective optimization problem is used in a design stage of producing goods, and some conventional examples exist that the multiobjective optimization problem is applied to the design of a Static Random Access Memory (SRAM) and a slider in a Hard disk drive.
For example, in the design of SRAM, a problem to simultaneously minimize an objective function f1 (x1, x2) for the power and objective function f2 (x1, x2) for the size is solved in value ranges of variables x1 and x2.
There are a lot of techniques for solving such multiobjective optimization problems at high speed by numerical analysis.
On the other hand, there are some techniques for solving the multiobjective optimization problem by the computer algebra. In this method, computer simulation is carried out for various design parameter values to calculate output evaluation indicators for each case. Then, a model expression to approximate a relationship between the design parameters and output evaluation indicators is calculated to carry out optimization based on this model expression by using the computer algebra. As a processing for the optimization, there is a case where an expression representing a relationship between the cost and the performance is calculated from the obtained approximate expression and constraint conditions.
Incidentally, as for the computer algebra, a Quantifier Elimination (QE) method is known. This technique is a technique that an expression “∃x (x2+bx+c=0)”, for example, is changed to an equivalent expression “b2−4c≧0” by eliminating quantifiers such as “∃ and ∀”.
Specifically, the QE method is described in the following documents. However, because a lot of documents for the QE method exist, useful documents other than the following document exist. These documents are incorporated herein by reference.
Anai Hirokazu and Yokoyama Kazuhiro, “Introduction to Computational Real Algebraic Geometry”, Mathematics Seminar, Nippon-Hyoron-sha Co., Ltd., “Series No. 1”, Vol. 554, pp. 64-70, November, 2007, “Series No. 2”, Vol. 555, pp. 75-81, December, 2007, “Series No. 3”, Vol. 556, pp. 76-83, January, 2008, “Series No. 4”, Vol. 558, pp. 79-85, March, 2008, “Series No. 5”, Vol. 559, pp. 82-89, April, 2008.
Anai Hirokazu, Kaneko Junji, Yanami Hitoshi and Iwane Hidenao, “Design Technology Based on Symbolic Computation”, FUJITSU, Vol. 60, No. 5, pp. 514-521, September, 2009.
Jirstrand Mats, “Cylindrical Algebraic Decomposition—an Introduction”, Oct. 18, 1995.
It is possible to obtain solutions of the aforementioned multiobjective optimization problem by the aforementioned quantifier elimination method. However, the calculation efficiency of solving the aforementioned multiobjective optimization problem by the quantifier elimination method is bad, and the processing time becomes long.
This method for solving an optimization problem includes (A) causing a cylindrical algebraic decomposition processing unit that carries out a projection processing to carry out the projection processing for a first expression that appears in a quantifier elimination problem equivalent to an optimization problem including a plurality of objective functions and to generate second expressions that are projection factors of the first expression; (B) obtaining data of the generated second expressions from the cylindrical algebraic decomposition processing unit; (C) first calculating a plurality of sets of values of the plurality of objective functions by generating a plurality of value sets of variables in the plurality of objective functions and substituting the generated plurality of value sets of the variables into the plurality of objective functions; (D) extracting points including non-dominated solutions in a space mapped by values of the plurality of objective functions, from a plurality of points corresponding to the plurality of sets of values; (E) second calculating, for each of the second expressions, an evaluation value concerning a distance between a corresponding second expression and each of the extracted points; and (F) identifying a second expression whose evaluation value is minimum.
The object and advantages of the embodiment 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 embodiment, as claimed.
The QE tool 100 is a module or apparatus for carrying out a QE processing described in the background art, and has a Cylindrical Algebraic Decomposition (CAD) processing unit 110 and expression construction unit 120. The CAD processing unit 110 has a projection unit 111, base unit 112 and lifting unit 113. Incidentally, the QE tool 100 may be included in the optimization processing apparatus, may be other apparatus, or may be included in other apparatus.
Typically, as described in the background art, expressions with quantifiers are inputted into the QE tool 100 to obtain, as an output of the QE tool 100, expressions without the quantifiers, which are equivalent to the expressions with the quantifiers. In other words, the expressions with the quantifiers are processed in the projection unit 111, outputs of the projection unit 111 are processed in the base unit 112, outputs of the base unit 112 are processed in the lifting unit 113, and outputs of the lifting unit 113 are processed in the expression construction unit 120. Accordingly, the expressions without the quantifiers are outputted.
In this embodiment, because only the processing results of the projection unit 111 are used, only the processing contents of the projection unit 111 will be explained more or less. As depicted in
By repeating such a processing, a (r-1)-th projection processing is carried out for the polynomial set F2 so as to remove the variable x2. Then, the polynomial set F1 including only the variable x1 is obtained. The projection unit 111 outputs all of the polynomial sets Fr to F1, when the number of variables becomes “1”.
The projection processing to remove the variable xr from the polynomial set Fr is a processing to generate (A) a coefficient of the variable xr in each polynomial f included in the polynomial set Fr, (B) a discriminant of each polynomial f included in the polynomial set Fr and (C) a resultant of respective polynomial f and g (f is not equal to g) included in the polynomial set Fr.
For example, a case where the projection processing is carried out for the polynomial set F4 described below will be considered.
F
4={f1−4x1, f2−x1+x1x2−5, x1−5, x1−1, x1−4, x2−2, x2−1}
First, when the first projection processing to remove the variable x2 is carried out for the polynomial set F4, the polynomial set F3 described below is obtained.
F
3
={x
1−4, x1, 4x1+(−f12), x1, x1+(−f2−5), x1+(f2+5)}
Furthermore, when the second projection processing to remove the variable x1 is carried out for the polynomial set F3, the polynomial set F2 is obtained as follows:
F
2={f2+1, f2+4, f2+5, f2+6, f2+9, 4f2+(−f12+20), 4f2+(f12+20)}
Finally, when the third projection processing to remove the variable f2 is carried out for the polynomial set F2, the polynomial set F1 is obtained as follows:
F1={f1−4, f1−2, f1, f1+2, f1+4, f12+4, f12+16}
Next, the operation of the optimization processing apparatus depicted in
First, the user inputs a multiobjective optimization problem to be solved this time to the input unit 1 of the optimization processing apparatus. The input unit 1 accepts the input of the multiobjective optimization problem from the user, and stores input data of the multiobjective optimization problem into the input data storage unit 3 (
For example, a multiobjective optimization problem that two objective functions f1 and f2 are simultaneously minimized under the constraint conditions is considered. Specifically, it is assumed that data of the multiobjective optimization problem as depicted in
Next, the QE tool controller 5 carries out a projection factor set generation processing by using data stored in the input data storage unit 3 (step S3). This projection factor set generation processing will be explained by using
The QE tool controller 5 generates an equivalent QE problem from data of the multiobjective optimization problem, which is stored in the input data storage unit 3, and stores the data of the QE problem into a storage device such as a main memory (
Then, the QE tool controller 5 extracts polynomials (in some cases, including monomial. Hereinafter, the same is applied), and stores the extracted data into the storage device such as the main memory (step S13). After simplifying the polynomials of the QE problem, they are extracted. In case of
Then, the QE tool controller 5 outputs data of the extracted polynomials (actually, polynomial set) to the projection unit 111 in the CAD processing unit 110 of the QE tool 100, causes the projection unit 111 to generate other polynomials (actually, polynomial set) that are projection factors for the extracted polynomials, by causing the projection unit 111 to carry out the projection processing, and obtains data of other polynomials that are projection factors from the QE tool 100, and stores the obtained data into the polynomial storage unit 7 (step S15). In the aforementioned example, the polynomial sets F4 to F1 are obtained as other polynomials that are projection factors are obtained and stored into the polynomial storage unit 7. Then, the processing returns to the calling source processing.
Thus, because the processing of the base unit 112 and lifting unit 113, which are other than the projection unit 111, and the processing of the expression construction unit 120 are omitted, it is possible to obtain the processing result in a short processing time.
Returning to explanation of the processing of
First, the Pareto generator 9 generates one set of variable values according to value ranges of the respective variables included in the objective functions included in data of the optimization problem, which is stored in the input data storage unit 3, and stores the generated set of the respective variables into the storage device such as the main memory (step S21). Then, the Pareto generator 9 calculates values of the respective objective functions by substituting the generated values of the variables into the respective objection functions, and stores the calculation result into the storage unit such as the main memory (step S23). As apparent from
Then, the Pareto generator 9 determines whether or not a set of the calculated objective function values (which correspond to a point in an objective function space) represents a Pareto (i.e. non-dominated solution) in the objective function space, and when the set represents the Pareto, the Pareto generator 9 updates the Pareto set (step S25).
For example, a Pareto list in which points included in the Pareto set are registered is stored in the Pareto data storage unit 11. In addition, a non-Pareto list in which points, which are not included in the Pareto set, are registered, is also stored in the Pareto data storage unit 11. Then, when a new point corresponding to the set of the objective function values, which were calculated this time, is dominated by any one of the points already registered in the Pareto list, the new point is registered into the non-Pareto list. The domination means all of the objective function values are equal or better, namely has equal or lesser values in this example.
On the other hand, when the new point is not dominated by any one of the points already registered in the Pareto list, the new point is registered into the Pareto list. On the other hand, when any point, which has already been registered in the Pareto list, is dominated by the new point, this point is removed from the Pareto list and registered into the non-Pareto list.
Then, the Pareto generator 9 determines whether or not the number of sets of the objective function values generated at the step S23 reaches the upper limit value of the number of samplings (step S27). When the number of sets of the generated objective function values does not reach the upper limit value of the number of samplings, the processing returns to the step S21.
In the example of
When it is determined at the step S27 that the number of sets of the generated objective function values reaches the upper limit value of the number of samplings, the Pareto generator 9 determines whether or not “0” is set to the distance δ stored in the input data storage unit 3 or the distance δ is not completely defined (step S29). In this embodiment, in order to make preparations for a case where the number of Paretos is lesser or the like, a point whose distance from a point included in the Pareto set is equal to or less than the distance δ is additionally registered into the Pareto set, supplementarily. However, when “0” is set to the distance δ or the distance δ is not completely set, the Pareto generator 9 registers the points in the Pareto set into a temporary optimum point set (step S30). A list of the temporary optimum point set is stored in the Pareto data storage unit 11. Then, the processing returns to the calling source processing.
On the other hand, when any value, which is not “0”, is set to the distance δ, the Pareto generator 9 determines, for each of the objective function value sets, which is not included in the Pareto set or is included in the non-Pareto set, whether or not the distance with the nearest Pareto is within the δ, and registers the objective function value set into the temporary optimum point set if the distance with the nearest Pareto is within the δ (step S31). The list of the temporary optimum point set is prepared in the Pareto data storage unit 11, and the points registered in the Pareto list is registered in the list, initially. Then, the point, which is determined at the step S31 to be within the δ, is additionally registered. After that, the processing returns to the calling source processing.
When the step S31 is carried out, a portion surrounded by the dotted line becomes included in the temporary optimum point set as depicted in
Returning to the explanation of the processing of
Firstly, the Pareto expression selector 13 carries out a section division processing (
The Pareto expression selector 13 identifies a value range of a reference objective function from data of the optimization problem, which is stored in the input data storage unit 3 (
Next, the Pareto expression selector 13 calculates real roots for the polynomials for the reference objective function among the polynomials of the projection factors, which are stored in the polynomial storage unit 7, and stores the calculated real roots into the storage unit such as the main memory (step S63). As for the objective function f1 in the aforementioned example, the polynomial, for which the real root can be calculated, is included in the polynomial set F1. The real roots for the respective polynomials included in the polynomial set F1 are −4, −2, 0, 2 and 4.
Then, the Pareto expression selector 13 extracts a real root included in the value range of the reference objective function from the real roots calculated at the step S63, and stores the extracted real root into the storage device such as the main memory (step S65). In this example, because the value range is [2, 4], the real roots “2” and “4” are extracted. However, no real root may be extracted.
Therefore, when no real root included in the value range is extracted (step S67: No route), the Pareto expression selector 13 sets the value range itself of the reference objective function as the section, and stores data of the section into the output data storage unit 15 (step S69). Then, the processing shifts to step S73.
On the other hand, when the real root included in the value range is extracted (step S67: Yes route), the Pareto expression selector 13 divides the value range of the reference objective function by using the extracted real root to generate the sections, and stores data of the sections into the output data storage unit 15 (step S71). In this example, the value range is [2, 4], and the extracted real roots are “2” and “4”. Therefore, the section becomes [2, 4], as a result. Generally, when the value range is [l, r] and the real roots q1, q2, . . . qj are extracted at the step S65, the value range is divided into sections [l, q1], [q1, q2], [q2, q3], . . . [qj, r].
Then, the Pareto expression selector 13 classifies points included in the temporary optimum point set stored in the Pareto data storage unit 11 according to data of the sections, which is stored in the output data storage unit 15, and stores the classification result into the Pareto data storage unit 11 (step S73). For example, data as illustrated in
Returning to the explanation of the processing of
For example, when the temporary optimum point belonging to the temporary optimum point set OPk in the section k is represented as Pj,k, and the polynomial stored in the polynomial storage unit 7 is represented as Gi, the evaluation value Di,k is represented as follows:
distance (A, B) represents a distance between the expression B and the point A. The distance between the curve and the point is well-known. Therefore, the detailed explanation is omitted. This expression (1) is a mere example, and the square root of the squared-sum of the distance may be employed, or the average value calculated by dividing the distance by the number of corresponding temporary optimum points may be employed.
Then, the Pareto expression selector 13 determines whether or not any unprocessed polynomial exists in the polynomial storage unit 7 (step S49). When there is at least one unprocessed polynomial, the processing returns to the step S45. By repeating this processing, data as depicted in
On the other hand, when there is no unprocessed polynomial, the Pareto expression selector 13 identifies a polynomial whose evaluation value is minimum, and stores the identified polynomial into the output data storage unit 15 in association with the data of the section identified at the step S43 (step S51). For example, a line whose evaluation value is minimum is identified in the data as depicted in
Then, the Pareto expression selector 13 determines whether or not any unprocessed section exists among sections stored in the output data storage unit 15 (step S53). When there is at least one unprocessed section, the processing returns to the step S43. On the other hand, when there is no unprocessed section, the processing returns to the calling source processing.
By carrying out such a processing, data as depicted in
Returning to the explanation of the processing in
For example, a graph as depicted in
[f1−2≧0f1+2≦0]
f1+4≧0
f1−4≦0
f2−5≦0
4f2+f12−20≧0
When the computer algebra is employed, it takes a long time. However, according to this embodiment, a similar result can be obtained by the simple processing and in short time.
Although the embodiment of this technique was explained, this technique is not limited to the embodiment. For example, the functional block diagram in
Furthermore, in the aforementioned example, one computer executes the processing. However, the aforementioned processing may be shared by plural computers.
Moreover, although a processing for two objective functions was explained, three or more objective functions can be processed, similarly.
In addition, the optimization processing apparatus is a computer device as shown in
The aforementioned embodiments are outlined as follows:
An optimization problem solving method relating to the embodiment includes (A) causing a cylindrical algebraic decomposition processing unit that carries out a projection processing to carry out the projection processing for a first expression that appears in a quantifier elimination problem equivalent to an optimization problem including a plurality of objective functions and to generate second expressions that are projection factors of the first expression; (B) obtaining data of the generated second expressions from the cylindrical algebraic decomposition processing unit; (C) first calculating a plurality of sets of values of the plurality of objective functions by generating a plurality of value sets of variables in the plurality of objective functions and substituting the generated plurality of value sets of the variables into the plurality of objective functions; (D) extracting points including non-dominated solutions in a space mapped by values of the plurality of objective functions, from a plurality of points corresponding to the plurality of sets of values; (E) second calculating, for each of the second expressions, an evaluation value concerning a distance between a corresponding second expression and each of the extracted points; and (F) identifying a second expression whose evaluation value is minimum.
The aforementioned processing is more simple and is carried out in shorter time than a processing normally carried out by the CAD processing unit after the projection processing. Therefore, it becomes possible to obtain an expression representing the solution of the optimization problem for two or more objective functions at high speed.
Moreover, the extracting may include extracting points whose distance with the non-dominated solution is equal to or less than a predetermined value from among the plurality of points. For example, it is more effective in case where the number of non-dominated solutions is less.
Furthermore, the second calculating may include: identifying a value range of a specific objective function among the plurality of objective functions from the optimization problem; extracting third expressions concerning the specific objective function from among the second expressions; calculating real roots of the extracted third expressions; extracting a real root within the identified value range of the specific objective function from among the calculated real roots; dividing the value range of the specific objective function by the extracted real root into a plurality of sections; and classifying the extracted points into classes according to the plurality of sections. At that time, the second calculating may be carried out for each of the plurality of sections and for the extracted points that are included in a class corresponding to a section to be processed. Thus, it becomes possible to identify an appropriate expression for each section.
Incidentally, it is possible to create a program causing a computer to execute the aforementioned processing, and such a program is stored in a computer readable storage medium or storage device such as a flexible disk, CD-ROM, DVD-ROM, magneto-optic disk, a semiconductor memory, and hard disk. In addition, the intermediate processing result is temporarily stored in a storage device such as a main memory or the like.
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation 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 the embodiments of the present inventions 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.
Number | Date | Country | Kind |
---|---|---|---|
2010-212686 | Sep 2010 | JP | national |