| The Interior Point Nonlinear Programming Solver -- Experimental | 
Getting Started  
Consider the following simple example of a nonlinear optimization problem:
 
 
 
 The problem consists of a quadratic objective function, a linear equality, and a nonlinear inequality constraint. 
 We are interested in finding a local minimum, starting from the point 

. 
 To achieve this, we write the following SAS code:
 
    proc optmodel;
       var x{1..3} >= 0;
       minimize obj = ( x[1] + 3*x[2] + x[3] )**2 + 4*(x[1] - x[2])**2;
    
       con constr1: sum{i in 1..3}x[i] = 1;
       con constr2: 6*x[2] + 4*x[3] - x[1]**3 -3 >= 0;
    
       /* starting point */
       x[1] = 0.1;
       x[2] = 0.7;
       x[3] = 0.2;
    
       solve with IPNLP;
       print x;
    quit;
 
The SAS output displays a detailed summary of the problem, together with the status of the solver 
 at termination, the total number of iterations required, and the value of the objective function at the local minimum. 
 The summary and the optimal solution are shown in Output 7.1. 
 
| 
The OPTMODEL Procedure 
 
 
| Minimization |  
| obj |  
| Quadratic |  
|  |  
| 3 |  
| 0 |  
| 3 |  
| 0 |  
| 0 |  
| 0 |  
|  |  
| 2 |  
| 0 |  
| 1 |  
| 0 |  
| 0 |  
| 0 |  
| 0 |  
| 1 |  
| 0 |  
 
 The OPTMODEL Procedure 
 
 
| IPNLP |  
| obj |  
| Optimal |  
| 1.0000053879 |  
| 21 |  
|  |  
| 2.810568E-10 |  
| 7.8706805E-7 |  
 
| 0.00071696 |  
| 0.00000083 |  
| 0.99928221 |  | 
Figure 7.1: Problem Summary and the Optimal Solution 
The SAS log shown in Output 7.2 displays a brief summary of the problem being solved, followed by the iterations generated by the solver. 
 
| 
 
| NOTE: The problem has 3 variables (0 free, 0 fixed). |  
| NOTE: The problem has 1 linear constraints (0 LE, 1 EQ, 0 GE, 0 range). |  
| NOTE: The problem has 3 linear constraint coefficients. |  
| NOTE: The problem has 1 nonlinear constraints (0 LE, 0 EQ, 1 GE, 0 range). |  
| NOTE: This is an experimental version of the IPNLP solver. |  
| NOTE: Using analytic derivatives for objective. |  
| NOTE: Using analytic derivatives for nonlinear constraints. |  
| NOTE: The IPNLP solver is called. |  
| Objective                          Optimality |  
| Iter             Value     Infeasibility             Error |  
| 0       25.00000000        2.00000000       70.04792090 |  
| 1        8.25327051        1.60939368       35.77834471 |  
| 2        6.39960188        1.23484604       20.13229803 |  
| 3        2.04185087        0.07936183        3.03960094 |  
| 4        1.54274807        0.00397738        1.06189744 |  
| 5        1.28365293        0.00020216        0.43781371 |  
| 6        1.14816541        0.00004932        0.19807160 |  
| 7        1.07829315        0.00007323        0.11097627 |  
| 8        1.04065865        0.00007384        0.08008765 |  
| 9        1.02071978        0.00005144        0.02705360 |  
| 10        1.01052389        0.00001978        0.00810753 |  
| 11        1.00533187        0.00000746        0.00340008 |  
| 12        1.00269340        0.00000282        0.00146226 |  
| 13        1.00135663        0.00000104        0.00062682 |  
| 14        1.00068185   0.0000003814609        0.00027023 |  
| 15        1.00034218   0.0000001378457        0.00011693 |  
| 16        1.00017153   0.0000000494663        0.00005071 |  
| 17        1.00008592   0.0000000176688        0.00002202 |  
| 18        1.00004302   0.0000000062912        0.00000957 |  
| 19        1.00002153   0.0000000022353        0.00000416 |  
| 20        1.00001077   0.0000000007930        0.00000181 |  
| 21        1.00000539   0.0000000002811   0.0000007870680 |  
| NOTE: Converged. |  
| NOTE: Objective = 1.00000539. |  | 
Figure 7.2: Progress of the Algorithm as Shown in the Log
 
Copyright © 2008 by SAS Institute Inc., Cary, NC, USA. All rights reserved.