Disaggregate Planning
Background
The aggregate plan specifies work-force size and production
quantities for the firm as a whole or for large families of related
items.
For production planning, aggregate plan must be disaggregated
into item by item production quantities [remember aggregate
plan in surrogate units].
We will examine an approach to disaggregation developed by
Bitran and Hax.
Disaggregation - Product Families
The first step in the Bitran-Hax approach to disaggregation is
to identify families of items that will be produced in each
planning period.
A family of items is a group of products so similar that it is
economically or technologically wise to produce them together.
Typically, within family setup change cost is small and
between family setup change cost is large.
Disaggregation - Product Families (Cont.)
We will consider producing some units of each item in a family
whenever it is necessary to schedule production of any item in
family.
Looking at each item produced by the firm, in each period in
the planning horizon, determine the quantity expected to be in
inventory if no production is scheduled for the period.
Disaggregation - Product Families (Cont.)
If any item in a particular planning period will have an ending
inventory less than or equal to that item’s safety stock level
[zero if no safety stock is held], then all members of that
item’s family are candidates for production in that planning
period.
Disaggregation - Product Families (Cont.)
Formally, for any item j in each family i, if I ij,t-1 is the amount
of the item held in inventory at the end of period t-1, the
demand for item j in period t is Dij, t and the safety stock is SSij,
then
if min {Iij,t-1 - Dij, t - SSij} 0 for all j ε i
then all items j in family i are considered for production in
period t
Disaggregation - Product Families (Cont.)
Let zt be the set of families identified for production in period t.
Find amounts xit (in aggregate units) for each family i ε zt to be
produced in period t by solving the following knapsack
problem:
Disaggregation - Product Families (Cont.)
Min [(hixit)/2 + (Si/xit ) Kij Dij, t]
for all i ε zt for all j ε i
Subject to xit = x*t
for all i ε zt
xit LBit
xit UBit
where Si = set up cost to produce family i
x*t = aggregate plan production for period t
Disaggregation - Product Families (Cont.)
xit = amount of family i to be produced in period t
Kij = conversion factor for item j in family i expressing item in
aggregate units
hi = holding cost per aggregate unit for family i
LBit = lower bound on production of family i in period t
UBit = upper bound on production of family i in period t
Disaggregation - Product Families (Cont.)
Note that xi*t = 0 for each family i that is not an element of zt
[i.e., the optimal production quantity is zero].
Bounds LBit and UBit are calculated as follows:
LB i
t
Max[0, K ij Dij ,t I ij ,t 1 SS ij ]
forallj i
Disaggregation - Product Families (Cont.)
n 1
UBi K ij Dij ,t k I ij ,t 1 SSij
t
for k 0
allji
where n specifies the maximum number of periods of demand
held in stock in any planning period
Disaggregation - Product Families (Cont.)
Note that a feasible solution to the knapsack problem will exist
when
LBit x*t UBit
for all i ε z for all i ε zt
If x*t > UBit
for all i ε zt
the upper bound constraint will have to be violated in order to
meet the aggregate plan
Disaggregation - Product Families (Cont.)
In this case, allocate the excess production to reflect the
relative cost of inventory. If that cost is same over each family,
then set the production level as
yi*t = xi*t = (x*t) UBit / UBit
for all i ε zt
If x*t UBit}
z- β = { i ε z β : yi β < LBit}
Compute Δ+ = (yi β - UBit)
i ε z+ β
Δ - = (LBit - yi β)
i ε z- β
Family Disaggregation Algorithm (Cont.)
Step 4. If Δ + Δ -, let yi*t = UBit for all i ε z+β
if Δ + < Δ -, let yi*t = LBit for all i ε z- β
Let β = β + 1,
z β +1 = z β - {all families for which yi* has been found}
and let P β +1 = P β - yi*t
all i found in iteration β
If z β +1 = Φ, stop. Otherwise return to Step 1.
Disaggregating - Example Problem
Consider the specialty automobile manufacturer we discussed
in our examination of aggregate planning.
Suppose that we have decided to disaggregate aggregate plan
Alpha [3500 production hours in each of four quarters] that we
developed with the graphical/tabular approach.
Handout page 8 shows the demand data for the four types of
specialty vehicles: “hardtops” A1 and A2, and convertibles B1
and B2. The handout also identifies the distribution of
beginning inventory among the four vehicle types.
Disaggregating - Example Problem
We will use the Bitran-Hax approach to disaggregate aggregate
plan Alpha.
Assumptions relevant to the disaggregation process are shown
on handout page 8. Note, in particular, that we have assumed
that 5th Qtr demands are equal to 4th Qtr demands for all items
in all families
Note that by management policy, no more than n = 2 quarters
of demand will be held in inventory for any car type.
Disaggregating - Example Problem
To disaggregate Alpha’s 1st Qtr specification of 3500
production hours into the firm’s two families A and B we first
determine which families should be scheduled for production?
With no production in 1st Qtr we have
for A1: 8 - 50 = - 42 < 0 for B1: 5 - 30 = - 25 < 0
for A2: 3 - 30 = - 27 < 0 for B2: 9 - 40 = - 31 < 0
Hence z1 = {A, B}.
Disaggregating - Example Problem
Next compute upper and lower bounds for families in z1
LBA1 = max [0, 20(50-8+0)] + max [0, 20(30-3+0)]= 1380
UBA1 = 20[(50+60)-8+0]+20[(30+40)-3+0]= 3380
LBB1 = max [0, 20(30-5+0)] + max [0, 20(40-9+0)]= 1120
UBB1 = 20[(30+70)-5+0]+20[(40+80)-9+0]= 4120
Disaggregating - Example Problem
Now calculate
yA1 = [10,000{20(50)+20(30)}]1/2 *3,500
[10,000{20(50)+20(30)}]1/2 + [15,000{20(30)+20(40)}]1/2
= 1631.21
yB1 = [15,000{20(30)+20(40)}]1/2*3,500
[10,000{20(50)+20(30)}]1/2 + [15,000{20(30)+20(40)}]1/2
= 1868.79
Disaggregating - Example Problem
Since 1380 1631.21 < 3380 and 1120 < 1869.79 < 4120
knapsack solution is within upper and lower bounds, hence
yA*1 = 1631.21
and yB*1 = 1869.79
Now we must disaggregate family specifications in production
hours to item specifications in terms of cars.
We will use the Bitran-Hax approach to item disaggregation.
Item Disaggregation
In item disaggregation attempt to allocate family production
among family member items so that all members of family
reach their safety stock levels at same time.
Note: We might as well do that because Bitran-Hax considers
producing all members of a family when any one item falls
below safety stock level.
Item Disaggregation (Cont.)
For each family i ε zt
Step 1. Find smallest integer Nit such that
Nit-1
yi*t Kij [ Dij, t+k + SSij - Iij, t-1]
k=0
for all j ε i
Item Disaggregation (Cont.)
Note that Nit specifies the number of periods of demand Dij,t,
Dij, t+1, ...,Dij, t+ N it-1 [this is Nit time periods of demand] for all
items j in family i such that the sum of these demands just
exceeds yi*t.
Hence, if we summed only Nit-1 periods of demand, that total
would be strictly less than yi*t.
Item Disaggregation (Cont.)
Step 2. Calculate
N i t 1
Ei K [D SS ij I ij ,t 1 ] yi
t *t
ij ij ,t k
forallj i k 0
Eit is the amount that producing Nit- 1 periods of demand the
exceeds aggregate plan quantity of yi*t
Item Disaggregation (Cont.)
Step 3. Calculate for each item j in family i
t*
N i t 1 Ei Dij ,t N t 1
yij Dij ,t k SS ij I ij ,t 1
*t i
k 0 K
allj i
ij Dt N t 1
i
The last term in this expression is reduction in production so that
yi*t will be met.
Item Disaggregation (Cont.)
If for some item j [say item g], the calculation of yig*t gives
yig*t < 0, then set yig*t = 0
then recalculate
N i 1
t
Ei K ij Dij ,t k SSij I ij ,t 1 yi
t *t
forallj i k 0
jg
Item Disaggregation (Cont.)
Recalculate
Ei Dij ,t N t 1
t
N i t 1
yij Dij ,t k SSij I ij ,t 1
*t i
k 0 K
allj i
ij Dij ,t N t 1
i
jg
Now we will return to the specialty auto firm to disaggregate
family production into production of cars in the 1st Quarter.
Then, we look at family and item disaggregations for the 2nd,
3rd, and 4th Quarters.