Initialize all parameters such as swarm, velocity, position and others)

Evaluate each particle and find their local best and global best position.

Repeat {

Evaluate each particle and update their local best and global best position.

} until termination