Da eine meiner Antworten zitiert wurde, werde ich versuchen zu klären, warum ich vorgeschlagen habe, IPOPT anstelle von MINPACK zu verwenden.
Meine Einwände gegen die Verwendung von MINPACK haben nichts mit den von MINPACK verwendeten Algorithmen zu tun und auch nichts mit deren Implementierung. Mein hauptsächlicher Einwand ist, dass die Software aus dem Jahr 1980 stammt und zuletzt im Jahr 1999 aktualisiert wurde. Jorge Moré ist im Ruhestand. Ich bezweifle, dass er oder einer der anderen Autoren der Software den Überblick behalten und dass es kein Team von Leuten gibt, die ihn aktiv unterstützen. Die einzige Dokumentation, die ich in der Software finden kann, ist der ursprüngliche technische Argonne-Bericht von 1980, der von Jorge Moré und den anderen MINPACK-Autoren verfasst wurde. (Kapitel 1-3 finden Sie hier und Kapitel 4 finden Sie hier.) Nachdem ich den MINPACK-Quellcode durchsucht und die Dokumentation durchgesehen habe (die PDF-Dateien sind gescannte Bilder und können nicht durchsucht werden), werden keine Optionen zur Berücksichtigung von Einschränkungen angezeigt. Da das ursprüngliche Poster des nichtlinearen Problems der kleinsten Quadrate ein eingeschränktes nichtlineares Problem der kleinsten Quadrate lösen wollte, wird MINPACK dieses Problem nicht einmal lösen.
Wenn Sie sich die IPOPT-Mailingliste ansehen, geben einige Benutzer an, dass die Leistung des Pakets bei Problemen mit nichtlinearen kleinsten Quadraten (NLS) im Vergleich zu Levenberg-Marquardt-Algorithmen und spezielleren NLS-Algorithmen gemischt ist (siehe hier , hier und hier ). Die Leistung von IPOPT im Vergleich zu NLS-Algorithmen ist natürlich problemabhängig. Angesichts des Benutzer-Feedbacks scheint IPOPT eine vernünftige Empfehlung für NLS-Algorithmen zu sein.
Sie weisen jedoch darauf hin, dass NLS-Algorithmen untersucht werden sollten. Genau. Ich denke nur, dass ein Paket, das moderner als MINPACK ist, verwendet werden sollte, weil ich glaube, dass es eine bessere Leistung bringt, benutzerfreundlicher ist und unterstützt wird. Ceres scheint ein interessantes Kandidatenpaket zu sein, kann aber derzeit keine eingeschränkten Probleme bewältigen. TAOwürde auf Box-beschränkten Least-Squares-Problemen arbeiten, obwohl es nicht den klassischen Levenberg-Marquardt implementiert, sondern stattdessen einen ableitungsfreien Algorithmus implementiert. Ein ableitungsfreier Algorithmus würde wahrscheinlich für große Probleme gut funktionieren, aber ich würde ihn nicht für kleine Probleme verwenden. Ich konnte keine anderen Pakete finden, die großes Vertrauen in ihre Softwareentwicklung weckten. Zum Beispiel scheint GALAHAD auf den ersten Blick keine Versionskontrolle oder automatisierte Tests zu verwenden. MINPACK scheint diese Dinge auch nicht zu tun. Wenn Sie Erfahrung mit MINPACK haben oder Empfehlungen bezüglich besserer Software haben, bin ich ganz Ohr.
In Anbetracht dessen komme ich zurück zum Zitat meines Kommentars:
Jedes Gleichungssystem entspricht einem Optimierungsproblem, weshalb Newton-basierte Methoden in der Optimierung Newton-basierten Methoden zum Lösen nichtlinearer Gleichungssysteme sehr ähnlich sehen.
Ein besserer Kommentar hat wahrscheinlich folgende Auswirkungen:
Wenn wir ein System von Gleichungen mit n Unbekannten g ( x ) = 0 lösen wollen , können wir dies als Optimierungsproblem der kleinsten Quadrate formulieren. (Paraphrase des letzten Absatzes von S.102 der nichtlinearen Programmierung , 2. Auflage, von Dmitri Bertsekas.)nng(x)=0
Diese Aussage gilt auch für das Lösen von Gleichungssystemen unter Randbedingungen. Ich kenne keine Algorithmen, die als "Gleichungslöser" für den Fall gelten, dass die Variablen Einschränkungen unterliegen. Der mir bekannte Ansatz, der möglicherweise durch mehrere Semester Optimierungskurs und Forschung in einem Optimierungslabor beeinträchtigt wird, besteht darin, die Einschränkungen des Gleichungssystems in eine Optimierungsformulierung einzubeziehen. Wenn Sie versuchen würden, die Einschränkungen in einem Newton-Raphson-ähnlichen Schema zum Lösen von Gleichungen zu verwenden, hätten Sie wahrscheinlich eine projizierte Gradienten- oder eine projizierte Vertrauensbereichsmethode, ähnlich wie bei der eingeschränkten Optimierung.
Wenn ein gegebenes nichtlineares System die Optimalitätsbedingung erster Ordnung für ein Optimierungsproblem ist, können wir unter Verwendung dieser Informationen häufig einen robusteren Algorithmus erzeugen. Betrachten Sie zum Beispiel die Gleichung
Das hat eine einzigartige Lösung, aber viele Rootfinding-Methoden können am lokalen Minimum hängen bleiben.
Zusammenfassend haben wir mit einem Optimierungsproblem begonnen, das eine einzigartige Lösung hatte, mit der wir garantieren konnten, dass eine Methode gefunden wird. Wir haben es als nichtlineares Root-Finding-Problem umformuliert, das eine eindeutige Lösung hatte, die wir lokal identifizieren konnten, aber eine Root-Finding-Methode (wie Newton) könnte stagnieren, bevor sie erreicht wird. Anschließend formulierten wir das Root-Finding-Problem neu als Optimierungsproblem mit mehreren lokalen Lösungen (es kann keine lokale Kennzahl verwendet werden, um zu identifizieren, dass wir nicht am globalen Minimum sind).
Im Allgemeinen werden die verfügbaren Methoden und die damit verbundenen Konvergenzgarantien jedes Mal schwächer, wenn wir ein Problem von der Optimierung auf Rootfinding oder umgekehrt konvertieren. Die tatsächlichen Mechanismen der Methoden sind oft sehr ähnlich, sodass es möglich ist, viel Code zwischen nichtlinearen Lösern und der Optimierung wiederzuverwenden.
quelle