-
Notifications
You must be signed in to change notification settings - Fork 22
Home
Welcome to the fst-pso wiki!
We encourage everyone to participate in this wiki. Please remember that, in order to modify the wiki, you need to create an account (top right corner).
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.
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, 2017 (doi:10.1016/j.swevo.2017.09.001)
FST-PSO was specifically design to be 1) extremely easy to use (no settings!) and 2) more effective than normal PSO. 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.
Yes. You can pass the number of iterations as argument (max_iter
) to solve_with_fstpso()
.
Yes. In alternative to the set_fitness()
method, you can use the set_parallel_fitness()
method. In this case, you must specify as argument a function which receives the whole population and must return the vector of the fitness values for all particles. Please note that the position of a particle is contained in the field .X
.
FST-PSO uses fuzzy logic to dynamically adapt the social factor, cognitive factor, inertia weight, maximum velocity, and minimum velocity of all particles