| (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 |