I Wykład
WPROWADZENIE
Poszukiwanie minimum stosując metody poszukiwania w kierunku wygląda inaczej dla funkcji skalarnej i dla funkcji wielu zmiennych. O ile w przypadku f. skalarnej:
1. konieczne jest wyznaczenie błędu bezwzględnego określającego dokładność obliczeń,
2. zwykle znany jest przedział, w którym poszukujemy punktu ekstremalnego,
3. obliczenie pochodnej funkcji jest łatwe numerycznie,
o tyle w przypadku f. wielu zmiennych:
1. określamy dokładność względną obliczeń(ze wzgl. na wahania długości kroku obliczeń w
poszczególnych iteracjach),
2. przedział obliczeń nie jest zazwyczaj znany, jedynie znany jest często punkt brzegowy,
3. Wyznaczenie gradientu funkcji wielu zmiennych wymaga większej ilości obliczeń niż w
przypadku zadania jednowymiarowego.
Metody które będą przedstawione są metodami bezgradientowymi (rzędu zerowego) poszukiwania minimum w kierunku.
Zadanie optymalizacji dla zadania jednowymiarowego sprowadza się do znalezienia min. funkcji jednej zmiennej Q(x) klasy C1 przy założeniu, że x ∈ [a,b]. Zakładamy, że funkcja ma w przedziale [a,b] pojedyncze minimum.
OPIS (IDEA) METOD
Zarówno metoda złotego podziału(nazywana również met. Złotego podziału odcinka) jak i metoda interpolacji kwadratowej Powella wymaga znajomości wartości Q(X) w trzech punktach przedziału [a,b].
METODA ZŁOTEGO PODZIAŁU - bezgradientowa
Jest to metoda geometryczna.
Założenia początkowe metody :
ciągłość funkcji na rozpatrywanym przedziale [a, b],
funkcja musi być unimodalna, co oznacza, że w przedziale [a, b] posiada tylko 1 punkt stacjonarny, który jest poszukiwanym minimum w kierunku,
dla określenia podprzedziału przedziału [a, b], w którym leży punkt stacjonarny, należy obliczyć wartości funkcji w dwóch punktach tego przedziału
Polega na iteracyjnym zawężaniu przedziału, w którym znajduje się punkt optymalny. Na początku wyznaczamy 2 wartości x1 , x2 takie, że a< x1< x2<b. Korzystając z nierówności f(x1)>f(x2) możemy określić, w którym podprzedziale będzie się znajdował punkt optymalny, czy [x1 ,b], czy [a, x2]. Jeden z dwóch
wyznaczanych punktów x będzie zawsze znajdował się wewnątrz zredukowanego nowego podprzedziału, a tym samym w każdej następnej iteracji wystarczy obliczać wartość funkcji tylko w jednym punkcie. Aby usystematyzować wyznaczanie kolejnych podprzedziałów iteracji należy wprowadzić stały współczynnik α.
Skąd wzięła się nazwa złotego podziału ?
Do wyjaśnienia tego pojęcia pomocna będzie geometryczna konstrukcja nazwana właśnie „złotym podziałem odcinaka”.
Odcinek podzielony jest punktem P w złoty sposób,
jeśli punkt P dzieli go na dwa odcinki: dłuższy i krótszy
w ten sposób, by krótszy miał się tak do dłuższego,
jak dłuższy do całego.
zgodnie z powyższym
przyjmując za a wartość 1 możemy wyznaczyć tzw. złotą liczbę. Rozwiązania tego równania to:
x=0,618034
Liczba ta nazywana jest w literaturze matematycznej małą złotą liczbą. Jest naszym szukanym współczynnikiem α.
Ciekawostka jest fakt, że odwrotność złotej liczby jest o 1 większa od niej samej. Ta liczba nazywana jest wielka złotą liczbą. Od czasów starożytnych złota proporcja jest uważana za najbardziej harmonijną. Architekci i rzeźbiarze greccy ściśle przestrzegali tej zasady w swojej twórczości.
METODA INTERPOLACJI KWADRATOWEJ POWELLA - bezgradientowa
Jest metodą aproksymacyjną.
Można ją stosować w celu przyspieszenia poszukiwania minimum Q(x) met. złotego podziału, gdy znane
jest dostatecznie małe otoczenie p. optymalnego [an, bn], przy założeniu, że w otoczeniu punktu optymalnego [an, bn] funkcję Q(x) można zastąpić wielomianem interpolacyjnym drugiego stopnia f(x).
Wartość funkcji jest obliczana w trzech kolejnych punktach, bowiem po zakończeniu każdej iteracji w met. złotego podziału znane są wartości w trzech kolejnych punktach: Q(xa), Q(xb), Q(xc);
xa < xb < xc(w pierwszej iteracji są to: Q(a0), Q(l0), Q(r0) lub Q(l0), Q(r0), Q(b0) ). Za pomocą tych punktów wielomianu osiąga minimum. Punkt ten z kolei zastępuje jeden z punktów początkowych i procedura jest powtarzana aż do spełnienia warunków zbieżności.
Algorytm metody złotego podziału
Podstawić za a0 = a oraz b0 = b. Mając przedział [ai, bi] określić zawężony przedział [ai+1, bi+1], wprowadzić punkty dodatkowe:
li = bi - k(bi - ai)
ri = ai + k(bi - ai)
k - współczynnik złotego podziału; k = (pierwiastek 5 - 1)/2 ≈ 0,618
Jeżeli Q(li) > Q(ri): ai+1 = li; bi+1 = bi
Jeżeli Q(li) <= Q(ri): ai+1 = ai; bi+1 = ri
Rozważamy więc podprzedziały [li, bi] oraz [ai, ri].
< ilustracja działania >
Po n iteracjach x ∈ [an,bn], przy czym: bn - an = 0,618n(b-a)
Kryterium zbieżności
Dla n->∞: bn - an -> 0 oraz bi - ai = k(bi-1, ai-1), więc odległość między punktami skrajnymi wewnątrz których znajduje się minimum, maleje liniowo w każdej iteracji. Mamy tu do czynienia ze zbieżnością liniową.
Warunkiem zakończenia działania algorytmu jest: |Δτ| < Δ, gdzie:
Δ - wymagana dokładność bezwzględna, przy czym Δ > 0,
Δτ = ri - a = b - li = k2(bi - ai)
W algorytmie interpolacji kwadratowej zastosujemy wzór Powella, wynikający z interpolacyjnego wielomianu Lagrange'a.
Na podstawie obliczonych Q(xa), Q(xb), Q(xc); xa < xb < xc, wielomian interpolacyjny Lagrange'a przyjmuje postać:
(x - xb)(x - xc) (x - xa)(x - xc) (x - xa)(x - xb)
f(x) = Qa --------------------- + Qb --------------------- + Qc ---------------------
(xa - xb)(xa - xc) (xb - xa)(xb - xc) (xc - xa)(xc - xb)
Algorytm metody interpolacji kwadratowej Polwella
Warunkiem koniecznym, a w naszym przypadku rónież wystarczającym instnienia min. jest:
df(x)
------ = 0 |
dx |x=xm
Stąd:
2xm - (xb + xc) 2xm - (xa + xc) 2xm - (xa + xb)
Qa ------------------- + Qb ------------------- + QC ------------------- = 0
(xa - xb)(xa - xc) (xb - xa)(xb - xc) (xc - xa)(xc - xb)
Czyli:
1 (xb2 - xc2)Qa + (xc2 - xa2)Qb + (xa2 - xb2)Qc
xm = - ---------------------------------------------------
2 (xb - xc)Qa + (xc - xa)Qb + (xa - xb)Qc
PODSUMOWANIE
Minimum można określić z żądaną dokładnością. Decydujący wpływ na efektywność algorytmu ma sposób doboru punktów wewnętrznych - metoda złotego podziału przewiduje zmniejszanie w każdej iteracji podprzedziału zawierającego minimum o stały czynnik k.
Metoda złotego podziału charakteryzuje się dużą prostotą oraz bardzo dobrą zbieżnością uzyskiwaną w każdej sytuacji. Wadą jest niewielka szybkość zbieżnośći, która jest tym mniejsza, im większą zakłada się dokładność obliczeń minimum w kierunku. Metoda ta przyjmuje słabe założenia(o ciągłości i istnieniu min. w kierunku).
Metoda interpolacji kwadratowej bazuje na bardziej zaostrzonych założeniach. Zaproponowana przez Powella idea wymaga ostrożności, gdyż znaleziony punkt może okazać się maksimum w kierunku. Ponadto niewłaściwa zmiana punktów wyjściowych może doprowadzić do niezbieżności, stąd wprowadza się szereg zabezpieczeń. Zaletą algorytmu jest natomiast najszybsza zbieżność.