Package org.moeaframework.algorithm
Class EpsilonNSGAII
java.lang.Object
org.moeaframework.core.PeriodicAction
org.moeaframework.algorithm.continuation.AdaptiveTimeContinuation
org.moeaframework.algorithm.EpsilonNSGAII
- All Implemented Interfaces:
Algorithm
,Configurable
,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.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.moeaframework.core.PeriodicAction
PeriodicAction.FrequencyType
-
Field Summary
Fields inherited from class org.moeaframework.core.PeriodicAction
algorithm, frequency, frequencyType, iteration, lastInvocation
-
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.protected NSGAII
Returns the algorithm that is wrapped by this periodic action.Returns the current non-dominated archive of the best solutions generated by this evolutionary algorithm, ornull
if no archive is used.Gets the current configuration of this instance.int
Returns the initial population size.Returns the current population of this evolutionary algorithm.Returns the variation operator currently in use by this algorithm.void
setArchive
(EpsilonBoxDominanceArchive archive) Sets the archive used by this algorithm.void
setInitialPopulationSize
(int initialPopulationSize) Sets the initial population size.void
setVariation
(Variation variation) Replaces the variation operator to be used by this algorithm.Methods inherited from class org.moeaframework.algorithm.continuation.AdaptiveTimeContinuation
addRestartListener, check, doAction, getInjectionRate, getMaximumPopulationSize, getMaxWindowSize, getMinimumPopulationSize, getWindowSize, loadState, removeRestartListener, restart, saveState, setInjectionRate, setMaximumPopulationSize, setMaxWindowSize, setMinimumPopulationSize, setWindowSize
Methods inherited from class org.moeaframework.core.PeriodicAction
evaluate, getNumberOfEvaluations, getProblem, getResult, 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, getNumberOfEvaluations, getProblem, getResult, isTerminated, run, run, step, terminate
-
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
-
getAlgorithm
Description copied from class:PeriodicAction
Returns the algorithm that is wrapped by this periodic action.- Overrides:
getAlgorithm
in classAdaptiveTimeContinuation
- Returns:
- the inner algorithm
-
getPopulation
Description copied from interface:EvolutionaryAlgorithm
Returns the current population of this evolutionary algorithm.- Specified by:
getPopulation
in interfaceEvolutionaryAlgorithm
- Overrides:
getPopulation
in classAdaptiveTimeContinuation
- Returns:
- the current population of this evolutionary algorithm
-
getVariation
Returns the variation operator currently in use by this algorithm.- Returns:
- the variation operator
-
setVariation
Replaces the variation operator to be used by this algorithm.- Parameters:
variation
- the variation operator
-
getInitialPopulationSize
public int getInitialPopulationSize()Returns the initial population size.- Returns:
- the initial population size
-
setInitialPopulationSize
public void setInitialPopulationSize(int initialPopulationSize) Sets the initial population size. This value can not be set after initialization.- Parameters:
initialPopulationSize
- the initial population size
-
getArchive
Description copied from interface:EvolutionaryAlgorithm
Returns the current non-dominated archive of the best solutions generated by this evolutionary algorithm, ornull
if no archive is used.- Specified by:
getArchive
in interfaceEvolutionaryAlgorithm
- Overrides:
getArchive
in classAdaptiveTimeContinuation
- Returns:
- the current non-dominated archive of the best solutions generated by this evolutionary algorithm,
or
null
if no archive is used
-
setArchive
Sets the archive used by this algorithm. This value can not be set after initialization.- Parameters:
archive
- the archive
-
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
- 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
- Returns:
- the properties defining this instance
-