I am working on a scheduler for a manufacturing plant. I have currently set it up so the decision variables are set up as binary variables:
$x_{m,p,s}$ = 1 if machine m is running part p on shift s
However, that is binary and so either the machine produces its maximum parts per shift that shift or none at all. It would be ideal for the scheduler to be able to produce a value in-between 0 and the maximum (for reasons of minimizing unnecessary inventory). I figure there are two ways to do it, and just am not sure which is better without trying both and would like to know if there is a standard way to formulate this.
Let $y_{m,p,s}$ - Number of parts to be made on machine m for part p at shift s, such that $0 \le y_{m,p,s} \le \text{PartsPerShift}_p$
OPTION 1:
Set $y_{m,p,s}$ as a continuous (or integer) variable with constraints based on $x_{m,p,s}$:
\begin{align}
y_{m,p,s} &\ge 0 \\
y_{m,p,s} &\le \text{PartsPerShift}_p x_{m,p,s}
\end{align}
OPTION 2:
Set $x_{m,p,s}$ constraints based on $y_{m,p,s}$:
\begin{align}
x_{m,p,s} = 0 &\quad \text{if $y_{m,p,s} = 0$} \\
x_{m,p,s} = 1 &\quad \text{if $y_{m,p,s} > 0$}
\end{align}
As far as I can tell, the benefit of having $x_{m,p,s}$ as a constraint based on $y_{m,p,s}$ is that there are fewer decision variables overall (half as many), however this would involve a large rework of the model as it stands.