[SciPy-user] ANN (numerical optimization): ALGENCAN have migrated from numeric to numpy
dmitrey
openopt@ukr....
Tue Sep 18 14:34:50 CDT 2007
fdu.xiaojf@gmail.com wrote:
> Hi dmitrey,
> dmitrey wrote:
> > you'd better contact ALGENCAN developers with the question.
> > Regards, D.
> >
>
> I'm trying to contact ALGENCAN developers.
>
> However, I have a question about openopt.
>
> I have tried the example at
> http://projects.scipy.org/scipy/scikits/browser/trunk/openopt/scikits/openopt/examples/nlp_1.py.
> Since I couldn't get ALGENCAN work now, I tried with lincher( I just
> commented the line "r = p.solve('ALGENCAN')" and uncommented "r =
> p.solve('lincher')" ).
>
> There are the only output:
>
> starting solver lincher (BSD license) with problem unnamed
> itn 0: Fk= 8596.39550577 maxResidual= 605859.237208
>
> And after that, python crashed :-(
> (I have install cvxopt0.9)
>
Because lincher just can't solve the example (see more details below). I
have added more accurate handling of the exception to svn, now it will
just inform "istop: -11 (failed to solve qp subproblem)"
Try to replace line 76
p.b = [7, 9, -825]
to
p.b = [7, 9, -800]
then it works.
Optionally, since objfun is not scaled to 1 (f_opt is ~ 100), it's
better to set p.funtol to something greater then default 1e-6, automatic
scaling is not implemented properly yet.
Currently lincher requires QP solver, and the only one connected is
CVXOPT one. And I'm not fond of the one, it often fails to solve a
problem even with single constraint (when QP certainly has solution).
Seems like automatic scaling is not used there. Also, cvxopt lp solver
yields solution with precision ~ 1e-8...2e-8, while lp_solve and glpk -
to 1e-12. I guess same to qp solver, while solution of subproblem is
required to be ~2 orders more precise.
Now I'm trying either remove dependence on QP solver or write my own
one, that will be much more appropriate.
However, for users installing ALGENCAN is much more recommended, since
it is developed during years by a big team (vs lincher that had been
written during 1-2 months by a gsoc student) and sometimes the solver
works better than IPOPT, see papers from their website:
http://www.ime.usp.br/~egbirgin/tango/publications.php#selected.
It's very nice that ALGENCAN is free, because equivalent NLP solvers
cost 5...30 K$, see for example
http://tomopt.com/tomlab/products/prices/commercial.php.
As for lincher, for nearest future it's appropriate for small-scale
cases that are usually used for implementing objfunc,constraints and
their derivatives (it's convenient using p.check.df=1, same to dc and
dh), while system administrator tries to install ALGENCAN and/or other
solvers. I chose the alg implemented in lincher because it allows to
handle both eq and ineq non-lin constraints, and handles non-convex
funcs rather good. I intend to enhance the one from time to time,
especially if a new income(s) will be obtained (GSoC is over and now I
spend most of time to other tasks).
D.
More information about the SciPy-user
mailing list