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