Metody optymalizacji nieliniowej (metody programowania nieliniowego)
Ewa Niewiadomska-Szynkiewicz
Instytut Automatyki i Informatyki Stosowanej
1
Ewa Niewiadomska-Szynkiewicz
Instytut Automatyki i Informatyki Stosowanej
Pokój 572A
2
Problem optymalizacji
• n - wymiarowa przestrzeń zmiennych
(x1,...,xn) Rn • funkcja celu (oceniająca) f: Rn R
Zadanie optymalizacji bez ograniczeń:
wyznaczyć x* = arg min x f (x)
które spełnia ograniczenia
x
f(x)
f *
x*,1 x*,2
3
x1
x2
Zastosowania
4
Potrzeba optymalizacji pojawia się w większości praktycznych problemów…
Planowanie
Sterowanie i zarządzanie systemami
Sieci
Finanse, ekonomia, marketing
Systemy środowiskowe
…..
Zarządzanie danymi
Rozpoznawanie wzorców
Uczenie maszynowe
Alokacja zasobów
Przetwarzanie sygnałów
Modelowanie zachowania ludzi
……
Historia optymalizacji
5
Fermat (1626): twierdzenie o minimum funkcji bez ograniczeń.
Lagrange (1789): problem z ograniczeniami równościowymi (mechanika).
18-19th Euler, Lagrange, Legendre, Hamilton, etc. : rachunek wariacyjny.
Karush (1939), Kuhn-Tucker (1951): warunki optymalności.
1950-te (programowanie liniowe), 60-80-te (programowanie nieliniowe): większość algorytmów.
1950-te: początki obliczeń ewolucyjnych. Holand i Fogel 1967: algorytm genetyczny (GA).
1950-60-te: Bellman, Pontryagin, etc.: sterowanie optymalne (zastosowania inżynierskie).
1990-te: aproksymacja ciągła problemów kombinatorycznych.
Problem optymalizacji
1. Wybrać odpowiedni algorytm do rozwiązania zadania
1. Wybrać początkowe przybliżenie rozwiązania: x0
1. Znaleźć przybliżone rozwiązanie zadania optymalizacji (x*) o zadowalającej dokładności przy założonych nakładach obliczeniowych
x
f(x)
f *
x*,1 x*,2 6
Rozwiązania - lokalne i globalne
• Punkt x * jest minimum globalnym
funkcji f w przestrzeni Rn, jeżeli
x Rn : f (x ) f (x *)
• Punkt x * jest minimum lokalnym funkcji f w przestrzeni Rn, jeżeli istnieje takie otwarte otoczenie U Rn punktu x * , że
x U : f (x ) f (x *)
• Obszar przyciągania minimum lokalnego x *, to zbiór wartości x Rn , z których startując lokalny algorytm optymalizacji zbiega do tego minimum.
7
x
f(x)
f *
x*,1 x*,2
Interpretacja geometryczna funkcji różniczkowalnej
Różniczkowalność funkcji w punkcie (x0, y0) oznacza, że istnieje w tym punkcie płaszczyzna styczna do wykresu tej funkcji w punkcie (x0, y0, f(x0,y0))
8
Definicje Gradient funkcji f(x) w punkcie x0
(f(x) ma ciągłe pierwsze pochodne w x0)
Macierz Hessego (hesjan) funkcji f(x) w punkcie x0 :
(f(x) ma ciągłe drugie pochodne w x0)
9
T
nx
xf
x
xf
x
xfxf
)(,....
)(,
)()(
0
2
0
1
00
nnnn
n
xx
xf
xx
xf
xx
xf
xx
xf
xx
xf
xx
xf
xfxH)(
,....)(
,)(
......
)(,....
)(,
)(
)()(02
2
02
1
02
1
02
21
02
11
02
020
Gradient – interpretacja geometryczna Gradient funkcji w punkcie wskazuje kierunek
najszybszego wzrostu funkcji w tym punkcie.
10
Gradient – interpretacja geometryczna Gradient funkcji w punkcie jest prostopadły do
poziomicy funkcji przechodzącej przez ten punkt
11
Przykłady Funkcja:
Gradient funkcji w punkcie x0 = [1, 2]
Macierz Hessego (hesjan) funkcji w punkcie x0 = [1, 2]
12
TTxxxxf ]2,6[2,22)(
]2,1[121
0
02
22)( 02 xf
21
2
1 2)( xxxxf
Definicja wypukłości funkcji
13
Funkcję ciągłą f(x) na zbiorze x nazywamy wypukłą jeżeli:
)()1()())1(( 2121]1,0[, 21xftxtfxttxftXxx
Lemat o wypukłości funkcji
Funkcja różniczkowalna f(x) jest wypukła na zbiorze wypukłym X wtedy i tylko wtedy, gdy
Funkcja podwójnie różniczkowalna f(x) jest wypukła na zbiorze wypukłym X wtedy i tylko wtedy, gdy jej hesjan H(x) jest dodatnio półokreślony
Minima lokalne funkcji wypukłej są globalnymi.
Wypukłość odgrywa kluczową rolę również w zadaniach niewypukłych.
14
0000 ),()()(, xxxfxfxfXxx
0, HxxXx T
Warunki konieczne optymalności
Jeżeli funkcja f (x) jest różniczkowalna, to w każdym jej minimum lokalnym jest spełniony następujący warunek konieczny optymalności:
f (x*) = 0 (warunek stacjonarności)
x* - minimum lokalne
15
Warunki dostateczne optymalności
• Jeżeli funkcja f (x) jest dwukrotnie różniczkowalna, to każdy punkt x spełniający poniższe warunki dostateczne optymalności: – f (x*) = 0 warunek stacjonarności
– d T H(x*) d > 0, d 0 warunek ściśle dodatniej określoności hesjanu 2f (x*) funkcji celu (czyli funkcja f jest wypukła)
jest minimum lokalnym funkcji f (x)
16
Warunki optymalności globalnej
• Zazwyczaj należy oczekiwać, że zadanie optymalizacji globalnej jest źle postawione w sensie Hadamarda
drobne zaburzenia danych mogą bardzo zmienić położenie x*
• Użyteczne warunki optymalności globalnej są możliwe do sformułowania jedynie dla wąskich klas funkcji
• Dla funkcji wypukłych każde minimum lokalne jest minimum globalnym
• Dla funkcji ściśle wypukłych istnieje jedno minimum globalne
17
Ogólna postać algorytmu optymalizacji lokalnej bez ograniczeń – zadanie różniczkowalne
18
• Założenie f(x) – funkcja różniczkowalna.
• Start z punktu x Rn takiego, że f(x) 0.
• Wyznacz nowy punkt xk+1 = xk + α d gdzie
d Rn jest kierunkiem poprawy: < d, f(x) > < 0
α (0, +) oznacza długość kroku.
jak daleko przesunąć się w kierunku d
aby zagwarantować dla α
nRxxff :)(minimize*
)()()( 1 kkk xfdxfxf
Zbieżność algorytmów optymalizacji • Zbieżność lokalna a globalna
efektywne algorytmy są zbieżne lokalnie
przybliżenie x lokalnego rozwiązania x*
x =lim i xi
zależy od wyboru punktu startowego x0
• Szybkość zbieżności
– co najmniej liniowa:
||xi+1 - x||/ ||xi - x||≤ c
c (0,1)
– kwadratowa:
||xi+1 - x||/ ||xi - x||2 ≤ C, C > 0
x
f(x)
f *
x*,1 x*,2
AB
x 0,1 x 0,2
0 2 4 6 8 1010
-20
10-15
10-10
10-5
100
algorytm zb. kwadratowo
algorytm zb. liniowo
numer iteracji i
| xi-x
|
19
20
Algorytm jest zatrzymywany jeśli punkt znajdzie się w zbiorze rozwiązań S.
Nie ma uniwersalnych kryteriów zatrzymania dobrych dla każdego problemu i dla każdej metody optymalizacji.
Praktyczne zasady:
Zatrzymujemy algorytm gdy:
1. Bezwzględna odległość między wartościami punktów po wykonaniu M iteracji mniejsza od > 0
2. Względna odległość między wartościami punktów po wykonaniu M iteracji mniejsza od > 0
Kryteria zatrzymania algorytmu
|||| kMk xx
||||
||||
k
kMk
x
xx
21
3. Po M iteracjach bezwzględna różnica wartości wskaźnika jakości mniejsza od > 0
4. Po M iteracjach względna różnica wartości wskaźnika jakości mniejsza od > 0
5. Dodatkowe kryterium zatrzymania dla metod korzystających z gradientu funkcji – jeśli gradient jest mniejszy od g 0
f (xk) g
6. Liczba iteracji osiągnęła maksymalną (założoną) wielkość k K
Kryteria zatrzymania algorytmu cd.
)()( Mkk xfxf
|)(|
)()(
k
Mkk
xf
xfxf
Metody programowania matematycznego (optymalizacji) -
klasyfikacja
Metody programowania
liniowego Metody programowania
nieliniowego
Wypukłego – metody
optymalizacji lokalnej
Niewypukłego – metody
optymalizacji globalnej
Bez ograniczeń Bez ograniczeń
Z ograniczeniami Z ograniczeniami
22
Metody programowania nieliniowego bez ograniczeń (optymalizacja lokalna) Metody minimalizacji w kierunku
(bezgradientowe i gradientowe)
Metody poszukiwań prostych
(bezgradientowe)
Złotego podziału
Interpolacja kwadratowa
Testów jedno- i dwuskośnych
Hooka Jevesa
Rosenbrocka
Neldera i Meada
Metody poprawy
(bezgradientowe)
Gaussa-Seidela
Kierunków sprzężonych Powella
Metody kierunków poprawy
(gradientowe)
Metoda największego spadku
Metoda Newtona
Metody gradientu sprzężonego
Metody zmiennej metryki 23
Metody programowania nieliniowego z
ograniczeniami klasyfikacja
Informacje o funkcji celu i
ograniczeniach
Metody bezgradientowe Metody gradientowe
24
Metody programowania nieliniowego z
ograniczeniami klasyfikacja: sposób rozwiązania zadania
Transformacja do zadania bez
ograniczeń
Transformacja zmiennych niezależnych Metody zewnętrznej funkcji kary
Metody wewnętrznej funkcji kary
Modyfikacja funkcji celu
Modyfikacja kierunków dopuszczalnych
Metoda rzutu ortogonalnego
Modyfikacja kierunku
Metoda Complex
Tworzenie ograniczonego
sympleksu
25
Metody poszukiwań prostych
• Wykorzystują jedynie wartości funkcji celu, nie obliczają bezpośrednio ani nie estymują gradientu funkcji celu.
• Wyznaczanie rozwiązania odbywa się w wyniku iteracji, polegających na przeszukiwaniu otoczenia aktualnego przybliżenia rozwiązania (w danej iteracji).
• Nie stosuje się minimalizacji w kierunku – długość skoku ustalana dla danego algorytmu (zmienia się adaptacyjnie).
• Zalecane do stosowania w zadaniach z nieróżniczkowalną funkcją celu oraz podejściu symulacja-optymalizacja.
• Charakterystyczne cechy metod: – Odporność i niezawodność
– Mała efektywność (powolne dochodzenie do rozwiązania) 26
Metoda Hooka-Jeevesa
• Pierwszy cykl minimalizacji: wzdłuż zestawu d 1, d 2, ... d n prostopadłych kierunków osi układu współrzędnych: z x 0 do x 1
• Pierwszy krok roboczy - w kierunku w 1= x 1 - x 0 doprowadza do x 2.
• Drugi cykl minimalizacji: wzdłuż kierunków d 1, d 2, ... d n : z x 2 do x 3 • Drugi krok roboczy - w kierunku w 2= x 3 - x 2 doprowadza do x 4.
• Itd.
x1
x2
Krok roboczy istotnie poprawia zbieżność dla „ukośnych” zbiorów poziomicowych bez dodatkowych nakładów obliczeniowych. 27
Metoda Neldera i Meada (pełzającego sympleksu)
• Jedna z bardziej popularnych metod poszukiwań prostych
– prosta
– rozsądnie skuteczna dla małych rozmiarów przestrzeni poszukiwań, chociaż bez dowodu zbieżności
• Sympleks w Rn - wypukłe pokrycie n+1 punktów wraz z wnętrzem (np. trójkąt w R2)
• Metoda NM w każdym kroku porządkuje wierzchołki w 1, w 2,...,w n+1 tak, by
f (w 1) f (w 2) ... f (w n+1)
• Środek ciężkości c najlepszych n wierzchołków w 1, w 2,...,w n wyznaczany jest następująco:
n
w
c
n
i
i 1
28
Metoda N-M: krok roboczy
Krok roboczy: odbicie w n+1 względem c:
x r=c+ (c -w n+1), >0
a) Jeśli: f (w 1) f (x r) ... f (w n+1), to zastąpić w n+1 przez x r . Koniec.
b) Jeśli f (x r) f (w 1) to ekspansja:
x e=c+ (x r -c), >1
Jeśli f (x e) f (x r), to zastąpić w n+1 przez x e , inaczej przez x r . Koniec.
c) Jeśli f(x r) f (w n), to kontrakcja (aż do uzyskania poprawy).
Dla f (x r)f (w n+1): x c=c+(w n+1 -c),
inaczej: x c=c+(x r -c), (0,1)
Gdy f (x c )<min(f (x r),f (w n+1)) koniec
w3
c x r
w3
c x r x
e
w3
cx c
w3
c x rx
e
29
Metody Poprawy (bezgradientowe)
• Wykorzystują jedynie wartości funkcji celu, nie obliczają bezpośrednio ani nie estymują gradientu funkcji celu.
• Wyznaczanie rozwiązania odbywa się w wyniku iteracji, polegających na przeszukiwaniu przestrzeni w odpowiednio skonstruowanych kierunkach, tworzących bazę tej przestrzeni.
• Realizowane jest poszukiwanie minimum w każdym z tych kierunków (zastosowanie wybranych, bezgradientowych metod poszukiwania w kierunku).
• Zalecane do stosowania w zadaniach z nieróżniczkowalną funkcją celu.
• Charakterystyczne cechy metod: – Stosunkowo odporne (jednak nie są zalecane w przypadkach niektórych postaci
funkcji celu)
– Oczekiwana efektywność większa niż w przypadkach metod poszukiwań prostych 30
Metody poprawy
Ogólny schemat algorytmu:
1. Określ kierunek poszukiwań d k z punktu x k .
2. Znajdź współczynnik kroku k minimalizujący f
w kierunku d k , tzn. k =arg min f (x k+ d k ). Minimalizacja może być zgrubna bądź dokładna.
3. Podstaw x k+1 =x+ k d k. Jeśli spełnione są warunki stopu: koniec. W przeciwnym razie przejdź do kroku 1
31
Metoda Gaussa-Seidla • Optimum znajduje się przez minimalizację funkcji celu
względem kolejnych zmiennych x1,x2,...,xn, x1,x2,...,xn,...
• Zaleta: prostota algorytmu, który naśladuje typowe postępowanie człowieka przy poprawianiu działania urządzeń - „jedną gałką na raz”
• Wada: mała skuteczność przy „ukośnych” poziomicach funkcji celu
• Zbieżność liniowa
x1
x2
32
Metoda Powella (kierunki sprzężone)
• Pierwszy cykl minimalizacji: wzdłuż zestawu d 1, d 2, ... d n prostopadłych kierunków osi układu współrzędnych: z x 0 do x 1
• Zmiana zestawu kierunków: d 1=d 2, d 2=d 3 , ..., d n = x 1 - x 0 i
minimalizacja wzdłuż d n dla uzyskania x 2
• Drugi cykl minimalizacji: wzdłuż kierunków d1, d2, ... dn: z x 2 do x 3
• Zmiana zestawu kierunków: d 1=d 2, d 2=d 3 , ..., d n = x 3 - x 2 itd.
• Dla poprawy niezależności kierunków poszukiwań d 1, d 2, ... d n co n iteracji rozpoczyna się cykl minimalizacji wzdłuż kierunków osi układu współrzędnych.
x1
x2
33
Metody kierunków poprawy
• Stosowane w zadaniach różniczkowalnych. Wykorzystują wartości funkcji celu oraz jej gradient, a czasami hesjan.
• Wyznaczanie rozwiązania odbywa się w wyniku iteracji, polegających na przeszukiwaniu przestrzeni w odpowiednio skonstruowanych kierunkach poprawy funkcji celu, tworzących bazę tej przestrzeni. Wyznaczenie tych kierunków jest możliwe dzięki znajomości gradientu.
• Realizowane jest poszukiwanie minimum w każdym z tych kierunków (zastosowanie wybranych metod poszukiwania w kierunku).
• Charakterystyczne cechy metod: – Najefektywniejsze metody programowania nieliniowego bez ograniczeń
– Zbieżność liniowa, a czasami kwadratowa
34
Metody kierunków poprawy
Ogólny schemat algorytmu:
1. Określ kierunek poszukiwań d k z punktu x k . Kierunek spadku spełnia warunek: (d k)T f (x k)<0
2. Znajdź współczynnik kroku k minimalizujący f
w kierunku d k , tzn. k =arg min f (x k+ d k ). Minimalizacja może być zgrubna bądź dokładna.
3. Podstaw x k+1 =x k + k d k. Jeśli spełnione są warunki stopu: koniec. W przeciwnym razie przejdź do kroku 1
35
Kierunki poszukiwań
• Kierunek spadku spełnia warunek:
(d k)T f (x ) < 0 co sprawia, że d k jest kierunkiem poprawy
istnieje >0: f (x+ d k ) < f (x k )
36
Algorytm najszybszego spadku
x k+1 =x k + k d k , d k =-f (x k )
k =arg min f (x k+ d k )
Użyty kierunek spadku skutkuje bardzo wolną, liniową zbieżnością nawet dla kwadratowej funkcji celu.
37
Przykład
-2.5 -2 -1.5 -1 -0.5 0 0.5-0.5
0
0.5
1
1.5
2
2.5
x1
x2
x0
x
f(x)=21*x1
2+38*x
1*x
2+21*x
2
2
2
221
2
1 213821)( xxxxxf Optymalizacja kwadratowej funkcji:
0 5 10 15 20 25 30 35 40 4510
-8
10-6
10-4
10-2
100
102
Nr iteracji k
f(xk)
Kroki algorytmu w przestrzeni x1 x2 Zależność f (x k) od numeru iteracji k 38
Algorytm gradientów sprzężonych • Kierunek spadku: d k =-f (x k )+ d k-1 • Współczynnik powinien być mały z dala od optimum i rosnąć przy zbliżaniu się do x * Formuła Fletchera-Reeves’a:
Formuła Polaka-Ribierre’a:
• Algorytm jest zbieżny w n krokach dla funkcji kwadratowej • Dla bardziej nieliniowych funkcji gładkich można oczekiwać lokalnej
zbieżności superliniowej
)()(
)()(
11
ktk
ktk
xfxf
xfxf
)()(
)()()(
11
1
ktk
ktkk
xfxf
xfxfxf
dk-1
-f(xk)
dk-1
dk
x k
39
Przybliżanie wartości funkcji za pomocą szeregu Taylora
kkkkkTkkkkk xxddxHddxfxfxf 11 ,)(2
1)()()(
40
liniowa
kwadratowa
Algorytm Newtona i jego modyfikacja
Motywacja algorytmu (rozwinięcie w szereg Taylora):
Stąd: Zalety: szybka (kwadratowa) asymptotyczna zbieżność;
dla funkcji kwadratowych optimum w jednym kroku Wady: mały obszar zbieżności, w każdej iteracji potrzebny
gradient, hesjan oraz rozwiązanie pomocniczego układu równań:
kkkkkTkkkkk xxddxHddxfxfxf 11 ,)(2
1)()()(
)()( ,)()( 21xfxHxfxHd kkk
)( )( kkk xfdxH
41
Modyfikacje algorytmu Newtona • Metody zmiennej metryki:
Konstrukcja ciągu macierzy stanowiących przybliżenie odwrotności macierzy hesjanu (drugich pochodnych) funkcji celu w kolejnych punktach xk.
Macierze te wyznacza się na podstawie zmian gradientu funkcji celu w poprzednich iteracjach metody.
Metody nazywane metodami
quasi-newtonowskimi.
42
Metody quasi-Newtonowskie
Schemat algorytmów quasi-Newtonowskich (zmiennej metryki)
1. Wyznacz kierunek spadku: d k = -Qk f (x k )
2. Wyznacz współczynnik kroku:
k =arg min f (x k+ d k )
3. Zaktualizuj macierz Qk (przybliżenie H-1 (x k )),
np. za pomocą formuły Davidona-Fletchera-Powella (DFP):
kkk
kkk
kktk
tkkkk
ktk
tkkkk
xxs
xfxfq
qQq
qQqQ
sq
ssQQ
1
1
1
)()(
)(
))((
)(
)(
43
Przykład: funkcja Rosenbrocka
44
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2-1
0
1
2
3
0
1000
2000
3000
x2
x
x1
o
f(x)= 100*(x(2)-x(1)^2)^2+(1-x(1))^2
Algorytm Neldera-Meada
-2 -1 0 1 2-1
-0.5
0
0.5
1
1.5
2
2.5
3
x1
x2
x0
x
Algorytm Neldera-Meada
0 50 100 150 200 25010
-10
10-8
10-6
10-4
10-2
100
102
104
Nr iteracji kf(
xk )
Algorytm Neldera Meada
45
Wykres poziomicowy
Numer iteracji
Funkcja celu
Davidona-Fletchera-Powella DFP
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2-1
-0.5
0
0.5
1
1.5
2
2.5
3
x1
x2
x0
x
DFP + mixed polynomial interpolation
0 5 10 15 20 25 3010
-8
10-6
10-4
10-2
100
102
104
Nr iteracji k
f(x
k )
DFP+mixed polynomial interpolation
46
Wykres poziomicowy
Funkcja celu
Numer iteracji
Algorytm Newtona
-2 -1 0 1 2-1
-0.5
0
0.5
1
1.5
2
2.5
3
x1
x2
x0
x
Gauss-Newton+mixed polynomial interpolation
0 2 4 6 8 10 1210
-20
10-15
10-10
10-5
100
105
Nr iteracji k
f(x
k )
Gauss-Newton and mixed polynomial interpolation
-2 -1 0 1 2-1
-0.5
0
0.5
1
1.5
2
2.5
3
x1
x2
x0
x
Gauss-Newton+mixed polynomial interpolation
47
Wykres poziomicowy
Funkcja celu
Numer iteracji
Top Related