discrete_optimization.shop package
Subpackages
- discrete_optimization.shop.fjsp package
- discrete_optimization.shop.jsp package
- discrete_optimization.shop.osp package
- discrete_optimization.shop.solvers package
- discrete_optimization.shop.transformations package
Submodules
discrete_optimization.shop.base module
- class discrete_optimization.shop.base.AnyShopSolution(problem: CommonShopProblem, schedule: list[list[tuple[int, int]]], machine_index: list[list[int]] = None, recipe_index: list[list[int]] = None)[source]
Bases:
GenericSchedulingSolution[tuple[int,int],None,None,int,None],WithoutSkillSolution[tuple[int,int],None,int,None],WithoutNonRenewableResourceSolution[tuple[int,int]],WithoutAllocationSolution[tuple[int,int]]- copy() AnyShopSolution[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.
- machine_index: list[list[int]]
- problem: CommonShopProblem
- recipe_index: list[list[int]]
- schedule: list[list[tuple[int, int]]]
- class discrete_optimization.shop.base.CommonShopProblem(list_jobs: list[Job], n_jobs: int = None, n_machines: int = None, horizon: int = None)[source]
Bases:
GenericSchedulingProblem[tuple[int,int],None,None,int,None],WithoutSkillProblem[tuple[int,int],None,int,None],WithoutNonRenewableResourceProblem[tuple[int,int]],WithoutAllocationProblem[tuple[int,int]]- evaluate(variable: AnyShopSolution) 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_cumulative_resource_consumption(resource: int, task: tuple[int, int], mode: int) int[source]
Get cumulative resource consumption of the task in the given mode
- Parameters:
resource – cumulative resource
task
mode – not used for single mode problems
- Returns:
the consumption for cumulative resources.
- get_no_overlap() set[frozenset[tuple[int, int]]][source]
An object in this returned set is a (frozen) set of task, where no task should overlap with another one in this set
- 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.
- get_task_mode_duration(task: tuple[int, int], mode: int) int[source]
Get task duration according to mode.
- Parameters:
task
mode – not used for single-mode problems
Returns:
- get_task_modes(task: tuple[int, int]) set[int][source]
Retrieve mode found for given task.
- Parameters:
task
Returns:
- n_jobs: int
- n_machines: int
- property non_skill_cumulative_resources_list: list[int]
List of cumulative resources that are not skills.
- satisfy(variable: AnyShopSolution) 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.
- property tasks_list: list[tuple[int, int]]
List of all tasks to schedule or allocate to.
- class discrete_optimization.shop.base.Job(job_index: int, subjobs: list[Subjob])[source]
Bases:
object- job_index: int
- class discrete_optimization.shop.base.Subjob(subjob_index: int, job_index: int, recipes: list[SubjobRecipe])[source]
Bases:
object- job_index: int
- recipes: list[SubjobRecipe]
- subjob_index: int
- class discrete_optimization.shop.base.SubjobRecipe(machine_index: int, processing_time: int)[source]
Bases:
object- machine_index: int
- processing_time: int
- discrete_optimization.shop.base.Task
(job index, subjob index).
- Type:
Task representation
alias of
tuple[int,int]
discrete_optimization.shop.utils module
- discrete_optimization.shop.utils.plot_shop_solution(solution: AnyShopSolution, title: str = 'Job Shop Schedule')[source]
Creates a Gantt chart visualization for a JobShopSolution.
- Parameters:
solution – A JobShopSolution object containing the problem and schedule.
title – The title for the plot.
- discrete_optimization.shop.utils.transform_shop_to_rcpsp(problem: CommonShopProblem) RcpspProblem[source]