Sekwencyjne programowanie liniowo-kwadratowe

Sekwencyjne programowanie liniowo-kwadratowe ( SLQP ) to iteracyjna metoda rozwiązywania nieliniowych problemów optymalizacyjnych , w których funkcja celu i ograniczenia są dwukrotnie różniczkowalne w sposób ciągły . Podobnie jak w przypadku sekwencyjnego programowania kwadratowego (SQP), SLQP polega na rozwiązywaniu sekwencji podproblemów optymalizacji. Różnica między tymi dwoma podejściami polega na tym, że:

  • w SQP każdy podproblem jest programem kwadratowym , z kwadratowym modelem celu podlegającym linearyzacji ograniczeń
  • w SLQP na każdym kroku rozwiązywane są dwa podproblemy: program liniowy (LP) używany do określenia aktywnego zbioru , po którym następuje program kwadratowy z ograniczeniami równości (EQP) używany do obliczenia całkowitego kroku

Ten rozkład sprawia, że ​​SLQP nadaje się do rozwiązywania problemów optymalizacyjnych na dużą skalę, dla których dostępne są wydajne rozwiązania LP i EQP, przy czym problemy te są łatwiejsze do skalowania niż pełnoprawne programy kwadratowe.

Podstawy algorytmu

Rozważ problem programowania nieliniowego postaci:

Lagrange'a dla tego problemu jest

gdzie i Lagrange'a _ _

faza LP

W fazie LP SLQP rozwiązywany jest następujący program liniowy:

Niech oznacza zbiór aktywny w optymalnym czyli powiedzieć, zestaw ograniczeń, które są równe zeru w . Oznacz przez i wektorów podrzędnych i do odpowiadające elementom .

Faza EQP

W fazie EQP SLQP kierunek wyszukiwania kroku jest uzyskiwany przez rozwiązanie następującego programu kwadratowego z ograniczeniami równości: re

Zauważ, że termin w powyższych funkcjach można pominąć w przypadku problemów z minimalizacją

Zobacz też

Notatki