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

Reply via email to