Class BaseSMSEMOA<S extends org.uma.jmetal.solution.Solution<?>>

java.lang.Object
org.uma.evolver.algorithm.base.smsemoa.BaseSMSEMOA<S>
Type Parameters:
S - the solution type handled by the algorithm
All Implemented Interfaces:
BaseLevelAlgorithm<S>
Direct Known Subclasses:
DoubleSMSEMOA

public abstract class BaseSMSEMOA<S extends org.uma.jmetal.solution.Solution<?>> extends Object implements BaseLevelAlgorithm<S>
Abstract base class for configurable SMS-EMOA (S-Metric Selection Evolutionary Multi-Objective Algorithm) implementations for evolutionary algorithms.

This class provides a flexible and extensible foundation for building SMS-EMOA variants for different solution types. It manages the configuration and assembly of the main algorithmic components (variation, selection, replacement, evaluation, termination, etc.) using a parameter space abstraction. SMS-EMOA is a steady-state MOEA that uses the hypervolume contribution as the main selection criterion.

Key features of this implementation include:

  • Configurable variation operators (crossover and mutation)
  • Support for external archives
  • Flexible termination conditions
  • Parameter space for easy configuration

Subclasses must implement the setNonConfigurableParameters() method to set any parameters that are fixed or derived from the problem instance.

Typical usage involves:

  • Creating a concrete subclass for a specific solution type (e.g., permutation, double).
  • Configuring the parameter space and problem instance.
  • Calling build() to obtain a ready-to-run EvolutionaryAlgorithm instance.invalid input: '<'/n *

Example usage:


 SMSEMOADouble algorithm = new SMSEMOADouble(problem, 100, 25000);
 algorithm.parse(args);
 EvolutionaryAlgorithm<DoubleSolution> smsemoa = algorithm.build();
 smsemoa.run();
 
See Also: