Perché SQP è meglio di Lagrangian aumentato per la programmazione non lineare?


9

Nel rapporto tecnico su Galahad [1], gli autori affermano, nel contesto di problemi generali di programmazione non lineare,

A nostro avviso, non ci sono mai stati molti dubbi sul fatto che i metodi SQP [programmazione quadratica sequenziale] avrebbero avuto più successo [dei metodi lagrangiani aumentati] a lungo termine ...

Quale potrebbe essere la base per questa convinzione? Vale a dire, ci sono risultati teorici che suggeriscono che i metodi SQP dovrebbero essere più veloci / più affidabili dei metodi Lagrangiani Aumentati?

[1] Galahad, una libreria di pacchetti Fortran 90 thread-safe per l'ottimizzazione non lineare su larga scala, di Gould, Orban e Toint

Risposte:


2

I metodi SQP richiedono che l'obiettivo sia due volte differenziabile (cfr. Https://en.m.wikipedia.org/wiki/Sequential_quadratic_programming ) mentre i Lagrangiani aumentati funzionano anche quando l'obiettivo non è distinguibile (quindi la loro recente ripresa nella comunità di elaborazione delle immagini cfr ftp: //arachne.math.ucla.edu/pub/camreport/cam09-05.pdf )

Non conosco il software di galahad, ma se si suppone che risolva problemi di ottimizzazione differenziabili probabilmente farà molto meglio usando un metodo che è autorizzato a differenziare la funzione obiettivo.


Non è vero che SQP richiede funzioni oggettive due volte differenziabili. Puoi semplicemente ottenere un metodo che ha un tasso di convergenza più piccolo se la funzione obiettivo ha meno differenziabilità, ma è esattamente lo stesso dei metodi Lagrangiani aumentati.
Wolfgang Bangerth,

2

In termini di iterazioni esterne, SQP dovrebbe vincere perché include le informazioni derivate secondarie, mentre i metodi lagrangiani aumentati come ADMM no.

Tuttavia, una cosa da tenere a mente è che ogni iterazione per questi metodi comporta la risoluzione di un sistema lineare, quindi per fare un confronto equo devi tenere conto della facilità con cui questi sistemi sono facili da risolvere.

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

Per i metodi SQP stai risolvendo qualcosa come dove è l'Assia (o approssimazione di ciò) che di solito è disponibile solo implicitamente in termini di azione sui vettori, e è il gradiente. L'Assia contiene non solo , ma anche una combinazione di altre matrici e inversioni di matrici provenienti dalla linearizzazione dei vincoli e dalla regolarizzazione.H g A

Hx=g,
HgA

Il precondizionamento degli Assia è un affare piuttosto complicato ed è molto meno studiato rispetto al precondizionamento dei problemi in avanti. Un metodo standard è di approssimare l'inverso dell'Assia con L-BFGS, ma ciò ha un'efficacia limitata quando l'inverso dell'Assia è di alto rango. Un altro metodo popolare è quello di approssimare l'Assia come somma di una matrice di basso rango più una matrice facile da invertire, ma questo ha anche un'efficacia limitata per problemi difficili. Altre popolari tecniche di stima dell'Assia si basano su approssimazioni sparse, ma i problemi di continuum spesso hanno assiane che hanno scarse approssimazioni sparse.


+1, anche se vorrei mettere in guardia contro le affermazioni generali (con le quali non intendo specificamente questa risposta). Ad esempio, nell'ottimizzazione vincolata alla PDE, l'applicazione di comporta spesso la risoluzione di una PDE non lineare, mentre può essere applicato risolvendo due PDE lineari, che possono essere significativamente più economici (e più facili da precondizionare) se la PDE originale è cattiva. H.AH
Christian Clason,

Quindi, può essere applicato risolvendo due PDE, ma per applicare devi risolvere 2 PDE per iterazione di kryolv nel tuo solutore. D'altra parte è un operatore in avanti, quindi di solito non coinvolge alcun risolutore di PDE. In genere si conosce effettivamente la matrice esplicito, ad es., stencil con differenza finita a 5 punti su una mesh. Precondizionatori per possono essere utilizzate per costruire precondizionatori per , ma è più difficile da usarli per precondizione . H - 1 A A A A T A + ρ I HHH1AAAATA+ρIH
Nick Alger,

Se è un operatore lineare in avanti (che non è il caso dell'ottimizzazione non lineare vincolata da PDE), allora hai ovviamente ragione. Altrimenti, l'applicazione di richiede una risoluzione PDE lineare per iterazione di Newton (o iterazione a punto fisso), seguita da un'altra per (che è sempre lineare). Quale dei due metodi richiede meno lavoro totale (diciamo, per numero di risoluzioni PDE lineari) dipende molto dal problema specifico. Strumenti diversi per diversi lavori, è tutto ciò che sto dicendo. A A TAAAT
Christian Clason,

Sono d'accordo su diversi strumenti per diversi lavori. Il Gauss-Newton Hessian per il problema di ottimizzazione vincolata PDE che ho in mente - tale che - è , e l'Assia completa è questo più altri termini. Quindi qui contiene due inversioni e contiene due inversioni all'interno di un'inverso. Au=qH=A-TCTCA-1+αRTRHH-1minq,u12||Cuy||2+α2||Rq||2Au=qH=ATCTCA1+αRTRHH1
Nick Alger,

E avevo in mente il vincolo (ad esempio, associa alla soluzione di , che appare nell'identificazione dei parametri o nell'ottimizzazione della topologia). S q u - ( q u ) = fS(q)=uSqu(qu)=f
Christian Clason,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.