lecture 16: applying lp to plan production at jos a banksman/courses/2030/lecture14_lp04_app.pdf ·...
TRANSCRIPT
Applying LP to Plan Production at Jos A Bank
Learning objectives today
• Understand Jos A Bank production• Issues in production planning• Formulating an LP to plan production• Issues in formulation• Solving the LP using Xpress
Goal(s)
• Maximize long-term Economic Profit• by manufacturing and selling suits
produce the right product and offer it at the right price (service goal)minimize the cost to deliver (cost goal)
This way of thinking (separating the revenue goal from the cost goal) is quite common in business and industry
General Business Process
Inventory data
Customer orders
Marker-making
Marker
Spreading Fabric from inventory
What is the lead-time for inventory, and
how are the fabrics and colors selected?How are orders
batched together for marker-making?
General Business Process, cont’dMarker
Fabric from inventory
Spreading
Cutting Fitting Sub-assembly Final Ass’y
Press/Inspect
Technological and labor requirements for each process step
“Marker” driven batch operationsMatch & TagCut Bundle
All these are the same part for the same
style/size
Pull out and tag all the parts for the same suit (style, size, and color)
“cut”
Bundle together identical parts, so
they can all be sewn at one time
How many “bundles” are created from each “marker”?
Estimating spreading/cutting labor
• Depends on the number of layers• Depends on the type(s) of fabric• Depends on the length of the table
Issue: how to “size” capacity
Marker-Making
• Extremely difficult problem• Good marker minimizes waste by
getting the maximum number of parts onto the marker
• A suit comes from a single layer• Want to spread as much fabric as
possible (layers) because the maximizes cutting productivity
“Order” driven batch operationsbundles subassembly
subassembly Final assembly
One or more “orders”
Estimating assembly labor content
• Depends on the technology• Depends on the style, fabric, pattern• Depends on the experience of the
operator• Depends on the bundle size
• Traditional IE role is to set standards
An operator
• Works on many bundles during a shift• Has a “buffer” of bundles waiting, to
insure no “idle” time
To finish a suit• The pieces for the suit are cut at the same
time, then “fitted” and tagged• But then they are bundled with pieces for
other suits (of the same style, size, fabric)• The five different bundles, traveling five
different routes, all come together at final• The bundles go to different operators;
variability in queue time and process time means they don’t all arrive together at final assembly
Design Questions
• How many operators are needed in assembly?
• What is the manufacturing cycle time? (or how much WIP on average?)
• What is the minimum production quantity for a size/style/color?
Number of Operators
• Std hrs for each operation• Number of suits of each type• Total std hrs• Hrs avail per operator (take out
meals, breaks, and “allowances”
average over the year/season
Examining Impacts
Average operator utilization
Ope
ratin
g C
ost p
er s
uit
Inventory, delay
Queuing phenomenon!
labor
Design Issue
• Each operator is a “server”• How many servers do we need?• Trade-off cost of operators (labor)
against the cost of “waiting” (inventory and customer service)
• Capacity is not a “free variable”
Why Study Queues?
Because understanding Little’s Law, and the behavior of queues helps us to understand the behavior of Jos A Bank’s sewing room, and understand the interplay between the number of sewing operators, the manufacturing cycle time, the work-in-process inventory, and the total cost of garments produced.
How can Jos A Bank plan production over the “season”?
Hypothetical Sales Forecast
-2000
2004006008001000120014001600
0 5 10 15 20 25 30
Week
Units
Req
uire
d
CoatsTrousers
Fundamental Decisions
• How much work to release each week, for both trousers and coats– X(t,1), X(t,2)
• How much inventory to carry in anticipation of peak demand– I(t,1), I(t,2)
Objective
• Minimize the total inventory carried over the duration of the “season”
• Sum of the week-ending inventory values
∑ =+
T
ttItI
1)]2,()1,([
Types of Constraints
• Technical• Financial• Work practices• Conceptual
Let’s simplify
sewingcutting
yds/garment min/garmentcoats 3.2 7.34trousers 2.2 5.25
capacity 5000 yds/week 6 operators
TttXtX ,...15000)2,(2.2)1,(2.3 =≤+
TttXtX ,...1420*6)2,(25.5)1,(34.7 =≤+
Lead-time
• Suppose we have done the queuing or simulation analysis, and determined that the lead-time is five weeks (note: we know, in reality, that lead-time will be a function of loading and operator utilization, so it actually will vary as we change the release rate)
Consider only trousers, and leadtime = zero weeks
prod
1 2 3 4
d(1)
inv
p(4)
i(3)
p(3)p(2)
i(2) i(4)
d(2) d(3) d(4)
Inventory balance (flow conservation)
equationi(t) = i(t-1) + p(t) - d(t)
Boundary conditions for first and last periods
Suppose Lead-Time = 1 Week
prod
1 inv
p(2) p(3) p(4)
i(2) i(3) i(4)2 3 4
d(1) d(2) d(3) d(4)
Lead-Time = 2 weeks
prod
inv
p(2) p(3) p(4)
i(2) i(3) i(4)1 2 3 4
d(1) d(2) d(3) d(4)
Visual Xpress Model for Jos A Bankmodel JABank ! Start a new model
uses "mmxprs" ! Load the optimizer library
declarationsnprod = 2 !number of products--coats, trousersiprod = 1..nprodnper = 26 !number of weeks in the planiper = 1..nperLT = 5 !production lead time in weeksiLT = 1..LT
D: array(iper, iprod) of real !demand in each period for coats and trousersy: array(iprod) of real !cutting standards for coats and trouserss: array(iprod) of real !sewing standards for coats and trousers
X: array(iper, iprod) of mpva !quantity of coats and trousers to be started in each periodI: array(iper, iprod) of mpvar !inventory of coats and trousers at the beginning of each period
end-declarations
Visual Xpress Model for Jos A Bank
y := [3.2, 2.2]s := [7.34, 5.25]YPW := 6000 !cutting capacity in yards per weekSOP := 5 !sewing operators available
initializations from 'jabank.dat'D
end-initializations
forall(i in iprod) s(i) := s(i)/60 !convert sewing standards into hours from minutes
Visual Xpress Model for Jos A Bank!objective function; total inventory carried during the planning horizonobj_fcn:= sum(j in iper) I(j,1)+sum(j in iper) I(j,2)
!capacity constraintsforall (j in iper) cutting (j):= y(1)*X(j,1) + y(2)*X(j,2) <= YPW !can't cut more than 5000 yds
per weekforall (j in iper) sewing (j):= s(1)*X(j,1) + s(2)*X(j,2) <= SOP*40 !can sew more than SOP*40
hours per week
!Balance constraintsforall (j in LT+1..nper) bal_coats (j):= I(j-1,1) + X(j-LT,1) -D(j,1)-I(j,1) = 0forall (j in LT+1..nper) bal_trou (j):= I(j-1,2) + X(j-LT,2) -D(j,2)-I(j,2) = 0
!boundary conditionsforall (j in iLT) init (j):= I(j,1)+I(j,2)=0
minimize(obj_fcn)
Visual Xpress Model for Jos A Bank
! Print out the solutionwriteln("Solution ")writeln(" Objective: ", getobjval)writelnwriteln(" Coat Trouser")writeln("Period Production Inventory Production Inventory")writelnforall (j in iper) writeln(" ", strfmt(j, 2), " ", strfmt(getsol(X(j,1)),6,0)," ",
strfmt(getsol(I(j,1)), 6,0), " ", strfmt(getsol(X(j,2)), 6, 0), " ", strfmt(getsol(I(j,2)), 6, 0))
end-model
Data File for Jos A BankD: [0 00 00 00 00 0150 250350 562.5500 812.5650 1000800 1187.5950 1312.51100 1437.51205 1437.51205 1312.51150 1187.5850 725350 437.5180 312.5100 187.5100 125100 62.5100 43.7570 37.550 31.2530 2510 12.5]
Xpress-IVE
Solution--Trousers
-500
0
500
1000
1500
2000
2500
3000
0 5 10 15 20 25 30
DemandProductionInventory
Solution--Coats
-200
0
200
400
600
800
1000
1200
1400
1600
0 5 10 15 20 25 30
DemandProductionInventory
This Model:
• Enforces the cutting capacity constraint• Enforces the limit on sewing operators• Enforces inventory balance• Satisfies all demand• Minimizes the total unit-weeks of inventory
What’s tricky about this?
• Lead-time!
NOTE:
• I can use this model to determine the minimum possible number of sewing operators for a given lead-time
• I can vary the lead-time• (What’s the relationship between
lead-time and number of operators?)
Summary
• Jos A Bank production process• Formulating the production planning
LP• The inventory balance constraint• Dealing with lead-time• Practices in using Xpress