Particle swarm optimization (PSO) is a population-based stochastic approach for solving continuous and discrete optimization problems. In particle swarm optimization, simple software agents, called particles, move in the search space of an optimization problem. The position of a particle represents a candidate solution to the optimization problem at hand. Each particle searches for better positions in the search space by changing its velocity according to rules originally inspired by behavioral models of bird flocking. Particle swarm optimization belongs to the class of swarm intelligence techniques that are used to solve optimization problems.