Quadratischer Programm (QP) Solver, der nur von NumPy / SciPy abhängt?
Möchte ich die Schüler zum lösen eines quadratischen Programms in einer Aufgabe, ohne zusätzliche software installieren wie cvxopt etc. Gibt es eine python-Implementierung zur Verfügung, die hängt nur von NumPy/SciPy?
Kommentar zu dem Problem
Wenn Sie könnten einige links auf, was Sie bedeuten, durch einen quadratischen Programm und vielleicht ein Beispiel oder zwei, es würde mehr Menschen diese Frage beantworten. Bitte aktualisieren Sie Ihre Frage, denn ich bin auch nicht sicher was du meinst mit QP und ich weiß, wie schreiben Sie Ihr Programm, obwohl ich nicht weiß, was es benötigt. Danke!!!
Sorry für die nicht zu klären. QP ist eine Besondere lineare algebra-problem, siehe Wikipedia (en.wikipedia.org/wiki/Quadratic_programming).
Ich finde es seltsam, dass eine Frage zu Fragen, für eine python implementiert QP-solver, dass nur richtet auf
numpy
/scipy
und nicht zusätzliche software wie cvxopt... hat eine Antwort, die empfiehlt, cvxopt
und eine andere (die akzeptierte Antwort) das empfiehlt, was im wesentlichen unbetreut python-Bindungen auf eine andere Sprache (d.h. eine nicht-python-Implementierung). InformationsquelleAutor der Frage flxb | 2013-06-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lief ich auf eine gute Lösung und wollte da raus. Es ist eine python-Implementierung von LOQO in der ELEFANT machine learning toolkit von NICTA (http://elefant.forge.nicta.com.au wie dieses posting). Haben Sie einen Blick auf Optimierung.intpointsolver. Dieser codiert wurde von Alex Smola, und ich habe eine C-version des gleichen Codes mit großem Erfolg.
InformationsquelleAutor der Antwort Tom Vacek
Ich bin nicht sehr vertraut mit quadratischer Programmierung, aber ich denke, Sie können lösen dieser Art von problem, nur mit
scipy.optimize
's constrained minimization-algorithmen. Hier ist ein Beispiel:Ausgabe:
InformationsquelleAutor der Antwort ali_m
Könnte dies eine späte Antwort, aber ich fand
CVXOPT
- http://cvxopt.org/ - wie die Häufig verwendete freie python-Bibliothek fürQuadratic Programming
. Es ist jedoch nicht einfach zu installieren, da es erfordert die installation von anderen Abhängigkeiten.InformationsquelleAutor der Antwort Curious
mystic
bietet eine Reine python-Implementierung der nicht-linearen/nicht-konvexe Optimierung-algorithmen mit erweiterten Einschränkungen der Funktionalität, die in der Regel nur gefunden in QP-Löser.mystic
bietet tatsächlich mehr robust Einschränkungen als die meisten QP-Löser. Allerdings, wenn Sie sind auf der Suche für die Optimierung Algorithmische Geschwindigkeit, dann das folgende ist nicht für Sie.mystic
ist nicht langsam, aber es ist reines python, im Gegensatz zu python-bindings zu C. Wenn Sie auf der Suche nach Flexibilität und QP Einschränkungen Funktionalität in einer nicht-linearen solver, dann sind Sie vielleicht interessiert.Dinge zu beachten ist, dass
mystic
kann allgemein gelten, LP, QP, und höher, um Gleichheits-und Ungleichheits-constraints gegeben-Optimierer, die nicht nur eine Besondere QP-solver. Zweitensmystic
verdauen können, die symbolische Mathematik, also die einfache Definition/Eingabe der constraints ist ein bisschen schöner als das arbeiten mit Matrizen und Ableitungen von Funktionen.mystic
hängtnumpy
zu, und verwendenscipy
wenn es installiert ist (jedochscipy
ist nicht erforderlich).mystic
nutztsympy
zu handhaben symbolischen Zwängen, aber es ist auch nicht erforderlich für die Optimierung im Allgemeinen.Ausgabe:
Bekommen
mystic
hier: https://github.com/uqfoundationInformationsquelleAutor der Antwort Mike McKerns