47
Metody optymalizacji nieliniowej (metody programowania nieliniowego) Ewa Niewiadomska-Szynkiewicz Instytut Automatyki i Informatyki Stosowanej 1

(metody programowania nieliniowego) - Studia2 WEiTIstudia.elka.pw.edu.pl/pub/16Z/AE.A/ONL_1.pdf · bez ograniczeń (optymalizacja lokalna) Metody minimalizacji w kierunku (bezgradientowe

Embed Size (px)

Citation preview

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

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