Steven G. Johnson <stevenj.mit@...> writes:
> To force it to take smaller steps in the beginning, you have to hack
> the mma/mma.c code at the moment. Edit the lines:
>
> for (j = 0; j < n; ++j) {
> if (nlopt_isinf(ub[j]) || nlopt_isinf(lb[j]))
> sigma[j] = 1.0; /* arbitrary default */
> else
> sigma[j] = 0.5 * (ub[j] - lb[j]);
> }
> rho = 1.0;
> for (i = 0; i < m; ++i) {
> rhoc[i] = 1.0;
> dual_lb[i] = y[i] = 0.0;
> dual_ub[i] = HUGE_VAL;
> }
>
> to either make rho and rhoc[i] bigger than 1.0 (try 10, 100, ...) or
> to make sigma[j] smaller. Either of these will cause it to take
> smaller initial steps.
>
> Probably, I should consider making MMA use the initial_stepsize
> setting in order to choose the initial trust-region size, so that you
> can change it without modifying the code.
>
> Steven
>
>
Hello,
I have run into similar problems with the SLSQP routine. Would you know a
similar quick fix?
The above mentioned modification certainly solved the MMA issue in my case, but
going through the slsqp code, I am finding it hard to find the equivalent code.
Regards,
_______________________________________________
NLopt-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/nlopt-discuss