def Synthesis (self,mole,oldMol1,oldMol2,index1,index2,shiftcost,flowcost,N): operator = Operators() newMol = operator.Synthesis(oldMol1, oldMol2) #print('EI j ',newMol) pe_new = CRO().CalculatePE(newMol,shiftcost,flowcost,N) mole.moleculeTable.append(newMol) mole.PE.append(pe_new) mole.KE1.append(pe_new) if((mole.PE[index1]+mole.PE[index2] + mole.KE1[index1]+mole.KE1[index2])>=pe_new): ke_new = (mole.PE[index1] + mole.PE[index2] + mole.KE1[index1] + mole.KE1[index2]) - pe_new mole.KE1.append(ke_new) #del mole.moleculeTable[index1] #del mole.PE[index1] #del mole.KE1[index1] #del mole.numHit[index1] #del mole.minHit[index1] #del mole.minStruct[index1] #del mole.minPE[index1] if(index2>=index1): # position of index2 is decreased by 1 index2 = index2 -1 #mole.moleculeTable.append(newMol) #mole.PE.append(pe_new) mole.KE1.append(ke_new) mole.numHit.append(0) mole.minHit.append(0) mole.minStruct.append(newMol) mole.minPE.append(pe_new) else: mole.numHit[index1] = mole.numHit[index1] + 1 mole.numHit[index1] = mole.numHit[index1] + 1
def Synthesis(self, mole, oldMol1, oldMol2, index1, index2): operator = Operators() newMol = operator.Synthesis(oldMol1, oldMol2) pe_new = CRO().CalculatePE(mole, newMol) if ((mole.PE1[index1] + mole.PE1[index2] + mole.KE1[index1] + mole.KE1[index2]) >= pe_new): ke_new = (mole.PE1[index1] + mole.PE1[index2] + mole.KE1[index1] + mole.KE1[index2]) - pe_new del mole.moleculeTable[index1] del mole.PE1[index1] del mole.KE1[index1] del mole.numHit[index1] del mole.minHit[index1] del mole.minStruct[index1] del mole.minPE[index1] if (index2 >= index1): # position of index2 is decreased by 1 index2 = index2 - 1 del mole.moleculeTable[index2] del mole.PE1[index2] del mole.KE1[index2] del mole.numHit[index2] del mole.minHit[index2] del mole.minStruct[index2] del mole.minPE[index2] mole.moleculeTable.append(newMol) mole.PE1.append(pe_new) mole.KE1.append(ke_new) mole.numHit.append(0) mole.minHit.append(0) mole.minStruct.append(newMol) mole.minPE.append(pe_new) else: mole.numHit[index1] = mole.numHit[index1] + 1 mole.numHit[index1] = mole.numHit[index1] + 1