discrete_optimization.tsp.solver package

Submodules

discrete_optimization.tsp.solver.solver_lp_iterative module

class discrete_optimization.tsp.solver.solver_lp_iterative.LP_TSP_Iterative(problem: TSPModel, graph_builder: Callable[[TSPModel], Tuple[DiGraph, DiGraph, Dict[int, Set[Tuple[int, int]]], Dict[int, Set[Tuple[int, int]]]]], params_objective_function: ParamsObjectiveFunction | None = None, **kwargs: Any)[source]

Bases: SolverTSP

init_model(method: MILPSolver = MILPSolver.CBC, **kwargs: Any) None[source]

Initialize intern model used to solve.

Can initialize a ortools, milp, gurobi, … model.

init_model_cbc(**kwargs: Any) None[source]
init_model_gurobi(**kwargs: Any) None[source]
plot_solve(solutions: List[Set[Tuple[int, int]]], rebuilt_solution: List[List[int]], cost: List[float], nb_components: List[int], rebuilt_obj: List[float], show: bool = True, plot_folder: str | None = None) None[source]
retrieve_results_cbc() Tuple[DiGraph, Set[Tuple[int, int]]][source]
retrieve_results_gurobi() Tuple[DiGraph, Set[Tuple[int, int]]][source]
solve(**kwargs: Any) ResultStorage[source]

Generic solving function.

Parameters:
  • callbacks – list of callbacks used to hook into the various stage of the solve

  • **kwargs – any argument specific to the solver

Solvers deriving from SolverDo should use callbacks methods .on_step_end(), … during solve(). But some solvers are not yet updated and are just ignoring it.

Returns (ResultStorage): a result object containing potentially a pool of solutions to a discrete-optimization problem

class discrete_optimization.tsp.solver.solver_lp_iterative.MILPSolver(value)[source]

Bases: Enum

An enumeration.

CBC = 1
GUROBI = 0
discrete_optimization.tsp.solver.solver_lp_iterative.build_graph_complete(tsp_model: TSPModel) Tuple[DiGraph, DiGraph, Dict[int, Set[Tuple[int, int]]], Dict[int, Set[Tuple[int, int]]]][source]
discrete_optimization.tsp.solver.solver_lp_iterative.build_graph_pruned(tsp_model: TSPModel2D) Tuple[DiGraph, DiGraph, Dict[int, Set[Tuple[int, int]]], Dict[int, Set[Tuple[int, int]]]][source]
discrete_optimization.tsp.solver.solver_lp_iterative.build_the_cycles(x_solution: Set[Tuple[int, int]], component: Set[int], graph: DiGraph, start_index: int, end_index: int) Tuple[List[int], Dict[int, int]][source]
discrete_optimization.tsp.solver.solver_lp_iterative.rebuild_tsp_routine(sorted_connected_component: Sequence[Tuple[Set[int], int]], paths_component: Dict[int, List[int]], node_to_component: Dict[int, int], indexes: Dict[int, Dict[int, int]], graph: DiGraph, edges: Set[Tuple[int, int]], nodeCount: int, list_points: Sequence[Point], evaluate_function_indexes: Callable[[int, int], float], tsp_model: TSPModel, start_index: int = 0, end_index: int = 0) Tuple[List[int], Dict[str, float]][source]

discrete_optimization.tsp.solver.solver_ortools module

Simple travelling salesman problem between cities.

class discrete_optimization.tsp.solver.solver_ortools.TSP_ORtools(problem: TSPModel, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs: Any)[source]

Bases: SolverTSP

init_model(**kwargs: Any) None[source]

Initialize intern model used to solve.

Can initialize a ortools, milp, gurobi, … model.

solve(**kwargs: Any) ResultStorage[source]

Prints solution on console.

discrete_optimization.tsp.solver.tsp_cp_solver module

class discrete_optimization.tsp.solver.tsp_cp_solver.TSP_CPModel[source]

Bases: object

FLOAT_VERSION = 0
INT_VERSION = 1
class discrete_optimization.tsp.solver.tsp_cp_solver.TSP_CP_Solver(problem: TSPModel, model_type: TSP_CPModel, cp_solver_name: CPSolverName = CPSolverName.CHUFFED, params_objective_function: ParamsObjectiveFunction | None = None, silent_solve_error: bool = False)[source]

Bases: MinizincCPSolver, SolverTSP

init_model(**args: Any) None[source]

Instantiate a CP model instance

Afterwards, self.instance should not be None anymore.

retrieve_solution(_output_item: str | None = None, **kwargs: Any) SolutionTSP[source]

Return a d-o solution from the variables computed by minizinc.

Parameters:
  • _output_item – string representing the minizinc solver output passed by minizinc to the solution constructor

  • **kwargs – keyword arguments passed by minzinc to the solution contructor containing the objective value (key “objective”), and the computed variables as defined in minizinc model.

Returns:

discrete_optimization.tsp.solver.tsp_solver module

class discrete_optimization.tsp.solver.tsp_solver.SolverTSP(problem: Problem, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs: Any)[source]

Bases: SolverDO

problem: TSPModel

Module contents