MIP 4: Production-Inventory Planning

Packages Used: No new packages are used in this notebook.

1. Inventory Costs in Production-Inventory Planning

In the production-inventory planning model presented in Ex 7 of Net Mod 3, the inventory cost for each stage i was given, $c_1^i = 5$ and $c_2^i = 25$ \$/ton:

image.png

It is more convenient to use an annual inventory carrying rate, $h$, multiplied by the cummulative production cost:

$ \begin{eqnarray*} \quad c_i^i &=& h\sum_{k=1}^{i} c_k^p \\ h &=& \mbox{per-period inventory carrying rate (\$/\$-period) .} \\ \end{eqnarray*} $

For example, in Ex 7, assuming an annual inventory carrying rate of 0.3 \$/\\$-yr, the monthly rate is $ h = 0.3/12$. The inventory cost per ton at stage i is then the monthly rate times the cumulative cost to produce each ton from stage 1 through i:

$ \begin{eqnarray*} \quad c_1^i &=& \dfrac{0.3}{12} 200 = 5 \\ c_2^i &=& \dfrac{0.3}{12} \bigl( 200 + 800 \bigr) = 25 \end{eqnarray*} $.

2. Single-Product Production-Inventory Planning with Fixed Cost

In the production-inventory planning model presented in Net Mod 3, the production capacity available at each stage for each period was given; as a result, the model could be solved as an LP. Now, the model will include making a decision at each stage for each period regarding how much, if any, capacity is available. The capacity is assumed to be available in discrete units that are either available at 100% of the unit's capacity or not available at all. Binary decision variables are used to make these decisions. This internal capacity decision requires the model to be solved as a MILP.

Fixed Production Cost and Economies of Scale

Cost data from existing facilities can be used to fit linear estimate. Economies of scale in production $ \implies k > 0 \mbox{ and } \beta < 1 $

image.png

MILP Model

$ \begin{eqnarray*} \quad \mbox{Minimize} \quad \sum_{i=1}^{m} \sum_{j=1}^{t} c_i^p x_{ij} + \sum_{i=1}^{m} \sum_{j=2}^{t+1} c_i^i y_{ij} &+& \sum_{i=1}^{m} \sum_{j=1}^{t} c_i^k z_{ij} \\ \quad \mbox{subject to} \quad -x_{ij} + x_{(i+1)j} - y_{ij} + y_{i(j+1)} &=& 0 \mbox{,} &\quad i = 1, \dots, m-1; j = 1, \dots, t &\quad (a) \\ -x_{mj} - y_{mj} + y_{m(j+1)} &=& d_j \mbox{,} &\quad j = 1, \dots, t &\quad (b) \\ x_{ij} &\le& u_{i} z_{ij} \mbox{,} &\quad i = 1, \dots, m; j = 1, \dots, t &\quad (c) \\ y_{i,1} &=& y_i^0 \mbox{,} &\quad i = 1, \dots, m \\ y_{i(t+1)} &=& y_i^{t+1} \mbox{,} &\quad i = 1, \dots, m \\ x, y \ge 0; z &\in& \bigl\{ 0, 1 \bigr\} \mbox{,} \\ \end{eqnarray*} $

where,

$ \begin{eqnarray*} \quad m &=& \mbox{number of production stages} \\ t &=& \mbox{number of periods of production} \\ c_i^p &=& \mbox{variable production cost (dollar/ton) in stage } i \\ x_{ij} &=& \mbox{production (ton) at stage } i \mbox{ in period } j \\ c_i^i &=& \mbox{inventory cost (dollar/ton) in stage } i \\ y_{ij} &=& \mbox{stage-} i \mbox{ inventory (ton) from period } j-1 \mbox{ to } j \\ c_i^k &=& \mbox{fixed production cost (dollar/period) in stage } i \\ z_{ij} &=& \mbox{production indicator at stage } i \mbox{ in period } j \\ d_j &=& \mbox{demand (ton) in period } j \\ u_{i} &=& \mbox{production capacity (ton) of stage } i \mbox{ in period } j \\ y_i^0 &=& \mbox{initial inventory (ton) of stage } i \\ y_i^{t+1} &=& \mbox{final inventory (ton) of stage } i \mbox{.} \\ \end{eqnarray*} $

In the objective function, inventory costs are summed from 2 to t + 1 because the period 1 initial inventory cost was accounted for in period 0 prior to period 1 (rolling horizon). Constraints (a) and (b) in the model are the flow-balance equations for each node. Constraint (c) represents available production capacity and uses the binary variables z to indicate whether production occurs.

Ex 1: Single-Product Production-Inventory Planning with Fixed Cost

Question: A single product is produced in a two-stage production process. Stage one has a capacity to produce 40 tons of the product per month, and there is a fixed cost of \$6000 per month and a variable cost of \\$200 for each ton of product produced. For stage two, capacity is 80 tons per month, and there is a fixed cost of \$18,000 and a variable cost of \\$800. The fixed costs are only incurred when any amount of production occurs at that stage for that month. Demand for the next six months is estimated to be 25, 15, 10, 50, 25, and 15 tons per month. Currently, five tons of material are in storage at stage one and 35 tons at stage two; at the end of the planning period, ten tons of material should be in storage at stage one and 15 at stage two. Up to 30 tons of material per month can be stored at each stage. Assuming that the annual inventory carrying rate is $0.4 \mbox{ \$/\$-yr }$, determine the production plan that minimizes total costs over the planning horizon and what those total costs will be.

Solution: Can extend the MCNF model from Net Mod 3 by using the production indicator binary variable to turn capacity on or off at each stage for each period. One modeling issue is how to determine inventory cost on a per-ton basis if the production cost includes a fixed component. An approximation is to allocate the fixed cost based on capacity:

$ \quad c_i^i = h\sum_{j=1}^{i} \left( c_j^p + \dfrac{c_j^k}{u_j} \right) $

The maximum inventory storage constraint can be modeled as an upper bound on y.

Optimal production flows (and required demands):

Optimal inventory flows:

Optimal production indicators:

Calculate total variable production, inventory, and fixed production cost components:

The sum of component costs exceeds total cost from solver because it includes first-period (time 0) inventory costs:

Exclude first period from inventory costs:

Total component costs now match total cost from solver:

Ex 2: Truckload Transport

A plant in Austin, TX, uses raw material from a supplier in Escanaba, MI. The raw material is transported via truckload, and the cost for each truckload is \$3 per mile, which is independent of how much is transported. Each truckload can carry up to 25 tons and 2750 cubic feet of material. Each unit of raw material costs \$2500, occupies 60 cubic feet, and weighs 800 pounds. A planning horizon of 13 weeks is used and is based on the following forecasted demand (in units):

21, 23, 9, 19, 41, 15, 62, 27, 11, 29, 23, 22, and 17

A maximum of 100 units can be stored at the plant. Currently, 13 units are in storage, and the same number should be in storage at the end of the planning horizon. Assuming that the annual inventory carrying rate is 0.4, determine the best transportation plan over the planning horizon.

3. Multiple-product Production-Inventory Planning with Setup Cost

If multiple products are produced using shared resources, there is often a cost associated with reconfiguring or setting up the resource to produce a product if it was previously producing a different product; examples of such setup costs would be the material and labor cost associated with re-tooling/re-calibration of machines, cleaning/sterilization of equipment, and the lost production capacity while a resource is not available during set up. In the following model, set up cost is separate from production cost in the objective function:

$ \begin{eqnarray*} \quad \mbox{Minimize} \quad \sum_{i=1}^{m} \sum_{j=1}^{t} \sum_{k=1}^{g} c_{ik}^p x_{ijk} + \sum_{i=1}^{m} \sum_{j=2}^{t+1} \sum_{k=1}^{g} c_{ik}^i y_{ijk} &+& \sum_{i=1}^{m} \sum_{j=1}^{t} \sum_{k=1}^{g} c_{ik}^s v_{ijk} \\ \quad \mbox{subject to} \quad -x_{ijk} + x_{(i+1)jk} - y_{ijk} + y_{i(j+1)k} &=& 0 \mbox{,} & i = 1, \dots, m-1; j = 1, \dots, t; k = 1, \dots, g \;\;& (a) \\ -x_{mjk} - y_{mjk} + y_{m(j+1)k} &=& d_{jk} \mbox{,} & j = 1, \dots, t; k = 1, \dots, g & (b) \\ x_{ijk} &\le& u_{ik} z_{ijk} \mbox{,} & i = 1, \dots, m; j = 1, \dots, t; k = 1, \dots, g & (c) \\ -v_{i1k} + z_{i1k} &\le& z_{ik}^0 \mbox{,} & i = 1, \dots, m; k = 1, \dots, g & (d) \\ -v_{ijk} + z_{ijk} - z_{i(j-1)k} &\le& 0 \mbox{,} & i = 1, \dots, m; j = 2, \dots, t; k = 1, \dots, g & (e) \\ \sum_{k=1}^g z_{ijk} &=& 1 \mbox{,} & i = 1, \dots, m; j = 1, \dots, t & (f) \\ y_{i1k} &=& y_i^0 \mbox{,} & i = 1, \dots, m; k = 1, \dots, g \\ y_{i(t+1)k} &=& y_{ik}^{t+1} \mbox{,} & i = 1, \dots, m; k = 1, \dots, g \\ x, y \ge 0; z, v &\in& \bigl\{ 0, 1 \bigr\} \mbox{,} \\ \end{eqnarray*} $

where,

$ \begin{eqnarray*} \quad m &=& \mbox{number of production stages} \\ t &=& \mbox{number of periods of production} \\ g &=& \mbox{number of products} \\ c_{ik}^p &=& \mbox{production cost (dollar/ton) in stage } i \mbox{ for product } k \\ x_{ijk} &=& \mbox{production (ton) at stage } i \mbox{ in period } j \mbox{ for product } k \\ c_{ik}^i &=& \mbox{inventory cost (dollar/ton) in stage } i \mbox{ for product } k \\ y_{ijk} &=& \mbox{stage-} i \mbox{ inventory (ton) from period } j-1 \mbox{ to } j \mbox{ for product } k \\ c_{ik}^s &=& \mbox{setup cost (dollar) in stage } i \mbox{ for product } k \\ v_{ijk} &=& \mbox{setup indicator at stage } i \mbox{ in period } j \mbox{ for product } k \\ z_{ijk} &=& \mbox{production indicator at stage } i \mbox{ in period } j \mbox{ for product } k \\ d_{jk} &=& \mbox{demand (ton) in period } j \mbox{ for product } k \\ u_{ik} &=& \mbox{production capacity (ton) of stage } i \mbox{ in period } j \mbox{ for product } k \\ z_{ik}^0 &=& \mbox{initial setup at stage } i \mbox{ for product } k \\ y_{ik}^0 &=& \mbox{initial inventory (ton) of stage } i \mbox{ for product } k \\ y_{ik}^{t+1} &=& \mbox{final inventory (ton) of stage } i \mbox{ for product } k \mbox{.} \\ \end{eqnarray*} $

Constraints (a) and (b) are for flow balance, (c) for production capacity, (d) and (e) to force setups to occur, and (f) are linking constraints that ensure that only one product is produced at each stage during each period. Constraints (a)-(e) all refer to each product separately, and only (f) refer to multiple products together for each stage and period.

image.png

In order to ensure that a setup occurs only the first period that production switched to a different product, the constraint $ -v_t + z_t - z_{t-1} \le 0 $ can used. There are eight possible combinations of values that the three binary variables can take. In the table below, right, the combination $ [ 0 \; 1 \; 0 = 1 \nleq 0 ] $ is not feasible (i.e., allowing a product switch without incurring a setup), and this constraint ensures that this cannot happen. The combination $ [ 1 \; 1 \; 0 = 0 \leq 0 ] $ is feasible can will occur; the other three combinations where a setup is indicated ($ v_t = 1 $) are feasible but would never occur because they would only add an additional unnecessary setup cost and the objective is to minimize cost.

image.png

Ex 3: Multiple-Product Production-Inventory Planning with Setup Cost

Question: A plant can use a three-stage process to produce two products. A 13-week rolling horizon is used for planning production. The products’ forecasted demand, in tons, is the following, where D[j,k] is the demand in period j for product k:

D = [
  6  17
 40  14
 33  17
 24   4
 29   7
 24  10
 16  12
 13  18
 14  13
 17  23
 18   8
 43  17
 25   3
]

The plant can produce up to 60, 55, and 50 and 50, 45, and 35 tons per week for each stage of each product, respectively; has production costs of \$12, \\$75, and \$35 and \\$20, \$130, and \\$60 per ton for each stage of each product, respectively; and has costs of \$400, \\$90, and \$50 and \\$600, \$110, and \\$60 per set up for each stage of each product, respectively. The annual inventory carrying rate is 0.3. The plant is currently set up to produce each stage of the first product, and the first two weeks' demand for the second product is being held as finished product inventory. The final inventory for all stages of both products is zero. Determine the amount of each product that should be produced in order to minimize total costs over the planning horizon.