Solved
Contributor
Posts: 27

# termination criteria

Hello,

I am doing a quasi newton optimization method but I have a problem. The optimization stop before I find the global maximum.

I wonder if I could use a termination criterion of 1e-4 in order to stop the optimization after getting an objective function as small as I want and if it is possible, how to do it?

Here is my code

proc iml;

use a;

read all var _NUM_ into data;

close a;

reset storage = &lib..myfunctions;

parameters = j(3, 1, .) ;

parameters[1] = 1.1 ;

parameters[3]=0.5;

con = {-10  1E-9, 10 1}

opt = {1 4} ;

*Quasi-Newton Method ;

call NLPQN(rc, parameters, "function1", theta, opt, con);

quit ;

Thank you for helping

Accepted Solutions
Solution
‎11-28-2017 07:49 PM
SAS Super FREQ
Posts: 4,275

## Re: termination criteria

There are multiple termination criteria that you can use. The documentation provides details. Common criteria include absolute function convergence criterion (ABSTOL, controlled by tc[3]) and absolute gradient convergence criterion (ABSGTOL, controlled by tc[6]). There are also "relative" versions of these criteria.

To use the termination criterion, allocate a vector of missing values (which means "use default values") and override the element that you want to control. For example,

tc = repeat(.,1,12);
tc[3] = 1.e-4;

call NLPQN(rc, parameters, "function1", theta, opt, con) tc=tc;

All Replies
Solution
‎11-28-2017 07:49 PM
SAS Super FREQ
Posts: 4,275

## Re: termination criteria

There are multiple termination criteria that you can use. The documentation provides details. Common criteria include absolute function convergence criterion (ABSTOL, controlled by tc[3]) and absolute gradient convergence criterion (ABSGTOL, controlled by tc[6]). There are also "relative" versions of these criteria.

To use the termination criterion, allocate a vector of missing values (which means "use default values") and override the element that you want to control. For example,

tc = repeat(.,1,12);
tc[3] = 1.e-4;

call NLPQN(rc, parameters, "function1", theta, opt, con) tc=tc;

☑ This topic is solved.