[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