示例#1
0
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)
示例#3
0
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)