Fuzzy Self-Tuning PSO global optimization library
Project description
Fuzzy Self-Tuning PSO (FST-PSO) is a swarm intelligence global optimization method [1] based on Particle Swarm Optimization [2].
FST-PSO is settings-free version of PSO which exploits fuzzy logic to dynamically assign the functioning parameters to each particle in the swarm. Specifically, during each generation, FST-PSO is determines the optimal choice for the cognitive factor, the social factor, the inertia value, the minimum velocity, and the maximum velocity. FST-PSO also uses an heuristics to choose the swarm size.
FST-PSO is designed for real-valued multi-dimensional minimization problems.
In order to use FST-PSO, the programmer must implement:
a custom fitness function;
the number of dimensions of the problem;
the boundaries of the search space for each dimension.
The programmer can also specify the maximum number of fitness evaluations. FST-PSO returns the best fitting solution along with its fitness value.
Example
FST-PSO can be used as follows:
from fstpso import FuzzyPSO
- def example_fitness( particle ):
return sum(map(lambda x: x**2, particle))
if __name__ == ‘__main__’:
dims = 10
FP = FuzzyPSO( D=dims )
FP.set_fitness(example_fitness)
FP.set_search_space( [[-10, 10]]*dims )
result = FP.solve_with_fstpso(max_iter=100)
print “Best solution:”, result[0]
print “Whose fitness is:”, result[1]
Further information
FST-PSO has been created by M.S. Nobile, D. Besozzi, G. Pasi, G. Mauri, R. Colombo (University of Milan-Bicocca, Italy), and P. Cazzaniga (University of Bergamo, Italy). The source code was written by M.S. Nobile.
[1] 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)
[2] Kennedy, Eberhart, Particle swarm optimization, in: Proceedings IEEE International Conference on Neural Networks, Vol. 4, 1995, pp. 1942–1948
<http://www.sciencedirect.com/science/article/pii/S2210650216303534>
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.