## Problem with creating a constraint for a minimum amount of consecutive days

Problems with modeling
saraerics
User Posts: 1
Joined: 4 months ago

### Problem with creating a constraint for a minimum amount of consecutive days

Hi,

I'm trying to create a constraint over a period of 28 days for a number of agents. I have a binary variable y(i,l) i - agent l - day, indicating wether agent i works on day l or not. I want to add a constraint that ensures that the least number of days is 2. Is there anyone who could help me please?

Im trying to do it like this for now (just to give you an idea of what I'm trying to accomplish):

CONSECWORKDAYSMINFIRST(I,L) .. Y(I,"2")\$(Y(I,"1") = 1) =E= 1;
CONSECWORKDAYSMIN(I,L) .. Y(I,L)\$(Y(I,L-1) = 0 AND Y(I,L+1) = 0) =E= 0;

Im working with an minlp solver and I'm not allowed to use the if operator in a constraint on non-pre-set variables.

Fred
Posts: 179
Joined: 3 years ago

### Re: Problem with creating a constraint for a minimum amount of consecutive days

Hi,

I think the following example should do the trick.

Code: Select all

``````binary variable
y(i,l)     'worker i works on day l';
variable
start(i,l) 'value of 1 indicates that worker i starts to work on day l';
equation
defStart(i,l)
minconsec(i,l);

defStart(i,l)..
start(i,l) =e= y(i,l) - y(i,l-1);

minconsec(i,l)\$(ord(l)>1)..
y(i,l) =g= start(i,l-1);
``````
Not sure how you want to handle periods 1 and 28 (should they be linked? Must an agent who works on day 28 also work on 27?) but can probably adjust the the example as needed.

I hope this helps!

Fred