Chapter Contents |
Previous |
Next |
Language Reference |
See "Nonlinear Optimization and Related Subroutines" for a listing of all NLP subroutines. See Chapter 11, "Nonlinear Optimization Examples," for a description of the inputs to and outputs of all NLP subroutines.
The Nelder-Mead simplex method is one of the subroutines that can solve optimization problems with nonlinear constraints. It does not use any derivatives, and it does not assume that the objective function has continuous derivatives. However, the objective function must be continuous. The NLPNMS technique uses a large number of function calls, and it may be unable to generate precise results when n>40.
The NLPNMS subroutine uses the following simplex algorithms:
The original Nelder-Mead algorithm cannot be used for general linear or nonlinear constraints, but in the unconstrained or boundary-constrained cases, it can be faster. It changes the shape of the simplex by adapting the nonlinearities of the objective function; this contributes to an increased speed of convergence.
For more information on the special sets of termination criteria used by the NLPNMS algorithms, see "Termination Criteria"
In addition to the standard iteration history, the NLPNMS subroutine prints the following information. For unconstrained or boundary-constrained problems, the subroutine also prints
The following code uses the NLPNMS call to solve the Rosen-Suzuki problem (see "Rosen-Suzuki Problem" ), which has three nonlinear constraints:
proc iml; start F_HS43(x); f = x*x` + x[3]*x[3] - 5*(x[1] + x[2]) - 21*x[3] + 7*x[4]; return(f); finish F_HS43; start C_HS43(x); c = j(3,1,0.); c[1] = 8 - x*x` - x[1] + x[2] - x[3] + x[4]; c[2] = 10 - x*x` - x[2]*x[2] - x[4]*x[4] + x[1] + x[4]; c[3] = 5 - 2.*x[1]*x[1] - x[2]*x[2] - x[3]*x[3] - 2.*x[1] + x[2] + x[4]; return(c); finish C_HS43; x = j(1,4,1); optn= j(1,11,.); optn[2]= 3; optn[10]= 3; optn[11]=0; call nlpnms(rc,xres,"F_HS43",x,optn,,,,,"C_HS43");
Part of the output produced by the preceding code is shown in Figure 17.6.
Optimization Start Parameter Estimates N Parameter Estimate 1 X1 1.000000 2 X2 1.000000 3 X3 1.000000 4 X4 1.000000 Value of Objective Function = -19 Values of Nonlinear Constraints Constraint Residual [ 1 ] 4.0000 [ 2 ] 6.0000 [ 3 ] 1.0000 Nelder-Mead Simplex Optimization COBYLA Algorithm by M.J.D. Powell (1992) Minimum Iterations 0 Maximum Iterations 1000 Maximum Function Calls 3000 Iterations Reducing Constraint Violation 0 ABSFCONV Function Criterion 0 FCONV Function Criterion 2.220446E-16 FCONV2 Function Criterion 1E-6 FSIZE Parameter 0 ABSXCONV Parameter Change Criterion 0.0001 XCONV Parameter Change Criterion 0 XSIZE Parameter 0 ABSCONV Function Criterion -1.34078E154 Initial Simplex Size (INSTEP) 0.5 Singularity Tolerance (SINGULAR) 1E-8 Nelder-Mead Simplex Optimization COBYLA Algorithm by M.J.D. Powell (1992) Parameter Estimates 4 Nonlinear Constraints 3 Optimization Start Objective Function -29.5 Maximum Constraint Violation 4.5 Maximum Function Objective Constraint Iter Restarts Calls Function Violation 1 0 12 -52.80342 4.3411 2 0 17 -39.51475 0.0227 3 0 53 -44.02098 0.00949 4 0 62 -44.00214 0.000833 5 0 72 -44.00009 0.000033 6 0 79 -44.00000 1.783E-6 7 0 90 -44.00000 1.363E-7 8 0 94 -44.00000 1.543E-8 Between Actual Merit and Merit Function Predicted Iter Function Change Change 1 -42.3031 12.803 1.000 2 -39.3797 -2.923 0.250 3 -43.9727 4.593 0.0625 4 -43.9977 0.0249 0.0156 5 -43.9999 0.00226 0.0039 6 -44.0000 0.00007 0.0010 7 -44.0000 1.74E-6 0.0002 8 -44.0000 5.33E-7 0.0001 Optimization Results Iterations 8 Function Calls 95 Restarts 0 Objective Function -44.00000003 Maximum Constraint Violation 1.543059E-8 Merit Function -43.99999999 Actual Over Pred Change 0.0001 ABSXCONV convergence criterion satisfied. WARNING: The point x is feasible only at the LCEPSILON= 1E-7 range. Optimization Results Parameter Estimates N Parameter Estimate 1 X1 -0.000034167 2 X2 1.000004 3 X3 2.000023 4 X4 -0.999971 Value of Objective Function = -44.00000003 Values of Nonlinear Constraints Constraint Residual [ 1 ] -1.54E-8 *?* [ 2 ] 1.0000 [ 3 ] -1.5E-8 *?*
Figure 17.6: Iteration History for the NLPNMS Subroutine
Chapter Contents |
Previous |
Next |
Top |
Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.