labscheduler.solvers.cp_worker module¶
- labscheduler.solvers.cp_worker.add_group_constraints(cp: CpModel, vars_: CPVariables, inst: JSSP)[source]¶
Not strictly necessary in the sense of the JSSP definition. We define a group of operations as an operation together with all its directly preceding options which must be more than one. The constraints added in this function enforce all operations of a group to be started before another one can be started.
- labscheduler.solvers.cp_worker.add_load_while_processing_constraints(cp: CpModel, vars_: CPVariables, inst: JSSP)[source]¶
- labscheduler.solvers.cp_worker.add_precedence_constraints(cp: CpModel, vars_: CPVariables, inst: JSSP)[source]¶
- labscheduler.solvers.cp_worker.add_processing_capacity_constraints(cp: CpModel, vars_: CPVariables, inst: JSSP)[source]¶
- labscheduler.solvers.cp_worker.add_soft_waiting_constraints(cp: CpModel, vars_: CPVariables)[source]¶
- labscheduler.solvers.cp_worker.add_spacial_capacity_constraints(cp: CpModel, vars_: CPVariables, inst: JSSP)[source]¶
- labscheduler.solvers.cp_worker.apply_heuristics(cp: CpModel, solver: CpSolver, vars_: CPVariables) dict[str, ScheduledAssignment] | None[source]¶
- labscheduler.solvers.cp_worker.create_interval_var(lb: int, ub: int, o: Operation, cp: CpModel, ref_time: datetime, optionality: IntVar | None = None) IntervalVar[source]¶
Utility method to create and add a new interval variable to the model. Returns the created variable.
- labscheduler.solvers.cp_worker.create_model(inst: JSSP, offset: float) tuple[CpModel, CPVariables][source]¶
- labscheduler.solvers.cp_worker.create_variables(cp: CpModel, inst: JSSP, offset: int) CPVariables[source]¶
- labscheduler.solvers.cp_worker.extract_schedule(solver: CpSolver, vars_: CPVariables, inst: JSSP) dict[str, ScheduledAssignment][source]¶
- labscheduler.solvers.cp_worker.handle_pooling(cp: CpModel, vars_: CPVariables, operations: list[Operation], inst: JSSP)[source]¶
Creates the part of the model which assigns executing machines to operations which can be executed by different machines.
- labscheduler.solvers.cp_worker.set_objective(cp: CpModel, vars_: CPVariables, inst: JSSP)[source]¶
- labscheduler.solvers.cp_worker.solve_cp(cp: CpModel, vars_: CPVariables, time_limit: float) tuple[~ortools.sat.python.cp_model.CpSolver, <google.protobuf.internal.enum_type_wrapper.EnumTypeWrapper object at 0x7a5257a8f650>][source]¶