2010-11-26 12 views
1

Ich möchte die Methode kennen, quadratische Programmierung mit Computer (nicht von Hand) zu lösen. Jedes mathematische Material, das ich lesen kann? Vielen Dank!Quadratische Programmierung lösen

+3

Ich nehme an, Sie sprechen über [eine bestimmte Art von (mathematischen) Optimierungsproblem] (http://en.wikipedia.org/wiki/Quadratic_programming) ... –

+0

Ja. Der rechnerische Weg, um dieses mathematische Problem zu lösen – franziga

+0

Ich habe keine Ahnung von diesem Zeug, aber ein Blick Klick führte zu [Wikipedia Artikel] (https://secure.wikimedia.org/wikipedia/en/wiki/Sequential_quadratic_programming), die erwähnt mehrere Pakete. –

Antwort

1

Sie möchten ein Black-Box-Softwarepaket verwenden. Es ist notorisch schwierig, einen robusten QP-Solver zu implementieren.

Sie haben nicht erwähnt, welche Sprache Sie verwenden, aber wenn es C++ ist, ist QuadProg ++ leicht und frei.

+0

Wenn es wirklich schwierig ist, dann denke ich, dass ich wirklich Paket stattdessen verwenden muss. Ich benutze .NET und ich hoffe, dass es eine freie Bibliothek gibt. – franziga

1

Es kann eine Art von internen Punktmethoden verwendet werden. Oft ist das QP-Problem sehr speziell und es ist möglich, weniger allgemeine Methoden zu verwenden, wie zum Beispiel Platts Algorithmus für QP, der in SVM auftritt.

+0

Danke. Eigentlich habe ich ein Stück Code (schlecht geschrieben von einem Nicht-Informatik-Studenten), ich sah, dass er einige SVD- und LU-Operationen verwendete, aber ich kann kein vollständiges Bild bekommen. – franziga

1

Wenn der Code kurz ist und SVD und LU verwendet, ist es wahrscheinlich ein einfacher Löser für Probleme mit nur Gleichheitsbedingungen oder ohne Einschränkungen. QP mit Ungleichheitsbedingungen kann mit Tools wie Quadprog (Matlab), Quadprog ++ (C++), Mosek (Matlab und C++) gelöst werden. C++ - Bibliotheken können in der .net-Sprache verwendet werden.

0

Die Antwort hängt stark von der Größe Ihres Problems und der Konvexität der quadratischen Funktionen ab. Wenn Ihre Probleme konvex sind und Sie Python verwenden möchten, können Sie cvxmod für free verwenden. Für mathematisches Material gibt es auch das konvexe Optimierungsbuch, freely available. Für nicht-konvexe Probleme wird das Paket IPopt aus dem Münz- oder Projekt arbeiten, um lokal optimale Lösungen zu finden.

Verwandte Themen