Previous Page | Next Page

The OPTLP Procedure

Example 17.2 Using the Interior Point Solver

You can also solve the oil refinery problem described in Example 17.1 by using the interior point solver. You can create the input data set from an external MPS-format flat file by using the SAS macro %MPS2SASD or SAS DATA step code, both of which are described in Getting Started: OPTLP Procedure. You can use the following SAS code to solve the problem:

proc optlp data=ex1 
  objsense  = max 
  solver    = ii 
  primalout = ex1ipout 
  dualout   = ex1idout
  printfreq = 1;
run;

The optimal solution is displayed in Output 17.2.1.

Output 17.2.1 Interior Point Solver: Primal Solution Output
The OPTLP Procedure
Primal Solution

Obs Objective Function ID RHS ID Variable
Name
Variable
Type
Objective
Coefficient
Lower
Bound
Upper Bound Variable Value Variable
Status
Reduced
Cost
1 profit   a_l D -175 0 110 110.000   .
2 profit   a_h D -165 0 165 0.000   .
3 profit   br D -205 0 80 80.000   .
4 profit   na_l N 0 0 1.7977E308 7.450   .
5 profit   na_i N 0 0 1.7977E308 21.800   .
6 profit   h_o N 0 0 1.7977E308 77.300   .
7 profit   j_1 N 350 0 1.7977E308 72.667   .
8 profit   j_2 N 350 0 1.7977E308 33.042   .

The iteration log is displayed in Output 17.2.2.

Output 17.2.2 Log: Solution Progress
The OPTLP Procedure

line
 
 
NOTE: The problem EX1 has 8 variables (0 free, 0 fixed).                        
NOTE: The problem has 6 constraints (3 LE, 3 EQ, 0 GE, 0 range).                
NOTE: The problem has 19 constraint coefficients.                               
WARNING: The objective sense has been changed to maximization.                  
NOTE: The OPTLP presolver value AUTOMATIC is applied.                           
NOTE: The OPTLP presolver removed 3 variables and 3 constraints.                
NOTE: The OPTLP presolver removed 6 constraint coefficients.                    
NOTE: The presolved problem has 5 variables, 3 constraints, and 13 constraint   
      coefficients.                                                             
NOTE: This is an experimental version of the ITERATIVE INTERIOR solver.         
NOTE: The ITERATIVE INTERIOR solver is called.                                  
                                           Primal        Bound         Dual     
      Iter   Complement  Duality Gap       Infeas       Infeas       Infeas     
         0    45.748014     1.785339    10.241641     0.136179     0.277456     
         1     7.482375     2.537583     1.288997     0.017139     0.053374     
         2     6.321287     0.509050     1.142522     0.015192     0.050980     
         3     1.571932     0.127320     0.011425     0.000152     0.010973     
         4     1.260841     0.078028     0.008971     0.000119     0.007122     
         5     0.026156     0.000361     0.000101  0.000001344     0.000205     
         6     0.000262  0.000003629  0.000001012 1.3459193E-8  0.000002052     
         7  0.000002617 3.6291376E-8 1.0122347E-8 1.345919E-10 2.0517479E-8     
         8            0 1.701138E-15 5.644593E-15            0 1.407423E-17     
NOTE: Optimal.                                                                  
NOTE: Objective = 1347.91667.                                                   
NOTE: The data set WORK.EX1IPOUT has 8 observations and 10 variables.           
NOTE: The data set WORK.EX1IDOUT has 6 observations and 10 variables.           
 
 

Previous Page | Next Page | Top of Page