(1) Initialize PopSize, KELossRate, MoleColl and InitialKE, and ; |
(2) Call Algorithm 2 to generate the initial population of TMSCRO, CROPop; |
(3) Call Algorithm 3 to calculate PE of each molecule in CROPop; |
(4) while the stopping criteria is not met do |
(5) Generate ; |
(6) if > MoleColl |
(7) Select a reaction molecule from CROPop randomly; |
(8) if (() > ) & |
(9) Call DecompT to generate new molecules and ; |
(10) Call Algorithm 3 to calculate and ; |
(11) if Inequality (2) holds |
(12) Remove from CROPop; |
(13) Add and to CROPop; |
(14) end if |
(15) else |
(16) Call OnWallT to generate a new molecules ; |
(17) Call Algorithm 3 to calculate ; |
(18) If |
(19) InitS = ; |
(20) end if |
(21) Remove from CROPop; |
(22) Add to CROPop; |
(23) end if |
(24) else |
(25) Select two molecules and from CROPop randomly; |
(26) if ( < ) & ( < ) & () & () |
(27) Call SynthT to generate a new molecule ; |
(28) Call Algorithm 3 to calculate ; |
(29) if Inequality (10) holds |
(30) Remove and from CROPop; |
(31) Add to CROPop; |
(32) end if |
(33) else |
(34) Call IntermoleT to generate two new molecules and ; |
(35) Call Algorithm 3 to calculate and ; |
(36) if () |
(37) ; |
(38) else if () |
(39) ; |
(40) end if |
(41) Remove and from CROPop; |
(42) Add and to CROPop; |
(43) end if |
(44) end if |
(45) end while |
(46) return the molecule with the lowest PE in CROPop; |