knjiga_-_kalpic

download knjiga_-_kalpic

of 264

Transcript of knjiga_-_kalpic

Damir Kalpi Vedran Mornar

Operacijska istraivanja

Zagreb, 1996.

PREDGOVOROva knjiga nastala je prvenstveno radi toga ciljem da zadovolji potrebe studenata Fakulteta elektrotehnike i raunarstva Sveuilita u Zagrebu koji prema trenutnom nastavnom planu sluaju predmet Operacijska istraivanja na 4. godini smjera Raunarstvo i smjera Opa energetika. Predmet je jednosemestralan s 2 sata predavanja i 2 sata auditornih vjebi na tjedan. U provedbi nastave jedan manji broj sati auditornih vjebi koristi se kao laboratorijske vjebe, pri emu studenti posluuju gotovu programsku podrku iz tog podruja. Kako je gradivo iz operacijskih istraivanja dosta opseno i raznorodno, namjera nam je bila da se smanji potreba za kvalitetnim biljekama s predavanja i vjebi te da studentima po relativno pristupanoj cijeni prui literaturu koja odgovara gradivu spomenutog predmeta. Neke inae uobiajene teme iz operacijskih istraivanja (teorija posluivanja, pouzdanost, simulacije) ovdje su izostavljene jer se predaju u okviru drugih predmeta. Knjiga je takoer namijenjena i sluaima predmeta Operacijska istraivanja na postdiplomskom studiju raunarstva na istom fakultetu. Obraene su i neke teme koje nisu u nastavnom planu dodiplomskog studija, a osim toga knjiga olakava ukljuivanje u rad onim studentima koji taj predmet nisu sluali tijekom redovnog studija. Sadrani su opis i primjeri koritenja nae vlastite programske podrke za linearno i viekriterijsko programiranje i interaktivnu analizu osjetljivosti (LPE). Na zahtjev spremni smo isporuiti bilo demonstracijsku verziju programa LPE za raunala PC ili punu verziju prenosivu na veinu suvremenih raunala. Bit e nam dakako vrlo drago ako ova knjiga bude mogla posluiti i studentima drugih fakulteta i strunjacima u gospodarstvu. Knjiga izlazi u trenutku kad se u Hrvatskoj iz temelja mijenja gospodarski sustav. Dug niz godina oekivane ciljeve operacijskih istraivanja naa je sredina teko prihvaala. U tada vladajuem sistemu korelacija izmeu pojedinanog i opeg interesa najee je bila negativna. Rezultat takva obrnutog sustava vrijednosti oitovao se na podruju operacijskih istraivanja u ciljevima suprotnima od onih koji se mogu nai u literaturi. Bez pretjeranog karikiranja moemo navesti neke sluajeve iz prakse: elio se npr. maksimalni transportni troak jer prodava robe dobiva postotak od cijene koja ukljuuje i trokove prijevoza; cilj je bio ostvariti to vee zalihe jer se uz negativnu realnu kamatnu stopu na njima zaraivalo; nastojalo se to prije platiti inozemnom dobavljau, a to kasnije naplatiti izvezenu robu te tako izbjei negativne teajne razlike; cilj planiranja proizvodnje nije bilo ostvarenje dobiti ve stjecanje politikih poena itd. Koliko je zadovoljavanje takvih parcijalnih ciljeva nanijelo ope tete, teko je procijeniti. Opa je karakteristika bila i nedostatak motiva za stvarno unaprijeenje poslovanja. Zaraivalo se na nestaicama, odobrenje za vie cijene bilo je neusporedivo vanije od bilo kakvog tehnolokog ili organizacijskog napretka i slino. Vjerujemo da e u uvjetima zdrave trine privrede operacijska istraivanja nai odgovarajue mjesto kao pomo u donoenju poslovnih odluka. Treba meutim napomenuti da ovladavanje iskljuivo matematikim postupcima nije dovoljno da bi se jednostavno preslikali problemi iz realnog ivota, koji je uvijek sloeniji od uobiajenih idealizacija. Ova knjiga nema ambicija da u nekoj bitnijoj mjeri doprinese podruju primijenjene matematike. Teite je na inenjerskom pristupu. Obraene metode prema dananjim se trendovima ugrauju u informacijske sustave, sustave za pomo u donoenju odluka i u ekspertne sustave. Uz adekvatno programsko suelje omoguuju korisniku da se njima slui i onda kad nije upoznat

sa svim detaljima matematikih i programerskih postupaka. Za takav profil itatelja knjiga moe posluiti kao informacija o nekima od poznatih postupaka te tako dati poticaj da se oni primijene u prepoznatim situacijama u praksi. Ovom prilikom zahvaljujemo naim studentima koji su itali prvu verziju ove knjige i ukazali nam na niz propusta i pogreaka. Unaprijed zahvaljujemo za sve budue primjedbe i sugestije jer bismo eljeli da eventualno sljedee izdanje bude bolje.

U Zagrebu, veljae 1996.

Autori

SADRAJ1. UVOD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1. Povijest operacijskih istraivanja.. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2. Izrada modela. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2. LINEARNO PROGRAMIRANJE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1. Matematike osnove linearnog programiranja. . . . . . . . . . . . . . . . . . 2.1.1. Definicija linearnog programiranja. . . . . . . . . . . . . . . . . . . . 2.1.2. Definicija rjeenja. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.3. Primjer formuliranja i rjeavanja LP. . . . . . . . . . . . . . . . . . . 2.1.4. Grafiko rjeavanje linearnog programa. . . . . . . . . . . . . . . . 2.1.5. Simpleksna metoda. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.6. Simpleksna metoda u tablinom obliku. . . . . . . . . . . . . . . . 2.1.7. Ogranienja tipa = i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.8. Vrste rjeenja. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.9. Dualnost. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Revidirana simpleksna metoda. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1. Formuliranje transformiranog problema. . . . . . . . . . . . . . . 2.2.2. Izbor ulazne nebazine varijable.. . . . . . . . . . . . . . . . . . . . . 2.2.3. Izbor izlazne bazine varijable. . . . . . . . . . . . . . . . . . . . . . . 2.2.4. Stoerni razvoj i revizija inverzne baze. . . . . . . . . . . . . . . . 2.2.5. Raunske operacije u revidiranoj simpleksnoj metodi. . . . . 2.2.6. Numeriki primjer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.7. Skaliranje podataka. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.8. Numerike tolerancije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.9. Postupci u opem linearnom programu. . . . . . . . . . . . . . . . 2.3. Mjeovito-cjelobrojno programiranje. . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1. Algoritam grananja i ograivanja.. . . . . . . . . . . . . . . . . . . . 2.3.2. Primjene mjeovito-cjelobrojnog programiranja. . . . . . . . . 2.4. Separabilno programiranje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. VIEKRITERIJSKO PROGRAMIRANJE. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1. Podjela metoda viekriterijskog programiranja.. . . . . . . . . . . . . . . . 3.2. Metode optimizacije s vie funkcija cilja. . . . . . . . . . . . . . . . . . . . . . 3.2.1. Osnovni pojmovi i definicije. . . . . . . . . . . . . . . . . . . . . . . . . 3.2.2. Metode kod kojih se ne naglaava preferencije na funkcije cilja. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.3. Metode kod kojih se informacije o preferencijama daju prije rjeavanja problema. . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.4. Metode kod kojih se informacije o preferencijama daju naknadno. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 5 6 8 9 10 16 18 25 33 45 47 47 47 48 49 52 55 55 57 58 58 65 67 70 70 71 71 74 75 81

3.3. Metode optimalnog izbora. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1. Osnovni pojmovi.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.2. Transformacija atributa. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.3. Metode kod kojih se ne naglaavaju preferencije.. . . . . . . . 3.3.4. Metode kod kojih se naglaavaju preferencije na atribute ................................................ 3.3.5. Metode kod kojih se zadaju preferencije na mogunosti. . . 4. GRADIJENTNE METODE NELINEARNOG OPTIMIRANJA. . . . . . . . . . . 4.1. Optimiranje konkavne nelinearne funkcije bez ogranienja.. . . . . . 4.2. Optimiranje konkavne nelinearne funkcije uz linearna ogranienja. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.1. Projekcija vektora na pravac.. . . . . . . . . . . . . . . . . . . . . . . . 4.2.2. Produljenje vektora do pravca.. . . . . . . . . . . . . . . . . . . . . . . 4.2.3. Primjer optimizacije konkavne funkcije s ogranienjima. .

81 81 82 83 84 86 87 87 89 90 91 93

5. DINAMIKO PROGRAMIRANJE.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 5.1. Problem najbreg prijenosa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 5.2. Problem raspodjele investicija. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 6. ANALIZA MREA.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1. Osnovni pojmovi iz teorije grafova. . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2. Problem maksimalnog toka. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.1. Definicije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.2. Rjeenje linearnim programiranjem. . . . . . . . . . . . . . . . . . . 6.2.3. Algoritam za pronalaenje maksimalnog toka.. . . . . . . . . . 6.2.4. Primjer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3. Problem najkraeg puta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.1. Rjeenje linearnim programiranjem. . . . . . . . . . . . . . . . . . . 6.3.2. Metoda Bellman Ford. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.3. Dijkstrin algoritam. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.4. Iterativna modifikacija Bellman Fordova algoritma. . . . . 6.4. Problemi najduljeg puta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.5. Pronalaenje minimalnog stabla. . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6. Transportni problem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6.1. Formulacija transportnog problema kao linearni program ................................................ 6.6.2. Metoda MODI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.7. Problemi pridruivanja i smjetaja. . . . . . . . . . . . . . . . . . . . . . . . . . 6.7.1. Standardni problem pridruivanja. . . . . . . . . . . . . . . . . . . . 6.7.2. Nestandardni problem pridruivanja. . . . . . . . . . . . . . . . . . 6.7.3. Metoda grananja i ograivanja. . . . . . . . . . . . . . . . . . . . . . . 106 106 107 107 107 109 110 112 113 114 115 117 118 118 121 121 123 129 129 130 130

6.7.4. Problemi smjetaja centara posluivanja. . . . . . . . . . . . . . . 132 7. MRENO PLANIRANJE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1. Mrea s aktivnostima na granama.. . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.1. Rjeenje linearnim programiranjem. . . . . . . . . . . . . . . . . . . 7.1.2. Rjeenje analizom mrea.. . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.3. Fiktivne aktivnosti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2. Metoda kritinog puta i analiza trokova. . . . . . . . . . . . . . . . . . . . . 7.2.1. Analiza trokova enumeracijom. . . . . . . . . . . . . . . . . . . . . . 7.2.2. Analiza trokova matematikim programiranjem. . . . . . . . 7.3. Metoda PERT.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3.1. Proraun vjerojatnosti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.4. Mrea s aktivnostima u vorovima.. . . . . . . . . . . . . . . . . . . . . . . . . . 8. PROBLEM NABAVKE I ZAMJENE OPREME. . . . . . . . . . . . . . . . . . . . . . . 8.1. Izbor trenutka za zamjenu opreme.. . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.1. Aktualizacija. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2. Problem izbora opreme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9. PROBLEM VO\ENJA ZALIHA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.1. Deterministiki modeli. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.1.1. Nedostatak robe nije doputen. . . . . . . . . . . . . . . . . . . . . . . 9.1.2. Privremeno doputen nedostatak robe. . . . . . . . . . . . . . . . . 9.2. Stohastiki modeli. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2.1. Roba koja gubi na vrijednosti. . . . . . . . . . . . . . . . . . . . . . . . 9.2.2. Nedostatak robe izaziva trokove po koliini i vremenu. . . 9.2.3. Stohastiko kanjenje kod snabdijevanja. . . . . . . . . . . . . . . 10. DISKRETNI SLUAJNI PROCESI.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.1. Stacionarne vjerojatnosti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2. Klasifikacija Markovljevih lanaca. . . . . . . . . . . . . . . . . . . . . . . . . . 10.3. Vjerojatnost prvog dolaska ili prvog povratka. . . . . . . . . . . . . . . . . 10.4. Oekivano vrijeme prvog dolaska i prvog povratka. . . . . . . . . . . . . 10.5. Apsorbirajui lanci. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11. LINEARNO PROGRAMIRANJE NA RAUNALU. . . . . . . . . . . . . . . . . . . 11.1. Postupak izrade matematikih modela. . . . . . . . . . . . . . . . . . . . . . 11.1.1. Identifikacija problema prikladnog za rjeavanje s pomou LP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2. Programski sustav LPE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3. Primjeri koritenja linearnog programiranja.. . . . . . . . . . . . . . . . . 138 138 139 140 143 143 146 147 150 153 154 157 157 159 160 163 163 163 165 167 167 168 170 171 176 177 179 180 182 186 187 187 190 190

11.3.1. Jednostavni problem proizvodnje. . . . . . . . . . . . . . . . . . . . 11.3.2. Model viefazne proizvodnje. . . . . . . . . . . . . . . . . . . . . . . . 11.3.3. Problem smjese. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3.4. Problem prehrane. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3.5. Problem koritenja sirovina. . . . . . . . . . . . . . . . . . . . . . . . 11.3.6. Primjer problema pridruivanja. . . . . . . . . . . . . . . . . . . . . 11.3.7. Transportni problem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3.8. Optimizacija trajanja projekta. . . . . . . . . . . . . . . . . . . . . . 11.3.9. Rjeavanje sustava linearnih jednadbi. . . . . . . . . . . . . . . 11.4. Primjeri koritenja viekriterijskog programiranja. . . . . . . . . . . . 11.4.1. Problem proizvodnje i prodaje s meuskladitem. . . . . . . 11.4.2. Problem transporta .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.4.3. Organizacija proizvodnje. . . . . . . . . . . . . . . . . . . . . . . . . . . 12. LITERATURA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13. PRILOG: Zadaci iz linearnog programiranja.. . . . . . . . . . . . . . . . . . . . . . . .

190 199 204 204 206 207 211 213 219 221 221 222 224 226 229

Uvod

1

1. UVOD1.1. Povijest operacijskih istraivanjaOperacijska istraivanja (engl. Operations ili Operational Research, njem. Operationsforschung, fr. Recherche operationnelle, tal. Ricerca operativa) jesu struna i znanstvena disciplina koja se bavi pomaganjem kod donoenja odluka na bazi egzaktnih metoda. Operacijska istraivanja dobila su svoj naziv po operativnom stoeru britanske vojske u kojem su tijekom II. svjetskog rata postavljeni temelji te discipline, uz koritenje prethodnih znanja i iskustava iz vie oblasti. Nastanak operacijskih istraivanja dobro ilustrira njihovu zadau i razlog postojanja. Poetkom II. svjetskog rata Velika Britanija bila je suoena s materijalno nadmonijim neprijateljem. Budui da je postizanje ravnotee ili ak prednosti vrlo teko pa i nemogue postii u kratkom roku bez obzira na napore, preostalo je da se ograniena sredstva ili resursi iskoriste na to pametniji nain. S tom je svrhom u vojsci bila formirana grupa strunjaka iz razliitih oblasti. Poznati su problemi u kojima je grupa postigla vane rezultate: a) Statistikom obradom podataka o napadima britanske avijacije na njemake podmornice, ustanovljeno je da se napad najee odigrao u trenutku uranjanja podmornice te da je prosjena dubina iznosila 35 stopa. Bombe su meutim bile podeene da eksplodiraju na dubini od 100 stopa. Promjenom tempiranja Britanci su poveali efikasnost napada za 700%, a Nijemci su povjerovali da su konstruirane nove, bitno snanije bombe. Ta primjena ilustrira redukciju mnotva informacija na one bitne, koritenjem statistikih metoda. Nakon toga, praktiki bez ikakva ulaganja sredstava, postignuti su veliki efekti. b) Prilikom prijevoza materijala iz Amerike u Europu formirani su konvoji trgovakih brodova. Radi zatite konvoje su pratili ratni brodovi i oni su bili sredstvo kojeg manjka. Trebalo je odrediti optimalnu duljinu konvoja jer s jedne strane, za pratnju su utroeni ratni brodovi i to je vei konvoj, vea e koliina robe biti dopremljena, a s druge strane, ako konvoj napadnu nadmone neprijateljske snage, gubitak e biti manji ako je konvoj krai. Primjena ilustrira traenje optimuma izmeu suprotnih motiva. c) Razvijane su metode za to bolje koritenje radarske mree, za otkrivanje neprijateljskih brodova, za miniranje, bombardiranje itd. Nakon zavretka rata operacijska istraivanja ostala su i dalje vojna disciplina, meutim, uoeno je da borba za efikasnost i uspjeh na tritu sadri takoer elemente strategije i taktike, a uspjeh najvie ovisi o uspjenu i pravodobnu donoenju poslovnih odluka. Budui da su i poduzea napretkom tehnike postala sloenija, a uvjeti privreivanja podvrgnuti sve brim promjenama, postalo je nemogue odluivati iskljuivo na temelju iskustva i intuicije.

2

Operacijska istraivanja

Metode i postupci operacijskih istraivanja nali su tako civilnu primjenu kao pomo kod donoenja poslovnih odluka. Taj e aspekt biti razmatran u ovoj knjizi. Operacijska istraivanja dobila su presudnu pomo u razvoju raunarstva. Metode koje bi zbog sloenosti i dugotrajnosti postupaka, te zbog obilja podataka, imale samo teorijsku vrijednost, zahvaljujui raunalima, postale su stvarno primjenjive. Razvojem mikroraunala te su metode postale i iroko pristupane. Operacijska istraivanja jesu primijenjena disciplina koja koristi rezultate iz primijenjene matematike, numerike matematike, statistike, ekonomije, psihologije, pa i nekih drugih oblasti. Profesionalna etika operacijskih istraivaa trai objavljivanje metoda, ali uz uvanje tajni poduzea. Smatra se ipak da ima i otkria koja iz konkurentskih razloga nisu nikad objavljena. Osim na studijima ekonomije i praktine matematike, operacijska istraivanja javljaju se i na tehnikim fakultetima u okviru organizacije proizvodnje ili kao poseban predmet, tradicionalno na studijima elektrotehnike. Studenti orijentirani na raunarstvo vjerojatno e u poduzeima biti u prilici da na raunalu rjeavaju odreene probleme iz tog podruja koritenjem gotovih programskih paketa ili e razvijati vlastite specifine programe. Studenti energetike srest e se u praksi s problemima donoenja odluka koji se rjeavaju metodama operacijskih istraivanja.

1.2. Izrada modelaDa bi se mogla obaviti kvantitativna analiza nekog sustava iz realnog svijeta, nuno je izraditi matematiki model tog sustava. Postupak modeliranja dosta je osjetljiv i zahtijeva odreeno iskustvo, a moda i intuiciju. Moe se rei da gotovo i nema zbivanja u realnom svijetu koje bi se moglo potpuno tono prenijeti u matematiki model. Kod izrade modela zanemaruju se mnoge informacije i meusobne zavisnosti. U model se unose samo one veliine i one veze za koje se smatra da su relevantne za dobivanje rjeenja problema zbog kojeg se model izrauje. Veze i zavisnosti u realnom svijetu najee su nelinearne i nedeterministike. Meutim, i podaci o realnom svijetu nisu nikada apsolutno toni. Vano je da se kod izrade modela procijeni ili kvantitativnim metodama odredi tonost podataka, pa se onda u skladu s tim mogu pojednostavniti meusobne veze i zakonitosti. Na slici 1-1 shematski je prikazan postupak kod modeliranja. Analizom stanja u realnom svijetu dobiju se informacije za formulaciju modela. Odabranim postupcima nad modelom dobije se odziv, odnosno zakljuci o ponaanju modela. Te zakljuke treba interpretirati da bi bili upotrebivi u realnom svijetu. Te zakljuke treba usporediti sa zakljucima do kojih se dolazi analizom realnog svijeta, ali bez koritenja modela. Tek se tada mogu formulirati elementi za donoenje stvarne odluke.

Uvod

3

Slika 1-1 Proces modeliranja U (Ravindran et al., 1987) navedeno je 10 principa modeliranja koja emo ovdje u skraenom obliku prenijeti: 1. Ne izraujte kompliciran model ako i jednostavan moe posluiti. Ne treba teiti da se pod svaku cijenu pokae sav repertoar znanja ili da se impresionira korisnika. Preporuljiv je postupak pojednostavnjenja sve dok rjeenje ne postane matematiki izvodljivo, a nakon toga slijedi obogaivanje modela sve dok to bude i dalje matematiki izvodljivo. 2. Ne podeavajte problem da bi odgovarao tehnici rjeavanja. Kod snimanja stanja u realnom svijetu treba paziti da se i podsvjesno ne iskrivi slika u nastojanju da se problem svede u oblik koji moete rijeiti nekom od vama poznatih tehnika. Ne svodi se svaki problem na optimiranje, a moda niti ne zahtijeva rjeavanje metodama operacijskih istraivanja. 3. Postupak stvaranja zakljuaka o modelu mora biti rigorozan. U obradi modela ne smiju promai logike pogreke. U suprotnom, ne moe se znati jesu li pogrene pretpostavke ili postupci. Moe se izvesti analogija s programom na raunalu koji je formalno ispravan, ali zbog ugraene logike pogreke daje krive rezultate. 4. Model treba provjeriti prije ugradnje. Model se moe testirati na starim, ve obraenim podacima. Ako takvih nema, ulazne podatke treba generirati te ih varirati i na taj nain provjeriti ispravnost reakcije modela. Tonost reakcije modela ima smisla poboljavati sve dok ne postane sumjerljiva s tonosti ulaznih podataka. Vrijednost gotovo svakog modela s vremenom zastarijeva.

4

Operacijska istraivanja

5. Model ne treba nikad shvaati suvie doslovno. Budui da je model, i kad je kompliciran, uvijek samo pojednostavnjena slika stvarnosti, rezultate koji se dobiju njegovom obradom treba usporediti s iskustvenim podacima da se uoi jesu li logini. Ako ne djeluju logino, a to je ponekad sluaj, treba ustanoviti zato je to tako. Na taj nain obavlja se s jedne strane kontrola, a s druge se obogauju saznanja o modelu. 6. Ne treba oekivati da model rjeava probleme za koje nije bio projektiran. Kod izrade modela vodi se rauna o cilju koji se eli postii pa se ovisno o tome pojedini elementi realnog svijeta smatraju relevantnima ili nerelevantnima. Ako se izmijeni cilj, ne moe se oekivati da e postojei model biti adekvatan. 7. Ne treba pretjerati s prodavanjem istog modela. Jednom izraen model i ugraeni postupci za njegovo rjeavanje i interpretaciju mogu biti uz minimalne izmjene primjenjivi za rjeavanje razliitih klasa problema. Opasnost je da operacijski istraiva ne uoi razlike pa neadekvatnim rezultatom kompromitira i sebe i struku. 8. Znatne su koristi ve od same izrade modela. Izrada modela zahtijeva racionalnu analizu stvarnosti. Dogaa se da se pri tome otkriju odreene neloginosti koje su godinama bile prikrivene. Kao primjer moemo navesti sluaj iz prakse da se pripremanjem modela proizvodnje za linearno programiranje ustanovilo da postoje artikli ija je prodajna cijena nia od direktnih trokova izrade. Prije izrade modela te se artikle zbog njihove relativno visoke prodajne cijene smatralo izrazito profitabilnima. 9. Model ne moe biti bolji od ulaznih informacija. Kvaliteta rezultata dobivenih obradom modela ne moe biti bolja od kvalitete ulaznih informacija. Ni model niti raunalo ne mogu generirati informacije. Privid generiranja podataka moe se dobiti kod koritenja ekspertnih sustava. Meutim, tu se radi o tome da su kvalitetne informacije bile inicijalno unijete kod njegove izrade. Analizom podataka ija je priroda stohastika, neizvjesnost se moe kompenzirati, ali ne i ukloniti. Model ne treba biti bolji od kvalitete ulaznih podataka pa je bolje usmjeriti vie truda na poboljanje kvalitete podataka. 10. Modeli ne mogu nadomjestiti donosioca odluke. Operacijska istraivanja pruaju donosiocu odluke informacije koje mu pomau u donoenju odluke, ali osim kod rutinskog koritenja, ne predstavljaju i samu odluku. Openito, postoje aspekti realnog svijeta koji nisu obuhvaeni modelom bilo zbog toga to ih se ne moe kvantificirati ili zato to ovise o okruenju pa je njihovo pojavljivanje nepredvidivo.

Uvod

5

2. LINEARNO PROGRAMIRANJELinearno programiranje (LP) specijalni je sluaj matematikog programiranja, definiranog kao min/max f(x) uz gi(x) 0; i=1,...,m hj(x) = 0; j=1,...,k gdje je x vektor od n komponenti x1, x2,..., xn, a g1,...,gm i h1,...,hl jesu funkcije definirane u n-dimenzionalnom euklidskom prostoru. Kod linearnog programiranja za zadanu realnu linearnu funkciju od n strukturnih varijabli trai se ekstrem (minimum ili maksimum), uz uvjet da bude zadovoljeno m+k linearnih ogranienja postavljenih na strukturne varijable, a formuliranih u obliku linearnih nejednadbi i jednadbi.

2.1. Matematike osnove linearnog programiranja 2.1.1. Definicija linearnog programiranjaStandardna definicija problema linearnog programiranja ima oblik n max z = cjxj j=1 uz n

aijxj bij=1 xj 0

; i=1,...,m

; j=1,...,n

Varijable xj; j=1,...,n nazivaju se strukturnim varijablama. Ista definicija u matrinoj notaciji ima oblik max z = cTx uz Ax b x 0

Svi ostali oblici mogu se svesti na navedenu definiciju:

6

Operacijska istraivanja

a) Minimizacija: Maksimizira se suprotna funkcija (pomnoena s -1). max z(x) = cTx = - min- z(x)] b) Ogranienje tipa : Mnoenjem s -1 dobije se tip . n n aijxj bi -aijxj -bi j=1 j=1 c) Ogranienje tipa =: Uvode se 2 ogranienja i s istim iznosima. n n n aijxj = bi aijxj bi, aijxj bi j=1 j=1 j=1 d) Ogranienja na strukturne varijable: Formiraju se dodatni reci. e) Strukturna varijabla moe biti negativna (dj xj; dj < 0): Uvodi se supstitucija ' ' xj = xj - dj ; xj 0 f) Strukturna varijabla moe poprimiti bilo koju vrijednost (- < xj < +): Uvodi se supstitucija xj = xj - xj " '; xj 0, xj 0 ' " Navedene transformacije najee se u praksi ne koriste, ali ovdje slue da bi se pokazala univerzalnost navedene definicije linearnog programiranja.

2.1.2. Definicija rjeenjaRjeenjem se naziva bilo koja ureena n-torka (x1,...,xn) Rn Rjeenje je mogue ili dopustivo ako su sva postavljena ogranienja zadovoljena. Optimalno rjeenje jest ono mogue rjeenje za koje funkcija cilja z poprima maksimalnu vrijednost. Vrno mogue rjeenje takvo je rjeenje koje ne lei na spojnici bilo koja 2 druga mogua rjeenja. Spojnica rjeenja (x1 ',...,xn ') i (x1 ",...,xn jest skup toaka ") px1 "+(1-p)x1 ,..., pxn ' "+(1-p)xn ', 0 < p < 1. Na slici 2-1 prikazana je spojnica dviju toaka u dvodimenzionalnom prostoru.

Uvod

7

Slika 2-1 Spojnica dvaju rjeenja Sa slike je vidljivo da vrijedi x1 - x1 ' x2 - x2 ' = = x1 - x1 " ' x2 - x2 " '

p

8

Operacijska istraivanja

Tako je, za x1, x1 - x1 '

=

p

x1 - x1 " ' iz ega je x1 = px1 - px1 + x1 = px1 + (1-p)x1 " ' ' " ' odnosno openito x = px" + (1-p)x' Dva vrna mogua rjeenja jesu susjedna ako je njihova spojnica brid doputenog podruja. Ako postoji optimalno rjeenje s vrijednosti funkcije cilja z*, onda se ono nalazi i barem u jednom vrhu skupa. U suprotnom, ako su z' i z" vrijednosti funkcije cilja u dva susjedna vrha, a z* bude na njihovoj spojnici, vrijedilo bi z* = pz" + (1-p)z', 0 < p < 1 Iznos rjeenja na spojnici jest ponderirani prosjek vrnih rjeenja. Kako je suma pondera jednaka 1, mogua su samo tri meusobna odnosa izmeu z', z* i z": z' < z* < z" (1) z' > z* > z" z' = z* = z" (2) (3)

Uvod

9

Prve dvije mogunosti u suprotnosti su s pretpostavkom o optimalnosti z*. Iz tree mogunosti slijedi da ako ima barem dva optimalna rjeenja, onda je i njihova spojnica optimalno rjeenje.

2.1.3. Primjer formuliranja i rjeavanja LPPretpostavimo da raspolaemo s 3 stroja na kojima se mogu proizvoditi 2 razliita artikla. Artikl br. 1 obrauje se najprije na stroju br. 1, a finalizira se na stroju br. 3. Slino artikl br. 2 obrauje se na stroju br. 2, a finalizira takoer na stroju br. 3. Daljnja je pretpostavka da imamo na raspolaganju odreeni poznati broj sati rada na svakom od strojeva te da nam je cilj izabrati takav proizvodni asortiman koji e dati najveu realizaciju. Takoer moraju biti poznate produktivnosti strojeva i prodajne cijene finalnih artikala. Na slici 2-2 prikazan je tok proizvodnog procesa i upisani svi potrebni podaci. Treba uoiti da se koristi reciprona vrijednost produktivnosti, tj. vrijeme potrebno za obradu jedinine koliine artikla. Rjeenje postavljenog problema dat e optimalni plan proizvodnje, a analiza optimalnog rjeenja daje dodatne znaajne informacije donosiocu poslovnih odluka. Pretpostavka je da se svi proizvedeni artikli mogu i prodati.Stroj br.1 maksimalni kapacitet 4 h Stroj br.3 maksimalni kapacitet 18 h

1 (h/kg) 3 (h/kg) Artikl br.1 prodajna cijena 3 (NJ/kg) 2 (h/kg) 2 (h/kg) Artikl br.2 prodajna cijena 5 (NJ/kg)

Stroj br.2 maksimalni kapacitet 12 h

Slika 2-2 Jednostavan problem proizvodnje Navedeni jednostavan problem proizvodnje moe se s pomou jednadbi i ogranienja formulirati kao problem LP. Utroak vremena na stroju br. 1 upravno je proporcionalan obraenoj koliini artikla br. 1: STROJ..1 (h) = 1 (h/kg) ARTIKL.1 (kg) Slino vrijedi za stroj br. 2: STROJ..2 (h) = 2 (h/kg) ARTIKL.2 (kg) Kako se oba artikla finaliziraju na stroju br. 3, utroak vremena zbraja se:

10

Operacijska istraivanja

STROJ..3 (h) = 3 (h/kg) ARTIKL.1 (kg) + 2 (h/kg) ARTIKL.2 (kg) Utroak vremena ne moe biti vei od raspoloiva kapaciteta: STROJ..1 4 (h) STROJ..2 12 (h) STROJ..3 18 (h) Oito je da sve do sad spomenute veliine moraju biti nenegativne. U primjenama LP to je najee sluaj te se za sve varijable implicitno postavlja uvjet nenegativnosti. Ukoliko postavljena ogranienja nisu meusobno kontradiktorna, postoji beskonano mnogo rjeenja koja zadovoljavaju sva postavljenja ogranienja. Izmeu tih beskonano mnogo moguih (ili dopustivih) rjeenja odabire se ono koje daje najpovoljniju vrijednost funkcije cilja. U razmatranom sluaju izabrat e se onakav plan proizvodnje kojim se postie najvea realizacija. Potrebno je stoga definirati funkciju cilja, tj. realizaciju koja se iskazuje u nekim novanim jedinicama (NJ): REALIZ (NJ) = 3 (NJ/kg) ARTIKL.1 (kg) + 5 (NJ/kg) ARTIKL.2 (kg)

2.1.4. Grafiko rjeavanje linearnog programaBudui da je rjeenje problema jednoznano definirano ako su npr. poznate koliine ARTIKL.1 i ARTIKL.2, problem je dvodimenzionalan. Zbog toga ga je lako rijeiti grafiki. Svako od ogranienja moe se predoiti pravcem koji dijeli ravninu (ARTIKL.1, ARTIKL.2) u 2 poluravnine; jedna sadri mogue ili dopustive toke, a druga sadri toke koje ne zadovoljavaju to ogranienje. Implicitni zahtjev za nenegativnost ograniava podruje na 1. kvadrant.

Slika 2-3 Grafiko rjeenje jednostavnog problema proizvodnje

Uvod

11

Iz slike 2-3, 11-1 vidljivo je da ogranienja tvore poligon. Toke unutar poligona predstavljaju sva mogua rjeenja problema. Mogua je jednostavna provjera za bilo koju toku (ARTIKL.1, ARTIKL.2) iz poligona. Uvrtenjem odabranog para vrijednosti u jednadbe kojima se izraunava utroak vremena na strojevima pokazuje se da niti za jedan od strojeva raspoloivi kapacitet nee biti premaen. Prema tome, slobodno se moe izabrati ona toka, tj. onaj plan proizvodnje koji je po postavljenom kriteriju maksimalne realizacije najpovoljniji. Uvoenjem realizacije prelazi se u trodimenzionalni prostor s koordinatama (ARTIKL.1, ARTIKL.2, REALIZ). U tom prostoru funkcija cilja predstavlja ravninu koja prolazi kroz ishodite. Lako se moe pronai projekcija pravca iz te ravnine koji predstavlja toke s istom vrijednou funkcije cilja koja odgovara skupu toaka iz poligona. Npr. ako se odabere plan proizvodnje (1, 1), tj. 1 kg artikla br. 1 i 1 kg artikla br. 2, REALIZ postaje 31 + 51 = 8 NJ. Moe se povui projekcija pravca: 3ARTIKL.1 + 5ARTIKL.2 = 8 Najbri rast realizacije okomit je na povuenu projekciju pravca i usmjeren je od ishodita. Translacijom u tom smjeru poveava se realizacija. Na primjer, toka (3,2) daje iznos realizacije 33 + 52 = 19 NJ. Zato treba translatirati projekciju to je mogue dalje u smjeru rasta funkcije cilja, a da sadri barem jednu toku iz poligona moguih rjeenja. Na taj se nain dobije plan proizvodnje (2, 6) koji daje maksimalnu realizaciju. To znai da proizvodnjom 2 kg artikla br. 1 i 6 kg artikla br. 2 postie se 36 NJ realizacije. Uz postojee uvjete nema rjeenja boljeg od tog. Daljnje poboljanje realizacije mogue je samo izmjenom nekih od uvjeta. Na slici 2-3, 11-1 se vidi da optimum lei na sjecitu ogranienja za strojeve br. 2 i br. 3. To znai da su ti strojevi u potpunosti iskoriteni i predstavljaju tzv. usko grlo proizvodnje. Programski je mogue analizirati efekte proirenja uskih grla, a rezultate e se u ovom sluaju moi interpretirati i grafiki. Meutim, treba biti svjestan da su grafika rjeenja ograniena na dvodimenzionalni prostor. U viedimenzionalnom prostoru grafiko rjeavanje bi bilo vrlo sloeno i krajnje neprikladno.

2.1.5. Simpleksna metodaSimpleksnu metodu razvio je G.B.Dantzig 1947. godine. Od prve ugradnje na raunalu pa sve do danas usavravani su numeriki postupci njene realizacije, ali se u osnovi nije mijenjala. Iako je bilo vie pokuaja da se pronae efikasniji algoritam, tek je 1984. N. Karmarkar razvio upotrebljiv algoritam, ija su prva testiranja dala obeavajue rezultate, pogotovo za rjeavanje velikih problema (vie desetaka tisua ogranienja).

12

Operacijska istraivanja

Simpleksna metoda jest iterativni postupak, koji u svakom koraku rjeava sustav linearnih jednadbi. Za rjeavanje standardnog problema linearnog programiranja i uz uvjet bi 0 za i=1,...,m algoritam se sastoji od vie koraka. Linearni program u standardnom obliku izraen strukturnim varijablama n max z = cjxj j=1 uz n

aijxj bij=1 xj 0;

; i=1,...,m j=1,...,n

uvoenjem dopunskih varijabli prelazi u sljedeu formu n max z = cjxj j=1 uz n aijxj + xn+i = bi ; i=1,...,m j=1 xj 0; j=1,...,n+m Sustav linearnih jednadbi sad se sastoji od m jednadbi s m+n nepoznanica. Rjeenje toga sustava (s dopunskim varijablama) naziva se proireno rjeenje. Proireno vrno rjeenje naziva se bazinim rjeenjem. Sustav u kojem ima vie nepoznanica nego linearno nezavisnih jednadbi, ima beskonano mnogo rjeenja. Budui da optimalno rjeenje mora biti i vrno rjeenje, treba ga traiti meu bazinim rjeenjima. Da bi bazino rjeenje bilo mogue, ono mora biti u prvom kvadrantu, zbog postavljenih uvjeta nenegativnosti. Simultanim rjeavanjem sustava od m linearnih jednadbi s m+n nepoznanica dobije se bazino rjeenje ako se prethodno izabere n varijabli i fiksira ih na 0. Te se varijable nazivaju nebazinima. Postoji najvie (m+n)!

m!n! naina da se od m+n varijabli izabere njih n nebazinih, prema tome ima isto najvie toliko bazinih rjeenja.

Uvod

13

Sama po sebi namee se ideja da se do optimuma doe pronalaenjem svih bazinih rjeenja. Meutim, ve sustav s 10 linearnih ogranienja i 5 nepoznanica ima (10+5)! = 3003 bazina rjeenja. 10!5! Sustav s 20 ogranienja i 10 nepoznanica ima ak 30 045 015 bazinih rjeenja, to bi znailo da za takav, u praksi zanemarivo malen problem, treba preko 30 milijuna puta rijeiti sustav s 20 jednadbi i 20 nepoznanica. Stvarni problemi iz prakse sastoje se od vie stotina, pa i tisua ogranienja, te je oito da ni na najbrim raunalima taj pristup nee dovesti do rezultata. Zbog toga se u simpleksnoj metodi ispituju samo mogua bazina rjeenja, i to tako da svako sljedee rjeenje nije loije od prethodnoga. Za odreivanje poetnog bazinog rjeenja odabire se n nebazinih varijabli. Te se varijable fiksiraju na nulu i time omoguuju jednoznano rjeavanje sustava od m jednadbi s m nepoznanica. Pogodno je kao nebazine na poetku odabrati strukturne varijable. Tada preostaje m dopunskih varijabli u m jednadbi s tim da se svaka od tih dopunskih varijabli nalazi samo u po jednoj jednadbi, i to s koeficijentom 1. Takav izbor omoguuje izravno oitavanje prvog mogueg bazinog rjeenja. Ispituje se bi da li porast neke od nebazinih varijabli poboljao funkciju cilja. Ako bi, obavlja se zamjena jedne takve ulazne nebazine i jedne izlazne bazine varijable, i to tako da novo bazino rjeenje bude i dalje mogue. Kad se ne moe nai takva ulazna nebazina varijabla koja bi svojim porastom s vrijednosti 0 poboljala funkciju cilja, rjeenje je optimalno.

2.1.5.1. Numeriki primjerVratimo se jednostavnom modelu proizvodnje iz poglavlja 2.1.3. Ako, zbog jednostavnosti pisanja, sa x1 oznaimo proizvedenu koliinu artikla br.1, a sa x2 proizvedenu koliinu artikla br.2, tada model glasi max z = 3x1 + 5x2 uz ogranienja x1 4 2x2 12 3x1 + 2x2 18 x1, x2 0

Nejednadbe ogranienja transformiraju se u jednadbe dodavanjem dopunskih varijabli x3, x4 i x5, pa imamo max z = 3x1 + 5x2 uz x1 + x3 = 4 2x2 + x4 = 12 3x1 + 2x2 + x5 = 18 x1, x2, x3, x4, x5 0

14

Operacijska istraivanja

Potrebno je odabrati poetno mogue bazino rjeenje, to znai da moramo odabrati 3 bazine i 2 nebazine varijable, i to tako da sve bazine varijable imaju pozitivnu vrijednost. Jedino oigledno mogue bazino rjeenje moemo postii tako da x1 i x2 odaberemo za nebazine, iz ega slijedi da su x3, x4 i x5 bazine varijable. Treba primijetiti da su u gornjem sustavu sve bazine varijable izraene preko nebazinih varijabli, ime se vrijednost varijabli u rjeenju moe odmah oitati. Ako i funkciju cilja z proglasimo bazinom varijablom i izrazimo je preko nebazinih varijabli imamo sustav z = 0 + 3x1 + 5x2 x3 = 4 - x1 x4 = 12 - 2x2 x5 = 18 - 3x1 - 2x2 iz kojeg direktno moemo oitati poetno rjeenje x1 = 0, x2 = 0, x3 = 4, x4 = 12, x5 = 18, z = 0 Za ostala bazina rjeenja koja bismo mogli odabrati nije na prvi pogled oito jesu li mogua. U svakoj iteraciji simpleksnog postupka treba odabrati jednu varijablu koja e postati bazinom, i jednu varijablu koja e time postati nebazinom. Te emo varijable nazvati ulazna nebazina i izlazna bazina varijabla. Za ulaznu nebazinu varijablu poeljno je odabrati onu varijablu iji e prirast najvie popraviti funkciju cilja. Kandidate za ulaznu nebazinu varijablu oigledno treba traiti meu trenutno nebazinim varijablama, u naem sluaju x1 i x2. Kao mjera za poboljanje moe nam posluiti promjena funkcije cilja uz jedinini prirast ulazne nebazine varijable. Jedininim porastom varijable x1 funkcija cilja porast e za 3 jedinice. Promjena vrijednosti za x1 izazvat e promjenu vrijednosti dotadanjih bazinih varijabli. Ako x1 poraste s 0 na 1, to e, da bi druga jednadba bila zadovoljena, uzrokovati smanjenje bazine varijable x3 za 1. Prema etvrtoj jednadbi, x5 smanjit e se za 3. Slino se razmatranje moe provesti za x2, pri emu dobivamo promjenu funkcije cilja u iznosu od 5 jedinica. Povoljnije je, prema tome, odabrati x2 za ulaznu nebazinu varijablu. Potrebno je, meutim, izraunati koliko ta varijabla moe porasti a da pri tome rjeenje ostane mogue, tj. da niti jedna varijabla ne postane negativna. Iz tree jednadbe lako se vidi da ako x2 poraste na 6, vrijednost varijable x4 pada na 0. Svaki daljnji prirast varijable x2 moe se kompenzirati jedino negativnom vrijednou varijable x4, to nije dozvoljeno. Na jednak nain iz etvrte jednadbe zakljuujemo da x2 moe rasti do 9 (varijabla x1 jest, podsjetimo se, nebazina i ima vrijednost 0). Zajedno uzevi, moemo dopustiti manji od ta dva prirasta. Time vrijednost za x4 postaje 0 i x4 naputa bazu. Da bi se novo bazino rjeenje moglo oitati, potrebno je ponovo izraziti bazine varijable pomou nebazinih, tj. postii da u svakoj jednadbi postoji samo jedna bazina varijabla,i to

Uvod

15

s koeficijentom 1. To emo uiniti Gauss Jordanovom eliminacijom nakon prebacivanja svih varijabli na lijevu stranu znaka jednakosti. Trea jednadba dobit e potreban oblik ako je podijelimo s 2: = 0 z - 3x1 - 5x2 x1 + x3 = 4 x2 + 1/2x4 = 6 3x1 + 2x2 + x5 = 18 Iz etvrte jednadbe x2 moemo ukloniti tako da treu jednadbu pomnoenu s -2 dodamo etvrtoj pa imamo z - 3x1 - 5x2 = 0 x1 + x3 = 4 x2 + 1/2x4 = 6 3x1 x4 + x5 = 6 Konano, mnoenjem tree jednadbe s 5 i dodavanjem u jednadbu koja odgovara funkciji cilja dobije se = 30 + 5/2x4 z - 3x1 x1 + x3 = 4 x2 + 1/2x4 = 6 3x1 x4 + x5 = 6 iz ega oitavamo x1 = 0, x2 = 6, x3 = 4, x4 = 0, x5 = 6, z = 30. Kandidati za ulaznu nebazinu varijablu sada su nebazine varijable x1 i x4. Jedinini prirast od x1 uzrokovat e poveanje funkcije cilja za 3 i smanjenje bazinih varijabli x3 za 1 (iz druge jednadbe) i x5 za 3 (iz tree jednadbe). Jedinini prirast od x4 uzrokuje smanjenje x2 za 1/2 (iz tree) i poveanje x5 za 1 (iz etvrte jednadbe). Promjena funkcije cilja u tom je sluaju -5/2, to je u suprotnosti s ciljem optimizacije. Dakle za ulaznu nebazinu varijablu odabrat emo x1. Prema drugoj jednadbi, dozvoljeni prirast za x1 jest 4, a prema etvrtoj, 6/3 tj. 2. Odabiremo manji prirast, ime x5 postaje nebazina varijabla. Postupkom eliminacije dobivamo sustav z + 3/2x4 + x5 = 36 x3 + 1/3x4 - 1/3x5 = 2 = 6 + 1/2x4 x2 x1 - 1/3x4 + 1/3x5 = 2 iz kojeg izravno oitavamo rjeenje x1 = 2, x2 = 6, x3 = 2, x4 = 0, x5 = 0, z = 36 Iz retka koji odgovara funkciji cilja vidi se da promjene baze, dakle porast nebazinih varijabli x4 ili x5 donosi negativnu promjenu funkcije cilja, pa zakljuujemo da je postignut optimum.

16

Operacijska istraivanja

Varijable x4 i x5 nadopunjuju ogranienja na kapacitet strojeva 2 i 3. U optimalnom rjeenju one imaju vrijednost nula, to znai da su kapaciteti tih strojeva iskoriteni maksimalno. Varijabla x3 svojom vrijednou pokazuje koliko je na stroju 1 jo ostalo neutroena vremena. Ako se ograniimo na dvije dimenzije problema koje odgovaraju stvarnim veliinama, x1 i x2, moemo primijetiti da je simpleksni postupak krenuo iz toke t1 = (0, 0) preko t2 = (0, 6) do konanog rjeenja t3 = (2, 6). Iz slike 2-3, 11-1 vidimo da su te toke vrhovi poligona koji ograniava dopustivo podruje. To e biti sluaj i u viedimenzionalnom prostoru. Simpleksni postupak kretat e se uvijek od vrha do vrha dopustivog podruja prema boljem rjeenju ili prema onom koje je barem jednako dobro. Valja naglasiti da promjena funkcije cilja ne mora uvijek biti kriterij koji e postupak najbre dovesti do optimuma. Ako je za neki hipotetiki primjer dopustivo podruje ogranieno kao na slici 2-4, postupak e iz ishodita krenuti u pravcu toke A jer je koeficijent u funkciji cilja uz x2 vei. Izbor toke B kao sljedeeg vrha bio bi neusporedivo bolji, ali postupak to ne moe uoiti.

Slika 2-4 Kretanje simpleksnog postupka prema optimumu

Uvod

17

2.1.6. Simpleksna metoda u tablinom oblikuPromotrimo sljedei problem: Televizori tipa A postiu prodajnu cijenu od 410 NJ po komadu, zahtijevaju 4 sata rada u odjelu za pripremu i 1 sat rada u odjelu za sastavljanje. Televizori tipa B postiu prodajnu cijenu od 490 NJ, provode 2 sata u odjelu za pripremu i 3 sata u odjelu za sastavljanje. Sat rada odjela za pripremu kota 9 NJ, dok sat rada odjela za sastavljanje kota 6 NJ. Zna se da se na tritu moe plasirati najvie 100 televizora, te da je raspoloivo najvie 160 sati pripremnog odjela i 180 sati odjela za sastavljanje. Potrebno je odrediti proizvodni program koji daje maksimalnu kontribuciju ili doprinos za pokrie, tj. maksimalnu razliku izmeu prihoda od prodaje i direktnih trokova izrade. Ako sa x1 oznaimo broj proizvedenih televizora tipa A, a sa x2 broj proizvedenih televizora tipa B, funkcija cilja ima oblik max z = (410 - 49 - 16)x1 + (490 - 29 - 36)x2 = 368x1 + 454x2 uz x1 + x2 100 4x1 + 2x2 160 1x1 + 3x2 180 x1, x2 0 Ako proirimo model dopunskim varijablama, proglasimo x1 i x2 za nebazine varijable, ime smo sigurni u mogue rjeenje, te izrazimo funkciju cilja preko nebazinih varijabli, dobit emo ovaj sustav: = 0 z - 368x1 - 454x2 x1 + x2 + x3 = 100 4x1 + 2x2 + x4 = 160 + x5 = 180 x1 + 3x2 xi 0, i=1,...,5 Taj se sustav moe napisati u tablinom obliku: Iteracija 0 Desna Baza z x1 x2 x3 x4 x 5 strana z 1 -368 -454 0 0 0 0 x3 0 1 1 1 0 0 100 x4 0 4 2 0 1 0 160 x5 0 1 3 0 0 1 180

U retku koji odgovara funkciji cilja ima negativnih koeficijenata. Kako je negativnost nastala prebacivanjem varijabli s desne na lijevu stranu jednadbe za funkciju cilja, poveanjem vrijednosti za varijablu koja uz sebe nosi negativni koeficijent poveat e se i vrijednost funkcije cilja, to je i cilj optimizacije. Za ulaznu nebazinu varijablu odabrat emo x2 jer ima po apsolutnoj vrijednosti vei negativni koeficijent i time vie doprinosi poboljanju funkcije cilja. Potrebno je jo odrediti i izlaznu bazinu varijablu. Izlazna bazina varijabla bit e ona koja porastom ulazne nebazine varijable (u ovom sluaju x2) prva padne na nulu. Redak izlazne bazine varijable bit e redak s najmanjim nenegativnim konanim kvocijentom desne strane i koeficijenta uz ulaznu nebazinu varijablu: Iteracija 0 Desna

18

Operacijska istraivanja

Baza z x1 x2 x3 x4 x 5 strana Kvocijent z 1 -368 -454 0 0 0 0 x3 0 1 1 1 0 0 100 100/1 = 100 x4 0 4 2 0 1 0 160 160/2 = 80 0 1 3 0 0 1 180 180/3 = 60 x5

Redak u kojem je pronaen najmanji odnos identificira izlaznu bazinu varijablu (u ovom sluaju x5) i naziva se stoernim retkom. Da bi se direktno oitalo rjeenje obavlja se stoerni razvoj koji zapoinje tako da se stoerni redak podijeli stoerom: Iteracija 0 Desna Baza z x1 x2 x3 x4 x 5 strana z x3 x4 x2 0 1/3 1 0 0 1/3 60

Modificirani redak pomnoen s odgovarajuim koeficijentom dodaje se ostalim retcima tako da se eliminiraju koeficijenti u stupcu ispod varijable (sada ve bazine) x2. Iteracija 1 Desna Baza z x1 x2 x3 x4 x 5 strana z 1 -650/3 0 0 0 454/3 27240 x3 0 2/3 0 1 0 -1/3 40 0 10/3 0 0 1 -2/3 40 x4 x2 0 1/3 1 0 0 1/3 60

U retku koji odgovara funkciji cilja ima jo negativnih koeficijenata, to znai da postupak nije zavren. Za ulaznu nebazinu varijablu odabire se x1 i rauna minimalni odnos desne strane i koeficijenta u stupcu ispod x1.

Uvod Iteracija 1 Desna Baza z x1 x2 x3 x4 x 5 strana Kvocijent z 1 -650/3 0 0 0 454/3 27240 x3 0 2/3 0 1 0 -1/3 40 40*3/2 = 60 0 10/3 0 0 1 -2/3 40 40*3/10 = 12 x4 x2 0 1/3 1 0 0 1/3 60 60*3 = 180

19

Za izlaznu bazinu varijablu odabire se dakle x4. Vano je primijetiti da svaki negativni kvocijent zapravo znai beskonani prirast ulazne nebazine varijable. Da je neki od koeficijenata ispod ulazne nebazine varijable bio negativan, to bi znailo da se prirast te varijable kompenzira prirastom varijable koja je u tom retku bazina, pa takav redak ne predstavlja ogranienje za prirast ulazne nebazine varijable. Nakon stoernog razvoja dobivamo tablicu: Iteracija 2 Desna Baza z x1 x2 x3 x4 x 5 strana z 1 0 0 0 65 108 29840 x3 0 0 0 1 -1/5 -1/5 32 x1 0 1 0 0 3/10 -1/5 12 x2 0 0 1 0 -1/10 2/5 56

U retku koji odgovara funkciji cilja nema vie negativnih koeficijenata, iz ega zakljuujemo da je postignut optimum: x1 = 12, x2 = 56, x3 = 32, x4 = 0, x5 = 0, z = 29840 Prema tome, optimalni plan proizvodnje sastoji se u proizvodnji 12 televizora tipa A i 56 televizora tipa B. Zanimljivo je analizirati i vrijednosti dopunskih varijabli x3, x4 i x5. Varijabla x3 nadopunjuje ogranienje na broj televizora koji se mogu plasirati na trite. x3 ostala je bazina i njena vrijednost pokazuje koliko bi se jo televizora moglo prodati prije nego to trite doe u zasienje. x4 i x5 nadopunjuju ogranienja na kapacitet odjela i njihova vrijednost 0 ukazuje na to da su kapaciteti oba odjela potpuno utroeni.

2.1.7. Ogranienja tipa = i 2.1.7.1. Metoda veliko MPrimjer: Na kontroli proizvoda u nekoj tvornici rade kvalificirani i visokokvalificirani kontrolori. Dnevno je potrebno kontrolirati barem 1800 proizvoda. VKV kontrolori kontroliraju 25 proizvoda na sat uz 98-postotnu sigurnost, a plaeni su 5 NJ na sat. KV kontrolori kontroliraju 15 proizvoda na sat uz 95-postotnu sigurnost, a plaeni

20

Operacijska istraivanja

su 3 NJ na sat. Raspoloivo je ukupno 6 VKV i 10 KV kontrolora. Radno vrijeme jest 8 sati na dan. Svaki neispravan proizvod koji se propusti na trite stoji poduzee 2 NJ. Treba rasporediti kontrolore tako da se posao obavi uz najmanji troak. Ako se s x1 oznai broj VKV, s x2 broj KV kontrolora, moemo postaviti sljedea ogranienja: x1 6 x2 10 Nejednadba za dnevnu produktivnost uz radno vrijeme od 8 sati glasi (8 h 25 kom/h) x1 + (8 h 15 kom/h) x2 1800 kom odnosno 200 x1 + 120 x2 1800 Ukupni troak je (8 h 5 NJ/h + 2 NJ/kom 8 h 25 kom/h 0.02) x1 + (8 h 3 NJ/h + 2 NJ/kom 8 h 15 kom/h 0.05) x2 Nakon to se provedu izraunavanja i, zbog lakeg raunanja, nejednadba za produktivnost podijeli s 40, LP formulacija problema ima oblik min z = 48x1 + 36x2 uz x1 6 x2 10 5x1 + 3x2 45 Nejednadbe sada treba pretvoriti u jednadbe. S nejednadbama koje ograniavaju broj kontrolora nema problema dodaju se dopunske varijable: x1 + x3 = 6 x2 + x4 = 10 Da bi se nejednadba za produktivnost pretvorila u jednadbu uvoenjem neke nove varijable koja mora imati pozitivnu vrijednost, potrebno je izvriti oduzimanje: 5x1 + 3x2 - x5 = 45 Sad se, meutim, iz sustava ne moe direktno oitati prvo mogue bazino rjeenje koje je neophodno za pokretanje simpleksnog postupka. Ako bi se za bazinu varijablu odabralo x5, to bi znailo da je njena vrijednost -45, to nije dozvoljeno. Zato se kod transformacije nejednadbe tipa , osim dodavanja dopunske varijable s negativnim predznakom, dodaje i tzv. umjetna varijabla. Tako nastane jednadba koja ima oblik _ 5x1 + 3x2 - x5 + x 6 = 45 Umjetna varijabla, za razliku od dopunske varijable, predstavlja prekoraenje ogranienja u nedoputenom smjeru. Zato je potrebno osigurati to da umjetne varijable ne budu bazine u konanom rjeenju. To se moe uiniti tako da se umjetna varijabla uvede u funkciju cilja s vrlo nepovoljnim koeficijentom. Kod runog

Uvod

21

raunanja uobiajeno je taj koeficijent oznaiti sa M, odakle i naziv metodi, koja se u literaturi zove metodom veliko M (Big M). Linearni program sada glasi _ + Mx 6 Min z = 48x1 + 36x2 uz x1 + x3 = 6 x2 + x4 = 10 _ + x 6 = 45 - x5 5x1 + 3x2 ili u tablinom obliku _ Iteracija 0 Desna Baza z x1 x2 x3 x4 x5 x 6 strana z 1 -48 -36 0 0 0 -M 0 x3 0 1 0 1 0 0 0 6 x4 0 0 1 0 1 0 0 10 _ x6 0 5 3 0 0 -1 1 45

Iz te tablice ne moe se direktno oitati bazino rjeenje, jer u retku koji odgovara funkciji cilja postoje dvije bazine varijable s koeficijentom razliitim od nule. Iz istog razloga ne moe se oitati ni promjena funkcije cilja uz promjenu nebazinih _ varijabli. Zato iz prvog retka eliminiramo koeficijent uz bazinu varijablu x 6 tako da etvrti redak pomnoen s M dodamo prvom retku: _ Iteracija 0 Desna Baza z x1 x2 x3 x4 x5 x 6 strana z 1 5M-48 3M-36 0 0 -M 0 45M x3 0 1 0 1 0 0 0 6 x4 0 0 1 0 1 0 0 10 _ x6 0 5 3 0 0 -1 1 45

Sad su sve bazine varijable izraene s pomou nebazinih, pa moemo izabrati ulaznu nebazinu varijablu. Kako je rije o minimizaciji, traimo najvei pozitivni koeficijent u retku koji odgovara funkciji cilja treba se podsjetiti da taj redak zapravo glasi z = 45M - (5M-48)x1 - (3M-36)x2 + Mx5 tj. da pozitivni koeficijent u tablici odgovara negativnom koeficijentu u jednadbi. Prisjetimo se, kod postupka maksimizacije traili smo negativni koeficijent koji je po apsolutnoj vrijednosti najvei. To je i jedina razlika u simpleksnom postupku izmeu maksimizacije i minimizacije.

22

Operacijska istraivanja

Za ulaznu nebazinu varijablu izabiremo x1. Zbog najmanjeg kvocijenta desne strane i koeficijenta u stupcu uz ulaznu nebazinu varijablu kao izlaznu bazinu varijablu izabiremo x3 _ Iteracija 0 Desna Baza z x1 x2 x3 x4 x5 x 6 strana Kvocijent z 1 5M-48 3M-36 0 0 -M 0 45M x3 0 1 0 1 0 0 0 6 6 x4 0 0 1 0 1 0 0 10 _ x6 0 5 3 0 0 -1 1 45 9

Nakon stoernog razvoja (dijeljenja retka sa stoernim elementom i eliminacije ostalih koeficijenata u stupcu ispod x1) dobijemo tablicu: _ Iteracija 1 Desna Baza z x1 x2 x3 x4 x5 x 6 strana Kvocijent z 1 0 3M-36 -5M+48 0 -M 0 15M+288 x1 0 1 0 1 0 0 0 6 x4 0 0 1 0 1 0 0 10 10 _ x6 0 0 3 -5 0 -1 1 15 5

_ Za ulaznu nebazinu varijablu izabire se x2, a bazu naputa x 6. Nakon stoernog razvoja imamo _ Iteracija 2 Desna Baza z x1 x2 x3 x4 x5 x 6 strana z 1 0 0 -12 0 -12 -M+12 468 x1 0 1 0 1 0 0 0 6 x4 0 0 0 5/3 1 1/3 -1/3 5 x2 0 0 1 -5/3 0 -1/3 1/3 5

U retku koji odgovara funkciji cilja vie nema pozitivnih koeficijenata, iz ega zakljuujemo da je postignut minimum. Iz tablice moemo oitati rjeenje _ x1 = 6, x2 = 5, x3 = 0, x4 = 5, x5 = 0, x 6 = 0, z = 468. Dakle, treba zaposliti 6 VKV i 5 KV kontrolora, to e rezultirati ukupni dnevnim trokom od 468 NJ. Dopunska varijabla x4 jest bazina s iznosom 5, to znai da je ostalo jo 5 nerasporeenih KV kontrolora.

Uvod

23

2.1.7.2. Dvofazna simpleksna metodaMetoda veliko M nije prikladna za ugradnju u raunalo zbog koeficijenta M kojemu je potrebno pridijeliti neku numeriku vrijednost. Za konkretnu vrijednost nije se lako odluiti, ali obino se uzima broj za nekoliko redova veliine vei od najveeg koeficijenta koji se oekuje u matrici. Meutim, prisustvo brojeva koji se razlikuju za vie redova veliine u elektronikim raunalima, zbog njihove ograniene tonosti, dovodi do numerikih potekoa. Da bi se to izbjeglo, povoljnije je za rjeavanje odabrati dvofaznu simpleksnu metodu, koju emo ilustrirati sljedeim primjerom. Za prehranu u nekom periodu raspoloive su 3 vrste konzervi, iji je osnovni sastav dan tablicom: Tip konzerve Kalorija Vitamina C (mg) 1 2000 50 2 1500 100 3 1000 60

U tom je periodu potrebno konzumirati barem 600 mg vitamina C. Kojih 10 konzervi treba odabrati da bi se, pored dovoljne koliine vitamina, konzumirala i maksimalna koliina kalorija, ako nije raspoloivo vie od 6 konzervi tipa 1? Ako sa xi oznaimo broj konzervi tipa i, funkcija cilja ima oblik max z = 2000x1 + 1500x2 + 1000x3 uz ogranienja x1 + x2 + x3 = 10 50x1 + 100x2 + 60x3 600 6 x1 Nejednadbe pretvaramo u jednadbe na ve poznati nain. Meutim, da bi se omoguio izbor poetnog mogueg bazinog rjeenja, u ogranienje tipa = potrebno je dodati umjetnu varijablu koju emo nastojati uiniti nebazinom postupkom optimizacije. Na sustav sada poprima oblik _ x1 + x2 + x3 + x 4 = 10 _ 50x1 + 100x2 + 60x3 - x5 + x 6 = 600 x1 + x7 = 6 Takav sustav mogli bismo rijeiti_ metodom veliko M, pri emu bismo u funkciju i _ cilja dodali umjetne varijable x 4 i x 6 s vrlo nepovoljnim koeficijentom. Alternativni je pristup uvoenje nove funkcije cilja, koja e se sastojati samo od umjetnih varijabli i koju emo minimizirati. _ _ Min y = x 4 + x 6 Problem minimizacije moe se prikazati kao maksimizacija suprotne funkcije, tj.

24

Operacijska istraivanja

_ _ Min y = x 4 + x 6

_ _ Max y' = -x 4 - x 6

Prebacivanjem varijabli na lijevu stranu jednadbe dobijemo sustav _ _ = 0 + x6 y' +_x 4 x1 + x2 + x3 + x 4 = 10 _ 50x1 + 100x2 + 60x3 - x5 + x 6 = 600 x1 + x7 = 6 Potrebno je jo funkciju cilja izraziti s pomou nebazinih varijabli, to emo uiniti tako da drugu jednadbu pomnoenu s -1 dodamo prvoj _ y' x1 x2 x3 + x6 = -10 i zatim tako modificiranoj jednadbi dodamo treu jednadbu pomnoenu s -1: y' - 51x1 - 101x2 - 61x3 + x5 = -610 Sad moemo sustav napisati u tablinom obliku i izabrati ulazne i izlazne varijable: _ Iteracija 0_ Desna Baza y' x1 x2 x3 x4 x5 x6 x7 strana Kvocijent y' 1 -51 -101 -61 0 1 0 0 -610 x4 0 1 1 1 1 0 0 0 10 10 _ x6 0 50 100 60 0 -1 1 0 600 6 x7 0 1 0 0 0 0 0 1 6

Nakon stoernog razvoja slijede nove iteracije: _ Iteracija 1_ Desna Baza y' x1 x2 x3 x4 x5 x6 x7 strana y' 1 -1/2 0 -4/10 0 -1/100 101/100 0 -4 x4 0 1/2 0 4/10 1 1/100 -1/100 0 4 x2 0 1/2 1 6/10 0 -1/100 1/100 0 6 x7 0 1 0 0 0 0 0 1 6 _ Iteracija 2_ Desna Baza y' x1 x2 x3 x4 x5 x6 x7 strana y' 1 0 0 -4/10 0 -1/100 101/100 1/2 -1 x4 0 0 0 4/10 1 1/100 -1/100 -1/2 1 x2 0 0 1 6/10 0 -1/100 1/100 -1/2 3 x1 0 1 0 0 0 0 0 1 6 _ Iteracija 3_ Desna Baza y' x1 x2 x3 x4 x5 x6 x7 strana y' 1 0 0 0 1 0 1 0 0 x3 0 0 0 1 10/4 1/40 -1/40 -5/4 5/2 x2 0 0 1 0 -6/4 -1/40 1/40 1/4 3/2 x1 0 1 0 0 0 0 0 1 6

Kvocijent

8 12 6

Kvocijent

10/4 5

Uvod

25

U retku koji odgovara funkciji cilja nema vie negativnih koeficijenata, to znai da je postignut maksimum. Iznos funkcije cilja jest 0. Podsjetimo se, rije je o umjetnoj funkciji cilja koju smo uveli da dobijemo mogue bazino rjeenje u kojem su umjetne varijable nebazine. U daljnjem nam postupku te varijable vie nisu potrebne. Ako se za umjetnu funkciju cilja ne dobije vrijednost 0, znai da se umjetne varijable ne mogu ukloniti iz baze. Rjeenje je tada nemogue i postupak se prekida. Potrebno je sada izvriti optimizaciju originalne funkcije cilja. Simpleksna tablica koju smo dobili nakon prve faze postupka posluit e nam i dalje. Varijable u originalnoj funkciji cilja prebacujemo na lijevu stranu jednadbe z - 2000x1 - 1500x2 - 1000x3 = 0 i eliminiramo bazine varijable (x1, x2 i x3) tako da redom dodajemo etvrtu, treu i drugu jednadbu sustava pomnoene s odgovarajuim koeficijentom. Dodavi etvrtu jednadbu pomnoenu s 2000, imamo z - 1500x2 - 1000x3 + 2000x7 = 12000 Slijedi dodavanje tree jednadbe pomnoene s 1500 z - 1000x3 - 75/2x5 + 2375x7 = 14250 i na kraju dodavanje druge pomnoene s 1000 z - 25/2x5 - 1125x7 = 16750 U novoj tablici moemo izabrati x5 kao ulaznu, i x3 kao izlaznu bazinu varijablu: Iteracija 3 Desna Baza z x1 x2 x3 x5 x 7 strana Kvocijent z 1 0 0 0 -25/2 1125 16750 x3 0 0 0 1 1/40 -5/4 5/2 100 x2 0 0 1 0 -1/40 1/4 3/2 x1 0 1 0 0 0 1 6

Nakon stoernog razvoja dobije se konano rjeenje: Iteracija 4 Desna Baza z x1 x2 x3 x5 x 7 strana z 1 0 0 500 0 500 18000 x5 0 0 0 40 1 -50 100 x2 0 0 1 1 0 -1 4 x1 0 1 0 0 0 1 6

26

Operacijska istraivanja

Iz tablice direktno moemo oitati rjeenje: potrebno je uzeti svih 6 konzervi tipa 1 i 4 konzerve tipa 2 to e ukupno iznositi 18000 kalorija. Zadana koliina vitamina C premaena je za 100 mg. Vidimo da je ovdje postupak optimizacije tekao u dvije faze: u prvoj fazi uklonjene su umjetne varijable iz bazinog rjeenja minimizacijom njihove sume, dok je u drugoj fazi, koristenjem iste simpleksne tablice, nastavljena optimizacija originalne funkcije cilja. Takav se postupak zove dvofaznom simpleksnom metodom. Usporedivi metodu veliko M i dvofaznu simpleksnu metodu, moemo zakljuiti sljedee: a) osnovni je pristup kod obje metode jednak: dodaju se umjetne varijable da se postigne poetno mogue umjetno bazino rjeenje; b) izmjene baze identine su; c) jednak je broj iteracija koji dovodi do rjeenja Dvofaznom simpleksnom metodom moemo izbjei numerike tekoe mogue kod metode veliko M, pa je pogodnija za ugradnju na raunalo, iako je u profesionalnim programskim sustavima za linearno programiranje neemo nikada sresti zbog prevelikog zauzea sredinje memorije. Kako su problemi iz stvarnog ivota esto veliine vie tisua jednadbi odnosno varijabli, zadravanje cijele tablice u sredinjoj memoriji obino je nemogue ili neprikladno. Za takve je primjene uobiajena ugradnja revidirane simpleksne metode, koja e biti objanjena poslije.

2.1.8. Vrste rjeenja 2.1.8.1. Funkcija cilja neogranieno rastePromotrimo ovaj primjer: max 3x1 + 2x2 x2 2 x1 x1 3 x 1, x 2 0 Dodavanjem dopunskih varijabli dolazimo do sljedee tablice i zapoinjemo postupak optimizacije: Iteracija 0 Desna Baza z x1 x2 x3 x 4 strana Kvocijent z 1 -3 -2 0 0 0 x3 0 1 -1 1 0 2 2 x4 0 1 0 0 1 3 3

Uvod Iteracija 1 Desna Baza z x1 x2 x3 x 4 strana Kvocijent z 1 0 -5 3 0 6 x1 0 1 -1 1 0 2 0 0 1 -1 1 1 1 x4 Iteracija 2 Desna Baza z x1 x2 x3 x 4 strana Kvocijent z 1 0 0 -2 5 11 x1 0 1 0 0 1 3 x2 0 0 1 -1 1 1 -1

27

Jedinino poveanje x3 poboljalo bi iznos funkcije cilja za dvije jedinice. Meutim, iz druge i tree jednadbe vidi se da x3 moe proizvoljno rasti: u drugoj jednadbi kvocijent desne strane i elementa u stupcu jest . U treoj jednadbi kvocijent je negativan, to znai da je doputeni porast ulazne nebazine varijable beskonaan. To se grafiki moe prikazati na slici 2-5

Slika 2-5 Neogranieno rjeenje Nemogunost pronalaenja izlazne bazine varijable ukazuje na neogranieno rjeenje. U realnim problemima obino e to ukazivati na pogreno formuliran model.

28

Operacijska istraivanja

2.1.8.2. Nemogue rjeenjePrimjer: max z = 2x1 + x2 x1 + x2 2 x1 - 2x2 4 x1, x 2 0 Odluimo li se za dvofaznu _ simpleksnu metodu, nakon uvoenja dopunskih varijabli x3 i x4 i umjetne varijable x 5, definiranja nove funkcije cilja _ _ min y = x 5 max y' = -x 5 _ i eliminacije bazine varijable x 5 iz funkcije cilja, moemo napisati simpleksnu tablicu _ Iteracija 0 Desna Baza y' x1 x2 x3 x4 x 5 strana Kvocijent y' 1 -1 2 0 1 0 -4 x3 0 1 1 1 0 0 2 2 x5 0 1 -2 0 -1 1 4 4

Uvod

29

_ Iteracija 1 Desna Baza y' x1 x2 x3 x4 x 5 strana y' 1 0 3 1 1 0 -2 0 1 1 1 0 0 2 x1 x5 0 0 -3 -1 -1 1 2

Koeficijenti u funkciji cilja ukazuju na to da se funkcija cilja vie ne moe poboljati, _ a umjetna varijabla x 5 jo je uvijek bazina. Ako u prvoj fazi dvofazne simpleksne metode ne moemo postii da je iznos funkcije cilja jednak 0 (ili u metodi veliko M njen iznos sadri koeficijent M), zakljuujemo da je rjeenje nemogue. Za razliku od neogranienog rjeenja, koje je uglavnom posljedica pogrena formuliranja modela, nemogue e rjeenje u realnim primjenama biti ea pojava. Obino se radi o zahtjevima koji premauju raspoloive resurse. Geometrijsko znaenje kontradiktornih ogranienja jest da ne postoji skup toaka koje istovremeno zadovoljavaju sva ogranienja.

30

Operacijska istraivanja

Za na primjer ogranienja se mogu vidjeti na slici 2-6

Slika 2-6 Nemogue rjeenje

2.1.8.3. Alternativni optimumPrimjer: max z = 3x1 + 2x2 uz x1 4 2x2 12 3x1 + 2x2 18 x1, x2 0 Baza

z

x1

Iteracija 0 x2 x3

Desna

x4

x5

strana Kvocijent

z

1 0 0

-3 1 0

-2 0 2

0 1 0

0 0 1

0 0 0

0

x3

4 12

4

x4

Uvod

31

x5

0

3

2

0

0

1

18

6

32

Operacijska istraivanja

Baza

z

x1

Iteracija 1 x2 x3

Desna

x4

x5

strana Kvocijent

z

1 0 0 0

0 1 0 0

-2 0 2 2

3 1 0 -3

0 0 1 0

0 0 0 1

12 4 12

x1

6 3

x4

x5

6

Nakon stoernog razvoja dobit emo tablicu u kojoj je jedan od koeficijenata uz nebazine varijable u funkciji cilja jednak nuli. Dakle, ulaskom u bazu te varijable nee se promijeniti iznos funkcije cilja. Negativnih koeficijenata nema, to znai da je postignut optimum. Iteracija 2 Desna Baza z x1 x2 x3 x4 x 5 strana Kvocijent z 1 0 0 0 0 1 18 x1 0 1 0 1 0 0 4 4 x4 0 0 0 3 1 -1 6 2 x2 0 0 1 -3/2 0 1/2 3

Mogue je nainiti jo jednu iteraciju da se dobije alternativni optimum:

Iteracija 3 Desna Baza z x1 x2 x3 x4 x 5 strana Kvocijent z 1 0 0 0 0 1 18 x1 0 1 0 0 -1/3 1/3 2 x3 0 0 0 1 1/3 -1/3 2 6 x2 0 0 1 0 1/2 0 6 12

Kao to smo i oekivali, iznos funkcije cilja nije se promijenio. Sljedea iteracija dovela bi nas u prethodno bazino rjeenje, iz ega moemo zakljuiti da smo obili sva optimalna vrna rjeenja (u viedimenzionalnom prostoru moe biti i vie alternativnih optimuma). Za dvodimenzionalni se sluaj alternativni optimumi pojavljuju kad je neko od ogranienja paralelno s funkcijom cilja, kao na slici 2-7, koja predstavlja problem koji smo upravo rijeili.

Uvod

33

Slika 2-7 Alternativni optimum

2.1.8.4. Degeneracijamax z = 11x1 + 12x2 uz x1 1/4x1 + 3/4x1 + x1,

x2 x2 x2 x2

8 6 7 9 0 Desna

Baza

z

x1

Iteracija 0 x2 x3

x4

x5

x6

strana Kvocijent

z

1 0

-11 1 0 1/4

-12

0 1 0 0

0 0 1 0

0 0 0 1

0 0 0 0

0 8

x3

0 1 1

x4 0 x5

6 6 7 7

0

34

Operacijska istraivanja x6

0

3/4

1

0

0

0

1

9

9

Uvod Baza

35

z

x1

Iteracija 1 x2 x3

Desna

x4

x5

x6

strana Kvocijent

z

1 0 0 0 0

-11

0 0 1 0 0

0 1 0 0 0

12 0 1 -1 -1

0 0 0 1 0

0 0 0 0 1

72 8 6

8

x3

1 0

x2

1/4 3/4

x5

1 4 3 4

x6

Baza

z

x1

Iteracija 2 x2 x3

Desna

x4

x5

x6

strana Kvocijent 1 6

z

1 0 0 0 0

0 0 0 1 0

0 0 1 0 0

0 1 0 0 0

-32

44 -4 0 4 -3

0 0 0 0 1

116

x3

4

4 6 4

x2

1

x1

-4

x6

2

0 0

U navedenom primjeru vidimo da je maksimalni dozvoljeni prirast varijable x4 jednak nuli. To znai da e njena vrijednost ulaskom u bazu ostati na nuli, i da nee doi do promjene funkcije cilja. Pogledajmo sliku 2-7, 2-8

36

Operacijska istraivanja

Slika 2-8 Degeneracija

Simpleksni postupak krenuo je iz toke (0,0) preko (0,6) u (4,6). Meutim, u toki (4,6) sijeku se vie nego dva ogranienja, to moemo promatrati kao vie sjecita u istoj toki. Bit e dakle potrebno obaviti jednu iteraciju kojom emo se premjestiti iz jednog u drugo sjecite, pri emu e vrijednost funkcije cilja ostati ista. Ta se pojava naziva degeneracijom. Iteracija 3 Desna Baza z x1 x2 x3 x4 x5 x6 strana Kvocijent z 1 0 0 0 0 -4 16 116 x3 0 0 0 1 0 2 -2 4 2 x2 0 0 1 0 0 3/2 -1/2 6 4 x1 0 1 0 0 0 -2 2 4 x4 0 0 0 0 1 -3/2 1/2 0

Postupak se oslobodio degeneracije, i sljedea iteracija vodi u optimum.

Uvod

37

Iteracija 4 Desna Baza z x1 x2 x3 x4 x5 x6 strana z 1 0 0 2 0 0 12 124 x5 0 0 0 1/2 0 1 -1 2 x2 0 0 1 -3/4 0 0 1 3 0 1 0 2 0 0 0 8 x1 x4 0 0 0 3/2 1 0 -1 3

Ako se velik broj ogranienja u viedimenzionalnom prostoru sijee u istoj toki, teorijski moe doi do kruenja postupka. Meutim, osim kod nekih problema konstruiranih posebno za tu svrhu, pojava kruenja u praksi je vrlo rijetka. Smanjenje opasnosti od kruenja postie se Charnesovim postupkom koji vrijednost desne strane 0 privremeno zamijeni nekom malom konstantom . Zbog toga kvocijenti postaju razliiti od nule i meusobno se razlikuju.

38

Operacijska istraivanja

2.1.9. DualnostNakon dodavanja dopunskih varijabli standarni LP s maksimizacijom funkcije cilja i ogranienjima tipa , moe se tablino prikazati kao z x 1 ... x j ... x n x n+1 ... x n+i ... x n+m b 1 -c 1 ... -c j ... -c n 0 ... 0 ... 0 0 0 a 11 ... a 1j ... a 1n 1 ... 0 ... 0 b1 ..... 0 a i1 a ij ... a in 0 ... 1 ... 0 bi ..... 0 a m1 a mj a mn 0 ... 0 ... 1 bm

Nakon obavljene optimizacije sadraj je tablice ovaj: z x 1 ... x j ... x n x n+1 ... x n+i ... x n+m b 1 z 1-c 1 . z j-c j . z n-c n y 1 ... y i ... y m y0 0 11 ... 1j ... 1n 11 ... 1i ... 1m 1 ..... 0 i1 ij ... in i1 ... ii ... im i ..... 0 m1 mj mn m1 ... mi ... mm m

Budui da su tokom simpleksnog postupka pojedini redci bili mnoeni s odreenim koeficijentima te dodavani drugim retcima i to su bile jedine operacije, moe se zakljuiti na koji su nain nastali koeficijenti u funkciji cilja za dopunske varijable, oznaeni kao y1, y2, ... ,ym. Na tim je pozicijama u poetnoj tablici bila 0, a ispod njih nalazila se jedinina matrica. Prema tome yi, za i=1,...,m, nastao je, direktno ili indirektno, mnoenjem retka i s vrijednosti yi i pribrajanjem tog retka retku funkcije cilja. Vrijednosti koeficijenata u funkciji cilja za strukturne varijable uveane su za z1, z2, ..., zn. Te su vrijednosti dobivene mnoenjem i dodavanjem pojedinih redaka retku funkcije cilja: m zj = aij yi ; j=1,...,n (1) i=1 Analogno, vrijednost funkcije cilja u optimalnoj tablici jest m (2) y0 = bi yi i=1 Interesantno je uoiti da je vrijednost funkcije cilja izraena kao funkcija raspoloivosti resursa bi, i=1,...,m. Dakle, kao zakljuak moe se rei da se redak funkcije cilja u optimalnoj simpleksnoj tablici dobije iz poetne tablice tako da se svaki redak i, i=1,...,m poetne tablice pomnoi s pripadnim yi i doda retku funkcije cilja. Postavljanjem uvjeta optimalnosti

Uvod

39

zj - cj 0 yi 0

; j=1,...,n ; i=1,...,m

(3)

te supstitucijom izraza (1) u (3) i uz oblik funkcije cilja (2) dobije se m y0 = bi yi i=1 m

aij yi cj ; j=1,...,ni=1 yi 0 ; i=1,...,m

Prema tome, postavljanjem uvjeta optimalnosti ponovno je dobiven linearni program, ali izraen varijablama yi, i=1,...,m koji sadri n ogranienja tipa . Matrica strukturnih koeficijenata jest AT, tj. transponirana u odnosu na poetni problem. Takav linearni program naziva se dualom, dok je poetni problem primal. Potrebno je jo utvrditi smjer optimizacije u dualnom problemu. Ako sa x* oznaimo neko mogue rjeenje primalnog problema, a sa y* neko mogue rjeenje dualnog problema, vrijedi: Zbog uvjeta iz primalnog problema: Ax* b x* 0 Zbog uvjeta iz dualnog problema: y*TA cT y* 0 Mnoenjem obje strane prvog uvjeta iz primalnog problema sa y*T: y*TAx* y*Tb Slino, mnoenjem prvog uvjeta iz dualnog problema sa x*: y*TAx* cTx* Zbog svojstva tranzitivnosti, supstitucijom za y*TAx*, slijedi da svako mogue dualno rjeenje daje funkciju cilja koja je vea ili jednaka funkciji cilja primalnog problema: y*Tb cTx* Kod razmatranja optimalnog rjeenja primalnog problema u tablinom obliku pokazalo se da je vrijednost funkcije cilja za primalni problem jednaka funkciji cilja dualnog problema: cTx* = bTy* Prema tome ako se eli rjeavanjem dualnog problema saznati vrijednosti primalnih varijabli, u dualnom problemu treba traiti minimum funkcije cilja. Rjeenja za varijable primalnog problema nai e se ispod dopunskih varijabli u retku funkcije cilja. Iz analize optimalne simpleksne tablice moe se uoiti da suboptimalno primalno rjeenje (dakle takvo da u retku funkcije cilja ima negativnih koeficijenata) predstavlja nemogue dualno rjeenje jer nisu zadovoljeni uvjeti nenegativnosti. Budui da se u dualnom problemu trai minimum funkcije cilja, a u primalnom maksimum, takvo suboptimalno primalno rjeenje odgovara ne samo nemoguem ve i superoptimalnom dualnom rjeenju jer je vrijednost funkcije manja nego to e biti u optimumu. Odnos izmeu rjeenja sistematiziran je u tablici:

40

Operacijska istraivanja

Primalno rjeenje Komplementarno dualno rjeenje Suboptimalno Superoptimalno Optimalno Optimalno Superoptimalno Suboptimalno Niti mogue niti Niti mogue niti superoptimalno superoptimalno Neogranieno Nemogue Nemogue Neogranieno Degenerirano Alternativni optimum Alternativni optimum Degenerirano

Izmeu primalnog i dualnog rjeenja postoji potpuna simetrija te se za svaki linearni program moe postaviti njegov dual. Odnos izmeu primalnog i dualnog problema ilustriran je ovom tablicom:

PRIMAL Koeficijenti Desne x1 x 2 ... x j ... x n strane y 1 a 11 a 12 ... a 1j ... a 1n b 1 y 2 a 21 a 22 ... a 2j ... a 2n b 2 Koefi. ... ... cijenti y i a i1 a i2 ... a ij ... a in b i DUAL . ... ... y m a m1 a m2 ... a mj ... a mn b m Desne c 1 c 2 ... c j ... c n strane max

min

Treba uoiti da simetrinost primala i duala vrijedi samo ukoliko je linearni program u standardnom obliku, tj. maksimizacija funkcije cilja uz ogranienja tipa , ili minimizacija funkcije cilja uz sva ogranienja tipa . Na sve varijable postavljen je uvjet nenegativnosti. Svoenje na standardni oblik obavlja se na sljedee naine: Ogranienje tipa pretvara se u , ili obratno, mnoenjem nejednadbe s -1. Ogranienje u obliku jednakosti pretvara se u 2 nejednadbe tipa ili , prema potrebi, s meusobno suprotnim koeficijentima, tj. ogranienje: n

aij xj = bij=1 transformira se u n aij xj bi j=1 n

aij xj bij=1 Ako sva ogranienja moraju biti npr. oblika , drugo se ogranienje mnoi s -1: n

Uvod

41

aij xj bij=1 n

-aij xj -bi j=1 U dualnom problemu uz ta dva ogranienja pridruit e se dualne varijable yi' i yi" koje se javljaju u svakom ogranienju duala i u dualnoj funkciji cilja s meusobno suprotnim koeficijentima. Moe ih se supstituirati varijablom yi = yi' - yi". Takva varijabla nema ogranienja na predznak. Prema tome, primalno ogranienje u obliku jednakosti u dualu odgovara slobodnoj varijabli. Rjeavanjem primalnog problema istovremeno se rjeava i dualni problem. Bazinim dopunskim varijablama iz primala, odgovaraju nebazine dualne varijable. Ovo je evidentno jer je za svaku bazinu varijablu aktualni koeficijent u retku funkcije cilja jednak 0. Ako je neka dopunska varijabla bazina, tj. vea od 0, to znai da ogranienje u kojem je dodana nije aktivno, odnosno da resurs ija je raspoloivost ogranienjem opisana, nije u potpunosti iskoriten. Nebazina pripadna dualna varijabla ukazuje da je tzv. marginalna vrijednost, utjecaj varijacije raspoloivosti resursa na vrijednost funkcije cilja, za taj resurs jednaka 0. Nebazina dopunska varijabla ukazuje da je ogranienje aktivno, odnosno da je pripadni resurs u potpunosti iskoriten. Takvu ogranienju pridruena je bazina dualna varijabla koja sadri marginalnu vrijednost resursa. Optimalna vrijednost funkcije cilja suma je umnoaka marginalnih vrijednosti i raspoloivosti resursa. U praksi je interesantan podatak o marginalnoj vrijednosti resursa jer ukazuje koliko bi se poboljala funkcija cilja poveanjem raspoloivosti resursa. Taj podatak vrijedi do prelaska u susjedno bazino rjeenje i uz pretpostavku da su svi ostali podaci neizmijenjeni. Opisana interpretacija vrijednosti dualnih varijabli odgovara za sluaj da se primalnim smatra problem maksimizacije s ogranienjima tipa . Kod minimizacije i ogranienja tipa , najee se ne radi o resursima ve o zahtjevima. Dualne varijable tada ukazuju na mogue smanjenje funkcije cilja (npr. trokova), ako se smanje zahtjevi izraeni nejednadbom tipa . Svojstva dualnih varijabli osnova su za obavljanje i interpretaciju analize osjetljivosti. 2.1.9.1. Dualna simpleksna metodaPrisjetimo se jednostavnog problema proizvodnje iz poglavlja 2.1.3: max z = 3x1 + 5x2 uz x1 4 2x2 12 3x1 + 2x2 18 x1, x2 0 Za taj problem moemo postaviti dual. Primalni problem ima 2 varijable i 3 ogranienja. Za svaku primalnu varijablu nastat e jedno dualno ogranienje, a za svako primalno ogranienje jedna dualna varijabla. Desne strane primalnog problema postaju koeficijenti u funkciji cilja, a koeficijenti u funkciji cilja primalnog problema postaju desne strane u dualu. Kako su sve primalne varijable

42

Operacijska istraivanja

nenegativne, pripadna dualna ogranienja bit e tipa . Sva su primalna ogranienja tipa , pa su dualne varijable nenegativne. Matrica koeficijenata transponira se, a maksimizacija prelazi u minimizaciju, pa je dualni problem ovaj: min z = 4y1 + 12y2 + 18y3 uz y1 + 3y3 3 2y2 + 2y3 5 y1, y2, y3 0 Takav problem mogli bismo rijeiti dodavanjem dopunskih i umjetnih varijabli metodom veliko M ili dvofaznom simpleksnom metodom. Pokuajmo, meutim, nejednadbe pretvoriti u jednadbe oduzimanjem dopunskih varijabli, a uvoenjem suprotne funkcije cilja minimizaciju pretvoriti u maksimizaciju. Sad imamo: max z' = -z = -4y1 - 12y2 - 18y3 uz y1 + 3y3 - y4 = 3 2y2 + 2y3 - y5 = 5 y1, y2, y3, y4, y5 0 Mnoenjem jednadbi ogranienja s -1 dobijemo:

Uvod

43

max z' = -4y1 - 12y2 - 18y3 uz -y1 - 3y3 + y4 = -3 + y5 = -5 -2y2 - 2y3

y1, y2, y3, y4, y5 0 Napiimo to u obliku tablice, prebacivanjem funkcije cilja na lijevu stranu: Iteracija 0 Desna Baza z' y1 y2 y3 y4 y 5 strana z' 1 4 12 18 0 0 0 y4 0 -1 0 -3 1 0 -3 y5 0 0 -2 -2 0 1 -5

Iz tablice vidimo da su svi koeficijenti u funkciji cilja pozitivni, to kod problema maksimizacije znai da je postignut optimum. S druge strane, bazine varijable y4 i y5 imaju negativne vrijednosti, pa je rjeenje nemogue. Kako vidimo, dobili smo nemogue rjeenje kod kojeg je zadovoljen kriterij optimalnosti. Takvo rjeenje zovemo superoptimalnim. Mogli bismo sada pokuati vriti promjene baze tako da rjeenje postane mogue a da se ne izgubi kriterij optimalnosti. Bazine varijable jesu y4 i y5, i obje imaju negativnu vrijednost. Pri tome je vrijednost za y5 po apsolutnoj vrijednosti vea, ime y5 vie pridonosi ukupnoj nemogunosti rjeenja, pa je kandidat pogodan za izlaznu bazinu varijablu. Smanjenje apsolutne vrijednosti varijable koja je u nekom retku bazina s negativnom vrijednou moe se kompenzirati jedino porastom neke od nebazinih varijabli koje u tom retku imaju negativni koeficijent. Tu su u ovom sluaju y2 i y3. Za ulaznu nebazinu varijablu odabrat emo onu koja ima po apsolutnoj vrijednosti manji kvocijent koeficijenta iz funkcije cilja i negativnog koeficijenta u retku izlazne bazine varijable, ime emo zadrati kriterij optimalnosti. Kvocijent za ulaznu nebazinu varijablu y2 uz odabranu izlaznu bazinu varijablu y5 iznosi po apsolutnoj vrijednosti 12/2 = 6, dok za y3 iznosi 18/2 = 9. Kao ulazna nebazina varijabla izabire se y2. Zbog toga e i nakon promjene baze svi koeficijenti u funkciji cilja ostati nenegativnima. Iteracija 0 Desna Baza z' y1 y2 y3 y4 y 5 strana z' 1 4 12 18 0 0 0 y4 0 -1 0 -3 1 0 -3 y5 0 0 -2 -2 0 1 -5

44

Operacijska istraivanja

Nakon obavljena stoernog razvoja jo je samo y4 negativno, a kandidati za ulaznu nebazinu varijablu jesu y1 i y3, zbog negativnih koeficijenata u retku izlazne bazine varijable y4. Kad bismo odabrali y1, nakon stoernog razvoja koeficijent u funkciji cilja uz y3 postao bi negativan (tj. -6), pa odabiremo y3: Iteracija 1 Desna Baza z' y1 y2 y3 y4 y 5 strana z' 1 4 0 6 0 6 -30 0 -1 0 -3 1 0 -3 y4 y2 0 0 1 1 0 -1/2 5/2

Nakon obavljena stoernog razvoja niti jedna varijabla nije negativna, a svi su koeficijenti u funkciji cilja pozitivni, to znai da smo postigli optimalno i mogue rjeenje: Iteracija 2 Desna Baza z' y1 y2 y3 y4 y 5 strana z' 1 2 0 0 2 6 -36 y3 0 1/3 0 1 -1/3 0 1 y2 0 -1/3 1 0 1/3 -1/2 3/2

Rjeenje jest: y1 = 0, y2 = 3/2, y3 = 1. Prisjetimo se rjeenja primalnog problema iz poglavlja 2.1.5. Stanje nakon posljednje iteracije izgledalo je ovako: z + 3/2x4 + x5 = 36 x3 + 1/3x4 - 1/3x5 = 2 = 6 + 1/2x4 x2 x1 + - 1/3x4 + 1/3x5 = 2 ili, u tablinom obliku: Desna Baza z x1 x2 x3 x4 x 5 strana z 1 0 0 0 3/2 1 36 x3 0 0 0 1 1/3 -1/3 2 x2 0 0 1 0 1/2 0 6 x1 0 1 0 0 -1/3 1/3 2

Uvod

45

Vidimo da se rjeenje primalnog problema moe oitati iz koeficijenata uz dopunske varijable duala. Analogno, koeficijenti uz dopunske varijable u primalnoj funkciji cilja rjeenja su dualnog problema.

2.1.9.2. Vrste dualnih rjeenja 2.1.9.2.1. Dualno nemogue rjeenjePrisjetimo se problema iz poglavlja 2.1.8.1: max z = 3x1 + 2x2 uz x1 x2 2 x1 3 x1, x2 0 Rjeenje tog problema jest neogranieno. Pokuajmo sada rijeiti njegov dual: min z = 2y1 + 3y2 y1 + y2 3 -y1 2 y1, y2 0 Problem moemo pripremiti za rjeavanje dualnom simpleksnom metodom: max z' = -2y1 - 3y2 -y1 y2 + y3 = -3 y1 + y4 = -2 y1, y2, y3, y4 0 Problem emo sada napisati u tablinom obliku i izabrati izlaznu bazinu i ulaznu nebazinu varijablu: Iteracija 0 Desna Baza z' y1 y2 y3 y 4 strana z' 1 2 3 0 0 0 y3 0 -1 -1 1 0 -3 0 1 0 0 1 -2 y4 Iteracija 1 Desna Baza z' y1 y2 y3 y 4 strana z' 1 0 1 2 0 -6 y1 0 1 1 -1 0 3 y4 0 0 -1 1 1 -5

46

Operacijska istraivanja

Kakon obavljena stoernog razvoja varijabla y1 postaje opet negativnom, a u retku nema niti jednog negativnog koeficijenta oko kojeg bismo mogli obaviti stoerni razvoj. Iz toga zakljuujemo da je rjeenje nemogue: Iteracija 2 Desna Baza z' y1 y2 y3 y 4 strana z' 1 0 0 3 1 -11 y1 0 1 0 0 1 -2 y2 0 0 1 -1 -1 5

2.1.9.2.2. Dualno neogranieno rjeenjePrimjer iz poglavlja 2.1.8.2 max z = 2x1 + x2 uz x1 + x2 2 x1 - 2x2 4 x1, x2 0 ima nemogue rjeenje. Treba primijetiti da je drugo ogranienje tipa , pa ga treba prije transformacije u dual pomnoiti s -1: -x1 + 2x2 -4 Dual nakon toga ima oblik min z = 2y1 - 4y2 y1 y2 2 y1 + 2y2 1 y1, y2 0 Uvoenjem nove funkcije cilja i dopunskih varijabli te mnoenjem ogranienja s -1 dobijemo: max z'= -2y1 + 4y2 -y1 + y2 + y3 = -2 -y1 - 2y2 + y4 = -1 y1, y2, y3, y4 0 ili u tablinom obliku: Iteracija 0 Desna Baza z' y1 y2 y3 y 4 strana z' 1 2 -4 0 0 0 y3 0 -1 1 1 0 -2 0 -1 -2 0 1 -1 y4

Uvod

47

Vidimo da su varijable y3 i y4 negativne, a nije zadovoljen kriterij optimalnosti. Problem moemo rjeavati i kombiniranom metodom, tako da prvo dualnom simpleksnom metodom postignemo mogue rjeenje, a zatim zadovoljimo kriterij optimalnosti. Iteracija 0 Desna Baza z' y1 y2 y3 y 4 strana z' 1 2 -4 0 0 0 y3 0 -1 1 1 0 -2 y4 0 -1 -2 0 1 -1 Iteracija 1 Desna Baza z' y1 y2 y3 y 4 strana z' 1 0 -2 2 0 -4 y1 0 1 -1 -1 0 2 y4 0 0 -3 -1 1 1

Vidimo da smo postigli mogue, ali suboptimalno rjeenje. Varijabla y2 moe, meutim, neogranieno rasti, ime smo pokazali da nemoguem rjeenju primala odgovara neogranieno rjeenje duala. Mogli bismo, radi vjebe, jo jednom rijeiti primalni problem, sada kombiniranom metodom. U prvoj je tablici varijabla x4 negativna pa zapoinjemo dualnom metodom: Iteracija 0 Desna Baza z x1 x2 x3 x 4 strana z 1 2 -1 0 0 0 0 1 1 1 0 2 x3 x4 0 -1 2 0 1 -4 Iteracija 1 Desna Baza z x1 x2 x3 x 4 strana z 1 0 3 0 -2 -8 x3 0 0 3 1 1 -2 x1 0 1 -2 0 -1 4

Varijabla x3 jest negativna, a u retku nema negativnih elemenata oko kojih bismo mogli vriti stoerni razvoj. Rjeenje je dakle nemogue.

48

Operacijska istraivanja

2.1.9.2.3. Dualna degeneracijaKod primjera iz poglavlja 2.1.8.2, 2.1.8.3 uoili smo alternativni optimum. Problem je imao oblik: max z = 3x1 + 2x2 uz x1 4 2x2 12 3x1 + 2x2 18 x1, x 2 0 Njegov dual izgleda ovako: min z = 4y1 + 12y2 + 18y3 uz y1 + 3y3 3 2y2 + 2y3 2 y1, y2, y3 0 ili, nakon transformacije: max z' = -4y1 - 12y2 - 18y3 uz - y1 - 3y3 + y4 = -3 -2y2 - 2y3 + y5 = -2 y1, y2, y3, y4, y5 0 Sad moemo raditi iteracije dualne simpleksne metode: Iteracija 0 Desna Baza z' y1 y2 y3 y4 y 5 strana z' 1 4 12 18 0 0 0 y4 0 -1 0 -3 1 0 -3 y5 0 0 -2 -2 0 1 -2 Iteracija 1 Desna Baza z' y1 y2 y3 y4 y 5 strana z' 1 0 12 6 4 0 -12 y1 0 1 0 3 -1 0 3 y5 0 0 -2 -2 0 1 -2

Uvod Iteracija 2 Desna Baza z' y1 y2 y3 y4 y 5 strana z' 1 0 6 0 4 3 18 y1 0 1 -3 0 -1 3/2 0 0 0 1 1 0 -1/2 1 y2

49

Postigli smo optimalno rjeenje, ali je jedna od bazinih varijabli jednaka nuli, to znai da imamo degeneraciju.

2.1.9.2.4. Dualni alternativni optimumU primjeru iz 2.1.8.4 imali smo degeneraciju. Problem je bio ovaj: max z = 11x1 + 12x2 uz x1 8 x2 6 1/4x1 + x2 7 3/4x1 + x2 9 x1, x2 0 Dual ima oblik min z = 8y1 + 6y2 + 7y3 + 9y4 uz y1 + 1/4y3 + 3/4y4 11 y2 + y3 + y4 12 y1, y2, y3, y4 0 Nakon transformacije u max z' = -8y1 - 6y2 7y3 9y4 uz -y1 - 1/4y3 - 3/4y4 + y5 -y2 y3 y4 y1, y2, y3, y4, y5, y6 0 slijede iteracije dualne simpleksne metode: Iteracija 0 Desna Baza z' y1 y2 y3 y4 y5 y6 strana z' 1 8 6 7 9 0 0 0 y5 0 -1 0 -1/4 -3/4 1 0 -11 y6 0 0 -1 -1 -1 0 1 -12

= -11 + y6 = -12

50

Operacijska istraivanja

Iteracija 1 Desna Baza z' y1 y2 y3 y4 y5 y6 strana z' 1 8 0 1 3 0 6 -72 y5 0 -1 0 -1/4 -3/4 1 0 -11 0 0 1 1 1 0 -1 12 y2

Nakon stoernog razvoja, koeficijent uz nebazinu varijablu y3 jednak je nuli, to ukazuje na postojanje alternativnog rjeenja u dualu, odnosno degeneracije u primalu: Iteracija 2 Desna Baza z y1 y2 y3 y4 y5 y6 strana z 1 4 0 0 0 4 6 -116 0 4/3 0 1/3 1 -4/3 0 44/3 y4 y2 0 -4/3 1 2/3 0 4/3 -1 -8/3

Podsjetimo se, u konanom rjeenju primala nije bilo degeneracije. Tako ni u konanom rjeenju duala nema alternativnog optimuma: Iteracija 3 Desna strana y6 y5 y4 y3 y2 Baza z y1 z 1 0 3 2 0 8 3 -124 y4 0 0 1 1 1 0 -1 12 y1 0 1 -3/4 -1/2 0 -1 3/4 2

2.2. Revidirana simpleksna metoda

Za rjeavanje linearnih programa u raunalu nije pogodno koristiti prije opisanu tablinu simpleksnu metodu. U svakoj iteraciji te metode ponovno se izraunavaju svi koeficijenti u tablici, tijekom iteracija akumuliraju se numerike pogreke, zahtijeva se mnogo memorijskog prostora itd. U praksi se javljaju problemi dimenzija od nekoliko tisua redaka i stupaca. To znai da bi klasinim postupkom u svakoj iteraciji trebalo izraunati na milijune koeficijenata koji predstavljaju aktualnu simpleksnu tablicu. Da bi se postigla barem donekle zadovoljavajua brzina, tablica bi morala biti memorijski rezidentna, a za postizanje prihvatljive tonosti trebalo bi koristiti dvostruku tonost iz ega slijedi potreba za desecima megabajta sredinje memorije. Klasini simpleksni postupak ne koristi injenicu da su praktini linearni programi veih dimenzija u pravilu predstavljeni rijetko punjenom matricom. Iskustvo pokazuje da to je problem veih dimenzija, tim je faktor popunjenja manji i obino se kree ispod 1%. Da bi se na raunalu uspjeno rjeavali takvi problemi iz prakse, razvijena je revidirana simpleksna metoda i niz raunarskih postupaka s rijetko punjenim matricama. Ovdje e biti prikazane osnove potrebne za

Uvod

51

razumijevanje principa na kojima se osniva programska podrka za linearno programiranje. Pretpostavimo da se rjeava ovaj linearni program: n max z = cjxj uz j=1 n

aijxj bij=1 xj 0

; i=1,..,m

; j=1,..,n

Dodavanjem dopunskih varijabli xj ; j=n+1,..,n+m i prelaskom na matrini prikaz linearni se program transformira u oblik: max z = cTx uz Ax = b x 0 Matrica A ima m redaka i m+n stupaca, c, x i 0 jesu vektori dimenzije m+n, a b jest vektor dimenzije m. Zbog naina na koji je formirana matrica A (proirenjem matrice strukturnih koeficijenata jedininom matricom) mogue je uvijek u A odabrati nesingularnu podmatricu B dimenzija mm. Matrica A tada se dijeli na dvije podmatrice: A = B N]. N ima dimenzije mn. Vektori x i c tada se takoer dijele na particije: x = xB xN

c =

cB cN

Jednadbe ogranienja sad se mogu pisati kao BxB + NxN = b Ako se postavi xN = 0, skup varijabli iz xN naziva se skupom nebazinih varijabli. Preostale, bazine varijable xB jednoznano su odreene: BxB = b - NxN xB = B-1b - B-1NxN Zbog xN = 0 vrijednost bazinih varijabli jest xB = B-1b. Ukoliko su sve vrijednosti za b 0, a za B odabrana je jedinina matrica, B = I, to znai da su kao bazine odabrane dopunske varijable, dobiveno rjeenje jest x =

xB 0

xN = 0

0

To je mogue ili dopustivo bazino rjeenje. U daljnjem e postupku biti pretpostavljeno da je poetno bazino rjeenje bilo mogue.

52

Operacijska istraivanja

2.2.1. Formuliranje transformiranog problemaSupstitucijom izraza za bazine varijable dobije se transformirani problem koji odgovara aktualnoj simpleksnoj tablici u klasinom postupku:T T T )x B B max z = cB -1b - (cB -1N - cN N

uz xB= B-1b - B-1NxN x 0 Sve su veliine izraene preko koeficijenata, desnih strana i nebazinih varij