This post has NOT been accepted by the mailing list yet.
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)
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/_trustregion_ncg.py", 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 ?