Package org.moeaframework.algorithm
Class VEGA
java.lang.Object
org.moeaframework.algorithm.AbstractAlgorithm
org.moeaframework.algorithm.AbstractEvolutionaryAlgorithm
org.moeaframework.algorithm.VEGA
- All Implemented Interfaces:
Algorithm,EvolutionaryAlgorithm,Extensible,Configurable,Named,Stateful
Implementation of the Vector Evaluated Genetic Algorithm (VEGA). VEGA should be avoided in practice, since many
modern algorithms outperform it and exhibit better convergence properties, but is included due to its historical
significance. VEGA is considered the earliest MOEA. It supports
M objectives during the selection phase by
selecting M different subgroups, each selected based on the i-th objective value, for i=1,...,M.
There is one small algorithmic difference between this implementation and [1]. In [1], applying the genetic operators fills the entire population. However, since custom variation operators can be specified, it is possible that the population will not be filled completely. As a result, this implementation will continue selecting parents until the population is full.
References:
- Schaffer, D. (1985). Multiple Objective Optimization with Vector Evaluated Genetic Algorithms. Proceedings of the 1st International Conference on Genetic Algorithms, pp. 93-100.
-
Field Summary
Fields inherited from class org.moeaframework.algorithm.AbstractAlgorithm
initialized, numberOfEvaluations, problem, terminated -
Constructor Summary
ConstructorsConstructorDescriptionConstructs a new VEGA instance with default settings.VEGA(Problem problem, int initialPopulationSize, Population population, NondominatedPopulation archive, Initialization initialization, Variation variation) Constructs a new VEGA instance. -
Method Summary
Modifier and TypeMethodDescriptiongetName()Returns the name of this algorithm.protected voiditerate()Performs one iteration of the algorithm.voidsetInitialPopulationSize(int initialPopulationSize) Sets the initial population size.voidsetVariation(Variation variation) Replaces the variation operator to be used by this algorithm.Methods inherited from class org.moeaframework.algorithm.AbstractEvolutionaryAlgorithm
getArchive, getInitialization, getInitialPopulationSize, getPopulation, getResult, getVariation, initialize, loadState, saveState, setArchive, setInitialization, setPopulationMethods inherited from class org.moeaframework.algorithm.AbstractAlgorithm
assertNotInitialized, evaluate, getExtensions, getNumberOfEvaluations, getProblem, isInitialized, isTerminated, step, terminateMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.moeaframework.algorithm.Algorithm
evaluate, evaluateAll, evaluateAll, getNumberOfEvaluations, getProblem, isInitialized, isTerminated, run, run, step, terminateMethods inherited from interface org.moeaframework.core.configuration.Configurable
applyConfiguration, getConfigurationMethods inherited from interface org.moeaframework.algorithm.extension.Extensible
addExtension, getExtensions, removeExtension
-
Constructor Details
-
VEGA
Constructs a new VEGA instance with default settings.- Parameters:
problem- the problem
-
VEGA
public VEGA(Problem problem, int initialPopulationSize, Population population, NondominatedPopulation archive, Initialization initialization, Variation variation) Constructs a new VEGA instance.- Parameters:
problem- the probleminitialPopulationSize- the initial population sizepopulation- the populationarchive- the external archive; ornullif no external archive is usedinitialization- the initialization operatorvariation- the variation operator
-
-
Method Details
-
getName
Description copied from interface:AlgorithmReturns the name of this algorithm. Whenever possible, this name should match the name recognized byAlgorithmFactory.- Returns:
- the name of this algorithm
-
setVariation
Description copied from class:AbstractEvolutionaryAlgorithmReplaces the variation operator to be used by this algorithm.- Overrides:
setVariationin classAbstractEvolutionaryAlgorithm- Parameters:
variation- the variation operator
-
setInitialPopulationSize
public void setInitialPopulationSize(int initialPopulationSize) Description copied from class:AbstractEvolutionaryAlgorithmSets the initial population size. This value can not be set after initialization.- Overrides:
setInitialPopulationSizein classAbstractEvolutionaryAlgorithm- Parameters:
initialPopulationSize- the initial population size
-
iterate
protected void iterate()Description copied from class:AbstractAlgorithmPerforms one iteration of the algorithm. This method should be overridden by implementations to perform each logical iteration of the algorithm.- Specified by:
iteratein classAbstractAlgorithm
-