From: Skullheadx <94652084+Skullheadx@users.noreply.github.com> Date: Tue, 10 Jan 2023 13:56:53 +0000 (-0500) Subject: two opt halfway X-Git-Url: http://git.skullheadx.com/nixos/README?a=commitdiff_plain;h=c067f31ab904571ce7cf80be49b776f6575aaada;p=The-Traveling-Salesman-Problem.git two opt halfway need to find a way to get optimal two opt lol --- diff --git a/tour_improvements/two_opt.py b/tour_improvements/two_opt.py index 358fd53..530bfec 100644 --- a/tour_improvements/two_opt.py +++ b/tour_improvements/two_opt.py @@ -4,20 +4,22 @@ from itertools import combinations def two_opt(route:list) ->list: - d = calculate_route(route) - r = delinker(route) - c = combinations(r,2) - for edge1,edge2 in c: - s1,e1 = edge1 - s2, e2 = edge2 + original_distance = calculate_route(route) + route_points = delinker(route) - print(edge1,edge2) - temp = r[:] - temp.remove(edge1) - temp.remove(edge2) - temp.append((s1, e2)) - temp.append((s2, e1)) - new_d = calculate_route(temp, mode="points") - if new_d < d: - r = temp[:] + for i, edge1 in enumerate(route_points): + edge_distance = + for edge2 in route_points[i+1:]: + s1,e1 = edge1 + s2, e2 = edge2 + + print(edge1,edge2) + temp = r[:] + temp.remove(edge1) + temp.remove(edge2) + temp.append((s1, e2)) + temp.append((s2, e1)) + new_d = calculate_route(temp, mode="points") + if new_d < d: + r = temp[:] return linker(r) \ No newline at end of file