discrete_optimization.lotsizing.capacitatedsetuptimes.solvers package

Submodules

discrete_optimization.lotsizing.capacitatedsetuptimes.solvers.cpsat module

CP-SAT solver for capacitated lot sizing with setup times.

class discrete_optimization.lotsizing.capacitatedsetuptimes.solvers.cpsat.CpSatSetupTimesSolver(problem: Problem, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs: Any)[source]

Bases: OrtoolsCpSatSolver

CP-SAT solver for capacitated lot sizing with setup times.

Key difference from basic CLSP: capacity constraint includes setup times Σ_i (p_it * X_it + τ_it * Y_it) ≤ h_t

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

Initialize the CP-SAT model.

problem: CapacitatedSetupTimesLSP
retrieve_solution(cpsolvercb=None) CapacitatedSetupTimesSolution[source]

Extract solution from CP-SAT solver.

variables: dict

discrete_optimization.lotsizing.capacitatedsetuptimes.solvers.toulbar module

Toulbar2 solver for capacitated lot sizing with setup times.

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

Bases: ToulbarSolver, WarmstartMixin

Toulbar2 solver for capacitated lot sizing with setup times.

This solver models the problem using Cost Function Networks (CFN) in Toulbar2. It handles: - Multiple items (with parallel production allowed) - Production capacity constraints (including setup times) - Inventory holding costs - Optional backlog

Variables: - production[item][t]: Production quantity for item in period t - setup[item][t]: Binary, 1 if item is produced in period t - inventory[item][t]: Inventory level for item at end of period t - backlog[item][t]: Backlog quantity for item at end of period t (if allowed)

Note: This problem does not have changeover costs (inherits from WithoutChangeoverCostsProblem).

init_model(**kwargs) None[source]

Initialize the Toulbar2 CFN model.

Creates variables and constraints for the lot sizing problem.

problem: CapacitatedSetupTimesLSP
retrieve_solution(solution_from_toulbar2: tuple[list, float, int]) CapacitatedSetupTimesSolution[source]

Convert Toulbar2 solution to problem solution.

Parameters:

solution_from_toulbar2 – Tuple of (values, cost, status) from Toulbar2

Returns:

CapacitatedSetupTimesSolution

set_warm_start(solution: CapacitatedSetupTimesSolution) None[source]

Set warm start from a solution.

Parameters:

solution – Initial solution to warm-start from

Module contents

Solvers for capacitated lot sizing with setup times.

class discrete_optimization.lotsizing.capacitatedsetuptimes.solvers.ToulbarCapacitatedSetupTimesSolver(problem: Problem, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs: Any)[source]

Bases: ToulbarSolver, WarmstartMixin

Toulbar2 solver for capacitated lot sizing with setup times.

This solver models the problem using Cost Function Networks (CFN) in Toulbar2. It handles: - Multiple items (with parallel production allowed) - Production capacity constraints (including setup times) - Inventory holding costs - Optional backlog

Variables: - production[item][t]: Production quantity for item in period t - setup[item][t]: Binary, 1 if item is produced in period t - inventory[item][t]: Inventory level for item at end of period t - backlog[item][t]: Backlog quantity for item at end of period t (if allowed)

Note: This problem does not have changeover costs (inherits from WithoutChangeoverCostsProblem).

init_model(**kwargs) None[source]

Initialize the Toulbar2 CFN model.

Creates variables and constraints for the lot sizing problem.

problem: CapacitatedSetupTimesLSP
retrieve_solution(solution_from_toulbar2: tuple[list, float, int]) CapacitatedSetupTimesSolution[source]

Convert Toulbar2 solution to problem solution.

Parameters:

solution_from_toulbar2 – Tuple of (values, cost, status) from Toulbar2

Returns:

CapacitatedSetupTimesSolution

set_warm_start(solution: CapacitatedSetupTimesSolution) None[source]

Set warm start from a solution.

Parameters:

solution – Initial solution to warm-start from