2
$\begingroup$

I am trying to include to my model a demand shift. That is, I am having a fixed demand for each period (t), but because of capacity constraints I am not able to serve the whole demand for each period. The demand must then be transferred to the upcoming period (t+1).

Is there a name or a standard model for such a problem? I would like to research a suitable approach from literature.

$\endgroup$
1
  • 2
    $\begingroup$ Keywords you should look for are: "production planning", "lot sizing", "lot size model" for the basic model. And "with backlogs" or "with backlogging" for the part in which you carry demand over to the next time period. $\endgroup$ Dec 30, 2022 at 6:18

2 Answers 2

5
$\begingroup$

An easy approach is the following. Assuming $X_t$ the production at period $t$ and $d_t$ the demand at period $t$, create a new variable $F_t$ to store how much demand cannot be satisfied. Then, modify the demand constraints in the following way:

$$X_t = d_t + F_{t-1} - F_t$$

So, basically, you need to produce the current demand plus all previous not satisfied demand and, in case it cannot be possible, it will be transferred to the next period.

$\endgroup$
5
  • $\begingroup$ Thank you for the helpful answer. Is there any way to "force" the model to use the whole capacity of period t? I am trying to avoid that the model increases F(t), because of cost savings. I don't want to include additional costs for "transferring the demand" to my objective function (because it complicates the interpretation of the objective function value). $\endgroup$
    – Laura
    Dec 29, 2022 at 14:57
  • 1
    $\begingroup$ To force full capacity use in preference to deferring demand, you can take Enrique's solution and add binary variables $y_t$ together with the constraints $F_t \le M_t y_t$ and $X_t \ge C_t y_t,$ where $C_t$ is capacity (upper bound on $X_t$) and $M_t$ is a valid upper bound on $F_t$ (the most demand that could possibly be deferred in period $t$). If $y_t=0,$ this will force $F_t=0$ (no deferral); if $y_t=1,$ this will force $X_t \ge C_t$ and therefore $X_t = C_t$ (use all available capacity in period $t$). $\endgroup$
    – prubin
    Dec 29, 2022 at 16:46
  • $\begingroup$ But if demand for most periods is more than capacity then production will be at capacity always and there will be increasing backlog.\ Also if using tight constraint as Enrique suggested then whenever $F_{t-1} \gt 0$ production will increase to capacity.\ Either way a constraint may be needed to bound either $F_t $ or $\sum_t F_t$. $\endgroup$ Dec 29, 2022 at 18:32
  • 1
    $\begingroup$ @Laura In order to force to produce the maximum each period, you can also add a penalization in the objective function, like: Max $\sum_{t} profit * X_t - \sum_{t} penalization * F_{t}$. $\endgroup$ Dec 29, 2022 at 20:07
  • $\begingroup$ @Laura, the pointed out comment by Sutanu is right. In many cases, when we have faced with a dynamic lot-sizing problem, there are already other type of variables like, backlogs, inventory, etc. Also, the standard flow formulation would be very similar to what mentioned at Enrique's answer, but by defining inventory variables as, $inv_{i,t-1} + x_{i,t} = demand_{i,t} + inv_{i,t}$. This flow formulation, in essence, does not allow to exceed production quantity from the demand and to violate that, you will need to use the auxiliary variables by appropriate penalties in the objective. $\endgroup$
    – A.Omidi
    Dec 30, 2022 at 22:22
2
$\begingroup$

The above answer is apt but if you want to try something fancy then:
$Cap_t \le D_t - F_t+ F_{t-1} \ \ \forall t$
You can make $\le$ tight by $=$ if it doesn't make model infeasible
where
$0 \le F_t \le D_t $
$Cap_t$ is Capacity for period $t$

$\endgroup$

Your Answer

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

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