Class MSOPS

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

public class MSOPS extends AbstractEvolutionaryAlgorithm
Implementation of the Multiple Single Objective Pareto Sampling (MSOPS) algorithm. This implementation only supports differential evolution.

References:

  1. E. J. Hughes. "Multiple Single Objective Pareto Sampling." 2003 Congress on Evolutionary Computation, pp. 2678-2684.
  2. Matlab source code available from http://code.evanhughes.org/.
See Also:
  • Constructor Details

    • MSOPS

      public MSOPS(Problem problem)
      Constructs a new MSOPS instance with default settings.
      Parameters:
      problem - the problem being solved
    • MSOPS

      public MSOPS(Problem problem, int initialPopulationSize, MSOPSRankedPopulation population, DifferentialEvolutionSelection selection, DifferentialEvolutionVariation variation, Initialization initialization)
      Constructs a new instance of the MSOPS algorithm.
      Parameters:
      problem - the problem being solved
      initialPopulationSize - the initial population size
      population - the population supporting MSOPS ranking
      selection - the differential evolution selection operator
      variation - the differential evolution variation operator
      initialization - the initialization method
  • Method Details

    • getVariation

      public DifferentialEvolutionVariation getVariation()
      Description copied from class: AbstractEvolutionaryAlgorithm
      Returns the variation operator currently in use by this algorithm.
      Overrides:
      getVariation in class AbstractEvolutionaryAlgorithm
      Returns:
      the variation operator
    • setVariation

      public void setVariation(DifferentialEvolutionVariation variation)
      Replaces the differential evolution variation operator to be used by this algorithm.
      Parameters:
      variation - the differential evolution 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
    • getPopulation

      public MSOPSRankedPopulation getPopulation()
      Description copied from interface: EvolutionaryAlgorithm
      Returns the current population of this evolutionary algorithm.
      Specified by:
      getPopulation in interface EvolutionaryAlgorithm
      Overrides:
      getPopulation in class AbstractEvolutionaryAlgorithm
      Returns:
      the current population of this evolutionary algorithm
    • 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
    • applyConfiguration

      public void applyConfiguration(TypedProperties properties)
      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 call TypedProperties.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 any Configurable objects inside this object, they should be updated before calling super.applyConfiguration(properties).
      Parameters:
      properties - the user-defined properties
    • getConfiguration

      public TypedProperties 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