I am reading up a bit on Linear Programming and have taken a lot from "Scheduling Emergency Room Physicians" (by Michael W. Carter & Sophie D. LaPierre, Health Care Management Science 4, 347–360 (2001)) for this.

I have a question regarding constraint (3.2.2) from page 350. This constraint prevents understaffing and overstaffing. It goes as following: $\sum_{k=1}^{K}x_{ijk}=c_{ij}~\forall I,J$

It indicates wether worker $k$ works shift $i$ on day $j$.

Introducing overstaffing could easily be done by changing the equality to $\ge c_{ij}$

My question is, how do I change the constraint so that I can still allow for understaffing? Of course, the constraint should prevent that every shift is understaffed ($\sum_{k\in K}^{}x_{ijk}=0$), because this would logically minimize the costs.

I'm interested in how to introduce some understaffing, for example, that a physician can be admitted less than necessary, sort of as a lower minimum?

  • 2
    $\begingroup$ Please show the constraint (3.2.2) as part of your question. $\endgroup$
    – RobPratt
    May 28 at 22:43
  • $\begingroup$ In addition to showing the constraint, please indicate what each index / parameter / variable represents. $\endgroup$
    – prubin
    May 28 at 22:47
  • $\begingroup$ Added both! Sorry for that $\endgroup$
    – mingabua
    May 29 at 4:51

2 Answers 2


You can choose multiple varied ways but I'd go with something like the min of daily requirement (across all shifts) as the floor for total manpower needed for the day

$ \min \{c_{i,j}: \ \forall i \} \le \sum_k \sum_i x_{ijk} \quad \forall j$


You could add (positive) slack variables $o_{ij}$ for overstaffing and $u_{ij}$ for understaffing: $$ \sum_k x_{ijk}+ u_{ij}=c_{ij}+o_{ij} \quad \forall i,j $$ And add the cost of overstaffing/understaffing by weighting these variables in the objective function.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.