discrete_optimization.binpack package
Subpackages
- discrete_optimization.binpack.solvers package
- Submodules
- discrete_optimization.binpack.solvers.cpsat module
CpSatBinPackSolver
CpSatBinPackSolver.hyperparameters
CpSatBinPackSolver.init_model()
CpSatBinPackSolver.init_model_binary()
CpSatBinPackSolver.init_model_scheduling()
CpSatBinPackSolver.modeling
CpSatBinPackSolver.problem
CpSatBinPackSolver.retrieve_solution()
CpSatBinPackSolver.set_warm_start()
CpSatBinPackSolver.set_warm_start_prev()
ModelingBinPack
- discrete_optimization.binpack.solvers.dp module
DpBinPackSolver
DpBinPackSolver.hyperparameters
DpBinPackSolver.init_model()
DpBinPackSolver.init_model_assign_item_and_bins()
DpBinPackSolver.init_model_fill_bins()
DpBinPackSolver.init_model_fill_bins_with_constraints()
DpBinPackSolver.modeling
DpBinPackSolver.problem
DpBinPackSolver.retrieve_solution()
DpBinPackSolver.retrieve_solution_color_transition()
DpBinPackSolver.retrieve_solution_pack_items()
DpBinPackSolver.transitions
ModelingDpBinPack
- discrete_optimization.binpack.solvers.greedy module
- discrete_optimization.binpack.solvers.lp module
- discrete_optimization.binpack.solvers.toulbar module
- Module contents
Submodules
discrete_optimization.binpack.parser module
- discrete_optimization.binpack.parser.get_data_available_bppc(data_folder: str | None = None, data_home: str | None = None) list[str] [source]
Get datasets available for knapsack.
- Params:
- data_folder: folder where datasets for knapsack whould be find.
If None, we look in “knapsack” subdirectory of data_home.
- data_home: root directory for all datasets. Is None, set by
default to “~/discrete_optimization_data “
- discrete_optimization.binpack.parser.parse_bin_packing_constraint_file(file_path)[source]
Parses a bin packing instance file with incompatibility constraints. (Bin Packing Problem with Conflicts benchmarks from here : https://site.unibo.it/operations-research/en/research/library-of-codes-and-instances-1)
discrete_optimization.binpack.problem module
- class discrete_optimization.binpack.problem.BinPackProblem(list_items: list[ItemBinPack], capacity_bin: int, incompatible_items: set[tuple[int, int]] | None = None)[source]
Bases:
Problem
- compute_weights(variable: BinPackSolution) dict[int, float] [source]
- evaluate(variable: BinPackSolution) dict[str, float] [source]
Evaluate a given solution object for the given problem.
This method should return a dictionnary of KPI, that can be then used for mono or multiobjective optimization.
- Parameters:
variable (Solution) – the Solution object to evaluate.
Returns: dictionnary of float kpi for the solution.
- get_attribute_register() EncodingRegister [source]
Returns how the Solution should be encoded.
Returns (EncodingRegister): content of the encoding of the solution
- get_objective_register() ObjectiveRegister [source]
Returns the objective definition.
Returns (ObjectiveRegister): object defining the objective criteria.
- get_solution_type() type[Solution] [source]
Returns the class implementation of a Solution.
Returns (class): class object of the given Problem.
- satisfy(variable: BinPackSolution) bool [source]
Computes if a solution satisfies or not the constraints of the problem.
- Parameters:
variable – the Solution object to check satisfability
Returns (bool): boolean true if the constraints are fulfilled, false elsewhere.
- class discrete_optimization.binpack.problem.BinPackSolution(problem: BinPackProblem, allocation: list[int])[source]
Bases:
Solution
- change_problem(new_problem: Problem) None [source]
If relevant to the optimisation problem, change the underlying problem instance for the solution.
This method can be used to evaluate a solution for different instance of problems.
- Parameters:
new_problem (Problem) – another problem instance from which the solution can be evaluated
Returns: None
- copy() BinPackSolution [source]
Deep copy of the solution.
The copy() function should return a new object containing the same input as the current object, that respects the following expected behaviour: -y = x.copy() -if do some inplace change of y, the changes are not done in x.
Returns: a new object from which you can manipulate attributes without changing the original object.