Materiały pomocnicze do ćwiczeń laboratoryjnych T3

Transkrypt

Materiały pomocnicze do ćwiczeń laboratoryjnych T3
Politechnika Gdańska
Wydział Elektrotechniki i Automatyki
Katedra Inżynierii Systemów Sterowania
Metody optymalizacji
Metody gradientowe optymalizacji bez ograniczeń
Materiały pomocnicze do ćwiczeń laboratoryjnych T3
Opracowanie:
Piotr Hirsch, mgr inż.
Kazimierz Duzinkiewicz, dr hab. inż.
Gdańsk, 04.2016
1. Wstęp
W ćwiczeniu zapoznamy się z trzema metodami gradientowymi poszukiwania ekstremum
bezwarunkowego: metodą gradientu prostego i metodą najszybszego spadku.
Metody gradientowe polegają na wyznaczaniu kolejnego kierunku poszukiwań na podstawie
znajomości gradientu funkcji celu w punkcie wyznaczonym w poprzednim kroku. Funkcja celu musi być
więc znaną w postaci analitycznej, ograniczoną od dołu funkcją wypukłą klasy C2.
2. Metoda gradientu prostego
Metoda gradientu prostego polega na wykonywaniu kroków o założonej długości w kierunku
określanym przez gradient funkcji celu w punkcie startowym danej iteracji.
x2
x1
Rys. 1. Poszukiwanie minimum metodą gradientu prostego
1.
2.
3.
4.
5.
6.
Algorytm metody gradientu prostego:
Przyjąć punkt startowy 𝑥0 , długość kroku e, współczynnik redukcji kroku 𝑎 < 1, limit liczby redukcji
kroku k (np. 𝑘 = 5) i dokładność wyznaczenia ekstremum (zerowania się gradientu) ε (np. 𝜀 = 10−3).
Obliczyć w punkcie 𝑥𝑖 wartość funkcji celu 𝑓(𝑥𝑖 ) i jej gradientu 𝑔(𝑥𝑖 ).
Wyznaczyć kierunek poszukiwań przeciwny do kierunku gradientu 𝑑 = −𝑔(𝑥𝑖 ).
Wykonać z punktu 𝑥𝑖 krok o długości e w wyznaczonym kierunku d, przechodząc do punktu 𝑥𝑖+1 =
𝑥𝑖 + 𝑒 ∙ 𝑑.
Obliczyć wartość funkcji celu. Jeśli 𝑓(𝑥𝑖+1 ) ≥ 𝑓(𝑥𝑖 ), dokonać redukcji kroku (mnożąc jego wartość
przez a) i ponowić próby. Po k niepomyślnych próbach zakończyć postępowanie.
Obliczyć wartość gradientu w nowym punkcie 𝑥𝑖+1 . Jeśli |𝑔𝑇 𝑔| > 𝜀, przyjąć 𝑖 = 𝑖 + 1 i przejść do
punktu 2. W przeciwnym razie zakończyć postępowanie.
3. Metoda najszybszego spadku
Metoda najszybszego spadku jest modyfikacją metody gradientu prostego. Modyfikacja polega na
tym, że w metodzie najszybszego spadku po wyznaczeniu kierunku poszukiwań wyznaczane jest minimum
funkcji w tym kierunku, a nie przesunięcie ze stałym krokiem. Ważną własnością metody najszybszego
spadku jest to, że przy jej zastosowaniu każdy nowy kierunek poruszania się ku optimum jest ortogonalny
do poprzedniego. Tłumaczy się to tym, że poruszanie się w jednym kierunku trwa do tego czasu, dopóki
kierunek ten nie okaże się stycznym do jakiejś linii stałej wartości funkcji celu.
x2
x1
Rys. 2. Poszukiwanie minimum metodą najszybszego spadku
1.
2.
3.
4.
5.
6.
Algorytm metody najszybszego spadku:
Przyjąć punkt startowy 𝑥0 i dokładność wyznaczenia ekstremum (zerowania się gradientu) ε (np. 𝜀 =
10−3).
Obliczyć w punkcie 𝑥𝑖 wartość funkcji celu 𝑓(𝑥𝑖 ) i jej gradientu 𝑔(𝑥𝑖 ).
Wyznaczyć kierunek poszukiwań przeciwny do kierunku gradientu 𝑑 = −𝑔(𝑥𝑖 ).
Wykonać z punktu 𝑥𝑖 krok w wyznaczonym kierunku d, o takiej długości e, by osiągnąć minimum w
tym kierunku, przechodząc do punktu 𝑥𝑖+1 = 𝑥𝑖 + 𝑒 ∙ 𝑑.
Obliczyć wartość funkcji celu i jej gradientu w nowym punkcie.
Jeśli |𝑔𝑇 𝑔| > 𝜀, przyjąć 𝑖 = 𝑖 + 1 i przejść do punktu 2. W przeciwnym razie zakończyć postępowanie.
Uwaga
Do obliczania minimum funkcji 𝑓(𝑒) zastosować można jedną z metod poszukiwania minimum funkcji
jednej zmiennej, które zostały zaimplementowane na poprzednim laboratorium.
Niektóre z tych metod wymagają wyznaczenia przedziału, na którym spodziewamy się znaleźć minimum.
W tym celu skorzystać można z heurystycznej metody opracowanej przez W. Swanna, według której (k+1)
punkt określa się z rekurencyjnego wzoru:
𝑥𝑘+1 = 𝑥𝑘 + 2𝑘 ∙ ∆, 𝑘 = 0,1,2,3, … , 𝑙
gdzie:
𝑥0 – dowolny punkt początkowy,
∆ - długość kroku.
Znak ∆ określa się drogą porównań wielkości 𝑓(𝑥0 + ∆) i 𝑓(𝑥0 − ∆). Jeżeli 𝑓(𝑥0 − ∆) > 𝑓(𝑥0 + ∆), to
zgodnie z założeniem o wypukłości w dół, punkt minimum powinien się znajdować na prawo od punktu 𝑥0
i wielkość ∆ powinna być wybierana jako dodatnia. Jeżeli zmienić znak nierówności na przeciwny, to ∆
należy wybrać jako wielkość ujemną.
Jeżeli 𝑓(𝑥𝑙 ) ≥ 𝑓(𝑥0 ), to punkt minimum leży między 𝑓(𝑥0 ) i 𝑓(𝑥𝑙 ) i poszukiwanie punktów granicznych
zostaje zakończone.
Bibliografia:
Amborski K., Podstawy metod optymalizacji, Oficyna Wydawnicza Politechniki Warszawskiej, 2009
Stachurski A., Wprowadzenie do optymalizacji, Oficyna Wydawnicza Politechniki Warszawskiej, 2009
Ostanin A., Metody optymalizacji z MATLAB. Ćwiczenia laboratoryjne, NAKOM, 2009