need a final check and should be done
This commit is contained in:
parent
d3d41d5923
commit
c75ecc3d5b
2 changed files with 14 additions and 13 deletions
22
run.py
22
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()
|
||||
|
||||
|
|
|
@ -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))
|
||||
|
|
Reference in a new issue