Skip to content

Model machines as cumulative resources (with capa 1) in jsp/fjsp #467

Draft
nhuet wants to merge 10 commits into
airbus:masterfrom
nhuet:jsp_cumulative
Draft

Model machines as cumulative resources (with capa 1) in jsp/fjsp #467
nhuet wants to merge 10 commits into
airbus:masterfrom
nhuet:jsp_cumulative

Conversation

@nhuet
Copy link
Copy Markdown
Contributor

@nhuet nhuet commented May 12, 2026

That way, the no overlap constraint on machines is auto generated by cpsat auto.
We also add an option in CalendarResourceCpsatSolver to add cumulative constraint on top of no overlap constraint to mimic the option existing in the fjsp cpsat solver.

nhuet added 10 commits May 7, 2026 16:19
We avoid having abstract methods in GenericSchedulingProblem related to
cumulative resource so that it will be easier to create a
WithoutCumulativeResource mixin
This allows for any scheduling problem to derive from
GenericSchedulingProblem by adding the proper mixins when some features
are missing.

Notes
- WithoutMultimode is actually Singlemode
- generic lns tools for tasks problems are to be adapted so that check
  like `isinstance(problem, AllocationProblem)` are replaced by
  `isinstance(problem, AllocationProblem) and not isinstance(problem,
  WithoutAllocationProblem)`
- Fix wf parser to enforce integer times
- Update wf/sched to have integers in objectives
- Increase speed of wf/sched + cpsat test
- automatically create cpsat variables
- add constraints corresponding to the different features
- warmstart included
- generate temporary solution to be converted to actual problem solution via `convert_task_variables_to_solution()` to implement
- extra custom constraints to be added by overriding `init_model()`
- subclass `SinglemodeGenericSchedulingAutoCpSatSolver` gives access to `get_task_interval()` to avoid having to call a multimode method with mode=default_mode
- jsp
- fjsp
- rcpsp
- rcpsp_multiskill
- workforce/scheduling
- the constraints take into account the calendar of each resource
- it avoids confusion between renewable and non-renewable resources (and
  NoRenewableResource, NonRenewableResource, and NoNonRenewableResource)
That way, the no overlap constraint on machines is auto generated by cpsat auto.
We also add an option in CalendarResourceCpsatSolver to add cumulative
constraint on top of no overlap constraint to mimic the option existing
in the fjsp cpsat solver.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant