Exemplo n.º 1
0
    def IntermolecularIneffectiveCollision(self, mole, oldMol1, oldMol2,
                                           index1, index2):
        operator = Operators()
        newMol1, newMol2 = operator.Intermolecular(oldMol1, oldMol2)
        pe1 = CRO().CalculatePE(mole, newMol1)
        pe2 = CRO().CalculatePE(mole, newMol2)

        e_inter = 0
        gamma4 = random.uniform(0, 1)

        mole.numHit[index1] = mole.numHit[index1] + 1
        mole.numHit[index2] = mole.numHit[index2] + 1
        e_inter = (mole.PE1[index1] + mole.PE1[index2] + mole.KE1[index1] +
                   mole.KE1[index2]) - (pe1 + pe2)
        if (e_inter >= 0):
            mole.moleculeTable[index1] = newMol1
            mole.moleculeTable[index2] = newMol2
            mole.PE1[index1] = pe1
            mole.PE1[index2] = pe2
            mole.KE1[index1] = e_inter * gamma4
            mole.KE1[index2] = e_inter * (1 - gamma4)

            if (mole.PE1[index1] < mole.minPE[index1]):
                mole.minStruct[index1] = mole.moleculeTable[index1]
                mole.minPE[index1] = mole.PE1[index1]
                mole.minHit[index1] = mole.numHit[index1]
            # endif

            if (mole.PE1[index2] < mole.minPE[index2]):
                mole.minStruct[index2] = mole.moleculeTable[index2]
                mole.minPE[index2] = mole.PE1[index2]
                mole.minHit[index2] = mole.numHit[index2]
Exemplo n.º 2
0
	def IntermolecularIneffectiveCollision(self,mole,oldMol1,oldMol2,index1,index2,shiftcost,flowcost,N):
		operator = Operators()
		newMol1, newMol2 = operator.Intermolecular(oldMol1, oldMol2)
		pe1 = CRO().CalculatePE(newMol1,shiftcost,flowcost,N)
		pe2 = CRO().CalculatePE(newMol2,shiftcost,flowcost,N)
		
		e_inter = 0
		gamma4 = random.uniform(0,1)
		#print ('Intermoleculer newMoll', newMol1)

		mole.moleculeTable.append(newMol1)
		mole.moleculeTable.append(newMol2)
		mole.PE.append(pe1)
		mole.PE.append(pe2)
		#print('PE Check',mole.PE)
		#print ('Intermoleculer Table', mole.moleculeTable)
		#mole.numHit[index1] = mole.numHit[index1] + 1
		#mole.numHit[index2] = mole.numHit[index2] + 1
		e_inter = (mole.PE[index1] + mole.PE[index2] + mole.KE1[index1] + mole.KE1[index2]) - (pe1 + pe2)
		mole.KE1.append(e_inter * gamma4)
		mole.KE1.append(e_inter * (1-gamma4))
		if (e_inter>=0):
			#mole.moleculeTable[index1] = newMol1
			#mole.moleculeTable[index2] = newMol2

			#mole.moleculeTable.append(newMol1)
			#mole.moleculeTable.append(newMol2)



			#mole.PE[index1] = pe1
			#mole.PE[index2] = pe2

			#mole.KE1[index1] = e_inter * gamma4
			#mole.KE1[index2] = e_inter * (1 - gamma4)
			'''