Issue with minimize function, method trust-ncg

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

Issue with minimize function, method trust-ncg

This post has NOT been accepted by the mailing list yet.
Hello everyone

So far I understand the minimize function with method Trust-ncg , the "method specific" parameter "max_trust_radius" is the maximum value for a  new step optimization.
However, I experience a weird behaviour.
I work in my doctorate data and I have a code that invokes minimize function (with trust ncg method)
passing parameters
{'initial_trust_radius':0.1,'max_trust_radius':1,'eta':0.15,'gtol':1e-5,'disp': True}

I invoke minimize function as:
res = minimize(bbox, x0, method='trust-ncg',jac=bbox_der, hess=bbox_hess,options=opt_par)
bbox is a function to evaluate the objective function
x0 is the initial guess
bbox_der is the gradient function
bbox_hess hessian function
opt_par is the dictionary above with the parameters.

Bbox invokes simulation code and get the data.
Everything work well, but I got a weird issue.
The "x" vector contains 8 . I realize that one of the iterations, the last value is greater than 1.
Per the max_trust_radius, I think that it should be lesser that 1, but it is 1.0621612802208713e+00
The issue is that is causing problems because bbox can not receive the value greater than 1.

I also tried to found the code for scipy , as per the message error below, but there is no opt/local folder in my computer.
File "/opt/local/python/lib/python2.7/site-packages/scipy-0.16.0-py2.7-linux-x86_64.egg/scipy/optimize/", line 41, in _minimize_trust_ncg
I am tring to figure where is the scipy library.

But, my main concerns are:
- My understanding is that there is a bug in the scipy minimize code as the new value is greater than max_trust_radius .
- How can I manipulate or control the values to avoid that values became greater than 1?
- Do you suggest something to investigate the issue ?

Thanks in advance