This repository has been archived on 2021-10-31. You can view files and clone it, but cannot push or open issues or pull requests.
AICup/run.py
2019-10-31 18:33:22 +01:00

45 lines
1.3 KiB
Python

from src import *
from concorde.tsp import TSPSolver
def run(show_plots=False):
# names = [name_ for name_ in os.listdir("./problems") if "tsp" in name_]
names = ["ch130.tsp"]
for name in names:
print("\n\n#############################")
filename = f"problems/{name}"
instance = Instance(filename)
instance.print_info()
if show_plots:
instance.plot_data()
solver = TSPSolver.from_data(
instance.points[:, 1]*100,
instance.points[:, 2]*100,
norm="EUC_2D"
)
solution = solver.solve(verbose=False)
tour_opt = np.copy(solution.tour)
for method in ["random", "nearest_neighbors", "best_nn"]:
solver = Solver_TSP(method)
solver(instance, return_value=False)
print(f"the total length for the solution found is {solver.found_length}",
f"while the optimal length is {instance.best_sol}",
f"the gap is {solver.gap} %", sep="\n")
if show_plots:
solver.plot_solution()
solver.method = "optimal"
solver.solution = np.concatenate([tour_opt, [tour_opt[0]]])
solver.solved = True
solver.plot_solution()
print(solver.evaluate_solution(return_value=True))
if __name__ == '__main__':
run(show_plots=True)