Chapter Contents |
Previous |
Next |
Nonlinear Optimization Examples |
The following statements use two calls of the NLPTR subroutine to minimize the preceding function. The first call specifies the initial point xa=(0.5,1.5), and the second call specifies the initial point xb=(3,1). The first call finds the local optimum x*=(1,0), and the second call finds the global optimum x*=(4,0).
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 a rather nonmathematical language, a local minimizer x* satisfies the following conditions:
The iterative optimization algorithm terminates at the point xt, which should be in a small neighborhood (in terms of a user-specified termination criterion) of a local optimizer x*. If the point xt 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,
Chapter Contents |
Previous |
Next |
Top |
Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.