MPL Model Library MPL Model Library Crashing, Example 10.5-1, Hillier and Lieberman { Exmpl10.5-1_Crashing.mpl } { Hillier and Lieberman, Introduction to Operations Research, 7th ed. } { Chapter 10.5, Example 1, Crashing, Size: 18x29, Page 494 } TITLE CriticalPath; INDEX act := (A,B,C,D,E,F,G,H,I,J,K,L,M,N); act2 := act; Path[act,act2] := (A,B, B,C, C,D, C,E, C,I, D,G, E,F, E,H, F,J, G,H, H,M, I,J, J,K, J,L, K,N, L,N) DATA NormalTime[act] := (2,4,10,6,4,5,7,9,7,8,4,5,2,6); CrashTime[act] := (1,2,7,4,3,3,4,6,5,6,3,3,1,3); NormalCost[act] := 1000 (180, 320, 620, 260, 410, 180, 900, 200, 210, 430, 160, 250, 100, 330); CrashCost[act] := 1000 (280, 420, 860, 340, 570, 260, 1020, 380, 270, 490, 200, 350, 200, 510); MaxReduce[act] := NormalTime - CrashTime; CostWeekSaved[act] := CrashCost/MaxReduce - NormalCost/MaxReduce; VARIABLES StartTime[act] -> ""; Finished ReducedTime[act] -> "r" MODEL MIN TotalCost = SUM(act: NormalCost) + SUM(act: CostWeekSaved * ReducedTime); SUBJECT TO SeqRelation[act,act2 IN Path]: StartTime[act] + NormalTime[act] - ReducedTime[act] <= StartTime[act:=act2]; StartTime[M] + NormalTime[M] - ReducedTime[M] <= Finished; StartTime[N] + NormalTime[N] - ReducedTime[N] <= Finished; BOUNDS ReducedTime <= MaxReduce; Finished <= 40; END Return to MPL Model Library