obstacles = zip(obs_lower_corners,obs_upper_corners) occupancy = DetOccupancyGrid2D(width, height, obstacles) x_goals = [] for i in range(10S): x_goal = tuple(np.random.randint(0,height-2,2).tolist()) while not (occupancy.is_free(x_goal)): x_goal = tuple(np.random.randint(0,height-2,2).tolist()) x_goals.append(x_goal) x_init = x_goals[0] x_goals = x_goals[1:] ts_fast_circuit = traveling_salesman.traveling_salesman_fast(x_init, x_goals, (0,0), (width, height), occupancy, 1) ts_fast = [x_init] + [x_goals[i] for i in ts_fast_circuit] fig1 = plt.figure() for i in range(len(ts_fast) - 1): astar = AStar((0, 0), (width, height), ts_fast[i], ts_fast[i+1], occupancy) if astar.solve(): astar.plot_path(fig1, r"$x_{"+str(i)+"}$", r"$x_{"+str(i+1)+"}$" + str(len(astar.path)), pcolor='blue') fig2 = plt.figure() ts_exact_circuit = traveling_salesman.traveling_salesman_exact(x_init, x_goals, (0,0), (width, height), occupancy, 1) ts_exact = [x_init] + [x_goals[i] for i in ts_exact_circuit] for i in range(len(ts_exact) - 1): astar = AStar((0, 0), (width, height), ts_exact[i], ts_exact[i+1], occupancy) if astar.solve(): astar.plot_path(fig2, r"$x_{"+str(i)+"}$", r"$x_{"+str(i+1)+"}$" + str(len(astar.path)), pcolor='red') plt.show()