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 aConstraintCheckerthat checks infeasibility and/or satisfaction constraints.- See Also:
DominationStrategy,ConstraintDomination
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected classConstraintDomination.ConstrainDominationInformationData 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>cacheprotected ConstraintCheckerconstraintCheckerprotected DominationStrategyfeasibleStrategy
-
Constructor Summary
Constructors Constructor Description ConstraintDomination(ConstraintChecker checker, DominationStrategy feasibleStrategy)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleandominates(Objectives o1, Objectives o2)Checks twoObjectivesfor domination.booleanweaklyDominates(Objectives o1, Objectives o2)Checks twoObjectivesfor 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 twoObjectivesfor domination. The dominance relation is Constraint-Domination.- Specified by:
dominatesin interfaceDominationStrategy- Parameters:
o1- the objectives to checko2- the objectives to compare with- Returns:
true, ifo1dominateso2
false, otherwise
-
weaklyDominates
public boolean weaklyDominates(Objectives o1, Objectives o2)
Checks twoObjectivesfor weak domination. The dominance relation is Constraint-Domination.- Specified by:
weaklyDominatesin interfaceDominationStrategy- Parameters:
o1- the objectives to checko2- the objectives to compare with- Returns:
true, ifo1weakly dominateso2
false, otherwise
-
-