discrete_optimization.knapsack.solvers package
Submodules
discrete_optimization.knapsack.solvers.asp module
- class discrete_optimization.knapsack.solvers.asp.AspKnapsackSolver(problem: Problem, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs: Any)[source]
Bases:
AspClingoSolver
,KnapsackSolver
Solver based on Answer Set Programming formulation and clingo solver.
- init_model(**kwargs: Any) None [source]
Initialize internal model used to solve.
Can initialize a ortools, milp, gurobi, … model.
- retrieve_solution(model: Model) KnapsackSolution [source]
Construct a do solution from a clingo model.
- Parameters:
model – the current constructed clingo model
- Returns:
the intermediate solution, at do format.
discrete_optimization.knapsack.solvers.cp_mzn module
- class discrete_optimization.knapsack.solvers.cp_mzn.Cp2KnapsackSolver(problem: KnapsackProblem, params_objective_function: ParamsObjectiveFunction | None = None, silent_solve_error: bool = False, **kwargs: Any)[source]
Bases:
MinizincCpSolver
,KnapsackSolver
- hyperparameters: list[Hyperparameter] = [EnumHyperparameter(name='cp_solver_name', default=<CpSolverName.CHUFFED: 0>, depends_on=None, name_in_kwargs='cp_solver_name')]
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]
Instantiate a CP model instance
Afterwards, self.instance should not be None anymore.
- retrieve_solution(_output_item: str | None = None, **kwargs: Any) KnapsackSolution [source]
Return a d-o solution from the variables computed by minizinc.
- Parameters:
_output_item – string representing the minizinc solver output passed by minizinc to the solution constructor
**kwargs – keyword arguments passed by minzinc to the solution contructor containing the objective value (key “objective”), and the computed variables as defined in minizinc model.
Returns:
- class discrete_optimization.knapsack.solvers.cp_mzn.CpKnapsackSolver(problem: KnapsackProblem, params_objective_function: ParamsObjectiveFunction | None = None, silent_solve_error: bool = False, **kwargs: Any)[source]
Bases:
MinizincCpSolver
,KnapsackSolver
- hyperparameters: list[Hyperparameter] = [EnumHyperparameter(name='cp_solver_name', default=<CpSolverName.CHUFFED: 0>, depends_on=None, name_in_kwargs='cp_solver_name')]
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]
Instantiate a CP model instance
Afterwards, self.instance should not be None anymore.
- retrieve_solution(_output_item: str | None = None, **kwargs: Any) KnapsackSolution [source]
Return a d-o solution from the variables computed by minizinc.
- Parameters:
_output_item – string representing the minizinc solver output passed by minizinc to the solution constructor
**kwargs – keyword arguments passed by minzinc to the solution contructor containing the objective value (key “objective”), and the computed variables as defined in minizinc model.
Returns:
- class discrete_optimization.knapsack.solvers.cp_mzn.CpMultidimensionalKnapsackSolver(problem: MultidimensionalKnapsackProblem, params_objective_function: ParamsObjectiveFunction | None = None, silent_solve_error: bool = False, **kwargs: Any)[source]
Bases:
MinizincCpSolver
- hyperparameters: list[Hyperparameter] = [EnumHyperparameter(name='cp_solver_name', default=<CpSolverName.CHUFFED: 0>, depends_on=None, name_in_kwargs='cp_solver_name')]
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]
Instantiate a CP model instance
Afterwards, self.instance should not be None anymore.
- problem: MultidimensionalKnapsackProblem
- retrieve_solution(_output_item: str | None = None, **kwargs: Any) MultidimensionalKnapsackSolution [source]
Return a d-o solution from the variables computed by minizinc.
- Parameters:
_output_item – string representing the minizinc solver output passed by minizinc to the solution constructor
**kwargs – keyword arguments passed by minzinc to the solution contructor containing the objective value (key “objective”), and the computed variables as defined in minizinc model.
Returns:
- class discrete_optimization.knapsack.solvers.cp_mzn.CpMultidimensionalMultiScenarioKnapsackSolver(problem: MultiScenarioMultidimensionalKnapsackProblem, params_objective_function: ParamsObjectiveFunction | None = None, silent_solve_error: bool = False, **kwargs: Any)[source]
Bases:
MinizincCpSolver
- hyperparameters: list[Hyperparameter] = [EnumHyperparameter(name='cp_solver_name', default=<CpSolverName.CHUFFED: 0>, depends_on=None, name_in_kwargs='cp_solver_name')]
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]
Instantiate a CP model instance
Afterwards, self.instance should not be None anymore.
- retrieve_solution(_output_item: str | None = None, **kwargs: Any) MultidimensionalKnapsackSolution [source]
Return a d-o solution from the variables computed by minizinc.
- Parameters:
_output_item – string representing the minizinc solver output passed by minizinc to the solution constructor
**kwargs – keyword arguments passed by minzinc to the solution contructor containing the objective value (key “objective”), and the computed variables as defined in minizinc model.
Returns:
- class discrete_optimization.knapsack.solvers.cp_mzn.KnapsackConstraintHandler(fraction_fix: float = 0.95)[source]
Bases:
MznConstraintHandler
- adding_constraint_from_results_store(solver: MinizincCpSolver, child_instance: Instance, result_storage: ResultStorage, last_result_store: ResultStorage | None = None, **kwargs: Any) Iterable[Any] [source]
- hyperparameters: list[Hyperparameter] = [FloatHyperparameter(name='fraction_fix', default=0.95, depends_on=None, name_in_kwargs='fraction_fix', low=0.0, high=1.0, suggest_low=False, suggest_high=False, step=None, log=False)]
Hyperparameters available for this solver.
- These hyperparameters are to be feed to **kwargs found in
__init__()
init_model() (when available)
solve()
discrete_optimization.knapsack.solvers.cpmpy module
- class discrete_optimization.knapsack.solvers.cpmpy.CpmpyKnapsackSolver(problem: KnapsackProblem, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs)[source]
Bases:
KnapsackSolver
- init_model(**kwargs: Any) None [source]
Initialize internal model used to solve.
Can initialize a ortools, milp, gurobi, … model.
- solve(time_limit: float | None = 100.0, **kwargs: Any) ResultStorage [source]
- time_limit: the solve process stops after this time limit (in seconds).
If None, no time limit is applied.
- Parameters:
time_limit
**kwargs
Returns:
discrete_optimization.knapsack.solvers.cpsat module
- class discrete_optimization.knapsack.solvers.cpsat.CpSatKnapsackSolver(problem: KnapsackProblem, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs)[source]
Bases:
OrtoolsCpSatSolver
,KnapsackSolver
,WarmstartMixin
- add_lexico_constraint(obj: str, value: float) Iterable[Constraint] [source]
- Parameters:
obj – a string representing the desired objective. Should be one of self.problem.get_objective_names().
value – the limiting value. If the optimization direction is maximizing, this is a lower bound, else this is an upper bound.
- Returns:
the created constraints.
- get_lexico_objectives_available() list[str] [source]
List objectives available for lexico optimization
It corresponds to the labels accepted for obj argument for - set_lexico_objective() - add_lexico_constraint() - get_lexico_objective_value()
Default to self.problem.get_objective_names().
Returns:
- static implements_lexico_api() bool [source]
Tell whether this solver is implementing the api for lexicographic optimization.
Should return True only if
set_lexico_objective()
add_lexico_constraint()
get_lexico_objective_value()
have been really implemented, i.e. - calling set_lexico_objective() and add_lexico_constraint()
should actually change the next call to solve(),
get_lexico_objective_value() should correspond to the internal model objective
- retrieve_solution(cpsolvercb: CpSolverSolutionCallback) KnapsackSolution [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_lexico_objective(obj: str) None [source]
Update internal model objective.
- Parameters:
obj – a string representing the desired objective. Should be one of self.get_lexico_objectives_available().
Returns:
- set_warm_start(solution: KnapsackSolution) None [source]
Make the solver warm start from the given solution.
discrete_optimization.knapsack.solvers.decomposition module
- class discrete_optimization.knapsack.solvers.decomposition.DecomposedKnapsackSolver(problem: Problem, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs: Any)[source]
Bases:
KnapsackSolver
,WarmstartMixin
This solver is based on the current observation. From a given knapsack model and one current solution, if we decide to freeze the decision variable for a subset of items, the remaining problem to solve is also a knapsack problem, with fewer items and smaller capacity. A solution to this subproblem can be found by any knapsack solver and a full solution to the original problem, can be rebuilt. DecomposedKnapsackSolver is a basic iterative solver that starts from a given solution, then freeze random items, solve subproblem with a custom root solver, rebuild original solution and repeat the process.
- hyperparameters: list[Hyperparameter] = [FloatHyperparameter(name='proportion_to_remove', default=0.7, depends_on=None, name_in_kwargs='proportion_to_remove', low=0.0, high=1.0, suggest_low=False, suggest_high=False, step=None, log=False), IntegerHyperparameter(name='nb_iteration', default=100, depends_on=None, name_in_kwargs='nb_iteration', low=0, high=10000000, step=1, log=False), SubBrickHyperparameter(name='initial_solver', default=SubBrick(cls=<class 'discrete_optimization.knapsack.solvers.greedy.GreedyBestKnapsackSolver'>, kwargs={}, kwargs_from_solution=None), depends_on=None, name_in_kwargs='initial_solver'), SubBrickHyperparameter(name='root_solver', default=SubBrick(cls=<class 'discrete_optimization.knapsack.solvers.greedy.GreedyBestKnapsackSolver'>, kwargs={}, kwargs_from_solution=None), depends_on=None, name_in_kwargs='root_solver')]
Hyperparameters available for this solver.
- These hyperparameters are to be feed to **kwargs found in
__init__()
init_model() (when available)
solve()
- initial_solution: KnapsackSolution | None = None
Initial solution used for warm start.
- rebuild_sol(sol: KnapsackSolution, original_knapsack_problem: KnapsackProblem, original_solution: KnapsackSolution, indexes_to_remove: set[int])[source]
Rebuild a knapsack solution object from a partial solution. :param sol: solution to a sub-knapsack problem :param original_knapsack_problem: original knapsack model to solve :param original_solution: original base solution :param indexes_to_remove: indexes of item removed when building the sub-knapsack problem. :return: A new solution object for the original problem.
- set_warm_start(solution: KnapsackSolution) None [source]
Make the solver warm start from the given solution.
Will be ignored if arg initial_solver is set and not None in call to solve().
- 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.knapsack.solvers.dp module
- class discrete_optimization.knapsack.solvers.dp.DpKnapsackSolver(problem: Problem, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs: Any)[source]
Bases:
KnapsackSolver
,DpSolver
,WarmstartMixin
- hyperparameters: list[Hyperparameter] = [CategoricalHyperparameter(name='solver', default=<class 'builtins.CABS'>, depends_on=None, name_in_kwargs='solver'), CategoricalHyperparameter(name='float_cost', default=False, depends_on=None, name_in_kwargs='float_cost'), CategoricalHyperparameter(name='dual_bound', default=True, depends_on=('float_cost', True), name_in_kwargs='dual_bound')]
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_int(**kwargs)[source]
Adapted from https://didppy.readthedocs.io/en/stable/quickstart.html
- set_warm_start(solution: KnapsackSolution) None [source]
Make the solver warm start from the given solution.
- transitions: dict
- class discrete_optimization.knapsack.solvers.dp.ExactDpKnapsackSolver(problem: KnapsackProblem, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs)[source]
Bases:
KnapsackSolver
- hyperparameters: list[Hyperparameter] = [CategoricalHyperparameter(name='greedy_start', default=False, depends_on=None, name_in_kwargs='greedy_start')]
Hyperparameters available for this solver.
- These hyperparameters are to be feed to **kwargs found in
__init__()
init_model() (when available)
solve()
- solve(**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.knapsack.solvers.gphh module
- class discrete_optimization.knapsack.solvers.gphh.FeatureEnum(value)[source]
Bases:
Enum
An enumeration.
- AVG_RES_CONSUMPTION_DELTA_CAPACITY = 'avg_res_consumption_delta_capacity'
- CAPACITIES = 'capacities'
- PROFIT = 'profit'
- RES_CONSUMPTION_ARRAY = 'res_consumption'
- class discrete_optimization.knapsack.solvers.gphh.GphhKnapsackSolver(problem: MultidimensionalKnapsackProblem, training_domains: list[MultidimensionalKnapsackProblem] | None = None, weight: int = 1, params_gphh: ParametersGphh | None = None, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs)[source]
Bases:
SolverDO
- build_result_storage_for_domain(domain: MultidimensionalKnapsackProblem) ResultStorage [source]
- build_solution(domain: MultidimensionalKnapsackProblem, individual: Any | None = None, func_heuristic: Callable[[...], float] | None = None) MultidimensionalKnapsackSolution [source]
- evaluate_heuristic(individual: Any, domains: list[MultidimensionalKnapsackProblem]) list[float] [source]
- hyperparameters: list[Hyperparameter] = [FloatHyperparameter(name='tournament_ratio', default=0.1, depends_on=None, name_in_kwargs='tournament_ratio', low=0, high=1.0, suggest_low=False, suggest_high=False, step=None, log=False), IntegerHyperparameter(name='pop_size', default=10, depends_on=None, name_in_kwargs='pop_size', low=1, high=100, step=1, log=False), IntegerHyperparameter(name='min_tree_depth', default=1, depends_on=None, name_in_kwargs='min_tree_depth', low=1, high=20, step=1, log=False), IntegerHyperparameter(name='max_tree_depth', default=4, depends_on=None, name_in_kwargs='max_tree_depth', low=1, high=20, step=1, log=False), FloatHyperparameter(name='crossover_rate', default=0.7, depends_on=None, name_in_kwargs='crossover_rate', low=0.0, high=1.0, suggest_low=False, suggest_high=False, step=None, log=False), FloatHyperparameter(name='mutation_rate', default=0.3, depends_on=None, name_in_kwargs='mutation_rate', low=0, high=1.0, suggest_low=False, suggest_high=False, step=None, log=False), IntegerHyperparameter(name='n_gen', default=2, depends_on=None, name_in_kwargs='n_gen', low=1, high=100, step=1, log=False)]
Hyperparameters available for this solver.
- These hyperparameters are to be feed to **kwargs found in
__init__()
init_model() (when available)
solve()
- init_model(**kwargs) None [source]
Initialize internal model used to solve.
Can initialize a ortools, milp, gurobi, … model.
- solve(**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
- toolbox: Toolbox
- class discrete_optimization.knapsack.solvers.gphh.ParametersGphh(list_feature: list[FeatureEnum], set_primitves: PrimitiveSetTyped, tournament_ratio: float, pop_size: int, n_gen: int, min_tree_depth: int, max_tree_depth: int, crossover_rate: float, mutation_rate: float, deap_verbose: bool)[source]
Bases:
object
- static default() ParametersGphh [source]
- discrete_optimization.knapsack.solvers.gphh.get_avg_res_consumption_delta_capacity(problem: MultidimensionalKnapsackProblem, item_index: int, **kwargs: Any) float [source]
- discrete_optimization.knapsack.solvers.gphh.get_capacities(problem: MultidimensionalKnapsackProblem, **kwargs: Any) list[float] [source]
- discrete_optimization.knapsack.solvers.gphh.get_profit(problem: MultidimensionalKnapsackProblem, item_index: int, **kwargs: Any) float [source]
- discrete_optimization.knapsack.solvers.gphh.get_res_consumption(problem: MultidimensionalKnapsackProblem, item_index: int, **kwargs: Any) list[float] [source]
discrete_optimization.knapsack.solvers.greedy module
- class discrete_optimization.knapsack.solvers.greedy.GreedyBestKnapsackSolver(problem: Problem, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs: Any)[source]
Bases:
KnapsackSolver
- solve(**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
- class discrete_optimization.knapsack.solvers.greedy.GreedyDummyKnapsackSolver(problem: Problem, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs: Any)[source]
Bases:
KnapsackSolver
- solve(**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.knapsack.solvers.greedy.best_of_greedy(knapsack_problem: KnapsackProblem) KnapsackSolution [source]
- discrete_optimization.knapsack.solvers.greedy.compute_density(knapsack_problem: KnapsackProblem) list[Item] [source]
- discrete_optimization.knapsack.solvers.greedy.compute_density_and_penalty(knapsack_problem: KnapsackProblem) list[Item] [source]
- discrete_optimization.knapsack.solvers.greedy.greedy_using_queue(knapsack_problem: KnapsackProblem, method_queue: Callable[[KnapsackProblem], list[Item]] | None = None) KnapsackSolution [source]
discrete_optimization.knapsack.solvers.knapsack_solver module
- class discrete_optimization.knapsack.solvers.knapsack_solver.KnapsackSolver(problem: Problem, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs: Any)[source]
Bases:
SolverDO
- problem: KnapsackProblem
discrete_optimization.knapsack.solvers.lns_cp module
- class discrete_optimization.knapsack.solvers.lns_cp.KnapsackMznConstraintHandler(problem: KnapsackProblem, fraction_to_fix: float = 0.9)[source]
Bases:
MznConstraintHandler
- adding_constraint_from_results_store(solver: MinizincCpSolver, child_instance: Instance, result_storage: ResultStorage, last_result_store: ResultStorage | None = None, **kwargs: Any) Iterable[Any] [source]
- hyperparameters: list[Hyperparameter] = [FloatHyperparameter(name='fraction_to_fix', default=0.9, depends_on=None, name_in_kwargs='fraction_to_fix', low=0.0, high=1.0, suggest_low=False, suggest_high=False, step=None, log=False)]
Hyperparameters available for this solver.
- These hyperparameters are to be feed to **kwargs found in
__init__()
init_model() (when available)
solve()
- class discrete_optimization.knapsack.solvers.lns_cp.OrtoolsCpSatKnapsackConstraintHandler(problem: KnapsackProblem, fraction_to_fix: float = 0.9)[source]
Bases:
OrtoolsCpSatConstraintHandler
- adding_constraint_from_results_store(solver: OrtoolsCpSatSolver, result_storage: ResultStorage, last_result_store: ResultStorage | None = None, **kwargs: Any) Iterable[Constraint] [source]
- hyperparameters: list[Hyperparameter] = [FloatHyperparameter(name='fraction_to_fix', default=0.9, depends_on=None, name_in_kwargs='fraction_to_fix', low=0.0, high=1.0, suggest_low=False, suggest_high=False, step=None, log=False)]
Hyperparameters available for this solver.
- These hyperparameters are to be feed to **kwargs found in
__init__()
init_model() (when available)
solve()
discrete_optimization.knapsack.solvers.lns_lp module
- class discrete_optimization.knapsack.solvers.lns_lp.InitialKnapsackMethod(value)[source]
Bases:
Enum
An enumeration.
- DUMMY = 0
- GREEDY = 1
- class discrete_optimization.knapsack.solvers.lns_lp.InitialKnapsackSolution(problem: KnapsackProblem, initial_method: InitialKnapsackMethod, params_objective_function: ParamsObjectiveFunction)[source]
Bases:
InitialSolution
- get_starting_solution() ResultStorage [source]
- hyperparameters: list[Hyperparameter] = [EnumHyperparameter(name='initial_method', default=None, depends_on=None, name_in_kwargs='initial_method')]
Hyperparameters available for this solver.
- These hyperparameters are to be feed to **kwargs found in
__init__()
init_model() (when available)
solve()
- class discrete_optimization.knapsack.solvers.lns_lp.MathOptKnapsackConstraintHandler(problem: KnapsackProblem, fraction_to_fix: float = 0.9)[source]
Bases:
OrtoolsMathOptConstraintHandler
- adding_constraint_from_results_store(solver: MathOptKnapsackSolver, result_storage: ResultStorage, **kwargs: Any) Iterable[Any] [source]
discrete_optimization.knapsack.solvers.lp module
- class discrete_optimization.knapsack.solvers.lp.CbcKnapsackSolver(problem: KnapsackProblem, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs: Any)[source]
Bases:
KnapsackSolver
- init_model(warm_start: dict[int, int] | None = None, **kwargs: Any) None [source]
Initialize internal model used to solve.
Can initialize a ortools, milp, gurobi, … model.
- solve(**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
- class discrete_optimization.knapsack.solvers.lp.GurobiKnapsackSolver(problem: KnapsackProblem, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs: Any)[source]
Bases:
GurobiMilpSolver
,_BaseLpKnapsackSolver
- convert_to_variable_values(solution: KnapsackSolution) dict[Var, float] [source]
Convert a solution to a mapping between model variables and their values.
Will be used by set_warm_start().
- class discrete_optimization.knapsack.solvers.lp.MathOptKnapsackSolver(problem: KnapsackProblem, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs: Any)[source]
Bases:
OrtoolsMathOptMilpSolver
,_BaseLpKnapsackSolver
- convert_to_variable_values(solution: KnapsackSolution) dict[Variable, float] [source]
Convert a solution to a mapping between model variables and their values.
Will be used by set_warm_start() to provide a suitable SolutionHint.variable_values. See https://or-tools.github.io/docs/pdoc/ortools/math_opt/python/model_parameters.html#SolutionHint for more information.
- class discrete_optimization.knapsack.solvers.lp.OrtoolsKnapsackSolver(problem: Problem, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs: Any)[source]
Bases:
KnapsackSolver
- init_model(**kwargs: Any) None [source]
Initialize internal model used to solve.
Can initialize a ortools, milp, gurobi, … model.
- model: knapsack_solver.KnapsackSolver | None = None
- solve(**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.knapsack.solvers.quantum module
- class discrete_optimization.knapsack.solvers.quantum.KnapsackQiskit(problem: KnapsackProblem)[source]
Bases:
object
- class discrete_optimization.knapsack.solvers.quantum.QaoaKnapsackSolver(problem: KnapsackProblem, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs)[source]
Bases:
KnapsackSolver
,QiskitQaoaSolver
- class discrete_optimization.knapsack.solvers.quantum.VqeKnapsackSolver(problem: KnapsackProblem, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs)[source]
Bases:
KnapsackSolver
,QiskitVqeSolver