You are on page 1of 27

Metody optymalizacji - teoria i wybrane

algorytmy
Micha Lewandowski
21 grudnia 2010
Spis treci
I Algorytmy optymalizacji funkcji jednej zmiennej 3
1 Metody ustalania przedziau, w ktrym znajduje si minimum 4
1.1 Metoda wyczerpujcego poszukiwania (ang. exhaustive se-
arch method) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Metoda przyspieszonego poszukiwania (ang. bounding phase
method) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Metody znajdowania minimum z zadan dokadnoci: 5
2.1 Metody eliminowania obszarw . . . . . . . . . . . . . . . . . . . 5
Metoda dzielenia przedziau na poow . . . . . . . . . . . . . . 6
Metoda zotego podziau . . . . . . . . . . . . . . . . . . . . . . . 6
Metoda liczb Fibonacciego . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Metody estymacji punktowej . . . . . . . . . . . . . . . . . . . . . 8
Metoda interpolacji kwadratowej Powella . . . . . . . . . . . . . 8
2.3 Metody oparte na gradientach . . . . . . . . . . . . . . . . . . . . 9
Metoda Newtona-Raphsona . . . . . . . . . . . . . . . . . . . . . . 10
Metoda siecznych (ang. secant method) . . . . . . . . . . . . . . 11
2.4 Porwnanie metod znajdowania minimum z zadan dokad-
noci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
II Algorytmy optymalizacji funkcji wielu zmiennych 11
Mr1onv o1vm~iiz~c}i Micha Lewandowski
3 Metody bezporednich poszukiwa 12
3.1 Metoda hiperszecienna . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2 Metoda sympleksu Neldera-Meada . . . . . . . . . . . . . . . . . 14
3.3 Metoda kierunkw sprzonych Powella. . . . . . . . . . . . . . 15
4 Metody gradientowe 16
4.1 Metoda Cauchyego najszybszego spadku . . . . . . . . . . . . . 17
4.2 Metoda Newtona . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.3 Metoda Marquardta . . . . . . . . . . . . . . . . . . . . . . . . . . 19
III Optymalizacja z ograniczeniami. 19
5 Teoria 19
6 Algorytmy 25
6.1 Metoda funkcji kar i barier . . . . . . . . . . . . . . . . . . . . . . 26
2
Mr1onv o1vm~iiz~c}i Micha Lewandowski
Moja strona internetowa: http://michallewandowski.eu
Mj adres e-mail: michal.lewandowski@eui.eu
Cz I
Algorytmy optymalizacji funkcji
jednej zmiennej
Algorytmy w tym rozdziale mog by stosowane do rozwizywania proble-
mw minimalizacji nastpujcego typu:
min}(x)
gdzie }(x) jest funkcj celu a x jest zmienn rzeczywist. Wyrnia si dwa
podstawowe typy algorytmw:
Metody bezporednich poszukiwa (ang. direct search methods) oraz
Metody oparte na gradientach (ang. gradient-based methods)
Metody bezporednich poszukiwa wykorzystuj wycznie wartoci func-
kji celu, natomiast metody oparte na gradientach wykorzystuj rownie po-
chodne pierwszego i/lub drugiego rzdu funkcji celu. Poniewa gradienty
liczymy numerycznie, funkcja celu nie musi by c roniczkowalna ani nawet
ciga, aby wykorzystywa metody gradientowe. Metody opisane tutaj mog
by stosowane rwnie do maksymalizacji. Wystarczy po prostu sformuo-
wa i rozwiza rwnowany problem dualny min(}(x)).
Ponisze metody zakadaj, e funkcja celu jest unimodalna (ang. unimodal
function), czyli taka, e ma tylko jedno minimum lokalne. W praktyce, dzie-
li si funkcj na przedziay, w ktrych jest ona unimodalna i dla kadego
takiego przedziau z osobna, znajduje si minimum. My bdziemy zakada,
e szukamy minimum funkcji } na przedziale [o, b].
Minimum funkcji znajduje si w dwch fazach:
Metody ustalania przedziau, w ktrym znajduje si minimum (ang.
bracketing methods)
Metody znajdowania minimum z zadan dokadnoci:
Metody eliminowania obszarw (ang. region elimination methods)
3
Mr1onv o1vm~iiz~c}i Micha Lewandowski
Metoda estymacji punktowej (ang. point estimation method)
Metody oparte na gradientach (ang. gradient based methods)
1 Metody ustalania przedziau, w ktrym znajduje
si minimum
W tym podrozdziale przedstawione s dwie metody:
1.1 Metoda wyczerpujcego poszukiwania (ang. exhaustive se-
arch method)
Metoda ta polega na porwnywaniu wartoci funkcji celu dla punktw jed-
nakowo od siebie odlegych. Zazwyczaj poszukiwania zaczyna si od dolne-
go ograniczenia zmiennej i w pojednynczej iteracji porwnuje si wartoci
trzech kolejnych punktw wykorzystujc zaoenie unimodalnoci.
Algorytm
1) Ustal x
1
= o, x = (b o),n (n jest liczb punktw porednich),
x
2
= x
1
+ x, i x
3
= x
2
+ x.
2) Jeli }(x
1
) _ }(x
2
) _ }(x
3
), minimum znajduje si w (x
1
, x
3
), Zakocz;
W przeciwnym przypadku x
1
= x
2
, x
2
= x
3
, x
3
= x
2
+x i przejd do
kroku 3).
3) Czy x
3
_ b? Jeli tak, to id do kroku 2);
Jeli nie, to nie istnieje minimum w przedziale (o, b) lub punkt brze-
gowy (o lub b) jest puntem minimalnym.
Ostateczny przedziauzyskany przy uyciu tego algorytmu to 2(b o),n.
rednio potrzeba obliczy (n,2 + 2) wartoci funkcji, aby uzyska dan
dokadno.
1.2 Metoda przyspieszonego poszukiwania (ang. bounding pha-
se method)
Metoda ta polega na obraniu punktu pocztkowego i wybraniu kierunku
poszukiwa na podstawie porwnania wartoci funkcji w punkcie poczt-
kowym oraz dwch wartoci funkcji w punktach bdcych w bezpored-
nim ssiedztwie punktu pocztkowego. Pniej znajduje si drugi kraniec
4
Mr1onv o1vm~iiz~c}i Micha Lewandowski
przedziau stosujc wykadnicz strategi poszukiwa. Poniej uyty jest wy-
kadnik rwny 2, ale mona uywa c jakkolwiek inn liczb dodatni. Wy-
kadnik wyszy ni 1, powoduje przyspieszanie wykadnicze poszukiwa,
co zmniejsza liczb iteracji, ale dzieje si to kosztem uzyskanej dokadno-
ci. Dla porwnania w metodzie ustalania przedziau uzyskana dokadno
jest lepsza, ale ilo potrzebnych iteracji jest wiksza.
Algorytm
1) Wybierz punkt pocztkowy x
(0)
oraz warto . Ustal l = 0.
2) Jeli }(x
(0)
[[) _ }(x
(0)
) _ }(x
(0)
+ [[), wtedy . 0;
Jeli }(x
(0)
[[) _ }(x
(0)
) _ }(x
(0)
+ [[), wtedy < 0;
W pozostaych przypadkach wr do kroku 1).
3) Ustal x
(l+1)
= x
(l)
+ 2
l
.
4) Jeli }(x
(l+1)
) < }(x
(l)
), ustal l = l + 1 i id do kroku 3);
W przeciwnym razie minimum znajduje si w przedziale (x
(l1)
, x
(l+1)
),
Zakocz.
2 Metody znajdowania minimum z zadan dokad-
noci:
2.1 Metody eliminowania obszarw
Oglna zasada metod eliminowania obszarw jest nastpujca:
Rozwamy dwa punkty x
1
i x
2
, ktre le w przedziale (o, b) oraz x
1
< x
2
.
Dla problemu minimalizacji funkcji unimodalnej, mona wycign nast-
pujce wnioski:
Jeli }(x
1
) . }(x
2
), to minimum nie ley w (o, x
1
)
Jeli }(x
1
) < }(x
2
), to minimum nie ley w (x
2
, b)
Jeli }(x
1
) = }(x
2
), to minimum nie ley ani w (o, x
1
) ani w (x
2
, b)
Poniej przedstawione zostan trzy metody:
Metoda dzielenia przedziau na poow (ang. interval halving method)
Metoda zotego podziau (ang. golden section search)
Metoda liczb Fibonacciego (ang. Fibonacci search)
5
Mr1onv o1vm~iiz~c}i Micha Lewandowski
Metoda dzielenia przedziau na poow
Metoda ta polega na wybraniu trzech punktw jednakowo odlegych od
siebie oraz od kracw przedziau oraz wyliczeniu wartoci funkcji w tych
punktach, w wyniku czego mona wyeliminowa poow przedziau.
Algorytm
1) Wybierz dolne i grne ograniczenie przedziau o i b oraz ma liczb
c. Niech x
m
= (o +b),2, I
0
= I = b o. Wylicz }(x
m
).
2) Ustal x
1
= o +I,4, x
2
= b I,4. Wylicz }(x
1
) oraz }(x
2
).
3) Jeli }(x
1
) < }(x
m
), ustal b = x
m
; x
m
= x
1
; Przejd do kroku 5);
W przeciwnym wypadku przejd do kroku 4).
4) Jeli }(x
2
) < }(x
m
), ustal o = x
m
; x
m
= x
2
; Przejd do kroku 5);
W przeciwnym przypadku ustal o = x
1
, b = x
2
; przejd do kroku 5).
5) Wylicz I = b o. Jeli [I[ < c, Zakocz;
W przeciwnym przypadku przejd do kroku 2).
W kadej nowej iteracji algorytmu, potrzebne jest wyliczenie dwch war-
toci funkcji, a przedzia zmniejsza si o poow. Po n-krotnym wyliczeniu
wartoci funkcji, przedzia zmniejsza si do okoo 0.5
n,2
I
0
. Czyli ilo ra-
zy n, ile trzeba policzy wartoci funkcji, aby osign dan dokadno c
mona policzy z nastpujcego wzoru:
(0.5)
n,2
(b o) = c.
Metoda zotego podziau
W metodzie tej w kadej nowej iteracji potrzeba wyliczy tylko jedn no-
w warto funkcji. Idea polega na tym, e spord dwch punktw, ktre
potrzebne s, aby stosowa regu eliminowania obszarw, jeden punkt jest
zawsze poprzednim a tylko drugi punkt jest nowy. Ponadto przedzia zawa
si za kad iteracj proporcjonalnie o tyle samo, czyli o warto , ktra
spenia nastpujc zaleno:
1
1
=

1
=
3

5
2
0.382
Algorytm
6
Mr1onv o1vm~iiz~c}i Micha Lewandowski
1) Wybierz dolne i grne ograniczenie przedziau o i b oraz ma liczb
c. Ustal l = 1.
2) Ustal w
1
= o + (1 )(b o) oraz w
2
= o + (b o). Wylicz }(w
1
)
oraz }(w
2
), w zalenoci od tego, ktre z nich nie byo wyliczone wcze-
niej. Wyeliminuj odpowiedni region zgodnie z regu eliminowania
obszarw. Ustal nowe o i b.
3) Czy [o b[ < c? Jeli nie, ustal l = l + 1 i przejd do kroku 2);
Jeli tak, Zakocz.
W tym algorytmie, po n-krotnym wyliczeniu wartoci funkcji przedzia zmiej-
sza sie do (0.618)
n1
(ob), zatem ilo potrzebnych wylicze wartoci funk-
cji przy danej dokadnoci c mona wyliczy z nastpujcego wzoru:
(0.618)
n1
(o b) = c
Metoda liczb Fibonacciego
W metodzie zotego podziau proporcja zmniejszania si przedziau z iteracji
na iteracj pozostaje niezmienna i wynosi 0.618. W metodzie liczb Fibonac-
ciego, idea jest taka sama jak w metodzie zotego podziau, z wyjtkiem
faktu, e w metodzie liczb Fibonacciego proporcja zmniejszania si prze-
dziau z iteracji na iteracj zmienia si tak, aby przedzia zmniejsza si w
sposb optymalny (tzn. jak najbardziej). Jeli
l
oznacza proporcje, o jak
zmniejsza si przedzia w l-tej iteracji, to w metodzie Fibonacciego zachodzi
nastpujcy zwizek:
1
l+1
1
=

l
1
l
(1)
Okazuje si, e wartociami
l
(0, 1,2], gdzie l = 1, ..., N, ktre minimali-
zuj wyraenie (1
1
)(1
2
) (1
N
) i ktre speniaj powyszy zwizek
(1), s nastpujce liczby:

1
= 1
I
N
I
N+1

2
= 1
I
N1
I
N
...

l
= 1
I
Nl+1
I
Nl+2
...

N
= 1
I
1
I
2
7
Mr1onv o1vm~iiz~c}i Micha Lewandowski
gdzie I
l
oznaczaj liczby Fibonacciego. Liczby Fibonacciego maj nastpu-
jc charakterystyk: I
1
= 1, I
2
= 1 i
I
l
= I
l1
+I
l2
gdzie l = 3, 4, ....
Algorytm
1) Wybierz dolne i grne ograniczenie przedziau o i b i ustal I = b o.
Ustal liczb wylicze wartoci funkcji n. Ustal l = 1.
2) Wylicz I

l
= (1
Nl+1
) (1
1
)I =
I
Nl+1
I
N+1
. Ustal x
1
= o +I

l
oraz
x
2
= b I

l
.
3) Spord }(x
1
) i }(x
2
) wylicz t warto, ktra nie bya wczeniej po-
liczona. Wyeliminuj region wedug oglnej metody eliminowania ob-
szarw. Ustal nowe o i b.
4) Czy l = n? Jeli nie, ustal l = l + 1 i id do kroku 2);
W przeciwnym przypadku, Zakocz.
W tym algorytmie przedzia redukuje si do
2
I
N+1
I do czego potrzebnych
jest n wylicze wartoci funkcji. Zatem ilo potrzebnych wylicze wartoci
funkcji przy danej dokadnoci c mona wyliczy z nastpujcego wzoru:
2
I
N+1
(b o) = c
Jednym z minusw metody liczb Fibonacciego jest fakt, i trzeba wylicza c
kolejne liczby Fibonacciego w kadej iteracji.
2.2 Metody estymacji punktowej
W poprzednim podrozdziale omawiane byy metody, ktre porwnuj war-
toci funkcji. W metodach estymacji punktowej wykorzystuje si rwnie
wielko rnicy wartoci funkcji. Poniej omwimy tylko metod interpo-
lacji kwadratowej Powella.
Metoda interpolacji kwadratowej Powella
Szukamy trzy punkty x
1
< x
2
< x
3
takie, e wartoci funkcji w tych punk-
tach speniaj }(x
1
) . }(x
2
) < }(x
3
). Szukamy rwnania wielomianu kwa-
dratowego przechodzcego przez punkty (x
1
, }(x
1
)), (x
2
, }(x
2
)) i (x
3
, }(x
3
)).
8
Mr1onv o1vm~iiz~c}i Micha Lewandowski
W tym celu zapisujemy oglne rwnanie wielomianu kwadratowego prze-
chodzcego przez punkty x
1
i x
2
:
q(x) = o
0
+o
1
(x x
1
) +o
2
(x x
1
)(x x
2
)
Nastpnie szukamy wspczynnikw tego wielomianu:
q(x
1
) = }(x
1
) = o
0
q(x
2
) = }(x
2
) = o
0
+o
1
(x
2
x
1
)
q(x
3
) = }(x
3
) = o
0
+o
1
(x
3
x
1
) +o
2
(x
3
x
1
)(x
3
x
2
)
Otrzymujemy ukad trzech rwna, ktry rozwizujemy, aby znale wsp-
czynniki szukanego wielomianu:
o
0
= }(x
1
)
o
1
=
}(x
2
) }(x
1
)
x
2
x
1
o
2
=
1
x
3
x
2
_
}(x
3
) }(x
1
)
x
3
x
1

}(x
2
) }(x
1
)
x
2
x
1
_
Teraz szukamy argumentu, dla ktrego ten wielomian kwadratowy osi-
ga minimum. Poniewa zgodnie z naszymi zaoeniami o
2
. 0, minimum
znajduje si tam, gdzie pochodna rwna jest zero.
q

(x) = 0 o
1
+o
2
(x x
2
+x x
1
) = 0 x

=
x
1
+x
2
2

o
1
2o
2
W punkcie x

wielomian kwadratowy q(x) osiga minimum. Poniewa q(x)


jest przyblieniem funkcji }(x), ktrej minimum szukamy, x

jest przybli-
eniem wartoci, w ktrej funkcja }(x) osiga minimum. Spord punk-
tw (x
1
, x
2
, x
3
, x

), zatrzymujemy trzy najlepsze (innymi sowy wyrzucamy


punkt, w ktrym warto funkcji }(x) jest najwiksza) i ponownie dokonuje-
my interpolacji kwadratowej dla tych trzech punktw i szukamy minimum
otrzymanego wielomianu. Procedura ta powtarzana jest do momentu, kiedy
osignita zostanie dana dokadno.
Alogorytm Powella, ktry zosta zarysowany powyej znajduje minimum
szybciej ni metoda zotego podziau, jeli funkcja }(x) nie jest skrzywiona.
Dla mocno niesymetrycznych funkcji, metoda zotego podziau pozostaje
jednak lepsza.
2.3 Metody oparte na gradientach
Metody opisane dotychczas wykorzystyway tylko wartoci funkcji. Meto-
dy oparte na gradientach wykorzystuj natomiast dodatkowo informacj o
9
Mr1onv o1vm~iiz~c}i Micha Lewandowski
pochodnych funkcji. Gradienty zazwyczaj oblicza si numerycznie. Uywa-
jc metody rnic centralnych (ang. central dierence method), liczymy
pierwsz i drug pochodn w punkcie x
l
nastpujco:
}

(x
(l)
) =
}(x
(l)
+ x
(l)
) }(x
(l)
x
(l)
)
2x
(l)
(2)
}

(x
(l)
) =
}(x
(l)
+ x
(l)
) 2}(x
(l)
) +}(x
(l)
x
(l)
)
(x
(l)
)
2
(3)
Parametr x
(l)
powinien by may, na przykad moe stanowi 1% wartoci
x
(l)
.
Metoda Newtona-Raphsona
Zamy, e moemy policzy }(x
(l)
), }

(x
(l)
) i }

(x
(l)
) w kadym punkcie
pomiaru funkcji x
(
l). Moemy zdeniowa wielomian kwadratowy, ktrego
pierwsza i druga pochodna oraz wart w punkcie x
(l)
s identyczne z tymi
dla funkcji }(x). Ten wielomian ma nastpujc posta:
q(x) = }(x
(l)
) +}

(x
(l)
)(x x
(l)
) +
1
2
}

(x
(l)
)(x x
(l)
)
2
Zamiast minimalizowa funkcj }(x) minimalizujemy jej przyblienie q(x).
Warunek pierwszego rzdu na istnienie minimum jest nastpujcy:
0 = q

(x) = }

(x
(l)
) +}

(x
(l)
)(x x
(l)
)
Nowy punkt x = x
(l+1)
spenia zatem:
x
(l+1)
= x
(l)

}

(x
(l)
)
}

(x
(l)
)
Metoda Newtona-Raphsona polega na kontynuowaniu powyszej procedu-
ry do momentu, w ktrym pochodna }

(x
(l+1)
) bdzie wystarczajco blisko
zera. Jeli podstawimy q(x) = }

(x), wtedy otrzymujemy formu do itera-


cyjnego poszukiwania rozwizania rwnania q(x) = 0:
x
(l+1)
= x
(l)

q(x
(l)
)
q

(x
(l)
)
Metoda Newtona-Raphsona dziaa dobrze jeli }

(x) . 0 wszdzie. Jeli na-


tomiast }

(x) < 0 dla pewnego x, algorytm moe nie zbiega do minimum.


Jeli zamiast analitycznych pochodnych funkcji wykorzystujemy przyblione
pochodne (por. (2) oraz (3)), wwczas algorytm powyszy nazywamy quasi-
newtonowskim.
10
Mr1onv o1vm~iiz~c}i Micha Lewandowski
Metoda siecznych (ang. secant method)
Jest to metoda podobna do Newtona-Raphsona. Zamiast }

(x
(l)
), uywa si
nastpujcego przyblienia:
}

(x
(l)
) }

(x
(l1)
)
x
(l)
x
(l1)
Otrzymuje si wtedy przedstawiony poniej algorytm, ktry nazywa si me-
tod siecznych:
x
(l+1)
= x
(l)

x
(l)
x
(l1)
}

(x
(l)
) }

(x
(l1)
)
}

(x
(l)
)
Metoda siecznych wymaga dwch punktw startowych x
(1)
i x
(0)
.
Tak samo, jak w przypadku metody Newtona Raphsona, metod siecznych
mona wykorzysta do znajdowania pierwiastkw rwnania q(x) = 0. Otrzy-
mujemy wtedy algorytm:
x
(l+1)
= x
(l)

x
(l)
x
(l1)
q(x
(l)
) q(x
(l1)
)
q(x
(l)
)
2.4 Porwnanie metod znajdowania minimum z zadan dokad-
noci
Metoda liczb Fibonacciego jest najbardziej efektywn metod eliminacji ob-
szarw jeli pocztkowy przedzia, w ktrym ley minimum jest znany. Je-
li nie znamy pocztkowego przedziau oraz pochodnych funkcji, wwczas
najlepsza powinna by metoda iterpolacji kwadratowej Powella lub metoda
quasi-newtonowska. Gdy pierwsze pochodne s dostpne, metoda siecznych
lub metoda interpolacji szeciennej
1
powinna by najbardziej efektywna. W
kocu metoda Newtona-Raphsona jest najbardziej efektywna, gdy dostpne
s informacje i pierwszych i drugich pochodnych funkcji.
1
Ta metoda nie zostaa omwiona w rozdziale. Jest to metoda podobna do interpolacji
kwadratowej, uywa jednak pierwszych pochodnych funkcji w celu zmniejszenia iloci po-
trzebnych wartoci funkcji w pojedynczej iteracji.
11
Mr1onv o1vm~iiz~c}i Micha Lewandowski
Cz II
Algorytmy optymalizacji funkcji
wielu zmiennych
Dana jest funkcja wielu zmiennych: } : R
N
R. Mwimy, e punkt x jest
punktem stacjonarnym, jeli gradient w tym punkcie jest zerowym wek-
torem: }( x) = 0. Punkt ten jest lokalnym minimum, jeli Hesjan w tym
punkcie
2
}( x) jest dodatnio okrelony. Macierz jest dodatnio okrelona
jeli wszystkie jej wartoci wasne s dodatnie:
i
. 0, i = 1, 2, ..., N
2
.
W niniejszej czci skryptu omwione bd nastpujce algorytmy mini-
malizacji funkcji wielu zmiennych:
Metody bezporednich poszukiwa:
Metoda hiperszecienna (ang. evolutionary optimization)
Metoda sympleksowa Neldera-Meada
Metoda kierunkw sprzonych (ang. conjugate direction) Po-
wella
Metody gradientowe (ang. descent methods)
Metoda najszybszego spadku (ang. steepest descent method)
Metoda Newtona
Metoda Marquardta
Metoda sprzonego gradientu Fletcher-Reevesa
Metody quasinewtonowskie:
Metoda Davidon-Fletcher-Powella (DFP)
Metoda Broyden-Fletcher-Goldfarb-Shannona (BFGS)
3 Metody bezporednich poszukiwa
Tak jak w przypadku optymalizacji funkcji jednej zmiennej metody bezpo-
rednich poszukiwa korzystaj wycznie z wartoci funkcji w punktach,
w przeciwiestwie do metod gradientowych, ktre dodatkowo wykorzystuj
pochodne funkcji.
2
Macierz symetryczna, a tak jest Hesjan ma wszystkie wartoci wasne rzeczywiste, nie
trzeba si wic martwi o zespolone wartoci wasne.
12
Mr1onv o1vm~iiz~c}i Micha Lewandowski
3.1 Metoda hiperszecienna
Algorytm potrzebuje w pojedynczej iteracji 2
N
+1 punktw, z czego 2
N
punk-
tw to s wierzchoki hiperszecianu scentrowanego na pozostaym punk-
cie. Porwnuje si wartoci funkcji we wszystkich tych punktach i wskazuje
si najlepszy (z najmniejsz wartoci). W nastpnej iteracji tworzy si sze-
cian wok tego najlepszego punktu. Jeli najlepszym punktem okae si
punkt, ktry by rodkiem danego hiperszecianu, wwczas zmniejsza si
rozmiar szecianu. Proces ten kontynuuje si a hiperszecian stanie si
dostatecznie may.
Algorytm
1) Wybierz punkt pocztkowy x
(0)
oraz parametry redukcji
i
dla kadej
ze zmiennych, i = 1, 2, ..., N. Wybierz parametr zakoczenia c. Ustal
x = x
(0)
2) Jeli [[[[ < c, Zakocz;
W przeciwnym przypadku stwrz 2
N
punktw poprzez dodanie i od-
jcie
i
,2 do/od kadej zmiennej w punkcie x.
3) Oblicz warto funkcji dla wszystkich (2
N
+1) punktw. Znajd punkt
z najmniejsz wartoci. Ustal ten punkt jako x.
4) Jeli x = x
(0)
, zredukuj parametry redukcji
i
=
i
,2 i przejd do
kroku 2);
W przeciwnym przypadku ustal x
(
0) = x i przejd do kroku 2)
W powyszym algorytmie w kadej iteracji trzeba policzy maksymalnie 2
N
wartoci fukcji. Czyli ilo potrzebnych ewaluacji funkcji wzrasta wykadni-
czo wraz z N.
Jeli algorytm znajdzie dokadne minimum funkcji w ktrej iteracji, nie
zatrzymuje si automatycznie. Warto [[[[ musi spa poniej c, aby algo-
rytm zakoczy dziaanie.
Ustalenie duego parametru redukcji
i
jest dobre, ale wtedy algorytm mo-
e potrzebowa wielu iteracji a zatem i wielu ewaluacji funkcji. Z drugiej
strony ustalenie maego parametru redukcji moe prowadzi do zbyt wcze-
snej zbienoci algorytmu do suboptymalnego punktu, szczeglnie w przy-
padku funkcji bardzo nieliniowych. Redukcja parametru redukcji nie musi
by dwukrotna tak jak w algorytmie podanym powyej (patrz krok 4)). Dla
13
Mr1onv o1vm~iiz~c}i Micha Lewandowski
lepszej zbienoci algorytmu rekomenduje si redukcj mniejsz ni dwu-
krotn
3
.
3.2 Metoda sympleksu Neldera-Meada
Sympleks wymaga duo mniejszej iloci punktw ni hyperszecian, co sta-
je si szceglnie widoczne dla wielu wymiarw. Sympleks w N-wymiarowej
przestrzeni ma N + 1 wierzchokw. Jest to minimalna ilo wierzcho-
kw umoliwiajca poszukiwanie we wszystkich moliwych kierunkach N-
wymiarowej przestrzeni. Wane jest jednak, aby sympleks
4
nie rozpina -
gury o zerowej objtoci w N-wymiarowej przestrzeni - czyli na przykad
dla funkcji dwuwymiarowej trzy punkty sympleksu nie mog lee na jed-
nej linii, a w przypadku funkcji trjwymiarowej cztery punkty sympleksu
nie mog lee na jednej paszczynie.
Dziaanie metody najlepiej wida w pseudokodzie algorytmu:
Algorytm
1) Wybierz . 1, (0, 1) oraz parametr zakoczenia c. Stwrz sym-
pleks pocztkowy.
2) Znajd najgorszy punkt x
w
, najlepszy punkt x
b
oraz drugi w kolejnoci
najgorszych x
m
. Oblicz punkt, wzgdem ktrego bdziemy odbija x
w
:
x
o
=
1
N
N+1

i=1,i,=l
x
i
.
3) Oblicz punkt odbicia x
i
= 2x
o
x
w
. Ustal x
new
= x
i
.
Jeli }(x
i
) < }(x
b
), ustal x
new
= (1 +)x
o
x
w
(ekspansja);
Jeli }(x
i
) _ }(x
w
), ustal x
new
= (1 )x
o
+x
w
(kontrakcja);
Jeli }(x
m
) < }(x
i
) < }(x
w
), ustal x
new
= (1 +)x
o
x
w
(kontrakcja).
Policz }(x
new
) i wymie x
w
na x
new
.
4) Jeli
_

N+1
i=1
(}(x
i
)}(x
o
))
2
N+1
_
1,2
_ c, Zakocz;
W przeciwnym przypadku id do kroku 2).
Jednym ze sposobw stworzenia sympleksu pocztkowego do pierwszego
kroku algorytmu jest wybranie punktu bazowego x
(0)
oraz liczby C. Ww-
3
W kroku 4):
i
=
i
,p, gdzie p (1, 2).
4
Chodzi tutaj o sympleks pocztkowy. O nastpne nie trzeba si martwi, co bdzie wi-
doczne w algorytmie.
14
Mr1onv o1vm~iiz~c}i Micha Lewandowski
czas N + 1 punktw sympleksu to x
(0)
oraz dla i, j = 1, 2, ..., N:
x
(i)
j
=
_
x
(0)
j
+C if j = i
x
(0)
j
+C otherwise,
where =
_
0.25 if N = 3

N+12
N3
otherwise.
Dla zapewnienia dobrej zbienoci algorytmu, sugeruje si ustalenie 2
i [[ 0.5.
3.3 Metoda kierunkw sprzonych Powella.
Metoda kierunkw sprzonych Powella jest chyba najbardziej popularn
metod bezporednich poszukiwa. Wykorzystuje ona histori poprzednich
rozwiza, aby swtorzy nowe kierunki poszukiwa. Idea jest prosta: trzeba
utworzy N liniowo niezalenych kierunkw poszukiwa i dokona sekwen-
cyjnie seri poszukiwa wzdu tych kierunkw, startujc za kadym razem
z poprzednio znalezionego punktu.
Algorytm
1) Wybierz punkt pocztkowy x
(0)
oraz zbir N liniowo niezalenych kie-
runkw; najlepiej s
(i)
= e
(i)
, dla i = 1, 2, ..., N, gdzie e
(i)
oznacza i-ty
wektor bazowy bazy kanonicznej.
2) Szukaj minimum startujc z punktu pocztkowego wzdu kierunku
s
(1)
. Startujc z nowo znalezionego punktu (oznacz go jako y
(1)
), szukaj
minimum wzdu kierunku s
(2)
. Kontynuuj szukanie wzdu kolejnych
kierunkw a do kierunku s
(N)
. Nastpnie ponownie szukaj minimum
wdu kierunku s
(1)
. Punkt, ktry zosta ostatecznie znaleziony oznacz
jako y
(2)
.
3) Oblicz J = y
(2)
y
(1)
. Jest to kierunek sprzony do s
(1)
.
4) Jeli [[J[[ jest mae lub kierunki s
(1)
, s
(2)
, ..., s
(N1)
, J s liniowo zalene,
Zakocz;
W przeciwnym przypadku ustal s
(j)
= s
(j1)
dla wszystkich j = N, N
1, ..., 2. Ustal s
(1)
= J,[[J[[ i id do kroku 2).
15
Mr1onv o1vm~iiz~c}i Micha Lewandowski
4 Metody gradientowe
Gradient w punkcie x
(t)
moemy przybliy numerycznie za pomoc nast-
pujcej formuy:
}(x
(t)
) =
_

_
}(x
(t)
)
x
1
}(x
(t)
)
x
2
...
}(x
(t)
)
x
N
_

_
, gdzie
}(x
(t)
)
x
i
=
}(x
(t)
i
+ x
(t)
i
) }(x
(t)
i
x
(t)
i
)
2x
(t)
i
Hesjan w punkcie x
(t)
natomiast liczymy nastpujco:

2
}(x
(t)
=
_

2
}(x
(t)
)
x
2
1

2
}(x
(t)
)
x
1
x
2
...

2
}(x
(t)
)
x
1
x
N

2
}(x
(t)
)
x
2
x
1

2
}(x
(t)
)
x
2
2
...

2
}(x
(t)
)
x
2
x
N
... ... ... ...

2
}(x
(t)
)
x
N
x
1

2
}(x
(t)
)
x
N
x
2
...

2
}(x
(t)
)
x
2
N
_

_
gdzie:

2
}(x
(t)
)
x
2
i
=
}(x
(t)
i
+ x
(t)
i
) 2}(x
(t)
) +}(x
(t)
i
x
(t)
i
)
(x
(t)
i
)
2

2
}(x
(t)
)
x
i
x
j
=
}(x
(t)
i
+x
(t)
i
)
x
j

}(x
(t)
i
x
(t)
i
)
x
j
2x
(t)
i
Pochodne czstkowe w ostatnim wyraeniu powyej s z kolei liczone tak,
jak skadowe gradientu, tylko e w innym punkcie. Wyraenie x
(t)
i
+ x
(t)
i
reprezentuje wektor (x
(t)
1
, ..., x
(t)
i
+ x
(t)
i
, ..., x
(t)
N
)
T
eby policzy gradient potrzebnych jest 2N rnych wartoci funkcji. Aeby
policzy Hesjan potrzebnych jest 3N + 4
_
N
2
_
= 2N
2
+N.
Poniewa gradient jest kierunkiem najszybszego wzrostu, minus gradient
jest kierunkiem najszybszego spadku funkcji. Kierunek poszukiwa (ang.
search direction) J
(t)
jest kierunkiem spadku w punkcie x
(t)
, jeli w otocze-
niu tego punktu speniony jest nastpujcy warunek:
}(x
(t)
) J
(t)
_ 0
Oznacza to, e cosinus kta midzy gradientem i kierunkiem poszukiwa
jest wikszy ni 90
0
. Kierunek J
(t)
jest kierunkiem spadku, poniewa w
wyniku rozwinicia } wok x
(t)
otrzymujemy:
}(x
(t+1)
) = }(x
(t)
+J
(t)
) = }(x
(t)
) +}(x
(t)
) J
(t)
.
16
Mr1onv o1vm~iiz~c}i Micha Lewandowski
Im nisza ujemna warto }(x
(t)
) J
(t)
tym wikszy spadek funkcji w kie-
runku J
(t)
.
W metodach gradientowych czsto w ramach pojedynczej iteracji dokonuje
si poszukiwa w danym kierunku. Jest to optymalizacja jednowymiarowa.
Najpierw zapisujemy reprezentatywny punkt wzdu kierunku s
(t)
jako:
x
(l+1)
= x
(l)
+
(l)
s
(l)
,
gdzie
(l)
jest dugoci kroku. Poniewa x
(l)
i s
(l)
s znane, punkt x
(l+1)
mona zapisa tylko jedn zmienn. Mona wic wykona minimalizacj
jednowymiarow, aby otrzyma nowy punkt x
(l+1)
. Nastpnie poszukiwania
kontynuuje si wzdu nowego kierunku s
(l+1)
i tak dalej a do momentu
znalezienia lokalnego minimum. Jeli metoda gradientowa jest uyta do po-
szukiwa jednowymiarowych wzdu kierunku, minimum znajdujemy po-
przez zrniczkowanie wyraenia }(x
(t+1)
) = }(x
(t)
+ s
(l)
) wzgldem i
przyrwnaniem do zera:
}(x
(l+1)
) s
(l)
= 0.
W ten sposb znajdujemy nowy punkt x
(l+1)
. Okazuje si e kt pomidzy
kierunkiem poszukiwa w l-tej iteracji i kierunkiem najszybszego spadku
w nowym punkcie }(x
(l+1)
) jest rwny 90
0
.
4.1 Metoda Cauchyego najszybszego spadku
Kierunek poszukiwa w metodzie Cauchyego jest kierunkiem najszybsze-
go spadku:
s
(l)
= }(x
(l)
).
Algorytm ten gwarantuje popraw, to jest spadek wartoci funkcji, w kadej
iteracji. Metoda najszybszego spadku dziaa dobrze, gdy x
(0)
jest daleko od
minimum x

. Jeli biecy punkt jest blisko minimum, zmiana gradientu jest


maa, wobec nastpny punkt powstay w wyniku poszukiwania w jednym
kierunku jest blisko punktu biecego.
Algorytm
1) Wybierz maksymaln liczb iteracji ^, punkt pocztkowy oraz dwa
parametry zakoczenia c
1
i c
2
i ustal l = 0.
2) Oblicz }(x
(l)
)
17
Mr1onv o1vm~iiz~c}i Micha Lewandowski
3) Jeli [[}(x
(l)
)[[ _ c
1
, Zakocz;
Jeli l _ ^; Zakocz;
W przeciwnym razie id do kroku 4).
4) Wykonaj poszukiwanie wzdu kierunku, eby znale
(l)
tak, aby
}(x
(l+1)
) = }(x
(l)
+
(l)
s
(l)
) byo minimalne. Jednym z kryteriw za-
koczenia jest [}(x
(l+1)
) }(x
(l)
)[ _ c
2
.
5) Jeli
[[x
(l+1)
x
(l)
[[
[[x
(l)
[[
_ c
1
, Zakocz;
W przeciwnym przypadku ustal l = l + 1 i id do kroku 2).
4.2 Metoda Newtona
Rozwinicie w szereg Taylora drugiego rzdu funkcji } wok punktu x
(t)
przyjmuje nastpujc form:
}(x
(l+1)
) = }(x
(l)
) + }(x
(l)
)
T
(x x
(l)
) +
1
2
(x x
(l)
)
T

2
}(x
(l)
)(x x
(l)
)
Jeli policzymy warunek pierwszego rzdu na maksimum lokalne tej funk-
cji, otrzymujemy:
}(x
(l)
) +
2
}(x
(l)
)(x x
(l)
) = 0
Podstawiajc x
(l+1)
= x, otrzymujemy:
x
(l+1)
= x
(l)

_

2
}(x
(l)
)
_
1
}(x
(l)
)
Kierunek poszukiwa w metodzie Newtona jest zatem dany wyraeniem:
s
(l)
=
_

2
}(x
(l)
)
_
1
}(x
(l)
)
Jeli macierz
_

2
}(x
(l)
)
_
1
jest pdodatnio okrelona, kierunek s
(l)
jest kie-
runkiem spadku. Warunek drugiego rzdu optymalizacji mwi, e macierz

2
}(x

) jest dodatnio okrelona dla minimum lokalnego. Mona zatem za-


oy, e macierz
2
}(x) jest dodatnio okrelona w otoczeniu minimum.
Metoda Newtona jest wic dobra, kiedy punkt pocztkowy jest blisko mini-
mum.
Algorytm jest bardzo podobny do metody najszybszego spadku. Poszukiwa-
nia prowadzone s jednak w innym kierunku s
(l)
=
_

2
}(x
(l)
)
_
1
}(x
(l)
).
Moliwy warunek zakoczenia optymalizacji wzdu kierunku wyglda na-
stpujco:

}(x
(l+1)
)
_

2
}(x
(l)
)
_
1
}(x
(l)
)

_ c
2
.
18
Mr1onv o1vm~iiz~c}i Micha Lewandowski
4.3 Metoda Marquardta
Metoda Cauchyego dziaa dobrze, gdy punkt pocztkowy jest daleko od mi-
nimum, podczas, gdy metoda Newtona dziaa dobrze, gdy punkt pocztkowy
jest blisko minimum. W metodzie Marquardta, metod Cauchyego stosuje
si na pocztku by nastpnie zaadoptowa metod Newtona.
Algorytm
1) Wybierz maksymaln liczb iteracji ^, punkt pocztkowy oraz para-
metr zakoczenia c. Ustal l = 0 oraz
(0)
= 10
4
(dua liczba).
2) Oblicz }(x
(l)
)
3) Jeli [[}(x
(l)
)[[ _ c, Zakocz;
Jeli l _ ^; Zakocz;
W przeciwnym razie id do kroku 4).
4) Oblicz x
(l+1)
= x
(l)

_

2
}(x
(l)
) +
(l)
I
_
1
}(x
(l)
)
5) Jeli }(x
(l+1)
) < }(x
(l)
), id do kroku 6);
W przeciwnym przypadku id do kroku 7).
6) Ustal
(l+1)
=
1
2

(l)
, l = l + 1 i id do kroku 2).
7) Ustal
(l+1)
= 2
(l)
i id do kroku 4).
Algorytm moe by szybszy, jeli dodatkowo bdziemy dokonywa optyma-
lizacji wzdu kierunku w kadej iteracji.
Cz III
Optymalizacja z ograniczeniami.
5 Teoria
Nieniejszy rozdziama suy intuicyjnemu przedstawieniu idei twierdzenia
Lagrange i Kuhn-Tuckera.
Dane jest nastpujce zadanie optymalizacyjne:
max
xDR
N
}(x)
19
Mr1onv o1vm~iiz~c}i Micha Lewandowski
Zbir D jest zbiorem punktw dopuszczalnych. Zbir ten bdziemy przed-
stawia za pomoc ogranicze w postaci rwnoci l(x) = o oraz ogranicze
w postaci nierwnoci q(x) _ o. W przypadku ogranicze w postaci nierw-
noci, mwimy, e dane ograniczenie jest aktywne bd napite w punkcie
dopuszczalnym x jeli zachodzi q(x) = o. W przeciwnym przypadku, tj. gdy
q(x) < o mwimy, e ograniczenie jest nieaktywne lub lune w punkcie do-
puszczalnym x. Oczywicie dla ogranicze w postaci rwnoci dla punktu
dopuszczalnego ograniczenie z denicji musi by napite. Intuicj dotyczc
zagadnie optymalizacyjnych najlepiej wyrobi sobie gracznie dla przypad-
ku, gdy x R
2
.
Rysunki poniej pokazuj, e w przypadku ogranicze w postaci rwnoci w
punkcie optymalnym
5
nachylenie funkcji celu i ograniczenia powinno by
rwne:
h(x*)
x
2
x*
x'
h(x')
f(x')
x
1
A
h(x)=c
f(x*)
f(x*)=h(x*), >0
Rwne nachylenie i mnonik dodatni
h(x*)
x
2
x*
x'
h(x')
f(x')
x
1
A
h(x)=c
f(x*)
f(x*)=h(x*), <0
Rwne nachylenie i mnonik ujemny
5
Zakadajc rniczkowalno.
20
Mr1onv o1vm~iiz~c}i Micha Lewandowski
Moemy to zapisa w nastpujcy sposb:
}(x

) = l(x

) (4)
gdzie symbol oznacza mnonik Lagrangea.
Tak wic problem optymalizacji z ograniczeniem max
x
}(x), p.w. l(x) =
o mona sprowadzi do problemu optymalizacji bez ogranicze funkcji
I(x, ) = }(x) (l(x) o), zwanej funkcj Lagrangea, bowiem warunki
pierwszego rzdu optymalizacji tej funkcji bd dokadnie rwne warun-
kom (4) oraz ograniczeniu l(x

) = o:
}(x

) l(x

) = 0
l(x

) o = 0
Z powyszych rysunkw wynika rwnie, e w przypadku ogranicze w po-
staci rwnoci mnonik Lagrangea moe by zarwno dodatni, jak i ujemny.
Jedyna wymagana rzecz jest taka, e musi on by zdeniowany. Aby mno-
nik mona byo zdeniowa musi by speniony nastpujcy warunek:
l(x

) ,= 0 (5)
Gradient ograniczenia w punkcie optymalnym musi by rny od wektora
zerowego. W naszym przykadzie oznacza to, e:
_
l(x

)
x
1
l(x

)
x
2
_
,=
_
0
0
_
Dla problemu optymalizacji z ograniczeniami w postaci nierwnoci q(x) _
o problem jest podobny, lecz nieco bardziej zoony. Jeli optimum jest w
punkcie, w ktrym dane ograniczenie nie jest aktywne, to warunek pierw-
szego rzdu jest taki sam jak, gdyby ograniczenia nie byo tj.
}(x

) = 0 (6)
Warunek pierwszego rzdu funkcji Lagrangea wynosi za:
}(x

) q(x

) = 0
Aby te warunki si zgadzay, mnonik Lagrangea w tym przypadku musi
wynosi zero.
Jeli za optimum jest w punkcie, w ktrym dane ograniczenie jest aktywne,
wwczas mamy do czynienia z sytuacj jak na rysunku poniej:
21
Mr1onv o1vm~iiz~c}i Micha Lewandowski
f(x*)
x
2
x
1
x*
x'
g(x')
f(x')
A
g(x)c
g(x*)
f(x*)=g(x*), >0
W tym przypadku mnonik Lagrangea musi by dodatni, poniewa w prze-
ciwnym razie moglibymy przesun punkt x

do wewntrz zbioru dopusz-


czalnego podnoszc warto funkcji celu } - co przeczyoby optymalnoci
punktu x

:
g(x*)
f(x*)
x
2
x
1
Dlaczego mnonik Lagrange'a
musi by dodatni
g(x)=b
g(x)>b
g(x)<b
Zatem mamy dwie sytuacje moliwe w punkcie optymalnym:
ograniczenie aktywne, mnonik dodatni: q(x) = o i . 0
ograniczenie nieaktywne, mnonik zerowy: q(x) < 0 i = 0
22
Mr1onv o1vm~iiz~c}i Micha Lewandowski
Te dwa przypadki mona zapisa jednym warunkiem zwanym "complemen-
tary slackness":
[q(x

) o] = 0
Analiza bdzie podobna jeli ograniczenia w postaci _ zamienimy na ogra-
niczenia w postaci _. Wwczas trzeba jednak w prezentacji gracznej zmo-
dykowa kierunki gardientw ogranicze:
x
2
x
1
{x|g
2
(x)=b
2
}
g
1
(x) g
4
(x)
g
3
(x)
g
2
(x) g
1
(x)b
1
g
2
(x)b
2
g
3
(x)b
3
g
4
(x)b
4
Ograniczenia w postaci
x
2
x
1
{x|g
2
(x)=b
2
}
g
1
(x)
g
4
(x)
g
3
(x)
g
2
(x)
g
1
(x)b
1
g
2
(x)b
2
g
3
(x)b
3
g
4
(x)b
4
Ograniczenia w postaci
W przypadku wicej ni jednego ograniczenia, zarwno jeli chodzi o ogra-
niczenia w postaci rwnoci, ktre w punkcie optymalnym musz by ak-
23
Mr1onv o1vm~iiz~c}i Micha Lewandowski
tywne z denicji
6
, jak i ograniczenia w postaci nierwnoci, ale ktre w
punkcie optymalnym s aktywne, mamy do czynienia z sytuacj, jak na ry-
sunku poniej:
x
2
x
1
g
1
(x*)
g
2
(x*)
g
1
(x)=c
1
g
1
(x)c
1
g
2
(x)=c
2
g
2
(x)c
2
f(x*)
f(x*)=
1
g
1
(x*)+
2
g
2
(x*)
Kombinacja liniowa gradientw ogranicze aktywnych
Tym razem gradient funkcji celu musi by kombinacj liniow gradientw
ogranicze aktywnych. W punkcie x

oba ograniczenia q
1
(x) _ o
1
oraz
q
2
(x) _ o
2
s aktywne, a zatem w tym punkcie gradient funkcji celu jest
kombinacj liniow gradientw obu ogranicze. Mnoniki Lagrangea od-
powiadajce poszczeglnym ograniczeniom wystpuj tutaj w roli wag kom-
binacji liniowej. Oczywicie, aby gradient funckji celu dao si zapisa jako
kombinacje liniow gradientw ogranicze aktywnych, te gradienty ogra-
nicze aktywnych powinny by liniowo niezalene. Inaczej moemy mie
do czynienia z sytuacj, jak na rysunku poniej:
6
Punkt optymalny musi by punktem dopuszczalnym.
24
Mr1onv o1vm~iiz~c}i Micha Lewandowski
f(x*)
g
1
(x*)
g
2
(x*)
Dlaczego potrzebne jest constraint qualication?
x
2
x
1
Jedyny punkt dopuszczalny to punkt x

, zatem jest on zarazem punktem


optymalnym. Jednake nie da si zapisa }(x

) jako liniow kombinacj


gradientw q
1
(x

) i q
2
(x

). Liniowa niezaleno gradientw wszystkich


ogranicze w postaci rwnoci oraz aktywnych ogranicze w postaci nie-
rwnoci jest zwana warunkiem "constraint qualication".
Warunek konieczny nie wystarczajacy
Nie mozna pozbywac sie nieaktywnych ograniczen
Dlaczego x=0 nie mozna zastapic x<=0 i -x<=0.
Cofnij sie do h(x)=c i wytlumacz ten punkcik A na rysuneczkach
6 Algorytmy
Dane s funkcje } : R
N
R, q
j
: R
N
R, gdzie j = 1, ..., } oraz l
l
: R
N
R,
gdzie l = 1, ..., I. Oglny problem optymalizacyjny w niniejszej czci jest
nastpujcy:
min
x
}(x)
przy warunkach:
q
j
(x) _ 0, j = 1, ..., };
l
l
(x) = 0, l = 1, ..., I;
Funkcja Lagrangea dla powyszego problemu ma posta:
I(x, u, v) = }(x)
}

j=1
u
j
q
j
(x)
I

l=1
v
l
l
l
(x)
25
Mr1onv o1vm~iiz~c}i Micha Lewandowski
Warunki Kuhn-Tuckera zapisujemy nastpujco:
}(x)
}

j=1
u
j
q
j
(x)
I

l=1
v
l
l
l
(x) = 0
q
j
(x) _ 0, j = 1, ..., };
l
l
(x) = 0, l = 1, ..., I;
u
j
q
j
(x) = 0, j = 1, ..., };
u
j
_ 0, j = 1, ..., }.
Moemy teraz zapisa twierdzenie Kuhn-Tuckera o warunku koniecznym
istnienia optimum.
Twierdzenie. Dla problemu zadanego powyej, niech }, q
j
oraz l
l
b-
d rniczkowalne a punkt x

punktem dozwolonym. Niech I(x

) = j :
q
j
(x

) = 0 oznacza zbir aktywnych ogranicze w postaci nierwnoci.


Niech q
j
(x

) dla j I oraz l
l
(x

), dla l = 1, ..., I bd liniowo nieza-


lene ("constraint qualication"). Jeli x

jest optymalnym rozwizaniem


problemu, wwczas istnieje wektor mnonikw Lagrangea (u

, v

), taki e
(x

, u

, v

) spenia warunki Kuhn-Tuckera.


Warunek "constraint qualication" oznacza, e gradienty wszystkich ogra-
nicze aktywnych w dozwolonym punkcie s liniowo niezalene
7
.
Zatem kady optymalny punkt musi spenia warunki Kuhn-Tuckera, ale
nie kady punkt, ktry spenia warunki Kuhn-Tuckera jest optymalny. Jeli
chodzi o punkty, ktre nie speniaj "constraint qualication", nic si nie da
o 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 problemw optymalizacji bez ogranicze.
Dla rnych parametrw funkcji kar i barier wykonuje si wielokrotnie
optynalizacj funkcji bez ogranicze, ktra dana jest nast puj cym wzo-
rem:
I(x, I) = }(x) + (I, q(x), l(x))
gdzie I jest zbiorem parametrw kary a jest funkcj kary, ktra fawory-
zuje selekcj punktw dopuszczalnych nad punkty niedopuszczalne. Uywa
7
Ograniczenia w postaci rwnoci s aktywne z denicji dla punktu dopuszczalnego, a
spord pozostaych ogranicze - tych w postaci nierwnoci - aktywne s tylko te ze zbioru
I(x

).
26
Mr1onv o1vm~iiz~c}i Micha Lewandowski
si rnych funkcji kary dla ogranicze w postaci rwnoci i dla ogranicze
w postaci nierwnoci. Dodatkowo niektre funkcje nakadaj kar tylko
na punkty niedozwolone (wwczas nazywaj si funkcjami kary lub funkcja-
mi kary zewntrznej) a niektre funkcje nie potra w ogle radzi sobie z
punktami niedopuszczalnymi i nakadaj kar na punkty dozwolone, jeli s
blisko granicy ograniczenia (nazywaj si wwczas funkcj bariery lub we-
wntrzn funkcj kary). Poniej przedstawiona bdzie jedna wersja metody
kar i barier, w ktrej bdziemy zajmowa si wy cznie ograniczeniami w
postaci nierwnoci i funkcja kary bedzie nast puj cej postaci:
= I(q(x))
2
gdzie (q(x)) =
_
q(x), jeli q(x) < 0
0, jeli q(x) _ 0
Na pocztku optymalizuje si }(x)+ dla maej wartoci I, nastpnie sukce-
sywnie zwiksza si warto I i znowu optymalizuje metodami optymalizacji
bez ogranicze dla nowych wartoci I. Poniej znajduje si algorytm:
Algorytm
1) Wybierz parametry zakoczenia c
1
, c
2
, pocztkowy punkt x
(0)
, poczt-
kowy parametr funkcji kary I
(0)
oraz parametr zwikszania parame-
tru funkcji kary o . 1. Ustal t = 0.
2) Utwrz I(x
(t)
, I
(t)
) = }(x
(t)
) +I(q(x
(t)
))
2
.
3) Startujc z x
(t)
, znajd x
(t+1)
tak, e I(x
(t+1)
, I
(t)
) jest minimalne dla
ustalonej wartoci I
(t)
- wykorzystaj jedn z metod minimalizacji funk-
cji wielu zmiennych bez ogranicze. Do zatrzymania poszukiwa uyj
c
1
.
4) Jeli [I(x
(t+1)
, I
(t)
) I(x
(t)
, I
(t1)
)[ _ c
2
, ustal x
T
= x
(t+1)
i Zakocz.
W przeciwnym przypadku id do kroku 5).
5) Wybierz I
(t+1)
= oI
(t)
. Ustal t = t + 1 i id do kroku 2).
27

You might also like