Class VEGA

All Implemented Interfaces:
Algorithm, EvolutionaryAlgorithm, Extensible, Configurable, Named, Stateful

public class VEGA extends AbstractEvolutionaryAlgorithm
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:

  1. Schaffer, D. (1985). Multiple Objective Optimization with Vector Evaluated Genetic Algorithms. Proceedings of the 1st International Conference on Genetic Algorithms, pp. 93-100.
  • Constructor Details

    • VEGA

      public VEGA(Problem problem)
      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 problem
      initialPopulationSize - the initial population size
      population - the population
      archive - the external archive; or null if no external archive is used
      initialization - the initialization operator
      variation - the variation operator
  • Method Details

    • getName

      public String getName()
      Description copied from interface: Algorithm
      Returns the name of this algorithm. Whenever possible, this name should match the name recognized by AlgorithmFactory.
      Returns:
      the name of this algorithm
    • setVariation

      public void setVariation(Variation variation)
      Description copied from class: AbstractEvolutionaryAlgorithm
      Replaces the variation operator to be used by this algorithm.
      Overrides:
      setVariation in class AbstractEvolutionaryAlgorithm
      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 class AbstractEvolutionaryAlgorithm
      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 class AbstractAlgorithm