discrete_optimization.workforce.generators package

Submodules

discrete_optimization.workforce.generators.random_tools module

class discrete_optimization.workforce.generators.random_tools.RandomState(seed)[source]

Bases: object

T = ~T
get_discrete_truncated_normal_sample(center: int, sigma: int, lower: int, upper: int) int[source]
get_discrete_truncated_uniform_sample(lower: int, upper: int) int[source]
get_random_element_prop(list: list[T], probs: list[float]) T[source]
get_random_element_uniform(list: list[T]) T[source]
get_uniform_advantage_sample(advantage: list[int]) int[source]

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]

Module contents