Ejemplo n.º 1
0
	def	update_position(self,seq):
		swap.apply_swap_sequence(np.copy(self.pos),seq)
Ejemplo n.º 2
0
 def update_position(self, seq):
     swap.apply_swap_sequence(np.copy(self.pos), seq)
Ejemplo n.º 3
0
		#		Particle.gbest=np.copy(child)
		#		gbest_fit=fit_val
		#		flag=0

		#if fitness of child is higher than pbest,update pbest
		#if fit_val<pop[i].pbest_fit:
		#	pop[i].pbest=np.copy(child)
		#	pop[i].pbest_fit=fit_val

		#calculate new velocity,update position	
		seq1=swap.get_swap_sequence(pop[i].pbest,np.copy(pop[i].pos))
		seq2=swap.get_swap_sequence(Particle.gbest,np.copy(pop[i].pos))
		new_vel=pop[i].update_velocity(seq1,seq2,k)
		#new_vel=np.random.permutation(new_vel)
		#new_pos=pop[i].update_position(new_vel)
		new_pos=swap.apply_swap_sequence(np.copy(pop[i].pos),new_vel)
		#print new_vel
		#print pop[i].pos
		#print new_pos
		#pop[i].pos=swap.apply_swap_sequence(new_pos,pop[i].pos)
		pop[i].vel=swap.get_swap_sequence(new_pos,np.copy(pop[i].pos))				
		pop[i].pos=np.copy(new_pos)
		pop[i].fitness=pop[i].get_fitness(cost)



		if(k%5==0):
			randno=random.uniform(0,1)
			if(randno>=0.5):
				idx1=random.randrange(0,cities)
				idx2=random.randrange(0,cities)
Ejemplo n.º 4
0
        #		Particle.gbest=np.copy(child)
        #		gbest_fit=fit_val
        #		flag=0

        #if fitness of child is higher than pbest,update pbest
        #if fit_val<pop[i].pbest_fit:
        #	pop[i].pbest=np.copy(child)
        #	pop[i].pbest_fit=fit_val

        #calculate new velocity,update position
        seq1 = swap.get_swap_sequence(pop[i].pbest, np.copy(pop[i].pos))
        seq2 = swap.get_swap_sequence(Particle.gbest, np.copy(pop[i].pos))
        new_vel = pop[i].update_velocity(seq1, seq2, k)
        #new_vel=np.random.permutation(new_vel)
        #new_pos=pop[i].update_position(new_vel)
        new_pos = swap.apply_swap_sequence(np.copy(pop[i].pos), new_vel)
        #print new_vel
        #print pop[i].pos
        #print new_pos
        #pop[i].pos=swap.apply_swap_sequence(new_pos,pop[i].pos)
        pop[i].vel = swap.get_swap_sequence(new_pos, np.copy(pop[i].pos))
        pop[i].pos = np.copy(new_pos)
        pop[i].fitness = pop[i].get_fitness(cost)

        if (k % 5 == 0):
            randno = random.uniform(0, 1)
            if (randno >= 0.5):
                idx1 = random.randrange(0, cities)
                idx2 = random.randrange(0, cities)
                temp_val = pop[i].pos[idx1]
                pop[i].pos[idx1] = pop[i].pos[idx2]