Pourquoi SQP est-il meilleur que le lagrangien augmenté pour la programmation non linéaire?

9

Dans le rapport technique sur Galahad [1], les auteurs déclarent, dans le contexte des problèmes généraux de programmation non linéaire,

À notre avis, il n'y avait jamais eu vraiment de doute que les méthodes SQP [programmation quadratique séquentielle] seraient plus efficaces [que les méthodes lagrangiennes augmentées] à long terme ...

Quelle pourrait être la base de cette croyance? C'est-à-dire, y a-t-il des résultats théoriques qui suggèrent que les méthodes SQP devraient être plus rapides / plus fiables que les méthodes Lagrangiennes augmentées?

[1] Galahad, une bibliothèque de packages Fortran 90 thread-safe pour l'optimisation non linéaire à grande échelle, par Gould, Orban et Toint

cjordan1
la source

Réponses:

2

Les méthodes SQP nécessitent que l'objectif soit deux fois différenciable (cf https://en.m.wikipedia.org/wiki/Sequential_quadratic_programming ) tandis que les lagrangiens augmentés fonctionnent même lorsque l'objectif est non différenciable (d'où leur récente résurgence dans la communauté de traitement d'image cf ftp: //arachne.math.ucla.edu/pub/camreport/cam09-05.pdf )

Je ne connais pas le logiciel galahad, mais s'il est censé résoudre des problèmes d'optimisation différenciables, il fera probablement beaucoup mieux en utilisant une méthode qui permet de différencier la fonction objectif.

dranxo
la source
Il n'est pas vrai que SQP nécessite des fonctions d'objectif deux fois différenciables. Vous pouvez simplement obtenir une méthode qui a un taux de convergence plus petit si la fonction objectif a moins de différentiabilité, mais c'est exactement la même chose qu'avec les méthodes lagrangiennes augmentées.
Wolfgang Bangerth
2

En termes d'itérations externes, SQP devrait gagner car il inclut des informations dérivées secondes, contrairement aux méthodes lagrangiennes augmentées comme ADMM.

Cependant, une chose à garder à l'esprit est que chaque itération de ces méthodes implique la résolution d'un système linéaire, donc pour faire une comparaison équitable, vous devez tenir compte de la facilité de résolution de ces systèmes.

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

Pour les méthodes SQP, vous résolvez quelque chose comme où est la Hesse (ou son approximation) qui n'est généralement disponible qu'implicitement en termes d'action sur les vecteurs et est le gradient. La Hesse contient non seulement , mais aussi une combinaison d'autres matrices et inverses matricielles provenant de la linéarisation des contraintes et de la régularisation.

Hx=g,
HgA

Le préconditionnement des Hessians est une entreprise assez délicate et est beaucoup moins étudié que le préconditionnement des problèmes ultérieurs. Une méthode standard consiste à approximer l'inverse de Hesse avec L-BFGS, mais cela est d'une efficacité limitée lorsque l'inverse de Hesse est de haut rang. Une autre méthode populaire consiste à approximer la toile de jute comme une somme d'une matrice de bas rang plus une matrice facile à inverser, mais cela a également une efficacité limitée pour les problèmes difficiles. D'autres techniques d'estimation populaires de Hesse sont basées sur des approximations éparses, mais les problèmes de continuum ont souvent des Hessois qui ont de mauvaises approximations éparses.

Nick Alger
la source
+1, bien que je voudrais mettre en garde contre les déclarations générales (par lesquelles je ne veux pas dire spécifiquement cette réponse). Par exemple, dans l'optimisation contrainte par PDE, l'application de implique souvent la résolution d'une PDE non linéaire, tandis que peut être appliqué en résolvant deux PDE linéaires - ce qui peut être nettement moins cher (et plus facile à préconditionner) si la PDE d'origine est désagréable. AH
Christian Clason
Ainsi, peut être appliqué en résolvant deux PDE, mais pour appliquer vous devez résoudre 2 PDE par itération kryolv dans votre solveur. D'un autre côté, est un opérateur avancé, donc il n'implique généralement aucune résolution PDE. Typiquement, on connaît en fait la matrice explicitement, par exemple, un pochoir de différence finie à 5 points sur un maillage. Préconditionnements pour peuvent être utilisés pour construire des préconditionnements pour , mais il est plus difficile de les utiliser pour condition . HH1AAAATA+ρIH
Nick Alger
Si est un opérateur direct linéaire (ce qui n'est pas le cas dans l'optimisation PDE non linéaire), alors vous avez bien sûr raison. Sinon, l'application de nécessite une résolution PDE linéaire par itération de Newton (ou itération à point fixe), suivie d'une autre pour (qui est toujours linéaire). Laquelle des deux méthodes nécessite moins de travail total (par exemple, par le nombre de résolutions PDE linéaires) dépend beaucoup du problème spécifique. Différents outils pour différents emplois, c'est tout ce que je dis. AAAT
Christian Clason
Je suis d'accord sur différents outils pour différents emplois. La Hesse de Gauss-Newton pour le problème d'optimisation contrainte PDE que j'ai en tête - tel que - est , et la Hesse complète est celle-ci ainsi que d'autres termes. Donc ici contient deux inverses et contient deux inverses à l'intérieur d'un inverse. minq,u12||Cuy||2+α2||Rq||2Au=qH=ATCTCA1+αRTRHH1
Nick Alger
Et j'avais à l'esprit la contrainte (par exemple, mappe à la solution de , qui apparaît dans l'identification des paramètres ou l'optimisation de la topologie). S(q)=uSqu(qu)=f
Christian Clason