Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf ·...

30
Metody optymalizacji - teoria i wybrane algorytmy Michal Lewandowski 15 stycznia 2012 Spis treści I Algorytmy optymalizacji funkcji jednej zmiennej 2 1 Metody ustalania przedzialu, w którym znajduje się minimum 3 1.1 Metoda wyczerpującego poszukiwania (ang. exhaustive se- arch method) .............................. 3 1.2 Metoda przyspieszonego poszukiwania (ang. bounding phase method) .................................. 3 2 Metody znajdowania minimum z zadaną dokladnością: 4 2.1 Metody eliminowania obszarów ................... 4 Metoda dzielenia przedzialu na polowę .............. 5 Metoda zlotego podzialu ....................... 5 Metoda liczb Fibonacciego ...................... 6 2.2 Metody estymacji punktowej ..................... 7 Metoda interpolacji kwadratowej Powella ............. 7 2.3 Metody oparte na gradientach .................... 8 Metoda Newtona-Raphsona ...................... 9 Metoda siecznych (ang. secant method) .............. 10 2.4 Porównanie metod znajdowania minimum z zadaną doklad- nością ................................... 10 II Algorytmy optymalizacji funkcji wielu zmiennych 10

Transcript of Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf ·...

Page 1: Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf · Metody optymalizacji - teoria i wybrane algorytmy Michał Lewandowski 15 stycznia 2012

Metody optymalizacji - teoria i wybranealgorytmyMichał Lewandowski

15 stycznia 2012

Spis treści

I Algorytmy optymalizacji funkcji jednej zmiennej 2

1 Metody ustalania przedziału, w którym znajduje się minimum 31.1 Metoda wyczerpującego poszukiwania (ang. exhaustive se-arch method) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2 Metoda przyspieszonego poszukiwania (ang. bounding phasemethod) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Metody znajdowania minimum z zadaną dokładnością: 42.1 Metody eliminowania obszarów . . . . . . . . . . . . . . . . . . . 4Metoda dzielenia przedziału na połowę . . . . . . . . . . . . . . 5Metoda złotego podziału . . . . . . . . . . . . . . . . . . . . . . . 5Metoda liczb Fibonacciego . . . . . . . . . . . . . . . . . . . . . . 62.2 Metody estymacji punktowej . . . . . . . . . . . . . . . . . . . . . 7Metoda interpolacji kwadratowej Powella . . . . . . . . . . . . . 72.3 Metody oparte na gradientach . . . . . . . . . . . . . . . . . . . . 8Metoda Newtona-Raphsona . . . . . . . . . . . . . . . . . . . . . . 9Metoda siecznych (ang. secant method) . . . . . . . . . . . . . . 102.4 Porównanie metod znajdowania minimum z zadaną dokład-nością . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10II Algorytmy optymalizacji funkcji wielu zmiennych 10

Page 2: Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf · Metody optymalizacji - teoria i wybrane algorytmy Michał Lewandowski 15 stycznia 2012

METODY OPTYMALIZACJI Michał Lewandowski3 Metody bezpośrednich poszukiwań 113.1 Metoda hipersześcienna . . . . . . . . . . . . . . . . . . . . . . . . 123.2 Metoda sympleksu Neldera-Meada . . . . . . . . . . . . . . . . . 133.3 Metoda kierunków sprzężonych Powella. . . . . . . . . . . . . . 144 Metody gradientowe 154.1 Metoda Cauchy’ego najszybszego spadku . . . . . . . . . . . . . 164.2 Metoda Newtona . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174.3 Metoda Marquardta . . . . . . . . . . . . . . . . . . . . . . . . . . 18III Optymalizacja z ograniczeniami. 18

5 Teoria 18

6 Algorytmy 246.1 Metoda funkcji kar i barier . . . . . . . . . . . . . . . . . . . . . . 256.2 Metoda Rosena rzutowanego gradientu . . . . . . . . . . . . . . 26IV Tutorial z OCTAVE/MATLAB 29

7 Wprowadzenie 29

2

Page 3: Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf · Metody optymalizacji - teoria i wybrane algorytmy Michał Lewandowski 15 stycznia 2012

METODY OPTYMALIZACJI Michał LewandowskiMoja strona internetowa: http://michallewandowski.euMój adres e-mail: [email protected]ęść I

Algorytmy optymalizacji funkcjijednej zmiennejAlgorytmy w tym rozdziale mogą być stosowane do rozwiązywania proble-mów minimalizacji następującego typu:

min f (x)gdzie f (x) jest funkcją celu a x jest zmienną rzeczywistą. Wyróżnia się dwapodstawowe typy algorytmów:• Metody bezpośrednich poszukiwań (ang. direct search methods) oraz• Metody oparte na gradientach (ang. gradient-based methods)

Metody bezpośrednich poszukiwań wykorzystują wyłącznie wartości func-kji celu, natomiast metody oparte na gradientach wykorzystują rownież po-chodne pierwszego i/lub drugiego rzędu funkcji celu. Ponieważ gradientyliczymy numerycznie, funkcja celu nie musi by c rożniczkowalna ani nawetciągła, aby wykorzystywać metody gradientowe. Metody opisane tutaj mogąbyć stosowane również do maksymalizacji. Wystarczy po prostu sformuło-wać i rozwiązać równoważny problem dualny min(−f (x)).Poniższe metody zakładają, że funkcja celu jest unimodalna (ang. unimodalfunction), czyli taka, że ma tylko jedno minimum lokalne. W praktyce, dzie-li się funkcję na przedziały, w których jest ona unimodalna i dla każdegotakiego przedziału z osobna, znajduje się minimum. My będziemy zakładać,że szukamy minimum funkcji f na przedziale [a, b].Minimum funkcji znajduje się w dwóch fazach:• Metody ustalania przedziału, w którym znajduje się minimum (ang.

bracketing methods)• Metody znajdowania minimum z zadaną dokładnością:

– Metody eliminowania obszarów (ang. region elimination methods)3

Page 4: Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf · Metody optymalizacji - teoria i wybrane algorytmy Michał Lewandowski 15 stycznia 2012

METODY OPTYMALIZACJI Michał Lewandowski– Metoda estymacji punktowej (ang. point estimation method)– Metody oparte na gradientach (ang. gradient based methods)

1 Metody ustalania przedziału, w którym znajdujesię minimum

W tym podrozdziale przedstawione są dwie metody:1.1 Metoda wyczerpującego poszukiwania (ang. exhaustive se-

arch method)

Metoda ta polega na porównywaniu wartości funkcji celu dla punktów jed-nakowo od siebie odległych. Zazwyczaj poszukiwania zaczyna się od dolne-go ograniczenia zmiennej i w pojednynczej iteracji porównuje się wartościtrzech kolejnych punktów wykorzystując założenie unimodalności.Algorytm

1) Ustal x1 = a, ∆x = (b − a)/n (n jest liczbą punktów pośrednich),x2 = x1 + ∆x, i x3 = x2 + ∆x.

2) Jeśli f (x1) ≥ f (x2) ≤ f (x3), minimum znajduje się w (x1, x3), Zakończ;W przeciwnym przypadku x1 = x2, x2 = x3, x3 = x2 + ∆x i przejdź dokroku 3).3) Czy x3 ≤ b? Jeśli tak, to idź do kroku 2);Jeśli nie, to nie istnieje minimum w przedziale (a, b) lub punkt brze-gowy (a lub b) jest puntem minimalnym.

Ostateczny przedziałuzyskany przy użyciu tego algorytmu to 2(b − a)/n.Średnio potrzeba obliczyć (n/2 + 2) wartości funkcji, aby uzyskać żądanądokładność.1.2 Metoda przyspieszonego poszukiwania (ang. bounding pha-

se method)

Metoda ta polega na obraniu punktu początkowego i wybraniu kierunkuposzukiwań na podstawie porównania wartości funkcji w punkcie począt-kowym oraz dwóch wartości funkcji w punktach będących w bezpośred-nim sąsiedztwie punktu początkowego. Później znajduje się drugi kraniec4

Page 5: Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf · Metody optymalizacji - teoria i wybrane algorytmy Michał Lewandowski 15 stycznia 2012

METODY OPTYMALIZACJI Michał Lewandowskiprzedziału stosując wykładniczą strategię poszukiwań. Poniżej użyty jest wy-kładnik równy 2, ale można używac jakąkolwiek inną liczbę dodatnią. Wy-kładnik wyższy niż 1, powoduje ’przyspieszanie’ wykładnicze poszukiwań,co zmniejsza liczbę iteracji, ale dzieje się to kosztem uzyskanej dokładno-ści. Dla porównania w metodzie ustalania przedziału uzyskana dokładnośćjest lepsza, ale ilość potrzebnych iteracji jest większa.

Algorytm

1) Wybierz punkt początkowy x(0) oraz wartość ∆. Ustal k = 0.2) Jeśli f (x(0) − |∆|) ≥ f (x(0)) ≥ f (x(0) + |∆|), wtedy ∆ > 0;Jeśli f (x(0) − |∆|) ≤ f (x(0)) ≤ f (x(0) + |∆|), wtedy ∆ < 0;W pozostałych przypadkach wróć do kroku 1).3) Ustal x(k+1) = x(k) + 2k∆.4) Jeśli f (x(k+1)) < f (x(k)), ustal k = k + 1 i idź do kroku 3);W przeciwnym razie minimum znajduje się w przedziale (x(k−1), x(k+1)),

Zakończ.

2 Metody znajdowania minimum z zadaną dokład-nością:

2.1 Metody eliminowania obszarów

Ogólna zasada metod eliminowania obszarów jest następująca:Rozważmy dwa punkty x1 i x2, które leżą w przedziale (a, b) oraz x1 < x2.Dla problemu minimalizacji funkcji unimodalnej, można wyciągnąć nastę-pujące wnioski:• Jeśli f (x1) > f (x2), to minimum nie leży w (a, x1)• Jeśli f (x1) < f (x2), to minimum nie leży w (x2, b)• Jeśli f (x1) = f (x2), to minimum nie leży ani w (a, x1) ani w (x2, b)

Poniżej przedstawione zostaną trzy metody:• Metoda dzielenia przedziału na połowę (ang. interval halving method)• Metoda złotego podziału (ang. golden section search)• Metoda liczb Fibonacciego (ang. Fibonacci search)

5

Page 6: Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf · Metody optymalizacji - teoria i wybrane algorytmy Michał Lewandowski 15 stycznia 2012

METODY OPTYMALIZACJI Michał LewandowskiMetoda dzielenia przedziału na połowę

Metoda ta polega na wybraniu trzech punktów jednakowo odległych odsiebie oraz od krańców przedziału oraz wyliczeniu wartości funkcji w tychpunktach, w wyniku czego można wyeliminować połowę przedziału.Algorytm

1) Wybierz dolne i górne ograniczenie przedziału a i b oraz małą liczbęε. Niech xm = (a + b)/2, L0 = L = b − a. Wylicz f (xm).

2) Ustal x1 = a + L/4, x2 = b − L/4. Wylicz f (x1) oraz f (x2).3) Jeśli f (x1) < f (xm), ustal b = xm; xm = x1; Przejdź do kroku 5);W przeciwnym wypadku przejdź do kroku 4).4) Jeśli f (x2) < f (xm), ustal a = xm; xm = x2; Przejdź do kroku 5);W przeciwnym przypadku ustal a = x1, b = x2; przejdź do kroku 5).5) Wylicz L = b − a. Jeśli |L| < ε, Zakończ;W przeciwnym przypadku przejdź do kroku 2).

W każdej nowej iteracji algorytmu, potrzebne jest wyliczenie dwóch war-tości funkcji, a przedział zmniejsza się o połowę. Po n-krotnym wyliczeniuwartości funkcji, przedział zmniejsza się do około 0.5n/2L0. Czyli ilość ra-zy n, ile trzeba policzyć wartości funkcji, aby osiągnąć daną dokładność εmożna policzyć z następującego wzoru:(0.5)n/2(b − a) = ε.

Metoda złotego podziału

W metodzie tej w każdej nowej iteracji potrzeba wyliczyć tylko jedną no-wą wartość funkcji. Idea polega na tym, że spośród dwóch punktów, którepotrzebne są, aby stosować regułę eliminowania obszarów, jeden punkt jestzawsze poprzednim a tylko drugi punkt jest nowy. Ponadto przedział zawężasię za każdą iteracją proporcjonalnie o tyle samo, czyli o wartość ρ, któraspełnia następującą zależność:1− ρ1 = ρ1− ρ Ñ ρ = 3−√52 ≈ 0.382

Algorytm

6

Page 7: Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf · Metody optymalizacji - teoria i wybrane algorytmy Michał Lewandowski 15 stycznia 2012

METODY OPTYMALIZACJI Michał Lewandowski1) Wybierz dolne i górne ograniczenie przedziału a i b oraz małą liczbę

ε. Ustal k = 1.2) Ustal w1 = a + (1 − ρ)(b − a) oraz w2 = a + ρ(b − a). Wylicz f (w1)oraz f (w2), w zależności od tego, które z nich nie było wyliczone wcze-śniej. Wyeliminuj odpowiedni region zgodnie z regułą eliminowaniaobszarów. Ustal nowe a i b.3) Czy |a − b| < ε? Jeśli nie, ustal k = k + 1 i przejdź do kroku 2);Jeśli tak, Zakończ.

W tym algorytmie, po n-krotnym wyliczeniu wartości funkcji przedział zmiej-sza sie do (0.618)n−1(a−b), zatem ilość potrzebnych wyliczeń wartości funk-cji przy danej dokładności ε można wyliczyć z następującego wzoru:(0.618)n−1(a − b) = ε

Metoda liczb Fibonacciego

W metodzie złotego podziału proporcja zmniejszania się przedziału z iteracjina iterację pozostaje niezmienna i wynosi 0.618. W metodzie liczb Fibonac-ciego, idea jest taka sama jak w metodzie złotego podziału, z wyjątkiemfaktu, że w metodzie liczb Fibonacciego proporcja zmniejszania się prze-działu z iteracji na iterację zmienia się tak, aby przedział zmniejszał się wsposób optymalny (tzn. jak najbardziej). Jeśli ρk oznacza proporcje, o jakązmniejsza się przedział w k-tej iteracji, to w metodzie Fibonacciego zachodzinastępujący związek: 1− ρk+11 = ρk1− ρk (1)Okazuje się, że wartościami ρk ∈ (0, 1/2], gdzie k = 1, ..., N , które minimali-zują wyrażenie (1−ρ1)(1−ρ2) · · · (1−ρN ) i które spełniają powyższy związek(1), są następujące liczby:

ρ1 = 1− FNFN+1

ρ2 = 1− FN−1FN

...

ρk = 1− FN−k+1FN−k+2

...

ρN = 1− F1F2

7

Page 8: Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf · Metody optymalizacji - teoria i wybrane algorytmy Michał Lewandowski 15 stycznia 2012

METODY OPTYMALIZACJI Michał Lewandowskigdzie Fk oznaczają liczby Fibonacciego. Liczby Fibonacciego mają następu-jącą charakterystykę: F1 = 1, F2 = 1 i

Fk = Fk−1 + Fk−2gdzie k = 3, 4, ....

Algorytm

1) Wybierz dolne i górne ograniczenie przedziału a i b i ustal L = b−a.Ustal liczbę wyliczeń wartości funkcji n. Ustal k = 1.2) Wylicz L∗k = (1− ρN−k+1) · · · (1− ρ1)L = FN−k+1

FN+1 . Ustal x1 = a + L∗k orazx2 = b − L∗k.

3) Spośród f (x1) i f (x2) wylicz tą wartość, która nie była wcześniej po-liczona. Wyeliminuj region według ogólnej metody eliminowania ob-szarów. Ustal nowe a i b.4) Czy k = n? Jeśli nie, ustal k = k + 1 i idź do kroku 2);W przeciwnym przypadku, Zakończ.

W tym algorytmie przedział redukuje się do 2FN+1L do czego potrzebnychjest n wyliczeń wartości funkcji. Zatem ilość potrzebnych wyliczeń wartościfunkcji przy danej dokładności ε można wyliczyć z następującego wzoru:2

FN+1 (b − a) = ε

Jednym z minusów metody liczb Fibonacciego jest fakt, iż trzeba wyliczackolejne liczby Fibonacciego w każdej iteracji.2.2 Metody estymacji punktowej

W poprzednim podrozdziale omawiane były metody, które porównują war-tości funkcji. W metodach estymacji punktowej wykorzystuje się równieżwielkość różnicy wartości funkcji. Poniżej omówimy tylko metodę interpo-lacji kwadratowej Powella.Metoda interpolacji kwadratowej Powella

Szukamy trzy punkty x1 < x2 < x3 takie, że wartości funkcji w tych punk-tach spełniają f (x1) > f (x2) < f (x3). Szukamy równania wielomianu kwa-dratowego przechodzącego przez punkty (x1, f (x1)), (x2, f (x2)) i (x3, f (x3)).8

Page 9: Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf · Metody optymalizacji - teoria i wybrane algorytmy Michał Lewandowski 15 stycznia 2012

METODY OPTYMALIZACJI Michał LewandowskiW tym celu zapisujemy ogólne równanie wielomianu kwadratowego prze-chodzącego przez punkty x1 i x2:

q(x) = a0 + a1(x − x1) + a2(x − x1)(x − x2)Następnie szukamy współczynników tego wielomianu:

q(x1) = f (x1) = a0q(x2) = f (x2) = a0 + a1(x2 − x1)q(x3) = f (x3) = a0 + a1(x3 − x1) + a2(x3 − x1)(x3 − x2)

Otrzymujemy układ trzech równań, który rozwiązujemy, aby znaleźć współ-czynniki szukanego wielomianu:a0 = f (x1)a1 = f (x2)− f (x1)

x2 − x1a2 = 1

x3 − x2(f (x3)− f (x1)x3 − x1 − f (x2)− f (x1)

x2 − x1)

Teraz szukamy argumentu, dla którego ten wielomian kwadratowy osią-ga minimum. Ponieważ zgodnie z naszymi założeniami a2 > 0, minimumznajduje się tam, gdzie pochodna równa jest zero.q ′(x) = 0Ñ a1 + a2(x − x2 + x − x1) = 0Ñ x∗ = x1 + x22 − a12a2W punkcie x∗ wielomian kwadratowy q(x) osiąga minimum. Ponieważ q(x)jest przybliżeniem funkcji f (x), której minimum szukamy, x∗ jest przybli-żeniem wartości, w której funkcja f (x) osiąga minimum. Spośród punk-tów (x1, x2, x3, x∗), zatrzymujemy trzy najlepsze (innymi słowy wyrzucamypunkt, w którym wartość funkcji f (x) jest największa) i ponownie dokonuje-my interpolacji kwadratowej dla tych trzech punktów i szukamy minimumotrzymanego wielomianu. Procedura ta powtarzana jest do momentu, kiedyosiągnięta zostanie żądana dokładność.Alogorytm Powella, który został zarysowany powyżej znajduje minimumszybciej niż metoda złotego podziału, jeśli funkcja f (x) nie jest skrzywiona.Dla mocno niesymetrycznych funkcji, metoda złotego podziału pozostajejednak lepsza.

2.3 Metody oparte na gradientach

Metody opisane dotychczas wykorzystywały tylko wartości funkcji. Meto-dy oparte na gradientach wykorzystujá natomiast dodatkowo informację o9

Page 10: Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf · Metody optymalizacji - teoria i wybrane algorytmy Michał Lewandowski 15 stycznia 2012

METODY OPTYMALIZACJI Michał Lewandowskipochodnych funkcji. Gradienty zazwyczaj oblicza się numerycznie. Używa-jąc metody różnic centralnych (ang. central difference method), liczymypierwszą i drugą pochodną w punkcie xk następująco:

f ′(x(k)) = f (x(k) + ∆x(k))− f (x(k) −∆x(k))2∆x(k) (2)f ′′(x(k)) = f (x(k) + ∆x(k))− 2f (x(k)) + f (x(k) −∆x(k))(∆x(k))2 (3)

Parametr ∆x(k) powinien być mały, na przykład może stanowić 1% wartościx(k).Metoda Newtona-Raphsona

Załóżmy, że możemy policzyć f (x(k)), f ′(x(k)) i f ′′(x(k)) w każdym punkciepomiaru funkcji x(k). Możemy zdefiniować wielomian kwadratowy, któregopierwsza i druga pochodna oraz wartść w punkcie x(k) są identyczne z tymidla funkcji f (x). Ten wielomian ma następującą postać:q(x) = f (x(k)) + f ′(x(k))(x − x(k)) + 12f ′′(x(k))(x − x(k))2

Zamiast minimalizować funkcję f (x) minimalizujemy jej przybliżenie q(x).Warunek pierwszego rzędu na istnienie minimum jest następujący:0 = q ′(x) = f ′(x(k)) + f ′′(x(k))(x − x(k))

Nowy punkt x = x(k+1) spełnia zatem:x(k+1) = x(k) − f ′(x(k))

f ′′(x(k))Metoda Newtona-Raphsona polega na kontynuowaniu powyższej procedu-ry do momentu, w którym pochodna f ′(x(k+1)) będzie wystarczająco bliskozera. Jeśli podstawimy g(x) = f ′(x), wtedy otrzymujemy formułę do itera-cyjnego poszukiwania rozwiązania równania g(x) = 0:x(k+1) = x(k) − g(x(k))

g ′(x(k))Metoda Newtona-Raphsona działa dobrze jeśli f ′′(x) > 0 wszędzie. Jeśli na-tomiast f ′′(x) < 0 dla pewnego x, algorytm może nie zbiegać do minimum.Jeśli zamiast analitycznych pochodnych funkcji wykorzystujemy przybliżonepochodne (por. (2) oraz (3)), wówczas algorytm powyższy nazywamy quasi-newtonowskim.

10

Page 11: Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf · Metody optymalizacji - teoria i wybrane algorytmy Michał Lewandowski 15 stycznia 2012

METODY OPTYMALIZACJI Michał LewandowskiMetoda siecznych (ang. secant method)

Jest to metoda podobna do Newtona-Raphsona. Zamiast f ′′(x(k)), używa sięnastępującego przybliżenia:f ′(x(k))− f ′(x(k−1))

x(k) − x(k−1)Otrzymuje się wtedy przedstawiony poniżej algorytm, który nazywa się me-todą siecznych:

x(k+1) = x(k) − x(k) − x(k−1)f ′(x(k))− f ′(x(k−1))f ′(x(k))

Metoda siecznych wymaga dwóch punktów startowych x(−1) i x(0).Tak samo, jak w przypadku metody Newtona Raphsona, metodę siecznychmożna wykorzystać do znajdowania pierwiastków równania g(x) = 0. Otrzy-mujemy wtedy algorytm:x(k+1) = x(k) − x(k) − x(k−1)

g(x(k))− g(x(k−1))g(x(k))2.4 Porównanie metod znajdowania minimum z zadaną dokład-

nością

Metoda liczb Fibonacciego jest najbardziej efektywną metodą eliminacji ob-szarów jeśli początkowy przedział, w którym leży minimum jest znany. Je-śli nie znamy początkowego przedziału oraz pochodnych funkcji, wówczasnajlepsza powinna być metoda iterpolacji kwadratowej Powella lub metodaquasi-newtonowska. Gdy pierwsze pochodne są dostępne, metoda siecznychlub metoda interpolacji sześciennej1 powinna być najbardziej efektywna. Wkońcu metoda Newtona-Raphsona jest najbardziej efektywna, gdy dostępnesą informacje i pierwszych i drugich pochodnych funkcji.1Ta metoda nie została omówiona w rozdziale. Jest to metoda podobna do interpolacjikwadratowej, używa jednak pierwszych pochodnych funkcji w celu zmniejszenia ilości po-trzebnych wartości funkcji w pojedynczej iteracji.

11

Page 12: Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf · Metody optymalizacji - teoria i wybrane algorytmy Michał Lewandowski 15 stycznia 2012

METODY OPTYMALIZACJI Michał LewandowskiCzęść II

Algorytmy optymalizacji funkcjiwielu zmiennychDana jest funkcja wielu zmiennych: f : RN Ï R. Mówimy, że punkt x jestpunktem stacjonarnym, jeśli gradient w tym punkcie jest zerowym wek-torem: ∇f (x) = 0. Punkt ten jest lokalnym minimum, jeśli Hesjan w tympunkcie ∇2f (x) jest dodatnio określony. Macierz jest dodatnio określonajeśli wszystkie jej wartości własne są dodatnie: λi > 0, i = 1, 2, ..., N2.W niniejszej części skryptu omówione będą następujące algorytmy mini-malizacji funkcji wielu zmiennych:• Metody bezpośrednich poszukiwań:

– Metoda hipersześcienna (ang. evolutionary optimization)– Metoda sympleksowa Neldera-Meada– Metoda kierunków sprzężonych (ang. conjugate direction) Po-wella

• Metody gradientowe (ang. descent methods)– Metoda najszybszego spadku (ang. steepest descent method)– Metoda Newtona– Metoda Marquardta– Metoda sprzężonego gradientu Fletcher-Reevesa– Metody quasinewtonowskie:∗ Metoda Davidon-Fletcher-Powella (DFP)∗ Metoda Broyden-Fletcher-Goldfarb-Shannona (BFGS)

3 Metody bezpośrednich poszukiwań

Tak jak w przypadku optymalizacji funkcji jednej zmiennej metody bezpo-średnich poszukiwań korzystają wyłącznie z wartości funkcji w punktach,w przeciwieństwie do metod gradientowych, które dodatkowo wykorzystująpochodne funkcji.2Macierz symetryczna, a taką jest Hesjan ma wszystkie wartości własne rzeczywiste, nietrzeba się więc martwić o zespolone wartości własne.

12

Page 13: Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf · Metody optymalizacji - teoria i wybrane algorytmy Michał Lewandowski 15 stycznia 2012

METODY OPTYMALIZACJI Michał Lewandowski3.1 Metoda hipersześcienna

Algorytm potrzebuje w pojedynczej iteracji 2N+1 punktów, z czego 2N punk-tów to są wierzchołki hipersześcianu scentrowanego na pozostałym punk-cie. Porównuje się wartości funkcji we wszystkich tych punktach i wskazujesię najlepszy (z najmniejszą wartością). W następnej iteracji tworzy się sze-ścian wokół tego najlepszego punktu. Jeśli najlepszym punktem okaże siępunkt, który był środkiem danego hipersześcianu, wówczas zmniejsza sięrozmiar sześcianu. Proces ten kontynuuje się aż hipersześcian stanie siędostatecznie mały.Algorytm

1) Wybierz punkt początkowy x(0) oraz parametry redukcji ∆i dla każdejze zmiennych, i = 1, 2, ..., N . Wybierz parametr zakończenia ε. Ustalx = x(0)

2) Jeśli ||∆|| < ε, Zakończ;W przeciwnym przypadku stwórz 2N punktów poprzez dodanie i od-jęcie ∆i/2 do/od każdej zmiennej w punkcie x.3) Oblicz wartość funkcji dla wszystkich (2N + 1) punktów. Znajdź punktz najmniejszą wartością. Ustal ten punkt jako x.4) Jeśli x = x(0), zredukuj parametry redukcji ∆i = ∆i/2 i przejdź dokroku 2);W przeciwnym przypadku ustal x(0) = x i przejdź do kroku 2)

W powyższym algorytmie w każdej iteracji trzeba policzyć maksymalnie 2Nwartości fukcji. Czyli ilość potrzebnych ewaluacji funkcji wzrasta wykładni-czo wraz z N .Jeśli algorytm znajdzie dokładne minimum funkcji w którejś iteracji, niezatrzymuje się automatycznie. Wartość ||∆|| musi spaść poniżej ε , aby algo-rytm zakończył działanie.Ustalenie dużego parametru redukcji ∆i jest dobre, ale wtedy algorytm mo-że potrzebować wielu iteracji a zatem i wielu ewaluacji funkcji. Z drugiejstrony ustalenie małego parametru redukcji może prowadzić do zbyt wcze-snej zbieżności algorytmu do suboptymalnego punktu, szczególnie w przy-padku funkcji bardzo nieliniowych. Redukcja parametru redukcji nie musibyć dwukrotna tak jak w algorytmie podanym powyżej (patrz krok 4)). Dla13

Page 14: Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf · Metody optymalizacji - teoria i wybrane algorytmy Michał Lewandowski 15 stycznia 2012

METODY OPTYMALIZACJI Michał Lewandowskilepszej zbieżności algorytmu rekomenduje się redukcję mniejszą niż dwu-krotną3.3.2 Metoda sympleksu Neldera-Meada

Sympleks wymaga dużo mniejszej ilości punktów niż hypersześcian, co sta-je się szcególnie widoczne dla wielu wymiarów. Sympleks w N-wymiarowejprzestrzeni ma N + 1 wierzchołków. Jest to minimalna ilość wierzchoł-ków umożliwiająca poszukiwanie we wszystkich możliwych kierunkach N-wymiarowej przestrzeni. Ważne jest jednak, aby sympleks4 nie rozpinał fi-gury o zerowej objętości w N-wymiarowej przestrzeni - czyli na przykładdla funkcji dwuwymiarowej trzy punkty sympleksu nie mogą leżeć na jed-nej linii, a w przypadku funkcji trójwymiarowej cztery punkty sympleksunie mogą leżeć na jednej płaszczyźnie.Działanie metody najlepiej widać w pseudokodzie algorytmu:Algorytm

1) Wybierz γ > 1, β ∈ (0, 1) oraz parametr zakończenia ε. Stwórz sym-pleks początkowy.2) Znajdź najgorszy punkt xw , najlepszy punkt xb oraz drugi w kolejnościnajgorszych xm. Oblicz punkt, wzgędem którego będziemy odbijać xw :

xc = 1N

N+1∑i=1,i 6=h xi.

3) Oblicz punkt odbicia xr = 2xc − xw . Ustal xnew = xr .Jeśli f (xr) < f (xb), ustal xnew = (1 + γ)xc − γxw (ekspansja);Jeśli f (xr) ≥ f (xw), ustal xnew = (1− β)xc + βxw (kontrakcja);Jeśli f (xm) < f (xr) < f (xw), ustal xnew = (1 + β)xc − βxw (kontrakcja).Policz f (xnew) i wymień xw na xnew.4) Jeśli ∑N+1

i=1 (f (xi)−f (xc))2N+1 1/2

≤ ε , Zakończ;W przeciwnym przypadku idź do kroku 2).Jednym ze sposobów stworzenia sympleksu początkowego do pierwszegokroku algorytmu jest wybranie punktu bazowego x(0) oraz liczby C. Wów-

3W kroku 4): ∆i = ∆i/p, gdzie p ∈ (1, 2).4Chodzi tutaj o sympleks początkowy. O następne nie trzeba się martwić, co będzie wi-doczne w algorytmie.14

Page 15: Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf · Metody optymalizacji - teoria i wybrane algorytmy Michał Lewandowski 15 stycznia 2012

METODY OPTYMALIZACJI Michał Lewandowskiczas N + 1 punktów sympleksu to x(0) oraz dla i, j = 1, 2, ..., N :x(i)j = x(0)

j +C if j = ix(0)j +C∆ otherwise, where ∆ = 0.25 if N = 3

√N+1−2N−3 otherwise.

Dla zapewnienia dobrej zbieżności algorytmu, sugeruje się ustalenie γ ≈ 2i |β| ≈ 0.5.3.3 Metoda kierunków sprzężonych Powella.

Metoda kierunków sprzężonych Powella jest chyba najbardziej popularnąmetodą bezpośrednich poszukiwań. Wykorzystuje ona historię poprzednichrozwiązań, aby swtorzyć nowe kierunki poszukiwań. Idea jest prosta: trzebautworzyć N liniowo niezależnych kierunków poszukiwań i dokonać sekwen-cyjnie serię poszukiwań wzdłuż tych kierunków, startując za każdym razemz poprzednio znalezionego punktu.Algorytm

1) Wybierz punkt początkowy x(0) oraz zbiór N liniowo niezależnych kie-runków; najlepiej s(i) = e(i), dla i = 1, 2, ..., N , gdzie e(i) oznacza i-tywektor bazowy bazy kanonicznej.2) Szukaj minimum startując z punktu początkowego wzdłuż kierunku

s(1). Startując z nowo znalezionego punktu (oznacz go jako y(1)), szukajminimum wzdłuż kierunku s(2). Kontynuuj szukanie wzdłuż kolejnychkierunków aż do kierunku s(N). Następnie ponownie szukaj minimumwdłuż kierunku s(1). Punkt, który został ostatecznie znaleziony oznaczjako y(2).3) Oblicz d = y(2) − y(1). Jest to kierunek sprzężony do s(1).4) Jeśli ||d|| jest małe lub kierunki s(1), s(2), ..., s(N−1), d są liniowo zależne,

Zakończ;W przeciwnym przypadku ustal s(j) = s(j−1) dla wszystkich j = N,N −1, ..., 2. Ustal s(1) = d/||d|| i idź do kroku 2).

15

Page 16: Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf · Metody optymalizacji - teoria i wybrane algorytmy Michał Lewandowski 15 stycznia 2012

METODY OPTYMALIZACJI Michał Lewandowski4 Metody gradientowe

Gradient w punkcie x(t) możemy przybliżyć numerycznie za pomocą nastę-pującej formuły:∇f (x(t)) =

∂f (x(t))∂x1

∂f (x(t))∂x2...

∂f (x(t))∂xN

, gdzie ∂f (x(t))∂xi

= f (x(t)i + ∆x(t)

i )− f (x(t)i −∆x(t)

i )2∆x(t)i

Hesjan w punkcie x(t) natomiast liczymy następująco:∇2f (x(t) =

∂2f (x(t))∂x21

∂2f (x(t))∂x1∂x2 ... ∂2f (x(t))

∂x1∂xN∂2f (x(t))∂x2∂x1 ∂2f (x(t))

∂x22 ... ∂2f (x(t))∂x2∂xN

... ... ... ...∂2f (x(t))∂xN∂x1 ∂2f (x(t))

∂xN∂x2 ... ∂2f (x(t))∂x2

N

gdzie:

∂2f (x(t))∂x2

i= f (x(t)

i + ∆x(t)i )− 2f (x(t)) + f (x(t)

i −∆x(t)i )(∆x(t)

i )2∂2f (x(t))∂xi∂xj

= ∂f (x(t)i +∆x(t)

i )∂xj − ∂f (x(t)

i −∆x(t)i )

∂xj2∆x(t)iPochodne cząstkowe w ostatnim wyrażeniu powyżej są z kolei liczone tak,jak składowe gradientu, tylko że w innym punkcie. Wyrażenie x(t)

i + ∆x(t)ireprezentuje wektor (x(t)1 , ..., x(t)

i + ∆x(t)i , ..., x

(t)N )TŻeby policzyć gradient potrzebnych jest 2N różnych wartości funkcji. Ażeby

policzyć Hesjan potrzebnych jest 3N + 4( N2) = 2N2 +N .

Ponieważ gradient jest kierunkiem najszybszego wzrostu, minus gradientjest kierunkiem najszybszego spadku funkcji. Kierunek poszukiwań (ang.search direction) d(t) jest kierunkiem spadku w punkcie x(t), jeśli w otocze-niu tego punktu spełniony jest następujący warunek:

∇f (x(t)) · d(t) ≤ 0Oznacza to, że cosinus kąta między gradientem i kierunkiem poszukiwańjest większy niż 900. Kierunek d(t) jest kierunkiem spadku, ponieważ wwyniku rozwinięcia f wokół x(t) otrzymujemy:

f (x(t+1)) = f (x(t) + αd(t)) = f (x(t)) + α∇f (x(t)) · d(t).16

Page 17: Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf · Metody optymalizacji - teoria i wybrane algorytmy Michał Lewandowski 15 stycznia 2012

METODY OPTYMALIZACJI Michał LewandowskiIm niższa ujemna wartość ∇f (x(t)) · d(t) tym większy spadek funkcji w kie-runku d(t).W metodach gradientowych często w ramach pojedynczej iteracji dokonujesię poszukiwań w danym kierunku. Jest to optymalizacja jednowymiarowa.Najpierw zapisujemy reprezentatywny punkt wzdłuż kierunku s(t) jako:

x(k+1) = x(k) + α(k)s(k),gdzie α(k) jest długością kroku. Ponieważ x(k) i s(k) są znane, punkt x(k+1)można zapisać tylko jedną zmienną. Można więc wykonać minimalizacjęjednowymiarową, aby otrzymać nowy punkt x(k+1). Następnie poszukiwaniakontynuuje się wzdłuż nowego kierunku s(k+1) i tak dalej aż do momentuznalezienia lokalnego minimum. Jeśli metoda gradientowa jest użyta do po-szukiwań jednowymiarowych wzdłuż kierunku, minimum znajdujemy po-przez zróżniczkowanie wyrażenia f (x(t+1)) = f (x(t) + αs(k)) względem α iprzyrównaniem do zera:

∇f (x(k+1)) · s(k) = 0.W ten sposób znajdujemy nowy punkt x(k+1). Okazuje się że kąt pomiędzykierunkiem poszukiwań w k-tej iteracji i kierunkiem najszybszego spadkuw nowym punkcie −∇f (x(k+1)) jest równy 900.4.1 Metoda Cauchy’ego najszybszego spadku

Kierunek poszukiwań w metodzie Cauchy’ego jest kierunkiem najszybsze-go spadku:s(k) = −∇f (x(k)).

Algorytm ten gwarantuje poprawę, to jest spadek wartości funkcji, w każdejiteracji. Metoda najszybszego spadku działa dobrze, gdy x(0) jest daleko odminimum x∗. Jeśli bieżący punkt jest blisko minimum, zmiana gradientu jestmała, wobec następny punkt powstały w wyniku poszukiwania w jednymkierunku jest blisko punktu bieżącego.Algorytm

1) Wybierz maksymalną liczbę iteracji M , punkt początkowy oraz dwaparametry zakończenia ε1 i ε2 i ustal k = 0.2) Oblicz ∇f (x(k))

17

Page 18: Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf · Metody optymalizacji - teoria i wybrane algorytmy Michał Lewandowski 15 stycznia 2012

METODY OPTYMALIZACJI Michał Lewandowski3) Jeśli ||∇f (x(k))|| ≤ ε1, Zakończ;Jeśli k ≥M ; Zakończ;W przeciwnym razie idź do kroku 4).4) Wykonaj poszukiwanie wzdłuż kierunku, żeby znaleźć α(k) tak, aby

f (x(k+1)) = f (x(k) + α(k)s(k)) było minimalne. Jednym z kryteriów za-kończenia jest |∇f (x(k+1)) · ∇f (x(k))| ≤ ε2.5) Jeśli ||x(k+1)−x(k)||

||x(k)|| ≤ ε1, Zakończ;W przeciwnym przypadku ustal k = k + 1 i idź do kroku 2).4.2 Metoda Newtona

Rozwinięcie w szereg Taylora drugiego rzędu funkcji f wokół punktu x(t)przyjmuje następującą formę:f (x(k+1)) = f (x(k)) +∇f (x(k))T (x − x(k)) + 12(x − x(k))T∇2f (x(k))(x − x(k))

Jeśli policzymy warunek pierwszego rzędu na maksimum lokalne tej funk-cji, otrzymujemy:∇f (x(k)) +∇2f (x(k))(x − x(k)) = 0

Podstawiając x(k+1) = x, otrzymujemy:x(k+1) = x(k) − [∇2f (x(k))]−1

∇f (x(k))Kierunek poszukiwań w metodzie Newtona jest zatem dany wyrażeniem:

s(k) = − [∇2f (x(k))]−1∇f (x(k))

Jeśli macierz [∇2f (x(k))]−1 jest półdodatnio określona, kierunek s(k) jest kie-runkiem spadku. Warunek drugiego rzędu optymalizacji mówi, że macierz∇2f (x∗) jest dodatnio określona dla minimum lokalnego. Można zatem za-łożyć, że macierz ∇2f (x) jest dodatnio określona w otoczeniu minimum.Metoda Newtona jest więc dobra, kiedy punkt początkowy jest blisko mini-mum.Algorytm jest bardzo podobny do metody najszybszego spadku. Poszukiwa-nia prowadzone są jednak w innym kierunku s(k) = − [∇2f (x(k))]−1

∇f (x(k)).Możliwy warunek zakończenia optymalizacji wzdłuż kierunku wygląda na-stępująco: ∣∣∣∣∇f (x(k+1)) · [∇2f (x(k))]−1∇f (x(k))∣∣∣∣ ≤ ε2.

18

Page 19: Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf · Metody optymalizacji - teoria i wybrane algorytmy Michał Lewandowski 15 stycznia 2012

METODY OPTYMALIZACJI Michał Lewandowski4.3 Metoda Marquardta

Metoda Cauchy’ego działa dobrze, gdy punkt początkowy jest daleko od mi-nimum, podczas, gdy metoda Newtona działa dobrze, gdy punkt początkowyjest blisko minimum. W metodzie Marquardta, metodę Cauchy’ego stosujesię na początku by następnie zaadoptować metodę Newtona.Algorytm

1) Wybierz maksymalną liczbę iteracji M , punkt początkowy oraz para-metr zakończenia ε. Ustal k = 0 oraz λ(0) = 104 (duża liczba).2) Oblicz ∇f (x(k))3) Jeśli ||∇f (x(k))|| ≤ ε , Zakończ;Jeśli k ≥M ; Zakończ;W przeciwnym razie idź do kroku 4).4) Oblicz x(k+1) = x(k) − [∇2f (x(k)) + λ(k)I]−1

∇f (x(k))5) Jeśli f (x(k+1)) < f (x(k)), idź do kroku 6);W przeciwnym przypadku idź do kroku 7).6) Ustal λ(k+1) = 12λ(k), k = k + 1 i idź do kroku 2).7) Ustal λ(k+1) = 2λ(k) i idź do kroku 4).

Algorytm może być szybszy, jeśli dodatkowo będziemy dokonywać optyma-lizacji wzdłuż kierunku w każdej iteracji.Część III

Optymalizacja z ograniczeniami.

5 Teoria

Nieniejszy rozdziałma służyć intuicyjnemu przedstawieniu idei twierdzeniaLagrangeá i Kuhn-Tuckera.Dane jest następujące zadanie optymalizacyjne:max

x∈D⊂RNf (x)

19

Page 20: Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf · Metody optymalizacji - teoria i wybrane algorytmy Michał Lewandowski 15 stycznia 2012

METODY OPTYMALIZACJI Michał LewandowskiZbiór D jest zbiorem punktów dopuszczalnych. Zbiór ten będziemy przed-stawiać za pomocą ograniczeń w postaci równości h(x) = c oraz ograniczeńw postaci nierówności g(x) ≤ c. W przypadku ograniczeń w postaci nierów-ności, mówimy, że dane ograniczenie jest aktywne bądź napięte w punkciedopuszczalnym x jeśli zachodzi g(x) = c. W przeciwnym przypadku, tj. gdyg(x) < c mówimy, że ograniczenie jest nieaktywne lub luźne w punkcie do-puszczalnym x. Oczywiście dla ograniczeń w postaci równości dla punktudopuszczalnego ograniczenie z definicji musi być napięte. Intuicję dotyczącązagadnień optymalizacyjnych najlepiej wyrobić sobie graficznie dla przypad-ku, gdy x ∈ R2.Rysunki poniżej pokazują, że w przypadku ograniczeń w postaci równości wpunkcie optymalnym5 nachylenie funkcji celu i ograniczenia powinno byćrówne:

∇h(x*)

x2

x*

x'∇h(x')

∇f(x')

x1

A

h(x)=c

∇f(x*)

∇f(x*)=λ∇h(x*), λ>0Równe nachylenie i mnożnik dodatni

∇h(x*)

x2

x*

x'

∇h(x')

∇f(x')

x1

A

h(x)=c

∇f(x*)

∇f(x*)=λ∇h(x*), λ<0

Równe nachylenie i mnożnik ujemny

5Zakładając różniczkowalność.

20

Page 21: Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf · Metody optymalizacji - teoria i wybrane algorytmy Michał Lewandowski 15 stycznia 2012

METODY OPTYMALIZACJI Michał LewandowskiMożemy to zapisać w następujący sposób:

∇f (x∗) = λ∇h(x∗) (4)gdzie symbol λ oznacza mnożnik Lagrange’a.Tak więc problem optymalizacji z ograniczeniem maxx f (x), p.w. h(x) =c można sprowadzić do problemu optymalizacji bez ograniczeń funkcjiL(x, λ) = f (x) − λ(h(x) − c), zwanej funkcją Lagrange’a, bowiem warunkipierwszego rzędu optymalizacji tej funkcji będą dokładnie równe warun-kom (4) oraz ograniczeniu h(x∗) = c:

∇f (x∗)− λ∇h(x∗) = 0h(x∗)− c = 0

Z powyższych rysunków wynika również, że w przypadku ograniczeń w po-staci równości mnożnik Lagrange’a może być zarówno dodatni, jak i ujemny.Jedyna wymagana rzecz jest taka, że musi on być zdefiniowany. Aby mnoż-nik można było zdefiniować musi być spełniony następujący warunek:∇h(x∗) 6= 0 (5)

Gradient ograniczenia w punkcie optymalnym musi być różny od wektorazerowego. W naszym przykładzie oznacza to, że:[∂h(x∗)∂x1

∂h(x∗)∂x2

]6= [ 00

]Dla problemu optymalizacji z ograniczeniami w postaci nierówności g(x) ≤c problem jest podobny, lecz nieco bardziej złożony. Jeśli optimum jest wpunkcie, w którym dane ograniczenie nie jest aktywne, to warunek pierw-szego rzędu jest taki sam jak, gdyby ograniczenia nie było tj.

∇f (x∗) = 0 (6)Warunek pierwszego rzędu funkcji Lagrange’a wynosi zaś:

∇f (x∗)− λg(x∗) = 0Aby te warunki się zgadzały, mnożnik Lagrange’a w tym przypadku musiwynosić zero.Jeśli zaś optimum jest w punkcie, w którym dane ograniczenie jest aktywne,wówczas mamy do czynienia z sytuacją jak na rysunku poniżej:

21

Page 22: Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf · Metody optymalizacji - teoria i wybrane algorytmy Michał Lewandowski 15 stycznia 2012

METODY OPTYMALIZACJI Michał Lewandowski

∇f(x*)

x2

x1

x*

x'∇g(x')

∇f(x')A

g(x)≤c

∇g(x*)

∇f(x*)=λ∇g(x*), λ>0

W tym przypadku mnożnik Lagrange’a musi być dodatni, ponieważ w prze-ciwnym razie moglibyśmy przesunąć punkt x∗ do wewnątrz zbioru dopusz-czalnego podnosząc wartość funkcji celu f - co przeczyłoby optymalnościpunktu x∗:

∇g(x*)

∇f(x*)

x2

x1

Dlaczego mnożnik Lagrange'amusi być dodatni

g(x)=b

g(x)>bg(x)<b

Zatem mamy dwie sytuacje możliwe w punkcie optymalnym:• ograniczenie aktywne, mnożnik dodatni: g(x) = c i λ > 0• ograniczenie nieaktywne, mnożnik zerowy: g(x) < 0 i λ = 0

22

Page 23: Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf · Metody optymalizacji - teoria i wybrane algorytmy Michał Lewandowski 15 stycznia 2012

METODY OPTYMALIZACJI Michał LewandowskiTe dwa przypadki można zapisać jednym warunkiem zwanym "complemen-tary slackness":

λ[g(x∗)− c] = 0Analiza będzie podobna jeśli ograniczenia w postaci ≤ zamienimy na ogra-niczenia w postaci ≥. Wówczas trzeba jednak w prezentacji graficznej zmo-dyfikować kierunki gardientów ograniczeń:

x2

x1

x|g2(x)=b2

∇g1(x) ∇g4(x)

∇g3(x)

∇g2(x)g1(x)≥b1

g2(x)≥b2

g3(x)≥b3

g4(x)≥b4

Ograniczenia w postaci ≥

x2

x1

x|g2(x)=b2

∇g1(x)

∇g4(x)

∇g3(x)

∇g2(x)

g1(x)≤b1

g2(x)≤b2

g3(x)≤b3

g4(x)≤b4

Ograniczenia w postaci ≤

W przypadku więcej niż jednego ograniczenia, zarówno jeśli chodzi o ogra-niczenia w postaci równości, które w punkcie optymalnym muszą być ak-23

Page 24: Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf · Metody optymalizacji - teoria i wybrane algorytmy Michał Lewandowski 15 stycznia 2012

METODY OPTYMALIZACJI Michał Lewandowskitywne z definicji6, jak i ograniczenia w postaci nierówności, ale które wpunkcie optymalnym są aktywne, mamy do czynienia z sytuacją, jak na ry-sunku poniżej:

x2

x1

∇g1(x*)

∇g2(x*)g1(x)=c1

g1(x)≤c1g2(x)=c2

g2(x)≤c2 ∇f(x*)

∇f(x*)=λ1∇g1(x*)+λ2∇g2(x*)Kombinacja liniowa gradientów ograniczeń aktywnych

Tym razem gradient funkcji celu musi być kombinacją liniową gradientówograniczeń aktywnych. W punkcie x∗ oba ograniczenia g1(x) ≤ c1 orazg2(x) ≤ c2 są aktywne, a zatem w tym punkcie gradient funkcji celu jestkombinacją liniową gradientów obu ograniczeń. Mnożniki Lagrange’a od-powiadające poszczególnym ograniczeniom występują tutaj w roli wag kom-binacji liniowej. Oczywiście, aby gradient funckji celu dało się zapisać jakokombinacjłe liniową gradientów ograniczeń aktywnych, te gradienty ogra-niczeń aktywnych powinny być liniowo niezależne. Inaczej możemy miećdo czynienia z sytuacją, jak na rysunku poniżej:

6Punkt optymalny musi być punktem dopuszczalnym.

24

Page 25: Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf · Metody optymalizacji - teoria i wybrane algorytmy Michał Lewandowski 15 stycznia 2012

METODY OPTYMALIZACJI Michał Lewandowski

∇f(x*)

∇g1(x*)

∇g2(x*)

Dlaczego potrzebne jest constraint qualification?

x2

x1

Jedyny punkt dopuszczalny to punkt x∗, zatem jest on zarazem punktemoptymalnym. Jednakże nie da się zapisać ∇f (x∗) jako liniową kombinacjęgradientów ∇g1(x∗) i ∇g2(x∗). Liniowa niezależność gradientów wszystkichograniczeń w postaci równości oraz aktywnych ograniczeń w postaci nie-równości jest zwana warunkiem "constraint qualification".Warunek konieczny nie wystarczajacyNie mozna pozbywac sie nieaktywnych ograniczenDlaczego x=0 nie mozna zastapic x<=0 i -x<=0.Cofnij sie do h(x)=c i wytlumacz ten punkcik A na rysuneczkach6 Algorytmy

Dane są funkcje f : RN Ï R, gj : RN Ï R, gdzie j = 1, ..., J oraz hk : RN Ï R,gdzie k = 1, ..., K. Ogólny problem optymalizacyjny w niniejszej części jestnastępujący:minxf (x)

przy warunkach:gj (x) ≥ 0, j = 1, ..., J ;hk(x) = 0, k = 1, ..., K;Funkcja Lagrange’a dla powyższego problemu ma postać:

L(x, u, v) = f (x)− J∑j=1 ujgj (x)− K∑

k=1 vkhk(x)25

Page 26: Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf · Metody optymalizacji - teoria i wybrane algorytmy Michał Lewandowski 15 stycznia 2012

METODY OPTYMALIZACJI Michał LewandowskiWarunki Kuhn-Tuckera zapisujemy następująco:

∇f (x)− J∑j=1 uj∇gj (x)− K∑

k=1 vk∇hk(x) = 0gj (x) ≥ 0, j = 1, ..., J ;hk(x) = 0, k = 1, ..., K;

ujgj (x) = 0, j = 1, ..., J ;uj ≥ 0, j = 1, ..., J.Możemy teraz zapisać twierdzenie Kuhn-Tuckera o warunku koniecznymistnienia optimum.

Twierdzenie. Dla problemu zadanego powyżej, niech f , gj oraz hk bę-dą różniczkowalne a punkt x∗ punktem dozwolonym. Niech I(x∗) = j :gj (x∗) = 0 oznacza zbiór aktywnych ograniczeń w postaci nierówności.Niech ∇gj (x∗) dla j ∈ I oraz ∇hk(x∗), dla k = 1, ..., K będą liniowo nieza-leżne ("constraint qualification"). Jeśli x∗ jest optymalnym rozwiązaniemproblemu, wówczas istnieje wektor mnożników Lagrange’a (u∗, v∗), taki że(x∗, u∗, v∗) spełnia warunki Kuhn-Tuckera.

Warunek "constraint qualification" oznacza, że gradienty wszystkich ogra-niczeń aktywnych w dozwolonym punkcie są liniowo niezależne7.Zatem każdy optymalny punkt musi spełniać warunki Kuhn-Tuckera, alenie każdy punkt, który spełnia warunki Kuhn-Tuckera jest optymalny. Jeślichodzi o punkty, które nie spełniają "constraint qualification", nic się nie dao nich powiedzieć - mogą być optymalne i mogą być nieoptymalne.6.1 Metoda funkcji kar i barier

Algorytm funkcji kar i barier polega na sprowadzeniu problemu optyma-lizacji z ograniczeniami do serii problemów optymalizacji bez ograniczeń.Dla różnych parametrów funkcji kar i barier wykonuje się wielokrotnieoptynalizację funkcji bez ograniczeń, która dana jest nastę pują cym wzo-rem:P(x,R) = f (x) + Ω(R, g(x), h(x))

gdzie R jest zbiorem parametrów kary a Ω jest funkcją kary, która fawory-zuje selekcję punktów dopuszczalnych nad punkty niedopuszczalne. Używa7Ograniczenia w postaci równości są aktywne z definicji dla punktu dopuszczalnego, aspośród pozostałych ograniczeń - tych w postaci nierówności - aktywne są tylko te ze zbioru

I(x∗).26

Page 27: Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf · Metody optymalizacji - teoria i wybrane algorytmy Michał Lewandowski 15 stycznia 2012

METODY OPTYMALIZACJI Michał Lewandowskisię różnych funkcji kary dla ograniczeń w postaci równości i dla ograniczeńw postaci nierówności. Dodatkowo niektóre funkcje Ω nakładają karę tylkona punkty niedozwolone (wówczas nazywają się funkcjami kary lub funkcja-mi kary zewnętrznej) a niektóre funkcje nie potrafią w ogóle radzić sobie zpunktami niedopuszczalnymi i nakładają karę na punkty dozwolone, jeśli sąblisko granicy ograniczenia (nazywają się wówczas funkcją bariery lub we-wnętrzną funkcją kary). Poniżej przedstawiona będzie jedna wersja metodykar i barier, w której będziemy zajmować się wyłą cznie ograniczeniami wpostaci nierówności i funkcja kary bedzie nastę pują cej postaci:

Ω = R〈g(x)〉2gdzie 〈g(x)〉 = g(x), jeśli g(x) < 00, jeśli g(x) ≥ 0

Na początku optymalizuje się f (x)+Ω dla małej wartości R, następnie sukce-sywnie zwiększa się wartość R i znowu optymalizuje metodami optymalizacjibez ograniczeń dla nowych wartości R. Poniżej znajduje się algorytm:Algorytm

1) Wybierz parametry zakończenia ε1, ε2, początkowy punkt x(0), począt-kowy parametr funkcji kary R(0) oraz parametr zwiększania parame-tru funkcji kary c > 1. Ustal t = 0.2) Utwórz P(x(t), R(t)) = f (x(t)) + R〈g(x(t))〉2.3) Startując z x(t), znajdź x(t+1) tak, że P(x(t+1), R(t)) jest minimalne dlaustalonej wartości R(t) - wykorzystaj jedną z metod minimalizacji funk-cji wielu zmiennych bez ograniczeń. Do zatrzymania poszukiwań użyj

ε1.4) Jeśli |P(x(t+1), R(t))− P(x(t), R(t−1))| ≤ ε2, ustal xT = x(t+1) i Zakończ.W przeciwnym przypadku idź do kroku 5).5) Wybierz R(t+1) = cR(t). Ustal t = t + 1 i idź do kroku 2).

6.2 Metoda Rosena rzutowanego gradientu

Idea metody Rosena jest następująca:• Identyfikujemy zbiór ograniczeń aktywnych.

– Jeśli żadne nie jest aktywne, stosujemy metodę Cauchy’ego.27

Page 28: Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf · Metody optymalizacji - teoria i wybrane algorytmy Michał Lewandowski 15 stycznia 2012

METODY OPTYMALIZACJI Michał Lewandowski– W przeciwnym wypadku, znadujemy kierunek metodą Cauchy’egoi rzutujemy go na przecięcie przestrzeni ograniczeń aktywnych,żeby znaleźć dopuszczalny kierunek.

Algorytm można przedstawić w postaci następującego pseudo-kodu:Algorytm

1) Wybierz punkt początkowy x(0) oraz parametry zakończenia ε1, ε2.Ustal t = 0.2) Zidentyfikuj zbiór ograniczeń aktywnych: I(t) = j : |gj (x(t))| ≤ ε1 , j =1, 2, ..., J3) Jeśli t ≥ 1 i I(t) = I(t−1) lub I(t) = ∅, ustal s(t) = −∇f (x(t)) i idź dokroku 4)W przeciwnym wypadku, skonstruuj A, gdzie wierszami są∇hk i∇gj ,

j ∈ I(t). Następnie wylicz macierz projekcji P = I − AT (AAT )−1A ikierunek poszukiwań s(t) = −P∇f (x(t))4) Jeśli ||s(t)|| ≥ ε2, idź do kroku 5)W przeciwnym wypadku, wylicz mnożniki (v, u) = (AAT )−1A∇f i znajdź

um = minul : l ∈ I(t)* Jeśli |um| ≤ ε2, Zakończ.W przeciwnym wypadku, wykasuj ograniczenie m z I (t) i idź dokroku 3).

5) Wyznacz maksymalną długość kroku αmax , takie że: gl(w(α)) ≥ 0, ∀l /∈I(t), gdzie każdy punkt wzdłuż s(t) jest reprezentowany przez w(α).

6) Wylicz α∗ z przedziału (0, αmax) poprzez jednowymiarowe poszukiwa-nie wzdłuż kierunku.7) Ustal x(t+1) = w(α∗), t = t + 1, idź do kroku 2).

Zilustrujmy działanie algorytmu przykładem:Dane jest następujące zadanie optymalizacji nieliniowej:2x21 + 2x22 − 2x1x2 − 4x1 − 6x2 Ï minprzy warunkach :

x1 + x2 ≤ 2x1 + 5x2 ≤ 5x1 ≥ 0, x2 ≥ 0

28

Page 29: Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf · Metody optymalizacji - teoria i wybrane algorytmy Michał Lewandowski 15 stycznia 2012

METODY OPTYMALIZACJI Michał LewandowskiZa punkt startowy przyjmujemy początek układu współrzędnych. W tympunkcie następujące ograniczenia są aktywne (bądź nieaktywne):

− x1 − x2 + 2 ≥ 0 NA−x1 − 5x2 + 5 ≥ 0 NA

x1 ≥ 0 Ax2 ≥ 0 A

Macierz współczynników ograniczeń aktywnych wynosi:A = [ 1 00 1

]Liczymy macierz projekcji:

P = [ 1 00 1]−[ 1 00 1

] = [ 0 00 0]

Zatems = [ 00

], ||s|| = 0

Liczymy mnożniki:u = [ 1 00 1

][−4−6

] = [ −4−6

]Mniejszy mnożnik odpowiada drugiemu ograniczeniu. Kasujemy to ograni-czenie. Zatem :

A = [ 1 0 ]Nowa macierz projekcji:P = [ 1 00 1

]−[ 10

]([ 1 0 ] [ 10])−1 [ 1 0 ] = [ 0 00 1

]Kierunek:

s = −[ 0 00 1][−4−6

] = [ 06]

Zatem:w(α) = x + αs = [ 00

]+ α[ 06

] = [ 06α]

Wartość αmax wyznaczamy z ograniczeń nieaktywnych:− 0− 6α+ 2 ≥ 0

−0− 5 ∗ 6α+ 5 ≥ 029

Page 30: Metody optymalizacji - teoria i wybrane algorytmymlewan1/Site/MO_files/mo_skrypt_21_12.pdf · Metody optymalizacji - teoria i wybrane algorytmy Michał Lewandowski 15 stycznia 2012

METODY OPTYMALIZACJI Michał LewandowskiZatem maksymalne α spełniające te ograniczenia to: αmax = 16 . Teraz szu-kamy minimum wzdłuż kierunku (problem jednowymiarowy) na przedziale[0, αmax]. min

α∈[0,αmax ] 2× 36α2 − 36αMinimum funkcji kwadratowej jest w α = 14 , ale jest ono poza przedzia-łem poszukiwań. Dlatego przyjmujemy rozwiązanie α∗ = 16 . Zatem następnypunkt wynosi:

x(1) = w(α∗) = [ 01]

Część IV

Tutorial z OCTAVE/MATLAB

7 Wprowadzenie

Liczby są konwencjonalnie zapisywane w postaci dziesiętnej. Na przykładzapis 12.25 oznacza:12.25 = 1× 101 + 2× 100 + 2× 10−1 + 5× 10−2

Komputer jest maszyną bardzo prymitywną. Potrafi tylko dodawać i to wdodatku tylko zera i jedynki. Dlatego używa zapisu binarnego złożonegoz samych zer i jedynek, później dopiero przekształcając wynik do postacidziesiętnej, aby wyświetlić na ekranie . Liczba 12.25 może być zapisana wpostaci binarnej w następujący sposób:1100.01 = 1× 23 + 1× 22 + 0× 21 + 0× 20 + 0× 2−1 + 1× 2−2

30