UNIVERZITET U NIŠU PRIRODNO-MATEMATIČKI FAKULTET DEPARTMAN ZA RAČUNARSKE NAUKE Master rad Optimizacija u programskom paketu MATHEMATICA i primene Student: Dalibor Spasić Mentor: Prof. dr Predrag Stanimirović Niš, 2013.
Sadržaj 1 Formulacija optimizacionih problema 3 1.1 Problem optimizacije........................... 3 1.1.1 Projektovanje zgrade....................... 3 1.1.2 Opis podataka........................... 6 1.2 Standardna forma optimizacionog problema.............. 7 1.2.1 Višestruke ciljne funkcije..................... 7 1.2.2 Klasifikacija optimizacionih problema.............. 7 1.3 Rešenja optimizacionih problema.................... 8 1.3.1 Grafička optimizacija....................... 8 1.3.2 Numeričke metode za probleme bez ograničenja........ 9 1.3.3 Numeričke metode za opšte probleme nelinearnog programiranja 9 2 Matematičke osnove 10 2.1 Vektori i matrice............................. 10 2.1.1 Zapis i osnovne operacije..................... 10 2.1.2 Norma vektora.......................... 11 2.1.3 Determinanta kvadratne matrice................ 12 2.1.4 Inverz kvadratne matrice..................... 13 2.1.5 Sopstvene vrednosti kvadratne matrice............. 15 2.1.6 Glavni minori kvadratne matrice................ 15 2.1.7 Rang matrice........................... 16 2.1.8 Linearna nezavisnost vektora.................. 17 2.2 Aproksimacija pomoću Tejlorovog razvoja............... 18 2.2.1 Funkcije od jedne promenljive.................. 19 2.2.2 Funkcije od dve promenljive................... 20 2.3 Rešavanje nelinearnih jednačina..................... 21 2.4 Konveksne funkcije i konveksni problemi optimizacije......... 24 2.4.1 Konveksne funkcije........................ 24 2.4.2 Konveksni skupovi........................ 26 2.4.3 Konveksni problemi optimizacije................. 27 3 Grafička optimizacija 30 3.1 Procedura grafičkog rešavanja...................... 30 3.1.1 Izbor odgovarajućeg opsega za optimizacione promenljive... 30 3.1.2 Grafici funkcija ograničenja................... 31 3.1.3 Grafik ciljne funkcije....................... 33 3.2 Funkcija GraphicalSolution........................ 37 3.3 Primeri grafičke optimizacije....................... 38 3.3.1 Rešavanje primera........................ 38 3.3.2 Razdvojena oblast izvodljivosti................. 40 3.3.3 Projektovanje zgrade....................... 41 3.3.4 Portfolio menadžment...................... 43 1
4 Optimizacija bez ograničenja 46 4.1 Smer opadanja.............................. 46 4.2 Line search metode-računanje dužine koraka.............. 47 4.2.1 Analitički line search....................... 48 4.2.2 Ravnomerna pretraga intervala................. 50 4.2.3 Pretraga preseka......................... 52 4.2.4 Pretraga zlatnog preseka..................... 53 4.2.5 Metod kvadratne interpolacije.................. 55 4.3 Metode za minimizaciju bez ograničenja................ 58 4.3.1 Metod najstrmijeg pada..................... 59 4.3.2 Konjugovani gradijent...................... 65 4.3.3 Modifikovani Njutnov metod................... 71 4.3.4 Kvazi-Njutnove metode...................... 76 5 Nelinearna optimizacija pod ograničenjima 86 5.1 Normalizacija............................... 86 5.1.1 Normalizacija ograničenja.................... 86 5.1.2 Skaliranje optimizacionih promenljivih............. 88 5.2 Kaznene metode............................. 88 5.2.1 Spoljašne kaznene funkcije.................... 89 5.2.2 Unutrašnje kaznene funkcije................... 90 5.2.3 Kaznena funkcija uvećanog Lagranžijana............ 92 5.3 Linearizacija nelinearnog problema................... 108 5.3.1 Linearizovani problem...................... 108 5.3.2 Grafičko uporedivanje linearizovanog i originalnog problema. 108 5.4 Sekvencijalno linearno programiranje - SLP............... 110 5.5 Sekvencijalno kvadratno programiranje - SQP............. 113 5.5.1 Dualni QP za traženje smera................... 114 5.5.2 Merna funkcija.......................... 116 5.5.3 Minimizacija merne funkcije................... 117 5.5.4 SQP algoritam.......................... 118 2
1 Formulacija optimizacionih problema Problemi optimizacije se javljaju u mnogim različitim oblastima. Na primer, inženjer koji projektuje višespratnu zgradu mora da izabere materijale i proporcije za različite komponente zgrade, tako da dobije strukturu koja je sigurna i što je više moguće ekonomična. Menadžer investicionog fonda mora da izabere investicije koje investitorima omogućuju najveći mogući procenat povraćaja, a u isto vreme svode rizik od većih gubitaka na prihvatljivo nizak nivo. Menadžer nekog proizvodnog objekta mora da isplanira operacije tako da postrojenje proizvodi proizvode koji maksimiziraju prihode objekta i pritom zadovoljavaju potrebe mušterija i koriste samo one resurse koji su na raspolaganju. Naučnik u istraživačkoj laboratoriji pokušava da pronade matematičku funkciju koja najbolje opisuje posmatrani fizički fenomen. Svi prethodno navedeni problemi zapravo predstavljaju probleme optimizacije. Za sve ove situacije zajedničko je to da: 1. Postoji opšti cilj aktivnosti. 2. Pored opšteg cilja, obično ima i drugih zahteva, ili ograničenja, koji moraju biti ispunjeni. 3. U svim situacijama imamo nekoliko mogućih opcija, kada izaberemo pravu opciju, ispuniće se i cilj i ograničenja. Te opcije predstavljaju optimizacione promenljive. Promenljive koje ne utiču na cilj nisu važne. 1.1 Problem optimizacije Formulisanje optimizacionog problema podrazumeva definisanje opšteg cilja i zahteva(ograničenja) date aktivnosti, kao i njihovo zapisivanje u obliku dobro definisanih matematičkih izraza. Preciznije, formulacija optimizacionog problema obuhvata: 1. Odredivanje jedne ili više optimizacionih promenljivih, 2. Izbor funkcije cilja, i 3. Odredivanje skupa ograničenja. Ciljna funkcija i ograničenja moraju biti funkcije od jedne ili više optimizacionih promenljivih. Sledeći primeri ilustruju proces formulacije problema. 1.1.1 Projektovanje zgrade Arhitekta projektuje pravougaonu zgradu tako da potrošnja energije za grejanje i rashladivanje bude minimalna. Ukupna podna površina koja je potrebna iznosi 20000m 2. Veličina parcele ograničava dimenzije zgrade na 50m. Unapred je odlučeno da odnos izmedu planiranih dimenzija mora da bude jednak zlatnom odnosu(1.618) i da svaki sprat mora da ima visinu od 3.5m. Troškovi grejanja i hladenja su procenjeni na 100$ po m 2. Vlasnik je odredio da godišnji troškovi energije ne bi trebalo da
1 FORMULACIJA OPTIMIZACIONIH PROBLEMA prelaze cenu od 225000$. Potrebno je formulisati problem koji odreduje dimenzije zgrade koje minimiziuju troškove iskopavanja. Optimizacione promenljive Na osnovu datih podataka i sledeće slike, lako se identifikuju sledeće promenljive za dati problem: n=broj spratova d=dubina zgrade ispod zemlje h=visina zgrade l=dužina zgrade w=širina zgrade Slika 1.1: Skica zgrade Ciljna funkcija Cilj projektovanja je da se minimizuju troškovi iskopavanja. Pretpostavljajući da su troškovi iskopavanja proporcionalni obimu iskopavanja, ciljna funkcija se može zapisti na sledeći način: Minimizirati dlw 4
1 FORMULACIJA OPTIMIZACIONIH PROBLEMA Ograničenja Optimizacione promenljive nisu medusobno nezavisne. Pošto je visina svakog sprata zadata, broj spratova i ukupna visina zgrade moraju da budu u sledećem odnosu: d + h = 3.5 n Takode, zbog zahteva da odnos izmedu dimenzija zgrade bude jednak zlatnom odnosu, dužina i širina zgrade moraju da imaju odnos: l = 1.618w Ukupna podna površina jednaka je podnoj površini jednog sprata pomnoženoj sa brojem spratova. Na osnovu toga, imamo i sledeće ograničenje: nlw 20000 Zbog dimenzija parcele dužina i širina zgrade moraju da budu: l 50 w 50 Troškovi energije proporcionalni su spoljašnjoj površini zgrade. osnovu budžeta za energiju dobijamo sledeće ograničenje: Prema tome, na 100(2hl + 2hw + lw) 225000 Da bi problem bio i matematički precizan, neophodno je naglasiti da promenljive ne mogu da budu negativne. l, w, h, d 0 n 1,mora da bude ceo broj Kompletan problem optimizacije možemo da zapišemo na sledeći način: Pronaći vrednosti (n, l, w, h, d) koje minizuju dlw tako da važi: d+h n = 3.5 l = 1.618w nlw 20000 l 50 w 50 100(2hl + 2hw + lw) 225000 n 1 l, w, h, d 0 5
1 FORMULACIJA OPTIMIZACIONIH PROBLEMA 1.1.2 Opis podataka Nalaženje najbolje funkcije koja opisuje dati skup podataka može da se formuliše kao optimizacioni problem. Na primer, posmatrajmo nalaženje funkcije koja opisuje podatke koji se nalaze u sledećoj tabeli: Tačka x y z posmatrano 1 0 1 1.26 2 0.25 1 2.19 3 0.5 1 0.76 4 0.75 1 1.26 5 1 2 1.86 6 1.25 2 1.43 7 1.5 2 1.29 8 1.75 2 0.65 9 2 2 1.6 Forma funkcije se bira na osnovu prethodnog znanja o opštem obliku podataka. Za podatke iz tabele, razmatramo sledeću opštu formu z izracunato = c 1 x 2 + c 2 y 2 + c 3 xy Cilj je pronaći najbolje vrednosti za koeficijente c 1, c 2 i c 3 radi minimiziranja sume kvadrata greške izmedu izračunatih i posmatranih vrednosti za z. Optimizacione promenljive Vrednosti za koeficijente c 1, c 2, i c 3 Funkcija cilja Minimizirati f = 9 [z posmatrano (x i, y i ) z izracunato (x i, y i )] 2 i=1 Na osnovu datih numeričkih podataka, ciljna funkcija se može zapisati kao: ili f =(1.26 c 2 ) 2 + (2.19 0.0625c 1 c 2 0.25c 3 ) 2 + + (1.6 4c 1 4c 2 4c 3 ) 2 f =18.7 32.8462c 1 + 34.2656c 2 1 65.58c 2 + 96.75c 1 c 2 + 84c 2 2 43.425c 3 + 79.875c 1 c 3 + 123.c 2 c 3 + 48.375c 2 3 Celokupni problem optimizacije može da se zapiše na sledeći način: Pronaći koeficijente (c 1, c 2, i c 3 ) tako da oni minimizuju 18.7 32.8462c 1 + 34.2656c 2 1 65.58c 2 + 96.75c 1 c 2 + 84c 2 2 43.425c 3 + 79.875c 1 c 3 + 123.c 2 c 3 + 48.375c 2 3 6
1 FORMULACIJA OPTIMIZACIONIH PROBLEMA 1.2 Standardna forma optimizacionog problema Kao što smo prethodno videli, veliki broj problema kod kojih se koristi optimizacija se mogu zapisati u sledećoj formi: Pronaći vektor optimizacionih promenljivih, x = (x 1, x 2,..., x n ) T koji minimizira ciljnu funkciju f(x), pod ograničenjima g i (x) 0 i = 1, 2,..., m ograničenja u obliku nejednakosti h i (x) = 0 i = 1, 2,..., p ograničenja u obliku jednakosti x il x i x iu i = 1, 2,..., n opseg optimizacionih promenljivih Ograničenja opsega su zapravo ograničenja u obliku nejednakosti. Ona se ponekad odvajaju od drugih ograničenja zbog svoje jednostavne forme. Odredeni numerički optimizacioni algoritmi koriste njihovu specijalnu formu kako bi procedura izračunavanja bila efikasnija. Problem koji je zapisan kao u prethodno navedenoj formi nazivamo standardna forma problema optimizacije. Primećujemo da standardna forma uključuje samo probleme minimizacije. Problem maksimizacije može da se konvertuje u problem minimizacije ako jednostavno pomnožimo ciljnu funkciju sa -1. Pored toga, standardna forma uključuje samo nejednakosti koje su u obliku manje ili jednako ( ). Ako je ograničenje u obliku veće ili jednako ( ) nejednakosti, ono se može zapistai u obliku manje ili jednako množenjem obe strane nejednakosti sa -1. Prema tome, standardna forma je opštija nego što se to čini na prvi pogled. U stvari, ona obuhvata sve probleme koje ćemo dalje razmatrati. 1.2.1 Višestruke ciljne funkcije Ponekad imamo više od jedne ciljne funkcije koje bi trebalo minimizirati ili maksimizrati. Ovakve probleme je teže rešiti zato što su ciljne funkcije obično kontradiktorne. Jedan od načina za rešavanje ovakvih problema je da se svakoj ciljnoj funkciji dodeli težina u zavisnosti od njene relativne važnosti i da se zatim ciljna funkcija definiše kao suma ovih funkcija pomnoženih sa svojim težinama: f(x) = w 1 f 1 (x) + w 2 f 2 (x) + gde su w 1, w 2,... odgovarajući težinski koeficijenti. Tačnost ovog metoda najviše zavisi od izbora ovih koeficijenata. Druga mogućnost je da se najvažnija funkcija izabere kao ciljna funkcija a da se ostale tretiraju kao ograničenja. 1.2.2 Klasifikacija optimizacionih problema Metode za rešavanje opšte forme problema optmizacije su uglavnom kompleksne i zahtevaju znatna numerička izračunavnja. Specijalno, neki metodi su efikasniji kod odredenih specijalnih formi opšteg problema. Zbog ovoga su optimizacioni problemi obično podeljeni na sledeće tipove. 7
1 FORMULACIJA OPTIMIZACIONIH PROBLEMA Problemi bez ograničenja Ovi problemi imaju ciljnu funkciju ali nemaju nikakva ograničenja. Funkcija cilja mora da bude nelinearna(zato što je minimum neograničene linearne funkcije ). Problemi sa ograničenim optimizacionim promenljivima se mogu prvo rešiti kao neograničeni. Posle ispitivanja različitih opcija, bira se rešenje koje zadovoljava ograničenja promenljivih. Problemi linearnog programiranja (LP) Ako su ciljna funkcija i sva ograničenja linearne funkcije od optimizacionih promenljivih, problem nazivamo problemom linearnog programiranja. Efikasan i robustan algoritam, koji se naziva simpleks metod, koristi se za rešavanje ovih problema. Problemi kvadratnog programiranja (QP) Ukoliko je ciljna funkcija kvadratna a sva ograničenja su linearne funkcije od optimizacionih promenljivih, problem nazivamo problemom kvadratnog programoraja. Ove probleme je moguće rešavati korišćenjem proširenih metoda za rešavanje LP problema. Problemi nelinearnog programiranja (NLP) Opšti problemi optimizacije pod ograničenjima, kod kojih su jedna ili više funkcija nelinearne, nazivaju se problemima nelinearnog programiranja. Problem dizajniranja zgrade, koji je naveden u prvom odeljku, predstavlja problem nelinearne optimizacije. 1.3 Rešenja optimizacionih problema Postoje različiti načini rešavanja problema optimizacije, mi ćemo razmatrati sledeće metode: 1.3.1 Grafička optimizacija Za probleme koji imaju dve optimizacione promenljive, moguće je dobiti rešenje crtanjem kontura funkcija ograničenja i funkcije cilja. Ovo je opšti metod koji omogućava veoma dobar uvid u prostor svih izvodljivih tačaka. Medutim, pošto se rezultati čitaju sa grafika, metod ne daje veoma precizne odgovore. Pored toga, grafički metod nije moguće primenjivati na probleme koji imaju više od dve optimizacione promenljive. 8
1 FORMULACIJA OPTIMIZACIONIH PROBLEMA 1.3.2 Numeričke metode za probleme bez ograničenja Postoji nekoliko numeričkih metoda za rešavanje problema optimizacije bez ograničenja. Neki od ovih metoda su metod najstrmijeg pada, konjugovani gradijent i Njutnov metod. Ovi metodi imaju svoje prednosti i nedostatke. 1.3.3 Numeričke metode za opšte probleme nelinearnog programiranja Takozvani direktni metodi su zasnovani na nalaženju smera pretrage linearizacijom ciljne funkcije i ograničenja, a zatim se odgovarjući korak pravi u tom smeru. Trenutno jedan od najpopularnijih metoda, poznat kao metod sekvencijalnog kvadratnog programiranja, zasnovan je na ovoj ideji. Suštinski različit pristup se koristi kod tzv. kaznenih metoda. Kod ovih metoda, funkcije ograničenja se prvo pomnože sa odgovarajućim kaznenim funkcijama, a zatim se dodaju ciljnoj funkciji. Kao rezultat se dobija problem optimizacije bez ograničenja koji se može rešiti metodama za rešavanje takvih problema. Kaznena funkcija je definisana tako da se blizu granica ograničenja veoma velika pozitivna vrednost dodaje ciljnoj funkciji. Pošto pokušavamo da minimizujemo ovu funkciju, proces vodi ka zadovoljenju ograničenja i na kraju do minimuma problema pod ograničenjima. 9
2 Matematičke osnove 2.1 Vektori i matrice 2.1.1 Zapis i osnovne operacije Matrica predstavlja povoljan način za organizovanje izračunavanja kada se radi sa funkcijom koja ima više od jedne promenljive. Vektor od n elemenata se zapisuje kao matrica dimenzija n 1 na sledeći način: x = Elementi vektora se zapisuju pomoću indeksa. Vektor je uvek definisan kao kolona. Pošto transponovanje matrice transformiše kolone u vrste, ukoliko nam je potreban vektor u obliku vrste, on će biti zapisan sa simbolom za transponovanje, na sledeći način: x 1 x 2. x n x T = (x 1 x 2... x n ) Matrica A dimenzija m n i njena transponovana matrica se zapisuju na sledeći način: a 11 a 12 a 1n a 11 a 21 a m1 a 21 a 22 a 2n A (m n) =...., a 12 a 22 a m2 AT (n m) =.... a m1 a m2 a mn a 1n a 2n a mn Elementi a 11, a 22,..., a mn se nazivaju glavna dijagonala matrice. Ukoliko je broj kolona i broj vrsta matrice isti, takva matrica se naziva kvadratna matrica; u suprotnom, matrica je pravougaona matrica. Ako je matrica posle transponovanja jednaka originalnoj matrici, tj. ostaje ista, onda je to simetrična matrica. Identična matrica je kvadratna matrica u kojoj su svi elemnti na glavnoj dijagonali jednaki 1, a svi ostali elementi su 0. Ova matrica se obično obeležava sa I. 1 0 0 0 1 0 I (n n) =.... 0 0 1 Množenje matrice skalarom je množenje svih elemenata matrice tim sklalarom. Slično, sabiranje i oduzimanje matrica se primenjuje na svaki element matrice. Naravno, da bi ove operacije mogle da se izvršavaju dimenzije matrica moraju da budu jednake. Proizvod dve matrice se dobija tako što vrste prve matrice množimo kolonama druge. Prema tome, da bi moglo da se izvrši množenje matrica, broj kolona
2 MATEMATIČKE OSNOVE prve matrice mora da bude jednak broju vrsta druge. Rezultat množenja matrice dimenzija m n matricom dimenzija n p je matrica čije su dimenzije m p. Sledeće relacije važe za matrice odgovarajućih dimenzija: 1. IA = AI = A 2. AB BA 3. ABC = A(BC) = (AB)C 4. (A T ) T = A 5. (ABC) T = C T B T A T 6. Ako je A pravougaona matrica, A T A i AA T su kvadratne simetrične matrice. 2.1.2 Norma vektora Norma vektora je definisana na sledeći način: x = x 2 1 + x 2 2 + + x 2 n Vektorski proizvod dva vektora x i y je skalar koji se dobija na sledeći način: x T y = x 1 y 1 + x 2 y 2 + + x n y n Kosinus ugla izmedu dva vektora možemo izračunati na sledeći način: cosθ = xt y x y Dva vektora su ortogonalna ako je njihov proizvod jednak nuli. Pomoću vektorskog proizvoda, norma vektora može da se zapiše na sledeći način: x = x 2 1 + x 2 2 + + x 2 n x T x Primer 2.1. Izračunati normu vektora c i kosinus ugla izmedu vektora c i d. 1 4 c = 2 d = 5 3 6 c = c T c = 14 = 3.74166 c = 3.74166 d = 8.77496 c T d = 32 cosθ = 32 3.74166 8.77496 = 0.974632 11
2 MATEMATIČKE OSNOVE 2.1.3 Determinanta kvadratne matrice Determinanta matrice dimenzija 2 2 se računa na sledeći način: ( ) a11 a A = 12 a 21 a 22 Det[A] A = a 11 a 12 a 21 a 22 = a 11a 22 a 12 a 21 Za matrice većih dimenzija, determinanta se računa redukovanjem početne matrice na manje matrice, sve dok se ne dode do matrica dimenzija 2 2. Za matricu dimenzija 3 3 imamo: A = a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 A = a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 = a 11 a 22 a 23 a 32 a 33 a 12 a 21 a 23 a 31 a 33 + a 13 a 21 a 22 a 31 a 32 = a 11 a 22 a 33 + a 12 a 23 a 31 + a 13 a 21 a 32 a 13 a 22 a 31 a 11 a 23 a 32 a 12 a 21 a 33 Primećujemo da su prilikom izračunavanja ove determinante svi sabirci oblika a 1j1 a 2j2 a 3j3, gde su j 1 j 2 j 3 redom permutacije brojeva 1, 2 i 3. Promena redosleda elemenata u permutaciji u odnosu na osnovnu permutaciju naziva se inverzijom. Tako, na primer, u permutaciji 231 postoje dve inverzije: 2 ispred 1 i 3 ispred 1. Ako sa k označimo broj inverzija u permutaciji j 1 j 2 j 3, onda svaki sabirak koji čini determinantu možemo označiti sa ( 1) k a 1j1 a 2j2 a 3j3 tako da se izračunavanje determinante može predstaviti sa a 11 a 12 a 13 A = a 21 a 22 a 23 a 31 a 32 a 33 = ( 1) k a 1j1 a 2j2 a 3j3 j 1 j 2 j 3 S gde je S skup svih permutacija skupa {1,2,3} kojih ukupno ima 3!. Ovaj rezultat se može uopštiti na determinantu kvadratne matrice A dimenzija n n, i tada dobijamo sledeću formulu za računanje determinante: A = a 11 a 12 a 1n a 21 a 22 a 2n... a n1 a n2 a nn = j 1 j 2...j n S ( 1) k a 1j1 a 2j2... a njn gde je S skup svih permutacija skupa {1,2,...,n} kojih ima ukupno n!, a k je broj inverzija u permutaciji j 1 j 2... j n. 12
2 MATEMATIČKE OSNOVE 2.1.4 Inverz kvadratne matrice Inverz kvadratne matrice A je takode kvadratna matrica, koja se obeležava sa A 1, i važi sledeća relacija: AA 1 = A 1 A = I Inverzna matrica može da se izračuna pomoću sledeće formule: A 1 = 1 Det[A] (Co[A])T gde je Det[A] determinanta matrice A a Co[A] se odnosi na kofaktore matrice A. Svaki izraz u kofaktoru matrice se računa po sledećoj formuli: (Co[A]) i,j = ( 1) i+j Det[A ij ] gde je A ij matrica koja je dobijena uklanjanjem i-te vrste i j-te kolone iz matrice A. Ukoliko su matrice kompatibilnih dimenzija, onda važe sledeće relacije: 1. (ABC) 1 = C 1 B 1 A 1 2. (A T ) 1 = (A 1 ) T 3. (A + B) 1 A 1 + B 1 Primer 2.2. U ovom primeru su neke od operacija ilustrovane na sledećim matricama: 1 2 3 4 1 2 3 A = 5 6 7 8 B = 2 4 5 9 10 11 12 3 5 6 (a) Inverz matrice B se računa na sledeći način: [( )] [( )] 4 5 2 5 Det Det [( 5 6 )] [( 3 6 )] Co[B] = 2 3 1 3 Det Det [( 5 6 )] [( 3 6 )] 2 3 1 3 Det Det 4 5 2 5 = 1 3 2 3 3 1 2 1 0 [( )] 2 4 Det [( 3 5 )] 1 2 Det [( 3 5 )] 1 2 Det 2 4 Determinanta matrice B je Det[B] = 1. Prema tome, inverzna matrica od B je: 1 3 2 B 1 = 3 3 1 2 1 0 13
2 MATEMATIČKE OSNOVE Lako se može proveriti da je ovo tačna inverzna matrica ako izračunamo proizvod matrica 1 2 3 1 3 2 1 0 0 BB 1 = 2 4 5 3 3 1 = 0 1 0 = I 3 5 6 2 1 0 0 0 1 (b) Računanje izraza [(AA T + B)B)] 1 AA T + B = (AA T + B)B = 30 70 110 70 174 278 110 278 446 31 72 113 72 178 283 113 283 452 + 1 2 3 2 4 5 3 5 6 1 2 3 2 4 5 3 5 6 = = Kofaktori i determinanta dobijene matrice su: 2586 3058 1299 Co[(AA T + B)B] = 5568 6061 2373 2841 3031 1161 Det[(AA T + B)B] = 303 31 72 113 72 178 283 113 283 452 514 915 1131 1277 2271 2804 2035 3618 4466 Transponovanjem matrice kofaktora i deljenjem svakog elementa determinantom, dobijamo sledeću inverzanu matricu: 1 862 514 915 1131 1856 947 [(AA T + B)B] 1 101 101 101 = 1277 2271 2804 = 3058 6061 3031 303 303 303 2035 3618 4466 Na osnovu relacije o proizvodu inverznih matrica, [(AA T + B)B] 1 = B 1 (AA T + B) 1 Možemo dokazati tačnost prethodnog proračuna: 31 72 1 113 (AA T + B) 1 = 72 178 283 = 113 283 452 1 3 2 B 1 = 3 3 1 2 1 0 367 1 3 2 B 1 (AA T + B) 1 = 3 3 1 262 2 1 0 što jeste tačan rezultat. = 433 791 101 101 367 565 262 303 303 303 565 1243 637 303 303 303 262 637 334 303 303 303 565 262 303 303 303 565 1243 637 303 303 303 637 334 303 303 303 862 1856 947 101 101 101 3058 6061 3031 303 303 303 433 791 387 101 101 101 14 387 101
2 MATEMATIČKE OSNOVE 2.1.5 Sopstvene vrednosti kvadratne matrice Ako je A matrica formata n n, a x nenula vektor formata n 1, takav da važi Ax = λx, onda je λ sopstvena vrednost kvadratne matrice A. Sopstvene vrednosti imaju važnu ulogu u nekoliko ključnih koncepta optimizacije. Sopstvene vrednosti se dobijaju rešavanjem jednačine, koja je poznata kao karakteristična jednačina matrice. Det[A λi] = 0 gde je I jedinična matrica. Za matricu dimenzija n n, karakteristična jednačina je polinom n-tog stepena. Rešavanjem ove jednačine dobijamo n sopstvenih vrednosti matrice A. Primer 2.3. Izračunati sopstvene vrednosti sledeće 3 3 matrice: 13 1 2 A = 4 14 5 7 8 15 13 1 2 1 0 0 A λi = 4 14 5 λ 0 1 0 7 8 15 0 0 1 = 13 λ 1 2 4 14 λ 5 7 8 15 λ Računanjem determinante, dobijamo sledeću karakterističnu jednačinu: ili (13 λ)((14 λ)(15 λ) 40) (4(15 λ) 35) + 2(32 7(14 λ)) = 0 2053 529λ + 42λ 2 λ 3 = 0 Ova nelinearna jednačina ima sledeća tri rešenja: λ 1 = 7.9401 λ 2 = 11.4212 λ 3 = 22.6387 Inače Mathematica ima ugradenu funkciju pod nazivom Eigenvalues, koja kao rezultat vraća sopstvene vrednosti kvadtratne matrice. Eigenvalues[{{13, 1, 2}, {4,14,5}, {7,8,15}}] {22.6387,11.4212,7.9401} 2.1.6 Glavni minori kvadratne matrice Glavni minori matrice su determinante kvadratnih podmatrica date matrice. Prvi glavni minor je prvi dijagonalni element matrice. Drugi glavni minor je determinanta 2 2 matrice koja se dobija iz prve dve vrste i prve dve kolone. Treći glavni minor je determinanta 3 3 matrice dobijene od prve tri vrste i kolone. Ovaj postupak se nastavlja sve do poslednjeg glavnog minora, koji je jednak determinanti cele matrice. Neka je data matrica A dimenzija 3 3: A = a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 15
2 MATEMATIČKE OSNOVE Ova matrica ima tri glavna minora: A 1 = a 11 A 2 = a 11 a 12 a 21 a 22 a 11 a 12 a 13 A 3 = a 21 a 22 a 23 a 31 a 32 a 33 Primer 2.4. Izračunati glavne minore sledeće matrice: 13 1 2 A = 4 14 5 7 8 15 2.1.7 Rang matrice A 1 = 13 A 2 = 13 1 4 14 = 178 13 1 2 A 3 = 4 14 5 7 8 15 = 2053 Rang matrice je jednak veličini (dimenziji) najveće nesingularne kvadratne podmatrice koja se može dobiti brisanjem nekih vrsta i kolona date matrice. Pošto determinanta mora da bude različita od nule da bi matrica bila nesingularna, da bismo odredili rang matrice, moramo pronaći kvadratnu podmatricu sa determinantom različitom od nule. Dimenzija najveće takve podmatrice predstavlja rang matrice. Primer 2.5. Izračunati rang sledeće 3 3 matrice: 13 1 2 A = 4 14 5 7 8 15 Pošto je ova matrica kvadratna, pokušaćemo da izračunamo njenu determinantu. 13 1 2 Det[A] = 4 14 5 7 8 15 = 2053 Kako je determinanta različita od nule, sledi da je rang matrice 3. 16
2 MATEMATIČKE OSNOVE Primer 2.6. Izračunati rang sledeće 3 4 matrice: 1 2 3 4 A = 5 6 7 8 9 10 11 12 Najveća kvadratna podmatrica koja se može dobiti iz date matrice je dimenzija 3 3. Ima četiri takvih podmatrica, a one su: 2 3 4 6 7 8 10 11 12 = 0 1 3 4 5 7 8 9 11 12 = 0 1 2 4 5 6 8 9 10 12 = 0 1 2 3 5 6 7 9 10 11 = 0 Determinante svih ovih 3 3 podmatrica su jednake 0. Prema tome, rang matrice nije 3. Sada moramo isprobati 2 2 podmatrice. Ovakvih podmatrica imamo mnogo više, medutim, ne moramo da isprobamo sve moguće kombinacije. Potrebno je samo da pronademo jednu podmatricu čija determinanta je različita od nule. 1 2 5 6 = 4 Možemo videti da upravo prva 2 2 podmatrica ima determinantu različitu od nule. Dakle, pronašli smo najveću moguću podmatricu sa determinantom različitom od nule, što znači da je rang date matrice A jednak 2. Mathematica ima ugradenu funkciju MatrixRank koja računa rang matrice. MatrixRank[{{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}] 2 2.1.8 Linearna nezavisnost vektora Dati skup n 1 vektora je linearno nezavisan ako svi ostali n 1 vektori mogu da se predstave kao odgovarajuća linearna kombinacija vektora iz tog skupa. Posmatrajmo, na primer, sledeća dva vektora: a = ( 1 0 ) b = ( 1 1 Ova dva vektora su linearno nezavisna zato što bilo koji 2 1 vektor može da se predstavi kao njihova kombinacija. Na primer, ( ) 3 c = = 10a 7b 7 Za dati skup vektora možemo proveriti da li je linearno nezavisan tako što formiramo matricu A čije su kolone dati vektori. Rang ove matrice predstavlja broj nezavisnih 17 )
2 MATEMATIČKE OSNOVE vektora u datom skupu. Ukoliko je rang matrice jednak ukupnom broju vektora u datom skupu, onda su svi oni linearno nezavisni. Pošto rang matrice nikada ne može biti veći od broja vrsta u matrici, a vektori su rasporedeni kao kolone matrice, lako se može zakljućiti da je maksimalan broj linearno nezavisnih vektora jednak dimenziji vektora. Primer 2.7. Ispitati linearnu nezavisnost sledećih vektora: 2 1 9 a = 5 2 b = 2 3 c = 8 4 1 4 1 Vektore ćemo rasporediti kao kolone sledeće matrice: A = 2 1 9 5 2 8 2 3 4 1 4 1 MatrixRank[A] 3 Rang matrice A je 3. Prema tome, ovi vektori su linearno nezavisni. Primer 2.8. Ispitati linearnu nezavisnost sledećih vektora: 2 1 4 a = 5 2 b = 2 3 c = 19 0 1 4 11 Najpre formiramo matricu od ovih vektora: A = 2 1 4 5 2 19 2 3 0 1 4 11 MatrixRank[A] 2 Rang matrice A je 2. Prema tome, samo dva od ovih tri vektora su linearno nezavisna. Lako se uočava da je treći vektor linarna kombinacija prva dva vektora i dobija se na sledeći način: ; ; c=-3a+2b {-4,19,0,11} 2.2 Aproksimacija pomoću Tejlorovog razvoja Svaka diferencijabilna funkcija može da se aproksimira polinomom korišćenjem Tejlorovog rzvoja. Prvo ćemo razmatrati funkcije od jedne promenljive a zatim i funkcije od dve promenljive. 18
2 MATEMATIČKE OSNOVE 2.2.1 Funkcije od jedne promenljive Neka je data funkcija f(x) koja ima samo jednu promenljivu x. Ova funkcija se može aproksimirati oko x pomoću Tejlorovog razvoja na sledeći način: f(x) f(x) + df(x) dx (x x) + 1 d 2 f(x) (x x) 2 + 2 dx 2 Linearna aproksimacija se dobija ako uzmemo prva dava člana iz razvoja, dok se kvadratna aproksimacija dobija ako uključimo i izraz sa drugim izvodom. Mathematica ima ugradenu funkciju Series koja generiše aproksimaciju pomoću Tejlorovog razvoja do željenog reda. Ova funkcija se zadaje na sledeći način: Series[f,{x, x 0, n}] Series[f,{x, x 0, n x},{y, y 0, n y},...] generiše razvoj funkcije f oko tačke x = x 0 do reda (x x 0 ) n. sukcesivno pronalazi razvoj funkcije po x, zatim po y, itd. Primer 2.9. Odrediti linearnu i kvadratnu aproksimaciju sledeće funkcije oko date tačke pomoću Tejlorovog razvoja. f(x) = x2 4x + 3 Funkcija i njeni izvodi u datoj tački x su: x = 1 4 x2 f(x) = 3 + 4x f(1 4 ) = 0.015625 2x(3 + 2x) f(x) = (3 + 4x) 2 f( 1 4 ) = 0.109375 2 18 f(x) = (3 + 4x) 3 2 f( 1 4 ) = 0.28125 x = 1 4 + x Linearna i kvadratna aproksimacija su: Linearna aproksimacija 0.0117188 + 0.109375x Kvadratna aproksimacija 0.00292969 + 0.0390625x + 0.140625x 2 Originalna funkcija i njene aproksimacije su prikazane na Slici 2.1. Funkcija je predstavljena crvenom bojom, linearna aproksimacija zelenom, a kvadratna aproksimacija plavom bojom. Primećujemo da je oko tačke x aproksimacija veoma dobra. Medutim, kako se udaljavamo od x, prava funkcija i njena linearna i kvadratna aproksimacija počinju da se znatno razlikuju. 19
2 MATEMATIČKE OSNOVE Slika 2.1: Uporedivanje linearne i kvadratne aproksimacije funkcije od jedne promenljive 2.2.2 Funkcije od dve promenljive Neka je data funkcija f(x 1, x 2 ) koja ima dve promenljive. Ovu funkciju možemo aproksimirati oko date tačke (x 1, x 2 ) na sledeći način: ( f(x1, x 2 ) f(x 1, x 2 ) f(x 1, x 2 ) + (x 1 x 1 ) + f(x 1, x 2 ) ) (x 2 x 2 ) x 1 x 2 + 1 ( 2 f(x 1, x 2 ) (x 2 x 2 1 x 1 ) 2 + 2 2 f(x 1, x 2 ) (x 1 x 1 )(x 2 x 2 ) 1 x 1 x 2 + 2 f(x 1, x 2 ) ) (x x 2 2 x 2 ) 2 + 2 Ovaj izraz se može kompaktnije zapisati pomoću matrica: ( f(x1, x 2 ) f(x 1, x 2 ) ) ( ) x1 x f(x 1, x 2 ) f(x 1, x 2 ) + 1 x 1 x 2 x 2 x 2 ( + 1 ) 2 f(x 1,x 2 ) 2 f(x 1,x 2 ) ( ) 2 (x x 1 x 1 x 2 x 2 ) 2 1 x 1 x 2 x1 x 1 + x 2 x 2 2 f(x 1,x 2 ) x 1 x 2 2 f(x 1,x 2 ) x 2 2 2 1 vektor koji se naziva vektor gradijenta i 2 2 matrica koja se naziva matrica Hesiana definisani su na sledeći način: ) V ektor gradijenta, f(x 1, x 2 ) = Matrica Hesiana, 2 f(x 1, x 2 ) = ( f(x1,x 2 ) x 1 f(x 1,x 2 ) x 2 ( 2 f(x 1,x 2 ) 2 f(x 1,x 2 ) x 1 x 2 x 2 1 2 f(x 1,x 2 ) 2 f(x 1,x 2 ) x 1 x 2 x 2 2 Kako je transponovani vektor gradijenta ( ) f(x1,x 2 ) f(x 1,x 2 ) x 1 x 2 = f(x 1, x 2 ) T i vektor promenljivih kada se oduzme x ( ) ( ) x1 x 1 x1 = x 2 x 2 x 2 20 ( x1 x 2 ) = (x x) x )
2 MATEMATIČKE OSNOVE Formula Tejlorovog razvoja može da se zapiše na sledeći način: f(x 1, x 2 ) f(x 1, x 2 ) + f(x 1, x 2 ) T x + 1 2 xt 2 f(x 1, x 2 ) x + Primer 2.10. Odrediti lineranu i kvadratnu aproksimaiju sledeće funkcije oko date tačke. f(x, y) = x y (x, y) = (2, 2) f(x, y) = x y f(2, 2) = 4 ( ) ( ) x f = 1+y y 4 x y f(2, 2) = log x 2.77259 ( ) x 2 f = 2+y ( 1 + y)y x 1+y (1 + y log x) x 1+y (1 + y log x) x y log x 2 ( ) 2 2 4.77259 f(2, 2) = 4.77259 1.92181 x = ( 2 + x 2 + y) Linearna aproksimacija = 9.54518 + 4x + 2.77259y Kvadratna aproksimacija = 17.3888 9.54518x + x 2 10.6162y + 4.77259xy + 0.960906y 2 2.3 Rešavanje nelinearnih jednačina Najpoznatiji metod za rešavanje nelinearnih jednačina je Njutn-Rapsonov metod. Neka je dat sledeći sistem od n jednačina i n promenljivih: f l (x l, x 2,..., x n ) = 0 f 2 (x l, x 2,..., x n ) = 0. f n (x l, x 2,..., x n ) = 0 Metod startuje od početne vrednosti i iterativno pokušava da se približi rešenju jednačina. Iteracija je predstavljena sledećim izrazom: x k+1 = x k + x k k = 0, 1,... gde je x 0 početna vrednost. Promena vrednosti x k se dobija proširenjem jednačina oko tačke x k korišćenjem Tejlorovog razvoja, na sledeći način: f l (x k+1 ) f 1 (x k ) + f 1 (x k ) T x k = 0 f 2 (x k+1 ) f 2 (x k ) + f 2 (x k ) T x k = 0. 21
2 MATEMATIČKE OSNOVE Ako zapišemo svih n jednačina u formi matrice, dobijamo f 1 (x k ) f 2 (x k ) ili. f n (x k ) + f 1 (x k )/ x 1 f 1 (x k )/ x 2 f 1 (x k )/ x n f 2 (x k )/ x 1 f 2 (x k )/ x 2 f 2 (x k )/ x n.... f n (x k )/ x 1 f n (x k )/ x 2 f n (x k )/ x n 0 = 0. 0 f(x k ) + J(x k ) x k = 0 xk Matrica parcijalnih izvoda funkcija J poznata je kao matrica Jakobijana. Promena vrednosti x k sada se može dobiti invertovanjem matrice Jakobijana po sledećoj formuli: x k = [J(x k )] 1 f(x k ) U svakoj iteraciji rešenje se u opštem slučaju poboljšava. Dakle, f i (x k+1 ) trebalo bi da bude bliže nuli od f i (x k ). Prema tome, konvergencija algoritma može da se definiše pomoću norme vektora f(x k+1 ). f(x k+1 ) n [f i (x k+1 )] 2 tol i=1 gde je tol mala tolerancija greške. Njutn-Rapsonov metod konvergira prilično brzo kada je početna vrednost blizu rešenja. Medutim, ovaj metod divergira u nekim slučajevima u kojim je matrica Jakobijana skoro singularna. Još jedan nedostatak ovog metoda je što on daje samo jedno rešenje koje je najbliže početnoj tački. Pošto nelinearne jednačine, u opštem slučaju, mogu imati nekoliko rešenja, jedini način za dobijanje drugih rešenja je da se isprobaju druge početne tačke. Standardne Mathematica funkcije NSolve i FindRoot su veoma fleksibilne i efikasne za rešavanje opštih sistema nelinearnih jednačina, i trebalo bi ih koristiti u praksi. Funkcija FindRoot po default-u koristi Njutn-Rapsonov metod i zadaje se na sledeći način: FindRoot[f,{x, x 0 }] FindRoot[{f 1, f 2,...}, {{x, x 0 },{y, y 0 },...}] traži numerički koren funkcije f,startujući od tačke x = x 0 istovremeno traži koren za svaku od datih funkcija f i FindRootPlot[f,{x, x 0 },opts] iscrtava na grafiku korake i tačke u kojima su izračunati funkcija f i njeni izavodi u postupku funkcije FindRoot;opts uključuje sve opcije koje se mogu zadavati i kod FindRoot i kod Plot funkcije 22
2 MATEMATIČKE OSNOVE Primer 2.11. Njutn-Rapsonovim metodom rešiti sledeću nelinearnu jednačinu. x + 2 = e x Najpre učitavamo paket u kojem je definisana funkcija FindRootPlot: << Optimization UnconstrainedProblems Zatim zadajemo funkciju: f = x + 2 - Exp[x (a) Uzećemo početnu vrednost x 0 = 2 { FindRootPlot[f,{x,2}] {x 1.14619},{Steps 7,Residual 7,Jacobian 6}, } Na grafiku je prikazan celokupan postupak traženja rešenja jednačine. (b) Ako uzmemo početnu vrednost x 0 = 0.1 metod nailazi na poteškoće. U blizini tačke x = 0.1, funkcija je veoma ravna i njen prvi izvod je vrlo blizu nule. Zbog ovoga je prvih par iteracija metoda veoma daleko od rešenja. Ipak, metod na kraju konvergira do tačnog rešenja, kao što možemo videti na sledećem grafiku: { FindRootPlot[f,{x,0.1}] {x 1.14619},{Steps 6,Residual 7,Jacobian 5}, } Primer 2.12. Uzimajući početne vrednosti x 0 = (2, 2, 2), rešiti sledeći sistem nelinearnih jednačina: x 2 + y 2 + xyz = 1.34 xy z 2 = 0.09 e x e y + z = 0.41 f={-x 2 +y 2 +x*y*z-1.34, x*y-z 2-0.09, Exp[x]-Exp[y]+z-0.41}; FindRootPlot[f,{{x, 2}, {y, 2}, {z, 2}}] x 0.902218, y 1.10034, z 0.950132 23
2 MATEMATIČKE OSNOVE 2.4 Konveksne funkcije i konveksni problemi optimizacije Mnogi teoretski rezultati se mogu primeniti samo na probleme optimizacije koji su definisani kao konveksne funkcije. Konvergencija mnogih optimizacionih algoritama zavisi od konveksnosti ciljne funkcije i ograničenja. Sada ćemo navesti neke osnovne definicije konveksnih skupova i konveksnih funkcija, i videti na koji način se može ispitivati konveksnost funkcije. 2.4.1 Konveksne funkcije Funkcija f(x) je konveksna ako za bilo koje dve tačke x (1) i x (2), vrednosti funkcije zadovoljavaju sledeću nejednakost: f(αx (2) + (1 α)x (1) ) αf(x (2) ) + (1 α)f(x (1) ), 0 α 1 Za funkciju od jedne promenljive, ovo znači da je funkcija konveksna ako grafik funkcije uvek leži ispod linije koja spaja bilo koje dve tačke na grafiku, kao što se može videti na sledećoj slici. Tzv. konkavnu funkciju možemo definisati ako promenimo smer nejednakosti u prethodnom izrazu. Slika 2.2: Konveksna i nekonveksna funkcija Ako bismo koristili ovu definiciju, bilo bi veoma teško ispitati da li je funkcija konveksa, zato što bi to zahtevalo razmatranje beskonačno mnogo tačaka. Medutim, na osnovu znaka Hesiana funkcije, možemo odrediti konveksnost funkcije, na sledeći način: (a) Funkcija f(x) je konveksna ako je njen Hesian 2 f(x) pozitivno semidefinitan. (b) Funkcija f(x) je konkavna ako je njen Hesian 2 f(x) negativno semidefinitan. (c) Funkcija f(x) je nekonveksna ako njen Hesian 2 f(x) nije definitan. Za linearnu funkciju, matrica Hesiana se sastoji samo od nula, pa je linearna funkcija u isto vreme i konveksna i konkavna. Za složenije funkcije, Hesian može biti nepregledna matrica koja sadrži promenljive, i može biti teško odrediti znak za sve moguće vrednosti promenljivih. Za složenije situacije često se koriste sledeći rezultati: 1. Ako je f(x) konveksna funkcija, onda je αf(x) takode konveksna funkcija za bilo koje α > 0. 24
2 MATEMATIČKE OSNOVE 2. Suma konveksnih funkcija je takode konveksna funkcija. Što znači da, ako su f i (x), i = 1,..., k sve konveksne funkcije, onda je i f(x) = k i=1 f i(x) konveksna funkcija. 3. Ako je f(x) konveksna funkcija, a g(γ) je monotono rastuća konveksna funkcija, onda je kompozitna funkcija g(f(x)) takode konveksna funkcija. Neke funkcije nisu konveksne na svom celom domenu; medutim, one mogu biti konveksne na odredenom skupu. Primer 2.13. Ispitati konveksnost sledeće funkcije koja ima jednu promenljivu: Hesian je drugi izvod ove funkcije: f(x) = x + 1/x x > 0. 2 f = 2 x 3 > 0 za x > 0 Prema tome, funkcija je konveksna na datom domenu. Sledeći grafik to potvrduje: Plot[x + 1/x, {x, 0.001, 2}] Slika 2.3: Grafik funkcije x + 1/x Primer 2.14. Ispitati konveksnost sledeće funkcije od dve promenljive: f(x, y) = e (x2 +y 2) + e (x+2y) Matrica Hesiana ove funkcije je: ( 4e 2 x 2 +y 2 x f = 2 + e x+2y + 2e x2 +y 2 4e x2 +y 2 xy + 2e x+2y 4e x2 +y 2 xy + 2e x+2y 4e x2 +y 2 y 2 + 4e x+2y + 2e x2 +y 2 ) Gotovo je nemoguće eksplicitno proveriti znak glavnih minora ove matrice. Zbog toga ćemo pokušati to da uradimo na drugi način. Najpre, primećujemo da je data funkcija suma dve funkcije. Dakle, trebalo bi da pokažemo da su obe ove funkcije konveksne. Oba izraza su u obliku e z, gde je z neki 25
2 MATEMATIČKE OSNOVE realan broj. Kao što možemo videti na sledećem grafiku, ova funkcija je konveksna. Korišćenjem pravila za kompozitnu funkciju, trebalo bi pokazati samo da su stepeni od e konveksne funkcije. ( ) 2 0 f 1 (x, y) = x 2 + y 2, 2 f 1 = = f 0 2 1 je konveksna = e f 1(x,y) je konveksna funkcija f 2 (x, y) = x + 2y je linearna = f 2 je konveksna = e f 2(x,y) je konveksna funkcija Prema tome, oba izraza su konveksne funkcije i zabog toga je f(x, y) = e (x2 +y 2) + e (x+2y) konveksna funkcija. Plot[Exp[z], {z, -5, 1}] Slika 2.4: Grafik funkcije e x 2.4.2 Konveksni skupovi Skup je konveksan ako prava linija, koja spaja bilo koje dve tačke iz skupa, celom svojom dužinom leži unutar skupa. U suprotnom, skup je nekonveksan. Na sledećoj slici se vidi razlika izmedu konveksnog i nekonveksnog skupa: Neka su data ograničenja: g 1 g 2 g 3 g 4 Slika 2.5: Konveksan i nekonveksan skup = (x 3 2 )2 + (y 5) 2 10 2x 2 + 3y 2 35 x 0 y 0 26
2 MATEMATIČKE OSNOVE Slika 2.6: Izvodljiva oblast problema koji ima konveksna ograničenja u obliku nejednakosti Lako se može pokazati da su nelinearna ograničenja g 1 i g 2 konveksne funkcije. Oblast izvodljivosti je prikazana na Slici 2.6 i jasno se može videti da ta oblast predstavlja konveksan skup. 2.4.3 Konveksni problemi optimizacije Optimizacioni problem kod kojeg je ciljna funkcija konveksna a oblast izvodljivosti je konveksan skup naziva se konveksni problem programiranja. Iz prethodne diskusije se lako može zakljucǐti da je problem linearnog programiranja uvek konveksan problem. Problem nelinearnog programiranja sa konveksnom ciljnom funkcijom i linearnim(u obliku jednakosti ili nejednakosti) ili konveksnim ograničenjima u obliku nejednakosti je takode konveksni problem optimizacije. Problem, koji ima bar jedno nelinearno ograničenje u obliku jednakosti, je nekonveksni problem optimizacije. Najvažnije svojstvo konveksnog problema programiranja je to što je bilo koja tačka lokalnog minimuma x istovremeno i globalni minimum. Ovo se može dokazati kontradikcijom, na sledeći način: Neka je x lokalni minimum. Ako to nije i globalni minimum, onda postoji neki drugi lokalni minimum ˆx takav da važi f(ˆx) < f(x ) Posmatrajmo liniju koja spaja tačke x i ˆx: x = αˆx + (1 α)x, 0 α 1 Pošto je oblast izvodljivosti konveksan skup, sve tačke x na ovoj liniji se nalaze u izvodljivoj oblasti. Pored toga, kako je f(x) konveksna funkcija, imamo f(x) αf(ˆx) + (1 α)f(x ), 0 α 1 27
2 MATEMATIČKE OSNOVE ili f(x) f(x ) + α(f(ˆx) f(x )) Na osnovu početnog tvrdenja, izraz f(ˆx) f(x ) mora da bude manji od nule, odnosno mora da važi f(x) < f(x ), za svako 0 α 1 Ovo znači da čak i u bližoj okolini tačke x postoji tačka u kojoj je vrednsot funkcije manja od minimuma. Jasno je da, onda x ne može biti lokalni minimum, što je kontradikcija. Prema tome, ne može da postoji drugi lokalni minimum, što dokazuje tvrdnju da x mora da bude globalni minimum. Većina optimizacionih algoritama je dizajnirana za traženje lokalnog minimuma. U opštem slučaju, ne postoji dobar način za nalaženje globalnog minimuma, osim da se pokuša sa nekoliko različitih početnih tačaka s nadom da neka od njih vodi do globalnog minimuma. Medutim, za konveksne probleme, sa sigurnošću se može koristit bilo koje optimalno rešenje koje dobijemo, znajući da ne postoji drugo rešenje koje daje bolju vrednost ciljne funkcije. Sledeća funkcija, iz paketa OptimizationToolbox CommonFunction, proverava konveksnost jedne ili više datih funkcija: ConvexityCheck[f,vars] proverava da li je funkcija f(ili lista funkcija f) konveksna. Primer 2.15. Odrediti da li je sledeći problem optimizacije konnveksan. Minimizirati Pod ograničenjima f(x, y) = (x 5) 2 + (y 1) 2 + xy x + y 4 2x + x 2 + y 2 = 16 x 2 1 y Problem sadrži nelinearno ograničenje u obliku jednakosti; pa prema tome, nije konveksan problem. Primer 2.16. Odrediti da li je sledeći problem optimizacije konnveksan. Minimizirati Pod ograničenjima f(x, y) = (x 5) 2 + (y 1) 2 + xy x + y 4 2x + x 2 + y 2 16 x 2 1 y Ovaj problem ne sadrži nelinearna ograničenja u obliku jednakosti; pa prema tome, problem je konveksan ako su sve njegove funkcije konveksne. Koristimo funkciju ConvexityCheck da bismo ispitali konveksnost datog problema. f=(x-5) 2 +(y-1) 2 +xy; g={x+y 4, 2x+x 2 +y 2 16, x 2 /y 1}; <<OptimizationToolbox CommonFunction ; ConvexityCheck[f, {x, y} ------ Function (x-5) 2 +(y-1) 2 +xy 28
2 MATEMATIČKE OSNOVE ( 2 1 Hessian 1 2 Status Convex ) Principal Minors ( 2 3 ) ConvexityCheck[g, {x, y} ------ Function ( )-4+x+y ( ) 0 0 0 Hessian Principal Minors 0 0 0 Status Convex ------ Function ( )-16+2x+x 2 +y 2 ( ) 2 0 2 Hessian Principal Minors 0 2 4 Status Convex ------ Function ( -1+x 2 /y 2 2x ) ( 2 y y Hessian 2 2x 2x 2 Principal Minors y 0 y 2 y 3 Status Undetermined ) Pošto glavni minor trećeg ograničenja sadrži promenljivu, funkcija nije mogla da odredi njegovu konveksnost. Medutim, jasno je da je ovaj minor pozitivan za svako y > 0. Dakle, problem je konveksan ako uvedemo dodatno ograničenje da y mora da bude pozitivno. Bez ovog ograničenja problem je nekonveksan. 29
3 Grafička optimizacija Grafička optimizacija je jednostavan metod za rešavanje problema optimizaciije koji imaju jednu ili dve promenljive. Za probleme koji imaju samo jednu optimizacionu promenljivu, minimum(ili maksimum) može jednostavno da se uoči na grafiku ciljne funkcije. Za probleme sa dve optimizacione promenljive, rešenje se može dobiti crtanjem grafika funkcija ograničenja i ciljne funkcije. Praktični problemi optimizacije najčešće imaju više od dve promenljive, i zbog toga, direktno grafičko rešavanje nije moguće. Medutim, za probleme manjih razmera, se može barem steći neki utisak o optimumu primenjivanjem grafičkog rešavanja na one dve promenljive koje smatramo najvažnijim za dati problem. 3.1 Procedura grafičkog rešavanja Neka je dat optimizacioni problem koji ima dve optimizacione promenljive i koji je zapisan u standardnoj formi na sledeći način: Naći vektor optimizacionih promenljivih, (x 1, x 2 ) koje Minimizuju ciljnu funkciju, f(x 1, x 2 ) Pod ograničenjima g i (x 1, x 2 ) 0, i = 1, 2,..., m Ograničenja u obliku nejednakosti h i (x 1, x 2 ) = 0, i = 1, 2,..., p Ograničenja u obliku jednakosti Grafičko rešavanje ovog problema podrazumeva sledeća tri koraka: 1. Biranje odgovarjućeg opsega optimizacionih promenljivih. 2. Iscrtavanje grafika funkcije svakog ograničenja da bi se predstavile granice. 3. Crtaje kontura ciljne funkcije. Kompletna ova procedura će dalje biti detaljnije opisana. Da bi proces bio jasniji, svi koraci će biti opisani kao da se grafici cratju ručno. 3.1.1 Izbor odgovarajućeg opsega za optimizacione promenljive Prvi zadatak je izbor pogodnog opsega vrednosti za optimizacione promenljive. Izvestan period pokušaja i promašaja je neophodan pre nego što odredimo pogodan opseg. Opseg mora obavezno da uključuje tačku optimuma. Veoma veliki opseg može da rezultuje vrlo malim konturama grafika na kojima bi bilo teško razlikovati različita ograničenja. S druge strane, može da se desi da veoma mali opseg vrednosti promenljivih ne prikazuje oblast u kojoj se nalazi optimalno rešenje. Za praktične probleme, odgovarajući opseg može da se odredi na osnovu prethodnog iskustva sa sličnim situacijama. Za probleme za koje nemamo nikakvo predznanje o optimalnom rešenju, može da se koristi sledeći postupak. 1. Izabrati donju i gornju granicu za jednu od promenljivih, recimo za x 1. Mogu da se izaberu proizvoljne vrednosti ukoliko ne znamo baš ništa o rešenju.
3 GRAFIČKA OPTIMIZACIJA 2. Rešiti svaku jednačinu ograničenja za dobijanje odgovarajućih vrednosti x 2. Odrediti minimalnu i maksimalnu vrednost za x 2 na osnovu ovih vrednosti. Posmatrajmo, na primer, grafičko rešenje sledećeg problema: Minimizirati f(x 1, x ( 2 ) = 4x 2 1 5x 1 x 2 + x 2 2 ) g(x1, x Pod ograničenjima 2 ) = x 2 1 x 2 + 2 0 h(x 1, x 2 ) = x 1 + x 2 6 = 0 Pod pretpostavkom da ne znamo ništa o optimalnoj tački, proizvoljno biramo donju i gornju granicu za x 1. Uzećemo, na primer, 0 i 10, respektivno. Zatim, rešvamo svaku jednačinu ograničenja, tretirajući sva ograničenja kao jednakosti. g : za x 1 = 0, x 2 1 x 2 + 2 = 0 dobijamo x 2 = 2 za x 1 = 10, x 2 1 x 2 + 2 = 0 dobijamo x 2 = 102 h : za x 1 = 0, x 1 + x 2 6 = 0 dobijamo x 2 = 6 za x 1 = 10, x 1 + x 2 6 = 0 dobijamo x 2 = 4 Prema tome, za naš prvi pokušaj, biramo interval (0,10) za x 1, a za x 2 uzimamo (-4,102). 3.1.2 Grafici funkcija ograničenja Drugi zadatak je crtanje grafika funkcija ograničenja i odredivanje oblasti u kojem su ograničenja zadovoljena. Ova oblast se naziva oblast izvodljivosti. Pod pretpostavkom da su ograničenja zapisana u standardnoj formi, trebalo bi iscrtati linije koje predstavljaju jednačine g i (x 1, x 2 ) = 0 i h i (x 1, x 2 ) = 0. Ove linije mogu da se nacrtaju biranjem nekoliko vrednosti za jednu promenljivu i rešavanjem jednačine ograničenja za drugu promenljivu. Tj. za cratnje grafika ograničenja g i, biramo nekoliko različitih vrednosti iz izabranog intervala za x 1. Za svaku izabranu vrednost x 1, računa se vrednost za x 2 rešavanjem jednačine g i (x 1, x 2 ) = 0. Linija koja prolazi kroz tačke (x 1, x 2 ) predstavlja grafik funkcije g i (x 1, x 2 ) = 0. Ukoliko je funkcija linearna, onda su nam očigledno potrebne samo dve tačke za crtanje takve linije. Za nelinearne funkcije, potrebno je nekoliko tačaka da bismo dobili relativno glatku konturu. Ako nastavimo sa rešvanjem prethodnog primera, naš zadatak je da sada nacrtamo linije koje prolaze kroz tačke koje zadovoljavaju sledeće jednačine: x 2 1 x 2 + 2 = 0 x 1 + x 2 6 = 0 Da bismo dobili podatke za crtanje ovih kontura, biramo nekoliko vrednosti za x 1 i računamo odgovarajuće vrednosti za x 2 rešavanjem odgovarajućih jednačina. Dobijene vrednosti su prikazane u sledećoj tabeli: 31
3 GRAFIČKA OPTIMIZACIJA x 1 x 2 iz x 2 1 x 2 + 2 = 0 x 2 iz x 1 + x 2 6 = 0 0 2 6 2.5 8.25 3.5 5 27 1 7.5 58.25-1.5 10 102-4 Na sledećoj slici su prikazane linije koje prolaze kroz parove ovih tačaka. Slika 3.1: Grafik funkcija ograničenja Za ograničenja u obliku jednakosti, linija h(x 1, x 2 ) = 0 predstavlja izvodljivu liniju pošto svaka tačka na ovoj liniji zadovoljava dato ograničenje. Za ograničenja u obliku nejednakosti, liinija g(x 1, x 2 ) = 0 predstavlja granicu izvodljivosti ograničenja. Sa jedne strane krive je g > 0, a sa druge strane je g < 0. Očigledno je da je strana na kojoj je g < 0 izvodljiva za ograničenja, pošto svaka tačka na toj strani zadovoljava ograničenje. Grafik nam pokazuje da je oblast ispod krive g neizvodljiva. Drugo ograničenje je u obliku jednakosti, izvodljiva oblast problema je oblast iznad preseka prave h sa krivom g. Kada se iscrtaju grafici svih ograničenja, presek izvodljivih strana svih ograničenja predstavlja oblast izvodljivosti problema optimizacije. Tačke unutar izvodljive oblasti zadovoljavaju sva ograničenja. U zavisnosti od formulacije problema, oblast izvodljivosti može biti ograničen, neograničen ili prazan skup, ili skup od samo jedne tačke. Ukoliko je oblast izvodljivosti prazan skup, to očigledno znači da tako formulisani problem nema rešenja, pa se formulacija tog problema mora ponovo razmotriti. Ukoliko je samo jedna tačka izvodljiva, onda nije potrebno dalje razmatrati problem, postoji samo jedno rešenje koje zadovoljava sva ograničenja. U ostalim slučajevima, prelazi se na sledeći korak, a to je crtanje grafika ciljne funkcije da bismo pronašli optimalno rešenje, ukoliko ono postoji. 32
3 GRAFIČKA OPTIMIZACIJA 3.1.3 Grafik ciljne funkcije Za dobro postavljeni problem optimizacije(problem čija je oblast izvodljivosti neprazan skup) sledeći korak je da se izabere tačka u izvodljivoj oblasti koja ima najmanju vrednost ciljne funkcije. Ovo se postiže crtanjem nekoliko(najmanje dve) kontura ciljne funkcije da bi se odredio smer u kojem ciljna funkcija opada. Vizualno se može izabrati tačka koja je u izvodljivom domenu i koja daje najmanju vrednost ciljne funkcije. Kod crtanja kontura ciljne funkcije postoji jedan problem koji se ne pojavljuje prilikom cratnja kontura funkcija ograničenja. Kod funkcija ograničenja, prirodno je da se crta grafik za nula vrednosti funkcija zato što on predstavlja granice ograničenja. Medutim, u slučaju ciljne funkcije, ne postoji standardan skup vrednosti koje se uvek koriste. Vrednosti za koje se crta grafik ciljne funkcije moraju da se izaberu na neki način. Vrednosti koje se biraju potpuno nasumično obično nisu dobre, zato što se može desiti da konture leže izvan izabranog opsega. Logično bi bilo da se izaberu dve različite tačke i da se u njima izračuna vrednost funkcije f. Za većinu problema, izbor tačaka koje predstavljaju trećine domena rešenja, daju dobre rezultate za inicijalne konture ciljne funkcije. U ovom slučaju, te dve vrednosti se dobijaju na sledeći način: 1 c 1 = f( 3 (x 1max x 1min ), 1 ) 3 (x 2max x 2min ) 2 c 2 = f( 3 (x 1max x 1min ), 2 ) 3 (x 2max x 2min ) Najverovatnije će vrednosti funkcije f u ove dve tačke biti različite, na primer c 1 i c 2. Ukoliko nisu različite, biraju se druge tačke sve dok se ne dobiju dve različite vrednosti ciljne funkcije. Kada izaberemo vrednosti, grafik ciljne funkcije može da se nacrta slično kao i grafici funkcija ograničenja. Tj. izaberu se nekoliko porizvoljnih vrednosti za jednu promenljivu, recimo za x 1, a onda se rešavanjem jednačine f(x 1, x 2 ) = c 1 dobijaju odgovarajuće vrednosti za x 2. Linija koja prolazi kroz ove tačke predstavlja konturu ciljne funkcije za vrednost c 1. Na sličan način se dobija i kontura koja odgovara jednačini f(x 1, x 2 ) = c 2. Na osnovu ove dve konture, može se uočiti opšti oblik ciljne funkcije i smer u kojem ona opada. Sada možemo pogadati optimalnu tačku sa grafika. Da bismo bili sigurni, moramo nacrtati još dve konture, jednu koja odgovara minimalnoj vrednosti ciljne funkcije, i drugu sa malo manjom vrednošću za f. Ova poslednja kontura bi očigledno trebalo da leži izvan izvodljive oblasti. Ukoliko nastavimo sa rešavanjem našeg primera, trećine izabranog optimizacionog prostora se računaju na sledeći način: x 1 = 1 10 (10 0) = 3 3, x 2 = 1 106 (102 ( 4)) = 3 3 x 1 = 2 20 (10 0) = 3 3, x 2 = 2 212 (102 ( 4)) = 3 3 Računanjem vrednosti ciljne funkcije u ove dve tačke, biramo sledeće dve vrednosti 33