def interaction(z): robot_j = robots[pairwise_list[z][0][0]-1] rho_j= pairwise_list[z][0][1] #pair number robot_k= robots[pairwise_list[z][1][0]-1] rho_kk = pairwise_list[z][1][1] xj,yj=update_pairwisedistance(robot_j,rho_j,robot_k,rho_kk,times,mu,win,robots) robot_j.move(xj,yj)
def robot_movement(robots, particles, robot_id, times, mu, win): lock.acquire() pairwise_list = random.sample(particles, 1) robot_j = robots[particles[robot_id - 1][0] - 1] rho_j = particles[robot_id - 1][1] robot_k = robots[pairwise_list[0][0] - 1] rho_k = pairwise_list[0][1] xj, yj = update_pairwisedistance(robot_j, rho_j, robot_k, rho_k, times, mu, win, robots) lock.release() robot_j.move(xj, yj)
for i in range(1, N + 1, 1): particles.append([i, rho_k[i - 1]]) #pairwise_list= list(combinations(particles,2)) pairwise_list = random.sample(particles, 2) #mt_shuffle() step = 0 while (1): #replace with energy function pairwise_list = random.sample(particles, 2) robot_j = robots[pairwise_list[0][0] - 1] rho_j = pairwise_list[0][1] robot_k = robots[pairwise_list[1][0] - 1] rho_kk = pairwise_list[1][1] xj, yj, xk, yk, x_newj, y_newj, x_newk, y_newk = update_pairwisedistance( robot_j, rho_j, robot_k, rho_kk, times, mu, win) robot_j.move(xj, yj) #robot_k.move(xk,yk) #for z in range(len(pairwise_list)): # pairwise_list = random.sample(particles, 2) # robot_j = robots[pairwise_list[0][0]-1] # rho_j= pairwise_list[0][1] # robot_k= robots[pairwise_list[1][0]-1] # rho_kk = pairwise_list[1][1] # print(robots[pairwise_list[z][0][0]-1]) # print(robots[pairwise_list[z][1][0]-1]) # xj,yj,xk,yk,x_newj,y_newj,x_newk,y_newk=update_pairwisedistance(robot_j,rho_j,robot_k,rho_kk,times,mu,win) #time.sleep(100) #robots[pairwise_list[z][0][0]-1].move(xj + win.getWidth()/2,(win.getHeight()/2) - yj) # move bot to new position #robots[pairwise_list[z][1][0]-1].move(xk + win.getWidth()/2,(win.getHeight()/2) - yk) # robot_j.move(xj,yj) # move bot to new position
Uma_knot=0 while(((np.abs(du))>epsilon) and ((np.abs(dUma))>epsilon)): objective_func = AverageMeter() averageobjective_func= AverageMeter() #previous Uma interaction=1 while(interaction!=combination): print("Interaction : %d Step: %d",interaction,step) pairwise_list = random.sample(particles, 2) robot_j = robots[pairwise_list[0][0]-1] rho_j= pairwise_list[0][1] robot_k= robots[pairwise_list[1][0]-1] rho_kk = pairwise_list[1][1] xj,yj=update_pairwisedistance(robot_j,rho_j,robot_k,rho_kk,times,mu,win,robots) robot_j.move(xj,yj) interaction = interaction+1 # print("du/dt",du) if step==0: total_relativedist=total_relativedistance(robots,win,N) averageinterparticledist= (1/combination)*total_relativedist U_knot= averageinterparticledist- rho_kmean U=U_knot du=U #xk,yk,x_newj,y_newj,x_newk,y_newk Uma.append(U) #average list Uma_knot=np.mean(Uma) if step>0: total_relativedist=total_relativedistance(robots,win,N)