Warum ist SQP für nichtlineare Programmierung besser als Augmented Lagrangian?


9

In dem technischen Bericht über Galahad [1] geben die Autoren im Zusammenhang mit allgemeinen nichtlinearen Programmierproblemen an:

Unserer Meinung nach gab es nie wirklich Zweifel daran, dass SQP-Methoden (Sequential Quadratic Programming) auf lange Sicht erfolgreicher sein würden [als Augmented Lagrangian-Methoden] ...

Was könnte die Grundlage für diesen Glauben sein? Gibt es theoretische Ergebnisse, die darauf hindeuten, dass SQP-Methoden schneller / zuverlässiger sein sollten als Augmented Lagrangian-Methoden?

[1] Galahad, eine Bibliothek threadsicherer Fortran 90-Pakete für die nichtlineare Optimierung in großem Maßstab von Gould, Orban und Toint

Antworten:


2

SQP-Methoden erfordern, dass das Ziel zweimal differenzierbar ist (vgl. Https://en.m.wikipedia.org/wiki/Sequential_quadratic_programming ), während Augmented Lagrangians auch dann arbeiten, wenn das Ziel nicht differenzierbar ist (daher ihr jüngstes Wiederaufleben in der Bildverarbeitungsgemeinschaft, vgl. Ftp: //arachne.math.ucla.edu/pub/camreport/cam09-05.pdf )

Ich weiß nichts über die Galahad-Software, aber wenn differenzierbare Optimierungsprobleme gelöst werden sollen, wird es wahrscheinlich viel besser sein, wenn eine Methode verwendet wird, mit der die Zielfunktion unterschieden werden kann.


Es ist nicht wahr, dass SQP doppelt differenzierbare Zielfunktionen erfordert. Sie können einfach eine Methode mit einer geringeren Konvergenzrate erhalten, wenn die Zielfunktion weniger differenzierbar ist, aber das ist genau das gleiche wie bei erweiterten Lagrange-Methoden.
Wolfgang Bangerth

2

In Bezug auf äußere Iterationen sollte SQP gewinnen, da es Informationen der zweiten Ableitung enthält, während dies bei erweiterten Lagrange-Methoden wie ADMM nicht der Fall ist.

Beachten Sie jedoch, dass bei jeder Iteration für diese Methoden ein lineares System gelöst werden muss. Um einen fairen Vergleich zu ermöglichen, müssen Sie berücksichtigen, wie einfach diese Systeme zu lösen sind.

Bei erweiterten Lagrange-Methoden (alternierend) löst jede Iteration, die Sie lösen, so etwas wie wobei ein Vorwärtsoperator direkt aus der bekannten Zielfunktion ist und normalerweise einfacher zu handhaben ist oder Voraussetzung, und ist der Strafparameter. (z. B. ist Ihr Problem , das einigen Regularisierungen und Einschränkungen unterliegt).

(ATA+ρI)x=b,
Aρminx||Axb||2

Für SQP-Methoden lösen Sie etwas wie wobei der Hessische (oder eine Annäherung davon) ist, der normalerweise nur implizit in Bezug auf seine Wirkung auf Vektoren verfügbar ist, und der Gradient ist. Das Hessische enthält nicht nur , sondern auch eine Kombination anderer Matrizen und Matrixinversen, die sich aus der Linearisierung der Randbedingungen und der Regularisierung ergeben.

Hx=g,
HgA

Das Vorkonditionieren von Hessen ist ein ziemlich kniffliges Geschäft und viel weniger erforscht als das Vorkonditionieren von Vorwärtsproblemen. Eine Standardmethode besteht darin, die hessische Inverse mit L-BFGS zu approximieren. Dies ist jedoch von begrenzter Wirksamkeit, wenn die hessische Inverse einen hohen Rang hat. Eine andere beliebte Methode besteht darin, den Hessischen als Summe einer niedrigrangigen Matrix plus einer leicht zu invertierenden Matrix zu approximieren, dies hat jedoch auch eine begrenzte Wirksamkeit bei schwierigen Problemen. Andere beliebte hessische Schätztechniken basieren auf spärlichen Näherungen, aber Kontinuumsprobleme haben oft hessische Näherungen mit schlechten spärlichen Näherungen.


+1, obwohl ich vor pauschalen Aussagen warnen möchte (womit ich diese Antwort nicht speziell meine). Beispielsweise beinhaltet bei der PDE-beschränkten Optimierung das Anwenden von häufig das Lösen einer nichtlinearen PDE, während durch Lösen von zwei linearen PDEs angewendet werden kann - was erheblich billiger (und leichter vorzukonditionieren) sein kann, wenn die ursprüngliche PDE böse ist. AH
Christian Clason

Also, durch Lösen zwei PDEs angewendet werden, sondern gelten benötigen Sie 2 PDEs lösen pro kryolv Iteration in Ihrem Löser. Auf der anderen Seite ist ein Vorwärtsoperator, so dass normalerweise überhaupt keine PDE-Lösungen erforderlich sind. Typischerweise kennt man die Matrix tatsächlich explizit, z. B. eine 5-Punkt-Schablone mit endlicher Differenz auf einem Netz. Vorkonditionierer für können verwendet werden, um Vorkonditionierer für , aber es ist schwieriger, sie zur Vorkonditionierung von . HH1AAAATA+ρIH
Nick Alger

Wenn ein linearer Vorwärtsoperator ist (was bei nichtlinearer PDE-beschränkter Optimierung nicht der Fall ist), dann sind Sie natürlich richtig. Andernfalls erfordert das Anwenden von eine lineare PDE-Lösung pro Newton-Iteration (oder Festpunktiteration), gefolgt von einer anderen für (die immer linear ist). Welche der beiden Methoden weniger Gesamtarbeit erfordert (z. B. nach Anzahl der linearen PDE-Lösungen), hängt stark vom spezifischen Problem ab. Ich sage nur verschiedene Werkzeuge für verschiedene Jobs. AAAT
Christian Clason

Ich stimme verschiedenen Tools für verschiedene Jobs zu. Das Gauß-Newton-Hessische für das PDE-beschränkte Optimierungsproblem, an das ich - so dass - , und der vollständige Hessische ist dies plus andere Begriffe. Hier enthält zwei Inversen und enthält zwei Inversen innerhalb einer Inversen. minq,u12||Cuy||2+α2||Rq||2Au=qH=ATCTCA1+αRTRHH1
Nick Alger

Und ich hatte die Einschränkung im Auge (z. B. ordnet der Lösung von , die in der Parameteridentifikation oder Topologieoptimierung erscheint). S(q)=uSqu(qu)=f
Christian Clason
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.