Hi everybody,
I have a similar problem to
Sbrad's.
We have a machine that needs to be cleaned after several units have been processed.
The products come in batches of 10-30 units so we are scheduling batches of various demands, not single units.
After processing 200 units (demand), the machine must be cleaned.
We have tried using reservoir constraints for that.
The idea was to set the bounds of the reservoir to 0-200 and empty it using virtual batches of lets say demand -200.
But then, in most cases, the solver will not manage to fit
product batches with total demand
of exactly 200, before emptying the reservoir, so it will not be able to schedule the virtual batch of -200.
So, following the original question of
Sbrad, is there a way to reset the reservoir, whatever its level is?
Btw, I have also tried to follow
Rushab's example with circular constraints instead, but it does not seem to fit.
Rushab adds void time for cleaning every count_jobs_processed_before_cleaning jobs, but adds it between specific pairs of jobs at the time of building the problem.
This does not let the solver decide where to put those cleaning tasks. I'm not an experienced user though, so please let me know if I am missing something.
Thanks!