| Initialize the particle’s populations i = 1,…,n |
| Assign equilibrium candidates’ fitness a large number |
| Assign free parameters a1 = 2; a2 = 1; GP = 0.5; |
| While Iter < Max_iter |
| For i = 1: number of particles (n) |
| Calculate fitness of ith particle |
| If () < () |
| Replace with and fit () with () |
| Convert each into binary using S-shaped transfer function in Cbinary ij |
| Calculate the fitness of each Cbinary ij |
| Update new position of the candidate using (16) |
| Else if () > ( ) & ()) < () |
| Replace with and fit () with () |
| Convert each into binary using S-shaped transfer function in Cbinary ij |
| Calculate the fitness of each Cbinary ij |
| Update new position of the candidate using (16) |
| Else if () > (( ) & () > () & () < () |
| Replace with and fit () with () |
| Convert each into binary using S-shaped transfer function in Cbinaryij |
| Calculate the fitness of each Cbinaryij |
| Update new position of the candidate using (16) |
| Else if () > () & () > () & () > () & ()) < () |
| Replace with and fit ( ) with () |
| Convert each into binary using S-shaped transfer function in Cbinary ij |
| Calculate the fitness of each Cbinary ij |
| Update new position of the candidate using (16) |
| End (If) |
| End (For) |
| |
| Construct the equilibrium pool |
| Accomplish memory saving (if Iter >1) |
| Assign using (12) |
| For i = 1: number of particles (n) |
| Randomly choose one candidate from the equilibrium pool (vector) |
| Generate random vectors of λ⃗, r⃗ using (11) |
| Construct using (11) |
| Construct using (15) |
| Construct using (14) |
| Construct using (13) |
| Update concentrations (1- F) using (16) |
| End (For) |
| Iter = Iter + 1 |
| End while |
| Return candidate with best fitness value |