The concept of feasibility is used to distinguish:
-
Designs that are physically constructible from designs that are not
-
Designs that fit as parts within a larger assembly from designs that
do not fit
-
Designs that satisfy minimal performance requirements from designs that
do not
For optimization, the term “constraints” specifically means “output
constraints,” which are defined as requirements placed upon the output
parameters of a design space because output values are not directly controllable.
Typically, technique implementations (and Isight
implementations in particular) enforce input constraints—they evaluate
only designs within the specified design space—so the notion of “violation”
does not apply to them.
The Optimization component marks the feasibility of evaluated designs
by setting the Feasibility
parameter of the Optimization
Results
aggregate parameter for each evaluated design. This
member is an integer-valued parameter. For each evaluated design, the
feasibility code assigned to this member reflects both the feasibility
of the design and the relationship between the feasibility of the design
and that of previously evaluated designs. The code values are calculated
as described in the following table.
Code |
Designation |
Explanation |
0 |
|
This design is unusable. |
1 |
Infeasible |
This design violates one or more constraints.
This design is not as good as the previous best design (which is necessarily
also infeasible - see [*] below), but it is not necessarily the worst
design. |
2 |
Infeasible - Tie |
This design violates one or more constraints.
This design is as good as the previous best design (which is necessarily
also infeasible - see [*] below). |
3 |
Infeasible - Better |
This design violates one or more constraints.
This design is better than the previous best design (which is necessarily
also infeasible - see [*] below). |
7 |
Feasible |
This design satisfies all constraints. This
design is not as good as the previous best design in terms of the calculated
ObjectiveAndPenalty (objective + penalty for constraint
violation). There may be an infeasible design that could be considered
better than this design if the constraint violation is small. |
8 |
Feasible - Tie |
This design satisfies all constraints. This
design is as good as the previous best feasible design and is better
than any infeasible design. |
9 |
Feasible - Better |
This design satisfies all constraints. This
design is better than the previous best (feasible or infeasible) design. |
[*] – A feasible design is always considered better
than any infeasible design. As a result, feasibility codes 2 and 3 end
up being used only until the first feasible design is evaluated.
Feasibility code values 4, 5, and 6 are not used.
The code values used in Isight
have been chosen to coincide with the feasibility code values used in
the earlier product iSIGHT. In iSIGHT, code values 4, 5, and 6 are used
only by a particular optimization technique that has not been implemented
in Isight.
Assigned feasibility codes are meaningful only for
designs that have been evaluated successfully. If execution of the Optimization
component’s simulation process flow failed for some design, the value
of the Feasibility member
for that design is disregarded (most likely it will have the value 0,
denoting an unusable design).