Haverly's pooling problem


    {  Haverly.mpl  }

    {  GAMS Model Library, http://www.gams.com/modlib/libhtml/haverly.htm  }

    {  Haverly's pooling problem , Non Linear, Size: 9 x 12 }


TITLE
    Haverly;

OPTIONS
    Modeltype=Nonlinear

INDEX
    s := (A,B,C);
    f := (X,Y);
    i := (Pool,CrudeC);
    poolin[s] := (A,B);

DATA
    CostPrice[s] := ( 6,16,10);
    SulfurContent[s] := ( 3, 1, 2);
    SellPrice[f] := ( 9,15);
    ReqSulfur[f] := (2.5,1.5);
    Demand[f] := (100,200);


VARIABLES
    Cost;
    Income;
    Crude[s];
    Final[f];
    Stream[i,f];
    Q;


MODEL

    MAX Profit = Income - Cost;


SUBJECT TO

    Costdef: SUM(s: CostPrice * Crude) = Cost;

    Incomedef: SUM(f: SellPrice * Final) = Income;

    Blend[f]: SUM(i: Stream) = Final;

    PoolBal: SUM(s IN poolin: Crude) = SUM(f: Stream[i:=Pool]);

    CrudeCBal: SUM(f: Stream[i:=CrudeC]) = Crude[s:=C];

    PoolqualBal:
           SUM(s IN poolin: SulfurContent * Crude)
         =
           Q * SUM(f: Stream[i:=Pool]);

    BlendqualBal[f]:
           Q * Stream[i:=Pool] + SulfurContent[s:=C] * Stream[i:=CrudeC]
        <=
           ReqSulfur * SUM(i: Stream);

BOUNDS
    Final <= Demand;

END



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