Package org.moeaframework.algorithm
Class EpsilonNSGAII
java.lang.Object
org.moeaframework.algorithm.AbstractAlgorithm
org.moeaframework.algorithm.AbstractEvolutionaryAlgorithm
org.moeaframework.algorithm.NSGAII
org.moeaframework.algorithm.EpsilonNSGAII
- All Implemented Interfaces:
Extensible
,Algorithm
,Configurable
,EpsilonBoxEvolutionaryAlgorithm
,EvolutionaryAlgorithm
,Stateful
Implements the ε-NSGA-II algorithm. This algorithm extends NSGA-II with an ε-dominance archive and
adaptive time continuation.
References:
- Kollat, J. B., and Reed, P. M. "Comparison of Multi-Objective Evolutionary Algorithms for Long-Term Monitoring Design." Advances in Water Resources, 29(6):792-807, 2006.
-
Field Summary
Fields inherited from class org.moeaframework.algorithm.AbstractAlgorithm
initialized, numberOfEvaluations, problem, terminated
-
Constructor Summary
ConstructorDescriptionEpsilonNSGAII
(Problem problem) Constructs a new ε-NSGA-II instance with default settings.EpsilonNSGAII
(Problem problem, int initialPopulationSize, NondominatedSortingPopulation population, EpsilonBoxDominanceArchive archive, Selection selection, Variation variation, Initialization initialization, int windowSize, int maxWindowSize, double injectionRate, int minimumPopulationSize, int maximumPopulationSize) Constructs the ε-NSGA-II instance with the specified components. -
Method Summary
Modifier and TypeMethodDescriptionvoid
applyConfiguration
(TypedProperties properties) Applies the properties to this instance.Gets the current configuration of this instance.Methods inherited from class org.moeaframework.algorithm.NSGAII
getArchive, getPopulation, iterate, setArchive, setInitialPopulationSize, setVariation
Methods inherited from class org.moeaframework.algorithm.AbstractEvolutionaryAlgorithm
getInitialization, getInitialPopulationSize, getResult, getVariation, initialize, loadState, saveState, setArchive, setInitialization, setPopulation
Methods inherited from class org.moeaframework.algorithm.AbstractAlgorithm
assertNotInitialized, evaluate, getExtensions, getNumberOfEvaluations, getProblem, isInitialized, isTerminated, step, terminate
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.moeaframework.core.Algorithm
evaluate, evaluateAll, evaluateAll, getNumberOfEvaluations, getProblem, getResult, initialize, isInitialized, isTerminated, run, run, step, terminate
Methods inherited from interface org.moeaframework.algorithm.extension.Extensible
addExtension, getExtensions, removeExtension
-
Constructor Details
-
EpsilonNSGAII
Constructs a new ε-NSGA-II instance with default settings.- Parameters:
problem
- the problem to solve
-
EpsilonNSGAII
public EpsilonNSGAII(Problem problem, int initialPopulationSize, NondominatedSortingPopulation population, EpsilonBoxDominanceArchive archive, Selection selection, Variation variation, Initialization initialization, int windowSize, int maxWindowSize, double injectionRate, int minimumPopulationSize, int maximumPopulationSize) Constructs the ε-NSGA-II instance with the specified components.- Parameters:
problem
- the problem being solvedinitialPopulationSize
- the initial population sizepopulation
- the population used to store solutionsarchive
- the ε-dominance archiveselection
- the selection operatorvariation
- the variation operatorinitialization
- the initialization methodwindowSize
- the number of iterations between invocations ofcheck
maxWindowSize
- the maximum number of iterations allowed since the last restart before forcing a restartinjectionRate
- the injection rateminimumPopulationSize
- the minimum size of the populationmaximumPopulationSize
- the maximum size of the population
-
-
Method Details
-
applyConfiguration
Description copied from interface:Configurable
Applies the properties to this instance. It is strongly recommended to apply a configuration immediately after creating the instance, as some properties can not be changed after the class is used. Exceptions may be thrown if attempting to set such properties. After calling this method, we encourage users to callTypedProperties.warnIfUnaccessedProperties()
to verify all properties were processed. This can identify simple mistakes like typos. If overriding this method, properties should only be updated if a new value is provided. Additionally, if updating anyConfigurable
objects inside this object, they should be updated before callingsuper.applyConfiguration(properties)
.- Specified by:
applyConfiguration
in interfaceConfigurable
- Overrides:
applyConfiguration
in classNSGAII
- Parameters:
properties
- the user-defined properties
-
getConfiguration
Description copied from interface:Configurable
Gets the current configuration of this instance. In theory, these properties should be able to create a duplicate instance. Note however, they are unlikely to behave identically due to random numbers and other transient fields.- Specified by:
getConfiguration
in interfaceConfigurable
- Overrides:
getConfiguration
in classNSGAII
- Returns:
- the properties defining this instance
-