300 likes | 387 Views
University of Chicago Graduate School of Business. Introduction to Computer Based Models Bus-36102-81 Mr. Schrage Spring 2003. Multiperiod Planning and Covering Models.
E N D
University of Chicago Graduate School of Business Introduction to Computer Based Models Bus-36102-81 Mr. Schrage Spring 2003 Multiperiod Planning and Covering Models
Distinctive Features of Multiperiod Planning: Decisions made in one period affect results in other periods. Applications: Demand and Capacity Planning; How to represent? Inventory variable(s) tie one-period models together. The inventory equation: Beginning inventory + production = demand + ending inventory; Symbolically: It-1 + Pt = Dt + It ; If there is attrition or growth: g* It-1 + Pt = Dt + It ;
Key Ideas to Note: Inventory variable; Representing financial features: Generalization of Net Present Value to different rates for different periods, different maturities, borrowing vs. lending borrowing small amount vs. large; Representing taxes;
Cash Flow Matching Portfolio Situation: We are faced with a stream of future cash requirements. We want to set aside a lump sum now to guarantee ability to match these requirements. Examples: Lump sum settlements in come personal injury liability cases. Removing debt from a balance sheet in so-called defeasance. Trust fund for college education. Fund to pay off lottery winners.
Approaches: a) Compute present value of the stream. Q. What is appropriate interest rate? Injured party wants _________ Paying party wants _________ b) Buy a collection of high quality bonds so that cash throw-offs satisfy cash needs. If consider more than just zero-coupon bonds, then this is an LP.
Example: Bond 1Bond 2 Price: 980 965 Matures(yrs): 5 12 Rate/yr: 6% 6.5%
What is a Q&D estimate of the lump sum, L? MODEL: MIN = L; [P00] L - .98 * B1 - .965 * B2 >= 10; [P01] .06 * B1 + .065 * B2 >= 11; [P02] .06 * B1 + .065 * B2 >= 12; [P03] .06 * B1 + .065 * B2 >= 14; [P04] .06 * B1 + .065 * B2 >= 15; [P05] 1.06 * B1 + .065 * B2 >= 17; [P06] .065 * B2 >= 19; [P07] .065 * B2 >= 20; [P08] .065 * B2 >= 22; [P09] .065 * B2 >= 24; [P10] .065 * B2 >= 26; [P11] .065 * B2 >= 29; [P12] 1.065 * B2 >= 31; END
Hmm, takes a lot of money! What are we missing? Variable Value Reduced Cost L 440.5385 0.0000000 B1 0.0000000 0.9800000 B2 446.1538 0.0000000 Row Slack or Surplus Dual Price 1 440.5385 1.000000 P00 0.0000000 -1.000000 P01 18.00000 0.0000000 P02 17.00000 0.0000000 P03 15.00000 0.0000000 P04 14.00000 0.0000000 P05 12.00000 0.0000000 P06 10.00000 0.0000000 P07 9.000000 0.0000000 P08 7.000000 0.0000000 P09 5.000000 0.0000000 P10 3.000000 0.0000000 P11 0.0000000 -14.84615 P12 444.1538 0.0000000
Add opportunity to invest for one period, each period: MODEL: MIN = L; [P00] L - .98 * B1 - .965 * B2 - S0 = 10; [P01] .06 * B1 + .065 * B2 + 1.04 * S0 - S1 = 11; [P02] .06 * B1 + .065 * B2 + 1.04 * S1 - S2 = 12; [P03] .06 * B1 + .065 * B2 + 1.04 * S2 - S3 = 14; [P04] .06 * B1 + .065 * B2 + 1.04 * S3 - S4 = 15; [P05] 1.06 * B1 + .065 * B2 + 1.04 * S4 - S5 = 17; [P06] .065 * B2 + 1.04 * S5 - S6 = 19; [P07] .065 * B2 + 1.04 * S6 - S7 = 20; [P08] .065 * B2 + 1.04 * S7 - S8 = 22; [P09] .065 * B2 + 1.04 * S8 - S9 = 24; [P10] .065 * B2 + 1.04 * S9 - S10 = 26; [P11] .065 * B2 + 1.04 * S10 - S11 = 29; [P12] 1.065 * B2 + 1.04 * S11 - S12 = 31; END
Variable Value Reduced Cost L 168.98760 0.0000000 B1 119.16280 0.0000000 B2 29.10798 0.0000000 S0 14.11887 0.0000000 S1 12.72541 0.0000000 S2 10.27622 0.0000000 S3 5.72905 0.0000000 S4 0.00000 0.1069792 S5 111.20460 0.0000000 S6 98.54478 0.0000000 S7 84.37859 0.0000000 S8 67.64575 0.0000000 S9 48.24360 0.0000000 S10 26.06537 0.0000000 S11 0.00000 0.1412458 S12 0.00000 0.4106152
What is the interpretation of the dual prices? Row Slack or Surplus Dual Price 1 168.9876 1.000000 P00 0.0000000 -1.000000 P01 0.0000000 -0.9615384 P02 0.0000000 -0.9245562 P03 0.0000000 -0.8889964 P04 0.0000000 -0.8548042 P05 0.0000000 -0.7190625 P06 0.0000000 -0.6914063 P07 0.0000000 -0.6648138 P08 0.0000000 -0.6392440 P09 0.0000000 -0.6146576 P10 0.0000000 -0.5910170 P11 0.0000000 -0.5682856 P12 0.0000000 -0.4106152
MODEL: ! Suppose we disallow bonds; B1 + B2 = 0; MIN = L; [P00] L - .98 * B1 - .965 * B2 - S0 = 10; [P01] .06 * B1 + .065 * B2 + 1.04 * S0 - S1 = 11; [P02] .06 * B1 + .065 * B2 + 1.04 * S1 - S2 = 12; [P03] .06 * B1 + .065 * B2 + 1.04 * S2 - S3 = 14; [P04] .06 * B1 + .065 * B2 + 1.04 * S3 - S4 = 15; [P05] 1.06 * B1 + .065 * B2 + 1.04 * S4 - S5 = 17; [P06] .065 * B2 + 1.04 * S5 - S6 = 19; [P07] .065 * B2 + 1.04 * S6 - S7 = 20; [P08] .065 * B2 + 1.04 * S7 - S8 = 22; [P09] .065 * B2 + 1.04 * S8 - S9 = 24; [P10] .065 * B2 + 1.04 * S9 - S10 = 26; [P11] .065 * B2 + 1.04 * S10 - S11 = 29; [P12] 1.065 * B2 + 1.04 * S11 - S12 = 31; END
What is another way of computing L (w/o LP)? Variable Value Reduced Cost B1 0.0000000 0.1605904 B2 0.0000000 0.0000000 L 189.8290 0.0000000 S0 179.8290 0.0000000 S1 176.0222 0.0000000 S2 171.0630 0.0000000 S3 163.9056 0.0000000 S4 155.4618 0.0000000 S5 144.6803 0.0000000 S6 131.4675 0.0000000 S7 116.7262 0.0000000 S8 99.39521 0.0000000 S9 79.37102 0.0000000 S10 56.54586 0.0000000 S11 29.80769 0.0000000 S12 0.0000000 0.6245971
Is there a simple formula for these dual prices? Row Slack or Surplus Dual 1 0.000000 0.2696269 2 189.829000 1.000000 P00 0.000000 -1.000000 P01 0.000000 -0.9615384 P02 0.000000 -0.9245562 P03 0.000000 -0.8889964 P04 0.000000 -0.8548042 P05 0.000000 -0.8219271 P06 0.000000 -0.7903146 P07 0.000000 -0.7599178 P08 0.000000 -0.7306902 P09 0.000000 -0.7025867 P10 0.000000 -0.6755642 P11 0.000000 -0.6495810 P12 0.000000 -0.6245971
MODEL: ! Suppose we can buy only an integer number of bonds. Does it hurt us much?; @GIN( B1); @GIN( B2); MIN = L; [P00] L - .98 * B1 - .965 * B2 - S0 = 10; [P01] .06 * B1 + .065 * B2 + 1.04 * S0 - S1 = 11; [P02] .06 * B1 + .065 * B2 + 1.04 * S1 - S2 = 12; [P03] .06 * B1 + .065 * B2 + 1.04 * S2 - S3 = 14; [P04] .06 * B1 + .065 * B2 + 1.04 * S3 - S4 = 15; [P05] 1.06 * B1 + .065 * B2 + 1.04 * S4 - S5 = 17; [P06] .065 * B2 + 1.04 * S5 - S6 = 19; [P07] .065 * B2 + 1.04 * S6 - S7 = 20; [P08] .065 * B2 + 1.04 * S7 - S8 = 22; [P09] .065 * B2 + 1.04 * S8 - S9 = 24; [P10] .065 * B2 + 1.04 * S9 - S10 = 26; [P11] .065 * B2 + 1.04 * S10 - S11 = 29; [P12] 1.065 * B2 + 1.04 * S11 - S12 = 31; END
Variable Value Reduced Cost B1 119.000000 -0.1090365 B2 29.000000 -0.2696269 L 169.034500 0.0000000 S0 14.429480 0.0000000 S1 13.031660 0.0000000 S2 10.577920 0.0000000 S3 6.026039 0.0000000 S4 0.292081 0.0000000 S5 111.328800 0.0000000 S6 98.666910 0.0000000 S7 84.498590 0.0000000 S8 67.763530 0.0000000 S9 48.359080 0.0000000 S10 26.178440 0.0000000 S11 0.110577 0.0000000 S12 0.000000 0.6245971
Row Slack or Surplus Dual Price 1 169.0345 1.000000 P00 0.0000000 -1.000000 P01 0.0000000 -0.9615384 P02 0.0000000 -0.9245562 P03 0.0000000 -0.8889964 P04 0.0000000 -0.8548042 P05 0.0000000 -0.8219271 P06 0.0000000 -0.7903146 P07 0.0000000 -0.7599178 P08 0.0000000 -0.7306902 P09 0.0000000 -0.7025867 P10 0.0000000 -0.6755642 P11 0.0000000 -0.6495810 P12 0.0000000 -0.6245971
Other Typical Issues -Setup costs for producing in a period, Xt 999 * Yt, Yt = 0 or 1; -Level change costs: Changeupt- Changednt= Xt – Xt-1; -Taxes: taxt tax_rate * (taxable_revt - taxable_expenset); sources_of_casht+1 = uses_of_casht+1 + taxt -End Effects, how to gracefully truncate: Methods: Limits, salvage values, infinite period. -NPV vs. LP
IRR vs. NPV vs. LP ! We have an investment opportunity for which: $1M is required now in year 0 $2.5 is paid back next year in year 1, $1.55 is required to close it down in year 2. In Excel, IRR( -1,2.5,-1.55) reports 13.82%. Our cost of capital is .10 per year(or maybe .25, or .40?). Should we invest in this opportunity? Stated as a multiperiod planning LP...; MAX = CASH2; R = .1; INV <= 1; ! Year 0, Sources - uses >= 0; - 1 * INV + B0 - S0 >= 0; ! Year 1, Sources - uses >= 0; + 2.5 * INV + B1 - S1 - (1+R)*B0 + (1+R)*S0 >= 0; ! Year 2, Sources - uses >= 0; - 1.55 * INV -(1+R)* B1 + (1+R)* S1 - CASH2 >= 0;
Covering and Staffing We need the following no. of people on duty: Day: Mon Tue Wed Thu Fri Sat Sun No.: 7 6 19 16 19 10 9 We can hire people to start any day of the week, work for 5 consecutive days, off for 2 days, on for 5, etc. Decision variables? Constraints? Objective?
If we just minimize number of people hired.. MODEL: MIN = M + T + W + R + F + S + N; [MON] M + R + F + S + N >= 7; [TUE] M + T + F + S + N >= 6; [WED] M + T + W + S + N >= 19; [THU] M + T + W + R + N >= 16; [FRI] M + T + W + R + F >= 19; [SAT] T + W + R + F + S >= 10; [SUN] W + R + F + S + N >= 9; END
Any criticisms of this solution? Variable Value Reduced Cost M 9.000000 0.000000 T 0.000000 0.000000 W 10.000000 0.000000 R 0.000000 1.000000 F 0.000000 1.000000 S 0.000000 0.000000 N 0.000000 0.000000 Row Slack or Surplus Dual Price 1 19.000000 1.000000 MON 2.000000 0.000000 TUE 3.000000 0.000000 WED 0.000000 -1.000000 THU 3.000000 0.000000 FRI 0.000000 0.000000 SAT 0.000000 0.000000 SUN 1.000000 0.000000
Suppose overstaffing a given day by up to one person is worth a 0.1 unit of "credit". MODEL: MIN = M + T + W + R + F + S + N - .1*( EM + ET + EW + ER + EF + ES + EN); [MON] M + R + F + S + N >= 7 + EM; [TUE] M + T + F + S + N >= 6 + ET; [WED] M + T + W + S + N >= 19 + EW; [THU] M + T + W + R + N >= 16 + ER; [FRI] M + T + W + R + F >= 19 + EF; [SAT] T + W + R + F + S >= 10 + ES; [SUN] W + R + F + S + N >= 9 + EN; EM <= 1; ET <= 1; EW <= 1; ER <= 1; EF <= 1; ES <= 1; EN <= 1; END
Is this solution any better in some sense? Variable Value Reduced Cost M 8.000000 0.0000000 T 0.000000 0.0000000 W 11.000000 0.0000000 R 0.000000 0.7000000 F 0.000000 0.7000000 S 0.000000 0.0000000 N 0.000000 0.1000000 EM 1.000000 0.0000000 ET 1.000000 0.0000000 EW 0.000000 0.7000000 ER 1.000000 0.0000000 EF 0.000000 0.0000000 ES 1.000000 0.0000000 EN 1.000000 0.0000000
Row Slack or Surplus Dual Price 1 18.500000 1.0000000 MON 0.000000 -0.1000000 TUE 1.000000 0.0000000 WED 0.000000 -0.8000000 THU 2.000000 0.0000000 FRI 0.000000 -0.1000000 SAT 0.000000 -0.1000000 SUN 1.000000 0.0000000
Demand Planning, LINGO Version ! Demand planning, (mintendo); SETS: PERIOD: D, W, H, L, P, I, S, C, OV, PRICE; ENDSETS DATA: ! Base case(from Chopra & Meindl); HPU = .25; !Hours to produce one unit; HPM = 160; !Hours/period(month) per employee; HOV = 40; !Lim on Overtime hours/(employee*month); CRM = 12; !Cost of raw material/unit; CI = 4; !Cost of inventory/(unit*period); CS = 10; !Cost of stockout/(unit*period); CH = 3000;!Cost of hiring new employee; CL = 5000;!Cost of laying off an employee; CR = 15; !Cost of regular time/hour; CV = 22.5;!Cost of overtime/hour; CC = 18; !Cost per unit subcontracted; W0 = 300; !Starting workforce size; I0 = 50000;!Starting inventory, < 0 => shortage; PERIOD= JUL AUG SEP OCT NOV DEC; D = 100000 110000 130000 180000 250000 300000; PRICE= 50 50 50 50 50 50; ENDDATA
Demand Planning, continued ! Minimize sum of costs of raw materials + inventory + shortage + hiring +layoff +regular time +overtime +subcontracting; MAX = REVENUE - COST; COST = TRM + TIV + TS + THR + TLF + TRT + TOV + TCT; ! Compute cost components; TRM = @SUM( PERIOD(T): CRM*P(T)); TIV = @SUM( PERIOD(T): CI*I(T)); TS = @SUM( PERIOD(T): CS*S(T)); THR = @SUM( PERIOD(T): CH*H(T)); TLF = @SUM( PERIOD(T): CL*L(T)); TRT = @SUM( PERIOD(T): CR*HPM*W(T)); TOV = @SUM( PERIOD(T): CV*OV(T)); TCT = @SUM( PERIOD(T): CC*C(T)); REVENUE= @SUM( PERIOD(T): PRICE(T)*D(T));
Demand Planning, continued. ! Constraints for intermediate periods; @FOR (PERIOD(T)| T #GT# 1: !Workforce in T = workforce previous month + hires - layoffs; W(T) = W(T-1) + H(T) - L(T); !Beginning inventory + production + subcontracted production = demand + previous stockouts + inventory -current stockouts; I(T-1) + P(T) + C(T) = D(T) + S(T-1) + I(T) - S(T); P(T) <= (HPM*W(T) + OV(T))/HPU; OV(T) <= HOV*W(T); ); ! Initial conditions, first period; W(1) = W0 + H(1) - L(1); I0 + P(1) + C(1) = D(1) + I(1) - S(1); P(1) <= (HPM*W(1) + OV(1))/HPU; OV(1) <= HOV*W(1); ! Ending conditions; S(@SIZE(PERIOD)) = 0;