Materiały pomocnicze do ćwiczeń laboratoryjnych T2

Transkrypt

Materiały pomocnicze do ćwiczeń laboratoryjnych T2
Politechnika Gdańska
Wydział Elektrotechniki i Automatyki
Katedra Inżynierii Systemów Sterowania
Metody optymalizacji
Metody poszukiwania ekstremum funkcji jednej zmiennej
Materiały pomocnicze do ćwiczeń laboratoryjnych T2
Opracowanie:
Piotr Hirsch, mgr inż.
Kazimierz Duzinkiewicz, dr hab. inż.
Gdańsk, 04.2016
1. Wstęp.
Algorytmy poszukiwania minimum funkcji jednej zmiennej podzielić możemy na metody gradientowe
i bezgradientowe. Do grupy metod gradientowych zaliczamy: poszukiwanie miejsc zerowych pochodnej
(metody bisekcji, siecznych), algorytmy drugiego rzędu (algorytm Newtona-Raphsona), interpolacje
funkcjami wielomianowymi. W grupie metod bezgradientowych wyróżniamy, między innymi, algorytmy:
dychotomii (dwudzielny), Fibonacciego, złotego podziału i interpolacji kwadratowej. W ćwiczeniu
zapoznamy się z metodami: bisekcji, Newtona-Raphsona i złotego podziału.
Problem poszukiwania minimum funkcji jednej zmiennej zapisujemy jako:
min 𝑓(𝑥)
𝑥
gdzie f(x) to funkcja kryterialna (funkcja celu), a 𝑥 ∈ 𝑅 to argument funkcji (zmienna decyzyjna). Przy
założeniu jednomodalności (unimodalności) f(x), czyli posiadania przez nią dokładnie jednego minimum
𝑥 ∗ w znanym przedziale <a,b>.
f(x)
x*
x
Rys. 1. Funkcja unimodalna
Na rysunku 1. przedstawiony został wykres funkcji unimodalnej, która dla 𝑥 < 𝑥 ∗ jest ściśle malejąca,
a dla 𝑥 > 𝑥 ∗ jest ściśle rosnąca. Zauważyć należy, że funkcja unimodalna nie musi być gładka ani ciągła.
2. Metody gradientowe poszukiwania minimum funkcji jednej zmiennej
W przypadku rozważania metod gradientowych, założenie o unimodalności musimy rozszerzyć o
założenie o różniczkowalności, wówczas zadanie znalezienia minimum sprowadza się do zadania
znalezienia punktu, w którym zeruje się pochodna 𝑓 ′ (𝑥) = 𝑔(𝑥) = 0.
 Metoda bisekcji
Metoda bisekcji jest jednym z najprostszych sposobów na znalezienie pierwiastka nieliniowej funkcji.
Aby ją zastosować, należy wybrać przedział początkowy, w którym znajduje się zero funkcji. Metoda bisekcji
polega na systematycznym zmniejszaniu przedziału w którym znajduje się pierwiastek, poprzez podzielenie
tego przedziału na dwie równe części i sprawdzenie, w której połowie znajduje się zero. Test ten opiera się
o twierdzenie o wartości średniej:
Tw. o wartości średniej – niech f(x) będzie funkcją ciągłą, zdefiniowaną na przedziale <a,b> , jeżeli
wartości funkcji f(a), f(b) na krańcach przedziału mają różne znaki, to funkcja posiada co najmniej jedno
zero na przedziale <a,b>.
f(b)
f(c)
a
c
b
f(a)
Rys. 2. Ilustracja do algorytmu bisekcji
Algorytm bisekcji:
Założenia: f(x) jest ciągła na [a,b]; 𝑓(𝑎)𝑓(𝑏) < 0
Początek pętli:
1. Wyznacz środek przedziału: 𝑐 =
𝑎+𝑏
2
2. Oblicz f(c)
3. Jeżeli 𝑓(𝑎)𝑓(𝑐) < 0 to nowy przedział poszukiwań to [a,c]
Jeżeli 𝑓(𝑎)𝑓(𝑐) > 0 to nowy przedział poszukiwań to [c,b]
4. Jeżeli
𝑏−𝑎
2
< 𝜀 to zakończ algorytm, jeżeli nie to przejdź do kroku 1.
Koniec pętli
 Metoda Newtona-Raphsona
Metoda Newtona-Raphsona wykorzystuje informacje o pochodnej funkcji, w celu lepszego
przybliżenia pierwiastka. Oznacza to, że przy zadaniu minimalizacji funkcji jednej zmiennej posługujemy
się faktycznie drugą pochodną funkcji kryterialnej. Metoda korzysta z interpretacji geometrycznej
pochodnej, to jest 𝑓 ′ (𝑥𝑖 ) = 𝑡𝑔𝛼 =
𝑓(𝑥𝑖 )
,
𝑥𝑖 −𝑥𝑖+1
gdzie α jest kątem nachylenia osi X do stycznej w punkcie xi.
f(xi)
x*
α
xi+1
xi
Rys. 3. Ilustracja do algorytmu Newtona-Raphsona
Algorytm Newtona-Raphsona:
Założenia: f(x) jest ciągła i ma pierwszą pochodną; początkowe rozwiązanie takie, że 𝑓 ′ (𝑥𝑜 ) ≠ 0
Początek pętli:
1. Wyznacz wartość funkcji w punkcie 𝒙𝒊
2. Wyznacz wartość pochodnej funkcji w punkcie 𝒙𝒊
𝒇(𝒙 )
3. Oblicz kolejne przybliżenie rozwiązania 𝒙𝒊+1 = 𝒙𝒊 − 𝒇′ (𝒙𝒊 )
𝒊
4. Jeżeli |𝒇(𝒙𝒊+𝟏 )| < 𝜀 to zakończ algorytm, jeżeli nie to przejdź do kroku 1.
Koniec pętli
3. Metody bezgradientowe poszukiwania minimum funkcji jednej zmiennej
Metody z tej kategorii bazują jedynie na obliczaniu wartości funkcji kryterialnej, nie wymaga się żeby,
poza unimodalnością, funkcja była ciągła, różniczkowalna, a nawet podana w formie analitycznej.
 Metoda złotego podziału
Metoda złotego podziału polega na systematycznym zmniejszaniu przedziału nieokreśloności, to jest
przedziału, o którym możemy powiedzieć, że znajduje się w nim minimum funkcji unimodalnej. Metoda ta
cechuje się tym, że w każdej iteracji stosunek długości dwóch kolejnych przedziałów nieokreśloności jest
taki sam i wynosi 𝑘 =
√5−1
.
2
Podstawową zaletą metody złotego podziału jest to, że w każdym kroku (za
wyjątkiem pierwszego) zachodzi konieczność wyznaczenia wartości funkcji tylko w jednym punkcie.
f(x)
a0
b0
α0
a1
a2
x
β0
b1
α1 β1
b2
Rys. 4. Ilustracja do algorytmu złotego podziału, kolorem czerwonym zaznaczono odrzucone przedziały
Algorytm złotego podziału:
Początek pętli:
1. Wyznacz położenie punktów według stosunku złotego podziału:
𝛼𝑖 = 𝑏𝑖 − 𝑘 ∙ (𝑏𝑖 − 𝑎𝑖 )
𝛽𝑖 = 𝑎𝑖 + 𝑘 ∙ (𝑏𝑖 − 𝑎𝑖 )
2. Jeżeli 𝑓(𝛼𝑖 ) ≤ 𝑓(𝛽𝑖 ) to odrzucamy przedział (𝛽𝑖 , 𝑏𝑖 ], przyjmując:
𝑎𝑖+1 = 𝑎𝑖
𝑏𝑖+1 = 𝛽𝑖
3. Jeżeli 𝑓(𝛼𝑖 ) > 𝑓(𝛽𝑖 ) to odrzucamy przedział [𝑎𝑖 , 𝛼𝑖 ), przyjmując:
𝑎𝑖+1 = 𝛼𝑖
𝑏𝑖+1 = 𝑏𝑖
4. Jeżeli (𝑏𝑖+1 − 𝑎𝑖+1 ) < 𝜀 to zakończ algorytm, jeżeli nie to przejdź do kroku 1.
Koniec pętli

Podobne dokumenty