Steven G. Johnson wrote:
On Nov 9, 2010, at 1:47 PM, Julius Ziegler wrote:
Never mind, I had a signed-ned bug in the code that was setting up the constraints, so none where defined in the case that I reported! It works perfectly now, even when initialising x from outside the solution set!


I'm glad it works for you. The algorithms with nonlinear constraints all attempt to work even if you have a starting point that violates the constraints (is "infeasible").

However, I should point out that local optimization algorithms (like SLSQP, MMA, and COBYLA) can only guarantee convergence to a local optimum if you give a feasible starting point (one that satisfies the constraints). The reason is that you can construct nonlinear problems where finding a feasible point in the first place requires global optimization.

Thanks for the additional information, Steven. I wonder how NLOPT decides on how "hard" to try on solving the constraints? I had set up some problems with difficult constraints and initialisation far inside of the infeasible set. NLOPT (I am using SQP or AUGLAG/LBFGS for most of the time) then occasionally fails with a generic "std::runtime_error, what(): nlopt failure" exception. How does the algorithm know (or guess) that further iterations won't bring it into the feasible set? Is there a way to set up the termination criteria that makes the algorithm try harder?

Thanks for NLOPT, I think its one of the most important scientific packages in OpenSource.

Julius




_______________________________________________
NLopt-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/nlopt-discuss

Reply via email to