discrete_optimization.singlebatch.solvers package
Submodules
discrete_optimization.singlebatch.solvers.cpsat module
- class discrete_optimization.singlebatch.solvers.cpsat.CpSatSingleBatchSolver(problem, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs: Any)[source]
Bases:
OrtoolsCpSatSolver,WarmstartMixinCP-SAT Solver for the Single Batch-Processing Machine Scheduling Problem.
- Parameters:
problem – The batch processing problem instance
params_objective_function – Parameters for objective function
modeling – Type of CP-SAT model (BINARY or SCHEDULING)
symmetry_breaking – If True, applies symmetry breaking by ordering jobs by processing time and adding constraint x_jk <= x_kk for j <= k. From Trindade et al. (2018) “Modelling and symmetry breaking in scheduling problems on batch processing machines” (default: False)
- hyperparameters: list[Hyperparameter] = [EnumHyperparameter(name='modeling', default=<ModelingBpm.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()
- problem: SingleBatchProcessingProblem
- retrieve_solution(cpsolvercb: CpSolverSolutionCallback) Solution[source]
Constructs a DO solution from the CP-SAT solver’s internal state.
- set_warm_start(solution: BatchProcessingSolution) None[source]
Make the solver warm start from the given solution.
discrete_optimization.singlebatch.solvers.dp module
- class discrete_optimization.singlebatch.solvers.dp.DpSingleBatchSolver(problem: Problem, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs: Any)[source]
Bases:
DpSolverOptimized Dynamic Programming Solver for Single Batch-Processing Machine using didppy.
- init_model(**kwargs: Any) None[source]
Initialize internal model used to solve.
Can initialize a ortools, milp, gurobi, … model.
- problem: SingleBatchProcessingProblem
- retrieve_solution(sol: Solution) BatchProcessingSolution[source]
Parse the didppy state transition trace into a valid DO Solution.
- sorted_indices: list[int]
discrete_optimization.singlebatch.solvers.lp module
- class discrete_optimization.singlebatch.solvers.lp.BpmLpFormulation(*values)[source]
Bases:
EnumMILP formulation variants for batch processing machine scheduling.
- NAIVE = 0
- SYMMETRY_BREAKING = 1
- class discrete_optimization.singlebatch.solvers.lp.GurobiSingleBatchSolver(problem: SingleBatchProcessingProblem, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs: Any)[source]
Bases:
_BaseLpSingleBatchSolver,GurobiMilpSolverGurobi backend for the Single Batch LP Solver.
- class discrete_optimization.singlebatch.solvers.lp.MathOptSingleBatchSolver(problem: SingleBatchProcessingProblem, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs: Any)[source]
Bases:
_BaseLpSingleBatchSolver,OrtoolsMathOptMilpSolverMathOpt backend for the Single Batch LP Solver.
discrete_optimization.singlebatch.solvers.optal module
- class discrete_optimization.singlebatch.solvers.optal.OptalSingleBatchSolver(problem: SingleBatchProcessingProblem, params_objective_function: ParamsObjectiveFunction | None = None, **kwargs: Any)[source]
Bases:
OptalCpSolver,WarmstartMixinOptalCP solver for the Single Batch-Processing Machine Scheduling Problem.
- init_model(**kwargs: Any) None[source]
Instantiate a CP model instance
Afterwards, self.instance should not be None anymore.
- problem: SingleBatchProcessingProblem
- retrieve_solution(result: cp.SolutionEvent) BatchProcessingSolution[source]
Constructs a DO solution from the OptalCP solver’s internal state.
- set_warm_start(solution: BatchProcessingSolution) None[source]
Injects an initial solution into the OptalCP solver.