Planning Production and Inventories¶
Problem definition¶
Consider the production of a single product in a planning horizon in T periods. If production during a given period \(t (t = 1 ,. . ., T)\) is decided, a fixed cost \(cf_{t}\) is incurred. Any excess products manufactured during early periods can be stored to meet the demand for the next period. Besides, all the demand must be met during each period. Production capacity constraints are not considered.
As t = 1,.., T:
\(d_{t}\) is the demand for this product during each period,
\(cp_{t}\) are the cost profits of production per unit during each period, and
\(ca_{t}\) are the cost profits of storage per unit during each period.
a) Formulate an integer linear programming model which minimizes the total costs of production, storage and fixed costs
b) Assume that we are allowed to have a delay of one period. Delays in deliveries have a cost \(crd_{t}\) per demand unit not delivered on time during each period. However, all the demand must be met during the last period T, or in other words, a delay in the demand during period T must be null. Amend the model in the former section to contemplate this option.
c) Assume that production can take place in a maximum of five periods, although these periods cannot occur consecutively. Amend the model in the former section to contemplate this option.
Problem Model¶
Decision Variables¶
\(X_{t}\) = Units to produce in period t
\(I_{t}\) = Units to store in period t
\(Y_{t}\) = Binary variable to determine whether we produce in one period or not
Objective function¶
In section a. we consider production costs, the fixed costs, plus the storage costs:
\(\min z\) = production_cost + fixed_costs + storage costs
The objective function is therefore:
\(\min z = \sum_{t=1}^{T}cp_{t}·X_{t}+\sum_{t=1}^{T}cf_{t}·Y_{t}+\sum_{t=1}^{T}I_{t}ca_{t}\)
Constraints¶
In this case, we need to make sure that we meet the demand in every period, then:
\(I_{t-1}+X_{t}-I{t} \geq d_{t}, \forall t\)
We also need to make sure that the binary decision variable makes sense:
\(X_{t} \leq M*Y_{t}, \forall t\)
(Where M is a large number. If we do not make any units in a period, then the binary decision variable must be zero).
Also, they must be non-negative:
\(X_{t} \geq 0, \forall t\)
\(I_{t} \geq 0, \forall t\)
b) Delays¶
To take into account the delays, we need to introduce a new term in the objective function. We introduce a new decision variable:
\(Du_{t}\) = Units to delay at period t
And the objective function becomes:
\(\min z = \sum_{t=1}^{T}cp_{t}·X_{t}+\sum_{t=1}^{T}cf_{t}·Y_{t}+\sum_{t=1}^{T}I_{t}ca_{t}+\sum_{t=1}^{T}Du_{t}crd_{t}\)
We also need to amend the first constraint:
\(I_{t-1}+X_{t}-I{t}-Du_{t-1}+Du_{t} \geq d_{t}, \forall t\)
Also, we need to make sure that there are no delays at the end of the period:
\(Du_{T}=0\)
c) Maximum number of periods¶
If we have a maximum number of periods, we can introduce another constraint using the binary variable:
\(\sum_{t=1}^{T}Y_{t} \leq 5\)
Also, since we cannot produce in two consecutive periods, the sum of two consecutive values of the binary variable cannot be higher than one:
\(Y_{t}+Y_{t-1} \leq 1, \forall t\)
[ ]: