PSOpt: a particle swarm optimization tool

psopt is an open source package for general use based on Particle swarm optimization (PSO). PSO is a population based stochastic optimization technique developed by Dr. Eberhart and Dr. Kennedy in 1995, inspired by social behavior of bird flocking or fish schooling.

PSO shares many similarities with evolutionary computation techniques such as Genetic Algorithms (GA). The system is initialized with a population of random solutions and searches for optima by updating generations. However, unlike GA, PSO has no evolution operators such as crossover and mutation. In PSO, the potential solutions, called particles, fly through the problem space by following the current optimum particles. [1]

psopt is released under the MIT license, its documentation lives at Read the Docs, the code on GitHub, and the latest release on PyPI.

Note

Currently PSOpt only supports combinatorial optimization.

[1] Hu, X. (2006). Particle Swarm Optimization <http://www.swarmintelligence.org/>

Overview

API Reference

psopt.Combination(obj_func, candidates[, …]) Solver to find the optimal combination of candidates
psopt.Permutation(obj_func, candidates[, …]) Solver to find an optimal permutation of candidates
psopt.utils.Results(*args, **kwargs) Class that stores the optimization results
psopt.utils.metrics Metrics