In computational science, particle swarm optimization (PSO) is a
computational method that optimizes a problem by iteratively trying to improve
a candidate solution with regard to a given measure of quality. It solves a
problem by having a population of candidate solutions, here dubbed particles,
and moving these particles around in the search-space according to simple
mathematical formulae over the particle's position and velocity. Each
particle's movement is influenced by its local best known position, but is
also guided toward the best known positions in the search-space, which are
updated as better positions are found by other particles. This is expected to
move the swarm toward the best solutions.