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ć:
(14.1) |
gdzie . A zatem zbiór punktów dopuszczalnych jest zadany przez
(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
Rozważmy bardzo prostą modyfikację algorytmu największego spadku. Otóż jeśli punkt znajduje się wewnątrz zbioru , 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 i definiujemy jako kierunek dopuszczalny , taki że
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.
(14.3) |
Tutaj jest macierzą , jest macierzą , zaś i Poniższy lemat charakteryzuje zbiór dopuszczalnych kierunków spadku. Jego dowód pozostawiamy jako ćwiczenie.
Niech będzie punktem dopuszczalnym dla zagadnienia (14.3) i załóżmy, że macierz i wektor mogą być podzielone w zależności od aktywności ograniczeń na , i (z dokładnością do przenumerowania ograniczeń), tzn. oraz Wektor jest kierunkiem dopuszczalnym w , jeśli oraz Jeśli, ponadto, , to jest dopuszczalnym kierunkiem spadku.
Jak wybrać najlepszy dopuszczalny kierunek spadku w punkcie ? Najprościej byłoby rozwiązać zagadnienie
(14.4) |
Ograniczenie na normę wektora jest konieczne. Jeśli byśmy je opuścili, to dla dowolnego dopuszczalnego kierunku spadku jego wielokrotność , , jest również kierunkiem spadku. Co więcej, , czyli i problem powyższy nie ma jednoznacznego rozwiązania.
Korzystając z lematu 14.1 powyższe zagadnienie (14.4) można wyrazić jako
Zauważmy, że jedyna nieliniowość związana jest z ograniczeniem na normę wektora . 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 :
norma , tzn. , co zapisuje się jako
norma , tzn. , co zapisuje się jako
gdzie są nowymi zmiennymi (pomocniczymi).
Oto pełny algorytm:
Inicjalizacja: Wybierz punkt początkowy .
Krok -ty:
Wybierz kierunek ruchu jako rozwiązanie problemu optymalizacyjnego:
(14.5) |
Jeśli , to zakończ działanie algorytmu. Punkt spełnia warunek konieczny pierwszego rzędu. W przeciwnym przypadku kontynuuj.
Połóż , gdzie jest największą liczbą o tej własności, że odcinek łączący i zawarty jest w .
Połóż
Przyjrzyjmy się jeszcze raz wyborowi kierunku . Wektor spełnia wszystkie ograniczenia, a zatem optymalna wartość funkcji celu jest co najwyżej równa zeru. Wówczas punkt spełnia warunek konieczny pierwszego rzędu, czego dowodzimy w poniższym lemacie.
W spełniony jest warunek konieczny pierwszego rzędu wtw, gdy .
Przypomnijmy najpierw notację. Przez oznaczamy stożek kierunków spadku, tzn.
zaś przez – stożek kierunków stycznych dla ograniczeń zlinearyzowanych w punkcie , który dla ograniczeń liniowych danych jest wzorem
Zauważmy, że jest rozwiązaniem zagadnienia (14.5) wtw, gdy . 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
∎Zastanówmy się, czy algorytm Zoutendijk'a działa równie dobrze dla ograniczeń nieliniowych:
Inicjalizacja: Wybierz punkt początkowy .
Krok -ty:
Wybierz kierunek ruchu jako rozwiązanie problemu optymalizacyjnego:
Jeśli , to zakończ działanie algorytmu. Punkt spełnia warunek konieczny pierwszego rzędu. W przeciwnym przypadku kontynuuj.
Połóż , gdzie jest największą liczbą o tej własności, że odcinek łączący i zawarty jest w .
Połóż
W poniższych przykładach rozważamy minimalizowanie funkcji na różnych zbiorach. Punkt minimum oznaczamy zawsze przez . Na rysunku 14.1 widać, że już w kroku drugim osiągamy minimum. Jeśli zbiór 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 nie ma rozwiązania, gdyż zbiór nie jest domknięty. Intuicyjnie łatwo jest podać rozwiązanie tego problemu. Należy wybrać taki kierunek , 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 . Co więcej, zależy nam na prostocie, czytaj liniowości, zagadnienia optymalizacyjnego wyznaczającego kierunek . Rozwiązanie podpowiada następujący lemat, którego dowód pozostawiamy jako ćwiczenie.
Niech będzie punktem dopuszczalnym. Jeśli , są różniczkowalne w i , są ciągłe w , to kierunek spełniający i , , 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 spełniającego i , sprowadza się do rozwiązania zagadnienia
Trudną w implementacji funkcję celu można sprowadzić do znacznie prostszej formy problemu optymalizacji liniowej:
(14.6) |
Optymalizacji dokonuje się tutaj względem dwóch zmiennych: oraz Zauważmy, że , gdyż para , 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 jest rozwiązaniem i w punkcie spełniony jest warunek liniowej niezależności ograniczeń, to wówczas w zachodzi warunek konieczny pierwszego rzędu. Prawdziwa jest również odwrotna implikacja.
Jeśli w punkcie dopuszczalnym spełniony jest warunek liniowej niezależności ograniczeń i rozwiązaniem problemu (14.6) jest , to w zachodzi warunek konieczny pierwszego rzędu. I odwrotnie, jeśli w spełniony jest warunek konieczny pierwszego rzędu, to rozwiązaniem (14.6) jest (nie jest tu konieczne założenie o regularności punktu ).
Jeśli jest rozwiązaniem, to układ , gdzie składa się wierszowo z gradientów i , , nie ma rozwiązania. Na mocy lematu 6.2 istnieje , , dla którego . Połóżmy i , Równość zapisać można w następujący sposób:
Z założenia o liniowej niezależności gradientów ograniczeń aktywnych wnioskujemy, że . Kładąc , dostajemy wektor mnożników Lagrange'a z warunku koniecznego pierwszego rzędu.
Aby dowieść implikacji odwrotnej, zauważmy, że jeśli w spełniony jest warunek konieczny pierwszego rzędu, to spełnia następujące warunki: , i . Na mocy lematu 6.2 nie istnieje , dla którego A zatem rozwiązaniem 14.6 jest
∎Zapiszmy w pełni algorytm zaproponowany przez Zoutendijka dla problemów z nieliniowymi ograniczeniami nierównościowymi:
Inicjalizacja: Wybierz punkt początkowy .
Krok -ty:
Wybierz kierunek ruchu jako rozwiązanie problemu optymalizacyjnego (14.6)
Jeśli , to zakończ działanie algorytmu. Punkt spełnia warunek konieczny pierwszego rzędu. W przeciwnym przypadku kontynuuj.
Połóż , gdzie jest największą liczbą o tej własności, że odcinek łączący i zawarty jest w .
Połóż
Rozważmy problem optymalizacji z ograniczeniami nieliniowymi:
Pokażemy, w jaki sposób postępując iteracje metody Zoutendijka. Weźmy punkt startowy Dostajemy następujący ciąg punktów:
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.
Algorytm Zoutendijka może polec nawet na dość prostych prostych problemach optymalizacyjnych. Rozważmy minimalizowanie funkcji liniowej na zbiorze zaznaczonym na rysunku 14.5. Minimum znajduje się w punkcie . Rozpoczynając od punktu , kolejne iteracje algorytmu Zoutendijka wygenerują ciąg punktów zbiegający do . Algorytm ten nie pozwoli nam na przybliżenie właściwego rozwiązania . Co więcej, wartość funkcji celu w punkcie wynosi , w porównaniu do W następnym podrozdziale pokażemy jak mała modyfikacja pozwoli naprawić algorytm Zoutendijka.
Topkis i Veinott zaproponowali w roku 1967 niewielką modyfikację wyznaczania kierunku w algorytmie Zoutendijka:
(14.7) |
Linia dotycząca warunku na gradienty ograniczeń obejmuje teraz wszystkie ograniczenia. Dla ograniczeń aktywnych, , mamy , a więc warunki te są identyczne jak w (14.6). W przypadku ograniczeń nieaktywnych , czyli prawa strona jest większa niż O ile dla dużych wartości 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 ).
O skuteczności modyfikacji (14.7) świadczy następujące twierdzenie, które podamy bez dowodu:
Załóżmy, że , , są klasy . Jeśli ciąg 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.
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 . 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.
Znajdź graficznie zbiór dopuszczalnych kierunków spadku w punkcie dla zagadnienia
Udowodnij lemat 14.1.
Rozwiąż następujące zagadnienie optymalizacyjne z ograniczeniami liniowymi:
Zastosuj algorytm Zoutendijka i weź jako punkt początkowy
Algorytm kończy się w trzeciej iteracji (optymalna wartość funkcji celu w zagadnieniu poszukiwania kierunku wynosi wówczas ).
Udowodnij lemat 14.3.
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.
strona główna | webmaster | o portalu | pomoc
© Wydział Matematyki, Informatyki i Mechaniki UW, 2009-2010. Niniejsze materiały są udostępnione bezpłatnie na licencji Creative Commons Uznanie autorstwa-Użycie niekomercyjne-Bez utworów zależnych 3.0 Polska.
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.