Near line 2044, the iteration limit for the line search (minor
iterations) is 10,
if (h1 <= h3 / ten || line > 10) {
This is too small for some of our problems. When I changed the 10 to 20
then things started working much better.
Is there a reason to limit the number of minor iterations? If too many
minor iterations are taken then eventually the step size will be 0 and
convergence criteria will be met, correct?
If we do need to limit the number of minor iterations then we need to
add a check that the function value is decreasing between major
iterations. For example, if I change the minor iteration limit from 10
to 4 then it is easy to find problems where the function value jumps
randomly up and down between major iterations. I believe the check would
go in around line 2612,
if (mode == -1 && feasible_cur) {
if (fprev < fcur) { // here
but I'm not sure which error code to return.
Looking forward to your guidance.
Thanks.
--
Joshua N. Pritikin
Department of Psychology
University of Virginia
485 McCormick Rd, Gilmer Hall Room 102
Charlottesville, VA 22904
http://people.virginia.edu/~jnp3bc
_______________________________________________
NLopt-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/nlopt-discuss