Exemplo n.º 1
0
	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
Exemplo n.º 2
0
    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