discrete_optimization.tsptw.solvers package

Submodules

discrete_optimization.tsptw.solvers.cpsat module

class discrete_optimization.tsptw.solvers.cpsat.CpSatTSPTWSolver(problem: TSPTWProblem, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs)[source]

Bases: OrtoolsCpSatSolver, WarmstartMixin

CP-SAT solver for the Traveling Salesman Problem with Time Windows.

This solver uses a circuit constraint to ensure a valid tour and enforces time window constraints through implications based on the selected arcs.

problem

The TSP-TW problem instance.

Type:

TSPTWProblem

variables

A dictionary to store the CP-SAT model variables, including arc variables (‘x_arc’), time variables (‘t_time’), and the makespan variable.

Type:

Dict[str, Any]

init_model(scaling_factor: float = 10.0, **kwargs: Any) None[source]

Initialise the CP-SAT model.

problem: TSPTWProblem
retrieve_solution(cpsolvercb: CpSolverSolutionCallback) TSPTWSolution[source]

Build a TSPTWSolution from the CP-SAT solver’s callback.

Parameters:

cpsolvercb – The ortools callback object containing the current solution.

Returns:

The current solution in the TSPTWSolution format.

set_warm_start(solution: TSPTWSolution) None[source]

Provides a warm start hint to the CP-SAT solver from an existing solution.

Parameters:

solution – A TSPTWSolution object.

discrete_optimization.tsptw.solvers.dp module

class discrete_optimization.tsptw.solvers.dp.DpTspTwSolver(problem: Problem, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs: Any)[source]

Bases: DpSolver

hyperparameters: list[Hyperparameter] = [CategoricalHyperparameter(name='add_dominated_transition', default=False, depends_on=None, name_in_kwargs='add_dominated_transition')]

Hyperparameters available for this solver.

These hyperparameters are to be feed to **kwargs found in
  • __init__()

  • init_model() (when available)

  • solve()

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

Initialize internal model used to solve.

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

problem: TSPTWProblem
retrieve_solution(sol: Solution) TSPTWSolution[source]
transitions: dict

Module contents