| (1)β iter 0, , Initialize particles β |
| (2)ββstop_criterionmaximum number of function evaluations or is not attained |
| (3) βwhileββ Not stop_criterionββdo |
| (4) ββββββforββeach particle ββtoββββdo |
| (5) βββββEvaluateββifββthe fitness value is better than the best fitness value (cbest) in historyββthen |
| (6) β βββββββUpdate current value as the new . |
| (7) βββββend |
| (8) ββββββend |
| (9) ββββββChoose the particle with the best fitness value in the neighborhood () |
| (10) ββββββforββeach particle ββtoββββdo |
| (11)β βββββUpdate particle velocity according to Equationββ(3) |
| (12) β βββββEnforce velocity bounds |
| (13) β βββββUpdate particle position according to Equationββ(4) |
| (14) β βββββEnforce particle bounds |
| (15) ββββββend |
| (16) ββββββifββthere is no improvement of global best solutionββthen |
| (17)βββββ |
| (18) ββββββend |
| (19) ββββββUpdate global best solution |
| (20) ββββββ |
| (21) ββββββifββββthen |
| (22)βββββ |
| (23) βββββApply SA to global best solution |
| (24) βββββiterSA 0, Initialize according to Equationββ(5) |
| (25) βββββ global_best_solution |
| (26) βββββ Evaluate() |
| (27) βββββwhileββNot SA_stop_criterionββdo |
| (28) βββββββwhileββinner-loop stop criterionββdo |
| (29) βββββββββ Generate() |
| (30) βββββββββ Evaluate() |
| (31) βββββββββifββAccept(current_cost, Neighbor_cost, )ββthen |
| (32) βββββββββββ |
| (33) βββββββββββ |
| (34) βββββββββend |
| (35) βββββββββiterSA iterSA + 1 |
| (36) βββββββββUpdate (global_best_solution) |
| (37) βββββββend |
| (38) βββββββUpdate() according to Equation(2) |
| (39) βββββββUpdate (SA_stop_criterion) |
| (40) βββββend |
| (41) ββββββend |
| (42) ββββββiter iter + 1, Update (stop_criterion) |
| (43) end |