Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Podobne dokumenty
Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Bezgradientowe metody optymalizacji funkcji wielu zmiennych. informacje dodatkowe

Kolejny krok iteracji polega na tym, że przechodzimy do następnego wierzchołka, znajdującego się na jednej krawędzi z odnalezionym już punktem, w

Przegląd metod optymalizacji wielowymiarowej. Funkcja testowa. Funkcja testowa. Notes. Notes. Notes. Notes. Tomasz M. Gwizdałła

KADD Minimalizacja funkcji

Optymalizacja (minimalizacja) funkcji. Plan wykładu: 1. Sformułowanie problemu, funkcja celu. 2. Metody bezgradientowe

1 Metody rozwiązywania równań nieliniowych. Postawienie problemu

KADD Minimalizacja funkcji

WYKŁAD 9 METODY ZMIENNEJ METRYKI

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

5. Metody stochastyczne (symulowane wyżarzanie, algorytmy genetyczne) -> metody Monte Carlo

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

jeśli nie jest spełnione kryterium zatrzymania, to nowym punktem roboczym x(t+1) staje i następuje przejście do 1)

ZADANIA OPTYMALIZCJI BEZ OGRANICZEŃ

Wielokryteriowa optymalizacja liniowa

PODSTAWY AUTOMATYKI. MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.

Automatyka i Robotyka II Stopień ogólno akademicki studia niestacjonarne wszystkie Katedra Automatyki i Robotyki Prof. dr hab. inż.

Wybrane metody przybliżonego. wyznaczania rozwiązań (pierwiastków) równań nieliniowych

Dr. inŝ. Ewa Szlachcic Katedra Automatyki, Mechatroniki i Systemów Sterowania. Przykładowe zadania optymalizacji nieliniowej bez ograniczeń

Document: Exercise*02*-*manual /11/ :31---page1of8 INSTRUKCJA DO ĆWICZENIA NR 2

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Matematyka stosowana i metody numeryczne

Definicja pochodnej cząstkowej

Metody numeryczne II

OPTYMALIZACJA KONSTRUKCJI

Elementy Modelowania Matematycznego

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania. Technologie informatyczne

Teoretyczne podstawy programowania liniowego

Numeryczne metody optymalizacji Optymalizacja w kierunku. informacje dodatkowe

Optymalizacja ciągła

Optymalizacja ciągła

M eto dy o p ty m a liza cji

Programowanie matematyczne

Matematyka stosowana i metody numeryczne

Skrypt 23. Geometria analityczna. Opracowanie L7

Optymalizacja systemów

Metody Rozmyte i Algorytmy Ewolucyjne

Wprowadzenie Metoda bisekcji Metoda regula falsi Metoda siecznych Metoda stycznych RÓWNANIA NIELINIOWE

Laboratorium 5 Przybliżone metody rozwiązywania równań nieliniowych

1 Równania nieliniowe

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

SZTUCZNA INTELIGENCJA

Metoda eliminacji Gaussa

WYKŁAD 3 WYPEŁNIANIE OBSZARÓW. Plan wykładu: 1. Wypełnianie wieloboku

Rozdział 6 PROGRAMOWANIE WYPUKŁE I KWADRATOWE

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH

PLAN WYNIKOWY PROSTO DO MATURY KLASA 1 ZAKRES PODSTAWOWY

Z-ZIP2-303z Zagadnienia optymalizacji Problems of optimization

Optymalizacja ciągła

II. FUNKCJE WIELU ZMIENNYCH

Metody systemowe i decyzyjne w informatyce

Rozwiązywanie równań nieliniowych

Politechnika Gdańska Wydział Oceanotechniki i Okrętownictwa. Marzec Podstawy teorii optymalizacji Oceanotechnika, II stop., sem.

8. Neuron z ciągłą funkcją aktywacji.

Metoda graficzna może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład):

Zagadnienia - równania nieliniowe

Politechnika Białostocka

Informatyka II stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny) kierunkowy (podstawowy / kierunkowy / inny HES)

Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: Badania operacyjne. Temat ćwiczenia:

VIII. Zastosowanie rachunku różniczkowego do badania funkcji. 1. Twierdzenia o wartości średniej. Monotoniczność funkcji.

ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL. sin x2 (1)

Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.

Przykładowe rozwiązania

Rozdział 1 PROGRAMOWANIE LINIOWE

Metody numeryczne Numerical methods. Energetyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólnoakademicki / praktyczny)

Laboratorium Metod Optymalizacji

IX. Rachunek różniczkowy funkcji wielu zmiennych. 1. Funkcja dwóch i trzech zmiennych - pojęcia podstawowe. - funkcja dwóch zmiennych,

PRZEDMIOTOWY SYSTEM OCENIANIA PROSTO DO MATURY KLASA 1 ZAKRES PODSTAWOWY

Metody numeryczne II

Metody systemowe i decyzyjne w informatyce

Metody numeryczne I Równania nieliniowe

DRGANIA SWOBODNE UKŁADU O DWÓCH STOPNIACH SWOBODY. Rys Model układu

Wykład z modelowania matematycznego. Zagadnienie transportowe.

Drgania poprzeczne belki numeryczna analiza modalna za pomocą Metody Elementów Skończonych dr inż. Piotr Lichota mgr inż.

Optymalizacja liniowa w liczbach całkowitych (PLC)

Programowanie liniowe

FUNKCJA KWADRATOWA. Zad 1 Przedstaw funkcję kwadratową w postaci ogólnej. Postać ogólna funkcji kwadratowej to: y = ax + bx + c;(

Metody numeryczne. Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski

METODA SYMPLEKS. Maciej Patan. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski

Rozdział 2 PROGRAMOWANIE LINIOWE CAŁKOWITOLICZBOWE

Wstęp do metod numerycznych 11. Minimalizacja: funkcje wielu zmiennych. P. F. Góra

Estymacja wektora stanu w prostym układzie elektroenergetycznym

Laboratorium Programowanie Obrabiarek CNC. Nr H04

Ekstrema globalne funkcji

BADANIA OPERACYJNE i teoria optymalizacji. Prowadzący: dr Tomasz Pisula Katedra Metod Ilościowych

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Rozkład normalny, niepewność standardowa typu A

WYMAGANIA EDUKACYJNE Z MATEMATYKI 2016/2017 (zakres podstawowy) klasa 3abc

METODY ROZWIĄZYWANIA RÓWNAŃ NIELINIOWYCH

Wielokryteriowa optymalizacja liniowa cz.2

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra InŜynierii Systemów Sterowania Podstawy Automatyki

Zagadnienia optymalizacji Problems of optimization

LABORATORIUM 7: Problem komiwojażera (TSP) cz. 2

Kryteria oceniania z matematyki dla klasy M+ (zakres rozszerzony) Klasa II

Wykład z Technologii Informacyjnych. Piotr Mika

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Metoda określania pozycji wodnicy statków na podstawie pomiarów odległości statku od głowic laserowych

I. Potęgi. Logarytmy. Funkcja wykładnicza.

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Transkrypt:

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania Metody optymalizacji Metody bezgradientowe optymalizacji bez ograniczeń Materiały pomocnicze do ćwiczeń laboratoryjnych T4 Opracowanie: Piotr Hirsch, mgr inż. Kazimierz Duzinkiewicz, dr hab. inż. Gdańsk, 05.2016

1. Wstęp W ćwiczeniu zapoznamy się z dwiema metodami bezgradientowymi poszukiwania ekstremum bezwarunkowego: metodą Gaussa-Seidla i metodą Neldera-Meada. Metody bezgradientowe nie posiadają wymagania na różniczkowalność funkcji kryterialnej. Do ich zastosowania wystarczająca jest znajomość wartości funkcji w punkcie przy zachowaniu warunku ciągłości. 2. Metoda Gaussa-Seidla Metoda Gaussa-Seidla polega na poszukiwaniu minimum w kolejnych kierunkach bazowych. Poczynając od punktu startowego x 0, poszukujemy minimum w kierunku x 1. Dojdziemy więc do punktu styczności z pewną poziomicą, od którego rozpoczniemy poszukiwanie minimum funkcji w kierunku x 2. Postępowanie to powtarzamy aż do ostatniej zmiennej zbioru argumentów, czyli x n, a następnie rozpoczynamy cykl poszukiwań od nowa, czyli z osiągniętego punktu poszukujemy minimum w kierunku x 1. Tak postępujemy aż do spełnienia warunku zakończenia obliczeń. Minimum funkcji w kierunku x k poszukujemy jedną z bezgradientowych metod minimalizacji funkcji jednej zmiennej (metodą złotego podziału). x2 x 0 Rys. 1. Poszukiwanie minimum metodą Gaussa-Seidla x1 Przyjmujemy kartezjański układ współrzędnych, określonych przez wersory kierunkowe: e 1 = [1 0 0 0] e 2 = [0 1 0 0] e n = [0 0 0 1] Algorytm metody Gaussa-Seidla: 1. Przyjąć punkt startowy x 0 i dokładność wyznaczenia ekstremum (określana jako zmiana wartości funkcji kryterialnej w kolejnych dwóch krokach) ε (np. ε = 10 3 ). 2. Obliczyć w punkcie x i wartość funkcji celu f(x i ).

3. Wykonać z punktu x i,k 1 krok o długości d w kierunku e k, tak, by minimalizować f(d), przechodząc do punktu: x i,k = x i,k 1 + d e k. 4. Powtórzyć poprzedni punkt (n-1) razy, osiągając punkt x i,n czyli x i+1 5. Obliczyć wartość funkcji celu w nowym punkcie. Jeśli f(x i+1 ) f(x i ) < ε, to zakończyć postępowanie. W przeciwnym razie przyjąć i = i + 1 i wrócić do punktu 2. Przykład: Znaleźć minimum funkcji: f(x) = 2x 1 2 + x 2 2 2x 1 x 2 startując w punkcie x 0 = [2; 3], przyjmując dokładność ε = 10 2. Na początku wyznaczamy wartość funkcji w punkcie startowym: f(x 0 ) = 5 x 01 = x 00 + d e 1 Funkcja f(x) po podstawieniu powyższej zależności przechodzi w funkcję f(d) taka postać nazywana jest parametrycznym przedstawieniem funkcji: f(d) = f(x 01 ) = f ([ 2 3 ] + d [1 ]) = 5 + 2 d + 2 d2 0 Następnie poszukujemy minimum funkcji f(d). Skorzystać możemy z metody złotego podziału (w tym celu należy także wyznaczyć przedział na którym znajduje się minimum). W tym wypadku krok d minimalizujący funkcję f(x) w kierunku e 1 będzie miał wartość d = 0.5. Wyznaczamy współrzędne nowego punktu: x 01 = [ 2 3 ] 0.5 [1 0 ] = [1.5 3 ] Z tego punktu wykonujemy minimalizację w kierunku e 2 : x 02 = x 01 + d e 2 f(d) = f(x 02 ) = f ([ 1.5 3 ] + d [0 ]) = 4.5 + 3 d + d2 1 Ponownie obliczamy optymalną długość kroku d = 1.5 i kolejny punkt: x 02 = [ 1.5 1.5 ] = x10 f(x 10 ) = 2.25. Możemy teraz sprawdzić warunek zakończenia obliczeń:

2.25 5 = 2.75 > 0.01 Przechodzimy do kolejnego kroku obliczeń, startując z punktu x 10. 3. Metoda Powella Metoda Powella polega na poszukiwaniu minimum w kolejnych kierunkach bazowych. Kierunki bazowe w każdym cyklu poszukiwań ulegają modyfikacji, tak aby prowadziły one do szybszego znalezienia minimum, przy czym w kolejnych cyklach muszą być wzajemnie sprzężone. Metoda Powella pozwala odnaleźć minimum funkcji liniowo-kwadratowej w skończonej liczbie iteracji, w wyniku minimalizacji tej funkcji wzdłuż każdego kierunku tylko raz. Metodę Powella zastosować można nie tylko do funkcji będących formą kwadratową, ale także do dowolnych funkcji analitycznych, przyjmując, że w bliskim otoczeniu minimum można je przybliżyć formą kwadratową. x2 x 0 Rys. 2. Poszukiwanie minimum metodą Powella (linia ciągła) i metodą Gaussa-Seidla (linia przerywana) x1 Przyjmujemy kartezjański układ współrzędnych, określonych przez wersory kierunkowe: e 1 = [1 0 0 0] e 2 = [0 1 0 0] e n = [0 0 0 1] Algorytm metody Powella: 1. Przyjąć punkt startowy x 0 i dokładność wyznaczenia ekstremum (określana jako zmiana wartości funkcji kryterialnej w kolejnych dwóch krokach) ε (np. ε = 10 3 ). 2. Obliczyć x i,0, jako wynik minimalizacji funkcji f(x) w kierunku e n z punktu x i 3. Obliczyć w punkcie x i,0 wartość funkcji celu f(x i,0 ). 4. Wykonać z punktu x i,k 1 krok o długości d w kierunku e k, tak, by minimalizować f(d), przechodząc do punktu: x i,k = x i,k 1 + d e k. 5. Powtórzyć poprzedni punkt (n-1) razy, osiągając punkt x i,n czyli x i+1

6. Obliczyć wartość funkcji celu w nowym punkcie. Jeśli f(x i+1 ) f(x i ) < ε, to zakończyć postępowanie. 7. Zmodyfikować bazę, wykonując podstawienie: e 1 = e 2 e 2 = e 3 e n 1 = e n e n = x i,n x i,0 8. Podstawić x i+1 = x i,n, przyjąć i = i + 1 i wrócić do punktu 2. Tak więc, w nowej bazie pojawi się na ostatnim miejscu nowy kierunek (sprzężony), a usunięty z bazy zostanie pierwszy kierunek poprzedniego zestawu. Od tego nowego kierunku rozpoczniemy minimalizację w następnym cyklu obliczeń. Przykład: Znaleźć minimum funkcji: f(x) = 2x 1 2 + x 2 2 2x 1 x 2 startując w punkcie x 0 = [2; 3], przyjmując dokładność ε = 10 2. Obliczamy minimum funkcji f(x) w kierunku e 2 z punktu startowego x 0. x 00 = x 0 + d e 2 f(d) = f(x 00 ) = f ([ 2 3 ] + d [0 ]) = 5 + 2 d + d2 1 Wartość d wyznaczamy jako: d = 1. Wyznaczamy współrzędne nowego punktu i wartość funkcji celu: x 00 = [ 2 3 ] 1 [0 1 ] = [2 2 ] f(x 00 ) = 4 Od tego momentu postępujemy zgodnie z metodą Gaussa-Seidla, otrzymując w kierunku e 1 : x 01 = x 00 + d e 1 f(d) = f(x 01 ) = f ([ 2 2 ] + d [1 ]) = 4 + 4 d + 2 d2 0 x 01 = [ 2 2 ] 1 [1 0 ] = [1 2 ] Wykonujemy minimalizację w kierunku e 2 :

x 02 = x 01 + d e 2 f(d) = f(x 02 ) = f ([ 1 2 ] + d [0 ]) = 2 + 2 d + d2 1 x 02 = [ 1 2 ] 1 [0 1 ] = [1 1 ] = x1 Obliczamy wartość funkcji celu w nowym punkcie i sprawdzamy warunek stopu: f(x 1 ) = 1. 1 4 = 3 > 0.01 Modyfikujemy bazę: e 1 = [ 0 1 ] e 2 = x 02 x 00 = [ 1 1 ] Podstawiamy x 1 = x 02 i przechodzimy do kolejnego cyklu obliczeń. Obliczamy minimum funkcji f(x) w kierunku e 2 z punktu x 1 : x 10 = x 1 + d e 2 f(d) = f(x 00 ) = f ([ 1 ] + d [ 1]) = 1 2 d + d2 1 1 x 10 = [ 1 1 ] + 1 [ 1 1 ] = [0 0 ] f(x 10 ) = 0 Obliczamy x 11 i x 12 jak poprzednio, otrzymując: x 11 = x 10 x 12 = x 11 = x 10 Ponieważ minimalizacja w kolejnych kierunkach nie zmienia położenia punktu, kończymy obliczenia.

4. Metoda Neldera-Meada Metoda Neldera-Meada, zwana też metodą pełzającego simpleksu, polega na kolejnym przekształcaniu wielościanu wypukłego, posiadającego n+1 liniowo niezależnych wierzchołków, w kierunku minimum. Wielościan taki nazywamy simpleksem (sympleksem). W każdej iteracji zmieniane jest położenie jednego punktu wierzchołkowego simpleksu tego o najgorszej wartości funkcji celu. Hiperpowierzchnia przechodząca przez pozostałe n wierzchołków rozdziela przestrzeń zmiennych na dwie półprzestrzenie. Oczekujemy, że możemy znaleźć punkt o mniejszej wartości funkcji celu w tej półprzestrzeni, która nie zawiera najgorszego punktu z pośród dotychczasowych. Szkielet algorytmu wygląda następująco: Rys. 2. Ilustracja do algorytmu Neldera-Meada 1. Uporządkuj punkty początkowego simpleksu wg wartości funkcji celu. Punkt W jest najgorszy, więc wyliczamy środek ciężkości M punktów B i G (w przestrzeni dwuwymiarowej jest to po prostu środek odcinka łączącego oba punkty). 2. Wygeneruj odbicie punktu W względem hiperpowierzchni łączącej pozostałe punkty (przechodzące przez M), tworząc punkt R. 3. Jeśli R nie jest najlepszym ani najgorszym z punktów wierzchołkowych nowego simpleksu, to przejdź do kolejnej iteracji algorytmu. 4. Jeśli R jest lepszy od najlepszego z dotychczasowych, to kierunek poszukiwań wydaje się być obiecujący, więc dokonujemy ekspansji simpleksu (rozciągnięcie) w tym kierunku, tworząc punkt E. 5. Jeśli R jest najgorszym z dotychczasowych punktów, to dokonujemy kontrakcji, czyli ściśnięcia simpleksu w tym kierunku, otrzymując punkty C2 lub C1, w zależności od tego, czy f(r) > f(w) czy nie. 6. Możliwa jest też sytuacja, gdy dokonujemy kontrakcji całego simpleksu wokół punktu dotychczas najlepszego. 7. Jako warunek stopu najczęściej stosujemy sprawdzenie, czy maksimum odległości między wierzchołkami simpleksu jest mniejsze od zadanego ε.

Charakter metody wymaga stosowania mechanizmów periodycznej odnowy, to jest zastąpienia aktualnego simpleksu innym, bardziej regularnym, gdy simpleks jest zbyt rozciągnięty w jednym kierunku, a ściśnięty w innym. 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