POGLAVLJE 1 GRADIJENTNE METODE Posmatrajmo problem bezuslovne optimizacije min f(x), X R n gde je f : R n R zadata realna funkcija definisana na R n. Metode bezuslovne optimizacije mogu se podeliti u dve klase: metode sa računanjem izvoda i metode bez računanja izvoda. Jasno je da se prva klasa metoda može primeniti samo na diferencijabilne funkcije, dok se metode druge klase mogu primeniti i u slučaju nediferencijabilnih funkcija. U praksi se metode druge klase koriste i u slučajevima kada je funkcija diferencijabilna, ali je računanje njehih izvoda komplikovano i zahteva značajne vremenske ili memorijske resurse. Metode druge klase se takod e koriste kada je nemoguće tačno odrediti izvode, recimo, kada je funkcija zadata tablično. Metode bezuslovne optimizacije su uglavnom iterativnog tipa. Osnovna ideja je da se generiše niz tačaka X k R n, na sledeći način: X k+1 = X k + α k d k, k = 0, 1, 2, 3,... gde je d k R n vektor koji odred uje pravac kretanja iz tačke X k, a α k > 0 realni parametar koji odred uje dužinu koraka iz tačke X k u pravcu vektora d k (videti Sliku 1.1). 1
2 Zorica Stanimirović Slika 1.1: Generisanje niza X k Niz vektora d k R n i parametara α k R obično biramo tako da niz vrednosti f(x k ) monotono opada i konvergira nekom od lokalnih minimuma funkcije f(x) u R n. U ovom poglavlju biće opisana jedna najpoznatijih klasa metoda bezuslovne optimizacije gradijentne metode. U narednim sekcijama biće predstavljene opšte karakteristike gradijentnih metoda, kao i dve najpoznatije metode iz ove klase: metoda najbržeg spusta i metoda konstantnog spusta. Biče reči o potrebnim i dovoljnim uslovima konvergencije gradijentnih metoda i analizirana brzina konvergencije. 1.1 Gradijentne metode opšte osobine U ovom poglavlju razmatramo klasu gradijentnih metoda za rešavanje problema min f(x), X R n, gde je f : R n R zadata funkcija. Zajednička karakteristika je da koriste gradijent date funkcije f za rešavanje problema bezuslovne optimizacije, po čemu su i dobile naziv. Najpre ćemo se podsetiti šta je nivoski skup funkcije, kako se definišu pravac i stopa maksimalnog rasta/opadanja funkcije u nekoj tački, kao i povezavost sa gradijentom funkcije. Nivoski skup funkcije f : R n R predstavlja skup tačaka X R n koje zadovoljavaju f(x) = c, gde je c data konstanta. Ukoliko je gradijent funkcije
Nelinearno programiranje 3 f u tački X 0, u oznaci f(x 0 ), različit od nule, tada je f(x 0 ) ortogonalan na tangentni vektor proizvoljne glatke krive koja prolazi kroz X 0 na nivoskom skupu f(x 0 ) = c. Stoga je pravac maksimalnog rasta realne diferencijabilne funkcije u nekoj tački ortogonalan na nivoski skup funkcije u toj tački. Nivoski skup realne funkcije dve promenljive f(x) = c, X = [x 1, x 2 ] T i gradijent funkcije u tački X 0 ilustrovani su na Slici 1.2. Slika 1.2: Nivoski skup f(x) = c, X = [x 1, x 2 ] T i gradijent f(x 0 ) Podsetimo se da je f(x), d za d = 1 stopa rasta funkcije f u pravcu vektora d u tački X. Kako je d = 1, prema Koši-Švarcovoj nejednakosti imamo f(x), d f(x). Ako u gornjoj nejednakosti stavimo d = f(x) f(x), dobijamo f(x) f(x), = f(x). f(x) Dakle, f(x) je zaista pravac maksimalnog rasta funkcije f u tački X. Slično, f(x) predstavlja pravac maksimalnog opadanja funkcije f u tački
4 Zorica Stanimirović X. Dakle, da bismo našli minimum funkcije f, dobra ideja je tražiti ga u pravcu maksimalnog opadanja funkcije, tj. u pravcu negativnog gradijenta. Ideja gradijentne metode se sastoji u sledećem. Uočimo početnu tačku X (0). Posmatrajmo zatim tačku X (0) α 0 f(x (0) ), gde je α 0 R, α 0 > 0 pozitivan skalar. Iz Tejlorovog razvoja dobijamo f(x (0) α 0 f(x (0) )) = f(x (0) ) α 0 f(x (0) ) 2 + o(α 0 ). Ukoliko je f(x (0) ) 0, za dovoljno male vrednosti α 0 > 0 dobijamo f(x (0) α 0 f(x (0) )) < f(x (0) ), što znači da tačka X (0) α 0 f(x (0) ) predstavlja poboljšanje u odnosu na polaznu tačku X (0), jer tražimo minimum funkcije. Zatim ponavljamo postupak za tačku X (1) = X (0) α 0 f(x (0) ) i dobijamo poboljšanje X (2) = X (1) α 1 f(x (1) ), gde je α 1 > 0, itd. Postupak sada možemo uopštiti. Pretpostavimo da smo u koraku k došli do tačke X (k). Da bismo našli narednu tačku X (k+1), polazimo od tačke X (k) i krećemo se u pravcu vektora f(x (k) ). Tačnije, od X (k) pomeramo se za α k f(x (k) ), gde je α k pozitivan skalar koji nazivamo veličinom koraka. Tako dobijamo formulu za iterativni niz gradijentne metode X (k+1) = X (k) α k f(x (k) ), k = 0, 1, 2,... pri čemu je početna tačka X (0) unapred odred ena. Izloženi algoritam se naziva gradijentnom metodom za rešavanje problema bezuslovne optimizacije. U literaturi se ova metoda naziva još i metodom spusta u pravcu gradijenta, kao i metodom gradijentnog spusta. 1.2 Metoda najbržeg spusta i metoda konstantnog spusta Metoda najbržeg spusta je gradijentna metoda kod koje se veličina koraka α k bira tako da se u svakoj iteraciji (koraku) metode postiže maksimalno opadanje vrednosti funkcije cilja f(x). Preciznije, za α k se uzima rešenje problema minimizacije funkcije g k (α) za α 0, gde je g k (α) : R 0 + R definisana sa g k (α) = f(x (k) α f(x (k) )).
Nelinearno programiranje 5 Označimo sa α k minimum funkcije g k (α) za α 0. Za nad eni minimum α k, naredna tačka iterativnog niza X (k+1) se dobija na sledeći način X (k+1) = X (k) α k f(x (k) ). Drugim rečima, metoda najbržeg spusta počinje od zadate tačke X (0), a zatim se u svakom koraku, polazeći od tačke X (k) vrši pretraga duž pravca f(x (k) ), dok ne se nad e minimum X (k+1). Algoritam metode najbržeg spusta se može predstaviti kao sledeći niz koraka: Algoritam 3.1 Korak 0. Postaviti k = 0. Izabrati dopustivu tačku X (0) R n. Korak 1. Izračunati d k = f(x (k) ). Korak 2. Naći α k kao rešenje problema minimizacije funkcije g k (α) = f(x (k) α f(x (k) )) za α 0. Korak 3. Izračunati X (k+1) = X (k) α k d k. Postaviti k = k + 1 i ići na Korak 1. Algoritam se zaustavlja ukoliko je ispunjen neki kriterijum zaustavljanja, o čemu će biti reči kasnije. Metoda najbržeg spusta u literaturi se još naziva i Košijevom metodom 1. Iterativni niz {X (k) } dobijen metodom najbržeg spusta prikazan je na Slici 1.3. Slika 1.3: Konstrukcija iterativnog niza {X (k) } metodom najbržeg spusta Primetimo da se metoda kreće u ortogonalnim koracima, o čemu govori i 1 Augustin-Louis Cauchy (1789 1857)
6 Zorica Stanimirović sledeća lema Lema 1.1 Neka je {X (k) } iterativni niz dobijen metodom najbržeg spusta pri minimizaciji funkcije f : R n R. Tada je vektor X (k+1) X (k) ortogonalan na vektor X (k+2) X (k+1), za svako k. Dokaz. Iz formule za konstrukciju iterativnog niza metode najbržeg spusta lako se pokazuje da važi X (k+1) X (k), X (k+2) X (k+1) = α k α k+1 f(x (k) ), f(x (k+1) ). Da bismo dokazali lemu, dovoljno je pokazati da je f(x (k) ), f(x (k+1) ) = 0. Kako je α k nenegativni skalar koji predstavlja minimum funkcije g k (α) za α 0, a imajući u vidu NUPR, dobijamo 0 = g k(α k ) = f(x (k) α k ( f(x (k) )) T ( f(x (k) )) čime je dokaz leme završen. = f(x (k+1) ), f(x (k) ), Prema gornjoj lemi, vektor f(x (k) ) je paralelan tangentnoj ravni nivoskog skupa {X R n f(x) = f(x (k+1) )} u tački X (k+1). Primetimo da u svakom koraku iterativnog niza, vrednost funkcije u novodobijenoj tački opada u odnosu na vrednost funkcije u prethodnoj tački iterativnog niza, što će biti formalno dokazano narednom lemom. Lema 1.2 Neka je {X (k) } iterativni niz dobijen metodom najbržeg spusta pri minimizaciji funkcije R n R. Ako je f(x (k) ) 0, tada važi Dokaz. Podsetimo se da je f(x (k+1) ) < f(x (k) ). X (k+1) = X (k) α k f(x (k) ), gde je α k 0 odred eno kao minimum funkcije Prema tome, za svako α 0 važi g k (α) = f(x (k) α f(x (k) )), za α 0. g k (α k ) g k (α).
Nelinearno programiranje 7 Kako je po pretpostavci leme f(x (k) ) 0, dobijamo g k(0) = [ f(x (k) 0 f(x (k) ))] T f(x (k) ) = f(x (k) ) 2 < 0. Dakle, g k (0) < 0, što znači da postoji tačka α > 0, takva da je g k (0) > g k (α) za svako α (0, α ]. Zaključujemo da je što je i trebalo dokazati. f(x (k+1) ) = g k (α k ) g k (α ) < g k (0) = f(x (k) ), Upravo smo dokazali da vrednosti funkcije cilja u tačkama iterativnog niza, konstruisanog algoritmom najbržeg spusta, imaju svojstvo opadanja: f(x (k+1) ) < f(x (k) ), ukoliko je f(x (k) ) 0. Ukoliko za neko k važi f(x (k) ) = 0, tada tačka X (k) zadovoljava NURP. U tom slučaju je X (k+1) = X (k), odakle je f(x (k+1) ) = f(x (k) ), te se uslov f(x (k) ) = 0 može uzeti kao kriterijum zaustavljanja algoritma. Med utim, ovaj kriterijum nije pogodan za praktičnu primenu, jer se pri numeričkim izračunavanjima retko dešava da gradijent funkcije u tački iterativnog niza bude jednak nuli, imajući u vidu greške računa i zaokruživanja koje se prostiru kroz račun. Kriterijum zaustavljanja koji je pogodan za praktičnu upotrebu je f(x (k) ) ε, gde je ε > 0 unapred zadati mali pozitivan broj. U svakom koraku iterativnog niza računamo normu gradijenta f(x (k) ) i upored ujemo ga sa zadatim ε > 0. U slučaju da je norma gradijenta manja od ε > 0, iterativni proces se zaustavlja i uzimamo tačku X (k) za približno rešenje problema. Praktičan kriterijum zaustavljanja možemo postaviti i na drugi način. Na primer, u svakom koraku algoritma računamo apsolutnu vrednost razlike funkcije cilja u dve susedne tačke iterativnog niza, tj. f(x (k+1) ) f(x (k) ). Algoritam će se zaustaviti ukoliko dobijena razlika nije veća od unapred zadate male pozitivne vrednosti ε > 0, odnosno kada je ispunjen uslov f(x (k+1) ) f(x (k) ) ε.
8 Zorica Stanimirović Alternativno, možemo posmatrati normu razlike dve susedne tačke iterativnog niza X (k+1) X (k) i zaustaviti iterativni proces ukoliko je gde je ε > 0 unapred zadata vrednost. X (k+1) X (k) < ε, Kriterijum zaustavljanja, umesto apsolutne vrednosti razlike funkcije cilja u dve susedne iteracije, može koristiti i relativnu grešku vrednosti funkcije, te se iterativni proces zaustavlja ukoliko je f(x (k+1) ) f(x (k) ) f(x (k) ) Slično, kriterijum zaustavljanja koji koristi normu razlike X (k+1) X (k), može biti modifikovan na sledeći način X (k+1) X (k) X (k) < ε. Poslednja dva kriterijuma zaustavljanja su nekada pogodniji od ostalih kriterijuma, jer su otporni na skaliranja. Na primer, množenje funkcije cilja nekom konstantom različitom od nule neće promeniti vrednost količnika f(x (k+1) ) f(x (k) ). Takod e, množenje promenljive X nekom konstantom različitom od nule ne menja vrednost količnika X(k+1) X (k) f(x (k) ) koji figuriše u gore X (k) navedenom kriterijumu zaustavljanja. Jedan od problema na koji nailazimo u praktičnim implementacijama metode najbržeg spusta je deljenje nulom, odnosno brojem koji je blizak nuli, što moze dovesti do nagomilavanja računske greške i destabilizovati algoritam. Da bismo to izbegli, kriterijume zaustavljanja možemo modifikovati na sledeći način < ε odnosno f(x (k+1) ) f(x (k) ) max{1, f(x (k) ) } < ε, X (k+1) X (k) max{1, X (k) } < ε. Napomenimo da se svi gore navedeni kriterijumi zaustavljanja mogu koristiti i za druge metode koje spadaju u klasu gradijentnih metoda.
Nelinearno programiranje 9 Primer 1.1 Primenu metode najbržeg spusta ilustrovaćemo na primeru funkcije f : R 2 R definisane sa f(x) = 2x 2 1 + x 2 2 2x 1 x 2 + 12x 1 8x 2, X = [x 1, x 2 ] T R 2. Gradijent funkcije u proizvoljnoj tački X R 2 je f(x) = [4x 1 2x 2 + 12, 2x 2 2x 1 8] T. Najpre postavljamo k = 0 i biramo početnu tačku, npr. X (0) = [0, 0] T. Zatim računamo vrednosti f(x (0) ) = 0 i f(x (0) ) = [12, 8] T. Narednu tačku X (1) odred ujemo po formuli gde je α 0 0 rešenje problema X (1) = X (0) α 0 f(x (0) ), min α 0 g 0 (α) = min α 0 f(x (0) α f(x (0) )) = min α 0 (544α 2 208α). Rešavanjem jednačine g (α) = 1088α 208 = 0 dobijamo α 0 = 13 68, te je X (1) = X (0) 13 68 f(x(0) ) = [ 2.29, 1.83] T. Zatim, postavljamo k = k + 1 i račun sprovodimo na isti način za dobijanje X (2), zatim X (3), X (4), X (5), itd. Iterativni proces se nastavlja do zadovoljenja nekog od kriterijuma zaustavljanja. Primer 1.2 Posmatrajmo funkciju f : R 3 R definisanu sa f(x) = (x 1 4) 4 + (x 2 3) 2 + 4(x 3 + 5) 4, gde je X = [x 1, x 2, x 3 ] R 3. Metodom najbržeg spusta treba približno odrediti tačku minimuma date funkcije. Za kriterijum zaustavljanja možemo koristiti X (k+1) X (k) < ε, gde je euklidska norma u R 3, a ε = 0.1 unapred zadata tačnost. Najpre postavljamo k = 0 i za početnu tačku biramo X (0) = [4, 2, 1] T. Vrednost funkcije u početnoj tački je f(x (0) ) = 1 + 4 5. Kako je gradijent funkcije f u proizvoljnoj tački X R 3 oblika
10 Zorica Stanimirović f(x) = [4(x 1 4) 3, 2(x 2 3), 16(x 3 + 5) 3 ] T, dobijamo da je gradijent u početnoj tački f(x (0) ) = [0, 2, 1024] T. Da bismo odredili sledeću tačku iterativnog niza X (1), potrebno je naći α 0 kao rešenje problema min α 0 f(x (0) α f(x (0) )) = min α 0 [(2 + 2α 3) 2 + 4( 1 1024α + 5) 4 ] = min α 0 g 0 (α). Za približno rešavanje jednačine g 0(α) = 0, α 0, možemo koristiti neku od poznatih metoda za rešavanje nelinearnih jednačina: metodu sečice, regula-falsi, Njutnovu metodu tangente, metodu iteracije, itd (videti [?], [?], [?]). Koristeći metodu sečice, dobijamo približno rešenje odakle je α 0 = 3.967 10 3, X (1) = X (0) α 0 f(x (0) ) = [4.000, 2.008, 5.062] T. Na sličan način odred ujemo i narednu tačku iterativnog niza X (2). Najpre nad imo gradijent u tački X (1) f(x (1) ) = [0, 1.984, 0.003875] T, a zatim metodom sečice približno odredimo rešenje α 1 problema Kako je α 1 = 0.5 dobijamo min α 0 f(x (1) α f(x (1) )). X (2) = [4, 3, 5.060] T. Narednu tačku iterativnog niza X (3) = [4, 3, 5.002] T dobijamo primenom formule X (3) = X (2) α 2 f(x (2) ). Primetimo da je α 2 = 16.29 takod e dobijeno metodom sečice kao približno rešenje problema min α 0 f(x (2) α f(x (2) )). Kako je za tačke X (2) i X (3) ispunjen kriterijum zaustavljanja X (3) X (2) = 0.058 < ε, tačku X (3) = [4, 3, 5.002] T možemo smatrati približnim rešenjem problema minimizacije zadate funkcije f.
Nelinearno programiranje 11 Razmotrimo sada specijalni slučaj bezuslovne optimizacije kvadratne funkcije. Primenimo metoda najbržeg spusta za minimizaciju kvadratne funkcije f : R n R oblika f(x) = 1 2 XT QX b T X, gde je Q realna simetrična, pozitivno definitna matrica reda n i b R n zadati vektor. Kako je gradijent funkcije u proizvoljnoj tački X R n oblika f(x) = QX b, stacionarne tačke se mogu naći izjednačavanjem gradijenta sa nula vektorom. Primetimo da je Hesijan matrica posmatrane kvadratne funkcije F (X) = Q pozitivno definitna za svako X R n, zbog polazne pretpostavke o pozitivnoj definitnosti matrice Q. Uvodeći notaciju f k = f(x (k) ), i g k (α) = f(x (k) αf k ), iterativni niz konstruisan metodom najbržeg spusta za minimizaciju kvadratne funkcije može biti zapisan na sledeći način gde je α k rešenje problema X (k+1) = X (k) α k f k, min α 0 g k (α) = min α 0 f(x (k) αf k ) [ ] 1 = min α 0 2 (X(k) αf k ) T Q(X (k) αf k ) b T (X (k) αf k ). Pretpostavimo da je f k 0. U suprotnom, tj. ako je f k = 0, algoritam se zaustavlja, jer je ispunjen kriterijum zaustavljanja. Kako je α k 0 minimum funkcije g k (α) = f(x (k) αf k ) za α 0, primenjujući NUPR na g k (α) dobijamo Dakle, g k (α k) = 0 ako je 0 = g k(α k ) = (X (k) αf k ) T Q( f k ) b T f k. (X (k) α k f k ) T Qf k = b T f k. Transponovanjem gornje jednakosti dobijamo f T k Q T (X (k) α k f k ) = f T k b,
12 Zorica Stanimirović odnosno što je ekvivalentno sa f T k Q T X (k) α k f T k Q T f k = f T k b, i α k f T k Q T f k = f T k Q T X (k) f T k b α k f T k Q T f k = f T k (Q T X (k) b). Imajući u vidu pretpostavku f k 0 dobijamo α k = f T k (QT X (k) b) f T k QT f k. Kako je matrica Q simetrična i važi f k = QX (k) b, gornja jednakost se svodi na α k = f k T f k fk T Qf. k Konačno, iterativni niz za minimizaciju kvadratne funkcije dobijen metodom najbržeg spusta je gde je f k = f(x (k) ) = QX (k) b. X (k+1) = X (k) f k T f k fk T Qf f k, k Napomenimo da u slučaju n = 2 možemo izvesti eksplicitnu formulu za α k, što prepuštamo čitaocu. Primer 1.3 Primenom metode najbržeg spusta minimizovati funkciju f : R 3 R oblika f(x) = 1 2 XT QX b T X, gde je Q = 1 0 0 0 5 0 0 0 25 i vektor b = [ 1, 1, 1] T. Koristiti kriterijum zaustavljanja f(x (k) ) < ε, gde je euklidska norma, a ε = 10 8 zadata tačnost. Očigledno je Q realna simetrična, pozitivno definitna matrica reda 3. Iterativni niz konstruisan pomoću metode najbržeg spusta ima sledeći oblik X (k+1) = X (k) α k f k,
Nelinearno programiranje 13 gde su α k = f k T f k fk T Qf i f k = f(x (k) ) = QX (k) b. k Uzimajući za početnu tačku X (0) = [0, 0, 0] T, računamo f(x (0) ) = 0, f 0 = f(x (0) ) = [1, 1, 1] T i f(x (0) ) = 1.7321. = 0.0968, te je nova tačka itera- Zatim nalazimo korak spusta α 1 = tivnog niza Za tačku X (1) računamo f T 0 f0 f T 0 Qf 0 X (1) = X (0) α 0 f 0 = [ 0.0968, 0.0968, 0.0968] T. f(x (1) ) = 0.1452, f 1 = f(x (1) ) = [0.9032, 0.5161, 1.4194] T, f(x (1) ) = 1.7598 i α 2 = 0.0590. Sledeća tačka iterativnog niza je X (2) = [ 0.1500, 0.1272, 0.0131] T, za koju važi f(x (2) ) = 0.2365, f(x (2) ) = [0.8500, 0.3639, 0.6732] T i f(x (2) ) = 1.1437. Potrebno je još 216 iteracija do zadovoljenja kriterijuma zaustavljanja. Konačno, X (216) X = [ 1.0000, 0.2000, 0.04] T. Napomenimo da izložena metoda ne gubi na opštosti zbog pretpostavke da je matrica Q simetrična. Naime, za proizvoljnu matricu A, A A T važi (X T AX) T = (AX) T (X T ) T = X T A T X. Sa druge strane, kako je X T AX R, važi (X T AX) T = X T AX, te je (X T AX) T = X T A T X = X T AX. Imajući u vidu gornju jednakost, dobijamo X T AX = 1 2 XT AX + 1 2 XT A T X = 1 2 XT (A + A T )X = 1 2 XT QX,
14 Zorica Stanimirović gde je Q = A + A T simetrična matrica, jer važi Q T = (A + A T ) T = A + A T = Q, Dakle, problem se svodi na prethodno razmatrani slučaj sa simetričnom matricom. U sličaju da je korak spusta α k = α R konstantan za svako k, tada se metoda najbržeg spusta svodi na metodu gradijenta sa konstantnom veličinom koraka ili metodu konstantnog spusta. Ovde je korak spusta konstanta α koja je unapred odred ena i fiksirana, te se iterativni niz dobija na sledeći način: X (k+1) = X (k) αf k, k = 0, 1, 2,... gde je X (0) data početna tačka a f k = f(x (k) ). Metoda konstantnog spusta je jednostavna za implementaciju, ali očigledno će zahtevati više iteracija u odnosu na metodu najbržeg spusta, gde se korak α k odered uje u svakoj iteraciji tako da vrednost funkcije maksimalno opada. Napomenimo da metoda konstantnog spusta ne moze biti uspešna za proizvoljan konstantan korak α, već ga je potrebno odrediti tako da iterativni niz konvergira (lokalnom) optimumu. 1.3 Zadaci za vežbu Zadatak 1.1 Posmatrajmo problem minimizacije kvadratne funkcije f : R 2 R oblika f(x) = 1 2 XT QX b T X, gde je Q realna simetrična, pozitivno definitna matrica reda 2 i b R 2 zadati vektor. Naći eksplicitan izraz za korak spusta α k koristeći metodu najbržeg spusta, a zatim napisati eksplicitnu formulu za konstrukciju iterativnog niza {X (k) }. Da li je moguće uraditi isto za slučaj n = 3? Zadatak 1.2 Koristeći rezultat zadatka 3.1, metodom najbržeg spusta minimizovati funkciju f : R 2 R, definisanu sa a) f(x) = x 2 1 + x 2 2, X = [x 1, x 2 ] T R 2
Nelinearno programiranje 15 b) f(x) = 1 5 x2 1 + x 2 2, X = [x 1, x 2 ] T R 2. Šta se može zakljuǐti o konvergenciji niza {X (k) } u slučajevima a) i b)? Zadatak 1.3 Metodom najbržeg spusta minimizovati funkciju f : R 2 definisanu sa R f(x) = 4x 2 1 + 2x 2 2 + 4x 1 x2 3x 1, X = [x 1, x 2 ] T, počevši od tačke X (0) = [2, 2] T. Koristiti kriterijum zaustavljanja po izboru. Zadatak 1.4 Metodom najbržeg spusta minimizovati funkciju f : R 3 R, definisanu sa f(x) = 1 2 XT QX b T X, X = [x 1, x 2, x 3 ] T, gde je Q = 1 0 0 0 γ 0, vektor b = [1, 1, 1] T i γ realni parametar. 0 0 γ 2 Koristiti kriterijum zaustavljanja f(x (k) ) < ε, gde je euklidska norma, a ε = 10 5 zadata tačnost. Implementirati metodu u nekom programskom jeziku (recimo MATLAB) i posmatrati kako se brzina konvergencije menja za ražičite vrednosti parametra γ. Šta se može zaključiti? Zadatak 1.5 Neka je {X (k) } niz tačaka dobijen metodom najbržeg spusta pri minimizaciji funkcije f : R n R oblika f(x) = 1 2 XT QX b T X, gde je Q pozitivno definitna matrica i b dati vektor. Pokazati da važi f k+1 = f k f k T f k fk T Q f Q f k, k gde je f k = f(x (k) ) i f k+1 = f(x (k+1) ). Zadatak 1.6 Dat je problem bezuslovne optimizacije min X R nf(x), gde je f : R n R realna funkcija. Neka je {X (k) } niz tačaka dobijen metodom najbržeg spusta pri minimizaciji funkcije f.
16 Zorica Stanimirović a) Pokazati da potproblem min p R n p T f(x (k) ) nema konačno rešenje, sem u slučaju kada je f(x (k) ) = 0. b) Ukoliko normiramo vektore p i f(x (k) ), dobijamo sledeći potproblem min p 0 p T f(x (k) ) p f(x (k) ). Rešiti ovaj potproblem koristeći formulu gde je θ ugao izmed u p i f(x (k) ). p T f(x (k) ) = p f(x (k) ) cos θ, Zadatak 1.7 Posmatrajmo problem minimizacije funkcije f : R n R min X R nf(x) = 1 2 XT QX b T X, gde je Q pozitivno definitna matrica i b dati vektor. Neka je X minimum ove funkcije, λ sopstvena vrednost matrice Q i v odgovarajući sopstveni vektor. Neka je početna tačka metode najbržeg spusta X (0) = X + v. a) Pokazati da je gradijent u tački X (0) jednak f(x (0) ) = λv. b) Pokazati da pri primeni metode najbržeg spusta korak α 0 koji minimizuje funkciju u pravcu vektora f(x (0) ) ima vrednost α 0 = 1 λ. c) Pokazati da pri primeni metode najbržeg spusta postoji korak α koji minimizuje funkciju u pravcu negativnog gradijenta i dovodi do minimuma funkcije u jednom koraku. d) Potvrditi dobijene rezultate za funkciju f(x) = 3x 2 1 2x 1 x 2 + 3x 2 2 + 2x 1 6x 2, X = [x 1, x 2 ] T. Za početnu tačku uzeti X (0) = [1, 2] T. Pokazati da je tačka dobijena u jednoj iteraciji koristeći korak dobijen kao rezultat iz c). Pokazati da je ta tačka jedinstven minimum X. Da li je X (0) X sopstveni vektor Hesijan matrice?
Nelinearno programiranje 17 Zadatak 1.8 Neka je iterativni niz {X (k) } dobijen gradijentnom metodom pri minimizaciji funkcije f : R n R na sledeći način X (k+1) = X (k) + α k d k, gde su d 1, d 2, d 3,... zadati vektori iz R n, a vrednosti α k odred ene tako da minimizuju vrednost funkcije f(α) = f(x (k) + αd k ), α 0. Pokazati da je za svako k vektor X (k+1) X (k) ortogonalan na f(x (k+1) ), pod pretpostavkom da gradijent u tački X (k+1) postoji. Zadatak 1.9 Neka je funkcija f : R n R zadata sa f(x) = 1 2 XT QX b T X, gde je Q realna, simetrična, pozitivno definitna matrica reda n i b R n dati vektor. Posmatrajmo iterativni niz dobijen gradijentnom metodom pri minimizaciji funkcije f, definisan sa X (k+1) = X (k) α k f k, gde je f k = QX (k) b gradijent funkcije f u tački X (k), a α k veličina koraka spusta, k = 0, 1, 2,.. Pokazati da gornji algoritam ima svojstvo opadanja, odnosno da važi f(x (k+1) ) < f(x (k) ), kad god je f k 0, ako i samo ako je α k > 0 za svako k. Zadatak 1.10 Neka je funkcija f : R n R zadata sa f(x) = 1 2 XT QX b T X, gde je Q realna, simetrična, pozitivno definitna matrica reda n i b R n dati vektor. Posmatrajmo iterativni niz dobijen metodom najbržeg spusta za minimizaciju funkcije f X (k+1) = X (k) α k f k, gde je f k = QX (k) b gradijent funkcije f u tački X (k), a α k minimum funkcije g k (α) = f(x (k) αf k ), α 0. Neka za početnu tačku X (0) iterativnog niza važi X (0) Q 1 b. Pokazati da iterativni niz konvergira u jednom koraku, tj. X (1) = Q 1 b ako i samo ako je tačka X (0) izabrana tako da je f 0 = QX (0) b sopstveni vektor matrice Q.
18 Zorica Stanimirović 1.4 Opšti uslovi konvergencije gradijentne metode Za iterativni algoritam kažemo da konvergira u globalnom smislu, odnosno da je globalno konvergentan, ukoliko za proizvoljnu početnu tačku iterativnog niza algoritam generiše konvergentan niz, čija je granična vrednost tačka koja zadovoljava NUPR za lokalni minimum. Može se desiti da algoritam ne konvergira u globalnom smislu, ali da ipak generiše niz koji konvergira ka tački koja ispunjava NUPR, pod uslovom da je početna tačka iterativnog niza dovoljno bliska njegovoj graničnoj vrednosti. U tom slučaju, kažemo da algoritam konvergira u lokalnom smislu, odnosno da je lokalno konvergentan. Postavlja se pitanje kako izabrati početnu tačku iterativnog niza, odnosno koliko blizu treba prići rešenju da bismo započeli pretragu? Odgovor na ovo pitanje nije jednostavan i zavisi od osobina lokalne konvergencije algoritma. Jedan od parametara koji opisuje lokalnu i globalnu konvergenciju algoritma je njegova brzina konvergencije, odnosno broj potrebnih iteracija da algoritam da dod e do rešenja koje zadovoljava unapred zadatu tačnost. U ovoj sekciji razmatraćemo konvergenciju opšte gradijentne metode, pri čemu će posebna pažnja biti posvećena konvergenciji metode najbržeg spusta. Radi jednostavnosti, analiziraćemo konvergenciju gradijentne metode pri minimizaciji kvadratne funkcije oblika f(x) = 1 2 XT QX b T X, X R n, gde je Q simetrična, pozitivno definitna matrica reda n i b R n dati vektor. Radi jednostavnije analize konvergencije kvadratne funkcije f, definišimo pomoćnu funkciju G : R n R na sledeći način G(X) = f(x) + 1 2 (X ) T QX = 1 2 (X X ) T Q(X X ), gde je X rešenje problema QX = b. Kako je G(X) f(x) = 1 2 (X ) T QX, a X fiksirana tačka, problem minimizacije funkcije G je ekvivalentan problemu minimizacije funkcije f. Za ocenu brzine konvergencije koristićemo razliku f(x (k) ) f(x ) umesto X (k) X, jer je analiza jednostavnija. Može se pokazati da f(x (k) ) f(x ) i X (k) X konvergiraju istom brzinom (videti zadatke za vežbu). Kako je X = Q 1 b, odnosno QX = b, imamo da je
Nelinearno programiranje 19 ( ) ( ) 1 1 f(x (k) ) f(x ) = 2 (X(k) ) T QX (k) b T X (k) 2 (X ) T QX b T X = 1 ( ) 1 2 (X(k) ) T QX (k) (QX ) T X (k) 2 (X ) T QX (QX ) T X = 1 2 (X(k) ) T QX (k) (X ) T QX (k) ( 1 2 (X ) T QX (X ) T QX ) = 1 2 (X(k) ) T QX (k) (X ) T QX (k) + 1 2 (X ) T QX = 1 2 (X(k) X ) T Q(X (k) X ) = G(X (k) ). Konvergenciju ćemo pokazati koristeći pomoćnu funkciju G(X) i naredne dve leme. Lema 1.3 Neka je {X (k) } iterativni niz konstruisan gradijentnom metodom pri minimizaciji funkcije f(x) = 1 2 XT QX b T X, gde je Q simetrična, pozitivno definitna matrica reda n i b R n dati vektor. Kako je niz {X (k) } definisan sa X (k+1) = X (k) α k f k, gde je f k = f(x (k) ) = QX (k) b, tada važi sledeća veza: Pri tome, važe sledeća tvrd enja: G(X (k+1) ) = (1 γ k )G(X (k) ). a) ukoliko je f k = 0, tada je γ k = 1; ( ) f b) ukoliko je f k 0, tada je γ k = α T k Qf k k fk T Q 1 f k 2 f T k f k fk T Qf α k ; k c) ukoliko je niz {X (k) } dobijen primenom metode najbržeg spusta, tada je γ k = (f T k f k) 2 (f T k Q 1 f k )(f T k Qf k). Dokaz. Ukoliko je f k = 0, tvrd enje leme pod a) je očigledno. Pretpostavimo da je f k 0. Radi lakšeg zapisa uvedimo oznaku Z (k) = X (k) X, k = 0, 1, 2,... Tada je G(X (k) ) = 1 2 (Z(k) ) T QZ (k).
20 Zorica Stanimirović Dalje, važi G(X (k+1) ) = 1 (X (k+1) X ) T Q (X (k+1) X ) 2 = 1 ) T ) (X (k) X α k f k Q (X (k) X α k f k 2 = 1 2 (Z(k) ) T QZ (k) α k f T k QZ (k) + 1 2 α2 kf T k Qf k, odakle se jednostavnim računanjem dobija S obzirom da je dobijamo sledeće veze G(X (k) ) G(X (k+1) ) G(X (k) ) = 2α kf T k QZ(k) α 2 k f T k Qf k (Z (k) ) T QZ (k). f k = QX (k) b = QX (k) QX = QZ (k), (Z (k) ) T QZ (k) = f T k Q 1 f k i f T k QZ (k) = f T k f k. Zamenjujući dobijene izraze, lako se izvodi da je γ k = G(X(k) ) G(X (k+1) ) G(X (k) ) fk T = α Qf ( k k fk T 2 f k T f ) k Q 1 f k fk T Qf α k, k što je i trebalo pokazati u delu pod b). Dokaz dela pod c) prepuštamo čitaocu. Primetimo da je γ k 1, jer je γ k = 1 G(X(k+1) ), a G(X) je nenegativna G(X (k) ) funkcija, imajuću vidu da je Q pozitivno definitna matrica. Ako je γ k = 1 za neko k, tada je G(X (k+1) ) = 0, što je ekvivalentno sa X (k+1) = X. U tom slučaju, za svako i k + 1 važi X (i) = X i γ i = 1. U slučaju metode najbržeg spusta, pokazuje se da γ k = 1 ako i samo ako je f k = 0 ili je f k sopstveni vektor matrice Q. To će biti pokazano kroz naredne dve leme. Lema 1.4 Neka je niz {X (k) } dobijen primenom metode najbržeg spusta na minimizaciju kvadratne funkcije f(x) = 1 2 XT QX b T X. Ako je f k 0 za svako k, tada je γ k = 1 ako i samo ako je f k sopstveni vektor matrice Q.
Nelinearno programiranje 21 Dokaz. Neka je f k 0 za svako k. : Ako je f k sopstveni vektor matrice Q, imajući u vidu Lemu 1.3, prema kojoj je (fk T γ k = f k) 2 (fk T Qf k)(fk T Q 1 f k ), lako se pokazuje da je γ k = 1. : Pretpostavimo da je γ k = 1. Tada, prema Lemi 1.3 sledi G(X (k+1) ) = 0, što znači da je X (k+1) = X. Dalje, imamo da je X = X (k) α k f k. Množeći dobijenu jednakost sa matricom Q i oduzimajući b sa obe strane dobijamo: QX b = QX (k) α k Qf k b, odnosno Iz poslednje jednakosti direktno sledi 0 = f k α k Qf k. Qf k = 1 α k f k, što znači da je f k sopstveni vektor matrice Q koji odgovara sopstvenoj vrednosti 1 α k. Lema 1.5 Neka je niz {X (k) } dobijen primenom metode najbržeg spusta na minimizaciju kvadratne funkcije f(x) = 1 2 XT QX b T X. Tada je γ k = 1 ako i samo ako je f k = 0 ili je f k sopstveni vektor matrice Q. Dokaz. Sledi direktno na osnovu prethodnih lema. Prepuštamo čitaocu formalno izvod enje dokaza. Sada ćemo formulisati i dokazati ključnu teoremu za konvergenciju gradijentne metode. Teorema koja sledi daje neophodne i dovoljne uslove za konvergenciju niza {X (k) } konstruisanog gradijentnom metodom pri minimizaciji kvadratne funkcije, tj. lim k X (k) = X, gde je X rešenje problema min R nf(x), f(x) = 1 2 XT QX b T X, Dakle, naredna teorema važi i za metodu najbržeg spusta i za metodu konstantnog spusta, o kojima je bilo reči ranije.
22 Zorica Stanimirović Teorema 1.1 Neka je {X (k) } iterativni niz konstruisan gradijentnom metodom pri minimizaciji funkcije f(x) = 1 2 XT QX b T X, gde je Q simetrična, pozitivno definitna matrica reda n i b R n dati vektor. Niz {X (k) } je definisan sa X (k+1) = X (k) α k f k, gde je f k = f(x (k) ) = QX (k) b. Neka je γ k definisano kao u Lemi 3.3 i pretpostavimo da je γ k > 0 za svako k. Pod navedenim pretpostavkama, X (k) X, k za svaki početni vektor X (0) ako i samo ako važi γ k =. k=0 Dokaz. Pretpostavimo da je γ k < 1 za svako k. Ukoliko je γ k = 1 za neko k, dokaz teoreme je trivijalan. Primetimo da X (k) X, k ako i samo ako G(X (k) ) 0, k. Sa druge strane, na osnovu Leme 1.3, imamo da je odakle dobijamo G(X (k+1) ) = (1 γ k ) G(X (k) ), G(X (k) ) = ( k 1 i=0 (1 γ i ) ) G(X (0) ). Imajući u vidu dobijenu jednakost, zaključujemo da je G(X (k) ) 0, k (1 γ i ) = 0 i=0 ln(1 γ i ) =. i=0 Primetimo da, prema pretpostavci teoreme, važi γ i < 1, odnosno 1 γ i > 0, što znači da je logaritam ln(1 γ i ) dobro definisan za svako i. Prema tome, da bismo dokazali tvrd enje teoreme, ostaje još da pokažemo da važi sledeća elvivalencija ln(1 γ i ) = γ i =. i=0 i=0
Nelinearno programiranje 23 : Pretpostavimo da je γ i = i dokažimo da važi ln(1 γ i ) =. i=0 Podsetimo se da za proizvoljno x R, x > 0 važi ln(x) x 1. Dakle, ln(1 γ i ) (1 γ i ) 1 = γ i, odakle je ln(1 γ i ) γ i. Kako je γ i =, jasno je da važi ln(1 γ i ) =. i=0 i=0 : Neka je ln(1 γ i ) = i dokažemo da važi γ i =. Pretpostavimo suprotno, tj. i=0 da je γ i <. Tada mora biti γ i 0, počev od nekog i. i=0 Dalje, primetimo da za x R, x 1, koje je dovoljno blisko jedinici važi ln(x) 2(x 1). Dakle, za dovoljno veliko i važi i=0 ln(1 γ i ) 2(1 γ i 1) = 2γ i, što dalje povlači da je ln(1 γ i ) 2γ i, za dovoljno veliko i. Najzad, iz γ i < sledi ln(1 γ i ) <, što je u kontradikciji sa polaznom pretpostavkom. i=0 Dokazom ekvivalencije je i dokaz Teoreme 1.1 završen. Sada ćemo formulisati nekoliko lema koje će nam biti potrebne za ispitivanje konvergencije gradijentne metode, i specijalno, metode najbržeg spusta. Dokaze lema prepuštamo čitaocu. Lema 1.6 Rejlijeva nejednakost 2. Za svaku simetričnu, pozitivno definitnu matricu Q i proizvoljan vektor X R n važi i=0 λ min (Q) X 2 X T QX λ max (Q) X 2, gde je λ min (Q) najmanja, a λ max (Q) najveća sopstvena vrednost matrice Q. Lema 1.7 Neka je Q proizvoljna simetrična, pozitivno definitna matricu Q i λ min (Q) najmanja, a λ max (Q) najveća sopstvena vrednost matrice Q. Tada važi 2 John William Strutt Lord Rayleigh (1842 1919) i=0
24 Zorica Stanimirović a) λ min (Q 1 ) = 1 λ max(q), b) λ max (Q 1 ) = 1 λ min(q), c) λ min (Q 1 ) X 2 X T Q 1 X λ max (Q 1 ) X 2, za svako X R n. Lema 1.8 Za svaku realnu, simetričnu, pozitivno definitnu matricu Q i proizvoljan vektor X R n, X 0 važi λ min (Q) λ max (Q) (X T X) 2 (X T QX)(X T Q 1 X) λ max(q) λ min (Q), gde je λ min (Q) najmanja, a λ max (Q) najveća sopstvena vrednost matrice Q. Lema 1.9 Za svaku pozitivno definitnu matricu Q i proizvoljan vektor X R n, X 0 važi (X T X) 2 [ ] 2 cond(q) 1 (X T QX)(X T Q 1 X) 1, cond(q) + 1 gde je cond(q) uslovljenost matrice Q. Podsetimo se da se uslovljenost matrice Q definiše kao cond(q) = Q Q 1 i da važi cond(q) = λmax(q) λ. min(q) Sada možemo formulisati teoremu o konvergenciji metode najbržeg spusta. Teorema 1.2 Neka je {X (k) } iterativni niz konstruisan metodom najbržeg spusta pri minimizaciji kvadratne funkcije f(x) = 1 2 XT QX b T X, gde je Q simetrična, pozitivno definitna matrica reda n i b R n dati vektor. Tada važi za proizvoljni izbor početne tačke X (0). X (k) X, k Dokaz. Ukoliko je f k = f(x (k) ) = 0 za neko k, tada je X (k) = X i tvrd enje teoreme važi. Zato pretpostavimo da je f k 0 za svako k. Podsetimo se da je kod metode najbržeg spusta pri minimizaciji kvadratne funkcije, korak α k eksplicitno odred en izrazom α k = f k T f k fk T Qf. k
Nelinearno programiranje 25 Zamenjujući α k u formulu za γ k, dobijamo γ k = (f T k f k) 2 (f T k Qf k)(f T k Q 1 f k ). Kako je matrica Q pozitivno definitna, iz gornjeg izraza sledi γ k > 0 za svako k. Dalje, prema Lemi 1.8 imamo da je Prema tome, važi γ k λ min(q) λ max (Q) > 0. k=0 γ k =. Imajući u vidu tvrd enje Teoreme 1.1, zaključujemo da X (k) X, k za proizvoljno X (0), što je i trebalo dokazati. Naredna teorema se odnosi na konvergenciju gradijentne metode sa konstantnim korakom spusta. Teorema 1.3 Neka je {X (k) } iterativni niz konstruisan metodom konstantnog spusta pri minimizaciji kvadratne funkcije f(x) = 1 2 XT QX b T X, gde je Q simetrična, pozitivno definitna matrica reda n i b R n dati vektor. Tada X (k) X, k za proizvoljno X (0), ako i samo ako za konstantni korak spusta α važi 0 < α < 2 λ max (Q). Dokaz. : Ako u Rejlijevoj nejednakosti (Lema 1.6) stavimo X = f k, dobijamo λ min (Q)f T k f k f T k Qf k λ max (Q)f T k f k, odakle, prema Lemi 1.7, sledi f T k Q 1 f k f T k f k λ min (Q). Zamenjujući dobijene nejednakosti u formulu za γ k dobijamo ( ) γ k αλ min (Q) 2 2 λ max (Q) α > 0,
26 Zorica Stanimirović te je γ k > 0 za svako k i γ k =. Imajući u vidu Teoremu 1.1, zaključujemo k=0 da X (k) X, k za proizvoljno X (0). : Pretpostavimo suprotno, tj. da važi α 0 ili α 2 λ max (Q). Izaberimo početnu tačku X (0) tako da je X (0) X sopstveni vektor matrice Q koji odgovara sopstvenoj vrednosti λ max (Q). Kako je dobijamo X (k+1) = X (k) α(qx (k) b) = X (k) α(qx (k) QX ), X (k+1) X = X (k) X α(qx (k) QX ) = (I n αq)(x (k) X ) = (I n αq)(i n αq)(x (k 1) X ) =... = (I n αq) k+1 (X (0) X ). S obzirom da je X (0) X sopstveni vektor matrice Q koji odgovara sopstvenoj vrednosti λ max (Q), važi odakle je (I n αq) k+1 (X (0) X ) = (1 αλ max (Q)) k+1 (X (0) X ), X (k+1) X = (1 αλ max (Q)) k+1 (X (0) X ). Normirajući poslednju jednakost, koristeći euklidsku normu, dobijamo X (k+1) X = 1 αλ max (Q) k+1 X (0) X. 2 Kako je po pretpostavci α 0 ili α λ max (Q), iz poslednje jednakosti sledi 1 αλ max (Q) 1, što znači da niz X (k+1) X ne može konvergirati ka 0. Dakle, pod polaznim pretpostavkama, niz {X (k) } ne konvergira ka X. Kontradikcija. 1.5 Brzina konvergencije gradijentne metode U ovoj sekciji razmatramo brzinu konvergencije gradijentne metode, sa posebnim osvrtom na metodu najbržeg spusta.
Nelinearno programiranje 27 Teorema 1.4 Neka je metoda najbržeg spusta primenjena na minimizaciju kvadratne funkcije G(X) = 1 2 (X X ) T Q(X X ), gde je Q simetrična, pozitivno definitna matrica reda n, b R n dati vektor i X rešenje jednačine QX = b. Tada za niz {X (k) }, dobijen metodom najbržeg spusta, važi G(X (k+1) ) λ max(q) λ min (Q) G(X (k) ). λ max (Q) Dokaz. Prilikom dokazivanja Teoreme 1.2 pokazali smo da važi nejednakost Prema tome, važi γ k λ min(q) λ max (Q). što je i trebalo dokazati. G(X (k) ) G(X (k+1) ) G(X (k) ) = γ k λ min(q) λ max (Q), Ako uvedemo oznaku c = cond(q), primetimo da važi 1 c +. Dalje, iz Teoreme 1.4 direktno sledi naredna posledica. Posledica 1.1 Ako važe pretpostavke Teoreme 1.4, tada je G(X (k+1) ) ( 1 1 ) G(X (k) ). c Veličina r = 1 1 c, ima ključnu ulogu u konvergenciji niza {G(X(k) )} ka 0, odnosno konvergenciji niza {X (k) } ka X, i nazivamo je radijusom konvergencije. Za manje vrednosti r, vrednost G(X (k+1) ) će biti manja u odnosu na G(X (k) ), i prema tome, niz {G(X (k) )} će brže konvergirati ka 0, a samim tim će i niz {X (k) } brže konvergirati ka X. opada kako c opada. Dalje, primetimo da radijus konvergencije r = 1 1 c Ukoliko je c = 1, odnosno λ max (Q) = λ min (Q), tada algoritam u jednom koraku konvergira tački minimuma. Sa porastom vrednosti c, niz {G(X (k) )} brže konvergira ka 0, odnosno niz {X (k) } brže konvergira ka X. Navodimo još jednu posledicu Teoreme 3.4.
28 Zorica Stanimirović Posledica 1.2 Neka je niz {X (k) } dobijen primenom metode najbržeg spusta na minimizaciju kvadratne funkcije f(x) = 1 2 XT QX b T X, gde je Q simetrična, pozitivno definitna matrica reda n i b R n dati vektor. Za proizvoljni izbor početne tačke X (0), iterativni niz {X (k) } konvergira ka minimumu X funkcije f i pri tom važi f(x (k+1) ) f(x ) ( ) 2 cond(q) 1 (f(x (k) ) f(x )), cond(q) + 1 odnosno, metoda najbržeg spusta u ovom slučaju konvergira linearno. Dokaz. Posledica 1.2 direktno sledi iz dela pod c) Leme 1.3 i Leme 1.9. Kako ( ) 2 je veličina cond(q) 1 cond(q)+1 0 konstantna i strogo manja od jedan, tada metoda konvergira počevši od bilo koje tačke X (0). Definicija 1.1 Neka niz {X (k) } konvergira ka X kad k, odnosno neka je lim k X (k) X = 0. Kažemo da je red konvergencije niza {X (k) } jednak p, gde je p R ukoliko važi Ako za svako p R, p > 0 važi X (k+1) X 0 < lim k X (k) X <. p X (k+1) X lim k X (k) X = 0, p tada kažemo da je red konvergencije. Primetimo da je red konvergencije mera brzine konvergencije, tj. veći red konvergencije povlači i veću brzinu konvergencije i obratno. Zbog toga se u literaturi ova dva pojma često poistovećuju (videti [?]). Ako je p = 1, kažemo da je konvergencija linearna, odnosno da je u pitanju konvergencija prvog reda. Ako je p = 2 kažemo da je konvergencija kvadratna, odnosno da je u pitanju konvergencija drugog reda. Red konvergencije se može definisati koristeći pojam velikog O. Kažemo da je A = O(h), odnosno A je veliko O od h, ako postoji nenegativna konstanta a R takva da je A a h za dovoljno malo h. Dalje, kažemo da je red konvergencije najmanje p ako važi X (k+1) X = O( X (k) X p ),
Nelinearno programiranje 29 o čemu preciznije govori naredna teorema. najmanje 2, ukoliko je Na primer, red konvergencije je X (k+1) X = O( X (k) X 2 ). Teorema 1.5 Neka je {X (k) } niz koji konvergira ka X kad k. Ako je tada je red konvergencije najmanje p. X (k+1) X = O( X (k) X p ), Dokaz. Neka je s red konvergencije niza {X (k) } i neka je X (k+1) X = O( X (k) X p ). Tada postoji konstanta a R, a 0 takva da za dovoljno veliko k važi X (k+1) X X (k) X p a. Dalje je X (k+1) X X (k) X s = X(k+1) X X (k) X p a X (k) X p s. Puštajući da u gornjoj nejednakosti k dobijamo X(k) X p s X (k+1) X lim k X (k) X a lim s k X(k) X p s > 0. Kako je po pretpostavci s red konvergencije {X (k) }, imamo da je X (k+1) X lim k X (k) X > 0. s Imajući u vidu poslednje dve nejednakosti dobijamo a lim k X(k) X p s > 0. S obzirom da je lim k X (k) X = 0, zaključujemo da važi s p, te je red kovergencije najmanje p. Dalje možemo pokazati da red konvergencije proizvoljnog konvergentnog niza ne može biti manji od jedan.
30 Zorica Stanimirović Teorema 1.6 Neka je {X (k) } niz konstruisan metodom najbržeg spusta pri minimizaciji proizvoljne funkcije f : R n R. Tada je red konvergenije u najgorem slučaju 1, odnosno, postoji funkcija f i tačka X (0) tako da je red konvergencije niza {X (k) } jednak 1. Dokaz. Neka je f : R n R kvadratna funkcija sa Hesijan matricom Q i {X (k) } niz konstruisan metodom najbržeg spusta pri minimizaciji ove kvadratne funkcije. Neka su λ max (Q) i λ min (Q) najveća, odnosno najmanja sopstvena vrednost matrice Q respektivno. Pretpostavimo da važi λ max (Q) > λ min (Q). Da bismo pokazali da je red konvergencije niza {X (k) } jednak 1, dovoljno je pokazati da postoji X (0) takvo da je X (k+1) X c X (k) X za neko c > 0. Prema Lemi 1.6 (Rejlijeva nejednakost) važi G(X (k+1) ) = 1 2 (X(k+1) X ) T Q(X (k+1) X ) Na sličan način pokazujemo da je λ max(q) X (k+1) X 2. 2 G(X (k) ) λ min(q) X (k) X 2. 2 Kombinujući dobijene nejednakosti sa Lemom 1.3, zaključujemo da važi X (k+1) X (1 γ k ) λ min(q) λ max (Q) X(k) X. Dakle, dovoljno je izabrati X (0) tako da je γ k d za neko d < 1. Podsetimo se da za algoritam najbržeg spusta, pod pretpostavkom da f k 0 za svako k, vrednosti γ k zavise od gradijenata f k na sledeći način γ k = (f T k f k) 2 (f T k Q 1 f k )(f T k Qf k). Razmotrimo najpre slučaj n = 2. Neka je početna tačka X (0) X izabrana tako da (X (0) X ) 0 nije sopstveni vektor matrice Q. Tada f 0 = Q(X (0) X ) 0 takod e nije sopstveni vektor matrice Q. Iz Leme 1.1 sledi da ni gradijent
Nelinearno programiranje 31 f k = 1 α k (X (k+1) X (k) ) nije sopstveni vektor matrice Q za bilo koje k, jer su sopstveni vektori v 1 i v 2, koji odgovaraju sopstvenim vrednostima λ max (Q) i λ min (Q) respektivno, uzajamno ortogonalni. Pri tom, pravac f k je jednak jednom od dva uzajamno ortogonalna pravca odred ena vektorima v 1 i v 2. Imajući u vidu Leme 1.5 i 1.6, važi sledeće: ako f k nije sopstveni vektor matrice Q, tada γ k < 1. Dalje, prema Lemi 1.3, sledi da je za svako k vrednost γ k jednaka vrednosti izraza koji je strogo manji od 1. Dakle, u slučaju n = 2 tvrd enje teoreme važi. Razmotrimo sada opšti slučaj n 2. Neka su v 1 i v 2 uzajamno ortogonalni sopstveni vektori koji odgovaraju sopstvenim vektorima λ max (Q) i λ min (Q), respektivno. Izaberimo početnu tačku X (0) tako da vektor (X (0) X ) 0 leži u prostoru koji razapinju vektori v 1 i v 2, ali je (X (0) X ) v 1, v 2. Tada i vektor f 0 = Q(X (0) X ) leži u prostoru koji razapinju v 1 i v 2 i važi f 0 v 1, v 2. Kako je X (k+1) = X (k) α k f k zaključujemo da je f k+1 = (I α k Q)f k, što znači da je svaki sopstveni vektor matrice Q istovremeno i sopstveni vektor matrice I α k Q. Dakle, za svako k, vektor f k leži u prostoru koji razapinju v 1 i v 2. Dokaz se dalje svodi na slučaj n = 2 koji je prethodno dokazan. Primer 1.4 Posmatrajmo problem minimizacije funkcije iz Primera 1.3. Uslovljenost matrice Q u ovom primeru je cond(q) = 25. Kako je f(x (k+1) ) f(x ) ( ) 2 cond(q) 1 (f(x (k) ) f(x )), cond(q) + 1 f(x (k+1) ) f(x ( ) 2 ) = G(X(k+1) ) cond(q) 1, f(x (k) ) f(x ) G(X (k) ) cond(q) + 1 ( ) 2 i odnos c 1 = cond(q) 1 cond(q)+1 = 0.8521 je konstantan i strogo manji od jedan, zaključujemo da metoda konvergira počeši od bilo koje tačke X (0). U Tabeli 1.1 prikazane su vrednosti f(x (k) ), G(X(k+1) ) G(X (k) ), kao i vrednost c 1, koja predstavlja gronju granicu količnika G(X(k+1) ). Primetimo da vrednost G(X (k) ) c 1 zavisi samo od uslovljenosti matrice Q, odnosno cond(q). Iz Tabele 1.1 možemo videti da su vrednosti G(X(k+1) ) iz druge kolone zaista ograničene sa G(X (k) ) gornje strance sa c 1, za svako k. Dakle, vrednost c 1 možemo posmatrati kao
32 Zorica Stanimirović Tablica 1.1: Brzina konvergencije f(x (k) ) G(X (k+1) ) G(X (k) ) c 1 0-0.8521-0.1452 0.7659 0.8521-0.2365 0.8077 0.8521-0.3038 0.8246 0.8521-0.3560 0.8348 0.8521-0.3988 0.8379 0.8521-0.4343 0.8397 0.8521-0.4640 0.8401 0.8521-0.4889 0.8404 0.8521-0.5098 0.8405 0.8521-0.5274 0.8405 0.8521 Tablica 1.2: Zavisnost c 1 od cond(q) cond(q) c 1 1 0 10 0.669421 100 0.960788 1000 0.996008 10000 0.999600 100000 0.999960 1000000 0.999996 gornju granicu brzine konvergencije, koja zavisi od matrice Q, odnosno njene uslovljenosti cond(q). U Tabeli 1.2 prikazane su vrednosti gornje granice brzine konvergencije c 1 za različite vrednosti uslovljenosti matrice Q. Primetimo da je i za srednje vrednosti cond(q) granica bliska jedinici. Jedino u slučajevima kada je cond(q) otprilike manje od 50, metoda konvergira dovoljno brzo da bi bio od praktičnog značaja. Već za vrednost cond(q) = 100, konvergencija je znatno sporija. U ovom slučaju, pri primeni metode najbržeg spusta zagarantovano je poboljšanje od oko 4% pri svakoj iteraciji.
Nelinearno programiranje 33 Slika 1.4: Konvergencija za cond(q) = 1.15 Na Slici 1.4 ilustrovana je primena metode najbržeg spusta na minimizaciju kvadratne funkcije sa Hesijan matricom Q, čija je uslovljenost cond(q) = 1.15 1. U ovom slučaju, gornja granica brzine konvergencije c 1 je bliska nuli, te metoda brzo konvergira, što je u skladu sa iznesenim teorijskim rezultatima. Slika 1.5: Konvergencija za cond(q) = 45 Med utim, u slučajevima kada je cond(q) uzima veće vrednosti, gornja granica brzine konvergencije c 1 značajno raste te metoda sporo konvergira (videti Tabelu 1.2). Slučaj cond(q) = 45 je ilustrovan na Slici 1.5. Teorema o konvergenciji koja je data u ovom poglavlju odnosi se samo na slučaj kvadratne funkcije. Za proizvoljnu nelinearnu funkciju moguće je pokazati da metoda najbržeg spusta takod e konvergira linearno, sa brzinom konvergencije
34 Zorica Stanimirović koja je ograničena sa gornje strane sa c 1 = ( ) 2 cond(q) 1, cond(q) + 1 gde je Q Hesijan matrica posmatrane funkcije f. Dakle, metoda najbržeg spusta se ponaša slično kao u slučaju kvadratne funkcije. Primer 1.5 Posmatrajmo problem minimizacije funkcije f : R R zadate sa f(x) = x 2 x3 3. Primenimo gradijentnu metodu sa konstantnim korakom α = 1 2. Iterativni niz je definisan sa x (k+1) = x (k) αf (x (k) ) = 1 2 (x(k) ) 2. Uzimajući za početnu tačku x (0) = 1, može se izvesti da je x (k) = 1 2 2 k 1. Očigledno je da algoritam konvergira ka tački x = 0, kad k, koja predstavlja lokalni minimum funkcije f. Kako je x (k+1) x (k) 2 = 1 2, zaključujemo da je red konvergencije metode 2. 1.6 Zadaci za vežbu Zadatak 1.11 Posmatrajmo problem minimizacije funkcije f : R 2 R, definisane sa f(x) = x 2 1 + 2x 2 2, X = [x 1, x 2 ] T, koristeći metodu najbržeg spusta. a) Ako je početna tačka X (0) = [2, 1] T, pokazati da je niz tačaka {X (k) } generisan metodom najbržeg spusta oblika X (k) = ( ) k [ 1 3 2 ( 1) k ].
Nelinearno programiranje 35 b) Pokazati da je f(x (k+1) ) = 1 9 f(x(k) ). c) Šta se može zaključiti o brzini konvergencije metode? Uporediti red konvergencije dobijenog niza sa redom konvergencije niza generisanog pri minimizaciji kvadratne funkcije metodom najbržeg spusta. Zadatak 1.12 Posmatrajmo problem minimizacije funkcije f : R 2 R zadate sa f(x) = 4x 2 1 + x 2 2, X = [x 1, x 2 ] T metodom najbržeg spusta. a) Ako je početna tačka X (0) = [1, 4] T, pokazati da je niz tačaka {X (k) } generisan metodom najbržeg spusta oblika [ ] X (k) = (0.6) k ( 1) k. 4 b) Odrediti tačku minimuma X funkcije f. c) Odrediti red konvergencije niza {f(x (k) ) f(x )}. Zadatak 1.13 Data je funkcija f : R 2 R, definisana sa f(x) = 3(x 2 1 + x 2 2) + 4x 1 x 2 + 5x 1 + 6x 2 + 7, X = [x 1, x 2 ] T. Neka je niz {X (k) } dobijen metodom konstantnog spusta pri minimizaciji funkcije f oblika X (k+1) = X (k) α f(x (k) ). Odrediti najveću vrednost α za koju je metoda globalno konvergentna. Zadatak 1.14 Data je funkcija f : R 2 R izrazom f(x) = 3 2 (x2 1 + x 2 2) + (1 + a)x 1 x 2 x 1 x 2 + b, X = [x 1, x 2 ] T, gde su a i b realni parametri. a) Zapisati funkciju f u obliku kvadratne forme. b) Odrediti najveće vrednosti parametara a i b za koje postoji jednistvena tačka globalnog minimuma posmatrane funkcije f.
36 Zorica Stanimirović c) Naći tačku globalnog minimuma X u funkciji od a i b. Zadatak 1.15 Posmatrajmo funkciju f : R 2 R definisanu u Zadatku 1.14. Neka je niz {X (k) } dobijen gradijentnom metodom sa konstantim korakom α = 2 5, odnosno X (k+1) = X (k) 2 5 f(x(k) ). Odrediti najveće vrednosti parametara a i b za koje algoritam konvergira ka jednistvenom globalnom minimumu funkcije f za proizvoljni izbor početne tačke X (0).