discrete_optimization.binpack package

Subpackages

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.

class discrete_optimization.binpack.problem.ItemBinPack(index: int, weight: float)[source]

Bases: object

index: int
weight: float

Module contents