From c75ecc3d5b9b17956ca4053d5222cfd4519c1980 Mon Sep 17 00:00:00 2001 From: Dario Mantegazza Date: Mon, 28 Sep 2020 11:56:36 +0200 Subject: [PATCH] need a final check and should be done --- run.py | 22 +++++++++++----------- src/io_tsp.py | 5 +++-- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/run.py b/run.py index 0fe88ac..5403f1a 100644 --- a/run.py +++ b/run.py @@ -1,3 +1,4 @@ +import glob import pandas as pd from src.io_tsp import ProblemInstance from src.TSP_solver import SolverTSP, available_improvers, available_solvers @@ -22,8 +23,8 @@ def use_solver_to_compute_solution(solver, improve, index, results, name, verbos def run(show_plots=False, verbose=False): - # problems = glob.glob('./problems/*.tsp') - problems = ["./problems/eil76.tsp"] + problems = glob.glob('./problems/*.tsp') + # problems = ["./problems/eil76.tsp"] solvers_names = available_solvers.keys() improvers_names = available_improvers.keys() results = [] @@ -40,20 +41,19 @@ def run(show_plots=False, verbose=False): for improve in improvers_names: solver = SolverTSP(solver_name, prob_instance) use_solver_to_compute_solution(solver, improve, index, results, problem_path, verbose, show_plots) - for improve2 in [j for j in improvers_names if j not in [improve]]: - use_solver_to_compute_solution(solver, improve2, index, results, problem_path, verbose, show_plots) + for improve2 in [j for j in improvers_names if j not in [improve]]: + use_solver_to_compute_solution(solver, improve2, index, results, problem_path, verbose, show_plots) - for improve3 in [j for j in improvers_names if j not in [improve, improve2]]: - use_solver_to_compute_solution(solver, improve3, index, results, problem_path, verbose, - show_plots) - solver.pop() + for improve3 in [j for j in improvers_names if j not in [improve, improve2]]: + use_solver_to_compute_solution(solver, improve3, index, results, problem_path, verbose, + show_plots) + solver.pop() - solver.pop() + solver.pop() if prob_instance.exist_opt and show_plots: solver = SolverTSP("optimal", prob_instance) - # solver.name_method = "optimal" # TODO ask umberto details - + solver.solved = True solver.solution = np.concatenate([prob_instance.optimal_tour, [prob_instance.optimal_tour[0]]]) solver.plot_solution() diff --git a/src/io_tsp.py b/src/io_tsp.py index c2676a1..776f6a4 100644 --- a/src/io_tsp.py +++ b/src/io_tsp.py @@ -15,9 +15,9 @@ class ProblemInstance: points: ndarray def __init__(self, name_tsp): - self.read_instance(name_tsp) - self.exist_opt = False # TODO determine default value + self.exist_opt = False self.optimal_tour = None + self.read_instance(name_tsp) def read_instance(self, name_tsp): # read raw data @@ -57,6 +57,7 @@ class ProblemInstance: print('name: ' + self.name) print('nPoints: ' + str(self.nPoints)) print('best_sol: ' + str(self.best_sol)) + print('exist optimal: ' + str(self.exist_opt)) def plot_data(self): plt.figure(figsize=(8, 8))