Frage

Ist es eine open-source-alternative zu MATLAB ist fmincon Funktion für die eingeschränkte lineare Optimierung?Ich bin umschreiben ein MATLAB-Programm, um die Verwendung von Python / NumPy / SciPy und dies ist die einzige Funktion, die ich gefunden habe, ein äquivalent zur.Ein NumPy-basierte Lösung wäre ideal, aber jede Sprache tut.

War es hilfreich?

Lösung

Ist Ihr problem konvex?Linear?Non-linear?Ich Stimme zu, dass SciPy.optimieren, wird wahrscheinlich die Arbeit erledigen, aber fmincon ist eine Art bazooka für die Lösung von Optimierungsproblemen, und Sie werden besser, wenn Sie können, beschränken Sie es auf eine der Kategorien unten (in steigendem Schwierigkeitsgrad zu lösen effizient)

Lineares Programm (LP) Quadratisches Programm (QP) Konvex-Quadratisch-Constrained Quadratic Program (QCQP) Second Order Cone Program (SOCP) Semidefinite Program (SDP) Nicht-Lineare, Konvexe Problem Nicht-Konvexes Problem

Es gibt auch combinatoric Probleme wie Mixed-Integer Linear Programs (MILP), aber Sie hat nicht erwähnt, jede Art von Vollständigkeit Einschränkungen, es genügt zu sagen, dass Sie fallen in eine andere Klasse von Problemen.

Die CVXOpt Paket wird von großem nutzen für Sie, wenn Ihre problem, ist konvex.

Wenn Ihr problem nicht konvex, Sie müssen wählen Sie zwischen der Suche nach einem lokalen Lösung oder globalen Lösung.Viele konvexe Löser 'Art' work in a non-convex domain.Finden eine gute Näherung an die Globale Lösung würde erfordern irgendeine form Simulated Annealing oder Genetische Algorithmus.Finden Sie die Globale Lösung erfordert eine Aufzählung aller lokalen Lösungen oder einer kombinatorischen Strategie wie Branch-and-Bound.

Andere Tipps

Python-Optimierungs-software:

Die open-source-Python-Paket,SciPy, hat eine ziemlich große Reihe von Optimierungs-Routinen, einschließlich einiger für multivariable Probleme mit Einschränkungen (was fmincon tut, glaube ich).Sobald Sie SciPy installiert haben geben Sie Folgendes an der Python-Eingabeaufforderung

Hilfe(scipy.optimieren)

Das resultierende Dokument ist sehr umfangreich und umfasst die folgenden, die ich glauben, Sie könnten von Interesse für Sie sein.

   Constrained Optimizers (multivariate)

   fmin_l_bfgs_b -- Zhu, Byrd, and Nocedal's L-BFGS-B constrained optimizer
                      (if you use this please quote their papers -- see help)

   fmin_tnc      -- Truncated Newton Code originally written by Stephen Nash and
                      adapted to C by Jean-Sebastien Roy.

   fmin_cobyla   -- Constrained Optimization BY Linear Approximation

GNU Octave ist ein weiteres MATLAB-Klon, der vielleicht haben, was Sie brauchen.

Für die numerische Optimierung in Python können Sie einen Blick auf OpenOpt Löser:

http://openopt.org/NLP

http://openopt.org/Problems

Haben Sie einen Blick auf http://www.aemdesign.com/downloadfsqp.htm.

Dort finden Sie C-code, bietet die gleiche Funktionalität wie fmincon.(Aber mit einem anderen Algorithmus.Sie können das Handbuch Lesen, wenn Sie interessiert sind in die details.)

Es ist open source, aber nicht unter der GPL.

Es gibt ein Programm namens SciLab das ist eine MATLAB-Klon.

Ich habe nicht verwendet, aber es ist open source und kann haben die Funktion, die Sie suchen.

Ich weiß nicht, ob es ist vorhanden, aber es gibt eine python-distribution, genannt Enthought das haben könnte, was Sie suchen.Es wurde speziell für die Analyse der Daten hat über 60 zusätzliche Bibliotheken.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top