Package org.opt4j.core.domination
Class ConstraintDomination
- java.lang.Object
-
- org.opt4j.core.domination.ConstraintDomination
-
- All Implemented Interfaces:
DominationStrategy
public class ConstraintDomination extends Object implements DominationStrategy
This class implementsDominationStrategy
. The dominance relation is constraint-domination as described in K. Deb, A. Pratap, S. Agarwal, and T. Meyarivan, "A fast and elitist multiobjective genetic algorithm : Nsga-ii," Evolutionary Computation, IEEETransactions on, vol. 6, no. 2, pp. 182-197, August 2002.
It needs aConstraintChecker
that checks infeasibility and/or satisfaction constraints.- See Also:
DominationStrategy
,ConstraintDomination
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
ConstraintDomination.ConstrainDominationInformation
Data structure to save information about objectives in the cache of the strategy classConstraintDomination
.
-
Field Summary
Fields Modifier and Type Field Description protected ConcurrentHashMap<Objectives,ConstraintDomination.ConstrainDominationInformation>
cache
protected ConstraintChecker
constraintChecker
protected DominationStrategy
feasibleStrategy
-
Constructor Summary
Constructors Constructor Description ConstraintDomination(ConstraintChecker checker, DominationStrategy feasibleStrategy)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
dominates(Objectives o1, Objectives o2)
Checks twoObjectives
for domination.boolean
weaklyDominates(Objectives o1, Objectives o2)
Checks twoObjectives
for weak domination.
-
-
-
Field Detail
-
constraintChecker
protected ConstraintChecker constraintChecker
-
feasibleStrategy
protected DominationStrategy feasibleStrategy
-
cache
protected ConcurrentHashMap<Objectives,ConstraintDomination.ConstrainDominationInformation> cache
-
-
Constructor Detail
-
ConstraintDomination
@Inject public ConstraintDomination(ConstraintChecker checker, DominationStrategy feasibleStrategy)
-
-
Method Detail
-
dominates
public boolean dominates(Objectives o1, Objectives o2)
Checks twoObjectives
for domination. The dominance relation is Constraint-Domination.- Specified by:
dominates
in interfaceDominationStrategy
- Parameters:
o1
- the objectives to checko2
- the objectives to compare with- Returns:
true
, ifo1
dominateso2
false
, otherwise
-
weaklyDominates
public boolean weaklyDominates(Objectives o1, Objectives o2)
Checks twoObjectives
for weak domination. The dominance relation is Constraint-Domination.- Specified by:
weaklyDominates
in interfaceDominationStrategy
- Parameters:
o1
- the objectives to checko2
- the objectives to compare with- Returns:
true
, ifo1
weakly dominateso2
false
, otherwise
-
-