Save-It Company



   {  Exmpl3.4-4b_SaveItComp.mpl  }

   {  Hillier and Lieberman, Introduction to Operations Research, 9th ed.  }

   {  Chapter 3.4,  Example 4,  Blending Material,  Size: 26x19,  Page 51  }


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
    ProduceGrade[grade];
    MaterialUsed[material];
    MixMaterial[grade, material];

MACROS
    TotalRevenues  =  SUM(grade: SellingPrice * ProduceGrade);
    TotalAmalCost  =  SUM(grade: AmalgamationCost * ProduceGrade);

MODEL

    MAX TotalProfit = TotalRevenues - TotalAmalCost;

SUBJECT TO

    GradeProd[grade] :

        ProduceGrade  =  SUM(material: MixMaterial);


    MatUse[material] :

        MaterialUsed[material]  =  SUM(grade: MixMaterial);


    MinMixtureSpecs[grade, material] WHERE (MinMixSpecs) -> MinMix:

       MixMaterial  >=  MinMixSpecs * ProduceGrade;


    MaxMixtureSpecs[grade, material] WHERE (MaxMixSpecs) -> MaxMix:

       MixMaterial  <=  MaxMixSpecs * ProduceGrade;


    MaterialLimit[material] -> MatLim:

       MaterialUsed  <=  MaterialAvail;


    ReqAmountTreated[material] -> ReqTr:

        MaterialUsed  >=  MinimumTreated * MaterialAvail;


    TreatCostRestrict -> TreatCst:

        SUM(material: TreatmentCost * MaterialUsed)  =  TreatmentCashAvail;

END




Back To Top | Maximal Home Page | List of Models | Previous Page | Next Page