50695, 50698, 50699, 50700, 50701, 50702, 50703, 50704, 50705, 50706, 24196, 50707, 50708, 50709, 50710, 50711, 50712, 73303, 73304, 73298, 73299, 73300, 14245, 73301, 73302, 834596, 834597, 834598, 59132, 834599, 834600, 834601, 834602, 834603, 834604, 834605, 834606, 834607, 834608, 834609, 10876, 10877, 10845, 10846, 10847, 10848, 10849, 10850, 10851, 10852, 10865, 10866, 97261, 97262, 97263, 97196, 97264, 97265, 97266, 97267, 97268, 97269, 97270, 97271, 97247, 97249, 617117, 97287, 97288, 97289, 72317, 72318, 72319, 72320, 72321, 72322, 72323, 72324, 72325, 72326, 72327, 72328, 72329, 72330, 68505, 68506, 68507, 68508, 68509, 68500, 68510, 68511, 68512, 68450, 68513, 68514, 68459, 617116, 617115, 69265, 68711, 617114, 617113, 68713, 617112, 617111, 617110, 617109, 68593, 68592, 68591, 68590, 68589, 68588, 68587, 68586, 68585, 68584, 68583, 68582, 68581, 68464, 68465, 68466, 68467, 20186, 20187, 20188, 20189, 20172, 28144, 28145, 28146, 28147, 28148, 28149, 28150, 28151, 28152, 28153, 28154, 20107, 29247, 29248, 29249 ]) # Plot the orders plotOrders(roads, prob.orders) plt.title("Showing orders. Click to show path") plt.show(block=False) plt.waitforbuttonpress() # Plot the path plotPath(examplePath) plt.title("Showing path") plt.show() # TODO : Print the path's length/distance in kilometers. print("Path length: {:.2f}km".format(examplePath.getDistance() / 1000))
# Plot the orders plotOrders(roads, prob.orders) plt.title("Showing orders. Click to show path") plt.title("Showing orders. Click to show path") plt.show(block=False) plt.waitforbuttonpress() colors = ['red', 'blue', 'green', 'orange', 'grey'] plt.title("Showing paths") totalDistance = 0 # Plot each order at a time for i,order in enumerate(prob.orders): # Create a sub-problem to solve with A* (getting the optimal path for each order separately) subProblem = MapProblem(roads, order[0], order[1]) subPath, distance, _, _ = mapAstar.run(subProblem) print("Shortest distance for order from #{} to #{}: {:.2f}km".format(order[0], order[1], distance / 1000)) totalDistance += distance # Plot the path plotPath(Path(roads, [s.junctionIdx for s in subPath]), color=colors[i]) plt.show(block=False) plt.waitforbuttonpress() print("Total distance: {:.2f}km".format(totalDistance / 1000 ))