MPL Model Library MPL Model Library Save-It Company, Example 3.4-4, Hillier and Lieberman { Exmpl_3.4-4_SaveItComp.mpl } { Hillier and Lieberman, Introduction to Operations Research, 7th ed. } { Chapter 3.4, Example 4, Blending Material, Size: 19x12, Page 53 } TITLE SaveItCompany; INDEX grade := (A, B, C); material := 1..4; GradeMat[grade,material] := (A,1, A,2, A,3, A,4, B,1, B,2, B,4, C,1); DATA MinMixSpecs[grade,material] := [A, 1, 0%, A, 2, 40%, A, 3, 0%, A, 4, 20%, B, 1, 0%, B, 2, 10%, B, 4, 10%, C, 1, 0%]; MaxMixSpecs[grade,material] := [A, 1, 30%, A, 2, 0%, A, 3, 50%, A, 4, 20%, B, 1, 50%, B, 2, 0%, B, 4, 10%, C, 1, 70%]; AmalgamationCost[grade] := (3.00, 2.50, 2.00); SellingPrice[grade] := (8.50, 7.00, 5.50); MaterialAvail[material] := (3000, 2000, 4000, 1000); TreatmentCost[material] := (3.00, 6.00, 4.00, 5.00); MinimumTreated := 0.5; TreatmentCashAvail := 30000; VARIABLES MixMaterial[grade, material] -> ""; MACROS TotalRevenues = SUM(grade, material: SellingPrice * MixMaterial); TotalAmalCost = SUM(grade, material: AmalgamationCost * MixMaterial); MODEL MAX TotalProfit = TotalRevenues - TotalAmalCost; SUBJECT TO MinMixtureSpecs[grade, material] WHERE (MinMixSpecs > 0) -> MinMix: MixMaterial >= MinMixSpecs * SUM(material: MixMaterial); MaxMixtureSpecs[grade, material] WHERE (MaxMixSpecs > 0) -> MaxMix: MixMaterial <= MaxMixSpecs * SUM(material: MixMaterial); MaterialLimit[material] -> MatLim: SUM(grade: MixMaterial) <= MaterialAvail; ReqAmountTreated[material] -> ReqTr: SUM(grade: MixMaterial) >= MinimumTreated * MaterialAvail; TreatCostRestrict -> TreatCst: SUM(grade, material: TreatmentCost * MixMaterial) = TreatmentCashAvail; END Return to MPL Model Library