Zagadnienia

14. Metody optymalizacji z ograniczeniami

W tym rozdziale skupimy się na metodach numerycznych rozwiązywania problemów optymalizacyjnych z ograniczeniami nierównościowymi. Pokażemy problemy z zastosowaniem metody największego spadku i jej naiwnych modyfikacji oraz zaproponujemy skuteczne aczkolwiek bardziej skomplikowane podejście.

Problem optymalizacyjny na następującą postać:

fxmin,gix0,i=1,,m,xRn,(14.1)

gdzie f,g1,,gm:RnR. A zatem zbiór punktów dopuszczalnych jest zadany przez

W=xRn:g1x0,,gmx0.(14.2)

W rozważaniach tego rozdziału będziemy odwoływać się często do pojęcia zbioru kierunków dopuszczalnych zdefiniowanego następująco

Ax=dRn:d0 oraz istnieje λ*>0 taka że x+λdW λ0,λ*.

14.1. Algorytm Zoutendijk'a dla ograniczeń liniowych

Rozważmy bardzo prostą modyfikację algorytmu największego spadku. Otóż jeśli punkt znajduje się wewnątrz zbioru W, to istnieje możliwość poruszania się wzdłuż kierunku największego spadku aż do uderzenia w brzeg. Jeśli punkt już jest na brzegu, to naturalne jest wybrać taki kierunek ruchu, by pozwalał on na jak największy spadek wartości funkcji celu a jednocześnie na ruch w jego kierunku. Kierunek taki nazywamy dopuszczalnym kierunkiem spadku w punkcie x i definiujemy jako kierunek dopuszczalny d, taki że Dfxd<0.

Okazuje się, że pomysł ten działa całkiem dobrze, jeśli ograniczenia są liniowe i nosi nazwę algorytm Zoutendijk'a. Przypomnijmy, że liniowość ograniczeń znacznie upraszcza problem, co pozwoli nam na rozszerzenie analizy w tym podrozdziale do zagadnień z ograniczeniami nierównościowymi i równościowymi, tzn.

fxmin,Axb,Qx=a,xRn.(14.3)

Tutaj A jest macierzą m×n, Q jest macierzą l×n, zaś bRm i aRl. Poniższy lemat charakteryzuje zbiór dopuszczalnych kierunków spadku. Jego dowód pozostawiamy jako ćwiczenie.

Lemat 14.1

Niech x będzie punktem dopuszczalnym dla zagadnienia (14.3) i załóżmy, że macierz A i wektor b mogą być podzielone w zależności od aktywności ograniczeń na A1, A2 i b1,b2 (z dokładnością do przenumerowania ograniczeń), tzn. A1x=b1 oraz A2x<b2. Wektor dRn jest kierunkiem dopuszczalnym w x, jeśli A1db1 oraz Qd=0. Jeśli, ponadto, Dfxd<0, to d jest dopuszczalnym kierunkiem spadku.

Jak wybrać najlepszy dopuszczalny kierunek spadku w punkcie x? Najprościej byłoby rozwiązać zagadnienie

Dfxdmin,dAx,d1.(14.4)

Ograniczenie na normę wektora d jest konieczne. Jeśli byśmy je opuścili, to dla dowolnego dopuszczalnego kierunku spadku d jego wielokrotność λd, λ>0, jest również kierunkiem spadku. Co więcej, Dfxd<0, czyli limλDfxλd=- i problem powyższy nie ma jednoznacznego rozwiązania.

Korzystając z lematu 14.1 powyższe zagadnienie (14.4) można wyrazić jako

Dfxdmin,A1d0,Qd=0,dTd1.

Zauważmy, że jedyna nieliniowość związana jest z ograniczeniem na normę wektora d. W praktyce, bez większych strat dla jakości algorytmu, zamienia się ją na ograniczenia liniowe, które pozwalają skorzystać z szybkich metod optymalizacji liniowej (np. algorytmu sympleks – patrz monografie Bazaraa, Jarvis'a, Shetty [2], Gass'a [8] lub Luenberger'a [9]). Najpopularniejsze są następujące dwa zamienniki normy euklidesowej d:

  • norma l, tzn. supidi1, co zapisuje się jako

    -1di1,i=1,,n.
  • norma l1, tzn. idi1, co zapisuje się jako

    i=1nηi1,-ηidiηi,i=1,,n,

    gdzie η1,,ηn są nowymi zmiennymi (pomocniczymi).

Oto pełny algorytm:

  • Inicjalizacja: Wybierz punkt początkowy x0.

  • Krok k-ty:

    1. Wybierz kierunek ruchu dk jako rozwiązanie problemu optymalizacyjnego:

      Dfxdmin,A1d0,Qd=0,-1di1,i=1,,n.(14.5)
    2. Jeśli dk=0, to zakończ działanie algorytmu. Punkt xk spełnia warunek konieczny pierwszego rzędu. W przeciwnym przypadku kontynuuj.

    3. Połóż αk=argminα0,Akfxk+αdk, gdzie Ak jest największą liczbą o tej własności, że odcinek łączący xk i xk+Akdk zawarty jest w W.

    4. Połóż xk+1=xk+αkdk.

Przyjrzyjmy się jeszcze raz wyborowi kierunku dk. Wektor d=0 spełnia wszystkie ograniczenia, a zatem optymalna wartość funkcji celu Dfxdk jest co najwyżej równa zeru. Wówczas punkt xk spełnia warunek konieczny pierwszego rzędu, czego dowodzimy w poniższym lemacie.

Lemat 14.2

W xk spełniony jest warunek konieczny pierwszego rzędu wtw, gdy dk=0.

Dowód

Przypomnijmy najpierw notację. Przez Dxk oznaczamy stożek kierunków spadku, tzn.

Dxk=dRn:Dfxkd<0,

zaś przez Tlinxk – stożek kierunków stycznych dla ograniczeń zlinearyzowanych w punkcie xk, który dla ograniczeń liniowych danych jest wzorem

Tlinxk=dRn:A1d0,Qd=0.

Zauważmy, że dk=0 jest rozwiązaniem zagadnienia (14.5) wtw, gdy DxkTlinxk=. Postępując dalej jak w dowodzie twierdzenia 8.1 dostajemy implikację w lewo. Implikacja w drugą stronę wynika faktu, że na mocy lematu Farkasa, lemat 5.3, istnienie rozwiązania (8.5) pociąga brak rozwiązania (8.4), co jest równoważne temu, że DxkTlinxk=.

14.2. Algorytm Zoutendijk'a dla ograniczeń nieliniowych

Zastanówmy się, czy algorytm Zoutendijk'a działa równie dobrze dla ograniczeń nieliniowych:

  • Inicjalizacja: Wybierz punkt początkowy x0.

  • Krok k-ty:

    1. Wybierz kierunek ruchu dk jako rozwiązanie problemu optymalizacyjnego:

      Dfxdmin,dAx,d1.
    2. Jeśli dk=0, to zakończ działanie algorytmu. Punkt xk spełnia warunek konieczny pierwszego rzędu. W przeciwnym przypadku kontynuuj.

    3. Połóż αk=argminα0,Akfxk+αdk, gdzie Ak jest największą liczbą o tej własności, że odcinek łączący xk i xk+Akdk zawarty jest w W.

    4. Połóż xk+1=xk+αkdk.

Rys. 14.1. Ilustracja szybkiej zbieżności metody największego spadku.
Rys. 14.2. Ilustracja zakleszczenia metody największego spadku dla zbioru niewypukłego.
Rys. 14.3. Ilustracja problemu ze znalezieniem kierunku dopuszczalnego największego spadku.

W poniższych przykładach rozważamy minimalizowanie funkcji fx1,x2=-2x1-x2 na różnych zbiorach. Punkt minimum oznaczamy zawsze przez x¯. Na rysunku 14.1 widać, że już w kroku drugim osiągamy minimum. Jeśli zbiór W nie jest wypukły algorytm prowadzi nas w kozi róg, z którego już nie możemy się uwolnić, patrz 14.2. Jest to niestety cecha wszystkich algorytmów tego typu, więc musimy zawsze wymagać, by zbiór punktów dopuszczalnych był wypukły. Czy to już wystarczy? Niestety nie. Na rysunku 14.3 możemy zobaczyć, że nawet w przypadku zbioru wypukłego algorytm nie działa. Problem wyboru kierunku d1 nie ma rozwiązania, gdyż zbiór Dx1 nie jest domknięty. Intuicyjnie łatwo jest podać rozwiązanie tego problemu. Należy wybrać taki kierunek dk, aby nie tylko spadek był jak największy, ale również, żeby dość duży fragment półprostej poprowadzonej w tym kierunku zawierał się w zbiorze W. Co więcej, zależy nam na prostocie, czytaj liniowości, zagadnienia optymalizacyjnego wyznaczającego kierunek dk. Rozwiązanie podpowiada następujący lemat, którego dowód pozostawiamy jako ćwiczenie.

Lemat 14.3

Niech x będzie punktem dopuszczalnym. Jeśli f,gi, iIx są różniczkowalne w x i gi, iIx są ciągłe w x, to kierunek dRn spełniający Dfxd<0 i Dgixd<0, iIx, jest dopuszczalnym kierunkiem spadku.

Lemat powyższy podaje tylko warunek dostateczny. Łatwo znaleźć przykład zagadnienia optymalizacyjnego z ograniczeniami nierównościowymi, dla którego jeden z dopuszczalnym kierunków spadku nie spełnia założeń lematu (ćwiczenie 14.5).

Znalezienie wektora dRn spełniającego Dfxd<0 i Dgixd<0, iIx sprowadza się do rozwiązania zagadnienia

max{Df(x)d,Dgi(x)d,iI(x)}min,-1dk1,k=1,,n.

Trudną w implementacji funkcję celu można sprowadzić do znacznie prostszej formy problemu optymalizacji liniowej:

ηmin,Dfxdη,Dgixdη,iIx,-1dk1,k=1,,n.(14.6)

Optymalizacji dokonuje się tutaj względem dwóch zmiennych: dRn oraz ηR. Zauważmy, że η0, gdyż para d=0, η=0 rozwiązuje powyższy układ. Jeśli wartość funkcji celu jest mniejsza od zera, to, na mocy lematu 14.1, rozwiązanie jest dopuszczalnym kierunkiem spadku. Jeśli η=0 jest rozwiązaniem i w punkcie x spełniony jest warunek liniowej niezależności ograniczeń, to wówczas w x zachodzi warunek konieczny pierwszego rzędu. Prawdziwa jest również odwrotna implikacja.

Lemat 14.4

Jeśli w punkcie dopuszczalnym x spełniony jest warunek liniowej niezależności ograniczeń i rozwiązaniem problemu (14.6) jest η=0, to w x zachodzi warunek konieczny pierwszego rzędu. I odwrotnie, jeśli w x spełniony jest warunek konieczny pierwszego rzędu, to rozwiązaniem (14.6) jest η=0 (nie jest tu konieczne założenie o regularności punktu x).

Dowód

Jeśli η=0 jest rozwiązaniem, to układ Ad<0, gdzie A składa się wierszowo z gradientów Dfx i Dgix, iIx, nie ma rozwiązania. Na mocy lematu 6.2 istnieje y0, y0, dla którego ATy=0. Połóżmy (μ0,μi,iI(x))=y i μi=0, iIx. Równość ATy=0 zapisać można w następujący sposób:

μ0Dfx+iIxμiDgix=0T.

Z założenia o liniowej niezależności gradientów ograniczeń aktywnych wnioskujemy, że μ00. Kładąc μi=μi/μ0, i=1,,m, dostajemy wektor mnożników Lagrange'a z warunku koniecznego pierwszego rzędu.

Aby dowieść implikacji odwrotnej, zauważmy, że jeśli w x spełniony jest warunek konieczny pierwszego rzędu, to y=(1,μi,iI(x)) spełnia następujące warunki: y0, y0 i ATy=0. Na mocy lematu 6.2 nie istnieje dRn, dla którego Ad<0. A zatem rozwiązaniem 14.6 jest η=0.

Zapiszmy w pełni algorytm zaproponowany przez Zoutendijka dla problemów z nieliniowymi ograniczeniami nierównościowymi:

  • Inicjalizacja: Wybierz punkt początkowy x0.

  • Krok k-ty:

    1. Wybierz kierunek ruchu dk jako rozwiązanie problemu optymalizacyjnego (14.6)

    2. Jeśli η=0, to zakończ działanie algorytmu. Punkt xk spełnia warunek konieczny pierwszego rzędu. W przeciwnym przypadku kontynuuj.

    3. Połóż αk=argminα0,Akfxk+αdk, gdzie Ak jest największą liczbą o tej własności, że odcinek łączący xk i xk+Akdk zawarty jest w W.

    4. Połóż xk+1=xk+αkdk.

Przykład 14.1

Rozważmy problem optymalizacji z ograniczeniami nieliniowymi:

2x12+2x22-2x1x2-4x1-6x2min,x1+5x25,2x12-x20,x10,x20.

Pokażemy, w jaki sposób postępując iteracje metody Zoutendijka. Weźmy punkt startowy x0=0,0.75T. Dostajemy następujący ciąg punktów:

x1=0,2083,0.5477T,x2=0.5555,0.8889T,
x3=0.6479,0.8397T,x4=0.6302,0.8740T.

Widzimy, że ciąg ten dość znacznie oscyluje w zbiorze punktów dopuszczalnych, patrz rys. 14.4. Jest to charakterystyczne zachowanie metody kierunków spadku dla problemów z ograniczeniami.

Rys. 14.4. Oscylacja ciągu generowanego przez metodę Zoutendijka.
Rys. 14.5. Ilustracja zbieżności algorytmu Zoutendijka do punktu nie będącego rozwiązaniem.

Algorytm Zoutendijka może polec nawet na dość prostych prostych problemach optymalizacyjnych. Rozważmy minimalizowanie funkcji liniowej fx=-2x1-x2 na zbiorze zaznaczonym na rysunku 14.5. Minimum znajduje się w punkcie x¯=1,1T. Rozpoczynając od punktu x0=-1,0T, kolejne iteracje algorytmu Zoutendijka wygenerują ciąg punktów zbiegający do 1,0T. Algorytm ten nie pozwoli nam na przybliżenie właściwego rozwiązania x¯. Co więcej, wartość funkcji celu w punkcie 1,0T wynosi -2, w porównaniu do fx¯=-3. W następnym podrozdziale pokażemy jak mała modyfikacja pozwoli naprawić algorytm Zoutendijka.

14.3. Modyfikacja Topkis'a-Veinott'a

Topkis i Veinott zaproponowali w roku 1967 niewielką modyfikację wyznaczania kierunku dk w algorytmie Zoutendijka:

ηmin,Dfxdη,Dgixdη-gix,i=1,,m,-1dk1,k=1,,n.(14.7)

Linia dotycząca warunku na gradienty ograniczeń obejmuje teraz wszystkie ograniczenia. Dla ograniczeń aktywnych, iIx, mamy gix=0, a więc warunki te są identyczne jak w (14.6). W przypadku ograniczeń nieaktywnych gix<0, czyli prawa strona jest większa niż η. O ile dla dużych wartości gix ograniczenie takie jest prawie niezauważalne, to dla ograniczeń, które są ”prawie aktywne”, odgrywa znaczną rolę. Poza tym, z punktu widzenia implementacji, rozwiązuje to kwestię znajdowania zbioru ograniczeń aktywnych (ze względu na niedokładności zapisu liczb, prawie nigdy nie będzie spełniony warunek gix=0).

O skuteczności modyfikacji (14.7) świadczy następujące twierdzenie, które podamy bez dowodu:

Twierdzenie 14.1

Załóżmy, że f,gi, i=1,,m, są klasy C1. Jeśli ciąg xk wygenerowany przez algorytm Zoutendijka z modyfikacją Topkis'a-Veinott'a posiada punkt skupienia, w którym spełniony jest warunek liniowej niezależności, to zachodzi w nim warunek konieczny pierwszego rzędu.

14.4. Podsumowanie

Metody numeryczne opisane w tym rozdziale pozwalają na znalezienie aproksymacji punktów, w których spełniony jest warunek konieczny pierwszego rzędu. Twierdzenie 7.6 zagwarantuje dopiero optymalność tych punktów. W szczególności, jeśli ograniczenia są liniowe, to wystarczy założyć pseudowypukłość funkcji f. Zwróćmy uwagę, że wymagaliśmy podobnych założeń w poprzednim rozdziale, dla optymalizacji bez ograniczeń. Wymóg wypukłości okazuje się bardzo naturalnym i, co więcej, koniecznym dla sprawnego działania tych metod.

14.5. Zadania

Ćwiczenie 14.1

Znajdź graficznie zbiór dopuszczalnych kierunków spadku w punkcie x=2,3T dla zagadnienia

x1-62+x2-22min,-x1+2x24,3x1+2x212,x10,x20.
Ćwiczenie 14.2

Udowodnij lemat 14.1.

Ćwiczenie 14.3

Rozwiąż następujące zagadnienie optymalizacyjne z ograniczeniami liniowymi:

2x12+2x22-2x1x2-4x1-6x2min,x1+x22,x1+5x25,x10,x20.

Zastosuj algorytm Zoutendijka i weź jako punkt początkowy x0=0.

Wskazówka: 

Algorytm kończy się w trzeciej iteracji (optymalna wartość funkcji celu w zagadnieniu poszukiwania kierunku dk wynosi wówczas 0).

Ćwiczenie 14.4

Udowodnij lemat 14.3.

Ćwiczenie 14.5

Podaj przykład problemu optymalizacyjnego z ograniczeniami nierównościowymi, dla którego istnieje dopuszczalny kierunek spadku, który nie spełnia założeń lematu 14.3.

Treść automatycznie generowana z plików źródłowych LaTeXa za pomocą oprogramowania wykorzystującego LaTeXML.

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego.

Projekt współfinansowany przez Ministerstwo Nauki i Szkolnictwa Wyższego i przez Uniwersytet Warszawski.