| Input: Objective function , constraints, and the dimensions of the problem |
| (1) /initialization phase/ |
| (2) Assign parameter value to PopSize, InitialKE, StepSize, buffer, KELossRate, On-wallColl, |
| (3) DecThres, SynThres, The set of molecules in this Container are molecules |
| (4) for each of the molecule do |
| (5) Assign a random solution to the molecular structure . Calculate the PE by () and evaluate. |
| (6) Assign the KE with InitialKE |
| (7) end for |
| (8) /Iterations phase/ |
| (9) while (the stopping criteria not met) do |
| (10) Get randomly in interval |
| (11) if () then |
| (12) select a molecule from Container Randomly |
| (13) if (Decomposition criterion met) then |
| (14) Decomposition |
| (15) if Success then Add a new molecule to Container |
| (16) else |
| (17) On-wallIneffectiveCollision |
| (18) end if |
| (19) else |
| (20) select two molecule and from Container Randomly |
| (21) if (Synthesis criterion met) then |
| (22) Synthesis |
| (23) if Success then Remove molecule from Container |
| (24) else |
| (25) Inter-molecularIneffectiveCollision |
| (26) end if |
| (27) end if |
| (28) evaluate and keep any new minimum solution |
| (29) end while |
| (30) /The Output phase/ |
| (31) Output the best solution and its function value. |