| Input |
NP: number of individuals in pigeon swarm |
D: dimension of the search space |
R: the map and compass factor |
Search range: the borders of the search space |
Nc1max: the maximum number of generations that the map and compass operation is carried out |
Nc2max: the maximum number of generations that the landmark operation is carried out. |
Output |
Xg: the global optima of the fitness function f |
(1) | Initialization |
Set initial values for Nc1max, Nc2max, NP, D, R and the search range |
Set initial path Xi and velocity Vi for each pigeon individual |
Set Xp = Xi, NC = 1 |
Calculate fitness values of different pigeon individuals |
: = argmin [f: (Xp)] |
(2) | Map and compass operations |
For Nc = 1 to Nc1max do |
for i = 1 to Np do |
while Xi is beyond the search range do |
calculate Vi and Xi according to equations (4) and (5) |
end while |
end for |
evaluate Xi, and update Xp and Xg |
end for |
(3) | Landmark operations |
For Nc = Nc1max + 1 to Nc2max do |
while Xp is beyond the search range do |
rank all the available pigeon individuals according to their fitness values |
NP = NP/2 |
keep half of the individuals with better fitness value, and abandon the other half |
Xc = average value of the paths of the remaining pigeon individuals |
calculate Xi according to equation (8) |
end while |
evaluate Xi, and update Xp and |
end for |
(4) | Output |
is output as the global optima of the fitness function f |