Constraints

The following constraints are used in this example:

  • bounds on variables

  • for $\text {worker} \in \text {WORKERS and period} \in \text {PERIODS}$,

    $\displaystyle  $
    $\displaystyle \quad \Variable{NumWorkers[worker,period]}  $
    $\displaystyle  $
    $\displaystyle - (1 - \Argument{shorttime\_ frac}) \cdot \Variable{NumShortTime[worker,period]}  $
    $\displaystyle  $
    $\displaystyle - \Variable{NumExcess[worker,period]}  $
    $\displaystyle  $
    $\displaystyle = \Argument{demand[worker,period]}  $
  • for $\text {worker} \in \text {WORKERS and period} \in \text {PERIODS}$,

    $\displaystyle  $
    $\displaystyle \quad \Variable{NumWorkers[worker,period]}  $
    $\displaystyle  $
    $\displaystyle = (1 - \Argument{waste\_ old[worker]}) \cdot \Variable{NumWorkers[worker,period}-1\Variable{]}  $
    $\displaystyle  $
    $\displaystyle + (1 - \Argument{waste\_ new[worker]}) \cdot \Variable{NumRecruits[worker,period]}  $
    $\displaystyle  $
    $\displaystyle + (1 - \Argument{waste\_ old[worker]}) \cdot \sum _{(\text {i},\text {worker}) \in \text {RETRAIN\_ PAIRS}} \Variable{NumRetrain[i,worker,period]}  $
    $\displaystyle  $
    $\displaystyle + (1 - \Argument{downgrade\_ leave\_ frac}) \cdot \sum _{(\text {i},\text {worker}) \in \text {DOWNGRADE\_ PAIRS}} \Variable{NumDowngrade[i,worker,period]}  $
    $\displaystyle  $
    $\displaystyle - \sum _{(\text {worker},\text {j}) \in \text {RETRAIN\_ PAIRS}} \Variable{NumRetrain[worker,j,period]}  $
    $\displaystyle  $
    $\displaystyle - \sum _{(\text {worker},\text {j}) \in \text {DOWNGRADE\_ PAIRS}} \Variable{NumDowngrade[worker,j,period]}  $
    $\displaystyle  $
    $\displaystyle - \Variable{NumRedundant[worker,period]}  $
  • for $\text {period} \in \text {PERIODS}$,

    \[  \Variable{NumRetrain[`semiskilled,`skilled,period]} \le \Argument{semiskill\_ retrain\_ frac\_ ub} \cdot \Variable{NumWorkers[`skilled,period]}  \]
  • for $\text {period} \in \text {PERIODS}$,

    \[ \sum _{\text {worker} \in \text {WORKERS}} \Variable{NumExcess[worker,period]} \le \Argument{overmanning\_ ub} \]