2009-12-30 8 views
19

Ich bin auf der Suche nach einer C++ - Bibliothek, und ich habe mit konvexen Ziel- und Beschränkungsfunktionen zu tun.Was ist eine gute konvexe Optimierungsbibliothek?

+4

Wo haben Sie es zuletzt gesehen? –

+0

Die meisten LP-Solver haben ihre eigene Art, Problemsätze zu definieren. Programmatische Schnittstellen dafür ist meist Zuckerlack. –

+0

Ich benutze cvxopt, und zur Installation habe ich gerade die vorkompilierten Bibliotheken von http://www.lfd.uci.edu/~gohlke/pythonlibs/#cvxopt heruntergeladen, dann pip install (heruntergeladenes Rad), dann sicher gestellt zu importieren vor Gebrauch numpy. – Phylliida

Antwort

12

Ich vermute, Ihr Problem ist nicht linear. Wo ich arbeite, verwenden wir SNOPT, Ipopt und einen anderen proprietären Löser (nicht zum Verkauf). Wir haben auch gute Dinge über Knitro ausprobiert und gehört.

Solange Ihr Problem konvex ist, funktionieren alle diese Löser gut.

Sie alle haben ihre eigene API, aber alle fragen nach denselben Informationen: Werte, erste und zweite Ableitung.

1

Soweit ich weiß, ist der CPLEX Solver der beste konvexe Optimierungslöser. Es ist der Stand der Technik in LP-Lösern. Ist konvexe Optimierung wirklich gut. Während ich danach suche, sehe ich jetzt die IBM-Software. Sie können es hier finden: http://www-01.ibm.com/software/integration/optimization/cplex/

+0

Sie können andere Open-Source-Solver und ihre Leistungsbenchmarks hier finden: http://plato.asu.edu/ftp/lpfree.html Vergessen Sie auch nicht, http://code.msdn.microsoft.com/solverfoundation –

+0

zu überprüfen Linear bedeutet konvex, nicht umgekehrt. –

+0

cplex löst linear oder quadratisch bedingte konvexe Probleme. Es ist sehr schnell, aber es behandelt keine allgemeinen konvexen Probleme. –

4

Angenommen, Ihre Probleme sind nichtlinear, können Sie frei und Open-Source OPT++, erhältlich von Sandia Lab. Ich habe es in einem Projekt in C++ verwendet und es war einfach zu bedienen und funktionierte gut.

1

Sie können GSL (GNU Scientific Library) mit the packageNLopt verwenden, die ein nichtlineare Optimierungspaket mit unbeschränktem ist, gebunden mit beschränkten und allgemeinen nichtlineare Ungleichungsrestriktionen.

+0

Zwei Kommentare: Erstens, was meinst du, dass Sie GSL und NLOpt zusammen verwenden können (GSL mit NLOpt)? Sie scheinen getrennte Projekte zu sein. Sie haben den gleichen Geist, aber sie sind unabhängig. Zweitens empfiehlt der Autor von NLOpt nicht, NLOpt für konvexe Probleme von der Webseite zu verwenden: "NLopt enthält nur allgemeine Methoden, die keine Konvexität annehmen. Wenn Sie ein nachweisbar konvexes Problem haben, könnten Sie mit einem anderen Softwarepaket besser zurechtkommen wie das CVX-Paket von Stanford. " http://ab-initio.mit.edu/wiki/index.php/NLopt_Introduction#Global_versus_local_optimization – alfC