Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
UNIVERZA V MARIBORUFAKULTETA ZA LOGISTIKO
Tomaž Kokolj
UPORABA QUASI-NEWTONOVIHMETOD PRI REŠEVANJU
NELINEARNIH LOGISTICNIHPROBLEMOV
diplomsko delo univerzitetnega študijskega programa
Celje, junij 2014
UNIVERZA V MARIBORUFAKULTETA ZA LOGISTIKO
Tomaž Kokolj
UPORABA QUASI-NEWTONOVIHMETOD PRI REŠEVANJU
NELINEARNIH LOGISTICNIHPROBLEMOV
diplomsko delo univerzitetnega študijskega programa
Mentor:doc. dr. Dejan Dragan
Celje, junij 2014
IZJAVA O AVTORSTVUdiplomskega dela
Spodaj podpisan/a ,
študent/ka
(študija), z vpisno številko , sem avtor/ica
diplomskega dela:
.
S svojim podpisom zagotavljam, da:
• je predloženo delo rezultat izkljucno mojega lastnega raziskovalnega dela;• sem poskrbel/a, da so dela in mnenja drugih avtorjev oz. avtoric, ki jih uporabljam v
diplomskem delu, navedena oz. citirana v skladu s navodili Fakultete za logistikoUniverze v Mariboru;
• sem poskrbel/a, da so vsa dela in mnenja drugih avtorjev oz. avtoric navedena vseznamu virov, ki je sestavni del diplomskega dela in je zapisan v skladu s navodiliFakultete za logistiko Univerze v Mariboru;
• sem pridobil/a vsa dovoljenja za uporabo avtorskih del, ki so v celoti prenesena vdiplomsko delo in sem to tudi jasno zapisal/a v diplomskem delu;
• se zavedam, da je plagiatorstvo – predstavljanje tujih del, bodisi v obliki citata bodisiv obliki skoraj dobesednega parafraziranja bodisi v graficni obliki, s katerim so tujemisli oz. ideje predstavljene kot moje lastne – kaznivo po zakonu (Zakon o avtorskihin sorodnih pravicah, Uradni list RS št. 21/95), prekršek pa podleže tudi ukrepomFakultete za logistiko Univerze v Mariboru v skladu z njenimi pravili;
• se zavedam posledic, ki jih dokazano plagiatorstvo lahko predstavlja za predloženodelo in za moj status na Fakulteti za logistiko Univerze v Mariboru;
• je diplomsko delo jezikovno korektno in da je delo lektoriral/a.
V Celju, dne Podpis avtorja/-ice:
ZAHVALA
Zahvaljujem se mentorju doc. dr. Dejanu Draganu za pomoc, nasvete in obilico literature,
ter Tei Vizinger pri pomoci z programi v programu MATLAB.
Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov
V diplomskem delu obravnavamo reševanje multidimenzinalnih optimizacijskih metodbrez omejitev, saj je tudi v naravi vecina problemov nelienarnih. Na kratko opišemooptimizacijo na splošno ter razložimo nekaj najbolj nujnih matematicnih osnov za razu-mevanje nadaljnje snovi. Nato malo bolj podrobno razložimo Newtonove metode, šeposebej podrobno pa Quasi-Newtonovi metodi DFP (Davidon - Fletcher - Powell) inBFGS (Broyden - Fletcher - Goldfarb - Shanno). Slednje potem uporabimo za reševanjelokacijskega problema skladišca pri multidimenzionalni optimizaciji brez omejitev. Ciljdiplomskega dela je s tema dvema metodama ugotoviti, ali sta primerni za rešitev našegaproblema, v cem razlikujeta in ce se, katera izmed njiju je bolj primerna za naš problem.Za reševanje realnega problema uporabimo že naprej napisane programe v MATLABu, zaizris slik pa uporabimo progamski paket PFGPlots, ki je del oznacevalnega jezika LATEX.
Kljucne besede: Newton, Quasi-Newton, DFP, BFGS, LATEX
Solving non-linear logistics problems using Quasi-Newton methods
In our thesis we dealt with solving multidimenzinalnih optimization problems with methodswithout restriction, that are also most common in nature. We briefly describe optimizationin general and explane some of the most known mathematical theorys for understanding thecomming sections. Then we go into a little more detailed explanation about Newton’s me-thod and eaven more detailed explanation about Quasi-Newton’s methods DFP (Davidon -Fletcher - Powell) and BFGS (Broyden - Fletcher - Goldfarb - Shanno). We then use thistwo methods to solve a location problem of our warehouse with multidimensional methodswithout restrictions. The main objective of this thesis is to determinate whether these twomethods are suitable for solving our location problem, whether or not they differ from eachother and if they do, which one is more suitable for solving our problem. In other to do thiswe have used pre made programs in MATLAB for solving the equations and the packagePGFPlots for ploting images in LATEX, which is the markup language we wrote the thesis in.
Keywords: Newton, Quasi-Newton, DFP, BFGS, LATEX
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
KAZALO
UVOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1 OPTIMIZACIJA, NEWTONOVE IN QUASI-NEWTONOVE METODE . 31.1 Newtonova enodimenzionalna metoda . . . . . . . . . . . . . . . . . . . 4
1.2 Newtonova multidimenzionalna metoda . . . . . . . . . . . . . . . . . . 8
1.3 Quasi-Newtonove metode . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3.1 Aproksimacija inverzne Hessove matrike . . . . . . . . . . . . . 11
1.3.2 Korekcijska enacba ranga ena . . . . . . . . . . . . . . . . . . . 13
1.3.3 DFP metoda . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3.4 BFGS metoda . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2 ILUSTRACIJA REŠEVANJA NELINEARNIH PRIMEROV S POMOCJOANALITICNEGA NACINA RACUNANJA . . . . . . . . . . . . . . . . . . 242.1 Simulacijska primera po DFP metodi . . . . . . . . . . . . . . . . . . . . 24
2.1.1 Primer 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.1.2 Primer 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2 Simulacijska primera po BFGS metodi . . . . . . . . . . . . . . . . . . . 30
2.2.1 Primer 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.2.2 Primer 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.3 Primerjava simulacijskih primerov . . . . . . . . . . . . . . . . . . . . . 37
2.4 Tabeli simulacijskih primerov . . . . . . . . . . . . . . . . . . . . . . . 38
3 RAZVOJ RACUNALNIŠKIH PROGRAMOV V MATLABU TER GRAFOVV LATEXU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393.1 DFP optimizacijski program . . . . . . . . . . . . . . . . . . . . . . . . 39
3.2 BFGS optimizacijski program . . . . . . . . . . . . . . . . . . . . . . . 41
3.3 Prikaz grafov v LATEX-u . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4 REŠEVANJE SIMULACIJSKIH PRIMEROV S POMOCJO RAZVITIH PRO-GRAMOV V MATLABU . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.1 Simulacijski primer 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.2 Simulacijski primer 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5 REŠEVANJE REALNEGA PRIMERA LOKACIJSKEGA PROBLEMA SPOMOCJO RAZVITIH PROGRAMOV V MATLABU . . . . . . . . . . . 465.1 Rešitev realnega primera po DFP metodi . . . . . . . . . . . . . . . . . . 47
5.2 Rešitev realnega primera po BFGS metodi . . . . . . . . . . . . . . . . . 48
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov vi
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
5.3 Primerjava in grafi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
ZAKLJUCEK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
LITERATURA IN VIRI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
PRILOGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov vii
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
KAZALO SLIK
1 Stacionarne tocke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Ideja aproksimacije po Newtonovi metodi . . . . . . . . . . . . . . . . . 6
3 Aproksimacija po Newtonovi metodi . . . . . . . . . . . . . . . . . . . . 8
4 DFP algiritem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5 BFGS algiritem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6 Graficni prikaz funkcije 2.1 . . . . . . . . . . . . . . . . . . . . . . . . . 43
7 Graficni prikaz funkcije 2.1 . . . . . . . . . . . . . . . . . . . . . . . . . 45
8 Lokacijski problem skladišca . . . . . . . . . . . . . . . . . . . . . . . . 46
9 Lokacijski problem skladišca . . . . . . . . . . . . . . . . . . . . . . . . 50
10 Funkcija realnega primera . . . . . . . . . . . . . . . . . . . . . . . . . 51
KAZALO TABEL
1 Rezultati DFP in BFGS metode za primer 2.1 . . . . . . . . . . . . . . . 38
2 Rezultati DFP in BFGS metode za primer 2.2 . . . . . . . . . . . . . . . 38
3 Rezultati realnega primera po DFP metodi . . . . . . . . . . . . . . . . . 48
4 Rezultati realnega primera po BFGS metodi . . . . . . . . . . . . . . . . 49
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov viii
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
UVOD
Opis problema
V diplomskem delu bomo raziskali Quasi-Newtonove metode in sicer metodi DFP in
BFGS. Želimo ugotoviti, ce in katera od teh dveh metod bi bila primernejša za reševanje
naših problemov. Da bi lahko primerjali prednosti in slabosti obeh metod, bomo uporabili
dva simulacijska ter en realni primer problema.
Dolocitev ciljev, namena in poti za reševanje problema
Najprej bomo razložili Optimizacijo na splošno, z vsemi matematicnimi osnovami, da bi
lahko najbolje razumeli preucevano snov. Nato si bomo nekoliko bolj podrobno pogledali
Newtonovo optimizacijsko metodo, ker je ta nujno potrebna za razumevanje snovi, saj so
se Quasi-Newtonove metode razvile iz njih. Cilj je podrobno pogledati Quasi-Newtonove
metode, predvsem metodi DFP in BFGS, ter ugotoviti, v cem se razlikujeta v delovanju in
ce je katera boljša oziroma bolj primerna za naš problem.
Predstavitev okolja
Za naš realni primer želimo ugotoviti najbolj optimalno lokacijo skladišca, ki bi oskrboval
trgovine z blagom. Pri tem bomo vzeli cim vec trgovin, da bi bil problem bolj realen. Na
postavitev skladišca bo vplivala tako lokacija, kot tudi potreba vsake trgovine po blagu, ki
bodo razlicne od trgovine do trgovine.
Predpostavke in omejitve
Predpostavili bomo, da je cestna infrastruktura in promet do vseh trgovin enak. To pomeni,
da bomo imeli optimizacijo brez omejitev. Omejeni pa bomo predvsem na to, da rešujemo
problem samo po Quasi-Newtonovih metodah DFP in BFGS. Lahko se ti dve metodi
izkažeta, da nista optimalni za rešitev našega problema oziroma, da našega problema s
tema dvema metodama sploh ni mogoce rešiti.
Metode dela
Pri diplomskem delu bomo uporabili analiticno reševanje simulacijskih primerov, ki jih
bomo kasneje še rešili z že naprej napisanimi programi. Prav tako bomo rešili realni
problem z že naprej napisanimi programi, saj je tako težavni primer prakticno nemogoce
analiticno izracunati. Za reševanje danih problemov v najprej razvitih programih bomo
uporabili program MATLAB, za izris grafov pa programski paket PGFPlots, ki je del
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 1
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
oznacevalnega jezika LATEX, v katerem je to diplomsko delo napisano. Prav tako je vecina
grafov, ki so prisotni v diplomskem delu, narisani s pomocjo PGF/TikZ kot LATEX koda.
Samo eden je narisan kot binarna slika (.bmp, .jpg, .png).
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 2
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
1 OPTIMIZACIJA, NEWTONOVE IN QUASI-
NEWTONOVE METODE
Optimizacija je zbirka matematicnih nacel in metod, ki jih uporabljamo pri reševanju
kolicinskih problemov. Takšni problemi lahko nastopajo v fiziki, biologiji, inženirstvu,
ekonomiji ali podjetništvu. Predmet je zrasel iz spoznanja, da imajo imajo kolicinski
problemi v razlicnih panogah skupne matematicne elemente. Zaradi takšne enakosti lahko
veliko problemov rešimo z enotnim sklopom idej in metod (Optimization, b.1.).
Zgodovinsko gledano, se je izraz matematicno programiranje, ki je sinonim za optimi-
zacijo, skoval v štiridesetih 40-ih letih 19. stoletja, preden je izraz programiranje bil
enacen z racunalniškim programiranjem. Matematicno programiranje vkljucuje raziskavo
matematicnih struktur za optimizacijske probleme, izum metod za reševanje teh problemov,
raziskavo matematicnih lastnosti teh metod, ter izvajanje teh metod na racunalnikih. Vse
hitrejši racunalniki pa so mocno razširili obseg in zahtevnost optimizacijskih problemov,
ki jih lahko rešimo (Optimization, b.1.).
Optimizacijski problemi so tipicno sestavljeni iz dveh temeljnih elementov. Prvi je ciljna
funkcija, ki ji je potrebno poiskati maksimum ali minimum. To je lahko prevoz dobrin
po najkrajši poti, razporejanje delovne sile in sredstev tako, da so stroški minimalni, ali
izboljšanje proizvodnega procesa tako, da je produktivnost maksimalna. Drugi pa so
omejitve, ki jih lahko ciljna funkcija sprejme kot spremenljivke. Primer je lahko kapaciteta
skladišca ali primeren cas dobave (Optimization, b.1.).
Optimizacijo pa lahko razvrstimo tudi na linearno in nelinearno, pri cemer si bomo drobneje
pogledali slednjo. Nelinearna optimizacija je tista, ki ima spremenljivke s potenco dva
ali vec. To lahko velja tako za ciljno funkcijo kot omejitve, lahko pa tudi za oboje hkrati.
Ta nacin optimizacije je najbolj pogost, saj so mnogi problemi v optimizaciji po naravi
nelinearni. Tukaj je potrebno poudarit, da je problem nelinearen že takrat, ko je ena sama
spremenljivka nelinearna. Matematicno bi to zapisali kot:
xn : n ≥ 2, n ∈ N, x ∈ R
Pri cemer je spremenljivka x, ki pripada ∈ množici R realno število, potenca n, ki pripada
∈ množici N, pa naravno. Naravna števila so vsa števila od 1 naprej, ki se lahko zapišejo
kot cela števila brez ulomkov ( xy) in kvadratnih korenov (
√x). Realna števila pa so tako
pozitivno, kot negativna števila z ulomki in kvadratnimi koreni, le da pod kvadratnim
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 3
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
korenom ni negativnega predznaka (√−x - imaginarno število) (Fošner M. & Fošner A.,
2007, str. 12-22).
1.1 Newtonova enodimenzionalna metoda
Za Newtonovo metodo je znacilno, da je odvod ciljne funkcije enak nic, torej (Vrancic &
Dragan, 2008, str. 245):
f ′(x∗) = 0 (1.1)
To pomeni, da ima ciljna funkcija v dani tocki x∗ stacionarno tocko. Stacionarna tocka
je lahko minimum, maksimum, ali prevoj. Ciljna funkcija f (x) ima v tocki x∗ lokalni
minimum takrat, ce obstaja takšno pozitivno realno število δ > 0, da bo za vsak x iz
intervala (x∗ − δ, x∗ + δ) veljalo, da je f (x) ≥ f (x∗). Nasprotno ima ciljna funkcija f (x∗) v
tocki x∗ lokalni maksimum, ce obstaja takšno pozitivno realno število δ > 0, da bo za vsak
x iz intervala (x∗ − δ, x∗ + δ) veljalo, da je f (x) ≤ f (x∗). Temu pravimo, da ima funkcija
f (x) lokalni ekstrem. Funkcija pa ima lahko tudi globalni ekstrem tam, kjer ima najmanjšo
vrednost (minimum) ali najvecjo vrednost (maksimum) nasploh. To je na njenem celotnem
definicijskem obmocju. Vendar pa je potrebno paziti, saj ni vsaka stacionarna tocka tudi
ekstrem funkcije. Ce je odvod funkcije f (x∗) = 0 in ta funkcija nima ekstrema, potem
ima funkcija f (x) v tocki x∗ prevoj. Da bi ugotovili, za katero vrsto stacionarne tocke
gre, lahko uporabimo drugi odvod. Ce je f ′′(x∗) > 0, potem je ta stacionarna tocka tudi
minimum funkcije f (x). Velja tudi obratno. Ce je f ′′(x∗) < 0, potem je stacionarna tocka
maksimum funkcije f (x). V primeru, da je f ′′(x∗) = 0, potem je ta stacionarna tocka
prevoj funkcije f (x) (Fošner M. & Fošner A., 2007, str. 47-57).
Slika 1: Stacionarne tocke
x
y
f (x)
g(x)
h(x)
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 4
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
Slika 1 prikazuje tri funkcije, in sicer f (x) = x2, g(x) = −x2, ter h(x) = x3. Funkcija f (x)
ima v tocki x∗ = 0 minimum. Ker je to edini minimum funkcije, je v tej tocki tudi globalni
minimum. Prav tako ima funkcija g(x) v tocki x∗ = 0 globalni maksimum, saj je to edini
maksimum funkcije. Funkcija h(x) pa ima v tocki x∗ = 0 prevoj. Zgornje funkcije bi lahko
rešili tudi racunsko s pomocjo tabele odvodov elementarnih funkcij (Fošner M. & Fošner
A., 2007, str. 54):
(C)′ = 0
(xn)′ = n · xn−1 (1.2)
Pri cemer je C konstanta, x pa spremenljivka, po kateri odvajamo. Tako dobimo rezultate:
f ′(x) = 2x , g′(x) = −2x , h′(x) = 3x2
f ′′(x) = 2, g′′(x) = −2, h′′(x) = 6x (1.3)
Kot vidimo imajo vse tri funkcije po prvem odvodu stacionarno tocko v x∗ = 0, saj je
takrat ciljna funkcija f (0) = 0. Po drugem odvodu pa smo ugotovili, da ima funkcija
f (x) v tocki x∗ = 0 globalni minimum, funkcija g(x) v tocki x∗ = 0 globalni maksimum,
ter funkcija h(x) v tocki x∗ = 0 prevoj. Razumevanje slednjega je pomembno, da lahko
razumemo Taylorjevo vrsto (Fošner M. & Fošner A., 2007, str. 60).
Taylorjevo formulo uporabljamo za aproksimacijo (približek) odvedljivih funkcij s poli-
nomi. Polinomi so funkcije višjega reda xn. Na sliki 1 smo že imeli tri polinome. Funkciji
f (x) ter g(x) sta polinoma reda 2, ter funkcija h(x), ki je polinom reda 3. Na tak nacin
lahko približno izracunamo vrednosti zapletenih funkcij, kar je tudi ideja Newtonove
metode. Taylorjevo formulo lahko zapišemo kot:
f (x) = f (x0) +f ′(x0)
1!· (x − x0) +
f ′′(x0)2!
· (x − x0)2 +f (3)(x0)
3!· (x − x0)3 + · · ·
f (x) =
∞∑
n=0
f (n)(x0)n!
· (x − x0)n (1.4)
pri cemer je x0 neka zacetna aproksimacija tocke x∗. Mi bomo uporabili samo prve tri
clene Taylorjeve formule za aproksimacijo s parabolo. Parabola je polinom 2 reda. Dve
paraboli smo že spoznali na sliki 1. To sta bili funkciji f (x) in g(x). Tako lahko Taylorjevo
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 5
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
formulo zapišemo kot (Vrancic & Dragan, 2008, str. 245):
f (x) ≈ q(x) = f (x0)︸︷︷︸K1
+ f ′(x0)︸︷︷︸K2
·(x − x0) +12· f ′′(x0)
︸ ︷︷ ︸K3
·(x − x0)2 =
= K1 + K2 · (x − x0) + K3 · (x − x0)2 (1.5)
Nato vzamemo ekstremno tocko x1 funkcije q(x) kot novo aproksimacijo tocke x∗. Kako
zgleda 1. in 2. iteracija funkcije f (x), si lahko ogledamo graficno na sliki 2 (Vrancic &
Dragan, 2008, str. 246).
Slika 2: Ideja aproksimacije po Newtonovi metodi
x
y
f (x)
f1(x) = q1(x)
f2(x) = q2(x)
x∗ x0
A
x1
B
C
x2
D
E
A : q1(x0)︸︷︷︸f1(x0)
= f (x0) B : q1(x1)︸︷︷︸f1(x1)
= min q1(x)
C : q2(x1)︸︷︷︸f2(x1)
= f (x1) D : q2(x2)︸︷︷︸f2(x2)
= min q2(x) (1.6)
Tocka x0 je zacetna aproksimacija stacionarne tocke x∗, tocka A pa predstavlja vrednost
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 6
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
funkcije f (x), ki jo aproksimiramo s prvimi tremi cleni Taylorjeve vrste:
f1(x) ≈ q1(x) = f (x0)︸︷︷︸K1
+ f ′(x0)︸︷︷︸K2
·(x − x0) +12· f ′′(x0)
︸ ︷︷ ︸K3
·(x − x0)2 =
= K1 + K2 · (x − x0) + K3 · (x − x0)2 (1.7)
Tocka B, ki je minimum parabole q1(x) se vzame za novo stacionarno tocko. Ekstremna
tocka x1 je tako nova aproksimacija stacionarne tocke x∗, kar je tudi 1. iteracija postopka:
d
dxf1(x) =
d
dxq1(x) = K2 + 2 · K3 · (x − x0) = 0 →
xeks = x1 = x0 − K2
2 · K3→ (1.8)
x1 = x0 − f ′(x0)2 · 1
2 · f ′′(x0)= x0 − f ′(x0)
f ′′(x0)
Enako naredimo za 2. iteracijo postopka. Tocka x1 je tukaj zacetna aproksimacija sta-
cionarne tocke x∗, tocka C pa predstavlja vrednost funkcije f (x), ki jo aproksimiramo s
prvimi tremi cleni Taylorjeve vrste (Vrancic & Dragan, 2008, str. 247):
f2(x) ≈ q2(x) = f (x1)︸︷︷︸K1
+ f ′(x1)︸︷︷︸K2
·(x − x1) +12· f ′′(x1)
︸ ︷︷ ︸K3
·(x − x1)2 =
= K1 + K2 · (x − x1) + K3 · (x − x1)2 (1.9)
Prav tako se tocka D, ki je minimum parabole q2(x) vzame za novo stacionarno tocko.
Ekstremna tocka x2 je tako nova aproksimacija stacionarne tocke x∗, kar je tudi 2. iteracija
postopka:
d
dxf2(x) =
d
dxq2(x) = K2 + 2 · K3 · (x − x1) = 0 →
xeks = x2 = x1 − K2
2 · K3→ (1.10)
x2 = x1 − f ′(x1)2 · 1
2 · f ′′(x1)= x1 − f ′(x1)
f ′′(x1)
Newtonovo iteracijsko enacbo lahko za k-to iteracijo napišemo na sledec nacin (Vrancic &
Dragan, 2008, str. 248):
xk+1 = xk − f ′(xk)f ′′(xk)
, k = 0, 1, 2, 3 . . . (1.11)
Enacba nam pomaga poiskati pravi optimum funkcije, saj nas vodi do stacionarne tocke
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 7
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
funkcije f (x). S tem se minimumi aproksimacij (min qk(x), k = 0, 1, 2, 3 . . .) z vsako novo
iteracijo vse bolj bližajo minimumu funkcije f (x). S pomocjo programa MATLAB lahko
še bolj nazorno prikažemo primer iskanja minimuma funkcije na sliki 3.
Slika 3: Aproksimacija po Newtonovi metodi
Vir: Dragan, 2010, str. 93
Kod izhodišce vzamemo tocko A. V 1. iteraciji poišcemo minimum parabole, ki je tocka B,
ki jo vzamemo za novo izhodišce, ki nas preslika v tocko C. To vzamemo kot izhodišce za
novo aproksimacijo parabole v 2. iteraciji, ki ima minimum v toci D. Iteracije ponavljamo
vse od tocke H , ki je naš minimum funkcije (Dragan, 2010, str. 93).
1.2 Newtonova multidimenzionalna metoda
Newtonova multidimenzionalna metoda je posplošitev Newtonove enodimenzionalne me-
tode. Lahko jo izrazimo s pomocjo Taylorjeve vrste, kot smo že videli pri enodimenzionalni
metodi, le da tokrat izrazimo funkcijo z gradientom in Hessovo matriko (Vrancic & Dragan,
2008, str. 352).
f (xk+1) = f (xk + ∆xk) ≈ f (xk) + [∇ f (xk)]T · ∆xk +12· ∆xTk · ∇2 f (xk) · ∆xk (1.12)
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 8
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
Gradient je vektor, ki ga zapišemo z ∇ (Gradient, b.1.). Vektorji so usmerjene daljice v
prostoru, se pravi, da imajo - v nasprotju s skalarji (Fošner M. & Fošner A., 2007, str. 101)
- zraven numericne (številske) vrednosti tudi smer. Gradient se vecinoma uporablja za
realne funkcije z vec spremenljivkami v multidimenzionalnem prostoru, ki ga zapišemo
kot (Vrancic & Dragan, 2008, str. 145):
∇ f (x) =
[∂ f (x)∂x1
∂ f (x)∂x2
· · · ∂ f (x)∂xn
](1.13)
Pri cemer so ∂ parcialni odvodi funkcije f (x) (Partial Derivative, b.1.). Parcialni odvodi
so definirani kot odvodi funkcije z vec spremenljivkami, kjer se vse ostale spremenljivke
vzamejo kot konstante C, razen tiste spremenljivke, po kateri odvajamo. Ce odvajamo po
prvi spremenljivki ∂x1, potem se vse ostale spremenljivke x2, x3, . . . vzamejo kot konstante.
Hessova matrika pa je matrika drugih parcialnih odvodov. Matrike so pravokotne tabele
m × n (m stolpcev, n vrstic) (Fošner M. & Fošner A., 2007, str. 108). Hessova matrika je
vedno reda n × n, kar pomeni, da ima enako število stolpcev, kot vrstic. Zapišemo jo kot
(Vrancic & Dragan, 2008, str. 145):
∇2 f (x) =
∂2 f (x)∂x2
1
∂2 f (x)∂x1∂x2
· · · ∂2 f (x)∂x1∂xn
∂2 f (x)∂x2∂x1
∂2 f (x)∂x2
2
· · · ∂2 f (x)∂x2∂xn
......
. . ....
∂2 f (x)∂xn∂x1
∂2 f (x)∂xn∂x2
· · · ∂2 f (x)∂x2
n
(1.14)
Ce sedaj parcialno odvajamo enacbo (1.12) in jo enacimo z nic dobimo (Vrancic & Dragan,
2008, str. 352):
∂
∂∆xkf (xk+1) =
∂
∂∆xkf (xk + ∆xk) ≈ 0 + [∇ f (xk)]T · 1 +
12· ∂
∂∆xk(∆xTk · ∇2 f (xk) · ∆xk) =
= [∇ f (xk)]T +12· 2 · ∇2 f (xk) · ∆xk = [∆ f (xk)]T + ∇2 f (xk) · ∆xk = 0
(1.15)
pri cemer je spremenljivka, po kateri parcialno odvajamo ∆xk , k = 0, 1, 2 . . ., ostale
spremenljivke pa vzamemo kot konstante C. Pri izrazu [∇ f (xk)]T , ki smo ga videli pri
enacbah (1.12) in (1.15), pomeni T transponiranje (Fošner M. & Fošner A., 2007, str. 112).
Pri transponiranju zapišemo vrstice matrike kot stolpce, stolpce pa kot vrstice. Ce iz enacbe
(1.15) izrazimo ∆xk , dobimo (Vrancic & Dragan, 2008, str. 353):
∆xk = −[∇2 f (xk)]−1 · [∇ f (xk)]T = xk+1 − xk (1.16)
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 9
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
Pri cemer nam sprememba vektorja ∆xk doloci smer novega koraka (iteracije). Zgornjo
enacbo lahko zapišemo tudi kot iteracijsko enacbo (Dragan, 2010, str. 90):
xk+1 = xk − [∇2 f (xk)]−1 · [∇ f (xk)]T , k = 0, 1, 2, . . . (1.17)
Vidimo, da pride do inverzne Hessove matrike. Ce Hessova matrika ni obrnljiva (njena
determinanta je enaka 0), zna to biti problematicno, saj je (Fošner M. & Fošner A., 2007,
str. 117):
A−1 =1
det A
(−1)1+1D11 (−1)1+2D12 · · · (−1)1+nD1n
(−1)2+1D21 (−1)2+2D22 · · · (−1)2+nD2n...
.... . .
...
(−1)n+1Dn1 (−1)n+2Dn2 · · · (−1)n+nDnn
(1.18)
Pri cemer so Di j poddeterminante matrike AT . Takrat pravimo, da je Hessova matrika
singularna. V tem primeru Newtonova metoda odpove, saj sistem ni rešljiv (Vrancic &
Dragan, 2008, str. 351). Da bi se izognili invertiranju Hessove matrike bomo uvedli
Quasi-Newtonove metode in sicer metodi DFP in BFGS.
1.3 Quasi-Newtonove metode
Quasi-Newtonove metode so danes ene najbolj efektivnih metod za reševanje nelinearnih
problemov. Kot smo že povedali v prejšnjem poglavju, lahko pri Newtonovi metodi nasta-
nejo problemi, ce ne moremo izracunati drugega odvoda Hessove matrike, ali takrat, ko bi
bilo takšno racunanje casovno potratno zaradi velikega števila spremenljivk (Conn, 1991,
str. 177). Zato uporabimo Quasi-Newtonove metode, da se izognemo izognemo racunanju
inverzne Hessove matrike. Namesto nje uporabimo simetricno pozitivno definitno matriko
G, ki je aproksimacija Hessove matrike, ki se spreminja v vsaki iteraciji (Dragan, 2010, str.
173). Simetricna matrika je tista kvadratna matrika, ji lahko vrstice zapišemo kot stolpce,
stolpce pa kot vrstice, brez da bi spremenili njeno vrednost (Fošner M. & Fošner A., 2007,
str. 113). Se pravi A = AT . Pozitivno definitna matrika je po analogiji zelo podobna
pozitivnim realnim številom (Positive Definite Matrix, b.1.). Ce obstaja tak nenicelni
vektor x, da velja (Chong & Zak, 2001, str. 168):
xT ·Q · x > 0 (1.19)
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 10
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
Potem je matrika Q pozitivno definitna. Izrazu 1.19 se rece tudi kvadratna forma (Chong
& Zak, 2001, str. 26). Ce bi sedaj še enkrat napisali enacbo 1.16, dobimo:
∆xk = −H(xk)−1 · g(xk) (1.20)
Kjer je H(xk) = ∇2 f (xk) Hessova matrika, g(xk) = ∇ f (xk) pa gradient. Vendar pa inverzna
Hessova matrika ni edini problem Newtonove metode. Ce zacetna tocka x0 ni dovolj blizu
rešitve, se zna zgoditi, da ima algoritem resne težave s konvergenco (Dragan, 2010, str.
137). Da je algoritem globalno konvergenten, mora vsaka zacetna tocka x0 vodit do
optimuma, ne glede na število iteracij. V primeru, da algoritem ni globalno konvergenten,
pa še vedno lahko ustvari zadostno lokalno konvergenco, ce je zacetna toca x0 izbrana
dovolj blizu lokalnega ekstrema (Dragan, 2010, str. 29). Ce išcemo minimum in funkcija
v doloceni iteraciji ni manjša kot v prejšnji f (xk+1) ≮ f (xk), potem je funkcija na tem
odseku divergentna (Dragan, 2010, str. 137). Da se temu izognemo vpeljemo zraven
simetricne matrike G tudi parameter αk , ki nam pove dolžino koraka. Tako dobimo enacbo
(Dragan, 2010, str. 173):
∆xk = −αk · Gk · g(xk) (1.21)
S katero smo tudi zagotovili pogoj f (xk+1) < f (xk). Ker je ∆xk = xk+1 − xk sprememba
vektorja xk , lahko za vsako naslednjo iteracijo zapišemo enacbo (Chong & Zak, 2001, str.
167):
xk+1 = xk − αk · Gk · g(xk)︸ ︷︷ ︸dk
, k = 0, 1, 2, 3 . . . (1.22)
Kjer je dk smer iskanja optimuma. Pri aproksimacijah inverzne Hessove matrike H , bi
morali uporabiti samo ciljno funkcijo in gradientne vrednosti. V primeru, da najdemo
primerno simetricno matriko G, se lahko iteracije izvajajo brez potratnega racunanja
inverzne Hessove matrike, ter brez reševanja linearnih enacb. V primeru, da lahko najdemo
primerno simetricno matriko G za aproksimacijo inverzne Hessove matrike H , potem
lahko uporabimo samo ciljno funkcijo in vrednosti gradienta za izracun danega problema.
To pomeni, da lahko takrat problem rešimo brez racunanja inverzne Hessove matrike in
linearnih metod (Chong & Zak, 2001, str. 168).
1.3.1 Aproksimacija inverzne Hessove matrike
Naj bodo G0, G1, G2, . . . zaporedne aproksimacije inverzne Hessove matrike H(xk)−1.
Poizkusimo izpeljati pogoj, s katerim bomo zadovoljivo predstavili izhodišce za naše
nadaljnje izpeljave Quasi-Newtonovih metod. Za zacetek predpostavimo, da je Hessova
matrika H(x) od ciljne funkcije konstantna in neodvisna od x. Potem je ciljna funkcija
kvadratna, kjer je Hessova matrika H(x) = Q za vse x, kjer je Q = QT simetricna (Chong
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 11
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
& Zak, 2001, str. 168).
gk+1 − gk = Q · (xk+1 − xk) (1.23)
Ce predpostavimo, da velja:
∆gk , gk+1 − gk
∆xk , xk+1 − xk (1.24)
Pri cemer je , znak za logicno enakost. Potem lahko zapišemo:
∆gk = Q · ∆xk (1.25)
Zacnimo z pravo simetricno pozitivno definitno matriko G0. Pri danem k izpolnjuje matrika
Q−1:
Q−1 · ∆gi = ∆xi , 0 ≤ i ≤ k (1.26)
Uvedemo zahtevo, ki zadovolji aproksimacijo Hessove matrike Gk+1:
Gk+1 · ∆gi = ∆xi , 0 ≤ i ≤ k (1.27)
Ce je vkljucenih n korakov, ko se premikamo v n smeri ∆x0,∆x1, . . . ,∆xn−1, potem:
Gn · ∆g0 = ∆x0
Gn · ∆g1 = ∆x1
...
Gn · ∆gn−1 = ∆xn−1 (1.28)
Zgornji niz enacb bi lahko tudi zapisali kot:
Gn · [∆g0,∆g1, . . . ,∆gn−1] = [∆x0,∆x1, . . . ,∆xn−1] (1.29)
Pri cemer Q izpolnjuje:
Q · [∆x0,∆x1, . . . ,∆xn+1] = [∆g0,∆g1, . . . ,∆gn−1] (1.30)
Iz tega sledi, da je Q−1:
Q−1 · [∆g0,∆g1, . . . ,∆gn−1] = [∆x0,∆x1, . . . ,∆xn−1] (1.31)
Ce torej [∆g0,∆g1, . . . ,∆gn−1] niso singularni, potem je Q−1 enolicno dolocena po n
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 12
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
korakih z:
Q−1 = Gn = [∆x0,∆x1, . . . ,∆xn−1] · [∆g0,∆g1, . . . ,∆gn−1]−1 (1.32)
Posledicno lahko sklepamo, da ce Gn izpolnjuje pogoj, da drži enacba Gn · ∆gi = ∆xi ,
0 ≤ i ≤ n − 1, potem algoritem xk+1 = xk − αk · Gk · gk zagotovo reši problem ciljne
funkcije v n + 1 korakih, saj je enacba xn+1 = xn − αn · Gn · gn ekvivalentna enacbi
xk+1 = xk − H(xk)−1 · gk z posodobitvijo αk , ki man pove optimalno dolžino koraka.
Kot bomo videli spodaj, lahko takšni algoritmi rešijo vecino kvadratnih problemov n
spremenljivk v n korakih. Zgornje ugotovitve kažejo na osnovni idejo Quasi-Newtonovih
metod. Natancneje povedano, imajo Quasi-Newtonovi algoritmi obliko (Chong & Zak,
2001, str. 170):
dk = −Gk · gkxk+1 = xk + αk · dk (1.33)
Kjer so G0,G1, . . . simetricna matrike. V kvadratnem smislu morajo zgornje matrike
zadovoljiti (Chong & Zak, 2001, str. 170):
Gk+1 · ∆gi = ∆xi , 0 ≤ i ≤ k (1.34)
Kjer je ∆xi = xi+1 − xi = αi · di , ter ∆gi = gi+1 − gi = Q ·∆gi . Vedeti moramo, da enacbe s
katerimi racunamo matriko Gk niso enolicno dolocene. Tako imamo nekoliko prostosti pri
racunanju matrike Gk . V nadaljevanju bomo opisali metode, s katerimi lahko izracunamo
matriko Gk+1, s tem ko dodamo popravek matriki Gk . Naslednja tir podpoglavja opisujeta
tri specificne posodobitve teh enacb (Chong & Zak, 2001, str. 170).
1.3.2 Korekcijska enacba ranga ena
Pri korekcijski enacbi ranga ena je korekcijski izraz simetricen, ter ima obliko ak · zk · zTk ,
pri cemer je ak ∈ R in zk ∈ Rn. Zato je posodobitev enacbe (Chong & Zak, 2001, str. 171):
Gk+1 = Gk + ak · zk · zTk︸ ︷︷ ︸∆Gk
(1.35)
Pri cemer je:
rank zk · zTk = rank
zk1...
zkn
· [zk1 · · · zkn]
= 1 (1.36)
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 13
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
Zaradi tega ji tudi pravimo rang ena korekcija. Ce upoštevamo enacbo za pozitivno
definitnost 1.19, potem je matrika Gk+1 pozitivno definitna, ce je tudi matrika Gk pozitivno
definitna. Naš cilj je sedaj dolociti ak in zk za danes Gk , ∆gk , ter ∆xk , da zadovoljimo
pogoje enacbe 1.34, Gk+1 · ∆gi = ∆xi , i = 1, . . . , k. Zacnimo s predpostavko, da Gk+1 ·∆gk = ∆xk . Z drugimi besedami povedano, želimo poiskati ak in zk pri danih Gk , ∆gk in
∆xk , da zagotovimo (Chong & Zak, 2001, str. 171):
Gk+1 · ∆gk = (Gk + ak · zk · zTk ) · ∆gk = ∆xk (1.37)
Kot prvo moramo opomniti, da je zTk· ∆gk skalar. Zato lahko zapišemo:
∆xk − Gk · ∆gk = (ak · zTk · ∆gk) · zk (1.38)
Sledi, da je zk :
zk =∆xk − Gk · ∆gkak · (zTk · ∆gk)
(1.39)
Sedaj lahko ugotovimo ak · zk · zTk :
ak · zk · zTk =(∆xk − Gk · ∆gk) · (∆xk − Gk · ∆gk)T
ak · (zTk · ∆gk)2(1.40)
Tako lahko zapišemo, da je Gk+1:
Gk+1 = Gk +(∆xk − Gk · ∆gk) · (∆xk − Gk · ∆gk)T
ak · (zTk · ∆gk)2(1.41)
V naslednjem koraku bomo izrazili imenovalec prejšnje enacbe kot funkcijo z danimi
kolicinami Gk , ∆gk in ∆xk . Da to dosežemo, pomnožimo enacbo 1.38 z ∆gTk
in dobimo
(Chong & Zak, 2001, str. 172):
∆gTk · ∆xk − ∆gTk · Gk · ∆gk = ∆gTk · ak · zk · zTk · ∆gk (1.42)
Ker je ak skalar, tako kot ∆gTk· zk = zT
k· ∆gk , dobimo:
∆gTk · ∆xk − ∆gTk · Gk · ∆gk = ak · (zTk · ∆gk)2 (1.43)
Ce sedaj vstavimo zgornjo enacbo v enacbo 1.41, dobimo:
Gk+1 = Gk +(∆xk − Gk · ∆gk) · (∆xk − Gk · ∆gk)T
∆gTk· (∆xk − Gk · ∆gk)
(1.44)
Korekcijska enacba ranga ena deluje dobro za kvadratne primere, a mi želimo uporabljati
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 14
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
algoritem tudi pri splošnih funkcijah, ne le kvadratnih. Na žalost pa rang ena algoritem
ni primeren za ne-kvadratne funkcije iz vec razlogov. Pri ne-kvadratnih ciljih funkcijah
se lahko zgodi, da simetricna matrika Gk+1 ni pozitivno definitna in tako dk+1 ne bi imel
optimalne smeri. Prav tako lahko nastopi problem pri izracunu prejšnje enacbe 1.44, ce je
∆gk · (∆xk − Gk · ∆gk) zelo blizu nic. Takrat imamo težave oceniti matriko Gk+1 (Chong
& Zak, 2001, str. 175).
Na sreco so bili razviti alternativni algoritmi za posodobitev Hk , ki jih imenujemo rang
dva algoritmi. Ce uporabimo posodobitev algoritma na rang dva, potem je matrika Gk
zagotovo pozitivno definitna za vse k pod pogojem, da je smer iskanja optimuma pravilna.
To si bomo natancneje pogledali v naslednjem poglavju (Chong & Zak, 2001, str. 175).
1.3.3 DFP metoda
Posodobitev na rang dva algoritem je prvotno razvil Davidon v letu 1959. V letu 1963,
pa sta ga spremenila Fletcher in Powell, zato se tudi imenuje DFP metoda ali kar DFP
algoritem. Imenuje se tudi algoritem metricnih spremenljivk. Povzeli ga bomo spodaj
(Chong & Zak, 2001, str. 176).
DFP Algoritem
1. Nastavimo k := 0; izberemo x0, ter pravo simetricno pozitivno definitno matriko
G0 = I
2. Izracunamo:
xk+1 = xk + αk · dk
3. Izracunamo:
∆xk = αk · dk∆gk = gk+1 − gk
Gk+1 = Gk +∆xk · ∆xTk∆xT
k· ∆gk
− [Gk · ∆gk] · [Gk · ∆gk]T
∆gTk· Gk · ∆gk
4. Ce ‖gk ‖ ≤ ε, ustavimo
5. Nastavimo k := k + 1, nazaj na 2. korak
Toleranca ε (vcasih oznacimo tudi kot TOL) nam pove, za koliko iteracij racunamo
algoritem, da se dovolj približamo lokalnemu (ali globalnemu) ekstremu funkcije. Matrika
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 15
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
I je enotska matrika. To je kvadratna matrika, ki ima vrednost 1 po diagonali, drugod pa 0,
se pravi (Fošner M. & Fošner A., 2007, str. 114):
In =
1 0 · · · 0
0 1 · · · 0...
.... . .
...
0 0 · · · 1
(1.45)
‖gk ‖ ≤ ε nam pove, da gradient gk dodatno normiramo. Norma se izracuna kot (Chong &
Zak, 2001, str. 16):
‖gk ‖ =
√〈gT
k, gk〉 =
√gTk· gk (1.46)
Enacba DFP metode je torej (Dragan, 2010, str. 175):
Gk+1 = Gk +∆xk · ∆xTk∆xTk · ∆gk︸ ︷︷ ︸
Mk
− Gk · ∆gk · ∆gTk ·GT
k︷︸︸︷Gk
∆gTk · Gk · ∆gk︸ ︷︷ ︸Nk
(1.47)
Zgornjo enacbo bomo zaradi lažjega racunanja razbili tako, da bomo uvedli M in N matriki.
Zato lahko zapišemo (Dragan, 2010, str. 175):
Mk =∆xk · ∆xTk∆xT
k· ∆gk
, Nk =Gk · ∆gk · ∆gTk · Gk
∆gTk· Gk · gk
(1.48)
Sledi, da je Gk+1 (Dragan, 2010, str. 175):
Gk+1 = Gk + ∆Gk = Gk + Mk − Nk (1.49)
Slika 4 podrobneje prikazuje DFP algoritem, ki ga lahko zaradi lažje predstave zapišemo
tudi v obliki blocnega diagrama (Dragan, 2010, str. 176).
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 16
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
Slika 4: DFP algiritem
k = 0, G0 = I
postavimo x0
in toleranco (ε)
g0 = ∇ f (x0)T
izracuni
gk ≤ ε
Optimum
xk
DA
NE
xk+1 = xk − αk ·Gk · gk︸︷︷︸∇ f (xk )
minimiziraj numericno:
f (xk+1) = f (αk)
min︸︷︷︸αk
( f (αk))→ α∗k
xk+1 = xk − α∗k · Gk · gkgk+1 = ∇ f (xk+1)
∆gk = gk+1 − gk
∆xk = xk+1 − xk
Mk =∆xk · ∆xTk∆xT
k· ∆gk
Nk =Gk · ∆gk · ∆gTk · Gk
∆gTk· Gk · ∆gk
Gk+1 = Gk + Mk − Nk
k = k + 1
Sedaj bomo poskušali pokazati, da je DFP algoritem Quasi-Newtonova metoda. Ce se ga
lahko uporablja za kvadratne probleme, potem imamo Gk+1 ·∆gi = ∆xi , 0 ≤ i ≤ k (enacba
1.34), pri cemer je Hessova matrike H(x) = Q = QT . Ce je k = 0, potem imamo (Chong
& Zak, 2001, str. 176):
G1 · ∆g0 = G0 · ∆g0 +∆x0 · ∆xT0∆xT0∆g0
· ∆g0 −G0 · ∆g0 · ∆gT0 · G0
∆gT0 · G0 · ∆g0· ∆g0
= ∆x0 (1.50)
Predpostavimo, da je rezultat pravilen za k − 1, tako da je Gk · ∆gi = ∆xi , 0 ≤ i ≤ k − 1.
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 17
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
Sedaj bomo pokazali, da je Gk+1 · ∆gi = ∆xi , 0 ≤ i ≤ k. Kot prvo preucimo i = k .
Gk+1 · ∆gk = Gk · ∆gk +∆xk · ∆xTk∆xT
k· ∆gk
· ∆gk −Gk · ∆gk · ∆gTk · Gk
∆gTk· Gk · ∆gk
· ∆gk
= ∆xk (1.51)
Preostane še primer, ko je i < k (Chong & Zak, 2001, str. 177):
Gk+1 · ∆gi = Gk · ∆gi +∆xk · ∆xTk∆xT
k· ∆gk
· ∆gi −Gk · ∆gk∆gTk · Gk
∆gTk· Gk · ∆gk
· ∆gi
= ∆xi +∆xk
∆xTk· ∆gk
· (∆xTk · ∆gi) −Gk · ∆gk
∆gTk· Gk · ∆gk
· (∆gTk · ∆xi) (1.52)
Ker po pravilih za kvadratne funkcije z Hessovo matriko Q = QT velja, da je gTk+1 · di =
dk+1 ·Q · di = 0, velja:
∆xTk · ∆gi = ∆xTk ·Q · ∆xi= αk · αi · dTk ·Q · di= 0 (1.53)
Saj je dTk·Q · di = ∆gT
k· ∆xi = 0. Sledi, da je:
Gk+1 · ∆gi = ∆xi (1.54)
Kar zadostuje kot dokaz. Sedaj bomo poizkusili dokazati, da Gk+1 podeduje pozitivno
definitnost od Gk . Ce je Gk pozitivno definitna in gk , 0, potem (Chong & Zak, 2001, str.
179):
xT · Gk+1 · x = xT · Gk · x +xT · ∆xk · ∆xTk · x∆xT
k· ∆gk
− xT · (Gk · ∆gk) · (Gk · ∆gk)T · x∆gT
k· Gk · ∆gk
= xT · Gk · x +(xT · ∆xk)2
∆xTk· ∆gk
− (xT · Gk · ∆gk)2
∆gTk· Gk · ∆gk
(1.55)
Definiramo a in b:
a ,√Gk · x
b ,√Gk · ∆gk (1.56)
Kjer je Gk :
Gk =√Gk ·
√Gk (1.57)
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 18
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
Ker je matrika Gk > 0 pozitivno definitna, je njen kvadratni koren dobro opredeljen. Ce
uporabimo defniciji za a in b, dobimo:
xT · Gk · x = xT ·√Gk ·
√Gk · x = aT · a
xT · Gk · ∆gk = xT ·√Gk ·
√Gk · ∆gk = aT · b
∆gTk · Gk · ∆gk = ∆gTk ·√Gk ·
√Gk · ∆gk = bT · b (1.58)
Iz tega sledi:
xT · Gk+1 · x = aT · a +(xT · ∆xk)2)∆xT
k· ∆gk
− (aT · b)2
bT · b
=‖a‖2 · ‖b‖2 − (〈a, b〉)2
‖b‖2 +(xT · ∆xk)2
∆xTk· ∆gk
(1.59)
Prav tako imamo:
∆xTk · ∆gk = ∆xTk · (gk+1 − gk) = −∆xTk · gk (1.60)
Saj je ∆xTk· gk+1 = αk · dTk · gk+1 = 0. Ker je ∆xk = αk · dk = −αk ·Gk · gk , dobimo (Chong
& Zak, 2001, str. 180):
∆xTk · ∆gk = −∆xTk · gk = αk · gTk · Gk · gk (1.61)
Iz tega sledi:
xT · Gk+1 · x =‖a‖2 · ‖b‖2 − (〈a, b〉)2
‖b‖2 +(xT · ∆xk)2
αk · gTk · Gk · gk(1.62)
Oba izraza ne desni strani zgornje enacbe sta nenegativna. Prvi je nenegativen zaradi
Cauchy-Schwarzeve neenakosti |〈a, b〉| ≤ ‖a‖ · ‖b‖, kjer 〈a, b〉 = aT · b in | ± a | = a,
ter ‖a‖ =√〈a, a〉 =
√aT · a in ‖b‖ =
√〈b, b〉 =√bT · b. Drugi je prav tako nenegativen
zato, ker sta Gk > 0 in αk > 0. Da bi pokazali, da je xT · Gk+1 · x > 0 za x , 0 moramo
samo dokazati, da ta dva izraza ne izgineta hkrati. Prvi clen izraz izgine le, ce sta a in b
sorazmerna, tako da je a = β · b za nek skalar β. Zato je dovolj pokazati, da ce je a = β · b,
potem je(xT · ∆xk)2
αk · gTk · Gk · gk> 0. Vzamemo (Chong & Zak, 2001, str. 180):
√Gk · x = a = β · b = β ·
√Gk · ∆gk =
√Gk · (β · ∆gk) (1.63)
Tako je:
x = β · ∆gk (1.64)
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 19
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
Ce uporabimo zgornji izraz za x, ter izraz ∆xTk· ∆gk = −αk · gTk · Gk · gk , dobimo:
(xT · ∆xk)2
αk · gTk · Gk · gk=β2 · (∆gT
k· ∆xk)2
αk · gTk · Gk · gk=β2 · (αk · gTk · Gk · gk)2
αk · gTk · Gk · gk= β2 · αk · gTk · Gk · gk > 0 (1.65)
Zato lahko zapišemo, da za x , 0:
xT · Gk+1 · x > 0 (1.66)
DFP algoritem je veliko boljši od algoritma korekcijske enacbe ranga ena s tem ko ohranja
pozitivno definitnost matrike Gk . Se pa lahko zgodi, da v primeru vecjih ne-kvadratnih
problemov algoritem vcasih obtici. To se zgodi takrat, ko postane matrika Gk skoraj
singularna. Naslednje poglavje opisuje algoritem, ki ublaži ta problem (Chong & Zak,
2001, str. 180).
1.3.4 BFGS metoda
V letu 1970 so Broyden, Fletcher, Goldfarb in Shanno razvili alternativno formulo. Ta me-
toda, ki je bila posodobitev DFP metode, se imenuje BFGS metoda ali BFGS algoritem. Za
izpeljavo BFGS posodobitve bomo uporabili pojem dvojnosti oziroma dopolnjevanja. Da
bi lahko razpravljali o tem pojmu, se moramo spomniti posodobljene enacbe aproksimacije
na Hessovo matriko (Chong & Zak, 2001, str. 181):
Gk+1 · ∆gi = ∆xi , 0 ≤ i ≤ k (1.67)
Ki je bila izpeljana iz ∆gi = Q · ∆xi , 0 ≤ i ≤ k. Nato smo naredili posodobitev za
aproksimacijo inverzne Hessove matrike Q−1. Alternativa za aproksimacijo Q−1 je, da
aproksimiramo Q samo. Za to bomo vzeli novo matriko Bk , ki bo ocena matrike Q v k-tem
koraku. Bk mora izpolnjevati:
∆gi = Bk+1 · ∆xi , 0 ≤ i ≤ k (1.68)
Kot vidimo, je zgornji niz enacb enak prejšnjemu za Gk+1 s to razliko, da sta vlogi za
∆xi in ∆gi zamenjani. Zato lahko za vsako posodobitev formule Gk najdemo ustrezno
posodobitev formule Bk , s tem ko zamenjamo vlogi Bk in Gk , ter vlogi za ∆gk in ∆xk . To
pomeni, da za vsako posodobitev BFGS formule za Bk obstaja ustrezna posodobitev DFP
za formulo Gk . Formulam, ki so povezane na tak nacin pravimo, da so komplementarne.
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 20
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
Spomnimo se, da je DFP posodobitev za aproksimacijo Gk inverzne Hessove matrike:
GDFPk+1 = Gk +
∆xk · ∆xTk∆xT
k· gk
− Gk · ∆gk · ∆gTk · Gk
∆gTk· Gk · ∆gk
(1.69)
Ce uporabimo komplementarni koncept, lahko enostavno dobimo posodobitev enacbe za
aproksimacijo matrike Bk :
Bk+1 = Bk +∆gk · ∆gTk∆gT
k· ∆xk
− Bk · ∆xk · ∆xTk · Bk
∆xTk· Bk · ∆xk
(1.70)
Da dobimo BFGS posodobitev za aproksimacijo inverzne Hessove matrike, bomo uporabili
inverzno Bk+1 (Chong & Zak, 2001, str. 181):
GBFGSk+1 = B−1
k+1 =
Bk +∆gk · ∆gTk∆gT
k· ∆xk
− Bk · ∆xk · ∆xTk · Bk
∆xTk· Bk · ∆xk
−1
(1.71)
Da izracunamo desni del enacbe za GBFGSk+1 , uporabimo za invertiranje matrike formulo,
znano kot Sherman-Morrison formula. Ce obstaja takšna nesingularna matrika A da velja
1 + vT · A−1 · u , 0, kjer sta v in u vektorja, potem je A + u · vT nesingularno, ter:
(A + u · vT )−1 = A−1 − (A−1 · u) · (vT · A−1)1 + vT · A−1 · u (1.72)
Ker je v zgornji enacbi matrika A−1 znana, potem lahko dobimo inverz matrike A povecan z
rang ena s spremembo matrike A−1. Ce uporabimo zgornjo enacbo in jo dvakrat uporabimo
pri Bk+1, dobimo (Chong & Zak, 2001, str. 182):
GBFGSk+1 = Gk +
1 +∆gT
k· Gk · ∆gk∆xT
k· ∆gk
·∆xk · ∆xTk∆xT
k· ∆gk
− ∆xk · ∆gTk· Gk
∆xTk· ∆gk
− Gk · ∆gk · ∆xTk∆xT
k· ∆gk
(1.73)
Zgornja enacba predstavlja BFGS formulo posodobljene Hessove matrike Gk . Zdaj lahko
zapišemo tudi algoritem za BFGS:
BFGS Algoritem
1. Nastavimo k := 0; izberemo x0, ter pravo simetricno pozitivno definitno matriko G0
2. Ce gk ≤ ε, ustavimo, drugace dk = −Gk · gk
3. Izracunamo:
xk+1 = xk + αk · dk
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 21
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
4. Izracunamo:
∆xk = αk · dk∆gk = gk+1 − gk
Gk+1 = Gk +
1 +∆gT
k· Gk · ∆gk∆xT
k· ∆gk
·∆xk · ∆xTk∆xT
k· ∆gk
− ∆xk · ∆gTk· Gk
∆xTk· ∆gk
− Gk · ∆gk · ∆xTk∆xT
k· ∆gk
5. Nastavimo k := k + 1, nazaj na 2. korak
Enacbo 1.73 za BFGS bomo zaradi lažjega racunanja razbili na matrike A, B in C (Dragan,
2010, str. 180):
Gk+1 = Gk +
∆Gk︷ ︸︸ ︷1 +∆gT
k· Gk · ∆gk∆xT
k· ∆gk
·∆xk · ∆xTk∆xT
k· ∆gk︸ ︷︷ ︸
Ak
− ∆xk · ∆gTk· Gk
∆xTk· ∆gk︸ ︷︷ ︸Bk
− Gk · ∆gk · ∆xTk∆xT
k· ∆gk︸ ︷︷ ︸
Ck
(1.74)
Tako dobimo:
Ak =
1 +∆gT
k· Gk · ∆gk∆xT
k· ∆gk
·∆xk · ∆xTk∆xT
k· ∆gk
Bk =∆xk · ∆gTk · Gk
∆xTk· ∆gk
Ck =Gk · ∆gk · ∆xTk∆xT
k· ∆gk
(1.75)
Sledi, da je Gk+1:
Gk+1 = Gk + ∆Gk = Gk + Ak − Bk − Ck (1.76)
Slika 5 nam podrobneje prikazuje BFGS algoritem, ki ga lahko zaradi lažje predstave
zapišemo tudi v obliki blocnega diagrama (Dragan, 2010, str. 181).
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 22
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
Slika 5: BFGS algiritem
k = 0, G0 = I
postavimo x0
in toleranco (ε)
g0 = ∇ f (x0)T
izracuni
gk ≤ ε
Optimum
xk
DA
NE
xk+1 = xk − αk · Gk · gk︸︷︷︸∇ f (xk )
minimiziraj numericno:
f (xk+1) = f (αk)
min︸︷︷︸αk
( f (αk))→ α∗k
xk+1 = xk − α∗k · Gk · gkgk+1 = ∇ f (xk+1)
∆gk = gk+1 − gk
∆xk = xk+1 − xk
Ak =
[1+∆gT
k· Gk · ∆gk∆xT
k· ∆gk
]·∆xk · ∆x
Tk
∆xTk· ∆gk
Bk =∆xk · ∆gTk · Gk
∆xTk· ∆gk
Ck =Gk · ∆gk · ∆xTk∆xT
k· ∆gk
Gk+1 = Gk + Ak − Bk − Ck
k = k + 1
Ce se sedaj spomnimo DFP metode vidimo, da je DFP algoritem moral izpolnit GDFPk+1 ·
∆gi = ∆xi , 0 ≤ i ≤ k. Zato mora BFGS posodobitev za Bk zagotovit Bk+1 · ∆xi = ∆gi ,
0 ≤ i ≤ k. Pri izgradnji BFGS formule za GBFGSk+1 smo sklenili, da GBFGS
k+1 · ∆gi = ∆xi ,
0 ≤ i ≤ k , s cimer ima BFGS algoritem vse lastnosti Quasi-Newtonovih metod. Poleg tega
podedujejo BFGS metode od DFP metod tudi lastnost pozitivne definitnosti, saj ce gk , 0
in Gk > 0, potem je tudi GBFGSk+1 > 0. BFGS metode so tudi bolj robustne takrat, ko je smer
iskanja površna. To nam omogoca ohranit cas v tem delu algoritma, kar pa tudi pomeni, da
je BFGS formula vecinoma bolj efektivna od DFP formule (Chong & Zak, 2001, str. 182).
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 23
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
2 ILUSTRACIJA REŠEVANJA NELINEARNIH PRI-
MEROV S POMOCJO ANALITICNEGA NACINA
RACUNANJA
Na osnovi znanja, ki smo ga pridobili v poglavju 1, bomo pogledali delovanje DFP in
BFGS metode na dveh simulacijskih primerih. Oba primera predstavljata dvodimenzio-
nalna problema. Izracunali ju bomo analiticno.
Primer 1:
f (x1, x2) =12· (2 · x2
1 + 2 · x1 · x2 + x22) + 10 · x2 (2.1)
Primer 2:
f (x1, x2) = x1 − x2 + 2 · x21 + 2 · x1 · x2 + x2
2 (2.2)
Pri cemer je zacetni ali izhodišcni vektor:
x0 =
0
0
(2.3)
Za toleranco ε vzemimo:
ε = 10−3 = 0, 001 (2.4)
Kot vidimo zgoraj, smo spremenljivke ciljne funkcije x1 in x2 podcrtali. To smo storili
zato, da smo lahko locili spremenljivke funkcije od vektorjev, saj bi drugace v nadaljevanju
izracunov imeli vektorji iste oznake kot njihove komponente, kar bi pa bilo zelo motece in
zavajajoce.
2.1 Simulacijska primera po DFP metodi
Primerjali bomo enacbi 2.1 in 2.2 prvo po DFP in kasneje še po BFGS metodi. Koncna
rezultata morata bit pri obeh enaka, ne glede na metodo. Ce rezultat ne bi bil enak bi to
pomenilo, da je napaka v metodi.
2.1.1 Primer 1
Najprej bomo rešili problem 2.1. Ker je ta dvodimenzionalen, ima simetricna matrika G0
dva stolpca in dve vrstici:
G0 = I =
1 0
0 1
(2.5)
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 24
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
Prvo je potrebno narediti dovod po komponentah funkcije f (x1, x2), da dobimo zacetni
gradient g0, ter vstaviti zacetni vektor x0 = [0 0]T :
g0 = ∇ f (x0) =
∂ f
∂x1∂ f
∂x2
=
2 · x1 + x2
x1 + x2 + 10
=
2 · 0 + 0
0 + 0 + 10
=
0
10
(2.6)
Na tem mestu že lahko preverimo ali je normiran gradient ‖g0‖ ≤ ε:
‖g0‖ =
√gT0 · g0 =
√√√[0 10
]·
0
10
=√
100 = 10 (2.7)
Kot vidimo, je ‖g0‖ vecji od ε, zato nadaljujemo z izracuni. Ce bi bil ‖g0‖ ≤ ε bi to
pomenilo, da smo zacetni vektor nastavili dovolj natancno, oziroma, da smo že z vektorjem
x0 uganili ali minimum ali dovolj tocen približek. Ker se to ni zgodilo, nadaljujemo z
izracunom x1:
x1 = x0 − α0 · G0 · g0 =
0
0
− α0 ·1 0
0 1
·
0
10
=
0
−10 · α0
(2.8)
Po x1 lahko izracunamo parameter α0, s tem, da ga ustavimo v zacetno funkcijo f (x1):
f (x1) =12· (−10 · α0)2 + 10 · (−10 · α0) = 50 · α2
0 − 100α0 (2.9)
Ter funkcijo f (x1) odvedemo po α0:
∂ f (x1)∂α0
= 100 · α0 − 100 = 0 =⇒ α0 = 1 (2.10)
V parameter α0 nato vstavimo v enacbo za x1 in dobimo:
x1 =
0
−10 · α0
=
0
−10 · 1
=
0
−10
(2.11)
Ko imamo podan vektor x1, pa lahko izracunamo gradient g1:
g1 = ∇ f (x1) =
∂ f
∂x1∂ f
∂x2
=
2 · x1 + x2
x1 + x2 + 10
=
2 · 0 + (−10)
0 + (−10) + 10
=
−10
0
(2.12)
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 25
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
Tudi tukaj lahko sedaj preverimo, ce je ‖g1‖ ≤ ε:
‖g1‖ =
√gT1 · g1 =
√√√[−10 0
]·−10
0
=√
100 = 10 (2.13)
Ker tudi tokrat ni ‖g1‖ ≤ ε, nadaljujemo za izracunom vektorja ∆x0:
∆x0 = x1 − x0 =
0
−10
−0
0
=
0
−10
(2.14)
Ter spremembo gradienta ∆g0:
∆g0 = g1 − g0 =
−10
0
−
0
10
=
−10
−10
(2.15)
Za izracun naslednje simetricne matrike G1 potrebujemo matriki M0 in N0.
M0 =∆x0 · ∆xT0∆xT0 · ∆g0
=
0
−10
·[0 −10
]
[0 −10
]·−10
−10
=
0 0
0 1
(2.16)
N0 =
I︷︸︸︷G0 ·∆g0 · ∆gT0 ·
I︷︸︸︷G0
gT0 · G0︸︷︷︸I
·∆g0=
−10
−10
·[−10 −10
]
[−10 −10
]·−10
−10
=
100 100
100 100
200=
0.5 0.5
0.5 0.5
(2.17)
Ko smo izracunali M0 in N0, lahko izracunamo G1 po enacbi:
G1 = G0 + M0 − N0 =
1 0
0 1
+
0 0
0 1
−0.5 0.5
0.5 0.5
=
0.5 −0.5
−0.5 1.5
(2.18)
Tukaj se konca prva iteracija in zacne druga, kjer bomo prvo izracunali x2:
x2 = x1 − α1 · G1 · g1 =
0
−10
− α1 ·
0.5 −0.5
−0.5 1.5
·−10
0
=
0
−10
− α1 ·−5
5
x2 =
5 · α1
−10 − 5 · α1
(2.19)
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 26
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
V funkcijo f (x1, x2) vstavimo vektor x2 in dobimo:
f (x2) =12·(2 · (5 · α1)2 + 2 · (5 · α1) · (−10 − 5 · α1) + (−10 − 5 · α1)2
)+
+ 10 · (−10 − 5 · α1)
=12·(50 · α2
1 + (−100 · α1) + (−50 · α21) + 100 + 100 · α1 + 25 · α2
1
)+
+ (−100 − 50 · α1)
= 25 · α21 − 50 · α1 − 25 · α2
1 + 50::
+ 50 · α1 + 12.5 · α21 − 100
:::− 50 · α1
= 12.5 · α21 − 50 · α1 − 50 (2.20)
Zgornjo funkcijo odvedemo po α1 ter enacimo z nic, da lahko izracunamo α1:
∂ f (x2)∂α1
= 25 · α1 − 50 = 0 =⇒ α1 = 2 (2.21)
Sedaj lahko α1 vstavimo v enacbo za x2 in ga izracunamo:
x2 =
5 · α1
−10 − 5 · α1
5 · 2
−10 − 5 · 2
=
10
−20
(2.22)
Sedaj lahko na osnovi vektorja x2 izracunamo gradient g2:
g2 = ∇ f (x2) =
2 · x1 + x2
x1 + x2 + 10
=
2 · 10 + (−20)
10 + (−20) + 10
=
0
0
(2.23)
S tem je algoritem zakljucen, saj smo dobili gradient g2 = 0, kar pa pomeni, da je norma
gradienta ‖g2‖ = 0. To tudi pomeni, da smo dobili najboljšo možno rešitev ali minimum
funkcije za x2 in ne samo dovolj dober približek. Sedaj še izracunamo vrednost funkcije
f (x1, x2) pri x2:
f (x1, x2) = f (10, −20) =12· (2 · x2
1 + 2 · x1 · x2 + x22) + 10 · x2 =
=12· (2 · 102 + 2 · 10 · (−20) + (−20)2) + 10 · (−20)
f (10, −20) = −100 (2.24)
S tem je v tocki x2 =[10 −20
]Tvrednost funkcije f (10, −20) = −100. Kot vidimo,
je konvergenca zelo hitra, saj smo prišli do rešitve že v drugi iteraciji algoritma, kar
je znacilnost Newtonovih in Quasi-Newtonovih metod. Rezultate si lahko pregledno
pogledamo tudi na tabeli 1 v poglavju 2.4.
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 27
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
2.1.2 Primer 2
Podobno, kot smo rešili prvi DFP problem (2.1), bomo sedaj rešili še drugega (2.2). Prav
tako ima v tem primeru simetricna matrika štiri elemente, kot je razloženo v prikazano v
enacbi 2.5. Najprej naredimo odvod funkcije f (x1, x2) po komponentah:
g0 = ∇ f (x0) =
∂ f
∂x1∂ f
∂x2
=
1 + 4 · x1 + 2 · x2
−1 + 2 · x1 + 2 · x2
=
1 + 4 · 0 + 2 · 0−1 + 2 · 0 + 2 · 0
=
1
−1
(2.25)
Tukaj bomo spet preverili normo g0, ce ustreza ‖g0‖ ≤ ε:
‖g0‖ =
√gT0 · g0 =
√√√[1 −1
]·
1
−1
=√
2 = 1, 4142 (2.26)
Kot vidimo ne drži, da je ‖g0‖ ≤ ε, zato nadaljujemo z izracuni. Na osnovi g0 lahko
izracunamo x1 po enacbi:
x1 = x0 − α0 · G0 · g0 =
0
0
− α0 ·1 0
0 1
·
1
−1
=
−α0
α0
(2.27)
V zacetno funkcijo vstavimo x1:
f (x1) = −α0::− α0
::+ 2 · α2
0 + 2 · (−α0) · α0 + α20 = α2
0 − 2 · α0 (2.28)
Ter jo odvajamo po α0:
∂ f (x1)∂α0
= 2 · α0 − 2 = 0 =⇒ α0 = 1 (2.29)
V parameter α0 nato vstavimo v enacbo za x1 in dobimo:
x1 =
−α0
α0
=
−1
1
(2.30)
Ko imamo znan vektor x1, lahko izracunamo gradient g1:
g1 = ∇ f (x1) =
∂ f
∂x1∂ f
∂x2
=
1 + 4 · x1 + 2 · x2
−1 + 2 · x1 + 2 · x2
=
1 + 4 · (−1) + 2
−1 + 2 · (−1) + 2
=
−1
−1
(2.31)
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 28
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
Spet lahko preverimo, ce ‖g1‖ ≤ ε:
‖g1‖ =
√gT1 · g1 =
√√√[−1 −1
]·−1
−1
=√
2 = 1.4142 (2.32)
Ker ‖g1‖ ≤ ε ne drži, nadaljujemo z ∆x0:
∆x0 = x1 − x0 =
−1
1
−0
0
=
−1
1
(2.33)
Ter spremembo gradienta ∆g0:
∆g0 = g1 − g0 =
−1
−1
−
1
−1
=
−2
0
(2.34)
Sedaj lahko izracunamo simetricno matrikoG1. Za lepšo preglednost, bomo prvo izracunali
matriki M0 in N0.
M0 =∆x0 · ∆xT0∆xT0 · ∆g0
=
−1
1
·[−1 1
]
[−1 1
]·−2
0
=
1 −1
−1 1
2=
0, 5 −0, 5
−0, 5 0, 5
(2.35)
N0 =G0 · ∆g0 · ∆gT0 · G0
gT0 · G0 · ∆g0=
−2
0
·[−2 0
]
[−2 0
]·−2
0
=
4 0
0 0
4=
1 0
0 0
(2.36)
Ker je G0 = I , lahko G0 crtamo kot pri množenju z 1. G1 je tako:
G1 = G0 + M0 − N0 =
1 0
0 1
+
0, 5 −0, 5
−0, 5 0, 5
−1 0
0 0
=
0, 5 −0, 5
−0, 5 1, 5
(2.37)
S tem se konca prva iteracija. Zacnemo z drugo, kjer bomo prvo izracunali x2:
x2 = x1 − α1 · G1 · g1 =
−1
1
− α1 ·
0, 5 −0, 5
−0, 5 1, 5
·−1
−1
=
−1
1
− α1 ·
0
−1
x2 =
−1
1 + α1
(2.38)
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 29
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
Sedaj lahko v funkcijo f (x1, x2) vstavimo vektor x2 in dobimo:
f (x2) = −1 − (1 + α1) + 2 · (−1)2 + 2 · (−1) · (1 + α1) + (1 + α1)2
= −1 − 1 − α1 + 2 − 2 − 2 · α1 + 1 + 2 · α1 + α21
::
= α21 − α1 − 1 (2.39)
Funkcijo f (x1, x2) parcialno odvajamo po α1, ter enacimo z 0:
∂ f (x2)∂α1
= 2 · α1 − 1 = 0 =⇒ α1 =12
(2.40)
α1 lahko sedaj vstavimo v enacbo za x2 in dobimo:
x2 =
−1
1 + α1
=
−1
1 +12
=
−1
1, 5
(2.41)
Sedaj lahko na osnovi vektorja x2 izracunamo gradient g2:
g2 = ∇ f (x2) =
∂ f
∂x1∂ f
∂x2
=
1 + 4 · x1 + 2 · x2
−1 + 2 · x1 + 2 · x2
=
1 + 4 · (−1) + 2 · 1, 5−1 + 2 · (−1) + 2 · 1, 5
=
0
0
(2.42)
Tudi pri enacbi 2.2 je algoritem zakljucen, saj smo dobili za gradient g2 = 0, kar pomeni,
da je tudi norma gradienta ‖g‖ = 0. S tem smo tudi tukaj dobili najboljšo možno rešitev
ali minimum funkcije pri x2 in ne samo dovolj dober približek. Sedaj še lahko izracunamo
vrednost funkcije pri f (x1, x2) pri x2:
f (x1, x2) = f (−1, 1, 5) = x1 − x2 + 2 · x21 + 2 · x1 · x2 + x2
2 =
= −1 − 1, 5 + 2 · (−1)2 + 2 · (−1) · (1, 5) + (1, 5)2 =
f (−1, 1, 5) = −1, 25 (2.43)
V tocki x2 =[−1 1, 5
]Tima tako funkcija vrednost f (−1, 1, 5) = −1, 25. Kot vidimo, je
tudi tukaj konvergenca zelo hitra, saj smo kot pri enacbi 2.1 prišli do rešitve že v drugi
iteraciji algoritma. Vse pomembne rezultate si lahko ogledamo na tabeli 2 v poglavju 2.4.
2.2 Simulacijska primera po BFGS metodi
Sedaj bomo obe enacbi izracunali še po BFGS metodi in ju primerjali z izracunom po DFP
metodi. Kot je že bilo prej omenjeno morajo biti koncni rezultati za obe metodi enaki.
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 30
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
2.2.1 Primer 1
Najprej bomo rešili problem 2.1. Ker je ta dvodimenzionalen, ima simetricna matrika G0
dva stolpca in dve vrstici:
G0 = I =
1 0
0 1
(2.44)
Sedaj je potrebno narediti odvod po komponenta (parcialni odvod) funkcije f (x1, x2), da
dobimo zacetni gradient g0, ter tega vstaviti v zacetni vektor x0 =[0 0
]T:
g0 = ∇ f (x0) =
∂ f∂x1
∂ f∂x2
=
2 · x1 + x2
x1 + x2 + 10
=
2 · 0 + 0
0 + 0 + 10
=
0
10
(2.45)
Preverimo, ce je normiran gradient ‖g0‖ ≤ ε:
‖g0‖ =
√gT0 · g0 =
√√√[0 10
]·
0
10
=√
100 = 10 (2.46)
Ker ni, nadaljujemo z izracuni. Rešimo enacbo za x1:
x1 = x0 − α0 · G0 · g0 =
0
0
− α0 ·1 0
0 1
·
0
10
=
0
−10 · α0
(2.47)
Sedaj lahko izracunamo parameter α0 s tem, da ga vstavimo v ciljno funkcijo f (x1):
f (x1) =12· (−10 · α0)2 + 10 · (−10 · α0) = 50 · α2
0 − 100α0 (2.48)
Funkcijo f (x1) parcialno odvedemo po α0:
∂ f (x1)∂α0
= 100 · α0 − 100 = 0 =⇒ α0 = 1 (2.49)
S tem, ko imamo izracunan vektor x1, lahko izracunamo gradient g1:
g1 = ∇ f (x1) =
∂ f
∂x1∂ f
∂x2
=
2 · x1 + x2
x1 + x2 + 10
=
2 · 0 + (−10)
0 + (−10) + 10
=
−10
0
(2.50)
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 31
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
Spet preverimo, ce je ‖g1‖ ≤ ε:
‖g1‖ =
√gT1 · g1 =
√√√[−10 0
]·−10
0
=√
100 = 10 (2.51)
Ker ni, nadaljujemo z z izracunom vektorja ∆x0:
∆x0 = x1 − x0 =
0
−10
−0
0
=
0
−10
(2.52)
Ter spremembo gradienta ∆g0:
∆g0 = g1 − g0 =
−10
0
−
0
10
=
−10
−10
(2.53)
Za izracun naslednje simetricne matrike G1, bomo potrebovali matrike A0, B0 in C0:
A0 =
1 +∆gT0 · G0 · ∆g0
∆xT0 · ∆g0
·∆x0 · ∆xT0∆xT0 · ∆gk
=
1 +
[−10 10
]·−10
−10
[0 −10
]·−10
−10
·
0
−10
·[0 −10
]
[0 −10
]·−10
−10
A0 =
(1 +
200100
)·
0 0
0 100
100= 3 ·
0 0
0 1
=
0 0
0 3
(2.54)
B0 =∆x0 · ∆gT0 · G0
∆xT0 · ∆g0=
0
−10
·[−10 −10
]
[0 −10
]·−10
−10
=
0 0
100 100
100=
0 0
1 1
(2.55)
C0 =G0 · ∆g0 · ∆xT0∆xT0 · ∆g0
=
−10
−10
·[0 −10
]
[0 −10
]·−10
−10
=
0 100
0 100
100=
0 1
0 1
(2.56)
Ko imamo podane matrike A0, B0 in C0, lahko izracunamo G1 po enacbi:
G1 = G0 + A0 − B0 − C0 =
1 0
0 1
+
0 0
0 3
−0 0
1 1
−0 1
0 1
=
1 −1
−1 2
(2.57)
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 32
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
S tem smo koncali prvo iteracijo in zacnemo z drugo, kjer bomo prvo izracunali x2:
x2 = x1 − α1 · G1 · g1 =
0
−10
− α1 ·
1 −1
−1 2
·−10
0
=
0
−10
− α1 ·−10
10
x2 =
10 · α1
−10 − 10 · α1
(2.58)
V funkcijo f (x1, x2) vstavimo vektor x2 in dobimo:
f (x2) =12·(2 · (10 · α1)2 + 2 · (10 · α1) · (−10 − 10 · α1) + (−10 − 10 · α1)2
)+
+ 10 · (−10 − 10 · α1)
=12·(200 · α2
1 + (−200 · α1) + (−200 · α21) + 100 + 200 · α1 + 100 · α2
1
)+
+ (−100 − 100 · α1)
= 100 · α21 − 100 · α1 − 100 · α2
1 + 50::
+ 100 · α1 + 50 · α21 − 100
:::− 100 · α1
= 50 · α21 − 100 · α1 − 50 (2.59)
Funkcijo f (x1, x2) odvedemo po α1 ter enacimo z nic, da izracunamo α1:
∂ f (x2)∂α1
= 100 · α1 − 100 = 0 =⇒ α1 = 1 (2.60)
V enacbo za x2 vstavimo α1:
x2 =
10 · α1
−10 − 10 · α1
=
10 · 1
−10 − 10 · 1
=
10
−20
(2.61)
Sedaj lahko na osnovi vektorja x2 izracunamo gradient g2:
g2 = ∇ f (x2) =
2 · x1 + x2
x1 + x2 + 10
=
2 · 10 + (−20)
10 + (−20) + 10
=
0
0
(2.62)
Kot vidimo je koncni rezultat BFGS metode povsem enak koncnemu rezultatu iz DFP
metode, razlikuje se samo po vmesnih izracunih. Tudi tukaj je seveda algoritem zakljucen,
saj smo dobili gradient g2 = 0 in s tem tudi normo gradienta ‖g2‖ = 0, kar pomeni
najbojlšo možno rešitev ali minimum funkcije in ne samo dovolj dober približek. Vrednost
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 33
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
funkcije f (x1, x2) pri x2 je tako:
f (x1, x2) = f (10, −20) =12· (2 · x2
1 + 2 · x1 · x2 + x22) + 10 · x2 =
=12· (2 · 102 + 2 · 10 · (−20) + (−20)2) + 10 · (−20)
f (10, −20) = −100 (2.63)
Tako je v tocki x2 =[10 −20
]Tvrednost funkcije f (10, −20) = −100. Kot smo že
povedali pri DFP metodi, je konvergenca zelo hitra, saj smo prišli do koncne rešitve že
v drugi iteraciji algoritma. Rezultate si lahko pogledamo bolj pregledno na tabeli 1 v
poglavju 2.4.
2.2.2 Primer 2
Sedaj bomo rešili še zadnji BFGS problem 2.2. Kot smo že povedali, je simetricna matrika
dvodimenzionalna in ima dva stolpca in dve vrstici:
G0 = I =
1 0
0 1
(2.64)
Naredimo odvod po komponentah funkcije f (x1, x2). S tem dobimo zacetni gradient g0, v
katerega ustavimo zacetni vektor x0 =[0 0
]T:
g0 = ∇ f (x0) =
∂ f
∂x1∂ f
∂x2
=
1 + 4 · x1 + 2 · x2
−1 + 2 · x1 + 2 · x2
=
1 + 4 · 0 + 2 · 0−1 + 2 · 0 + 2 · 0
=
1
−1
(2.65)
Preverimo normo ‖g0‖ ≤ ε:
‖g0‖ =
√gT0 · g0 =
√√√[1 −1
]·
1
−1
=√
2 = 1, 4142 (2.66)
Ker ne drži, nadaljujemo z izracunom za x1:
x1 = x0 − α0 · G0 · g0 =
0
0
− α0 ·1 0
0 1
·
1
−1
=
−α0
α0
(2.67)
Vektor x1 vstavimo v zacetno funkcijo:
f (x1) = −α0::− α0
::+ 2 · α2
0 + 2 · (−α0) · α0 + α20 = α2
0 − 2 · α0 (2.68)
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 34
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
Ter parcialno odvajamo po α0:
∂ f (x1)∂α0
= 2 · α0 − 2 = 0 =⇒ α0 = 1 (2.69)
Sedaj lahko vstavimo parameter α0 v enacbo za x1 in dobimo:
x1 =
−α0
α0
=
−1
1
(2.70)
Izracunamo gradient g1:
g1 = ∇ f (x1) =
∂ f
∂x1∂ f
∂x2
=
1 + 4 · x1 + 2 · x2
−1 + 2 · x1 + 2 · x2
=
1 + 4 · (−1) + 2
−1 + 2 · (−1) + 2
=
−1
−1
(2.71)
Preverimo, ce je ‖g1‖ ≤ ε:
‖g1‖ =
√gT1 · g1 =
√√√[−1 −1
]·−1
−1
=√
2 = 1.4142 (2.72)
Ker ‖g1‖ ≤ ε, nadaljujemo z ∆x0:
∆x0 = x1 − x0 =
−1
1
−0
0
=
−1
1
(2.73)
Sprememba gradienta ∆g0 je tako:
∆g0 = g1 − g0 =
−1
−1
−
1
−1
=
−2
0
(2.74)
Prvo bomo izracunali matrike A0, B0 in C0:
A0 =
1 +∆gT0 · G0 · ∆g0
∆xT0 · ∆g0
·∆x0 · ∆xT0∆xT0 · ∆gk
=
1 +
[−2 0
]·−2
0
[−1 1
]·−2
0
·
−1
1
·[−1 1
]
[−1 1
]·−2
0
A0 =
(1 +
42
)·
1 −1
−1 1
2= 3 ·
0, 5 −0, 5
−0, 5 0, 5
=
1, 5 −1, 5
−1, 5 1, 5
(2.75)
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 35
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
B0 =∆x0 · ∆gT0 · G0
∆xT0 · ∆g0=
−1
1
·[−2 0
]
[−1 1
]·−2
0
=
2 0
−2 0
2=
1 0
−1 0
(2.76)
C0 =G0 · ∆g0 · ∆xT0∆xT0 · ∆g0
=
−2
0
·[−1 1
]
[−1 1
]·−2
0
=
2 −2
0 0
2=
1 −1
0 0
(2.77)
Sedaj lahko izracunamo naslednjo simetricno matriko G1 po enacbi:
G1 = G0+A0−B0−C0 =
1 0
0 1
+
1, 5 −1, 5
−1, 5 1, 5
−
1 0
−1 0
−1 −1
0 0
=
0, 5 −0, 5
−0, 5 2, 5
(2.78)
S tem smo koncali prvo iteracijo in zacnemo z drugo. Prvo bomo izracunali x2:
x2 = x1 − α1 · G1 · g1 =
−1
1
− α1 ·
0, 5 −0, 5
−0, 5 2, 5
·−1
−1
=
−1
1
− α1 ·
0
−2
x2 =
−1
1 + 2 · α1
(2.79)
Sedaj lahko v funkcijo f (x1, x2) vstavimo vektor x2 in dobimo:
f (x2) = −1 − (1 + 2 · α1) + 2 · (−1)2 + 2 · (−1) · (1 + 2 · α1) + (1 + 2 · α1)2
= −1 − 1 − 2 · α1 + 2 − 2 − 4 · α1 + 1 + 4 · α1 + 4 · α21
:::::
= 4 · α21 − 2 · α1 − 1 (2.80)
Funkcijo f (x1, x2) dovajamo po α1, ter jo enacimo z 0:
∂ f (x2)∂α1
= 8 · α1 − 2 = 0 =⇒ α1 =14
(2.81)
V enacbo za x2 lahko sedaj vstavimo α1 in dobimo:
x2 =
−1
1 + 2 · α1
=
−1
1 + 2 · 14
=
−1
1, 5
(2.82)
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 36
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
Na osnovi vektorja x2 lahko izracunamo gradient g2:
g2 = ∇ f (x2) =
∂ f
∂x1∂ f
∂x2
=
1 + 4 · x1 + 2 · x2
−1 + 2 · x1 + 2 · x2
=
1 + 4 · (−1) + 2 · 1, 5−1 + 2 · (−1) + 2 · 1, 5
=
0
0
(2.83)
Tako je algoritem zakljucen, saj smo dobili gradient g2 = 0. S tem je tudi norma ‖g‖ = 0,
kar pomeni, da smo dobili najboljšo možno rešitev ali minimum funkcije in ne samo dovolj
dober približek. Sedaj lahko izracunamo še vrednost funkcije f (x1, x2) pri x2:
f (x1, x2) = f (−1, 1, 5) = x1 − x2 + 2 · x21 + 2 · x1 · x2 + x2
2 =
= −1 − 1, 5 + 2 · (−1)2 + 2 · (−1) · (1, 5) + (1, 5)2 =
f (−1, 1, 5) = −1, 25 (2.84)
Tako ima v tocki x2 =[10 −20
]Tfunkcija vrednost f (10, −20) = −100. Kot smo že
povedali je konvergenca zelo hitra, saj smo prišli do rešitve že v drugi iteraciji algoritma.
Rezultate si lahko pogledamo na tabeli 2 v poglavju 2.4.
2.3 Primerjava simulacijskih primerov
Kot lahko vidimo iz tabel 1 in 2, se obe dve funkciji premikata proti minimumu v vsaki
iteraciji, pri cemer smo pri obeh funkcijah prišli do minimuma v drugi iteraciji. To pomeni,
da je konvergenca zelo hitra, kar je znacilno za Newtonove in Quasi-Newtonove metode.
Iz tabel vidimo tudi, da sta obe funkciji za DFP in BFGS pri izracunih enaki, razlikujeta se
samo po metodi (vmesnih izracunih), zato smo ju lahko združili. S tem smo tudi dokazali,
da oba programa delujeta pravilno. V tabeli je tudi naveden k = 0, 1, 2. Ceprav pomeni
k = 2 tretjo iteracijo, ki je nismo racunali, smo ga napisali v tabli zaradi lažje predstave,
saj se racuna xk+1.
S tem smo zakljucili simulacijsko reševanje problemov. V naslednjem poglavju bomo
opisali program v MATLAB-u, s katerim bomo kasneje razrešili simulacijski in realni
problem nelinearnih funkcij.
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 37
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
2.4 Tabeli simulacijskih primerov
Tabela 1: Rezultati DFP in BFGS metode za primer 2.1
k x1 x2 f (xk)
x0 0 0 0 0
x1 1 0 -10 -50
x2 2 10 -20 -100
Tabela 2: Rezultati DFP in BFGS metode za primer 2.2
k x1 x2 f (xk)
x0 0 0 0 0
x1 1 -1 1 -1
x2 2 -1 1,5 -1,25
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 38
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
3 RAZVOJ RACUNALNIŠKIH PROGRAMOV V MA-
TLABU TER GRAFOV V LATEXU
Na osnovi teoreticnega znanja, ki smo ga pridobili v poglavju 1, smo napisali programa za
optimizacijo DFP in BFGS Quasi-Newtonove metode. Pri tem smo uporabili programski
okolje MATLAB, programa pa sta dodana prilogam. Za pisanje programa je bila pomoc
spletna stran za program MATLAB, v veliko pomoc pa so bili že napisani programi, pa
katerih smo se zgledovali. Prav tako si bomo pomagali izdelati grafe s paketi PGF/TikZ in
PGFPlots v LATEX-u.
3.1 DFP optimizacijski program
V tem poglavju bomo na kratko opisali program dfp_new.m, ki je v celoti prikazan v
poglavju 5.3. Na zacetku je potrebno pocistili vse spremenljivke, da nebi stare ponovno
uporabili v novem programu, kar bi lahko privedlo do napak. To je storjeno z ukazoma
close all in clear all. Zaslon se nato pocisti zgolj zaradi preglednosti, nato sledijo
trije vnosi s tipkovnico.
Najprej je potrebno dolociti dimenzijo n funkcije f, ki je odvisna od dimenzij prostora,
za katere rešujemo primer. V našem primeru je to dvodimenzionalni prostor, torej je
dimenzija vrednosti 2. Zanka for nato naredi toliko simbolicnih spremenljivk xi, kolikšna
je dimenzija n (i = 1, 2, ..., n), kar sta v našem primeru dva, x1 in x2.
Nato je potrebno vnesti funkcijo f v pravilni obliki, kot na primer x1^2+2*x2^2-2*x2.
Zadnji vnos je zacetni vektor X0. Ta vektor smo pisali z veliko crko, saj bi drugace v
naslednji iteraciji prišel do nasprotja s komponentami funkcije f.
Sledi opredelitev tolerance in simetricne matrike. Toleranco bi lahko vnesli s tipkovnico,
a nam da 1E-3 oziroma 10−3 dovolj natancen rezultat, da jo lahko kar uporabimo kot
privzeto za vse vrste problemov. Prav tako smo uporabili enako toleranco že v naših
analiticnih izracunih. Simetricna matrika v prvi iteraciji G0 pa je enaka enotski matriki
I , ki ima od prvega clena po diagonali vse elemente enake 1, ostale elemente pa enake 0.
Velikost simetricne matrike je odvisna od dimenzije n.
S sem smo prišli do odvoda funkcije f po komponentah xi, ki je malo bolj zapletena. V
21. vrstici smo naredili odvod funkcije f po x1, potem pa smo preverili, ali je dimenzija
vecja od 1 (n>1). Ce je trditev pravilna, se izvede naslednja for zanka, za vsak naslednji
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 39
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
xi (se pravi od x2) do n. Razlog je v tem, da je potrebno vse izhode funkcije napisati v eni
vrstici znotraj vektorjev (ki so za oglatimi [] oklepaji), zato enacimo odvod funkcije f
(df) s samim seboj.
Po podobnem principu gre naslednji sklop ukazov, ki se zacne z vrstico 28, le da tukaj
v odvod funkcije f vstavimo komponente zacetnega vektorja X0(i), da dobimo prvi
gradient g0. Sicer bi lahko ta dva sklopa združili, a jih bomo še v nadaljevanju programa
potrebovali, ko bomo racunali drugi gradient g1 (in vsak naslednji).
V vrstici 36. zacnemo z zanko while šteti ponovitve. Najprej damo za vrednost k=1, nato
pa ponavljamo zanko tako dolgo, dokler je k enak 1 (k==1) in ko pridemo do rezultata,
nastavimo k na kakršno koli drugo število, da se zanka zakljuci. V našem primeru smo
dali na število 0.
V zanki se pojavi najprej clear X1 alfa, ki v prvi ponovitvi nimata še nobenega pomena,
ampak je ukaz potreben za drugo ponovitev, da ne bi ostala kakšna neželena vrednost
za X1 in alfa iz prve ponovitve. Z drugimi besedami pomeni, da ukaz clear pocisti
že obstojece vrednosti. Nato se naredita tisti simbolicni spremenljivki, ki smo jih prej
pocistili, da lahko program zapiše zacasno enacbo za X1. Ta enacba še ima vedno sim-
bolicni alfa, ki ga je potrebno izracunat. Podobno kot v 28 vrstici tudi sedaj uporabimo
ukaz subs, da zamenjamo komponente funkcije f z vektorjem X1 in dobimo falfa ( f (α)).
Vendar je potrebno sedaj falfa odvesti po alfa, da dobimo dfalfa (∂ f (α)), ki ga lahko
nato z ukazom solve razrešimo (enacimo z 0) in dobimo alfa_opt (α). Tako dobimo za
α neko numericno vrednost, ki jo lahko uporabimo rešitev X1. Spet uporabimo ukaz subs,
da zamenjamo simbolicni alfa z alfa_opt.
Gradient g1 dobimo povsem enako kot v 28 vrstici gradient g0, le da tukaj uporabimo
komponente vektorja X1(i). Tako smo izracunali predhodna in zacetna vektorja odloci-
tvenih spremenljivk, kot tudi predhodna in zacetna gradienta. S temi podatki podatki lahko
izracunamo njuni spremembi ∆, tako da odštejemo zacetnega od predhodnega.
S tem smo prispeli do glavne razlike med DFP in BFGS metodo. Tukaj se izracunata ma-
triki M, N, rezultat pa se uporabi za izracun simetricne matrike G1, ki se uporabo v naslednji
iteraciji. Kljub temu, da racunamo G1, smo v programu zapisali, da gre za G0, saj nas
vmesna vrednost matrike G ne zanima, sama pa vpliva na rezultat samo v naslednji iteraciji.
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 40
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
Kot zadnji ukaz v zanki se izvede preverjanje rezultatov z toleranco TOL in ce sta dx0 ter
g1 manjša od nje, se nastavi k=0. S tem ko k vec ni enak 1, se zanka zakljuci. Takrat se
izpiše optimalen X1, ki pomeni koncni rezultat. V nasprotnem primeru se nastavi X1 na X0
in g1 na g0, ter se nadaljuje z izvedbo zanke. Tako dobimo za g0 in X0 novi vrednosti, ki
se uporabita v naslednji iteraciji, g1 in X1 pa se ponovno izracunata.
3.2 BFGS optimizacijski program
V tem poglavju bomo na kratko opisali program bfgs_new.m, ki je v celoti prikazan v
poglavju 5.3. Pri BFGS optimizacijskem programu, gre samo za ponovno uporabljeno
kodo z dolocenimi spremembami. Namesto, da se uporabita matriki M in N, se uporabijo
matrike A, B in C. S tem je tudi enacba za G1 drugacna. Prav tako smo tukaj uporabili
v programu G0 za izracun naslednje simetricne matrike. Ostale lastnosti programa so
podobne, kot so bile opisane v DPF metodo.
3.3 Prikaz grafov v LATEX-u
Za izdelavo grafov bomo uporabili PGF/TikZ in PGFPlots v LATEX-u. PGF/TikZ je paket v
LATEX-u za lažje risanje slik. Vecina slik, ki so narisane v tem diplomskem delu uporabljajo
paket PGF/TikZ. Samo ena slika je binarna (.jpg, .bmp, .png, ...), vse ostale pa so napisane
v LATEX kodi. Paket PGFPlots pa ima še dodatno funkcionalnost za enostavno risanje
funkcij, ki bi bil samo z paketom PGF/TikZ prevec težaven.
Kot vidimo iz priloge, se slika z \begin{tikzpicture} in konca z \end{tikzpicture},
saj bazira na PGF/TikZ. V 2. vrstici pa pride do izraza \begin{axis} ki že sodi v paket
PFGPlots. Tukaj nastavimo napis za x-os x1 in y-os z x2. V 3. vrstici narišemo funkcijo z
\addplot3. Številka 3 v addplot pomeni tridimenzionalni graf (ukaz \addplot je za
dvodimenzionalnega). Z ukazom surf naredimo obarvano mrežno, ki jo PGFPlots sam av-
tomatsko ustvari in obarva. Funkcija se obarva od temno modre pri najmanjših vrednostih
in gre vse do temno rdece pri najvecjih. Ukaza domain in domain y nam povesta domeno
pri x in y, v kakšnem definicijskem obmocju spremenljivk izrišemo funkcijo. Koordinate x
ne pišemo, saj jo PGFPlot avtomatsko vzame kot prvo.
V vrstici 4. pa imamo v zavitih oklepajih {} primer ciljne funkcije. Pravzaprav je vrstica 4.
nadaljevanje \addplot3 ukaza, a smo ciljno funkcijo zaradi preglednosti napisali v novi
vrstici. Sledita še smo zakljucitvi \end{axis} in \end{tikzpicture}.
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 41
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
4 REŠEVANJE SIMULACIJSKIH PRIMEROV S PO-
MOCJO RAZVITIH PROGRAMOV V MATLABU
V tem poglavju bomo z programom MATLAB izracunali simulacijska primera, ter z
PGFPlots narisali grafe. Prvo si bomo pogledali delovanje na primeru 2.1 in kasneje na
2.2.
4.1 Simulacijski primer 1
Prvo bomo uporabili program po DFP metodi, ki je v prilogi 5.3. Na zacetku vnesemo
dimenzijo funkcije, samo funkcijo, ter zacetni vektor. Izris komandnega okna je naslednji:
Vnesite dimenzijo funkcije:2
Vnesite funkcijo:1/2*(2*x1^2+2*x1*x2+x2^2)+10*x2
Vnesite zacetni vektor x0:[0 0]
Toleranca ε = 10−3 in zacetna simetricna matrika G0 =
1 0
0 1
, sta že v programu in ju ne
vnašamo. Glavna razlika med DFP in BFGS metodo je po vmesnih rezultatih pri matrikah
M in N (za DFP metodo), ter matrikami A, B, in C (za BFGS metodo). S tem je tudi
matrika G drugacna:
M = N = G0 =
[ 0, 0] [ 1/2, 1/2] [ 1/2, -1/2]
[ 0, 1] [ 1/2, 1/2] [ -1/2, 3/2]
Program naredi dve iteraciji in se ustavi, ko je dx0 || g1 < TOL. V našem primeru
dobimo:
X1 =
10
-20
V našem primeru je dx0 < TOL, zato se program konca. Kot vidimo, je to tudi rešitev
analiticnega dela reševanja simulacijskih primerov, zato program deluje pravilno.
Sedaj bomo uporabili še program po BFGS metodi, ki je v prilogi 5.3. Vnesemo dimenzijo
funkcije, samo funkcijo, ter zacetni vektor. Izris komandnega okna je naslednji:
Vnesite dimenzijo funkcije:2
Vnesite funkcijo:1/2*(2*x1^2+2*x1*x2+x2^2)+10*x2
Vnesite zacetni vektor x0:[0 0]
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 42
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
Toleranco ε = 10−3 in zacetno simetricno matriko G0 =
1 0
0 1
tudi tukaj ne vnašamo, saj
sta že v programu. Matrike A, B, C in G so tukaj:
A = B = C = G0 =
[ 0, 0] [ 0, 0] [ 0, 1] [ 1, -1]
[ 0, 3] [ 1, 1] [ 0, 1] [ -1, 2]
Program se ustavi pri drugi iteraciji, ko je g1 < TOL, kar je enako kot pri DFP metodi.
Dobimo:
X1 =
10
-20
Tudi tukaj je rešitev enaka kot analiticna rešitev simulacijskega programa oziroma rešitev
DFP metode s programom MATLAB, zato tudi ta program deluje pravilno. Slika 6 graficno
prikazuje funkcijo 2.1.
Slika 6: Graficni prikaz funkcije 2.1
−100 −50 0 50 100−100
0
1000
2
·104
x1x2
Sedaj bomo naredili enake izracune še za primer 2.2.
4.2 Simulacijski primer 2
Prvo bomo spet uporabili program po DFP metodi, ki je v prilogi 5.3. Vnesemo dimenzijo
funkcije, samo funkcijo, ter zacetni vektor. Izris komandnega okna je naslednji:
Vnesite dimenzijo funkcije:2
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 43
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
Vnesite funkcijo:x1-x2+2*x1^2+2*x1*x2+x2^2
Vnesite zacetni vektor x0:[0 0]
Matrike M , N in G za DFP metodo po 2.2 analiticnem problemu so:
M = N = G0 =
[ 1/2, -1/2] [ 1, 0] [ 1/2, -1/2]
[ -1/2, 1/2] [ 0, 0] [ -1/2, 3/2]
Program se ustavi po drugi iteraciji, kot smo tudi izracunali v analiticnem delu. Dobimo:
X1 =
-1
3/2
Tudi tukaj je od dx0 || g1 < TOL izraza veljaven dx0 < TOL, da zadosti toleranco in
konca program.
Sedaj naredimo enako še za BFGS metodo, ki je v prilogi 5.3. Prvo vnesemo dimenzijo
funkcije, samo funkcijo, ter zacetni vektor. Izris komandnega okna je naslednji:
Vnesite dimenzijo funkcije:2
Vnesite funkcijo:x1-x2+2*x1^2+2*x1*x2+x2^2
Vnesite zacetni vektor x0:[0 0]
Matrike A, B, C in G so:
A = B = C = G0 =
[ 3/2, -3/2] [ 1, 0] [ 1, -1] [ 1/2, -1/2]
[ -3/2, 3/2] [ -1, 0] [ 0, 0] [ -1/2, 5/2]
Tudi tukaj se program ustavi v drugi iteraciji, kot je g1 < TOL, ker je enako kot pri
prejšnjih izracunih. Dobimo:
X1 =
-1
3/2
Slika 7 graficno prikazuje funkcijo 2.2.
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 44
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
Slika 7: Graficni prikaz funkcije 2.1
−100 −50 0 50 100−100
0
1000
2
4
·104
x1x2
Kot vidimo sta oba grafa dokaj podobna, saj gre za polinoma druge stopnje oziroma za
dvodimenzionalno funkcijo. Graf pri drugi funkciji 2.2 je nekoliko bolj strmi, saj ima na
primer pri x1 = x2 = 100 vrednost 50.000, pri prvi funkciji 2.1 pa 26.000. Prav tako sta
oba grafa lepo konveksno obliko in sta dokaj hitro narašcajoca, saj niso potrebne vecje
spremembe spremenljivk, da vrednost poskoci na petmestno številko.
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 45
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
5 REŠEVANJE REALNEGA PRIMERA LOKACIJ-
SKEGA PROBLEMA S POMOCJO RAZVITIH PRO-
GRAMOV V MATLABU
V tem poglavju bomo poizkusili razrešit lokacijski problem. Radi bi našli najboljšo možno
lokacijo skladišca, ki bi z blagom oskrboval trgovine. Na postavitev skladišca bo vplivala
lokacija trgovin, ter potrebami vsake trgovine po blagu. Lokacijo trgovin bomo zapisali
v koordinatnem sistemu (x , y) z tockami od A do G, potrebe pa bomo oznacili s številko
zraven povezave do skladišca. Vecja številka pomeni vecjo potrebo. Zanemarili pa bomo
težavnost cestne infrastrukture in gostoto prometa, saj se lahko predvideva, da morajo biti
trgovine oskrbljene ne glede na omenjene parametre. Slika 8 prikazuje lokacijski problem
skladišca s skladišcem v tocki S.
Slika 8: Lokacijski problem skladišca
y
x
S(x , y) = ?
A(2,8)
7
B(1.9,3) 5
C(3.3,5.1)4
D(4.5,9)
8
E(6.1,7.3)
5
F(3.9,8.8)
3
G(4.3,0.5)
11
Tukaj smo tocko S postavili na poljubno lokacijo, saj še ne vemo, kje dejansko bo, ker
nimamo njenih koordinat. Te bomo poskusili izracunati s pomocjo DFP in BFGS metode.
Kot prvo pa moramo napisati enacbo za kriterijsko funkcijo, ki bo predstavljala skladišce
v tocki S, za katero želimo poiskati optimalni koordinati x∗ in y∗, na takšen nacin, da bo
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 46
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
veljalo:
f (x∗, y∗) = min︸︷︷︸x ,y
f (x , y) (5.1)
Enacba za kriterijsko funkcijo bo imela potrebe oznacene s crko e:
f (x , y) = 7 · eA + 5 · eB + 4 · eC + 8 · eD + 5 · eE + 3 · eF + 11 · eG (5.2)
Sedaj pa bomo izrazili potrebe e. Kot vidimo je e vektor, ki mu lahko dolocimo dolžino v
koordinatnem prostoru z enacbo e =√x2 + y2, torej:
f (x , y) = 7 ·√
(x − 2)2 + (y − 8)2 + 5 ·√
(x − 1, 9)2 + (y − 3)2+
+ 4 ·√
(x − 3, 3)2 + (y − 5, 1)2 + 8 ·√
(x − 4, 5)2 + (x − 9)2+
+ 5 ·√
(x − 6, 1)2 + (y − 7, 3)2 + 3 ·√
(x − 3, 9)2 + (y − 8, 8)2+
+ 11 ·√x − 4, 3)2 + (y − 0, 5)2 (5.3)
Dobljeno enacbo bomo sedaj ustavili v programa za DFP in BFGS metodo. Pricakujemo
lahko, da se bosta koncna rezultata malo razlikovala, saj verjetno ne bomo dobili tako lepih
rešitev, kot pri simulacijskih primerih.
5.1 Rešitev realnega primera po DFP metodi
Enacbo 5.3 bomo sedaj vstavili v DFP program. Tudi tukaj bomo uporabili zacetni vektor
x0 = [0 0]. Ker je realni primer šel skozi vec iteracij programa je najbolje, da rezultate
kar predstavimo v tabeli 3.
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 47
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
Tabela 3: Rezultati realnega primera po DFP metodi
k x y f (xk)
x0 0 0 0 304,336254
x1 1 4,241897 4,892560 153,954573
x2 2 3,615412 5,856244 147,491401
x3 3 3,593038 5,831192 147,488431
x4 4 3,598779 5,821288 147,487906
x5 5 3,595108 5,816859 147,487824
x6 6 3,595826 5,815348 147,487814
x7 7 3,595464 5,814875 147,487813
Kot vidimo, ima funkcija najvecji skok v prvi iteraciji in nato še malo vecjega v drugi,
potem pa se dokaj gladko premika proti minimumu. To pomeni, da bi lahko toleranco
tudi malo zmanjšali, da ne bi bilo toliko racunanja, saj tudi program pocasneje dela zaradi
vecjega števila iteracij. Pomeni pa tudi, da zacetnega vektorja nismo lepo uganili, ceprav
verjetno ne bi bilo manj iteracij. Funkcija v izrazu 5.3 v tocki x7 seveda nima cistega
minimuma, a je to dovolj dober približek za dani primer.
5.2 Rešitev realnega primera po BFGS metodi
Sedaj bomo enacbo 5.3 vstavili v BFGS program. Kljub temu, da sedaj že poznamo dober
približek funkcije 5.3, bomo za primerjavo vzeli za zacetni vektor spet x0 = [0 0], saj
verjetno ne bi prihranili veliko procesorskega casa oziroma ne bi bilo nic manj iteracij.
Rezultate si oglejmo na tabeli 4.
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 48
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
Tabela 4: Rezultati realnega primera po BFGS metodi
k x y f (xk)
x0 0 0 0 304,336254
x1 1 4,241897 4,892560 153,954573
x2 2 3,615412 5,856244 147,491401
x3 3 3,593044 5,831254 147,488435
x4 4 3,595610 5,814877 147,487813
x5 5 3,595493 5,814744 147,487813
Tudi tukaj ima funkcija najvecji skok v prvi iteraciji in nato še enega malo vecjega v drugi,
potem pa gre dokaj gladko proti minimumu. Seveda tudi tukaj ne gre za pravi minimum,
ampak za dovolj dober približek, ki zadostuje za dani primer.
5.3 Primerjava in grafi
Ce si pogledamo tabeli 3 in 4 vidimo, da je DFP metoda pocasnejša od BFGS metode. To
je bilo tudi za pricakovati, saj je bila BFGS metoda razvita kot izboljšava DFP metode.
Tako potrebuje program za DFP metodo sedem iteracij, da pride do cilja, program za BFGS
metodo pa samo pet. Pravzaprav je že v cetrti iteraciji ciljna funkcija enake vrednosti kot
v peti (zaradi zaokroževanja), kar je še iteracija manj. A kljub temu lahko recemo, da v
obeh dveh primerih ciljna funkcija zelo hitro konvergira, saj je vsaj v tretji iteraciji dovolj
dober približek minimuma. Lahko bi tudi dejali, da je kot približek že druga iteracija dovolj.
Na zacetku tega poglavja smo narisali koordinatni sistem z vsemi trgovinami in skladišcem,
ter jih oznacili. Ker takrat še nismo vedeli optimalne lega skladišca S, smo ga narisali
poljubno na koordinatni sistem. To lahko sedaj popravimo na sliki 9. Optimalni koordinati
skladišca x∗ in y∗ bomo zaokrožili na dve decimalki natancno.
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 49
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
Slika 9: Lokacijski problem skladišca
y
x
S(3.59,5.81)
A(2,8)
7
B(1.9,3)5
C(3.3,5.1) 4
D(4.5,9)
8
E(6.1,7.3)
5
F(3.9,8.8)
3
G(4.3,0.5)
11
x∗ = 3.59
y∗ = 5.81
Kot vidimo, je skladišce S najbližje trgovini C, kljub temu, da ima ta trgovina skoraj
najmanjše potrebe. Razlog je seveda v tem, da leži dokaj na sredini vseh trgovin in s tem
tudi najbolj pridobi. Ravno nasprotje je trgovina G, saj ima najbolj oddaljeno skladišce
kljub temu, da ima najvecje potrebe od vseh trgovin. Razlog je podoben kot pri trgovini
C, se pravi, da je najbolj oddaljena od ostalih trgovin. Zaradi tega ne moremo skladišca
postavit bližje, saj ena sama oddaljena trgovina tega ne odtehta, saj postavitev ne bi bila
racionalna kljub temu, da ima najvecje potrebe.
Za konec lahko še narišemo funkcijo v izrazu 5.3 s paketom PGFPlots. Slika 10 prikazuje
graf te funkcije. Zaradi primerjave z simulacijskimi primeri bomo pri funkciji realnega
primera vzeli enako definicijsko obmocje.
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 50
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
Slika 10: Funkcija realnega primera
−100 −50 0 50 100−100
0
1000
5,000
x1x2
Ce sedaj primerjamo to realno funkcijo z obema funkcijama simulacijskega primera vidimo,
da je ta realna funkcija veliko manj strma, saj je pri vrednosti spremenljivk x = y = 100
vrednost ciljne funkcije f (x , y) = 5.803. V primerjavi z primerom 2.2 je to skoraj deset krat
manjša vrednost. Zaradi tega razloga in dejstva da je veliko bolj kompleksno sestavljena,
potrebujemo za izracun problema tudi vec iteracij. Ima pa ta funkcija še lepšo konveksno
obliko in bolj nazorno prikaže, kje je dejanski minimum.
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 51
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
ZAKLJUCEK
Ocena in vrednotenje uspešnosti rešitve problema
V diplomskem delu smo pogledali delovanje Quasi-Newtonovih metod na simulacijskih
ter realnem primeru. Za to je bilo potrebno preuciti teorijo Quasi-Newtonovih metod, kot
tudi Newtonovih metod, ki so potrebne za razumevanje, saj se neposredno navezujejo
na Quasi-Newtonove metode. Seveda smo zraven razložili optimizacijo na splošno, ter
vse matematicne osnove, ki so prav tako bile potrebne za razumevanje snovi. Hkrati smo
razložili še izdelavo grafov v PGFPlots, ki je del oznacevalnega jezika LATEX, v katerem
smo pisali diplomsko delo.
Glavni namen diplomskega dela je bil preuciti Quasi-Newtonovi metodi DFP in BFGS,
ter ugotoviti, ce in katera metoda od teh dveh daje boljše rezultate. Po teoriji sodec bi
morala biti boljša BFGS metoda, saj je bila ravno razvita za ta namen kot nadgradnja DFP
metode in to se je pri realnem primeru izkazalo za pravilno. Konvergenca je bila pri BFGS
metodi hitrejša kot pri DFP metodi. Pri simulacijskih primerih ta razlika ni bila vidna, saj
se je izracun v obeh primerih že po drugi iteraciji koncal. Ceprav se Quasi-Newtonove
metode zalo dobro odrežejo pri vseh vrstah problemov, pa zaradi specificnih lastnosti
posamicnih problemov, ter tudi zaradi specificnih lastnosti drugih metod, ki imajo za dane
probleme boljše karakteristike, se ne moremo vedno nanašati na Quasi-Newtonove metode.
V dolocenih primerih bodo kakšne druge metode bolj ustrezne in takrat je dobro uporabit
te, saj univerzalna metoda, ki bi rešila vsak problem žal ne obstaja. Tudi je vprašanje, ce je
smiselno racunati po doloceni metodi, ce se da razbrati, da je kakšna druga bolj primerna.
Pogoji za uvedbo rešitve
Pogoji za dobro reševanje Quasi-Newtonovih problemov so konveksnost funkcije. Bolj
kot je konveksna, lepše jo je izracunat. Po drugi strani pa se lahko zgodi, da je pri ne-
konveksnih funkcijah lahko racunanje zelo težavno, ce ne skoraj nemogoce. Takrat bi bilo
dobro razmisliti o kakšni drugi metodi.
Možnosti nadaljnjega razovja
Možnosti seveda obstajajo v tem, da bi preucili še kakšne druge metode in jih primerjali
med seboj. Na tak nacin lahko ugotovimo, katera metoda je za dolocen primer najboljša.
To bi nam lahko pomagalo pri reševanju drugih bolj težavnih problemov. Prav tako bi
lahko bila programa, ki smo ju uporabljali za izracun DFP in BFGS metode boljša, saj ne
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 52
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
piracunata vseh možnih rešitev. Tudi zelo pocasna sta zaradi odvajanja funkcije, predvsem
ko racunamo realni primer, ki je racunsko veliko bolj potraten.
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 53
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
LITERATURA IN VIRI
Chong, E. & Zak, S. (2001). An Introduction to Optimization. (2nd ed.). Hoboken (New
Jersey): Wiley.
Conn, A.R. & Gould, N. I. M. & Toint, Ph. L. (1991). Convergence of quasi-Newton
matrices generated by the symmetric rank one update. Secaucus (New Jersey):
Springer-Verlag.
Dragan, D. (2010). Optimizacija logisticnih procesov. Celje: Fakulteta za logistiko.
Fošner, M. & Fošner, A. (2007). Matematicne metode v logistiki. Celje: Fakulteta za
logistiko.
Functions. (b.1.) V MATLAB CENTRAL. Najdeno 22. februarja 2014 na spletni strani
http://www.mathworks.com/help/matlab/functionlist.html?s_tid=doc_12b
Gradient. (b.1.) V Wolfram MathWorld. Najdeno 30. januarja 2014 na spletni strani
http://mathworld.wolfram.com/Gradient.html
M-code LaTeX Package. (b.1.) V MATLAB CENTRAL. Najdeno 15. novembra 2013 na
spletni strani http://www.mathworks.com/matlabcentral/fileexchange/8015-m-code-
latex-package
Partial Derivative. (b.1.) V Wolfram MathWorld. Najdeno 30. januarja 2014 na spletni
strani http://mathworld.wolfram.com/PartialDerivative.html
Positive Definite Matrix. (b.1.) V Wolfram MathWorld. Najdeno 6. februarja 2014 na
spletni strani http://mathworld.wolfram.com/PositiveDefiniteMatrix.html
Optimization. (b.1.) V Encyclopædia Britannica online. Najdeno 17. januarja 2014 na
spletni strani http://www.britannica.com/EBchecked/topic/430575/optimization
Vrancic, D. & Dragan, D. (2008). Optimizacija logisticnih sistemov. Celje: Fakulteta za
logistiko.
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 54
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
PRILOGE
Programa, napisana v programskem paketu MATLAB (Functions, b.1.). Za vkljucitev
MATLAB kode pa smo uporabili M-code paket za LATEX(M-code LaTeX Package, b.1.).
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 55
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
Program za DFP metodo
1 % Program za Quas i - Newton2 % DFP metoda3 % D a t o t e k a : dfp_new .m4
5 c l o s e a l l % Ukaz z a p r e vse s p r e m e n l j i v k e6 c l e a r a l l % Ukaz p o c i s t i vse s p r e m e n l j i v k e7 c l c % Ukaz p o c i s t i z a s l o n8
9 n= i n p u t ( ' V n e s i t e d i m e n z i j o f u n k c i j e : ' ) ; % S tem ukazom doloc imo s p r e m e n l j i v k of u n k c i j e
10
11 f o r i =1: n12 syms ( [ ' x ' num2s t r ( i ) ] ) % S t o f o r zanko nared imo t o l i k o komponent x ( i ) k o t
j e v e l i k a d i m e n z i j a f u n k c i j e13 end14
15 f= i n p u t ( ' V n e s i t e f u n k c i j o ( npr . x1 ^2 - 2* x1*x2+2*x2 ^2 - x1 - 2* x2 ) : ' ) ; % Vnosf u n k c i j e
16 X0= i n p u t ( ' V n e s i t e z a c e t n i v e k t o r x0 ( npr . [0 0 ] ) : ' ) ' ; % Vnos z a c e t n e g av e k t o r j a
17
18 TOL=1E - 3 % T o l e r a n c a j e 0 .00119 G0=eye ( n ) % Z a c e t n a m e t r i c n a m a t r i k a j e enaka e n o t s k i m a t r i k i I20
21 df= d i f f ( f , x1 ) % Zace tno f u n k c i j o f odvedemo po vseh komponentah x ( i )22 i f n>123 f o r i =2: n24 df =[ d f d i f f ( f , [ ' x ' num2s t r ( i ) ] ) ]25 end26 end27
28 g0=subs ( df , x1 , X0 ( 1 ) ) % V z a c e t n o f u n k c i j o f v s t a v i m o komponente z a c e t n e g av e k t o r j a X0 ( i ) i n dobimo g r a d i e n t g0
29 i f n>130 f o r i =2: n31 g0=subs ( g0 , [ ' x ' num2s t r ( i ) ] , X0 ( i ) )32 end33 end34
35 k =1;36 w h i l e k==1 % Zanka , k i s t e j e i t e r a c i j e ( se p o n a v l j a , d o k l e r j e k =1)37 c l e a r X1 a l f a % I z b r i s e m o X1 i n a l f a ( t o p r i d e pozna s e l e v n a s l e d n j i
i t e r a c i j i )38 syms X1 a l f a % Naredimo X1 i n a l f a ponovno39 X1=X0 - a l f a *G0*g0 ' % Izracunamo X140
41 f a l f a =subs ( f , x1 , X1 ( 1 ) ) % V z a c e t n i f u n k c i j i f zamenjamo n j e n e komponenteza komponente v e k t o r j a X1 ( i ) i n dobimo f ( a l f a )
42 i f n>143 f o r i =2: n
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 56
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
44 f a l f a =subs ( f a l f a , [ ' x ' num2s t r ( i ) ] , X1 ( i ) )45 end46 end47
48 d f a l f a = d i f f ( f a l f a , a l f a ) % Izracunamo odvod f ( a l f a )49 a l f a _ o p t = s o l v e ( d f a l f a ) % df ( a l f a ) enacimo z 0 i n i z r a z i m o a l f a o p t i m a l n i50 X1=subs ( X1 , a l f a , a l f a _ o p t ) % Zamenjamo a l f a z a l f a o p t i m a l n i m ( s i m b o l n i
i z r a z z i z r a c u n a n o s t e v i l k o ) i n dobimo X151
52 g1=subs ( df , x1 , X1 ( 1 ) ) % V odvod f u n k c i j e f v s t a v i m o komponente v e k t o r j a X1 (i ) i n dobimo g r a d i e n t g1
53 i f n>154 f o r i =2: n55 g1=subs ( g1 , [ ' x ' num2s t r ( i ) ] , X1 ( i ) )56 end57 end58
59 dg0=g1 ' - g0 ' % Od g1 o d s t e j e m o g0 i n dobimo dg060 dx0=X1 - X0 % Od X1 o d s t e j e m o X0 i n dobimo dx061
62 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%63 % Tukaj se v programu r a z l i k u j e t a DFP i n BFGS metod i %64 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%65 M=dx0 *dx0 ' / ( dx0 ' * dg0 ) % Izracunamo M,66 N=(G0*dg0*dg0 ' * G0 ) / ( dg0 ' * dg0 ) % N,67 G0=G0+M-N % i n G0 po enacbah68 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%69 % Tukaj se v programu r a z l i k u j e t a DFP i n BFGS metod i %70 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%71
72 i f ( norm ( d oub l e ( dx0 ) )<TOL) | | ( norm ( do ub l e ( g1 ) )<TOL) % Ce s t a dx0 a l i g1manjsa od t o l e r a n c e
73 k =0; % I z s t o p i z zanke74 e l s e % Drugace75 X0=X1 % Nastavimo X1 na X076 g0=g1 % Nastavimo g1 na g077 end78 end79
80 d i s p ( ' Optimum j e : ' ) % Ko se zanka konca i z p i s e m o optimum81 X1
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 57
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
Program za BFGS metodo
1 % Program za Quas i - Newton2 % BFGS metoda3 % D a t o t e k a : bfgs_new .m4
5 c l o s e a l l % Ukaz z a p r e vse s p r e m e n l j i v k e6 c l e a r a l l % Ukaz p o c i s t i vse s p r e m e n l j i v k e7 c l c % Ukaz p o c i s t i z a s l o n8
9 n= i n p u t ( ' V n e s i t e d i m e n z i j o f u n k c i j e : ' ) ; % S tem ukazom doloc imo s p r e m e n l j i v k of u n k c i j e
10
11 f o r i =1: n12 syms ( [ ' x ' num2s t r ( i ) ] ) % S t o f o r zanko nared imo t o l i k o komponent x ( i ) k o t
j e v e l i k a d i m e n z i j a f u n k c i j e13 end14
15 f= i n p u t ( ' V n e s i t e f u n k c i j o ( npr . x1 ^2 - 2* x1*x2+2*x2 ^2 - x1 - 2* x2 ) : ' ) ; % Vnosf u n k c i j e
16 X0= i n p u t ( ' V n e s i t e z a c e t n i v e k t o r x0 ( npr . [0 0 ] ) : ' ) ' ; % Vnos z a c e t n e g av e k t o r j a
17
18 TOL=1E - 3 % T o l e r a n c a j e 0 .00119 G0=eye ( n ) % Z a c e t n a m e t r i c n a m a t r i k a j e enaka e n o t s k i m a t r i k i I20
21 df= d i f f ( f , x1 ) % Zace tno f u n k c i j o f odvedemo po vseh komponentah x ( i )22 i f n>123 f o r i =2: n24 df =[ d f d i f f ( f , [ ' x ' num2s t r ( i ) ] ) ]25 end26 end27
28 g0=subs ( df , x1 , X0 ( 1 ) ) % V z a c e t n o f u n k c i j o f v s t a v i m o komponente z a c e t n e g av e k t o r j a X0 ( i ) i n dobimo g r a d i e n t g0
29 i f n>130 f o r i =2: n31 g0=subs ( g0 , [ ' x ' num2s t r ( i ) ] , X0 ( i ) )32 end33 end34
35 k =1;36 w h i l e k==1 % Zanka , k i s t e j e i t e r a c i j e ( se p o n a v l j a , d o k l e r j e k =1)37 c l e a r X1 a l f a % I z b r i s e m o X1 i n a l f a ( t o p r i d e pozna s e l e v n a s l e d n j i
i t e r a c i j i )38 syms X1 a l f a % Naredimo X1 i n a l f a ponovno39 X1=X0 - a l f a *G0*g0 ' % Izracunamo X140
41 f a l f a =subs ( f , x1 , X1 ( 1 ) ) % V z a c e t n i f u n k c i j i f zamenjamo n j e n e komponenteza komponente v e k t o r j a X1 ( i ) i n dobimo f ( a l f a )
42 i f n>143 f o r i =2: n
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 58
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
44 f a l f a =subs ( f a l f a , [ ' x ' num2s t r ( i ) ] , X1 ( i ) )45 end46 end47
48 d f a l f a = d i f f ( f a l f a , a l f a ) % Izracunamo odvod f ( a l f a )49 a l f a _ o p t = s o l v e ( d f a l f a ) % df ( a l f a ) enacimo z 0 i n i z r a z i m o a l f a o p t i m a l n i50 X1=subs ( X1 , a l f a , a l f a _ o p t ) % Zamenjamo a l f a z a l f a o p t i m a l n i m ( s i m b o l n i
i z r a z z i z r a c u n a n o s t e v i l k o ) i n dobimo X151
52 g1=subs ( df , x1 , X1 ( 1 ) ) % V odvod f u n k c i j e f v s t a v i m o komponente v e k t o r j a X1 (i ) i n dobimo g r a d i e n t g1
53 i f n>154 f o r i =2: n55 g1=subs ( g1 , [ ' x ' num2s t r ( i ) ] , X1 ( i ) )56 end57 end58
59 dg0=g1 ' - g0 ' % Od g1 o d s t e j e m o g0 i n dobimo dg060 dx0=X1 - X0 % Od X1 o d s t e j e m o X0 i n dobimo dx061
62 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%63 % Tukaj se v programu r a z l i k u j e t a DFP i n BFGS metod i %%%%%%%%%%%%%%%%%%%%%%64 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%65 A = (1+ ( dg0 ' * G0*dg0 ) / ( dx0 ' * dg0 ) ) * ( ( dx0 *dx0 ' ) / ( dx0 ' * dg0 ) ) % Izracunamo A,66 B = ( dx0 *dg0 ' * G0 ) / ( dx0 ' * dg0 ) % B ,67 C = ( G0*dg0*dx0 ' ) / ( dx0 ' * dg0 ) % C ,68 G0 = G0 + A - B - C % i n G0 po enacbah69 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%70 % Tukaj se v programu r a z l i k u j e t a DFP i n BFGS metod i %%%%%%%%%%%%%%%%%%%%%%71 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%72
73 i f ( norm ( d oub l e ( dx0 ) )<TOL) | | ( norm ( do ub l e ( g1 ) )<TOL) % Ce s t a dx0 a l i g1manjsa od t o l e r a n c e
74 k =0; % I z s t o p i z zanke75 e l s e % Drugace76 X0=X1 % Nastavimo X1 na X077 g0=g1 % Nastavimo g1 na g078 end79 end80
81 d i s p ( ' Optimum j e : ' ) % Ko se zanka konca i z p i s e m o optimum82 X1
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 59
Fakulteta za logistiko Univerze v Mariboru Univerzitetni študijski program
Izris grafov v LATEX-u
1 \ b e g i n { t i k z p i c t u r e }2 \ b e g i n { a x i s } [ x l a b e l =$x_1$ , y l a b e l =$x_2$ ]3 \ a d d p l o t 3 [ s u r f , domain= - 1 0 : 1 0 , domain y= - 1 0 : 1 0 ]4 {x ^2 - 2*x*y +2*y ^2 - x - 2*y } ;5 \ end { a x i s }6 \ end { t i k z p i c t u r e }
Tomaž Kokolj: Uporaba Quasi-Newtonovih metod pri reševanju nelinearnih logisticnih problemov 60