Particle swarm optimization (PSO) is a population based stochastic optimization technique developed by Eberhart and Kennedy in 1995 [97]. This method inspired by social behavior of bird flocking or fish schooling. It simulates the behaviors of bird flocking and uses it to solve the optimization problems. In PSO, each single solution, called "particle", is a "bird" in the search space. All of particles have fitness values, evaluated by the fitness function to be optimized, and have velocities that direct the flying of the particles. The particles fly through the problem space by following the current optimum particles.