discrete_optimization.generic_tools.hub_solver.optal package

Submodules

discrete_optimization.generic_tools.hub_solver.optal.generic_optal module

class discrete_optimization.generic_tools.hub_solver.optal.generic_optal.OptalBasicCallback(stats: dict)[source]

Bases: BasicStatsCallback

get_df_metrics() DataFrame[source]

Construct a dataframe indexed by time of the recorded metrics (fitness, bounds…).

class discrete_optimization.generic_tools.hub_solver.optal.generic_optal.OptalSolver(problem: Problem, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs: Any)[source]

Bases: CpSolver

add_bound_constraint(var: Any, sign: SignEnum, value: int) list[Any][source]

Add constraint of bound type on an integer variable (or expression) of the underlying cp model.

var must compare to value according to value.

Parameters:
  • var

  • sign

  • value

Returns:

build_command(parameters_cp: ParametersCp | None = None, time_limit: int = 10, **args: Any)[source]

Build the command line call for optal cp. You can pass parameters from the Parameters class of optal cp for example : searchType=fds, worker0-1.noOverlapPropagationLevel=4 if you want worker 0 and 1 to use this parameters etc. TODO : list such parameters in hyperparameter of this wrapped solver.

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

Instantiate a CP model instance

Afterwards, self.instance should not be None anymore.

minimize_variable(var: Any) None[source]

Set the cp solver objective as minimizing var.

abstract retrieve_current_solution(dict_results: dict) Solution[source]
solve(callbacks: list[Callback] | None = None, parameters_cp: ParametersCp | None = None, time_limit: int = 10, do_not_retrieve_solutions: bool = False, verbose: bool = True, debug: bool = False, **args: 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

discrete_optimization.generic_tools.hub_solver.optal.model_collections module

class discrete_optimization.generic_tools.hub_solver.optal.model_collections.DoProblemEnum(value)[source]

Bases: Enum

An enumeration.

FJSP = 1
JSP = 0
MRCPSP = 3
MSRCPSP = 4
RCPSP = 2
SINGLEMACHINE = 5
TSP = 6
TSPTW = 7
WORKFORCE_SCHEDULING = 8

Module contents