Class SMPSO

All Implemented Interfaces:
Algorithm, Configurable, Stateful

public class SMPSO extends AbstractPSOAlgorithm
Implementation of SMPSO, the speed-constrained multi-objective particle swarm optimizer.

References:

  1. Nebro, A. J., J. J. Durillo, J. Garcia-Nieto, and C. A. Coello Coello (2009). SMPSO: A New PSO-based Metaheuristic for Multi-objective Optimization. 2009 IEEE Symposium on Computational Intelligence in Multi-Criteria Decision-Making, pp. 66-73.
  2. Durillo, J. J., J. Garc�a-Nieto, A. J. Nebro, C. A. Coello Coello, F. Luna, and E. Alba (2009). Multi-Objective Particle Swarm Optimizers: An Experimental Comparison. Evolutionary Multi-Criterion Optimization, pp. 495-509.
  • Constructor Details

    • SMPSO

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

      public SMPSO(Problem problem, int swarmSize, int leaderSize, double mutationProbability, double distributionIndex)
      Constructs a new SMPSO instance.
      Parameters:
      problem - the problem
      swarmSize - the number of particles
      leaderSize - the number of leaders
      mutationProbability - the mutation probability for PM
      distributionIndex - the distribution index for PM
  • Method Details

    • updateVelocity

      protected void updateVelocity(int i)
      Description copied from class: AbstractPSOAlgorithm
      Update the speed of an individual particle.
      Overrides:
      updateVelocity in class AbstractPSOAlgorithm
      Parameters:
      i - the index of the particle
    • constrictionCoefficient

      protected double constrictionCoefficient(double c1, double c2)
      Returns the velocity constriction coefficient.
      Parameters:
      c1 - the velocity coefficient for the local best
      c2 - the velocity coefficient for the leader
      Returns:
      the velocity constriction coefficient
    • mutate

      protected void mutate(int i)
      Description copied from class: AbstractPSOAlgorithm
      Applies the mutation operator to an individual particle.
      Overrides:
      mutate in class AbstractPSOAlgorithm
      Parameters:
      i - the index of the particle