return mst
-def find_one_tree(route: list) -> list:
+def find_one_tree(route: list):
removed_vertex = route[0]
mst = find_MST(route[1:-1])
distances = []
self.salesman = Salesman(self.route)
self.mst = find_MST(route[:-1])
- self.ot,self.ot_removed_point = find_one_tree(route)
+ self.ot, self.ot_removed_point = find_one_tree(route)
def update(self, delta: float) -> None:
self.salesman.update(delta)
self.screen.fill(WHITE)
- pygame.draw.circle(self.screen,BLUE,self.ot_removed_point,15)
+ pygame.draw.circle(self.screen, BLUE, self.ot_removed_point, 15)
if len(self.route) > 1:
for line in self.ot: # One Tree
return shortest_route
-def print_info(route: list, time: float, method_name: str, one_tree: float, one_tree_time:float, r=0) -> None:
+def print_info(route: list, time: float, method_name: str, one_tree: float, one_tree_time: float, r=0) -> None:
+ d = calculate_route(route)
print(
f"""
Traveling Salesman Problem
Method Used: {method_name}
+Approximation ratio: {round(d/one_tree * 100 - 100,r)}%
Time Used: {round(time, r):,} seconds
Number of Nodes: {(len(route) - 1):,}
-Distance: {round(calculate_route(route), r):,}
+Distance: {round(d, r):,}
One Tree Lower Bound: {round(one_tree, r):,}
-One Tree Time Used: {round(one_tree_time, r):,}
+One Tree Time Used: {round(one_tree_time, r):,} seconds
""")
lower_bound = None
for removed_vertex in graph:
- g = graph[:graph.index(removed_vertex)] + graph[graph.index(removed_vertex)+1:]
+ g = graph[:graph.index(removed_vertex)] + graph[graph.index(removed_vertex) + 1:]
mst = find_MST(g)
distances = []
for town in g:
print("The file does not exist")
if CREATE_NEW_GRAPHS:
- graph, filename = create(GRAPH_PATH, 640, 640, 100)
+ graph, filename = create(GRAPH_PATH, 640, 640, 50)
else:
filename = "graph1.txt"
graph = read(GRAPH_PATH, filename)
one_tree = find_one_tree(graph)
one_tree_time_end = perf_counter()
- print_info(route, route_time_end - route_time_start, "NN Heuristic", one_tree, one_tree_time_end-one_tree_time_start,r=100)
+ print_info(route, route_time_end - route_time_start, "NN Heuristic", one_tree,
+ one_tree_time_end - one_tree_time_start, r=3)
display = Display(os.path.join(GRAPH_PATH, filename), route)
display.show()