[Ipopt] how to select non linear solver

Wijekoon, Manusha manusha.wijekoon at citi.com
Tue Dec 19 06:28:59 EST 2017


Hi Antonello

I have already integrated with IPOPT in C++ by passing all the required information it needs including second derivatives.  Currently it is throwing an error saying the problem is not solvable, although clearly it is solvable. I initially thought this is a limitation of the solver MUMPS but now I understand this may not be the case. This may be due to some errors in the H matrix as it is quite complicated. I will do some more troubleshooting and see.

Any python related solvers will not work in my case as our app is written in C++ and we really don’t want to embed python interpreter inside nor talk to an external python process , but thank you for letting me know about those – I never knew they existed.

/Manusha


From: antonello.lobianco at gmail.com [mailto:antonello.lobianco at gmail.com] On Behalf Of Antonello Lobianco
Sent: 19 December 2017 10:48
To: Wijekoon, Manusha [ICG-IT] <mw99659 at imceu.eu.ssmb.com>
Cc: Herzog Raoul <Raoul.Herzog at heig-vd.ch>; Daniel Feenberg <feenberg at nber.org>; ipopt at list.coin-or.org
Subject: Re: [Ipopt] how to select non linear solver

I think you have a bit of confusion.
You posted on the "ipopt" mailing list.
"ipopt" is a solver engine for non linear problems. It is free and has, by itself, no limits (and, by the way, let you choose between different "linear solvers" for the linear part of solving a nonlinear problem.. let's call them "subsolvers". The default MUMPS is fine.)
Now, how do yo use IPOPT ?
You can use it trough the C++ interface. But "coding" a model in C++, taking care of multiple dimensions of your problem, passing IPOPT the first and second derivatives (or using automatic differentiation libraries - ADOL-C and ColPack in my case) is long and complex.
So you use IPOPT within an Algebric Modelling Language, that allows you to code your model in a simple equation-like style.
Two of the oldests AML - GAMS and AMPL- are commercial. Even to use IPOPT - by itself free- they ask you money.
Nowaday you have better alternatives, like Pyomo for Python or JuMP for Julia.
If you don't have "path dependency", e.g. having to work with someone that uses only GAMS or AMPL, go for them and you can use IPOPT totally for free (and use nice, easy to integrate languages).

Antonello




On 19 December 2017 at 10:01, Wijekoon, Manusha <manusha.wijekoon at citi.com<mailto:manusha.wijekoon at citi.com>> wrote:
Thanks Raoul,

I will try different solvers. However most of the solvers need licence for commercial use. This is OK as long as we can do an evaluation, but could not find any info on evaluation licences. I will keep on searching.

Thanks
Manusha



-----Original Message-----
From: Herzog Raoul [mailto:Raoul.Herzog at heig-vd.ch<mailto:Raoul.Herzog at heig-vd.ch>]
Sent: 18 December 2017 22:17
To: Daniel Feenberg <feenberg at nber.org<mailto:feenberg at nber.org>>; Wijekoon, Manusha [ICG-IT] <mw99659 at imceu.eu.ssmb.com<mailto:mw99659 at imceu.eu.ssmb.com>>
Cc: ipopt at list.coin-or.org<mailto:ipopt at list.coin-or.org>
Subject: RE: [Ipopt] how to select non linear solver

Hi,

The linear solvers (MUMPS, MA57, etc) are only involved in the search of the "Newton" direction, not in the subsequent line search.
The choice of the linear solver mostly affects computation time, e.g. if the Hessian matrix is sparse, in some (rare) cases the choice of the linear solver may also affect convergence.

--raoul

-----Message d'origine-----
De : Ipopt [mailto:ipopt-bounces at coin-or.org<mailto:ipopt-bounces at coin-or.org>] De la part de Daniel Feenberg Envoyé : Montag, 18. Dezember 2017 17:05 À : Wijekoon, Manusha <manusha.wijekoon at citi.com<mailto:manusha.wijekoon at citi.com>> Cc : ipopt at list.coin-or.org<mailto:ipopt at list.coin-or.org> Objet : Re: [Ipopt] how to select non linear solver



On Mon, 18 Dec 2017, Wijekoon, Manusha  wrote:

>
> Hi
>
>
>
> I am trying to tackle a non-linear optimization problem and current
> solver selected is MUMPS linear solver. I assume this solver cannot
> solve non-linear problems?

All(?) non-linear optimization packages alternate between a non-linear step that chooses a direction of improvement, and a linear step that selects a distance along that direction. IPOPT offers a choice of solvers for the linear step, but that doesn't mean it can't solve a non-linear problem. Pick one and go ahead.

daniel feenberg
NBER

_______________________________________________
Ipopt mailing list
Ipopt at list.coin-or.org<mailto:Ipopt at list.coin-or.org>
https://list.coin-or.org/mailman/listinfo/ipopt<https://urldefense.proofpoint.com/v2/url?u=https-3A__list.coin-2Dor.org_mailman_listinfo_ipopt&d=DwMFaQ&c=j-EkbjBYwkAB4f8ZbVn1Fw&r=3V6DSqhjAEmq5iy51r9vVgFw9iAHiTSNsZl3DKb4ONM&m=-mkh3TxGNRxSRh7UpwuTIaHjFhm2i2NOWKvP3cdHqF0&s=m0VBnL2-lyR8NNopH7SoHJwdhqEOINJYbcUrlQUaso4&e=>






--
Antonello Lobianco
AgroParisTech, Laboratoire d'Economie Forestière
14 Rue Girardet - 54000 Nancy, France
Tel: +33.383396865
Email, university: antonello.lobianco at inra.fr<mailto:antonello.lobianco at nancy.inra.fr>
Email, personal: antonello at lobianco.org<mailto:antonello at lobianco.org>
http://antonello.lobianco.org<https://urldefense.proofpoint.com/v2/url?u=http-3A__antonello.lobianco.org_&d=DwMFaQ&c=j-EkbjBYwkAB4f8ZbVn1Fw&r=3V6DSqhjAEmq5iy51r9vVgFw9iAHiTSNsZl3DKb4ONM&m=-mkh3TxGNRxSRh7UpwuTIaHjFhm2i2NOWKvP3cdHqF0&s=9ACzpNRkrywXIrzMGhPSphlUx9zJ1HoiHHekJlcNhao&e=>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20171219/c0793fbd/attachment-0001.html>


More information about the Ipopt mailing list