From c71931faba0b01a2d1e8f498b82960e1c381c89f Mon Sep 17 00:00:00 2001 From: Skullheadx <94652084+Skullheadx@users.noreply.github.com> Date: Wed, 28 Dec 2022 01:49:13 -0500 Subject: [PATCH] approximation ratio to info --- display.py | 6 +++--- graph.py | 10 ++++++---- main.py | 5 +++-- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/display.py b/display.py index afeeae0..3f3d5f0 100644 --- a/display.py +++ b/display.py @@ -35,7 +35,7 @@ def find_MST(route: list) -> list: 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 = [] @@ -124,7 +124,7 @@ class Display: 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) @@ -143,7 +143,7 @@ class Display: 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 diff --git a/graph.py b/graph.py index 48aa6c7..9b95c4f 100644 --- a/graph.py +++ b/graph.py @@ -78,16 +78,18 @@ def find_shortest_route(routes: list) -> list: 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 """) @@ -132,7 +134,7 @@ def find_one_tree(graph: list) -> float: 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: diff --git a/main.py b/main.py index dcface5..c9bb496 100644 --- a/main.py +++ b/main.py @@ -22,7 +22,7 @@ def main(): 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) @@ -37,7 +37,8 @@ def main(): 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() -- 2.54.0