Package org.opt4j.core.domination
Class GoalAttainmentDomination
- java.lang.Object
-
- org.opt4j.core.domination.GoalAttainmentDomination
-
- All Implemented Interfaces:
DominationStrategy
public class GoalAttainmentDomination extends Object implements DominationStrategy
This class implementsDominationStrategy. 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 onParetoDominationand uses its array based methodParetoDomination.dominates(double[], double[]).
It is essential to provide a goal vector (reference point) by a number ofSatisfactionConstraintsonObjectives! If no satisfaction for anObjective oexists, the constraint is consequentlyo < negative infinityoro > positive infinity". Semantically, a satisfaction constraintx < awill mean, that the attributexsatisfies the goal, if its valuev(x)is less thana.- See Also:
DominationStrategy,SatisfactionConstraint,ParetoDomination
-
-
Field Summary
Fields Modifier and Type Field Description protected ParetoDominationparetoDomination
-
Constructor Summary
Constructors Constructor Description GoalAttainmentDomination(ParetoDomination paretoDomination)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleandominates(Objectives o1, Objectives o2)Checks twoObjectivesfor domination.protected List<Constraint>getAllElibleConstraints(Objectives o)protected ObjectivegetObjective(Constraint constraint)protected booleanisEligibleConstraint(Constraint constraint)protected double[]listToArray(List<Double> list)booleanweaklyDominates(Objectives o1, Objectives o2)Checks twoObjectivesfor weak domination.
-
-
-
Field Detail
-
paretoDomination
protected ParetoDomination paretoDomination
-
-
Constructor Detail
-
GoalAttainmentDomination
@Inject public GoalAttainmentDomination(ParetoDomination paretoDomination)
-
-
Method Detail
-
dominates
public boolean dominates(Objectives o1, Objectives o2)
Checks twoObjectivesfor 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 noSatisfactionConstraints are present, this method just passes the parameters on to its internal strategy for Pareto Domination.- Specified by:
dominatesin interfaceDominationStrategy- Parameters:
o1- the objectives to checko2- the objectives to compare with- Returns:
true, ifo1dominateso2
false, otherwise
-
getAllElibleConstraints
protected List<Constraint> getAllElibleConstraints(Objectives o)
-
isEligibleConstraint
protected boolean isEligibleConstraint(Constraint constraint)
-
getObjective
protected Objective getObjective(Constraint constraint)
-
weaklyDominates
public boolean weaklyDominates(Objectives o1, Objectives o2)
Checks twoObjectivesfor weak domination. The dominance relation is Goal-Attainment-Domination.- Specified by:
weaklyDominatesin interfaceDominationStrategy- Parameters:
o1- the objectives to checko2- the objectives to compare with- Returns:
true, ifo1weakly dominateso2
false, otherwise
-
-