kierunek poszukiwań

Transkrypt

kierunek poszukiwań
Metody optymalizacji nieliniowej
(metody programowania nieliniowego)
Ewa Niewiadomska-Szynkiewicz
Instytut Automatyki i Informatyki Stosowanej
1
Ewa Niewiadomska-Szynkiewicz
[email protected]
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
f(x)
f
*
x*,1
x*,2
x
x2
x1
3
Zastosowania
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
……
4
Historia optymalizacji
 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.
5
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
f(x)
f
*
x*,1
x*,2
x
6
Rozwiązania - lokalne i globalne
f(x)
• Punkt x * jest minimum globalnym
funkcji f w przestrzeni Rn, jeżeli
x  Rn : f (x )  f (x *)
f
*
x*,1
• Punkt x * jest minimum lokalnym funkcji f w przestrzeni Rn,
jeżeli istnieje takie otwarte otoczenie U  Rn punktu x * , że
x*,2
x
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
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)
 f ( x ) f ( x )
f ( x
f ( x )  
,
,....
x2
xn
 x1
0
0
0
0
)


T
Macierz Hessego (hesjan) funkcji f(x) w punkcie x0 :
(f(x) ma ciągłe drugie pochodne w x0)
  2 f ( x0 )  2 f ( x0 )
 2 f ( x0 ) 
,
,....



x

x

x

x

x

x
1
2
1
n 
 1 1
0
2
0
H (x )   f (x )  
......

2
0
2
0
2
0
 f (x ) 
 f (x )  f (x )
 x x , x x ,.... x x 
n
2
n
n 
 n 1
9
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:
f ( x)  x  2 x1 x2
2
1
Gradient funkcji w punkcie x0 = [1, 2]
f ( x )  2 x1  2 x2 ,2 x 
T
1 [1, 2 ]
0
 [6,2]T
Macierz Hessego (hesjan) funkcji w punkcie x0 = [1, 2]
 2 2
 f (x )  

2
0


2
0
12
Definicja wypukłości funkcji
Funkcję ciągłą f(x) na zbiorze x nazywamy wypukłą jeżeli:
x1 , x2X t[0,1]
f (tx1  (1  t ) x2 )  tf ( x1 )  (1  t ) f ( x2 )
13
Lemat o wypukłości funkcji
Funkcja różniczkowalna f(x) jest wypukła na zbiorze
wypukłym X wtedy i tylko wtedy, gdy
x, x  X
0
f ( x)  f ( x )  f ( x ), x  x
0
0
0
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
x  X
x , Hx  0
T
Minima lokalne funkcji wypukłej są globalnymi.
Wypukłość odgrywa kluczową rolę również w zadaniach niewypukłych.
14
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

f *  minimize f ( x) : x  R n

• 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 α
f ( x k 1 )  f ( x k  d )  f ( x k )
18
Zbieżność algorytmów optymalizacji
• Zbieżność lokalna a globalna
efektywne algorytmy są zbieżne lokalnie
f(x)
A
B
f*
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
*,1
x 0,1 x
x*,2 x 0,2 x
i
10

| x -x |
0
algorytm zb. liniowo
10
10
-5
-10
algorytm zb. kwadratowo
10
10
-15
-20
0
2
4
6
numer iteracji i
8
19
10
Kryteria zatrzymania algorytmu
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
|| xk  M  xk || 
2. Względna odległość między wartościami punktów po wykonaniu M iteracji
mniejsza od  > 0
|| xk  M  xk ||

|| xk ||
20
Kryteria zatrzymania algorytmu cd.
3. Po M iteracjach bezwzględna różnica wartości wskaźnika jakości mniejsza
od  > 0
f ( xk )  f ( xk  M )  
4. Po M iteracjach względna różnica wartości wskaźnika jakości mniejsza od
 >0
f ( xk )  f ( xk  M )

| f ( xk ) |
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
21
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
Metody poszukiwań prostych
(bezgradientowe i gradientowe)
(bezgradientowe)
Złotego podziału
Interpolacja kwadratowa
Testów jedno- i dwuskośnych
Metody poprawy
(bezgradientowe)
Gaussa-Seidela
Kierunków sprzężonych Powella
Hooka Jevesa
Rosenbrocka
Neldera i Meada
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
Modyfikacja kierunku
Modyfikacja kierunków dopuszczalnych
Metoda rzutu ortogonalnego
Modyfikacja funkcji celu
Metody zewnętrznej funkcji kary
Metody wewnętrznej funkcji kary
Tworzenie ograniczonego
sympleksu
Metoda Complex
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.
x2
x1
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
n
wyznaczany jest następująco:
wi
c

i 1
n
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
w3
c
w3
w3
xc
xr
xr
c
c xexr
29
xe
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,...
x2
x1
• 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
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.
x2
x
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
x2
Przykład
2
2
Optymalizacja kwadratowej funkcji: f ( x)  21x1  38 x1 x2  21x2
f(x)=21*x2+38*x *x +21*x2
1
2.5
1
2
2
2
1.5
f(xk)
2
10
x0
0
10
1
-2
10
0.5
-4
10
x
0
-6
10
-0.5
-2.5
-2
-1.5
-1
-0.5
0
x1
0.5
-8
10
0
5
10
15
20
25
30
35
40
45
Nr iteracji k
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:

f ( x )  f ( x )

f ( x ) f ( x )
k
t
k
k 1
t
k 1
dk-1
xk
dk
-f(xk)
dk-1
Formuła Polaka-Ribierre’a:

f ( x )  f ( x )  f ( x )

f ( x ) f ( x )
k 1
k
k 1
•
•
t
t
k
k 1
Algorytm jest zbieżny w n krokach dla funkcji kwadratowej
Dla bardziej nieliniowych funkcji gładkich można oczekiwać lokalnej
zbieżności superliniowej
39
Przybliżanie wartości funkcji za pomocą szeregu
Taylora
f (x
k 1
1 kT
)  f ( x )  f ( x )d  d  H ( x k )d k , d k  x k 1  x k
2
k
k
k
kwadratowa
liniowa
40
Algorytm Newtona i jego
modyfikacja
Motywacja algorytmu (rozwinięcie w szereg Taylora):
f (x
k 1
Stąd:
1 kT
)  f ( x )  f ( x )d  d  H ( x k )d k , d k  x k 1  x k
2
k
k

k

1
d   H ( x ) f ( x k ), H ( x)  2 f ( x)
k
k
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ń:
H ( x k ) d k  f ( x k )
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):
Q k 1
qk
sk
k
k t
k k
k k t
s
(
s
)
(
Q
q
)(
Q
q )
k
 Q  k t k 
(q ) s
(q k ) t Q k q k

f ( x k 1 )  f ( x k )

x k 1  x k
43
Przykład: funkcja Rosenbrocka
f(x)= 100*(x(2)-x(1)^2)^2+(1-x(1))^2
3000
o
3
2000
2
x
1000
1
0
0
-2
-1.5
-1
-0.5
0
0.5
1
x1
1.5
2
-1
x2
44
Algorytm Neldera-Meada
Algorytm Neldera-Meada
3
Funkcja celu
Algorytm Neldera Meada
2.5
2
4
10
x0
2
10
0

1
10
x
-2
10
0.5
f(xk)
x2
1.5
0
-0.5
-1
-2
-4
10
-6
10
-1
0
x1
1
Wykres poziomicowy
2
-8
10
-10
10
0
50
100
150
200
250
Nr iteracji k
Numer iteracji
45
Davidona-Fletchera-Powella DFP
DFP + mixed polynomial interpolation
3
2.5
2
x0
Funkcja celu

x
1
DFP+mixed polynomial interpolation
4
10
0.5
2
10
0
0
10
-0.5
-1
-2
-1.5
-1
-0.5
0
0.5
1
x1
Wykres poziomicowy
1.5
2
f(xk)
x2
1.5
-2
10
-4
10
-6
10
-8
10
0
5
10
15
20
25
30
Nr iteracji k
Numer iteracji
46
Algorytm Newtona
Gauss-Newton+mixed polynomial interpolation
Gauss-Newton+mixed polynomial interpolation
3
2.5
2.5
2 x0
2 x0
1.5
1.5
1
1
0.5
0.5
0
0
-0.5
-0.5
-1
-2-1
-2
Funkcja celu
Gauss-Newton
and mixed polynomial interpolation
5
10
x 
x
x2
x2
3
10
-5
f(xk)
10
0
-1
-1
0
x1 0
x1
1
10
2
1
Wykres poziomicowy
-10
2
10
10
-15
-20
0
2
4
6
Nr iteracji k
8
10
12
Numer iteracji
47