discrete_optimization.workforce.generators package
Submodules
discrete_optimization.workforce.generators.random_tools module
discrete_optimization.workforce.generators.resource_scenario module
- class discrete_optimization.workforce.generators.resource_scenario.ParamsRandomness(seed: int = 42, lower_nb_disruption: int = 1, upper_nb_disruption: int = 10, lower_nb_teams: int = 1, upper_nb_teams: int = 4, lower_time: int = 0, upper_time: int = 480, duration_discrete_distribution: tuple[list, list] | None = None)[source]
Bases:
object
- generate_list(solution: TeamAllocationSolution | AllocSchedulingSolution)[source]
- discrete_optimization.workforce.generators.resource_scenario.compute_available_teams_per_activities_alloc_problem(problem: TeamAllocationProblem, starts: ndarray, ends: ndarray, calendars_team: dict[Hashable, ndarray])[source]
- discrete_optimization.workforce.generators.resource_scenario.compute_starts_end_activities(problem: AllocSchedulingProblem)[source]
- discrete_optimization.workforce.generators.resource_scenario.create_scheduling_problem_several_resource_dropping(allocation_problem: TeamAllocationProblem, scheduling_problem: AllocSchedulingProblem, list_drop_resource: list[tuple[int, int, int]], base_solution: TeamAllocationSolution)[source]
- discrete_optimization.workforce.generators.resource_scenario.generate_allocation_disruption(original_allocation_problem: TeamAllocationProblem, original_solution: TeamAllocationSolution, list_drop_resource: list[tuple[int, int, int]] | None = None, params_randomness: ParamsRandomness | None = None)[source]
- discrete_optimization.workforce.generators.resource_scenario.generate_resource_disruption_scenario_from(original_allocation_problem: TeamAllocationProblem, original_scheduling_problem: AllocSchedulingProblem, original_solution: TeamAllocationSolution, list_drop_resource: list[tuple[int, int, int]] | None = None, params_randomness: ParamsRandomness | None = None)[source]
Basically same code than the generator above, but starting from a known problem and original solution
- discrete_optimization.workforce.generators.resource_scenario.generate_scheduling_disruption(original_scheduling_problem: AllocSchedulingProblem, original_solution: AllocSchedulingSolution, list_drop_resource: list[tuple[int, int, int]] | None = None, params_randomness: ParamsRandomness | None = None)[source]
- discrete_optimization.workforce.generators.resource_scenario.update_allocation_constraint(starts: ndarray, ends: ndarray, problem: TeamAllocationProblem, calendars_team: dict[Hashable, ndarray])[source]