discrete_optimization.binpack.solvers package

Submodules

discrete_optimization.binpack.solvers.cpsat module

class discrete_optimization.binpack.solvers.cpsat.CpSatBinPackSolver(problem: BinPackSolution, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs: Any)[source]

Bases: OrtoolsCpSatSolver, WarmstartMixin

hyperparameters: list[Hyperparameter] = [EnumHyperparameter(name='modeling', default=<ModelingBinPack.BINARY: 0>, depends_on=None, name_in_kwargs='modeling')]

Hyperparameters available for this solver.

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

  • init_model() (when available)

  • solve()

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

Instantiate a CP model instance

Afterwards, self.instance should not be None anymore.

init_model_binary(**args: Any)[source]
init_model_scheduling(**args: Any)[source]
modeling: ModelingBinPack
problem: BinPackProblem
retrieve_solution(cpsolvercb: CpSolverSolutionCallback) Solution[source]

Construct a do solution from the cpsat solver internal solution.

It will be called each time the cpsat solver find a new solution. At that point, value of internal variables are accessible via cpsolvercb.Value(VARIABLE_NAME).

Parameters:

cpsolvercb – the ortools callback called when the cpsat solver finds a new solution.

Returns:

the intermediate solution, at do format.

set_warm_start(solution: BinPackSolution) None[source]

Make the solver warm start from the given solution.

set_warm_start_prev()[source]
class discrete_optimization.binpack.solvers.cpsat.ModelingBinPack(value)[source]

Bases: Enum

An enumeration.

BINARY = 0
SCHEDULING = 1

discrete_optimization.binpack.solvers.dp module

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

Bases: DpSolver

hyperparameters: list[Hyperparameter] = [EnumHyperparameter(name='modeling', default=<ModelingDpBinPack.ASSIGN_ITEM_BINS: 0>, depends_on=None, name_in_kwargs='modeling')]

Hyperparameters available for this solver.

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

  • init_model() (when available)

  • solve()

init_model(**kwargs)[source]

Initialize internal model used to solve.

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

init_model_assign_item_and_bins(**kwargs: Any) None[source]
init_model_fill_bins(**kwargs)[source]
init_model_fill_bins_with_constraints(**kwargs)[source]
modeling: ModelingDpBinPack
problem: BinPackProblem
retrieve_solution(sol: Solution) Solution[source]
retrieve_solution_color_transition(sol: Solution) Solution[source]
retrieve_solution_pack_items(sol: Solution) Solution[source]
transitions: dict
class discrete_optimization.binpack.solvers.dp.ModelingDpBinPack(value)[source]

Bases: Enum

An enumeration.

ASSIGN_ITEM_BINS = 0
PACK_ITEMS = 1

discrete_optimization.binpack.solvers.greedy module

class discrete_optimization.binpack.solvers.greedy.GreedyBinPackSolver(problem: BinPackProblem, **kwargs: Any)[source]

Bases: SolverDO

problem: BinPackProblem
solve(callbacks: list[Callback] | None = None, **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

discrete_optimization.binpack.solvers.lp module

class discrete_optimization.binpack.solvers.lp.MathOptBinPackSolver(problem: BinPackProblem, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs: Any)[source]

Bases: _BaseLpBinPackSolver, OrtoolsMathOptMilpSolver

convert_to_variable_values(solution: Solution) dict[Variable, float][source]

Convert a solution to a mapping between model variables and their values.

Will be used by set_warm_start().

discrete_optimization.binpack.solvers.toulbar module

class discrete_optimization.binpack.solvers.toulbar.ToulbarBinPackSolver(problem: Problem, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs: Any)[source]

Bases: ToulbarSolver, WarmstartMixin

init_model(**kwargs) None[source]

Initialize internal model used to solve.

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

problem: BinPackProblem
retrieve_solution(solution_from_toulbar2: tuple[list, float, int]) BinPackSolution[source]
set_warm_start(solution: BinPackSolution) None[source]

Make the solver warm start from the given solution.

Module contents