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