$TITLE  CAPITAL BUDGETING PROBLEM
$OFFUPPER
* This problem maximizes profit subject to resource constraints.
* The model is a linear programming model with inequality
* constraints (<= constraints) which define the upper bounds
* on the resources. Conflict and logical constraints are added.
* The optimal solution is a zero-one variable.
*
*  References: 
*              The model is taken from pg 367 in Magnanti et al text.
*

  SETS
       I   time periods / 1989 * 1995  /
       J   investments   / STOCKS, BONDS, GICS, GOLD, MORTGAGE, FARM/;

  PARAMETERS

       C(J)  contribution from the jth investment
         /    STOCKS        1.10
              BONDS         1.08    
              GICS          1.06 
              GOLD          1.03
              MORTGAGE      1.09
              FARM          1.15 /

       B(I)  funds made available (or withdrawn) in period i
         /    1989       800
              1990      350
              1991       60
              1992       -30
              1993       -25
              1994       -40
              1995       -40 / ;

  TABLE A(I,J)  net cash flow from investment j in period i
                        STOCKS   BONDS   GICS  GOLD   MORTGAGE   FARM
              1989       200      200     200   100     500       300
              1990       110      120     130   50      100       200
              1991        10       10      10   20       20        20
              1992       -10       20     -20  -20      -10        10
              1993       -30       10     -20  -20      -10         5
              1994       -10      -20     -10  -10      -20       -20
              1995       -10      -10     -10  -20      -20       -30 ;



  VARIABLES
       X(J)  0 or 1 indicating whether the jth investment is made or not
       Z       total investment return ;

  INTEGER VARIABLE X ;

  EQUATIONS
       COST        define objective function
       FUNDS(I)   observe fund limit at  period i 
*      CONFLICT   conflicting projects restriction
       LOGICAL    logical constraint on stocks and gics ;

  COST ..        Z  =E=  SUM(J, C(J)*X(J)) ;

  FUNDS(I) ..   SUM(J, A(I,J)*X(J))  =L=  B(I) ;

* CONFLICT ..   X('GOLD') +  X('MORTGAGE') =L= 1;

 LOGICAL ..      X('STOCKS') - X('GICS') =L= 0 ;


  MODEL  CAPITAL /ALL/ ;

  SOLVE CAPITAL USING MIP MAXIMIZING Z ;

  DISPLAY X.L, X.M ;
