Shift Scheduling - modeling advice

76 views
Skip to first unread message

Alex Dunfee

unread,
Jan 10, 2022, 6:32:23 PM1/10/22
to or-tools-discuss
Hi all,

I am looking to understand some of the general modeling methods/structures that can be used to construct a shift scheduling problem for a project I am working on.

I have a decent amount of experience with jobshop modeling within OR-tools, but when approaching shift scheduling, decided to investigate what other methods can be used within OR-tools. I have read through numerous assignment and scheduling examples that are provided in the GitHub library and the most relevant non-"IntervalVar" approach to my project requirement is shift_scheduling_sat.py. I am wondering if there are significant performance advantages to avoiding the use of IntervalVars and sticking with Boolean/IntegerVars. I assume that just about every problem that can be modeled with Intervals can be reduced (hesitant to say simplified) to implement Boolean/Integer variables.

Are there alternative reasons as to why the shift_scheduling_sat.py does not use intervals, other than it's obviously not necessary? The differences that come to mind immediately:
  1. NoOverlap and Cumulative constraints would be easier to construct using intervals as they are already offered through the API. 
  2. The use of intervals would automatically increase the number of vars within the problem thereby increasing the solution complexity (as I understand it, though open to correction).
  3. Sequence and Sum constraints seem more straightforward when dealing with booleans than intervals. Though I imagine these are similarly achievable through the use of circuits (like transition times in jsp).
In general, is there a specific set of requirements that would tend to shift the model architecture to favor intervals over boolean presences?

Many thanks,
Alex


Reply all
Reply to author
Forward
0 new messages