Nonlinear Optimization Examples |
All the IML optimization algorithms converge toward local rather than global optima. The smallest local minimum of an objective function is called the global minimum, and the largest local maximum of an objective function is called the global maximum. Hence, the subroutines can occasionally fail to find the global optimum. Suppose you have the function , which has a local minimum at and a global minimum at the point .
The following statements use two calls of the NLPTR subroutine to minimize the preceding function. The first call specifies the initial point , and the second call specifies the initial point . The first call finds the local optimum , and the second call finds the global optimum .
proc iml; start F_GLOBAL(x); f=(3*x[1]**4-28*x[1]**3+84*x[1]**2-96*x[1]+64)/27 + x[2]**2; return(f); finish F_GLOBAL; xa = {.5 1.5}; xb = {3 -1}; optn = {0 2}; call nlptr(rca,xra,"F_GLOBAL",xa,optn); call nlptr(rcb,xrb,"F_GLOBAL",xb,optn); print xra xrb;
One way to find out whether the objective function has more than one local optimum is to run various optimizations with a pattern of different starting points.
For a more mathematical definition of optimality, refer to the Kuhn-Tucker theorem in standard optimization literature. Using rather nonmathematical language, a local minimizer satisfies the following conditions:
The iterative optimization algorithm terminates at the point , which should be in a small neighborhood (in terms of a user-specified termination criterion) of a local optimizer . If the point is located on one or more active boundary or general linear constraints, the local optimization conditions are valid only for the feasible region. That is,
Copyright © 2009 by SAS Institute Inc., Cary, NC, USA. All rights reserved.