UNIVERZA V LJUBLJANI FAKULTETA ZA MATEMATIKO IN FIZIKO Katja Ciglar Analiza občutljivosti v Excel-u Seminarska naloga pri predmetu Optimizacija v financah Ljubljana, 2010
1. Klasični pristop k analizi občutljivosti Komercialni optimizacijski paketi za reševanje linearnih optimizacijskih problemov ponavadi ponujajo možnost analize občutljivosti. Analiza občutljivosti v teh paketih temelji predvsem na naivnih pristopih iz prvotno razpoložljivih literatur. Kot posledica, so rezultati nejasni. Klasična analiza občutljivosti temelji na metodi simpleks za reševanje linearnih problemov optimizacije. Rezultat metode simpleksov je tako imenovana osnovna rešitev, ki jo določimo z optimalno bazo. Vzemimo, da je A matrika velikosti m n in rang(a)=m, baza je potem nesingularna podmatrika A B velikosti m m in pripadajoča bazna rešitev x je določena z kjer N vsebuje indekse, ki niso v B. Če definiramo vektor y z A B x B = b in x N = 0. A T B y = c B in označimo vektor dopolnilnih spremenljivk z s, dobimo s B = 0. Iz x N = 0 sledi, da je x T s = 0, kar dokazuje, da sta x in s komplementarna vektorja. Iz nenegativnosti x B in s N sledi, da je x optimalna za (P ) in (y, s) za (D). V tem primeru rečemo, da je A B optimalna baza za (P ) in (D). Glavni rezultat metode simpleksov je, da takšna optimalna baza vedno obstaja, ob predpostavki, da je rang(a )= m, ter metoda simpleksov nam generira takšno bazo. Vsaka optimalna baza določa naravno razdelitev indeksov na m baznih in n m nebaznih indeksov, iz česar dobimo razbitje (B, N ) množice indeksov. Temu rečemo optimalno bazno razbitje inducirano z optimalno bazo B. Očitno je, da optimalno bazno razbitje ni nujno tudi optimalno razbitje. In sicer, je ta opazka bistvena, kot bomo videli spodaj. Klasični pristop k analizi občutljivosti temelji na uporabi osnovnih formul {b i : Ax = b, x B 0, x N = 0} {y i : A T y + s = c, s B = 0, s N 0} {c j : A T y + s = c, s B = 0, s N 0} {x j : Ax = b, x B 0, x N = 0} za določitev območij ( ranges ) in skritih cen ( shadow prices ), ampak z optimalnim baznim razbitjem (B, N ) namesto z optimalnim razbitjem (B, N). Očitno je, da v splošnem (B, N ) ni nujno optimalno razbitje, ker imata lahko (P ) in (D) več kot eno optimalno bazo. Rezultat klasične analize bo zato odvisen od optimalne baze A B. Sledi, da lahko pravilna implementacija klasičnega pristopa, da spremembo različnih območij in skritih cen. Naslednji primer je ilustracija tega fenomena. 2
Primer 1: Za problema (P ) min x 1 + 4x 2 + x 3 + 2x 4 + 2x 5 p.p. 2x 1 + x 2 + x 3 + x 5 x 6 = 0 x 1 + x 2 x 3 + x 4 x 7 = 1 x 1, x 2, x 3, x 4, x 5, x 6, x 7 0 in (D) max y 2 p.p. 2y 1 + y 2 1 y 1 + y 2 4 y 1 y 2 1 y 2 2 y 1 2 y 1 0 y 2 0. imamo tri možne optimalne baze, ki so dane v tabeli spodaj. prikazuje območja za c 4 za vsako od teh baz. Stolpec na desni Baza B Območja za c 4 1 {1, 4} [1, 3] 2 {2, 4} [2, 3] 3 {4, 5} [1, 2] Dobimo tri različne intervale za območja, ki so odvisni od optimalne baze. Naredimo izračun za prvo optimalno bazo. Območje za c 4 najdemo z uporabo formule {c j : A T y + s = c, s B = 0, s N 0} in B = B = {1, 4}. Iz tega sledi, da je potrebno minimizirati in maksimizirati c 4 glede na sistem 2y 1 + y 2 = 1 y 1 + y 2 4 y 1 y 2 1 y 2 = c 4 y 1 2 y 1 0 y 2 0. Z uporabo slike 3
lahko enostavno rešimo ta problem. Vprašanje je, katere vrednosti y 2 so dopustne, ko opustimo četrti kriterij in vzamemo prvi kriterij. Enostavno preverimo, da sledi 1 y 2 3, iz česar sledi, da je zaprti interval [1, 3] območje za c 4. Ostala dva območja enostavno poiščemo tako, da opustimo četrti kriterij in vzamemo drugi oziroma peti kriterij. Komarcialni optimizacijski paketi nam kot rešitev dajo enega od treh območij v odvisnosti od optimalne baze, ki jo poišče paket. Lahko opazimo, da so vsa tri območja določena glede na bazno particijo, podobmočja celotnega območja [0, 3], ki je pravilna rešitev analize občutljivosti. Lahko tudi opazimo, da trenutna vrednost 2 za c 4 leži v odprtem intervalu, kljub temu, bi na osnovi dveh od treh območij iz zgornje tabele, lahko sklepali, da je 2 ekstremna točka. Iz tega lahko napačno sklepamo, da je 2 prelomna točka funkcije optimalne vrednosti. Iz zgornjega primera sledi, da je območje določeno na osnovi optimalnega baznega razbitja, vedno podobmočje celtonega intervala linearnosti, lahko pa se tudi zgodi, da območje sovpada z celtonim intervalom linearnosti funkcije optimalne vrednosti. Enako pa velja tudi za skrite cene. V neprelomnih točkah nam optimalna bazna particija da pravilno vrednost skrite cene, toda v prelomnih točkah, pa dobimo eno vrednost za skrito ceno, ki leži med levo in desno skrito ceno. To bo pozakal tudi primer v naslednjem poglavju. Potrebno je poudariti, da je z vidika izračuna, pristop z uporabo optimalnega baznega razbitja, veliko enostavnejši, kot uporaba optimalnega razbirja. Ko zamenjamo optimalno razbitje (B, N) z optimalnim baznim razbitjem (B, N ), lahko enostavno izraunamo območja in skrite cene. Kot primer vzemimo določitev območja za b i. To pomeni, da moramo minimizirati in maksimizirati b i glede na {b i : Ax = b, x B 0, x N = 0}. 4
Iz nesingularnosti A B sledi, da je in tako iz pogoja x B 0 dobimo x B = A 1 B b, A 1 B b 0. To je sistem m linearnih neenačb pri koeficientu b i, pri fiksnem i, katerega rešitev lahko dobimo neposredno. Opazimo, da je sistem dopusten, saj je trenutna vrednost b i takšna, da ustreza sistemu. Rešitev je tako zaprt interval, ki vsebuje b i. 2. Primerjava klasičnega pristopa k analizi občutljivosti z novim pristopom V namen primerjave uporabimo enostaven primer transporta blaga od treh distribucijskih centrov do treh skladišč. Vrednosti ponudbe treh distribucijskih centrov so 2, 6 in 5 enot, vrednost povpraševanja vsakega od treh skladišč pa je 3 enote. Predpostavimo, da je cena transporta ene enote blaga od distribucijskega centra do skladišča neodvisna od distribucijskega centra in skladišča, in enaka eno enoto valute. Cilje je zadovoljiti potrebe povpraševanja skladišč pri minimalni ceni transporta. Problem je predstavljen na naslednjem grafu Glede na izbiro enote cene transporta, je celotna cena enaka vsoti vseh prevozov enot blaga. Ker je skupno povprševanje enako 9 enot, je to tudi enako optimalni celotni ceni transporta. Opazimo, da lahko najdemo mnogo optimalnih možnosti prevoza, kar je posledica enakih cen transportov za vse možne prevoze. Občutljivost na vrednosti ponudbe in povpraševanja Želimo določiti občutljivost optimalne vrednosti glede na spremembe ponudbe in povpraševanja. Označimo vrednosti ponudbe z a = (a 1, a 2, a 3 ) in vrednosti povpraševanja z b = (b 1, b 2, b 3 ). Območja teh vrednosti lahko določimo kar na roko. Če naprimer spremenimo vrednost b 1, je celotno povpraševanje enako 6 + b 1, kar je optimalna vrednost dokler je takšno povpraševanje lahko zadoščeno s trenutno 5
ponudbo. Iz tega sledi pogoj 6 + b 1 2 + 6 + 5 = 13, iz česar sledi b 1 7. Za večje vrednosti b 1 problem postane nedopusten. Ko je b 1 = 0, so vrednosti transporta v prvo skladišče enake 0 za vsako optimalno rešitev. To pomeni, da je 0 prelomna točka in območje b 1 enako [0, 7]. Zaradi simetrije omrežja za točke povpraševanja, sta območji za b 2 in b 3 tudi enaki intervalu [0, 7]. S spremembo vrednosti a 1, je celotna ponudba enaka 11 + a 1 in bo zadostovala, če bo 11 + a 1 9, iz česar sledi a 1 2. Vrednost ponudbe je pozitivna, zato je območje za a 1 enako [0, ). Podobno lahko območje za a 2 dobimo iz 7 + a 2 9, iz česar sledi območje [2, ) za a 2, ter območje za a 3 dobimo iz iz česar sledi območje [1, ) za a 3. 8 + a 3 9, V namen primerjave vrednosti pravkar določenih območij z območji določenimi s klasično metodo, moramo naš problem napisati v obliki linearnega programa. Dobimo: Pomen spremenljivk je naslednji: 3 j=1 min 3 i=1 x ij p.p. x 11 + x 12 + x 13 + s 1 = 2 x 21 + x 22 + x 23 + s 2 = 6 x 31 + x 32 + x 33 + s 3 = 5 x 11 + x 21 + x 31 d 1 = 3 x 12 + x 22 + x 32 d 2 = 3 x 13 + x 23 + x 33 d 3 = 3 x ij, s i, d j 0, i, j = 1, 2, 3. x ij : število enot transporta od točke ponudbe do točke povpraševanja, s i : presežek ponudbe v točki i, d j : primanjkljaj povpraševanja v točki j, kjer i in j tečeta od 1 do 3. Rezultati analize občutljivosti izračunane z uporabo komercialnih paketov so naslednji: 6
Območja za vrednosti ponudbe in povpraševanja LO paket a 1 (2) a 2 (6) a 3 (5) b 1 (3) b 2 (3) b 3 (3) CPLEX [0, 3] [4, 7] [1, ) [2, 7] [2, 5] [2, 5] LINDO [1, 3] [2, ) [4, 7] [2, 4] [1, 4] [1, 7] PC-PROG [0, ) [4, ) [3, 6] [2, 5] [0, 5] [2, 5] XMP [0, 3] [6, 7] [1, ) [2, 3] [2, 3] [2, 7] OSL [0, 3] [4, 7] [1, ) [2, 7] [2, 5] [2, 5] EXCEL [0, 3] [4, 7] [1, ) [2, 5] [2, 7] [2, 5] Pravilno območje [0, ) [2, ) [1, ) [0, 7] [0, 7] [0, 7] Tabela očitno kaže na pomanjkljivost klasične metode analize občutljivosti. Analiza občutljivosti je orodje s katerim dobimo informacije o ozkih grlih in stopnjah prostosti problema. Informacije o problemu, ki jih dobimo s pomočjo komercialnih optimizacijskih paketov, so nejasni in ne omogočajo ustrezne interpretacije. V našem primeru opazimo očitno simetrijo med točkami povpraševanja, kar pa ni razvidno iz nobene od rešitev zgornjih šestih paketov. Paketi poleg območij za vrednosti ponudbe in povpraševanja kot rezultat analize občutljivosti določi tudi bazne spremenljivke (B, N ), ki so rezultat metode simpleksov: LO paket Bazne spremenljivke CPLEX x 12 x 21 x 22 x 23 x 31 s 3 LINDO x 11 x 23 x 31 x 32 x 33 s 2 PC-PROG x 22 x 23 x 31 x 33 s 1 s 3 XMP x 13 x 21 x 22 x 23 x 33 s 3 OSL x 12 x 21 x 22 x 23 x 31 s 3 EXCEL x 13 x 21 x 22 x 23 x 32 s 3 Opazimo, da paketa CPLEX in OSL pri analizi občutljivosti uporabita iste bazne spremenljivke, kljub temu pa dobimo različna območja za vrednosti ponudbe in povpraševanja. Občutljivost na vrednosti cen prevoza Trenutne vrednosti koeficientov cen c ij so vse enake 1. Posledično je vsak dopusten razvoz optimalen, če je vsota razvoza enaka 9. V primeru, da ena od poti prevoza postane dražja, lahko razvoz preusmerimo preko drugih cenejših poti in tako optimalna vrednost ostane enaka 9. Sledi, da je desna skrita cena vsakega od koeficientov cene enaka 0. V primeru, da pa ena od poti prevoza postane cenejša, hočemo po tej poti razvoziti kar največ blaga. Maksimalni prevoz iz prvega skladišča je enak 2 ter iz drugih dveh 3. Ker za vsako pot prevoza obstaja optimalna rešitev, za katero je prevoz po tej poti enak 0, nam znižanje koeficienta cene prevoza iz prvega skladišča za 1 enoto valute zniža celotno ceno razvoza za 2 enoti ter znižanje koeficienta cene prevoza iz drugih dveh skladišč za 1 enoto valute zniža celotno ceno razvoza za 3 enote. Tako smo našli levo in desno skrito ceno koeficientov cene. Ker sta leva in desna skrita cena različni, je trenutna vrednost vsakega od koeficientov cene prelomna točka. Očitno je interval linearnosti levo od točke preloma enak (, 1] in desno od točke preloma enak [1, ). 7
Naslednja tabela prikazuje skrite cene izračunane s pomočjo komercialnih optimizacijskih paketov. Skrite cene za koeficiente cene LO paket c 11 c 12 c 13 c 21 c 22 c 23 c 31 c 32 c 33 CPLEX 0 2 0 2 1 3 1 0 0 LINDO 2 0 0 0 0 2 1 3 1 PC-PROG 0 0 0 0 3 1 3 0 2 XMP 0 0 2 3 3 0 0 0 1 OSL 0 2 0 2 1 3 1 0 0 EXCEL 0 0 0 0 0 0 0 0 0 Pravilne vrednosti [2, 0] [2, 0] [2, 0] [3, 0] [3, 0] [3, 0] [3, 0] [3, 0] [3, 0] Opazimo, da skrita cena izračunana z uporabo paketov vedno leži na intervalu med levo in desno skrito ceno. Zadnja tabela prikazuje izračunana območja komercialnih paketov ter pravilni levi in desni strani območja za koeficiente cene. V primeru povečanja c 11, postane pot prevoza dražja od ostalih, zato optimalna rešitev ne bo vsebovala te poti. Po drugi strani pa, če c 11 zmanjšamo, bomo skozi to cenejšo pot prepeljali kar največ blaga, to je 2 enoti. Ne glede na to koliko se cena zniža, bo prevoz blaga po tej poti vedno enak 2 enoti. Podobno velja za c 21, samo da v primeru, ko c 21 leži na intervalu [0, 1], bo prevoz po tej poti enak 3 enote blaga, ko pa c 21 postane negativna pa se po tej poti splača prepeljati 6 enot blaga, kljub temu da imamo potem presežek ponudbe. To pa pomeni, da je c 21 = 0 prelomna točka. Območja za koeficiente cene LO paket c 11 c 12 c 13 c 21 c 22 c 23 c 31 c 32 c 33 CPLEX [1, ) (, 1] [1, ) [1, 1] [1, 1] [0, 1] [1, 1] [1, ) [1, ) LINDO (, 1] [1, ) [1, ) [1, ) [1, ) [1, 1] [1, 1] [0, 1] [1, 1] PC-PROG [1, ) [1, ) [1, ) [1, ) [0, 1] [1, 1] [0, 1] [1, ) [1, 1] XMP - - (, 1] [0, 1] [0, 1] [1, 1] [1, 1] [1, 1] [1, 1] OSL [1, ) [1, 1] [1, ) [1, 1] [1, 1] [1, 1] [1, 1] [1, ) [1, ) EXCEL [1, ) [1, ) (, 1] [0, 1] [1, 1] [1, 1] [1, ) [1, 1] [1, ) Levo območje (, 1] (, 1] (, 1] [0, 1] [0, 1] [0, 1] [0, 1] [0, 1] [0, 1] Desno območje [1, ) [1, ) [1, ) [1, ) [1, ) [1, ) [1, ) [1, ) [1, ) Opazimo, da če je skrita cena izračunana z uporabo paketa enaka levi ali desni skriti ceni, potem je območje izračunano z uporabo paketa podinterval pravilnega območja. Če pa skrita cena izračunana z uporabo paketa ni enaka levi ali desni skriti ceni, potem je območje izračunano z uporabo paketa enako izrojenemu intervalu [1, 1]. 8