Maximal Logo 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