Package org.opt4j.core.domination
Class GoalAttainmentDomination
java.lang.Object
org.opt4j.core.domination.GoalAttainmentDomination
- All Implemented Interfaces:
DominationStrategy
This class implements
The approach is extended in C.M. Fonseca and P.J. Fleming: Multiobjective optimization and multiple constraint handling with evolutionary algorithms. I. A unified formulation. Systems, Man and Cybernetics, Part A: Systems and Humans, IEEE Transactions on, 28(1):26-37, 1998. Here, it is shown that the relation is transitive.
The strategy is based on
It is essential to provide a goal vector (reference point) by a number of
DominationStrategy
. The dominance relation is
based on the goal attainment approach described in Carlos M. Fonseca
and Peter J. Fleming: Genetic Algorithms for Multiobjective Optimization:
Formulation, Discussion and Generalization. In: Genetic Algorithms:
Proceedings of the Fifth International Conference, pp 416-423.
Morgan Kaufmann, 1993.
The approach is extended in C.M. Fonseca and P.J. Fleming: Multiobjective optimization and multiple constraint handling with evolutionary algorithms. I. A unified formulation. Systems, Man and Cybernetics, Part A: Systems and Humans, IEEE Transactions on, 28(1):26-37, 1998. Here, it is shown that the relation is transitive.
The strategy is based on
ParetoDomination
and uses its array based
method ParetoDomination.dominates(double[], double[])
.
It is essential to provide a goal vector (reference point) by a number of
SatisfactionConstraints
on Objective
s! If no
satisfaction for an Objective o
exists, the constraint is consequently
o < negative infinity
or o > positive infinity
". Semantically, a
satisfaction constraint x < a
will mean, that the attribute x
satisfies
the goal, if its value v(x)
is less than a
.-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
dominates
(Objectives o1, Objectives o2) Checks twoObjectives
for domination.protected List<Constraint>
protected Objective
getObjective
(Constraint constraint) protected boolean
isEligibleConstraint
(Constraint constraint) protected double[]
listToArray
(List<Double> list) boolean
weaklyDominates
(Objectives o1, Objectives o2) Checks twoObjectives
for weak domination.
-
Field Details
-
paretoDomination
-
-
Constructor Details
-
GoalAttainmentDomination
-
-
Method Details
-
dominates
Checks twoObjectives
for domination. The dominance relation is Goal-Attainment-Domination.
The basic idea is to give a higher priority to objectives in which the goal is not fulfilled. Thus, when deciding whether a solution x is preferable to a solution y or not, first, only the objectives in which solution x does not satisfy the goal are considered, and x is preferred to y if it dominates y on these objectives. If x is equal to y in all these objectives, or if x satisfies the goal in all objectives, x is preferred over y either if y does not fulfill some of the objectives fulfilled by x, or if x dominates y on the objectives fulfilled by x. If noSatisfactionConstraint
s are present, this method just passes the parameters on to its internal strategy for Pareto Domination.- Specified by:
dominates
in interfaceDominationStrategy
- Parameters:
o1
- the objectives to checko2
- the objectives to compare with- Returns:
true
, ifo1
dominateso2
false
, otherwise
-
listToArray
-
getAllElibleConstraints
-
isEligibleConstraint
-
getObjective
-
weaklyDominates
Checks twoObjectives
for weak domination. The dominance relation is Goal-Attainment-Domination.- Specified by:
weaklyDominates
in interfaceDominationStrategy
- Parameters:
o1
- the objectives to checko2
- the objectives to compare with- Returns:
true
, ifo1
weakly dominateso2
false
, otherwise
-