Package org.moeaframework.algorithm
Class PESA2
java.lang.Object
org.moeaframework.algorithm.AbstractAlgorithm
org.moeaframework.algorithm.AbstractEvolutionaryAlgorithm
org.moeaframework.algorithm.PESA2
- All Implemented Interfaces:
Extensible
,Algorithm
,Configurable
,EvolutionaryAlgorithm
,Stateful
Implementation of the Pareto Envelope-based Selection Algorithm (PESA2).
References:
- Corne, D. W., N. R. Jerram, J. D. Knowles, and M. J. Oates (2001). PESA-II: Region-based Selection in Evolutionary Multiobjective Optimization. Proceedings of the Genetic and Evolutionary Computation Conference (GECCO 2001), pp. 283-290.
- Corne, D. W., J. D. Knowles, and M. J. Oates (2000). The Pareto Envelope-based Selection Algorithm for Multiobjective Optimization. Parallel Problem Solving from Nature PPSN VI, pp. 839-848.
-
Nested Class Summary
-
Field Summary
Fields inherited from class org.moeaframework.algorithm.AbstractAlgorithm
initialized, numberOfEvaluations, problem, terminated
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
applyConfiguration
(TypedProperties properties) Applies the properties to this instance.Returns a mapping from grid index to the solutions occupying that grid index.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.protected void
iterate()
Performs one iteration of the 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.AbstractEvolutionaryAlgorithm
getInitialization, getInitialPopulationSize, getPopulation, 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, isInitialized, isTerminated, run, run, step, terminate
Methods inherited from interface org.moeaframework.algorithm.extension.Extensible
addExtension, getExtensions, removeExtension
-
Constructor Details
-
PESA2
Constructs a new PESA2 instance with default settings.- Parameters:
problem
- the problem
-
PESA2
public PESA2(Problem problem, int initialPopulationSize, Variation variation, Initialization initialization, int bisections, int archiveSize) Constructs a new PESA2 instance.- Parameters:
problem
- the probleminitialPopulationSize
- the initial population sizevariation
- the mutation operatorinitialization
- the initialization operatorbisections
- the number of bisections in the adaptive grid archivearchiveSize
- the capacity of the adaptive grid archive
-
-
Method Details
-
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 classAbstractEvolutionaryAlgorithm
- Returns:
- the current non-dominated archive of the best solutions generated by this evolutionary algorithm,
or
null
if no archive is used
-
setVariation
Description copied from class:AbstractEvolutionaryAlgorithm
Replaces the variation operator to be used by this algorithm.- Overrides:
setVariation
in classAbstractEvolutionaryAlgorithm
- Parameters:
variation
- the variation operator
-
setInitialPopulationSize
public void setInitialPopulationSize(int initialPopulationSize) Description copied from class:AbstractEvolutionaryAlgorithm
Sets the initial population size. This value can not be set after initialization.- Overrides:
setInitialPopulationSize
in classAbstractEvolutionaryAlgorithm
- Parameters:
initialPopulationSize
- the initial population size
-
iterate
protected void iterate()Description copied from class:AbstractAlgorithm
Performs one iteration of the algorithm. This method should be overridden by implementations to perform each logical iteration of the algorithm.- Specified by:
iterate
in classAbstractAlgorithm
-
createGridMap
Returns a mapping from grid index to the solutions occupying that grid index. The key is the grid index, and the value is the list of solutions occupying that index.- Returns:
- a mapping from grid index to the solutions occupying that grid index
-
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)
.- 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.- Returns:
- the properties defining this instance
-