Particle Swarm Optimization
Particle Swarm OptimizationIt is an optimization algorithm based on swarm intelligence theory, which uses particles to optimize the problem in the process of iterative search.
This algorithm was proposed by J. Kennedy and RCEberhart in 1995. It is an evolutionary computing technology that comes from the simulation of a simplified social model. It adjusts its position and speed by tracking the two extreme values of the group. The two extreme values are: the optimal solution Pbest found by the particle itself and the optimal solution Gbest found by the group.
Concept Explanation
- "Swarm" is a basic principle of collective intelligence, which comes from the model of developing and applying artificial life by matching particle swarms;
- The term "particle" is used to describe members of a group as substances that have no mass or volume but have speed and acceleration.
Applications of PSO
PSO is a type of swarm intelligence algorithm, designed based on simulating the predation behavior of bird flocks.
Assuming there is only one piece of food in the area (i.e. the optimal solution), the task of the flock of birds is to find this food source. Individuals will transmit their information to each other to achieve transmission. Through such collaboration, the optimal solution is determined, and the information of the optimal solution is also transmitted to the entire group. Eventually, they can gather around the food source, that is, they have found the optimal solution.
Standard PSO algorithm flow
- Initialize a group of particles (group size is m), including random positions and velocities;
- Evaluate the fitness of each particle;
- For each particle, the fitness value is compared with Pbest, and the best value is taken as the current best position Pbest;
- For each particle, the fitness value is compared with Gbest, and the best value is used as the index number of Gbest;
- Change the velocity and position of the particle according to the equation;
- If the end condition is not met, repeat step 2.