Por que o SQP é melhor que o Augranged Lagrangian para programação não-linear?


9

No relatório técnico sobre Galahad [1], os autores declaram, no contexto de problemas gerais de programação não linear,

Em nossa opinião, nunca houve muita dúvida de que os métodos SQP [programação quadrática sequencial] seriam mais bem-sucedidos [do que os métodos Lagrangeanos Aumentados] a longo prazo ...

Qual poderia ser a base para essa crença? Ou seja, existem resultados teóricos que sugerem que os métodos SQP devam ser mais rápidos / confiáveis ​​do que os métodos Lagrangianos Aumentados?

[1] Galahad, uma biblioteca de pacotes Fortran 90 seguros para threads para otimização não linear em larga escala, por Gould, Orban e Toint

Respostas:


2

Os métodos SQP exigem que o objetivo seja diferenciável duas vezes (cf https://en.m.wikipedia.org/wiki/Sequential_quadratic_programming ), enquanto os Lagrangianos aumentados funcionam mesmo quando o objetivo não é diferenciável (daí o seu ressurgimento recente na comunidade de processamento de imagens, cf ftp: //arachne.math.ucla.edu/pub/camreport/cam09-05.pdf )

Não conheço o software galahad, mas se supostamente resolver problemas de otimização diferenciáveis, provavelmente será muito melhor usando um método que permita diferenciar a função objetivo.


Não é verdade que o SQP exija duas funções objetivas diferenciáveis. Você pode simplesmente obter um método que tenha uma menor taxa de convergência se a função objetivo tiver menos diferenciabilidade, mas isso é exatamente o mesmo que nos métodos Lagrangianos aumentados.
Wolfgang Bangerth

2

Em termos de iterações externas, o SQP deve vencer porque inclui informações de segunda derivada, enquanto métodos lagrangianos aumentados, como o ADMM, não.

No entanto, lembre-se de que cada iteração desses métodos envolve a solução de um sistema linear; portanto, para fazer uma comparação justa, é necessário levar em consideração a facilidade com que esses sistemas são resolvidos.

Para métodos lagrangianos aumentados (alternados), a cada iteração que você está resolvendo algo como, onde A é um operador direto direto da função objetivo que é conhecida e geralmente mais fácil de lidar ou pré-condição , e ρ é o parâmetro de penalidade. (por exemplo, seu problema é min x | | A

(ATA+ρI)x=b,
Aρminx||Axb||2 sujeito a algumas regularizações e restrições).

Para métodos SQP, você está resolvendo algo como que H

Hx=g,
H é o hessiano (ou aproximação do mesmo) que geralmente só está disponível implicitamente em termos de ação em vetores é o gradiente. O Hessian contém não apenas AgA , mas também uma combinação de outras matrizes e inversos de matrizes provenientes da linearização das restrições e da regularização.

Pré-condicionar Hessianos é um negócio bastante complicado e é muito menos estudado do que pré-condicionar problemas futuros. Um método padrão é aproximar o inverso de Hessian com L-BFGS, mas isso é de eficácia limitada quando o inverso de Hessian é alto. Outro método popular é aproximar o Hessian como uma soma de uma matriz de baixo escalão mais uma matriz fácil de inverter, mas isso também tem eficácia limitada para problemas difíceis. Outras técnicas populares de estimativa hessiana são baseadas em aproximações esparsas, mas os problemas de continuum geralmente têm hessianos que têm aproximações esparsas ruins.


+1, embora eu queira advertir contra declarações gerais (com as quais não quero dizer especificamente esta resposta). Por exemplo, na otimização restrita ao PDE, a aplicação de geralmente envolve a resolução de um PDE não linear, enquanto H pode ser aplicado resolvendo dois PDEs lineares - que podem ser significativamente mais baratos (e mais fáceis de pré-condicionar) se o PDE original for desagradável. AH
Christian Clason

Portanto, pode ser aplicado resolvendo dois PDEs, mas para aplicar o H - 1, você precisa resolver 2 PDEs por iteração kryolv no seu solucionador. Por outro lado, A é um operador de encaminhamento, por isso geralmente não envolve nenhuma solução de PDE. Normalmente, na verdade, se conhece a matriz A explicitamente, por exemplo, um estêncil de diferença finita de 5 pontos em uma malha. Precondicionadores para um pode ser usado para precondicionadores compilação para um T Uma + ρ I , mas é mais difícil usá-los para pré-condição H . HH1AAAATA+ρIH
Nick Alger

AAAT

minq,u12||Cuy||2+α2||Rq||2Au=qH=ATCTCA1+αRTRHH1

S(q)=uSqu(qu)=f
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.