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.
Installation
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