discrete_optimization.generic_tasks_tools.solvers package
Subpackages
- discrete_optimization.generic_tasks_tools.solvers.cpsat package
- Subpackages
- discrete_optimization.generic_tasks_tools.solvers.cpsat.objectives package
- Submodules
- discrete_optimization.generic_tasks_tools.solvers.cpsat.objectives.allocated_tasks module
- discrete_optimization.generic_tasks_tools.solvers.cpsat.objectives.allocation_changes module
- discrete_optimization.generic_tasks_tools.solvers.cpsat.objectives.allocation_cost module
- discrete_optimization.generic_tasks_tools.solvers.cpsat.objectives.calendar_preempted module
- discrete_optimization.generic_tasks_tools.solvers.cpsat.objectives.cumul_objective module
- discrete_optimization.generic_tasks_tools.solvers.cpsat.objectives.earliness_tardiness module
- discrete_optimization.generic_tasks_tools.solvers.cpsat.objectives.makespan module
- discrete_optimization.generic_tasks_tools.solvers.cpsat.objectives.mode_cost module
- discrete_optimization.generic_tasks_tools.solvers.cpsat.objectives.objective_modeler module
- discrete_optimization.generic_tasks_tools.solvers.cpsat.objectives.resource_levels module
- discrete_optimization.generic_tasks_tools.solvers.cpsat.objectives.schedule_changes module
- discrete_optimization.generic_tasks_tools.solvers.cpsat.objectives.scheduled_tasks module
- discrete_optimization.generic_tasks_tools.solvers.cpsat.objectives.soft_time_penalty module
- discrete_optimization.generic_tasks_tools.solvers.cpsat.objectives.unary_resource_used module
- discrete_optimization.generic_tasks_tools.solvers.cpsat.objectives.utils module
- Module contents
- discrete_optimization.generic_tasks_tools.solvers.cpsat.objectives package
- Submodules
- discrete_optimization.generic_tasks_tools.solvers.cpsat.allocation module
AllocationBinaryOrIntegerModellingCpSatSolverAllocationBinaryOrIntegerModellingCpSatSolver.add_allocation_changes_constraints()AllocationBinaryOrIntegerModellingCpSatSolver.add_constraint_on_task_unary_resource_allocation()AllocationBinaryOrIntegerModellingCpSatSolver.allocation_modellingAllocationBinaryOrIntegerModellingCpSatSolver.get_binary_allocation_variable()AllocationBinaryOrIntegerModellingCpSatSolver.get_integer_allocation_variable()AllocationBinaryOrIntegerModellingCpSatSolver.get_task_allocation_variable()AllocationBinaryOrIntegerModellingCpSatSolver.get_task_unary_resource_is_present_variable()
AllocationCpSatSolverAllocationCpSatSolver.add_allocation_changes_constraints()AllocationCpSatSolver.add_allocation_constraints()AllocationCpSatSolver.add_constraint_nb_unary_resource_usages()AllocationCpSatSolver.add_constraint_on_nb_allocation_changes()AllocationCpSatSolver.add_constraint_on_task_unary_resource_allocation()AllocationCpSatSolver.add_constraint_on_total_nb_usages()AllocationCpSatSolver.add_constraint_on_unary_resource_nb_usages()AllocationCpSatSolver.add_same_unary_allocation_constraints()AllocationCpSatSolver.add_unary_resources_per_task_constraints()AllocationCpSatSolver.allocation_changes_variablesAllocationCpSatSolver.allocation_changes_variables_createdAllocationCpSatSolver.at_most_one_unary_resource_per_taskAllocationCpSatSolver.create_allocation_changes_variables()AllocationCpSatSolver.create_task_allocated_variables()AllocationCpSatSolver.create_used_variables()AllocationCpSatSolver.exactly_one_unary_resource_per_taskAllocationCpSatSolver.get_default_tasks_n_unary_resources()AllocationCpSatSolver.get_nb_tasks_allocated_variable()AllocationCpSatSolver.get_nb_unary_resources_used_variable()AllocationCpSatSolver.get_task_unary_resource_is_present_variable()AllocationCpSatSolver.init_model()AllocationCpSatSolver.subset_tasks_of_interestAllocationCpSatSolver.subset_unaryresources_allowedAllocationCpSatSolver.task_allocated_variablesAllocationCpSatSolver.task_allocated_variables_createdAllocationCpSatSolver.used_variablesAllocationCpSatSolver.used_variables_created
AllocationIntegerModellingCpSatSolverAllocationIntegerModellingCpSatSolver.add_allocation_changes_constraints()AllocationIntegerModellingCpSatSolver.add_constraint_on_task_unary_resource_allocation()AllocationIntegerModellingCpSatSolver.create_is_present_variables()AllocationIntegerModellingCpSatSolver.get_task_allocation_variable()AllocationIntegerModellingCpSatSolver.get_task_unary_resource_is_present_variable()AllocationIntegerModellingCpSatSolver.init_model()AllocationIntegerModellingCpSatSolver.is_present_variablesAllocationIntegerModellingCpSatSolver.is_present_variables_created
AllocationModellingMultimodeAllocationCpSatSolver
- discrete_optimization.generic_tasks_tools.solvers.cpsat.alternative_subproblems module
- discrete_optimization.generic_tasks_tools.solvers.cpsat.auto module
GenericSchedulingAutoCpSatSolverGenericSchedulingAutoCpSatSolver.add_cumulative_approximation_nb_unary_resource_usedGenericSchedulingAutoCpSatSolver.add_lexico_constraint()GenericSchedulingAutoCpSatSolver.add_redundant_skill_cumulative_constraintsGenericSchedulingAutoCpSatSolver.all_used_variablesGenericSchedulingAutoCpSatSolver.all_used_variables_createdGenericSchedulingAutoCpSatSolver.allocation_intervalsGenericSchedulingAutoCpSatSolver.allocation_is_presentGenericSchedulingAutoCpSatSolver.avoid_interval_optional_for_cumulative_resourcesGenericSchedulingAutoCpSatSolver.avoid_interval_optional_for_unary_resourcesGenericSchedulingAutoCpSatSolver.calendar_preemptive_modelingGenericSchedulingAutoCpSatSolver.check_resources_lists()GenericSchedulingAutoCpSatSolver.compute_task_bounds()GenericSchedulingAutoCpSatSolver.convert_task_variables_to_solution()GenericSchedulingAutoCpSatSolver.create_energy_constraints()GenericSchedulingAutoCpSatSolver.create_linear_constraint_optional_tasks()GenericSchedulingAutoCpSatSolver.create_link_mode_to_presence()GenericSchedulingAutoCpSatSolver.create_present_task_variables_for_all_tasksGenericSchedulingAutoCpSatSolver.demand_cumulative_modelingGenericSchedulingAutoCpSatSolver.demand_non_renewable_modelingGenericSchedulingAutoCpSatSolver.demand_variablesGenericSchedulingAutoCpSatSolver.dict_objective_exprGenericSchedulingAutoCpSatSolver.duplicate_start_var_per_modeGenericSchedulingAutoCpSatSolver.duration_variablesGenericSchedulingAutoCpSatSolver.energy_variablesGenericSchedulingAutoCpSatSolver.get_duration_variable()GenericSchedulingAutoCpSatSolver.get_lexico_objective_value()GenericSchedulingAutoCpSatSolver.get_lexico_objectives_available()GenericSchedulingAutoCpSatSolver.get_makespan_lower_bound()GenericSchedulingAutoCpSatSolver.get_objective_expr()GenericSchedulingAutoCpSatSolver.get_skill_variable()GenericSchedulingAutoCpSatSolver.get_task_interval()GenericSchedulingAutoCpSatSolver.get_task_is_present_variable()GenericSchedulingAutoCpSatSolver.get_task_mode_interval()GenericSchedulingAutoCpSatSolver.get_task_mode_is_present_variable()GenericSchedulingAutoCpSatSolver.get_task_start_or_end_lower_bound()GenericSchedulingAutoCpSatSolver.get_task_start_or_end_upper_bound()GenericSchedulingAutoCpSatSolver.get_task_start_or_end_variable()GenericSchedulingAutoCpSatSolver.get_task_unary_resource_interval()GenericSchedulingAutoCpSatSolver.get_task_unary_resource_is_present_variable()GenericSchedulingAutoCpSatSolver.hyperparametersGenericSchedulingAutoCpSatSolver.implements_lexico_api()GenericSchedulingAutoCpSatSolver.include_constraint_on_cumulative_resource()GenericSchedulingAutoCpSatSolver.init_list_obj_modelers()GenericSchedulingAutoCpSatSolver.init_model()GenericSchedulingAutoCpSatSolver.is_list_obj_modeler_init()GenericSchedulingAutoCpSatSolver.keep_only_most_nested_energy_constraintsGenericSchedulingAutoCpSatSolver.list_obj_modeler_weightGenericSchedulingAutoCpSatSolver.mode_cost_variablesGenericSchedulingAutoCpSatSolver.modes_intervalsGenericSchedulingAutoCpSatSolver.modes_is_presentGenericSchedulingAutoCpSatSolver.modes_start_variablesGenericSchedulingAutoCpSatSolver.needs_duration_variablesGenericSchedulingAutoCpSatSolver.needs_task_intervalsGenericSchedulingAutoCpSatSolver.prepare_energy_constraints()GenericSchedulingAutoCpSatSolver.resource_level_variablesGenericSchedulingAutoCpSatSolver.resource_level_variables_createdGenericSchedulingAutoCpSatSolver.retrieve_solution()GenericSchedulingAutoCpSatSolver.retrieve_tasks_variables()GenericSchedulingAutoCpSatSolver.set_lexico_objective()GenericSchedulingAutoCpSatSolver.set_warm_start()GenericSchedulingAutoCpSatSolver.skill_variablesGenericSchedulingAutoCpSatSolver.start_or_end_variablesGenericSchedulingAutoCpSatSolver.task_interval_variablesGenericSchedulingAutoCpSatSolver.task_is_scheduledGenericSchedulingAutoCpSatSolver.unary_resource_cost_variablesGenericSchedulingAutoCpSatSolver.use_cpm_for_task_boundsGenericSchedulingAutoCpSatSolver.use_demand_variables_for_non_renewable_resourcesGenericSchedulingAutoCpSatSolver.use_energy_constraints
SinglemodeGenericSchedulingAutoCpSatSolver
- discrete_optimization.generic_tasks_tools.solvers.cpsat.auto_impl module
- discrete_optimization.generic_tasks_tools.solvers.cpsat.base module
- discrete_optimization.generic_tasks_tools.solvers.cpsat.calendar_preemptive module
CalendarPreemptiveCpSatSolverCalendarPreemptiveCpSatSolver.compute_nb_preempted_tasks()CalendarPreemptiveCpSatSolver.constraint_duration_of_task_element()CalendarPreemptiveCpSatSolver.constraint_duration_of_task_indicator()CalendarPreemptiveCpSatSolver.constraint_duration_of_tasks_element()CalendarPreemptiveCpSatSolver.constraint_duration_of_tasks_indicator()CalendarPreemptiveCpSatSolver.create_preemptive_duration_constraints()CalendarPreemptiveCpSatSolver.get_optional_duration_of_task()CalendarPreemptiveCpSatSolver.problem
ModelingCalendarPreemptive
- discrete_optimization.generic_tasks_tools.solvers.cpsat.calendar_resource module
- discrete_optimization.generic_tasks_tools.solvers.cpsat.calendar_resource_generic module
CalendarResourceGenericCpSatSolverCalendarResourceGenericCpSatSolver.create_calendar_resources_constraint()CalendarResourceGenericCpSatSolver.get_resource_consumption_intervals()CalendarResourceGenericCpSatSolver.get_resource_interval_and_consumption_for_task()CalendarResourceGenericCpSatSolver.get_resource_interval_and_consumption_for_task_and_mode()CalendarResourceGenericCpSatSolver.initialize_merged_demand_var()CalendarResourceGenericCpSatSolver.initialized_merged_demand_var_for_taskCalendarResourceGenericCpSatSolver.merged_demand_var_for_taskCalendarResourceGenericCpSatSolver.problemCalendarResourceGenericCpSatSolver.use_cumulative_for_capa_1CalendarResourceGenericCpSatSolver.use_no_overlap_for_capa_1
ProblemWithCalendarPreemptiveAndResourceBlockingAndUnaryResource
- discrete_optimization.generic_tasks_tools.solvers.cpsat.cumulative_resource module
CumulativeResourceSchedulingCpSatSolverCumulativeResourceSchedulingCpSatSolver.avoid_interval_optional_for_cumulative_resourcesCumulativeResourceSchedulingCpSatSolver.cumulative_demand_resource_task_initializedCumulativeResourceSchedulingCpSatSolver.demand_cumulative_modelingCumulativeResourceSchedulingCpSatSolver.demand_cumulative_resource_task_initializedCumulativeResourceSchedulingCpSatSolver.demands_cumulative_resource_varsCumulativeResourceSchedulingCpSatSolver.demands_resource_taskCumulativeResourceSchedulingCpSatSolver.get_cumulative_resource_demand_variable()CumulativeResourceSchedulingCpSatSolver.get_resource_consumption_intervals()CumulativeResourceSchedulingCpSatSolver.initialize_cumulative_resource_demand_vars()CumulativeResourceSchedulingCpSatSolver.problem
- discrete_optimization.generic_tasks_tools.solvers.cpsat.exclusions module
ExclusionCpSatSolverExclusionCpSatSolver.create_exclusion_constraints()ExclusionCpSatSolver.exclusion_resource_demand_varsExclusionCpSatSolver.exclusion_resource_vars_initializedExclusionCpSatSolver.exclusion_varsExclusionCpSatSolver.get_exclusion_resource_demand_variable()ExclusionCpSatSolver.initialize_exclusion_resource_demand_vars()ExclusionCpSatSolver.problem
- discrete_optimization.generic_tasks_tools.solvers.cpsat.generic_scheduling module
- discrete_optimization.generic_tasks_tools.solvers.cpsat.multimode module
- discrete_optimization.generic_tasks_tools.solvers.cpsat.multimode_scheduling module
- discrete_optimization.generic_tasks_tools.solvers.cpsat.no_overlap module
- discrete_optimization.generic_tasks_tools.solvers.cpsat.non_renewable_resource module
NonRenewableCpSatSolverNonRenewableCpSatSolver.create_non_renewable_resources_constraint()NonRenewableCpSatSolver.create_vars_for_unary_dependent_nr_demand()NonRenewableCpSatSolver.get_non_renewable_resource_demand_variable()NonRenewableCpSatSolver.get_nr_resource_demand_from_unary()NonRenewableCpSatSolver.initialize_mode_defined_non_renewable_resource_demand_vars()NonRenewableCpSatSolver.mode_defined_non_renewable_modelingNonRenewableCpSatSolver.mode_defined_non_renewable_resource_varsNonRenewableCpSatSolver.mode_defined_nr_resource_initializedNonRenewableCpSatSolver.problemNonRenewableCpSatSolver.unary_dependent_demand_nr_modelingNonRenewableCpSatSolver.unary_dependent_demands_nr_resource_varsNonRenewableCpSatSolver.unary_resource_defined_nr_resource_initialized
- discrete_optimization.generic_tasks_tools.solvers.cpsat.precedence_scheduling module
- discrete_optimization.generic_tasks_tools.solvers.cpsat.resource_blocking module
ResourceBlockingCpSatSolverResourceBlockingCpSatSolver.constrain_group_entity_times()ResourceBlockingCpSatSolver.create_calendar_resources_constraint()ResourceBlockingCpSatSolver.create_composite_entity_interval()ResourceBlockingCpSatSolver.create_constant_duration_interval()ResourceBlockingCpSatSolver.create_cumulative_constraint_including_blocking()ResourceBlockingCpSatSolver.create_entity_intervals()ResourceBlockingCpSatSolver.create_flexible_gap_blocking_intervals()ResourceBlockingCpSatSolver.create_group_entity_interval()ResourceBlockingCpSatSolver.create_modulo_entity_interval()ResourceBlockingCpSatSolver.create_multiply_entity_interval()ResourceBlockingCpSatSolver.create_resource_blocking_constraints()ResourceBlockingCpSatSolver.create_span_blocking_intervals()ResourceBlockingCpSatSolver.create_task_entity_interval()ResourceBlockingCpSatSolver.define_start_and_end_var_and_constraint()ResourceBlockingCpSatSolver.get_blocking_intervals_and_demands()ResourceBlockingCpSatSolver.get_lb_ub_entity()ResourceBlockingCpSatSolver.get_lb_ub_size()ResourceBlockingCpSatSolver.init_model()ResourceBlockingCpSatSolver.problem
- discrete_optimization.generic_tasks_tools.solvers.cpsat.resource_usage_by_unary module
ResourceUsageByUnaryResourceCpSatSolverResourceUsageByUnaryResourceCpSatSolver.create_vars_for_unary_dependent_demand()ResourceUsageByUnaryResourceCpSatSolver.get_resource_demand_from_unary()ResourceUsageByUnaryResourceCpSatSolver.problemResourceUsageByUnaryResourceCpSatSolver.unary_dependent_demand_cumulative_modelingResourceUsageByUnaryResourceCpSatSolver.unary_dependent_demand_resource_task_initializedResourceUsageByUnaryResourceCpSatSolver.unary_dependent_demands_cumulative_resource_vars
- discrete_optimization.generic_tasks_tools.solvers.cpsat.scheduling module
SchedulingCpSatSolverSchedulingCpSatSolver.add_constraint_chaining_tasks()SchedulingCpSatSolver.add_constraint_on_task()SchedulingCpSatSolver.constraints_on_makespanSchedulingCpSatSolver.get_duration_expression()SchedulingCpSatSolver.get_duration_variable()SchedulingCpSatSolver.get_global_makespan_variable()SchedulingCpSatSolver.get_subtasks_makespan_variable()SchedulingCpSatSolver.get_subtasks_sum_end_time_variable()SchedulingCpSatSolver.get_subtasks_sum_start_time_variable()SchedulingCpSatSolver.get_task_interval()SchedulingCpSatSolver.get_task_start_or_end_variable()SchedulingCpSatSolver.init_model()SchedulingCpSatSolver.remove_constraints_on_objective()
- discrete_optimization.generic_tasks_tools.solvers.cpsat.skill module
SkillSchedulingCpSatSolverSkillSchedulingCpSatSolver.create_coarse_skill_constraints()SkillSchedulingCpSatSolver.create_fine_skill_constraints()SkillSchedulingCpSatSolver.get_skill_variable()SkillSchedulingCpSatSolver.is_compatible_task_unary_resource()SkillSchedulingCpSatSolver.max_slack_for_skillSkillSchedulingCpSatSolver.problemSkillSchedulingCpSatSolver.use_exact_skillSkillSchedulingCpSatSolver.use_only_skill_to_allocateSkillSchedulingCpSatSolver.use_slack_for_skill
WithoutSkillSchedulingCpSatSolver
- discrete_optimization.generic_tasks_tools.solvers.cpsat.timelag module
- discrete_optimization.generic_tasks_tools.solvers.cpsat.utils module
- Module contents
- Subpackages
- discrete_optimization.generic_tasks_tools.solvers.lns_cp package
- Submodules
- discrete_optimization.generic_tasks_tools.solvers.lns_cp.constraint_extractor module
BaseConstraintExtractorChainingConstraintExtractorConstraintExtractorListConstraintExtractorPortfolioDummyConstraintExtractorMultimodeConstraintExtractorNbChangesAllocationConstraintExtractorNbUsagesAllocationConstraintExtractorParamsConstraintExtractorSchedulingConstraintExtractorSubresourcesAllocationConstraintExtractorSubtasksAllocationConstraintExtractorbuild_default_constraint_extractor()
- discrete_optimization.generic_tasks_tools.solvers.lns_cp.constraint_handler module
- discrete_optimization.generic_tasks_tools.solvers.lns_cp.neighbor_tools module
- Module contents
- discrete_optimization.generic_tasks_tools.solvers.optalcp package
- Submodules
- discrete_optimization.generic_tasks_tools.solvers.optalcp.allocation module
AllocationOptalSolverAllocationOptalSolver.add_allocation_changes_constraints()AllocationOptalSolver.add_constraint_nb_unary_resource_usages()AllocationOptalSolver.add_constraint_on_nb_allocation_changes()AllocationOptalSolver.add_constraint_on_task_unary_resource_allocation()AllocationOptalSolver.add_constraint_on_total_nb_usages()AllocationOptalSolver.add_constraint_on_unary_resource_nb_usages()AllocationOptalSolver.allocation_changes_variablesAllocationOptalSolver.allocation_changes_variables_createdAllocationOptalSolver.at_most_one_unary_resource_per_taskAllocationOptalSolver.create_allocation_changes_variables()AllocationOptalSolver.create_task_allocated_variables()AllocationOptalSolver.create_used_variables()AllocationOptalSolver.get_default_tasks_n_unary_resources()AllocationOptalSolver.get_nb_tasks_allocated_variable()AllocationOptalSolver.get_nb_unary_resources_used_variable()AllocationOptalSolver.get_task_unary_resource_is_present_variable()AllocationOptalSolver.init_model()AllocationOptalSolver.subset_tasks_of_interestAllocationOptalSolver.subset_unaryresources_allowedAllocationOptalSolver.task_allocated_variablesAllocationOptalSolver.task_allocated_variables_createdAllocationOptalSolver.used_variablesAllocationOptalSolver.used_variables_created
- discrete_optimization.generic_tasks_tools.solvers.optalcp.multimode module
- discrete_optimization.generic_tasks_tools.solvers.optalcp.scheduling module
SchedulingOptalSolverSchedulingOptalSolver.add_constraint_chaining_tasks()SchedulingOptalSolver.add_constraint_on_task()SchedulingOptalSolver.get_subtasks_makespan_variable()SchedulingOptalSolver.get_subtasks_sum_end_time_variable()SchedulingOptalSolver.get_subtasks_sum_start_time_variable()SchedulingOptalSolver.get_task_interval_variable()SchedulingOptalSolver.get_task_start_or_end_variable()
- Module contents
Submodules
discrete_optimization.generic_tasks_tools.solvers.cpm module
CPM to compute lower/uppe bound on start/end of tasks
- class discrete_optimization.generic_tasks_tools.solvers.cpm.Cpm(problem: GenericSchedulingProblem[Task, UnaryResource, Skill, NonSkillCumulativeResource, NonRenewableResource], horizon: int | None = None)[source]
Bases:
Generic[Task,UnaryResource,CumulativeResource,NonRenewableResource]Propagator of bounds trough precedence graph according to minimum duration of each task.
For that we use: - multimode-scheduling: we know all possible durations - precedence: we use the precedence constraints
We first do a forward pass on all tasks in precedence graph for lower bounds and then a backward pass for upper bounds.
We start from lower bound 0 and upper bound horizon (problem horizon can be overriden).
This differs from classic CPM as we know that other non-precedence constraints can occur so that we cannot assume end lower_bounds = end upper bound for sink tasks. So sink tasks end upper bound will be set to horizon instead.
For each task, we take best of propagated bound and existing problem bound on start/end (via problem.get_task_start_or_end_tighter_lower_bound() and problem.get_task_start_or_end_tighter_upper_bound()).
- horizon
if set, override problem.get_makespan_upper_bound().
- compute_task_bounds() None[source]
Compute task bounds by forxard/backward propagation through precedence graph
Returns:
- get_a_critical_path() list[Task][source]
Compute a critical path.
It takes into account no other constraints that precedence constraints. It starts from a task without predecessor to a task without successor.
Returns:
- class discrete_optimization.generic_tasks_tools.solvers.cpm.Taskbounds(start_lower_bound: 'Optional[int]' = None, end_lower_bound: 'Optional[int]' = None, start_upper_bound: 'Optional[int]' = None, end_upper_bound: 'Optional[int]' = None)[source]
Bases:
object- end_lower_bound: int | None = None
- end_upper_bound: int | None = None
- start_lower_bound: int | None = None
- start_upper_bound: int | None = None