Mengapa SQP lebih baik daripada Augmented Lagrangian untuk pemrograman nonlinier?

9

Dalam laporan teknis tentang Galahad [1], penulis menyatakan, dalam konteks masalah pemrograman nonlinier umum,

Menurut pendapat kami, tidak pernah ada banyak keraguan bahwa metode SQP [sequential quadratic programming] akan lebih berhasil [daripada metode Augmented Lagrangian] dalam jangka panjang ...

Apa yang bisa menjadi dasar dari kepercayaan itu? Yaitu, apakah ada hasil teoritis yang menyarankan metode SQP harus lebih cepat / lebih dapat diandalkan daripada metode Augmented Lagrangian?

[1] Galahad, perpustakaan paket Fortran 90 yang aman untuk pengoptimalan nonlinear skala besar, oleh Gould, Orban, dan Toint

cjordan1
sumber

Jawaban:

2

Metode SQP mensyaratkan bahwa tujuannya dua kali dapat dibedakan (lih. Https://en.m.wikipedia.org/wiki/Sequential_quadratic_programming ) sementara Augmented Lagrangians bekerja bahkan ketika tujuannya tidak dapat dibedakan (karenanya kebangkitan baru-baru ini dalam komunitas pengolahan gambar cf ftp: //arachne.math.ucla.edu/pub/camreport/cam09-05.pdf )

Saya tidak tahu tentang perangkat lunak galahad, tetapi jika seharusnya menyelesaikan masalah optimasi yang terdiferensiasi, itu mungkin akan jauh lebih baik dengan menggunakan metode yang diizinkan untuk membedakan fungsi tujuan.

dranxo
sumber
Itu tidak benar bahwa SQP membutuhkan fungsi objektif dua kali dapat dibedakan. Anda mungkin hanya mendapatkan metode yang memiliki tingkat konvergensi yang lebih kecil jika fungsi obyektif memiliki diferensiabilitas yang lebih rendah, tetapi itu persis sama dengan metode augmented Lagrangian.
Wolfgang Bangerth
2

Dalam hal iterasi luar, SQP harus menang karena mencakup informasi turunan kedua, sedangkan metode lagrangian yang diperluas seperti ADMM tidak.

Namun, satu hal yang perlu diingat adalah bahwa setiap iterasi untuk metode ini melibatkan penyelesaian sistem linier, jadi untuk melakukan perbandingan yang adil Anda harus memperhitungkan betapa mudahnya sistem ini menyelesaikannya.

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

Untuk metode SQP Anda memecahkan sesuatu seperti mana adalah Hessian (atau perkiraannya) yang biasanya hanya tersedia secara implisit dalam hal tindakannya pada vektor, dan adalah gradien. Hessian mengandung tidak hanya , tetapi juga kombinasi dari matriks dan invers matriks lainnya yang berasal dari linierisasi kendala dan regularisasi.H g A

Hx=g,
HgA

Mengkondisikan Hessians adalah bisnis yang cukup rumit dan jauh lebih sedikit dipelajari daripada mengkondisikan masalah ke depan. Metode standar adalah untuk memperkirakan invers Hessian dengan L-BFGS, tetapi ini efektivitas terbatas ketika invers Hessian adalah peringkat tinggi. Metode populer lainnya adalah dengan memperkirakan Hessian sebagai jumlah dari matriks peringkat-rendah plus matriks yang mudah untuk dibalik, tetapi ini juga memiliki efektivitas yang terbatas untuk masalah-masalah sulit. Teknik estimasi Hessian populer lainnya didasarkan pada pendekatan jarang, tetapi masalah kontinum sering memiliki Hessian yang memiliki pendekatan jarang.

Nick Algeria
sumber
+1, walaupun saya ingin mengingatkan pernyataan blanket (maksud saya bukan jawaban ini). Misalnya, dalam optimisasi yang dibatasi oleh PDE, penerapan sering melibatkan penyelesaian PDE nonlinier, sementara dapat diterapkan dengan menyelesaikan dua PDE linier - yang dapat secara signifikan lebih murah (dan lebih mudah untuk prakondisi) jika PDE asli jahat. HAH
Christian Clason
Jadi, dapat diterapkan dengan memecahkan dua PDE, tetapi untuk menerapkan Anda harus menyelesaikan 2 PDE per iterasi kryolv dalam solver Anda. Di sisi lain adalah operator maju sehingga biasanya tidak melibatkan pemecahan PDE sama sekali. Biasanya orang benar-benar mengetahui matriks secara eksplisit, misalnya, stensil perbedaan hingga 5 titik pada mesh. Preconditioners untuk dapat digunakan untuk membangun preconditioners untuk , tetapi sulit untuk digunakan mereka untuk prasyarat . H - 1 A A A A T A + ρ I HHH1AAAATA+ρIH
Nick Alger
Jika adalah operator linier maju (yang tidak terjadi dalam optimasi dibatasi-PDE nonlinear), maka Anda tentu saja benar. Kalau tidak, menerapkan membutuhkan penyelesaian PDE linier per iterasi Newton (atau iterasi titik tetap), diikuti oleh yang lain untuk (yang selalu linier). Manakah dari dua metode ini yang membutuhkan lebih sedikit kerja total (katakanlah, dengan jumlah solus PDE linier) sangat tergantung pada masalah spesifik. Alat yang berbeda untuk pekerjaan yang berbeda, itu yang saya katakan. A A TAAAT
Christian Clason
Saya setuju tentang alat yang berbeda untuk pekerjaan yang berbeda. Gauss-Newton Hessian untuk masalah optimisasi terbatas PDE yang saya pikirkan - sehingga - adalah , dan Hessian selengkapnya adalah ini ditambah dengan istilah lainnya. Jadi di sini berisi dua invers dan berisi dua invers dalam invers. Au=qH=A-TCTCA-1+αRTRHH-1minq,u12||Cuy||2+α2||Rq||2Au=qH=ATCTCA1+αRTRHH1
Nick Alger
Dan saya memiliki kendala dalam pikiran (misalnya, peta untuk solusi dari , yang muncul dalam identifikasi parameter atau optimasi topologi). S q u - ( q u ) = fS(q)=uSqu(qu)=f
Christian Clason