Semi-Flexible Job Shop Scheduling Problem (SFJSSP) with Machine Shifts and Changeovers #4356
Unanswered
hpswalters
asked this question in
CP-SAT questions
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I have developed a solution for the SFJSSP with Machine Breaks that works but does not scale well. One of the main reasons for this is that I use machine intervals over the horizon to define the "off-shift" periods; loop through task_duration in hourly intervals and for each hour specify two variables--it looks like this:
. These intervals are stored along with the machine off-shift intervals so that the
NoOverlap[intervals]
can work its magic. What is good about this is:What is bad about this is it doesn't scale well with:
In attempting to solve this, it occurs to me that a task needs to be broken down into, at most, two parts (assuming all tasks are no longer than shift_duration +1_hour. Therefore, there is either sufficient time on a shift to complete the task (
sufficient_time
) or there is not (sufficient_time.Not()
).Knowing this, the issue now becomes joining the
route_presence
andsufficient_shift_time
booleans into a structure that permits[route_presence and sufficient_shift_time]
or[route_presence and sufficinet_shift_time.Not()]
. Another advantage is that I can leverage "new_optional_fixed_size_interval_var" when there is sufficient shift time but two new_optional_interval_var when there is insufficient shift time.Here is a code snip from the program
with the data
I have attempted multiple iterations defining separate cases for sufficient and insufficient using different variable names, different boolean logic structures for the two conditions (route_presence and sufficient_shift_time. Sometimes I get results, sometimes not. but nothing that gets the solution quality as my original model. I feel confident that this can work and is a viable approach to achieve scalability. I am also fairly confident that there is a correct combination of logic and variables -- I just have not found it, so any and all help/insights would be appreciated.
Thanks,
hpsw
P.S. If it helps I can provide the complete original program and the new program with the data sets I am using
Beta Was this translation helpful? Give feedback.
All reactions