Plastic Injection Production Planning¶
Problem definition¶
Patrick “Eel” O’Brian’s (PEOB) Ltd. is a company that manufactures plastic components for the automotive sector. As an intern at PEOB Ltd, your first assignment is to write an Integer Programming Model to calculate the optimal production plan for the plastic injection machine. The injection machine heats plastic and injects it into a mould to get a specific shape. Each mould can thus only be used to manufacture specific component types. Your first version will take into account the storage costs and the delayed orders cost which are defined below.
Storage costs The storage or inventory costs represent the cost of storing the inventory levels of every component type at every planning period and are modeled as a fixed cost per unit and planning period. The storage costs are different for every component type.
Delayed orders costs At every planning period, you may delay part of the demand for the next planning period. Customers will apply a fixed penalty for every delayed unit at every period. The delayed costs are also different for every component type.
Your model needs to take into account the following additional data:
Initial Inventory Levels (units): There is an initial inventory level for every component type available at the first planning period that needs to be taken into account.
Minimum and Maximum Inventory Levels (units): There is a maximum and a minimum inventory level for every component type.
Machine capacity (units): The machine capacity represents the number of units of a given component type that the machine can produce using a given mould. If a mould cannot be used to manufacture a component type, the machine capacity is zero for that combination of component type and mould.
Demand (Units): The company has several confirmed orders for the following periods and therefore, our model needs to take into account the demand for every product at every planning period.
a. Write down the indexes and decision variables Indices
t = periods to produce \(t \in [0,..,T]\)
m = moulds \(m \in [0,..,M]\)
p = products \(p \in [0,..,P]\)
Decision Variables
\(Y_{pt}\) = units to store for product p on period t (Integer)
\(D_{pt}\) = delayed production for product p on period t (Integer)
\(X_{pt}\) = production for product p on period t (Integer)
\(S_{mt}\) = (Binary) {1 if mould m is used on period t, 0 otherwise}
b. Write down the objective function The objective function is to minimise storage costs and delayed order costs (eur):
\(\min z = \sum_{t=0}^{T}{\sum_{p=0}^{P}{C_d·D_{pt}}} + \sum_{t=0}^{T}{\sum_{p=0}^{P}{C_s·Y_{pt}}}\) (eur)
Where:
\(C_s\) represents the storage costs per unit and period (eur)
\(C_d\) represents the delayed order costs per unit and period (eur)
c. Write down the constraints
Problem Data
\(M_{mp}\) Machine Capacity using mould m to produce product p(units)
\(R_{pt}\) Demand for product p in period t
\(Y_{p0}\) Initial inventory level of product p
\(Y_{pmax}\) Maximum inventory level of product p
\(Y_{pmin}\) Minimum inventory level of product p
Machine Capacity Constraint The machine capacity constraint ensures that the model is consistent and that the machine capacity is not exceeded.
\(X_{pt} = \sum_{m=0}^{M}{M_{mp}·S_{mt}} \quad \forall p,t\)
That is, the number of units produced in period t of product p is equal to the sum of the machine capacity of the machine using the mould m multiplied by the binary decision variable that determines if the mould is used at period t.
Mould Constraint The second constraint ensures that the model is consistent and only one mould is used in one period:
\(\sum_{m=0}^{M}{S_{mt}} = 1 \forall t\)
Demand We need to ensure that the demand is satisfied:
\(Y_{pt-1} + X_{pt} - Y_{pt} = R_{pt} + D_{pt-1} - D_{pt} \forall p, t \in [1,T]\)
That is, the inventory level of product p at period t (amount left for next period) \(Y_{pt}\) is equal to the inventory level of product p at period t-1 (amount left from previous period) \(Y_{pt}\) plus the production of product p at period t, minus the inventory level of product p at period t (amount left for next period), minus the demand of product p at period t, minus the delayed production from last period t-1, plus the delayed production for the next period.
Initial Inventory Now, we need to take into account the initial inventory level: \(X_{p0} - Y_{p0} = R_{p0} - D_{p0} \forall p, t=0\)
That is, since we do not have any inventory left nor delayed production from period -1 (the problem starts in t=0), we need to modify slightly the demand constraint for t = 0.
Inventory levels
We need to ensure that the inventory levels are within the minimum and maximum levels:
\(Y_{pt} \geq Y_{minp} \forall p,t\)
\(Y_{pt} \leq Y_{maxp} \forall p,t\)
You have successfully validated your model, and it is already providing valuable information for the company. Now the company would like to extend the model to take into account as well the set-up costs:
Set up costs As explained above, the injection machine uses different moulds to manufacture different parts. Each time that a mould is changed to make a different component, the operators need to set up the machine. The company estimates that this setup cost only depends on the mould that is used and is only applied when a product is changed.
d. Modify the model to take into account the set-up costs.
We introduce a new decision variable to model the sequence of mould changes and simplify the model:
\(Su_{mt}\) Mould setup sequence (Binary) 1 if mould m is changed in period t, 0 otherwise.
\(C_m\) Setup costs of mould m (Eur).
Now, the objective function becomes:
\(\min z =\sum_{t=0}^{T}{\sum_{m=0}^{M}{C_m·Su_{mt}}} + \sum_{t=0}^{T}{\sum_{p=0}^{P}{C_s·D_{pt}}} + \sum_{t=0}^{T}{\sum_{p=0}^{P}{C_d·Y_{pt}}}\) (Eur)
We also need to introduce the following constraints for the new decision variable:
\(Su_{m0} = S_{m0} \forall m\)
Meaning that we take into account the costs of the initial setup of the machine.
\(Su_{mt} \geq S_{mt} - S_{mt-1}\)
Meaning that we only take into account in the costs mould changes (that is, when the mould used is different for two consecutive periods).