Fuzzy Self-Tuning Particle Swarm Optimization

Marco S. Nobile, Associate Professor with the Ca' Foscari University of Venice, Italy

FST-PSO is a settings-free version of the global optimization algorithm known as Particle Swarm Optimization.

FST-PSO does not need any user settings to work, because particles leverage fuzzy logic to adapt their behavior to the fitness landscape.


pip install fst-pso

Why should I use FST-PSO?

FST-PSO was specifically designed to be 1) more effective than normal PSO and its competitors (please, check out the paper for additional info) and 2) extremely easy to use (no settings, few lines of code). Thus, the API is extremely simple and straightforward:

  • create a FuzzyPSO class;
  • specify the search space with its set_search_space() method;
  • specify a fitness function with the set_fitness() method. Please note that the argument of this method must be a function which receives the position of a particle as argument and returns its fitness value as a real number;
  • launch the optimization with the solve_with_fstpso() method.

Please note that you must specify the search space before setting the fitness function, because the set_fitness() method is designed to automatically test the proper functioning of the fitness function. You can exclude this check by using the optional argument skip_test=True.

Additional information about FST-PSO

  • Examples
  • Optional settings
  • Logging FST-PSO’s performance
  • Distribute the fitness evaluations
  • GITHUB repository

Citing FST-PSO

If you find FST-PSO useful for your research, please cite it as:

Nobile, Cazzaniga, Besozzi, Colombo, Mauri, Pasi, “Fuzzy Self-Tuning PSO: A Settings-Free Algorithm for Global Optimization”, Swarm & Evolutionary Computation, 39:70-85, 2018 (doi:10.1016/j.swevo.2017.09.001)

No Comments

Add your comment