Damir Kalpić Vedran Mornar
Operacijska istraživanja
Zagreb, 1996.
PREDGOVOR Ova knjiga nastala je prvenstveno radi toga ciljem da zadovolji potrebe studenata Fakulteta elektrotehnike i računarstva Sveučilišta u Zagrebu koji prema trenutnom nastavnom planu slušaju predmet Operacijska istraživanja na 4. godini smjera Računarstvo i smjera Opća energetika. Predmet je jednosemestralan s 2 sata predavanja i 2 sata auditornih vježbi na tjedan. U provedbi nastave jedan manji broj sati auditornih vježbi koristi se kao laboratorijske vježbe, pri čemu studenti poslužuju gotovu programsku podršku iz tog područ ja. Kako je gradivo iz operacijskih istraživanja dosta opsežno i raznorodno, namjera nam je bila da se smanji potreba za kvalitetnim bilješkama s predavanja i vježbi te da studentima po relativno pristupa čnoj cijeni pruži literaturu koja odgovara gradivu spomenutog predmeta. Neke ina če uobičajene teme iz operacijskih istraživanja (teorija posluživanja, pouzdanost, simulacije) ovdje su izostavljene jer se predaju u okviru drugih predmeta. Knjiga je također namijenjena i sluša čima predmeta Operacijska istraživanja na postdiplomskom postdiplomskom studiju računarstva na istom fakultetu. Obra đene su i neke teme koje nisu u nastavnom planu dodiplomskog studija, a osim toga knjiga olakšava uključivanje u rad onim studentima koji taj predmet nisu slušali tijekom redovnog studija. Sadržani su opis i primjeri korištenja naše vlastite programske podrške za linearno i višekriterijsko višekriterij sko programiranje i interaktivnu analizu osjetljivosti osje tljivosti (LPE). (L PE). Na zahtjev spremni smo isporučiti bilo demonstracijsku demonstracijsku verziju programa LPE za ra čunala PC ili punu verziju prenosivu na većinu suvremenih računala. Bit će nam dakako vrlo drago ako ova knjiga bude mogla poslužiti i studentima drugih fakulteta i stru čnjacima u gospodarstvu. Knjiga izlazi u trenutku kad se u Hrvatskoj iz temelja mijenja gospodarski sustav. Dug niz godina očekivane ciljeve operacijskih istraživanja naša je sredina teško prihvaćala. U tada vladajućem sistemu korelacija između pojedinačnog i općeg interesa najčešće je bila negativna. Rezultat takva obrnutog sustava vrijednosti očitovao se na područ ju operacijskih istraživanja u ciljevima suprotnima od onih koji se mogu naći u literaturi. Bez pretjeranog karikiranja možemo navesti neke slučajeve iz prakse: Želio se npr. maksimalni transportni trošak jer prodavač robe dobiva postotak od cijene koja uključuje i troškove prijevoza; cilj je bio ostvariti što ve će zalihe jer se uz negativnu realnu kamatnu stopu na njima zara đivalo; nastojalo se što prije platiti inozemnom dobavlja ču, a što kasnije naplatiti izvezenu robu te tako izbje ći negativne tečajne razlike; cilj planiranja proizvodnje nije bilo ostvarenje dobiti ve ć stjecanje politi čkih poena itd. Koliko je zadovoljavanje takvih parcijalnih ciljeva nanijelo op će štete, teško je procijeniti. Opća je karakteristika karakteristika bila i nedostatak motiva mot iva za stvarno unaprije đenje poslovanja. Zarađivalo se na nestašicama, odobrenje za više cijene bilo je neusporedivo važnije od bilo kakvog tehnološkog ili organizacijskog napretka i slično. Vjerujemo da će u uvjetima zdrave tržišne privrede operacijska istraživanja na ći odgovarajuće mjesto kao pomoć u donošenju poslovnih odluka. Treba međutim napomenuti da ovladavanje isključivo matematičkim postupcima nije dovoljno da bi se jednostavno preslikali problemi iz realnog života, koji je uvijek složeniji od uobičajenih idealizacija. Ova knjiga nema ambicija da u nekoj bitnijoj mjeri doprinese podru č ju primijenjene matematike. Težište je na inženjerskom pristupu. Obrađene metode prema današnjim se trendovima ugra đuju u informacijske sustave, sustave za pomoć u donošenju odluka i u ekspertne sustave. Uz adekvatno programsko sučelje omogućuju korisniku da se njima služi i onda kad nije upoznat
sa svim detaljima matematičkih i programerskih postupaka. Za takav profil čitatelja knjiga može poslužiti kao informacija o nekima od poznatih postupaka te
tako dati poticaj poticaj da se oni primijene u prepoznatim prepoznatim situacijama situacijama u praksi. Ovom prilikom zahvaljujemo našim studentima koji su čitali prvu verziju ove knjige i ukazali nam na niz propusta i pogrešaka. Unaprijed zahvaljujemo za sve buduće primjedbe i sugestije jer bismo željeli da eventualno sljedeće izdanje bude bolje.
U Zagrebu, veljače 1996.
Autori
SADRŽAJ 1. UVOD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1. Povijest operacijskih istraživanja. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2. Izrada modela. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2. LINEARNO PROGRAMIRANJE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1. Matematičke osnove linearnog programiranja. . . . . . . . . . . . . . . . . . 5 2.1.1. Definicija linearnog programiranja. . . . . . . . . . . . . . . . . . . . 5 2.1.2. Definicija rješenja. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1.3. Primjer formuliranja i rješavanja LP. . . . . . . . . . . . . . . . . . . 8 2.1.4. Grafičko rješavanje linearnog programa. . . . . . . . . . . . . . . . 9 2.1.5. Simpleksna metoda. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.1.6. Simpleksna metoda u tabličnom obliku. . . . . . . . . . . . . . . . 16 2.1.7. Ograničenja tipa = i ≥. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.1.8. Vrste rješenja. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.1.9. Dualnost. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.2. Revidirana simpleksna metoda. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 2.2.1. Formuliranje transformiranog problema. . . . . . . . . . . . . . . 47 2.2.2. Izbor ulazne nebazične varijable.. . . . . . . . . . . . . . . . . . . . . 47 2.2.3. Izbor izlazne bazične varijable. . . . . . . . . . . . . . . . . . . . . . . 47 2.2.4. St Stožerni ra razvoj i revizija in inverzne baze. . . . . . . . . . . . . . . . 48 2.2.5. Računsk unskee oper operac acij ijee u revi revidi dira rano nojj simpl simplek eksn snoj oj met metod odi.. i.. . . . 49 2.2.6. Numerički primjer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 2.2.7. Skaliranje podataka. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 2.2.8. Numeričke tolerancije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 2.2.9. Postupci u općem linearnom programu. . . . . . . . . . . . . . . . 57 2.3. Mj Mješovito-cjelobrojno pr programiranje. . . . . . . . . . . . . . . . . . . . . . . . . 58 2.3.1. Algoritam grananja i ograđivanja. . . . . . . . . . . . . . . . . . . . . 58 2.3.2 .3.2.. Prim Primje jen ne mje mješovi šovito to--cje cjelobr lobroj ojno nogg prog progra rami mirranja anja.. . . . . . . . . 65 2.4. Separabilno programiranje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 3. VIŠEKRITERIJSKO PROGRAMIRANJE. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1. Po Podjela me metoda vi višekriterijskog pr programiranja.. . . . . . . . . . . . . . . . 3.2. Me Metode optimizacije s više funkcija ci cilja. . . . . . . . . . . . . . . . . . . . . . 3.2.1. Osnovni pojmovi i definicije. . . . . . . . . . . . . . . . . . . . . . . . . 3.2.2. Metode kod kojih se ne naglašava preferencije na funkcije cilja. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.3. Metode kod kojih se informacije o preferencijama daju prije rješavanja problema. . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.4. Metode kod kojih se informacije o preferencijama daju naknadno. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
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.3.3. 3. Meto Metode de kod kod koj kojih ih se ne nagl naglaš ašav avaj aju u pre prefferen erenci cije je.. .. . . . . . . . 3.3.4. Metode kod kojih se naglašavaju preferencije na atribute ...... ............................... ........... 3.3.5. Metode kod kojih se zadaju preferencije na mogućnosti. . . 4. GR GRADIJENTNE TNE ME METODE NE NELINEARNOG OP OPTIMI IMIRANJA. . . . . . . . . . . 4.1. Optimiranje konkavne nelinearne funkcije bez ograni čenja. . . . . . . 4.2. Optimiranje konkavne nelinearne funkcije uz linearna ograni čenja. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.1. Projekcija vektora na pravac. . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2. Produljenje vektora do pravca.. . . . . . . . . . . . . . . . . . . . . . . 4.2.3. Primjer optimizacije konkavne funkcije s ograničenjima. .
81 81 82 83 84 86 87 87 89 90 91 93
5. DINAMIČKO PROGRAMIRANJE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 5.1. Problem najbržeg prijenosa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 5.2. Problem raspodjele investicija. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 6. ANALIZA MREŽA.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 6.1. Osnovni pojmovi iz teorije grafova. . . . . . . . . . . . . . . . . . . . . . . . . . . 106 6.2. Problem maksimalnog toka. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 6.2.1. Definicije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 6.2.2. Rješenje linearnim programiranjem.. . . . . . . . . . . . . . . . . . 107 6.2.3 .2.3.. Algo Algorritam itam za za pr pronala nalaže ženj njee mak maksi sima maln lnog og toka oka.. . . . . . . . . . 109 109 6.2.4. Primjer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 6.3. Problem najkraćeg pu puta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 6.3.1. Rješenje linearnim programiranjem.. . . . . . . . . . . . . . . . . . 113 6.3.2. Metoda Bellman ─Ford. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 6.3.3. Dijkstrin algoritam. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 6.3.4. Iterativna modifikacija Bellman ─ Fordova algo lgoritma. . . . . 117 6.4. Problemi najduljeg puta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 6.5. Pronalaženje minimalnog stabla. . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 6.6. Transportni problem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 6.6.1. Formulacija Formu lacija transportnog transportn og problema kao linearni linearni program program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 6.6.2. Metoda MODI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 6.7. Problemi pridruživanja i smještaja. . . . . . . . . . . . . . . . . . . . . . . . . . 129 6.7.1. St Standardni pr problem pr pridruživanja. . . . . . . . . . . . . . . . . . . . 129 6.7.2. Ne Nestandardni pr problem pr pridruživanja. . . . . . . . . . . . . . . . . . 130 6.7.3. Metoda grananja i ograđivanja. . . . . . . . . . . . . . . . . . . . . . . 130
6.7.4. Problemi smještaja centara posluživanja. . . . . . . . . . . . . . . 132 7. MREŽNO PLANIRANJE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 7.1. Mreža s aktivnostima na granama. . . . . . . . . . . . . . . . . . . . . . . . . . . 138 7.1.1. Rješenje linearnim programiranjem.. . . . . . . . . . . . . . . . . . 139 7.1.2. Rješenje analizom mreža. . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 7.1.3. Fiktivne aktivnosti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 7.2. Metoda kritičnog puta i analiza troškova. . . . . . . . . . . . . . . . . . . . . 143 7.2.1. Analiza troškova enumeracijom. . . . . . . . . . . . . . . . . . . . . . 146 7.2.2. Analiza troškova matematičkim programiranjem. . . . . . . . 147 7.3. Metoda PERT.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 7.3.1. Proračun vjerojatnosti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 7.4. Mreža s aktivnostima u čvorovima.. . . . . . . . . . . . . . . . . . . . . . . . . . 154 8. PROBLEM NABAVKE I ZAMJENE OPREME. . . . . . . . . . . . . . . . . . . . . . . 157 8.1. Izbor trenutka za zamjenu opreme.. . . . . . . . . . . . . . . . . . . . . . . . . . 157 8.1.1. Aktualizacija. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 8.2. Problem izbora opreme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 9. PROBLEM VO\ENJA ZALIHA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 9.1. Determinističk i m o d e l i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 6 3 9.1.1. Nedostatak robe nije dopušten. . . . . . . . . . . . . . . . . . . . . . . 163 9.1.2. Privremeno dopušten nedostatak robe. . . . . . . . . . . . . . . . . 165 9.2. Stohastički modeli. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 9.2.1. Roba koja gubi na vrijednosti. . . . . . . . . . . . . . . . . . . . . . . . 167 9.2.2. Nedostatak robe izaziva troškove po koli čini i vremenu. . . 168 9.2.3. Stohastičko kašnjenje kod snabdijevanja.. . . . . . . . . . . . . . 170 10. DISKRETNI SLUČAJNI PROCESI.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 10.1. Stacionarne vjerojatnosti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 10.2. Klasifikacija Markovljevih lanaca. . . . . . . . . . . . . . . . . . . . . . . . . . 177 10.3. Vjerojatnost prvog dolaska ili prvog povratka. . . . . . . . . . . . . . . . . 179 10.4. Očekivano vrijeme prvog dolaska i prvog povratka.. . . . . . . . . . . . 180 10.5. Apsorbirajući lanci. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 11. LINEARNO PROGRAMIRANJE NA RA ČUNALU. . . . . . . . . . . . . . . . . . . 186 11.1. Postupak izrade matematičkih modela. . . . . . . . . . . . . . . . . . . . . . 187 11.1.1. Identifikacija problema prikladnog za rješavanje s pomoću LP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 11.2. Programski sustav LPE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 11.3. Primjeri korištenja linearnog programiranja.. . . . . . . . . . . . . . . . . 190
11.3.1. Jednostavni problem proizvodnje. . . . . . . . . . . . . . . . . . . . 190 11.3.2. Model višefazne proizvodnje. . . . . . . . . . . . . . . . . . . . . . . . 199 11.3.3. Problem smjese. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 11.3.4. Problem prehrane. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 11.3.5. Problem korištenja sirovina. . . . . . . . . . . . . . . . . . . . . . . . 206 11.3.6. Primjer problema pridruživanja. . . . . . . . . . . . . . . . . . . . . 207 11.3.7. Transportni problem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 11.3.8. Optimizacija trajanja projekta. . . . . . . . . . . . . . . . . . . . . . 213 11.3.9. Rješavanje sustava linearnih jednadžbi.. . . . . . . . . . . . . . 219 11.4. Primjeri korištenja višekriterijskog programiranja. . . . . . . . . . . . 221 11.4.1. Problem proizvodnje i prodaje s me đuskladištem. . . . . . . 221 11.4.2. Problem transporta .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 11.4.3. Organizacija proizvodnje. . . . . . . . . . . . . . . . . . . . . . . . . . . 224 12. LITERATURA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 13. PRILOG: Zadaci iz linearnog programiranja.. . . . . . . . . . . . . . . . . . . . . . . . 229
Uvod
1
1. UVOD 1.1. Povijest operacijskih istraživanja Operacijska istraživanja (engl. Operations ili Operational Research, njem. Operationsforschung, fr. Recherche operationnelle, tal. Ricerca operativa) jesu stručna i znanstvena disciplina koja se bavi pomaganjem kod donošenja odluka na bazi egzaktnih metoda. Operacijska istraživanja dobila su svoj naziv po operativnom stožeru britanske vojske u kojem su tijekom II. svjetskog rata postavljeni temelji te discipline, uz korištenje prethodnih znanja i iskustava iz više oblasti. Nastanak operacijskih istraživanja dobro ilustrira njihovu zada ću i razlog postojanja. Početkom II. svjetskog rata Velika Britanija bila je suo čena s materijalno nadmoćnijim neprijateljem. Budući da je postizanje ravnoteže ili čak prednosti vrlo teško pa i nemogu će postići u kratkom roku bez obzira na napore, preostalo je da se ograničena sredstva ili resursi iskoriste na što pametniji na čin. S tom je svrhom u vojsci bila formirana grupa stručnjaka iz različitih oblasti. Poznati su problemi u kojima je grupa postigla važne rezultate: a) Statističkom obradom podataka o napadima britanske avijacije na njema čke podmornice, ustanovljeno je da se napad naj češće odigrao u trenutku uranjanja podmornice te da je prosje čna dubina iznosila 35 stopa. Bombe su međutim bile podešene da eksplodiraju na dubini od 100 stopa. Promjenom tempiranja Britanci su povećali efikasnost napada za 700%, a Nijemci su povjerovali da su konstruirane nove, bitno snažnije bombe. Ta primjena ilustrira redukciju mnoštva informacija na one bitne, korištenjem statističkih metoda. Nakon toga, praktički bez ikakva ulaganja sredstava, postignuti su veliki efekti. b) Prilikom prijevoza materijala iz Amerike u Europu formirani su konvoji trgovačkih brodova. Radi zaštite 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 utrošeni ratni brodovi i što je veći konvoj, veća će količina robe biti dopremljena, a s druge strane, ako konvoj napadnu nadmoćne neprijateljske snage, gubitak će biti manji ako je konvoj kraći. Primjena ilustrira traženje optimuma izme đu suprotnih motiva. c) Razvijane su metode za što bolje korištenje radarske mreže, za otkrivanje neprijateljskih brodova, za miniranje, bombardiranje itd. Nakon završetka rata operacijska istraživanja ostala su i dalje vojna disciplina, međutim, uočeno je da borba za efikasnost i uspjeh na tržištu sadrži također elemente strategije i taktike, a uspjeh najviše ovisi o uspješnu i pravodobnu donošenju poslovnih odluka. Budući da su i poduzeća napretkom tehnike postala složenija, a uvjeti privređivanja podvrgnuti sve bržim promjenama, postalo je nemoguće odlučivati isključivo na temelju iskustva i intuicije.
2
Operacijska istraživanja
Metode i postupci operacijskih istraživanja našli su tako civilnu primjenu kao pomoć kod donošenja poslovnih odluka. Taj će aspekt biti razmatran u ovoj knjizi. Operacijska istraživanja dobila su presudnu pomo ć u razvoju računarstva. Metode koje bi zbog složenosti i dugotrajnosti postupaka, te zbog obilja podataka, imale samo teorijsku vrijednost, zahvaljujući računalima, postale su stvarno primjenjive. Razvojem mikroračunala te su metode postale i široko pristupa čne. Operacijska istraživanja jesu primijenjena disciplina koja koristi rezultate iz primijenjene matematike, numeričke matematike, statistike, ekonomije, psihologije, pa i nekih drugih oblasti. Profesionalna etika operacijskih istraživa ča traži objavljivanje metoda, ali uz čuvanje tajni poduzeća. Smatra se ipak da ima i otkrića koja iz konkurentskih razloga nisu nikad objavljena. Osim na studijima ekonomije i praktične matematike, operacijska istraživanja javljaju se i na tehničkim fakultetima u okviru organizacije proizvodnje ili kao poseban predmet, tradicionalno na studijima elektrotehnike. Studenti orijentirani na računarstvo vjerojatno će u poduzećima biti u prilici da na računalu rješavaju određene probleme iz tog područ ja korištenjem gotovih programskih paketa ili će razvijati vlastite specifične programe. Studenti energetike srest će se u praksi s problemima donošenja odluka koji se rješavaju metodama operacijskih istraživanja.
1.2. Izrada modela Da bi se mogla obaviti kvantitativna analiza nekog sustava iz realnog svijeta, nužno je izraditi matemati čki model tog sustava. Postupak modeliranja dosta je osjetljiv i zahtijeva određeno iskustvo, a možda i intuiciju. Može se reći da gotovo i nema zbivanja u realnom svijetu koje bi se moglo potpuno to čno prenijeti u matematički model. Kod izrade modela zanemaruju se mnoge informacije i međusobne zavisnosti. U model se unose samo one veli čine i one veze za koje se smatra da su relevantne za dobivanje rješenja problema zbog kojeg se model izrađuje. Veze i zavisnosti u realnom svijetu naj češće su nelinearne i nedeterminističke. Međutim, i podaci o realnom svijetu nisu nikada apsolutno točni. Važno je da se kod izrade modela procijeni ili kvantitativnim metodama odredi točnost podataka, pa se onda u skladu s tim mogu pojednostavniti međusobne 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 zaključci o ponašanju modela. Te zaključke treba interpretirati da bi bili upotrebivi u realnom svijetu. Te zaključke treba usporediti sa zaključcima do kojih se dolazi analizom realnog svijeta, ali bez korištenja modela. Tek se tada mogu formulirati elementi za donošenje stvarne odluke.
Uvod
3
Slika 1-1 Proces modeliranja U (Ravindran et al., 1987) navedeno je 10 principa modeliranja koja ćemo ovdje u skraćenom obliku prenijeti: 1. Ne izrađujte kompliciran model ako i jednostavan može poslužiti. Ne treba težiti da se pod svaku cijenu pokaže sav repertoar znanja ili da se impresionira korisnika. Preporučljiv je postupak pojednostavnjenja sve dok rješenje ne postane matemati čki izvodljivo, a nakon toga slijedi oboga ćivanje modela sve dok to bude i dalje matemati čki izvodljivo. 2. Ne podešavajte problem da bi
odgovarao tehnici rješavanja.
Kod snimanja stanja u realnom svijetu treba paziti da se i podsvjesno ne iskrivi slika u nastojanju da se problem svede u oblik koji možete riješiti nekom od vama poznatih tehnika. Ne svodi se svaki problem na optimiranje, a možda niti ne zahtijeva rješavanje metodama operacijskih istraživanja. 3. Postupak stvaranja zaključaka o modelu mora biti rigorozan. U obradi modela ne smiju proma ći logičke pogreške. U suprotnom, ne može se znati jesu li pogrešne pretpostavke ili postupci. Može se izvesti analogija s programom na ra čunalu koji je formalno ispravan, ali zbog ugra đene logičke pogreške daje krive rezultate. 4. Model
treba provjeriti prije ugradnje.
Model se može testirati na starim, već obrađenim podacima. Ako takvih nema, ulazne podatke treba generirati te ih varirati i na taj način provjeriti ispravnost reakcije modela. To čnost reakcije modela ima smisla poboljšavati sve dok ne postane sumjerljiva s to čnosti ulaznih podataka. Vrijednost gotovo svakog modela s vremenom zastarijeva.
4
Operacijska istraživanja
5. Model
ne treba nikad shvaćati suviše doslovno.
Budući 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 uoči jesu li logični. Ako ne djeluju logi čno, a to je ponekad slu čaj, treba ustanoviti zašto je to tako. Na taj način obavlja se s jedne strane kontrola, a s druge se oboga ćuju saznanja o modelu. 6. Ne
treba očekivati da model rješava probleme za koje nije bio projektiran.
Kod izrade modela vodi se ra čuna o cilju koji se želi posti ći pa se ovisno o tome pojedini elementi realnog svijeta smatraju relevantnima ili nerelevantnima. Ako se izmijeni c ilj, ne može se očekivati da će postojeći model biti adekvatan. 7. Ne treba pretjerati s prodavanjem istog modela . Jednom izrađen model i ugra đeni postupci za njegovo rješavanje i interpretaciju mogu biti uz minimalne izmjene primjenjivi za rješavanje različitih klasa problema. Opasnost je da operacijski istraživač ne uoči razlike pa neadekvatnim rezultatom kompromitira i sebe i struku. 8. Znatne su koristi već od same izrade modela. Izrada modela zahtijeva racionalnu analizu stvarnosti. Događa se da se pri tome otkriju odre đene nelogičnosti koje su godinama bile prikrivene. Kao primjer možemo navesti slu čaj iz prakse da se pripremanjem modela proizvodnje za linearno programiranje ustanovilo da postoje artikli čija je prodajna cijena niža od direktnih troškova izrade. Prije izrade modela te se artikle zbog njihove relativno visoke prodajne cijene smatralo izrazito profitabilnima. 9. Model ne može biti bolji od ulaznih informacija. Kvaliteta rezultata dobivenih obradom modela ne može biti bolja od kvalitete ulaznih informacija. Ni model niti računalo ne mogu generirati informacije. Privid generiranja podataka može se dobiti kod korištenja ekspertnih sustava. Me đutim, tu se radi o tome da su kvalitetne informacije bile inicijalno unijete kod njegove izrade. Analizom podataka čija je priroda stohasti čka, neizvjesnost se može kompenzirati, ali ne i ukloniti. Model ne treba biti bolji od kvalitete ulaznih podataka pa je bolje usmjeriti više truda na poboljšanje kvalitete podataka. 10. Modeli ne mogu nadomjestiti donosioca odluke. Operacijska istraživanja pružaju donosiocu odluke informacije koje mu pomažu u donošenju odluke, ali osim kod rutinskog korištenja, ne predstavljaju i samu odluku. Op ćenito, postoje aspekti realnog svijeta koji nisu obuhva ćeni modelom bilo zbog toga što ih se ne može kvantificirati ili zato što ovise o okruženju pa je njihovo pojavljivanje nepredvidivo.
Uvod
5
2. LINEARNO PROGRAMIRANJE Linearno programiranje
(LP) specijalni je slučaj
matematičkog programiranja,
definiranog kao
uz
min/max f (x ) g ) ≤ 0; i(x hj(x ) = 0;
m i=1,..., 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 traži se ekstrem (minimum ili maksimum), uz uvjet da bude zadovoljeno m+k linearnih ograničenja postavljenih na strukturne varijable, a formuliranih u obliku linearnih nejednadžbi i jednadžbi.
2.1. Matematičke osnove linearnog programiranja 2.1.1. Definicija linearnog programiranja Standardna definicija problema linearnog programiranja ima oblik
uz
n max z = Σ c j jx j=1 n m Σ aijx ; i=1,..., j ≤ b i j=1 x j
≥
0
Varijable x j;
; j=1,...,n j=1,...,n
nazivaju se strukturnim varijablama.
Ista definicija u matričnoj notaciji ima oblik uz
T x max z = c
A x ≤ b x
≥
0
Svi ostali oblici mogu se svesti na navedenu definiciju:
6
Operacijska istraživanja
a) Minimizacija: Maksimizira se suprotna funkcija (pomnožena s -1). T max z (x ) = c (x )] x = - minŠ- z
b) Ograničenje tipa ≥: Množenjem s -1 dobije se tip ≤. n Σ aijx j ≥ b i j=1
n Σ -aijx j j=1
≡
≤
-b i
c) Ograničenje tipa =: Uvode se 2 ograničenja ≥ i ≤ s istim iznosima. n Σ aijx j = b i j=1
n Σ aijx j ≥ b i, j=1
≡
n Σ aijx j ≤ b i j=1
d) Ograničenja na strukturne varijable: Formiraju se dodatni reci. e) Strukturna varijabla može biti negativna (d ≤ x < 0): Uvodi se j j; d j supstitucija 'j 'j = x x j ; x j - d
≥
0
f) Strukturna varijabla može poprimiti bilo koju vrijednost (-∞ < x j < +∞): Uvodi se supstitucija x "j - x '; j = x j
x 'j
≥
0, x "j
≥
0
Navedene transformacije naj češće se u praksi ne koriste, ali ovdje služe da bi se pokazala univerzalnost navedene definicije linearnog programiranja.
2.1.2. Definicija rješenja n Rješenjem se naziva bilo koja uređena n-torka (x 1,...,x n) ε R Rješenje je moguće ili dopustivo ako su sva postavljena ograničenja zadovoljena. Optimalno rješenje jest ono moguće rješenje za koje funkcija cilja z poprima maksimalnu vrijednost. Vršno moguće rješenje takvo je rješenje koje ne leži na spojnici bilo koja 2 druga moguća rješenja. Spojnica rješenja (x jest skup točaka ',...,x ') i (x ",...,x ") 1 n 1 n p)x p)x špx "+(1'1 ,..., px "+(1'nć, 0 < p < 1. 1 n Na slici 2-1 prikazana je spojnica dviju točaka u dvodimenzionalnom prostoru.
Uvod
Slika 2-1 Spojnica dvaju rješenja Sa slike je vidljivo da vrijedi x - x '1 1
──────── x "1 - x '1
=
x - x '2 2
──────── x "2 - x '2
= p
7
8
Operacijska istraživanja
Tako je, za x1, x - x '1 1
────────
= p
x "1 - x '1
iz čega je p)x x "1 - px '1 + x '1 = px "1 + (1'1 1 = px
odnosno općenito x
" ' p)x = px + (1-
Dva vršna moguća rješenja jesu susjedna ako je njihova spojnica brid dopuštenog područ ja. Ako postoji optimalno rješenje 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 * " ' = pz + (1 p)z , z
0 < p < 1
Iznos rješenja na spojnici jest ponderirani prosjek vršnih rješenja. Kako je suma * ć đ đ pondera jednaka 1, mogu a su samo tri me usobna odnosa izme u z', z i z": ' * " z < z < z
(1)
' * " z > z > z
(2)
' * " z = z = z
(3)
Uvod
9
Prve dvije mogućnosti u suprotnosti su s pretpostavkom o optimalnosti z*. Iz treće mogućnosti slijedi da ako ima barem dva optimalna rješenja, onda je i njihova spojnica optimalno rješenje.
2.1.3. Primjer formuliranja i rješavanja LP Pretpostavimo da raspolažemo s 3 stroja na kojima se mogu proizvoditi 2 različita artikla. Artikl br. 1 obrađuje se najprije na stroju br. 1, a finalizira se na stroju br. 3. Slično artikl br. 2 obrađuje se na stroju br. 2, a finalizira također na stroju br. 3. Daljnja je pretpostavka da imamo na raspolaganju odre đeni poznati broj sati rada na svakom od strojeva te da nam je cilj izabrati takav proizvodni asortiman koji će dati najveću realizaciju. Također 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 uo čiti da se koristi recipročna vrijednost produktivnosti, tj. vrijeme potrebno za obradu jedini čne količine artikla. Rješenje postavljenog problema dat će optimalni plan proizvodnje, a analiza optimalnog rješenja daje dodatne značajne 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
┌──────────────┐ ┌──────────────┐ │ │ │ │ ╶─────────┤ ├───────────────┤ ├───────╴Artikl br.1 1 (h/kg) 3 (h/kg) │ │ │ │ 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 može se s pomo ću jednadžbi i ograničenja formulirati kao problem LP. Utrošak vremena na stroju br. 1 upravno je proporcionalan obra đenoj količini artikla br. 1: STROJ..1 (h) = 1 (h/kg)
ARTIKL.1 (kg)
ARTIKL.2 (kg)
Slično vrijedi za stroj br. 2: STROJ..2 (h) = 2 (h/kg)
Kako se oba artikla finaliziraju na stroju br. 3, utrošak vremena zbraja se:
10
Operacijska istraživanja
STROJ..3 (h) = 3 (h/kg) 2 (h/kg)
ARTIKL.1 (kg) + ARTIKL.2 (kg)
Utrošak vremena ne može biti ve ći od raspoloživa kapaciteta: STROJ..1 STROJ..2 STROJ..3
≤ ≤ ≤
4 (h) 12 (h) 18 (h)
Očito je da sve do sad spomenute veličine moraju biti nenegativne. U primjenama LP to je najčešće slučaj te se za sve varijable implicitno postavlja uvjet nenegativnosti. Ukoliko postavljena ograni čenja nisu međusobno kontradiktorna, postoji beskonačno mnogo rješenja koja zadovoljavaju sva postavljenja ograničenja. Između tih beskonačno mnogo mogućih (ili dopustivih) rješenja odabire se ono koje daje najpovoljniju vrijednost funkcije cilja. U razmatranom slu čaju izabrat će se onakav plan proizvodnje kojim se postiže najveća realizacija. Potrebno je stoga definirati funkciju cilja, tj. realizaciju koja se iskazuje u nekim novčanim jedinicama (NJ): REALIZ (NJ) = 3 (NJ/kg) 5 (NJ/kg)
ARTIKL.1 (kg) + ARTIKL.2 (kg)
2.1.4. Grafičko rješavanje linearnog programa Budući da je rješenje problema jednoznačno definirano ako su npr. poznate koli čine ARTIKL.1 i ARTIKL.2, problem je dvodimenzionalan. Zbog toga ga je lako riješiti grafički. Svako od ograničenja može se predočiti pravcem koji dijeli ravninu (ARTIKL.1, ARTIKL.2) u 2 poluravnine; jedna sadrži mogu će ili dopustive točke, a druga sadrži točke koje ne zadovoljavaju to ograni čenje. Implicitni zahtjev za nenegativnost ograničava područ je na 1. kvadrant.
Slika 2-3 Grafičko rješenje jednostavnog problema proizvodnje
Uvod
11
Iz slike 2-3, 11-1 vidljivo je da ograni čenja tvore poligon. Točke unutar poligona predstavljaju sva moguća rješenja problema. Moguća je jednostavna provjera za bilo koju točku (ARTIKL.1, ARTIKL.2) iz poligona. Uvrštenjem odabranog para vrijednosti u jednadžbe kojima se izra čunava utrošak vremena na strojevima pokazuje se da niti za jedan od strojeva raspoloživi kapacitet ne će biti premašen. Prema tome, slobodno se može izabrati ona to čka, tj. onaj plan proizvodnje koji je po postavljenom kriteriju maksimalne realizacije najpovoljniji. Uvo đenjem realizacije prelazi se u trodimenzionalni prostor s koordinatama (ARTIKL.1, ARTIKL.2, REALIZ). U tom prostoru funkcija cilja predstavlja ravninu koja prolazi kroz ishodište. Lako se može pronaći projekcija pravca iz te ravnine koji predstavlja točke s istom vrijednošću funkcije cilja koja odgovara skupu to čaka 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. Može se povući projekcija pravca: 3ARTIKL.1 + 5 ARTIKL.2 = 8
Najbrži rast realizacije okomit je na povučenu projekciju pravca i usmjeren je od ishodišta. Translacijom u tom smjeru povećava se realizacija. Na primjer, to čka (3,2) daje iznos realizacije 33 + 52 = 19 NJ . Zato treba translatirati projekciju što je moguće dalje u smjeru rasta funkcije cilja, a da sadrži barem jednu to čku iz poligona mogućih rješenja. Na taj se način dobije plan proizvodnje (2, 6) koji daje maksimalnu realizaciju. To znači da proizvodnjom 2 kg artikla br. 1 i 6 kg artikla br. 2 postiže se 36 NJ realizacije. Uz postojeće uvjete nema rješenja boljeg od tog. Daljnje poboljšanje realizacije moguće je samo izmjenom nekih od uvjeta. Na slici 2-3, 11-1 se vidi da optimum leži na sjecištu ograničenja za strojeve br. 2 i br. 3. To znači da su ti strojevi u potpunosti iskorišteni i predstavljaju tzv. usko grlo proizvodnje. Programski je moguće analizirati efekte proširenja uskih grla, a rezultate će se u ovom slučaju moći interpretirati i grafi čki. Međutim, treba biti svjestan da su grafička rješenja ograničena na dvodimenzionalni prostor. U višedimenzionalnom prostoru grafi čko rješavanje bi bilo vrlo složeno i krajnje neprikladno.
2.1.5. Simpleksna metoda Simpleksnu metodu razvio je G.B.Dantzig 1947. godine. Od prve ugradnje na računalu pa sve do danas usavršavani su numerički postupci njene realizacije, ali se u osnovi nije mijenjala. Iako je bilo više pokušaja da se pronađe efikasniji algoritam, tek je 1984. N. Karmarkar razvio upotrebljiv algoritam, čija su prva testiranja dala obe ćavajuće rezultate, pogotovo za rješavanje velikih problema (više desetaka tisuća ograničenja).
12
Operacijska istraživanja
Simpleksna metoda jest iterativni postupak, koji u svakom koraku rješava sustav linearnih jednadžbi. Za rješavanje standardnog problema linearnog programiranja i uz uvjet b i
≥
0
m za i=1,...,
algoritam se sastoji od više koraka. Linearni program u standardnom obliku izražen strukturnim varijablama
uz
n max z = Σ c jx j j=1 n m Σ aijx ; i=1,..., j ≤ b i j=1
x j
≥
0;
j=1,...,n
uvođenjem dopunskih varijabli prelazi u sljedeću formu
uz
n max z = Σ c jx j j=1 n m Σ aijx ; i=1,..., j + x n+i = b i j=1 x m j=1,...,n+ j ≥ 0;
Sustav linearnih jednadžbi sad se sastoji od m jednadžbi s m+n nepoznanica. Rješenje toga sustava (s dopunskim varijablama) naziva se prošireno rješenje. Prošireno vršno rješenje naziva se bazičnim rješenjem. Sustav u kojem ima više nepoznanica nego linearno nezavisnih jednadžbi, ima beskonačno mnogo rješenja. Budući da optimalno rješenje mora biti i vršno rješenje, treba ga tražiti među bazičnim rješenjima. Da bi bazično rješenje bilo moguće, ono mora biti u prvom kvadrantu, zbog postavljenih uvjeta nenegativnosti. Simultanim rješavanjem sustava od m linearnih jednadžbi s m+n nepoznanica dobije se bazično rješenje ako se prethodno izabere n varijabli i fiksira ih na 0. Te se varijable nazivaju nebazičnima. Postoji najviše (m +n)!
────── m !n!
načina da se od m+n varijabli izabere njih n nebazičnih, prema tome ima isto najviše toliko bazičnih rješenja.
Uvod
13
Sama po sebi nameće se ideja da se do optimuma dođe pronalaženjem svih bazi čnih rješenja. Međutim, već sustav s 10 linearnih ograničenja i 5 nepoznanica ima (10+5)!
─────── = 3003 bazična rješenja. 10!5!
Sustav s 20 ograničenja i 10 nepoznanica ima čak 30045015 bazičnih rješenja, što bi značilo da za takav, u praksi zanemarivo malen problem, treba preko 30 milijuna puta riješiti sustav s 20 jednadžbi i 20 nepoznanica. Stvarni problemi iz prakse sastoje se od više stotina, pa i tisu ća ograničenja, te je očito da ni na najbržim računalima taj pristup neće dovesti do rezultata. Zbog toga se u simpleksnoj metodi ispituju samo moguća bazična rješenja, i to tako da svako sljedeće rješenje nije lošije od prethodnoga. Za odre đivanje početnog bazičnog rješenja odabire se n nebazičnih varijabli. Te se varijable fiksiraju na nulu i time omogućuju jednoznačno rješavanje sustava od m jednadžbi s m nepoznanica. Pogodno je kao nebazi čne na početku odabrati strukturne varijable. Tada preostaje m dopunskih varijabli u m jednadžbi s tim da se svaka od tih dopunskih varijabli nalazi samo u po jednoj jednadžbi, i to s koeficijentom 1. Takav izbor omogu ćuje izravno očitavanje prvog mogućeg bazičnog rješenja. Ispituje se bi da li porast neke od nebazičnih varijabli poboljšao funkciju cilja. Ako bi, obavlja se zamjena jedne takve ulazne nebazi čne i jedne izlazne bazične varijable, i to tako da novo bazično rješenje bude i dalje mogu će. Kad se ne može naći takva ulazna nebazična varijabla koja bi svojim porastom s vrijednosti 0 poboljšala funkciju cilja, rješenje je optimalno.
2.1.5.1. Numerički primjer Vratimo se jednostavnom modelu proizvodnje iz poglavlja 2.1.3. Ako, zbog jednostavnosti pisanja, sa x1 označimo proizvedenu koli činu artikla br.1, a sa x2 proizvedenu količinu artikla br.2, tada model glasi max z = 3x 1 + 5x 2
uz ograničenja ≤ 4 2x 2 ≤ 12 3x 1 + 2x 2 ≤ 18 x 1, x 2 ≥ 0
x 1
Nejednadžbe ograničenja transformiraju se u jednadžbe dodavanjem dopunskih varijabli x3, x4 i x5, pa imamo uz
max z = 3x 1 + 5x 2 = 4 2x + x = 12 2 4 3x + x 1 + 2x 2 5 = 18 x 1, x 2, x 3, x 4, x 5 ≥ 0 x 1
+ x 3
14
Operacijska istraživanja
Potrebno je odabrati po četno moguće bazično rješenje, što znači da moramo odabrati 3 bazične i 2 nebazične varijable, i to tako da sve bazi čne varijable imaju pozitivnu vrijednost. Jedino očigledno moguće bazično rješenje možemo postići tako da x1 i x2 odaberemo za nebazične, iz čega slijedi da su x3, x4 i x5 bazične varijable. Treba primijetiti da su u gornjem sustavu sve bazi čne varijable izražene preko nebazi čnih varijabli, čime se vrijednost varijabli u rješenju može odmah očitati. Ako i funkciju cilja z proglasimo bazičnom varijablom i izrazimo je preko nebazi čnih varijabli imamo sustav z x 3 x 4 x 5
= = = =
0 + 3x 1 + 5x 2 4 - x 1 12 - 2 x 2 18 - 3 x 1 - 2x 2
iz kojeg direktno možemo očitati početno rješenje x 1 = 0, x 2 = 0, x 3 = 4, x 4 = 12, x 5 = 18, z = 0
Za ostala bazična rješenja koja bismo mogli odabrati nije na prvi pogled očito jesu li moguća. U svakoj iteraciji simpleksnog postupka treba odabrati jednu varijablu koja će postati bazičnom, i jednu varijablu koja će time postati nebazi čnom. Te ćemo varijable nazvati ulazna nebazična i izlazna bazična varijabla. Za ulaznu nebazičnu varijablu poželjno je odabrati onu varijablu čiji će prirast najviše popraviti funkciju cilja. Kandidate za ulaznu nebazi čnu varijablu očigledno treba tražiti među trenutno nebazi čnim varijablama, u našem slučaju x1 i x2. Kao mjera za poboljšanje može nam poslužiti promjena funkcije cilja uz jedinični prirast ulazne nebazične varijable. Jedini čnim porastom varijable x1 funkcija cilja porast će za 3 jedinice. Promjena vrijednosti za x1 izazvat će promjenu vrijednosti dotadašnjih bazi čnih varijabli. Ako x1 poraste s 0 na 1, to će, da bi druga jednadžba bila zadovoljena, uzrokovati smanjenje bazične varijable x3 za 1. Prema četvrtoj jednadžbi, x5 smanjit će se za 3. Slično se razmatranje može provesti za x2, pri čemu dobivamo promjenu funkcije cilja u iznosu od 5 jedinica. Povoljnije je, prema tome, odabrati x2 za ulaznu nebazičnu varijablu. Potrebno je, međutim, izračunati koliko ta varijabla može porasti a da pri tome rješenje ostane moguće, tj. da niti jedna varijabla ne postane negativna. Iz treće jednadžbe lako se vidi da ako x2 poraste na 6, vrijednost varijable x4 pada na 0. Svaki daljnji prirast varijable x2 može se kompenzirati jedino negativnom vrijednošću varijable x4, što nije dozvoljeno. Na jednak način iz četvrte jednadžbe zaključujemo da x2 može rasti do 9 (varijabla x1 jest, podsjetimo se, nebazična i ima vrijednost 0). Zajedno uzevši, možemo dopustiti manji od ta dva prirasta. Time vrijednost za x4 postaje 0 i x4 napušta bazu. Da bi se novo bazično rješenje moglo očitati, potrebno je ponovo izraziti bazi čne varijable pomoću nebazičnih, tj. postići da u svakoj jednadžbi postoji samo jedna bazična varijabla,i to
Uvod
15
s koeficijentom 1. To ćemo učiniti Gauss ─ Jordanovom eliminacijom nakon prebacivanja svih varijabli na lijevu stranu znaka jednakosti. Treća jednadžba dobit će potreban oblik ako je podijelimo s 2: z - 3x 1 - 5x 2 x + 1 x 2 3x 1 + 2x 2
= 0 x = 4 3 + 1/2x = 6 4 + x 5 = 18
Iz četvrte jednadžbe x2 možemo ukloniti tako da tre ću jednadžbu pomnoženu s -2 dodamo četvrtoj pa imamo z - 3x 1 - 5x 2 x + 1 x 2 3x 1
= 0 x = 4 3 + 1/2x = 6 4 x 4 + x 5 = 6
Konačno, množenjem treće jednadžbe s 5 i dodavanjem u jednadžbu koja odgovara funkciji cilja dobije se z - 3x 1 x 1
+ x 2
3x 1
+ 5/2x 4
= 30 = 4 x 3 + 1/2x = 6 4 x 4 + x 5 = 6
iz čega očitavamo x 1 = 0, x 2 = 6, x 3 = 4, x 4 = 0, x 5 = 6, z = 30.
Kandidati za ulaznu nebazi čnu varijablu sada su nebazi čne varijable x1 i x4. Jedini čni prirast od x1 uzrokovat će povećanje funkcije cilja za 3 i smanjenje bazičnih varijabli x3 za 1 (iz druge jednadžbe) i x5 za 3 (iz treće jednadžbe). Jedini čni prirast od x4 uzrokuje smanjenje x2 za 1/2 (iz treće) i povećanje x5 za 1 (iz četvrte jednadžbe). Promjena funkcije cilja u tom je slu čaju -5/2, što je u suprotnosti s ciljem optimizacije. Dakle za ulaznu nebazičnu varijablu odabrat ćemo x1. Prema drugoj jednadžbi, dozvoljeni prirast za x1 jest 4, a prema četvrtoj, 6/3 tj. 2. Odabiremo manji prirast, čime x5 postaje nebazična varijabla. Postupkom eliminacije dobivamo sustav z x 2 x 1
+ x + 3 + -
x 3/2x + 4 5 = 36 1/3x x 1/3 4 5 = 2 1/2x = 6 4 1/3x + 1/3x 4 5 = 2
iz kojeg izravno očitavamo rješenje x 1 = 2, x 2 = 6, x 3 = 2, x 4 = 0, x 5 = 0, z = 36
Iz retka koji odgovara funkciji cilja vidi se da promjene baze, dakle porast nebazičnih varijabli x4 ili x5 donosi negativnu promjenu funkcije cilja, pa zaključujemo da je postignut optimum.
16
Operacijska istraživanja
Varijable x4 i x5 nadopunjuju ograni čenja na kapacitet strojeva 2 i 3. U optimalnom rješenju one imaju vrijednost nula, što zna či da su kapaciteti tih strojeva iskorišteni maksimalno. Varijabla x3 svojom vrijednošću pokazuje koliko je na stroju 1 još ostalo neutrošena vremena. Ako se ograničimo na dvije dimenzije problema koje odgovaraju stvarnim veličinama, x1 i x2, možemo primijetiti da je simpleksni postupak krenuo iz točke t1 = (0, 0) preko t2 = (0, 6) do konačnog rješenja t3 = (2, 6). Iz slike 2-3, 11-1 vidimo da su te točke vrhovi poligona koji ograničava dopustivo područ je. To će biti slučaj i u višedimenzionalnom prostoru. Simpleksni postupak kretat će se uvijek od vrha do vrha dopustivog područ ja prema boljem rješenju ili prema onom koje je barem jednako dobro. Valja naglasiti da promjena funkcije cilja ne mora uvijek biti kriterij koji će postupak najbrže dovesti do optimuma. Ako je za neki hipotetički primjer dopustivo područ je ograni čeno kao na slici 2-4, postupak će iz ishodišta krenuti u pravcu točke A jer je koeficijent u funkciji cilja uz x2 veći. Izbor točke B kao sljedećeg vrha bio bi neusporedivo bolji, ali postupak to ne može uočiti.
Slika 2-4 Kretanje simpleksnog postupka prema optimumu
Uvod
17
2.1.6. Simpleksna metoda u tabličnom obliku Promotrimo sljedeći problem: Televizori tipa A postižu 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 postižu prodajnu cijenu od 490 NJ, provode 2 sata u odjelu za pripremu i 3 sata u odjelu za sastavljanje. Sat rada odjela za pripremu košta 9 NJ, dok sat rada odjela za sastavljanje košta 6 NJ. Zna se da se na tržištu može plasirati najviše 100 televizora, te da je raspoloživo najviše 160 sati pripremnog odjela i 180 sati odjela za sastavljanje. Potrebno je odrediti proizvodni program koji daje maksimalnu kontribuciju ili doprinos za pokriće, tj. maksimalnu razliku između prihoda od prodaje i direktnih troškova izrade. Ako sa x1 označimo broj proizvedenih televizora tipa A, a sa x2 broj proizvedenih televizora tipa B, funkcija cilja ima oblik uz
max z = (410 - 4 9 - 16)x 2 1 + (490 - 2 9 - 36)x = 368x 1 + 454x 2 x x 1 + 2 ≤ 100 4x 1 + 2x 2 ≤ 160 1x 1 + 3x 2 ≤ 180 x 1, x 2 ≥ 0
Ako proširimo model dopunskim varijablama, proglasimo x1 i x2 za nebazične varijable, čime smo sigurni u moguće rješenje, te izrazimo funkciju cilja preko nebazičnih varijabli, dobit ćemo ovaj sustav: = 0 z - 368x 2 1 - 454x x x = 100 1 + 2 + x 3 4x + x = 160 1 + 2x 2 4 + x x 5 = 180 1 + 3x 2 x i ≥ 0, i=1,...,5
Taj se sustav može napisati u tabličnom obliku: ┌─────┬─────────────────────────────────────────┬──────┐ │ │ Iteracija 0 │ Desna │ Baza │ z │ strana │ x x x x x 1 2 3 4 5 ├─────┼─────────────────────────────────────────┼──────┤ │ │ │ │ z │ 1 -368 -454 0 0 0 │ 0 │ │ │ │ x 3 │ 0 1 1 1 0 0 │ 10 0 │ │ │ │ x 4 │ 0 4 2 0 1 0 │ 16 0 │ │ │ │ x 5 │ 0 1 3 0 0 1 │ 18 0 │ │ │ └─────┴─────────────────────────────────────────┴──────┘
│ │ │ │ │ │ │ │ │ │
U retku koji odgovara funkciji cilja ima negativnih koeficijenata. Kako je negativnost nastala prebacivanjem varijabli s desne na lijevu stranu jednadžbe za funkciju cilja, povećanjem vrijednosti za varijablu koja uz sebe nosi negativni koeficijent povećat će se i vrijednost funkcije cilja, što je i cilj optimizacije. Za ulaznu nebazičnu varijablu odabrat ćemo x2 jer ima po apsolutnoj vrijednosti ve ći negativni koeficijent i time više doprinosi poboljšanju funkcije cilja. Potrebno je još odrediti i izlaznu bazičnu varijablu. Izlazna bazična varijabla bit će ona koja porastom ulazne nebazi čne varijable (u ovom slučaju x2) prva padne na nulu. Redak izlazne bazi čne varijable bit će redak s najmanjim nenegativnim konačnim kvocijentom desne strane i koeficijenta uz ulaznu nebazi čnu varijablu: ┌─────┬─────────────────────────────────────────┬──────┐ │ │ Iteracija 0 │ Desna │
18
Operacijska istraživanja
z x x x x x │ Baza │ │ strana │ Kvocijent 1 2 3 4 5 ├─────┼─────────────────────────────────────────┼──────┤ │ │ ┌────┐ │ │ │ z │ 1 -368 │ -454 │ 0 0 0 │ 0 │ │ │ │ │ │ │ │ x 3 │ 0 1 │ 1 │ 1 0 0 │ 10 0 │ 100/1 = 100 │ │ │ │ │ │ │ x 4 │ 0 4 │ 2 │ 0 1 0 │ 16 0 │ 160/2 = 80 │ │ ┌─────┼────┼─────────────────────┼─────┐│ 0 │ 1 │ 3 │ 0 0 1 │ 18 0 ││ 180/3 = 60 │ x 5 │ │ │ └─────┴────┴─────────────────────┼─────┘│ └─────┴─────────────────────────────────────────┴──────┘
Redak u kojem je pronađen najmanji odnos identificira izlaznu bazi čnu varijablu (u ovom slučaju x5) i naziva se stožernim retkom. Da bi se direktno očitalo rješenje obavlja se stožerni razvoj koji zapo činje tako da se stožerni redak podijeli stožerom: ┌─────┬─────────────────────────────────────────┬──────┐ │ │ Iteracija 0 │ Desna x x x x x │ Baza │ z │ strana │ 1 2 3 4 5 ├─────┼─────────────────────────────────────────┼──────┤ │ │ │ │ z │ │ │ │ │ │ x 3 │ │ │ │ │ │ │ x 4 │ │ │ │ │ x 2 │ 0 1/3 1 0 0 1/3 │ 60 │ │ │ └─────┴─────────────────────────────────────────┴──────┘
│ │ │ │ │ │ │ │ │ │
Modificirani redak pomnožen s odgovaraju ćim koeficijentom dodaje se ostalim retcima tako da se eliminiraju koeficijenti u stupcu ispod varijable (sada ve ć bazične) x2. ┌─────┬─────────────────────────────────────────┬──────┐ │ │ Iteracija 1 │ Desna │ Baza │ z │ strana │ x x x x x 1 2 3 4 5 ├─────┼─────────────────────────────────────────┼──────┤ │ │ │ │ z │ 1 -650/3 0 0 0 454/3 │ 27240 │ │ │ │ x 3 │ 0 2/3 0 1 0 -1/3 │ 40 │ │ │ │ x 4 │ 0 10/3 0 0 1 -2/3 │ 40 │ │ │ │ x 2 │ 0 1/3 1 0 0 1/3 │ 60 │ │ │ └─────┴─────────────────────────────────────────┴──────┘
│ │ │ │ │ │ │ │ │ │
U retku koji odgovara funkciji cilja ima još negativnih koeficijenata, što zna či da postupak nije završen. Za ulaznu nebazičnu varijablu odabire se x1 i računa minimalni odnos desne strane i koeficijenta u stupcu ispod x1.
Uvod
19
┌─────┬─────────────────────────────────────────┬──────┐ Iteracija 1 │ │ │ Desna │ z x x x x x │ Baza │ │ strana │ Kvocijent 1 2 3 4 5 ├─────┼─────────────────────────────────────────┼──────┤ │ │ ┌──────┐ │ │ │ z │ 1 │ -650/3 │ 0 0 0 454/3 │ 27240 │ │ │ │ │ │ │ │ x 3 │ 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 │ x 4 │ │ │ ├──────┼───────────────────────────┼─────┘│ │ x 2 │ 0 │ 1/ 3 │ 1 0 0 1/3 │ 60 │ 60*3 = 180 │ │ └──────┘ │ │ └─────┴─────────────────────────────────────────┴──────┘
Za izlaznu bazičnu varijablu odabire se dakle x4. Važno je primijetiti da svaki negativni kvocijent zapravo znači beskonačni prirast ulazne nebazične varijable. Da je neki od koeficijenata ispod ulazne nebazi čne varijable bio negativan, to bi značilo da se prirast te varijable kompenzira prirastom varijable koja je u tom retku bazična, pa takav redak ne predstavlja ograni čenje za prirast ulazne nebazične varijable. Nakon stožernog razvoja dobivamo tablicu: ┌─────┬─────────────────────────────────────────┬──────┐ Iteracija 2 │ │ │ Desna z x x x x x │ Baza │ │ strana │ 1 2 3 4 5 ├─────┼─────────────────────────────────────────┼──────┤ │ │ │ 1 0 0 0 65 108 │ z │ │ 29840 │ │ │ 0 0 0 1 -1/5 -1/5 │ 32 │ x 3 │ │ │ │ │ x 1 │ 0 1 0 0 3/10 -1/5 │ 12 │ │ │ │ x 2 │ 0 0 1 0 -1/10 2/5 │ 56 │ │ │ └─────┴─────────────────────────────────────────┴──────┘
│ │ │ │ │ │ │ │ │ │
U retku koji odgovara funkciji cilja nema više negativnih koeficijenata, iz čega zaključujemo da je postignut optimum: x 1 = 12, x 2 = 56, x 3 = 32, x 4 = 0, x 5 = 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 ograničenje na broj televizora koji se mogu plasirati na tržište. x3 ostala je bazična i njena vrijednost pokazuje koliko bi se još televizora moglo prodati prije nego što tržište do đe u zasićenje. x4 i x5 nadopunjuju ograničenja na kapacitet odjela i njihova vrijednost 0 ukazuje na to da su kapaciteti oba odjela potpuno utrošeni.
2.1.7. Ograničenja tipa = i ≥ 2.1.7.1. Metoda veliko M Primjer: 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 pla ćeni su 5 NJ na sat. KV kontrolori kontroliraju 15 proizvoda na sat uz 95-postotnu sigurnost, a pla ćeni
20
Operacijska istraživanja
su 3 NJ na sat. Raspoloživo je ukupno 6 VKV i 10 KV kontrolora. Radno vrijeme jest 8 sati na dan. Svaki neispravan proizvod koji se propusti na tržište stoji poduzeće 2 NJ. Treba rasporediti kontrolore tako da se posao obavi uz najmanji trošak. Ako se s x1 označi broj VKV, s x2 broj KV kontrolora, možemo postaviti sljede ća ograničenja: x 1 x 2
≤ ≤
6 10
Nejednadžba za dnevnu produktivnost uz radno vrijeme od 8 sati glasi (8 h
25 kom/h)
x 1 + (8 h
15 kom/h)
x 2
≥
1800 kom
odnosno 200
Ukupni trošak je (8 h (8 h
x 1 +
5 NJ/h + 2 NJ/kom 3 NJ/h + 2 NJ/kom
8 h 8 h
120
x 2
25 kom/h 15 kom/h
0.02) 0.05)
≥
1800
x 1 + x 2
Nakon što se provedu izračunavanja i, zbog lakšeg računanja, nejednadžba za produktivnost podijeli s 40, LP formulacija problema ima oblik uz
min z = 48x 1 + 36x 2 6 x 2 ≤ 10 5x 1 + 3x 2 ≥ 45 ≤
x 1
Nejednadžbe sada treba pretvoriti u jednadžbe. S nejednadžbama koje ograni čavaju broj kontrolora nema problema ─ dodaju se dopunske varijable: + x 3
x 1 x 2
= 6 + x 4 = 10
Da bi se nejednadžba za produktivnost pretvorila u jednadžbu uvođenjem neke nove varijable koja mora imati pozitivnu vrijednost, potrebno je izvršiti oduzimanje: 5x 5 = 45 1 + 3x 2 - x
Sad se, međutim, iz sustava ne može direktno očitati prvo moguće bazično rješenje koje je neophodno za pokretanje simpleksnog postupka. Ako bi se za bazičnu varijablu odabralo x5, to bi značilo da je njena vrijednost -45, što nije dozvoljeno. Zato se kod transformacije nejednadžbe tipa ≥, osim dodavanja dopunske varijable s negativnim predznakom, dodaje i tzv. umjetna varijabla. Tako nastane jednadžba koja ima oblik _ 5x 5 + x 6 = 45 1 + 3x 2 - x
Umjetna varijabla, za razliku od dopunske varijable, predstavlja prekora čenje ograničenja u nedopuštenom smjeru. Zato je potrebno osigurati to da umjetne varijable ne budu bazične u konačnom rješenju. To se može učiniti tako da se umjetna varijabla uvede u funkciju cilja s vrlo nepovoljnim koeficijentom. Kod ručnog
Uvod
21
računanja uobičajeno je taj koeficijent označiti sa M, odakle i naziv metodi, koja se u literaturi zove metodom veliko M (Big M). Linearni program sada glasi _ uz
+ Mx 6
Min z = 48x 1 + 36x 2
+ x 3
x 1 x 2 5x 1 + 3x 2
+ x 4 - x 5
= 6 = 10 _ + x 6 = 45
ili u tabličnom obliku ┌─────┬───────────────────────────────────────────────────┬───────┐ _ │ │ Iteracija 0 │ Desna │ Baza │ z x x x x x x 1 2 3 4 5 6 │ strana │ ├─────┼───────────────────────────────────────────────────┼───────┤ │ │ │ │ z │ 1 -48 -36 0 0 0 -M │ 0 │ │ │ │ x 3 │ 0 1 0 1 0 0 0 │ 6 │ │ │ │ x 4 │ 0 0 1 0 1 0 0 │ 10 │ _ │ │ │ x 6 │ 0 5 3 0 0 -1 1 │ 45 │ │ │ └─────┴───────────────────────────────────────────────────┴───────┘
│ │ │ │ │ │ │ │ │ │
Iz te tablice ne može se direktno očitati bazično rješenje, jer u retku koji odgovara funkciji cilja postoje dvije bazi čne varijable s koeficijentom razli čitim od nule. Iz istog razloga ne može se očitati ni promjena funkcije cilja uz promjenu nebazi _ čnih varijabli. Zato iz prvog retka eliminiramo koeficijent uz bazi čnu varijablu x 6 tako da četvrti redak pomnožen s M dodamo prvom retku: ┌─────┬───────────────────────────────────────────────────┬───────┐ _ Iteracija 0 │ │ │ Desna x x x x x x │ Baza │ z 1 2 3 4 5 6 │ strana │ ├─────┼───────────────────────────────────────────────────┼───────┤ │ │ │ 5M-48 3M-36 0 0 -M 0 │ 45 M │ z │ 1 │ │ │ │ x 3 │ 0 1 0 1 0 0 0 │ 6 │ │ │ │ x 4 │ 0 0 1 0 1 0 0 │ 10 │ _ │ │ │ x 6 │ 0 5 3 0 0 -1 1 │ 45 │ │ │ └─────┴───────────────────────────────────────────────────┴───────┘
│ │ │ │ │ │ │ │ │ │
Sad su sve bazične varijable izražene s pomoću nebazičnih, pa možemo izabrati ulaznu nebazičnu varijablu. Kako je rije č o minimizaciji, tražimo najveći pozitivni koeficijent u retku koji odgovara funkciji cilja ─ treba se podsjetiti da taj redak zapravo glasi z = 45M - (5M-48)x 5 1 - (3M-36)x 2 + Mx
tj. da pozitivni koeficijent u tablici odgovara negativnom koeficijentu u jednadžbi. Prisjetimo se, kod postupka maksimizacije tražili smo negativni koeficijent koji je po apsolutnoj vrijednosti najve ći. To je i jedina razlika u simpleksnom postupku između maksimizacije i minimizacije.
22
Operacijska istraživanja
Za ulaznu nebazičnu varijablu izabiremo x1. Zbog najmanjeg kvocijenta desne strane i koeficijenta u stupcu uz ulaznu nebazi čnu varijablu kao izlaznu bazičnu varijablu izabiremo x3 ┌─────┬──────────────────────────────────────────────────┬───────┐ _ │ │ Iteracija 0 │ Desna │ x x x x x x │ Baza │ z 1 2 3 4 5 6 │ strana │ Kvocijent ├─────┼──────────────────────────────────────────────────┼───────┤ │ │ ┌──────┐ │ │ │ z │ 1 │ 5M-48 │ 3M-36 0 0 -M 0 │ 45 M │ │ │ ├──────┼───────────────────────────────────────┼─────┐ │ │ x 3 │ 0 │ 1 │ 0 1 0 0 0 │ 6 │ │ 6 │ │ ├──────┼───────────────────────────────────────┼─────┘ │ │ x 4 │ 0 │ 0 │ 1 0 1 0 0 │ 10 │ ∞ │ _ │ │ │ │ │ │ x 6 │ 0 │ 5 │ 3 0 0 -1 1 │ 45 │ 9 │ │ └──────┘ │ │ └─────┴──────────────────────────────────────────────────┴───────┘
Nakon stožernog razvoja (dijeljenja retka sa stožernim elementom i eliminacije ostalih koeficijenata u stupcu ispod x1) dobijemo tablicu: ┌─────┬──────────────────────────────────────────────────┬───────┐ _ │ │ Iteracija 1 │ Desna │ x x x x x x │ Baza │ z 1 2 3 4 5 6 │ strana │ Kvocijent ├─────┼──────────────────────────────────────────────────┼───────┤ │ │ ┌─────┐ │ │ │ z │ 1 0 │ 3M-36 │ -5M+48 0 -M 0 │ 15M+288 │ │ │ │ │ │ │ │ x 1 │ 0 1 │ 0│ 1 0 0 0 │ 6 │ ∞ │ │ │ │ │ │ │ x 4 │ 0 0 │ 1│ 0 1 0 0 │ 10 │ 10 │ _ │ ┌──────┼─────┼────────────────────────────────┼─────┐ │ │ x 6 │ 0 │ 0 │ 3│ -5 0 -1 1 │ 15 │ │ 5 │ │ └──────┴─────┴────────────────────────────────┼─────┘ │ └─────┴──────────────────────────────────────────────────┴───────┘
_ Za ulaznu nebazičnu varijablu izabire se x2, a bazu napušta x 6. Nakon stožernog razvoja imamo ┌─────┬───────────────────────────────────────────────────┬───────┐ _ │ │ Iteracija 2 │ Desna │ Baza │ z x x x x x x 1 2 3 4 5 6 │ strana │ ├─────┼───────────────────────────────────────────────────┼───────┤ │ │ │ │ z │ 1 0 0 -12 0 -12 -M+12 │ 46 8 │ │ │ │ x 1 │ 0 1 0 1 0 0 0 │ 6 │ │ │ │ x 4 │ 0 0 0 5/3 1 1/3 -1/3 │ 5 │ │ │ │ x 2 │ 0 0 1 -5/3 0 -1/3 1/3 │ 5 │ │ │ └─────┴───────────────────────────────────────────────────┴───────┘
│ │ │ │ │ │ │ │ │ │
U retku koji odgovara funkciji cilja više nema pozitivnih koeficijenata, iz čega zaključujemo da je postignut minimum. Iz tablice možemo očitati rješenje _ x 1 = 6, x 2 = 5, x 3 = 0, x 4 = 5, x 5 = 0, x 6 = 0, z = 468.
Dakle, treba zaposliti 6 VKV i 5 KV kontrolora, što će rezultirati ukupni dnevnim troškom od 468 NJ. Dopunska varijabla x4 jest bazična s iznosom 5, što znači da je ostalo još 5 neraspoređenih KV kontrolora.
Uvod
23
2.1.7.2. Dvofazna simpleksna metoda Metoda veliko M nije prikladna za ugradnju u ra čunalo zbog koeficijenta M kojemu je potrebno pridijeliti neku numeri čku vrijednost. Za konkretnu vrijednost nije se lako odlučiti, ali obično se uzima broj za nekoliko redova veličine veći od najvećeg koeficijenta koji se o čekuje u matrici. Međutim, prisustvo brojeva koji se razlikuju za više redova veličine u elektroničkim računalima, zbog njihove ograničene točnosti, dovodi do numeri čkih poteškoća. Da bi se to izbjeglo, povoljnije je za rješavanje odabrati dvofaznu simpleksnu metodu, koju ćemo ilustrirati sljedećim primjerom. Za prehranu u nekom periodu raspoložive 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 koli čine vitamina, konzumirala i maksimalna količina kalorija, ako nije raspoloživo više od 6 konzervi tipa 1? Ako sa xi označimo broj konzervi tipa i, funkcija cilja ima oblik max z = 2000x 1 + 1500x 2 + 1000x 3
uz ograničenja x x x 1 + 2 + 3 = 10 50x 1 + 100x 2 + 60x 3 ≥ 600 ≤ 6 x 1
Nejednadžbe pretvaramo u jednadžbe na ve ć poznati način. Međutim, da bi se omogućio izbor početnog mogućeg bazičnog rješenja, u ograničenje tipa = potrebno je dodati umjetnu varijablu koju ćemo nastojati učiniti nebazičnom postupkom optimizacije. Naš sustav sada poprima oblik _ x x x _ 1 + 2 + 3 + x 4 x x x x 50x + 100 + 60 + 1 2 3 5 6 x 1
= 10 = 600 + x 7 = 6
Takav sustav mogli bismo riješiti _ _ i metodom veliko M, pri čemu bismo u funkciju cilja dodali umjetne varijable x 4 i x 6 s vrlo nepovoljnim koeficijentom. Alternativni je pristup uvođenje nove funkcije cilja, koja će se sastojati samo od umjetnih varijabli i koju ć _ emo minimizirati. _ Min y = x 4 + x 6
Problem minimizacije može se prikazati kao maksimizacija suprotne funkcije, tj.
24
Operacijska istraživanja
_ _ Min y = x 4 + x 6
_ _ Max y ' = -x 4 - x 6
≡
Prebacivanjem varijabli na lijevu stranu jednadžbe dobijemo sustav _ _ y '
= 0 = 10 = 600 + x 7 = 6
+ + x 4 6 _x x x x x + + + 1 2 3 4 _ x x x x 6 50x + 100 + 60 + 1 2 3 5 x 1
Potrebno je još funkciju cilja izraziti s pomo ću nebazičnih varijabli, što ćemo učiniti tako da drugu jednadžbu pomnoženu s -1 dodamo prvoj _ y ' -
x 1 -
x 2 -
+ x 6
x 3
= -10
i zatim tako modificiranoj jednadžbi dodamo treću jednadžbu pomnoženu s -1: y ' - 51x 1 - 101x 2 - 61x 3
+ x 5
= -610
Sad možemo sustav napisati u tabličnom obliku i izabrati ulazne i izlazne varijable: ┌────┬─────────────────────────────────────────────────────────┬───────┐ _ │ │ Iteracija _ 0 │ Desna │ x │ Baza │ y ' x x x x x x 1 2 3 4 5 6 7 │ strana │ Kvocijent ├────┼─────────────────────────────────────────────────────────┼───────┤ │ │ ┌─────┐ │ │ │ y ' │ 1 -51 │ -101 │ -61 0 1 0 0 │ -610 │ │ │ │ │ │ │ 1 1 │ 1 1 0 0 0 │ 10 │ 10 │ x │ 4 │ 0 _ │ │ ┌──────┼─────┼───────────────────────────────────── ──┼──────┐│ │ x │ 50 │ 100 │ 60 0 -1 1 0 │ 600││ 6 6 │ 0 │ │ └──────┼─────┼───────────────────────────────────── ──┼──────┘│ │ x 1 0 │ 0 0 0 0 1 │ 6 │ │ ∞ 7 │ 0 │ │ └─────┘ │ │ └────┴─────────────────────────────────────────────────────────┴───────┘
Nakon stožernog razvoja slijede nove iteracije:
┌────┬─────────────────────────────────────────────────────────┬───────┐ _ │ │ Iteracija _ 1 │ Desna x x x x │ Baza │ y ' x x x 1 2 3 4 5 6 7 │ strana │ ├────┼─────────────────────────────────────────────────────────┼───────┤ │ │ ┌─────┐ │ │ y ' │ 1 │ -1/2 │ 0 -4/10 0 -1/100 101/100 0 │ -4 │ │ │ │ │ │ x 0 4/10 1 1/100 -1/100 0 │ 4 4 │ 0 │ 1/2 │ │ │ │ │ │ │ x 1 6/10 0 -1/100 1/100 0 │ 6 2 │ 0 │ 1/2 │ │ │ ├─────┼──────────────────────────────────────────── ───┼─────┐ │ 1 │ 0 0 0 0 0 1 │ 6 │ │ x 7 │ 0 │ │ │ └─────┴──────────────────────────────────────────── ───┼─────┘ │ └────┴─────────────────────────────────────────────────────────┴───────┘ ┌────┬─────────────────────────────────────────────────────────┬───────┐ _ │ │ Iteracija _ 2 │ Desna │ Baza │ y ' x x x x x x x 1 2 3 4 5 6 7 │ strana │ ├────┼─────────────────────────────────────────────────────────┼───────┤ │ │ ┌──────┐ │ ' │ 1 0 0 │ -4/10 │ 0 -1/100 101/100 1/2 │ -1 │ y │ │ ┌────────────┼──────┼────────────────────────────── ─┼─────┐ │ │ x │ 0 0 │ 4/10 │ 1 1/100 -1/100 -1/2 │ 1 │ 4 │ 0 │ │ └────────────┼──────┼────────────────────────────── ─┼─────┘ │ │ x 0 1 │ 6/10 │ 0 -1/100 1/100 -1/2 │ 3 2 │ 0 │ │ │ │ │ │ x 1 0 │ 0 │ 0 0 0 1 │ 6 1 │ 0 │ │ └──────┘ │ └────┴─────────────────────────────────────────────────────────┴───────┘ ┌────┬─────────────────────────────────────────────────────────┬───────┐ _ │ │ Iteracija _ 3 │ Desna x x x x x x x │ Baza │ y ' 1 2 3 4 5 6 7 │ strana │ ├────┼─────────────────────────────────────────────────────────┼───────┤ │ │ │ │ y ' │ 1 0 0 0 1 0 1 0 │ 0 │ │ │ 0 0 1 10/4 1/40 -1/40 -5/4 │ 5/2 │ x 3 │ 0 │ │ │ 0 1 0 -6/4 -1/40 1/40 1/4 │ 3/2 │ x 2 │ 0 │ │ │ │ x 1 0 0 0 0 0 1 │ 6 1 │ 0 │ │ │ └────┴─────────────────────────────────────────────────────────┴───────┘
│ Kvocijent │ │ │ │ 8 │ │ 12
6
│
│ Kvocijent │
│
│ 10/4 │ │ │ │ │ │ │ │ │ │ │ │ │ │
5 ∞
Uvod
25
U retku koji odgovara funkciji cilja nema više negativnih koeficijenata, što zna či da je postignut maksimum. Iznos funkcije cilja jest 0. Podsjetimo se, rije č je o umjetnoj funkciji cilja koju smo uveli da dobijemo mogu će bazično rješenje u kojem su umjetne varijable nebazi čne. U daljnjem nam postupku te varijable više nisu potrebne. Ako se za umjetnu funkciju cilja ne dobije vrijednost 0, zna či da se umjetne varijable ne mogu ukloniti iz baze. Rješenje je tada nemoguće i postupak se prekida. Potrebno je sada izvršiti optimizaciju originalne funkcije cilja. Simpleksna tablica koju smo dobili nakon prve faze postupka poslužit će nam i dalje. Varijable u originalnoj funkciji cilja prebacujemo na lijevu stranu jednadžbe z - 2000x 1 - 1500x 2 - 1000x 3 = 0
i eliminiramo bazične varijable (x1, x2 i x3) tako da redom dodajemo četvrtu, treću i drugu jednadžbu sustava pomnožene s odgovarajućim koeficijentom. Dodavši četvrtu jednadžbu pomnoženu s 2000, imamo z - 1500x + 2000x 2 - 1000x 3 7 = 12000
Slijedi dodavanje treće jednadžbe pomnožene s 1500 z - 1000x 3 - 75/2x 5 + 2375x 7 = 14250
i na kraju dodavanje druge pomnožene s 1000 z - 25/2x 5 - 1125x 7 = 16750
U novoj tablici možemo izabrati x5 kao ulaznu, i x3 kao izlaznu bazičnu varijablu: ┌────┬─────────────────────────────────────────┬───────┐ │ │ Iteracija 3 │ Desna │ x x x x x │ Baza │ z │ strana │ Kvocijent 1 2 3 5 7 ├────┼─────────────────────────────────────────┼───────┤ │ │ ┌──────┐ │ │ │ z │ 1 0 0 0 │ -25/2 │ 1125 │ 16750 │ │ │ ┌────────────────────┼──────┼───────┼──────┐│ 0 1 │ 1/40 │ -5/4 │ 5/ 2 ││ 10 0 │ x 3 │ 0 │ 0 │ │ └────────────────────┼──────┼───────┼──────┘│ 0 1 0 │ -1/40 │ 1/ 4 │ 3/ 2 │ ∞ │ x 2 │ 0 │ │ │ │ │ │ │ x 1 │ 0 1 0 0 │ 0 │ 1 │ 6 │ ∞ │ │ └──────┘ │ │ └────┴─────────────────────────────────────────┴───────┘
Nakon stožernog razvoja dobije se konačno rješenje: ┌────┬─────────────────────────────────────────┬───────┐ │ │ Iteracija 4 │ Desna x x x x x │ Baza │ z 1 2 3 5 7 │ strana │ ├────┼─────────────────────────────────────────┼───────┤ │ │ │ │ z │ 1 0 0 500 0 500 │ 18000 │ │ │ │ x 5 │ 0 0 0 40 1 -50 │ 10 0 │ │ │ │ x 2 │ 0 0 1 1 0 -1 │ 4 │ │ │ │ x 1 │ 0 1 0 0 0 1 │ 6 │ │ │ └────┴─────────────────────────────────────────┴───────┘
│ │ │ │ │ │ │ │ │ │
26
Operacijska istraživanja
Iz tablice direktno možemo očitati rješenje: potrebno je uzeti svih 6 konzervi tipa 1 i 4 konzerve tipa 2 što će ukupno iznositi 18000 kalorija. Zadana količina vitamina C premašena je za 100 mg. Vidimo da je ovdje postupak optimizacije tekao u dvije faze: u prvoj fazi uklonjene su umjetne varijable iz bazičnog rješenja minimizacijom njihove sume, dok je u drugoj fazi, koristenjem iste simpleksne tablice, nastavljena optimizacija originalne funkcije cilja. Takav se postupak zove dvofaznom simpleksnom metodom. Usporedivši metodu veliko M i dvofaznu simpleksnu metodu, možemo zaključiti sljedeće: a) osnovni je pristup kod obje metode jednak: dodaju se umjetne varijable da se postigne početno moguće umjetno bazično rješenje; b) izmjene baze identične su; c) jednak je broj iteracija koji dovodi do rješenja Dvofaznom simpleksnom metodom možemo izbjeći numeričke teškoće moguće kod metode veliko M, pa je pogodnija za ugradnju na računalo, iako je u profesionalnim programskim sustavima za linearno programiranje ne ćemo nikada sresti zbog prevelikog zauzeća središnje memorije. Kako su problemi iz stvarnog života često veličine više tisuća jednadžbi odnosno varijabli, zadržavanje cijele tablice u središnjoj memoriji obično je nemoguće ili neprikladno. Za takve je primjene uobičajena ugradnja revidirane simpleksne metode, koja će biti objašnjena poslije.
2.1.8. Vrste rješenja 2.1.8.1. Funkcija cilja neograničeno raste Promotrimo ovaj primjer: max 3x 1 + 2x 2 x x 2 1 x 1
≤ ≤
2 3
x 1, x 2 ≥ 0 Dodavanjem dopunskih varijabli dolazimo do sljede će tablice i započinjemo postupak optimizacije: ┌─────┬──────────────────────────────────┬──────┐ │ │ Iteracija 0 │ Desna │ │ Baza │ z │ strana │ Kvocijent x x x x 1 2 3 4 ├─────┼──────────────────────────────────┼──────┤ │ │ ┌───┐ │ │ │ z │ 1 │ -3 │ -2 0 0 │ 0 │ │ │ ├───┼─────────────────────┼─────┐│ │ x 3 │ 0 │ 1 │ -1 1 0 │ 2 ││ 2 │ │ ├───┼─────────────────────┼─────┘│ │ x 4 │ 0 │ 1 │ 0 0 1 │ 3 │ 3 │ │ └───┘ │ │ └─────┴──────────────────────────────────┴──────┘
Uvod
27
┌─────┬──────────────────────────────────┬──────┐ Iteracija 1 │ │ │ Desna │ z x x x x │ Baza │ │ strana │ Kvocijent 1 2 3 4 ├─────┼──────────────────────────────────┼──────┤ │ │ ┌───┐ │ │ │ z │ 1 0 │ -5 │ 3 0 │ 6 │ │ │ │ │ │ │ │ x 1 │ 0 1 │ -1 │ 1 0 │ 2 │ ∞ │ │ ┌───────┼───┼──────────────┼─────┐│ 0 │ 0 │ 1 │ -1 1 │ 1 ││ 1 │ x 4 │ │ │ └───────┴───┴──────────────┼─────┘│ └─────┴──────────────────────────────────┴──────┘ ┌─────┬──────────────────────────────────┬──────┐ │ │ Iteracija 2 │ Desna │ x x x x │ Baza │ z │ strana │ Kvocijent 1 2 3 4 ├─────┼──────────────────────────────────┼──────┤ │ │ ┌───┐ │ │ │ z │ 1 0 0 │ -2 │ 5 │ 11 │ │ │ │ │ │ │ │ x 1 │ 0 1 0 │ 0 │ 1 │ 3 │ ∞ │ │ │ │ │ │ │ x 2 │ 0 0 1 │ -1 │ 1 │ 1 │ -1 │ │ └───┘ │ │ └─────┴──────────────────────────────────┴──────┘
Jedini čno povećanje x3 poboljšalo bi iznos funkcije cilja za dvije jedinice. Me đutim, iz druge i treće jednadžbe vidi se da x3 može proizvoljno rasti: u drugoj jednadžbi kvocijent desne strane i elementa u stupcu jest ∞. U trećoj jednadžbi kvocijent je negativan, što znači da je dopušteni porast ulazne nebazi čne varijable beskonačan. To se grafički može prikazati na slici 2-5
Slika 2-5 Neograni čeno rješenje Nemogućnost pronalaženja izlazne bazične varijable ukazuje na neograničeno rješenje. U realnim problemima obično će to ukazivati na pogrešno formuliran model.
28
Operacijska istraživanja
2.1.8.2. Nemoguće rješenje Primjer: x max z = 2x 1 + 2 x x + 1 2 ≤ 2 x 1 - 2x 2 ≥ 4
x1, x2 ≥ 0 Odlučimo li se za dvofaznu _ simpleksnu metodu, nakon uvođenja dopunskih varijabli x3 i x4 i umjetne _ varijable x 5, definiranja _nove funkcije cilja min y = x 5
≡
max y ' =
-x
5 _ i eliminacije bazične varijable x 5 iz funkcije cilja, možemo napisati simpleksnu tablicu
┌─────┬─────────────────────────────────────────┬──────┐ _ │ │ Iteracija 0 │ Desna │ │ Baza │ y ' │ strana │ Kvocijent x x x x x 1 2 3 4 5 ├─────┼─────────────────────────────────────────┼──────┤ │ │ ┌───┐ │ │ │ y ' │ 1 │ -1 │ 2 0 1 0 │ -4 │ │ │ ├───┼────────────────────────────┼─────┐│ │ x 3 │ 0 │ 1 │ 1 1 0 0 │ 2 ││ 2 │ │ ├───┼────────────────────────────┼─────┘│ │ x 5 │ 0 │ 1 │ -2 0 -1 1 │ 4 │ 4 │ │ └───┘ │ │ └─────┴─────────────────────────────────────────┴──────┘
Uvod
┌─────┬─────────────────────────────────────────┬──────┐ _ │ │ Iteracija 1 │ Desna x │ Baza │ y ' x x x x │ strana │ 1 2 3 4 5 ├─────┼─────────────────────────────────────────┼──────┤ │ │ │ │ y ' │ 1 0 3 1 1 0 │ -2 │ │ │ 0 1 1 1 0 0 │ 2 │ x 1 │ │ │ │ │ x 5 │ 0 0 -3 -1 -1 1 │ 2 │ │ │ └─────┴─────────────────────────────────────────┴──────┘
29
│ │ │ │ │ │ │ │
Koeficijenti u funkciji _ cilja ukazuju na to da se funkcija cilja više ne može poboljšati, a umjetna varijabla x 5 još je uvijek bazična. Ako u prvoj fazi dvofazne simpleksne metode ne možemo posti ći da je iznos funkcije cilja jednak 0 (ili u metodi veliko M njen iznos sadrži koeficijent M), zaklju čujemo da je rješenje nemoguće. Za razliku od neograničenog rješenja, koje je uglavnom posljedica pogrešna formuliranja modela, nemoguće će rješenje u realnim primjenama biti češća pojava. Obično se radi o zahtjevima koji premašuju raspoložive resurse. Geometrijsko zna čenje kontradiktornih ograni čenja jest da ne postoji skup točaka koje istovremeno zadovoljavaju sva ograničenja.
30
Operacijska istraživanja
Za naš primjer ograničenja se mogu vidjeti na slici 2-6
Slika 2-6 Nemoguće rješenje
2.1.8.3. Alternativni optimum Primjer: uz
max z = 3x 1 + 2x 2 4 ≤ 12 2⋅x 2 ≤ 18 3x 1 + 2x 2 x ≥ 0 1, x 2 x 1
≤
┌─────┬─────────────────────────────────────────┬──────┐ │ │ Iteracija 0 │ Desna │ │ Baza │ z │ strana │ Kvocijent x x x x x 1 2 3 4 5 ├─────┼─────────────────────────────────────────┼──────┤ │ │ ┌───┐ │ │ │ z │ 1 │ -3 │ -2 0 0 0 │ 0 │ │ │ ├───┼────────────────────────────┼─────┐│ │ x 3 │ 0 │ 1 │ 0 1 0 0 │ 4 ││ 4 │ │ ├───┼────────────────────────────┼─────┘│ │ x 4 │ 0 │ 0 │ 2 0 1 0 │ 12 │ ∞ │ │ │ │ │ │
Uvod 0 2 0 0 1 │ │ x 5 │ │ 3 │ │ │ └───┘ │ └─────┴─────────────────────────────────────────┴──────┘
18
│ │
6
31
32
Operacijska istraživanja
┌─────┬─────────────────────────────────────────┬──────┐ │ │ Iteracija 1 │ Desna │ │ Baza │ z │ strana │ Kvocijent x x x x x 1 2 3 4 5 ├─────┼─────────────────────────────────────────┼──────┤ │ │ ┌───┐ │ │ │ z │ 1 0 │ -2 │ 3 0 0 │ 12 │ │ │ │ │ │ │ │ x 1 │ 0 1 │ 0 │ 1 0 0 │ 4 │ ∞ │ │ │ │ │ │ │ x 4 │ 0 0 │ 2 │ 0 1 0 │ 12 │ 6 │ │ ┌───────┼───┼─────────────────────┼─────┐│ │ x 5 │ 0 │ 0 │ 2 │ -3 0 1 │ 6 ││ 3 │ │ └───────┴───┴─────────────────────┼─────┘│ └─────┴─────────────────────────────────────────┴──────┘
Nakon stožernog razvoja dobit ćemo tablicu u kojoj je jedan od koeficijenata uz nebazične varijable u funkciji cilja jednak nuli. Dakle, ulaskom u bazu te varijable neće se promijeniti iznos funkcije cilja. Negativnih koeficijenata nema, što zna či da je postignut optimum. ┌─────┬─────────────────────────────────────────┬──────┐ │ │ Iteracija 2 │ Desna │ │ Baza │ z │ strana │ Kvocijent x x x x x 1 2 3 4 5 ├─────┼─────────────────────────────────────────┼──────┤ │ │ ┌─────┐ │ │ │ z │ 1 0 0 │ 0 │ 0 1 │ 18 │ │ │ │ │ │ │ │ x 1 │ 0 1 0 │ 1 │ 0 0 │ 4 │ 4 │ │ ┌────────────┼─────┼─────────────┼─────┐│ │ x 4 │ 0 │ 0 0 │ 3 │ 1 -1 │ 6 ││ 2 │ │ └────────────┼─────┼─────────────┼─────┘│ │ x 2 │ 0 0 1 │ -3/2 │ 0 1/2 │ 3 │ ∞ │ │ └─────┘ │ │ └─────┴─────────────────────────────────────────┴──────┘
Moguće je načiniti još jednu iteraciju da se dobije alternativni optimum:
┌─────┬─────────────────────────────────────────┬──────┐ │ │ Iteracija 3 │ Desna │ │ Baza │ z │ strana │ Kvocijent x x x x x 1 2 3 4 5 ├─────┼─────────────────────────────────────────┼──────┤ │ │ ┌─────┐ │ │ │ z │ 1 0 0 0 │ 0 │ 1 │ 18 │ │ │ │ │ │ │ │ x 1 │ 0 1 0 0 │ -1/3 │ 1/ 3 │ 2 │ ∞ │ │ ┌───────────────────┼─────┼──────┼─────┐│ │ x 3 │ 0 │ 0 0 1 │ 1/ 3 │ -1/3 │ 2 ││ 6 │ │ └───────────────────┼─────┼──────┼─────┘│ │ x 2 │ 0 0 1 0 │ 1/ 2 │ 0 │ 6 │ 12 │ │ └─────┘ │ │ └─────┴─────────────────────────────────────────┴──────┘
Kao što smo i očekivali, iznos funkcije cilja nije se promijenio. Sljedeća iteracija dovela bi nas u prethodno bazično rješenje, iz čega možemo zaključiti da smo obišli sva optimalna vršna rješenja (u višedimenzionalnom prostoru može biti i više alternativnih optimuma). Za dvodimenzionalni se slučaj alternativni optimumi pojavljuju kad je neko od ograničenja paralelno s funkcijom cilja, kao na slici 2-7, koja predstavlja problem koji smo upravo riješili.
Uvod
Slika 2-7 Alternativni optimum
2.1.8.4. Degeneracija uz
max z = 11x 1 + 12x 2 ≤
x 1 1/4x 1 + 3/4x 1 + x 1,
x 2 x 2 x 2 x 2
≤ ≤ ≤ ≥
8 6 7 9 0
┌─────┬────────────────────────────────────────────────┬──────┐ │ │ Iteracija 0 │ Desna │ z x x x x x x │ Baza │ │ strana │ Kvocijent 1 2 3 4 5 6 ├─────┼────────────────────────────────────────────────┼──────┤ │ │ ┌────┐ │ │ │ z │ 1 -11 │ -1 2 │ 0 0 0 0 │ 0 │ │ │ │ │ │ │ │ x 3 │ 0 1 │ 0 │ 1 0 0 0 │ 8 │ ∞ │ │ ┌────────────┼────┼────────────────────────────┼─────┐│ │ x 4 │ │ 0 0 │ 1 │ 0 1 0 0 │ 6 ││ 6 │ │ └────────────┼────┼────────────────────────────┼─────┘│ │ x 5 │ 0 1/4 │ 1 │ 0 0 1 0 │ 7 │ 7 │ │ │ │ │ │
33
34
Operacijska istraživanja
0 3/4 │ 1 │ 0 0 0 1 │ x 6 │ │ │ │ └────┘ │ └─────┴────────────────────────────────────────────────┴──────┘
9
│ 9 │
Uvod
35
┌─────┬────────────────────────────────────────────────┬──────┐ │ │ Iteracija 1 │ Desna │ │ Baza │ │ strana │ Kvocijent z x x x x x x 1 2 3 4 5 6 ├─────┼────────────────────────────────────────────────┼──────┤ │ │ ┌─────┐ │ │ │ z │ 1 │ -1 1 │ 0 0 12 0 0 │ 72 │ │ │ │ │ │ │ │ x 3 │ 0 │ 1 │ 0 1 0 0 0 │ 8 │ 8 │ │ │ │ │ │ │ x 2 │ 0 │ 0 │ 1 0 1 0 0 │ 6 │ ∞ │ │ ├─────┼──────────────────────────────────┼─────┐│ │ x 5 │ 0 │ 1/ 4 │ 0 0 -1 1 0 │ 1 ││ 4 │ │ ├─────┼──────────────────────────────────┼─────┘│ │ x 6 │ 0 │ 3/ 4 │ 0 0 -1 0 1 │ 3 │ 4 │ │ └─────┘ │ │ └─────┴────────────────────────────────────────────────┴──────┘ ┌─────┬────────────────────────────────────────────────┬──────┐ │ │ Iteracija 2 │ Desna │ │ Baza │ │ strana │ Kvocijent z x x x x x x 1 2 3 4 5 6 ├─────┼────────────────────────────────────────────────┼──────┤ │ │ ┌────┐ │ │ │ z │ 1 0 0 0 │ -3 2 │ 44 0 │ 11 6 │ │ │ │ │ │ │ │ x 3 │ 0 0 0 1 │ 4 │ -4 0 │ 4 │ 1 │ │ │ │ │ │ │ x 2 │ 0 0 1 0 │ 1 │ 0 0 │ 6 │ 6 │ │ │ │ │ │ │ x 1 │ 0 1 0 0 │ -4 │ 4 0 │ 4 │ ∞ │ │ ┌────────────────────┼────┼──────────────┼─────┐│ │ x 6 │ 0 │ 0 0 0 │ 2 │ -3 1 │ 0 ││ 0 │ │ └────────────────────┴────┴──────────────┼─────┘│ └─────┴────────────────────────────────────────────────┴──────┘
U navedenom primjeru vidimo da je maksimalni dozvoljeni prirast varijable x4 jednak nuli. To zna či da će njena vrijednost ulaskom u bazu ostati na nuli, i da neće doći do promjene funkcije cilja. Pogledajmo sliku 2-7, 2-8
36
Operacijska istraživanja
Slika 2-8 Degeneracija Simpleksni postupak krenuo je iz to čke (0,0) preko (0,6) u (4,6). Me đutim, u točki (4,6) sijeku se više nego dva ograničenja, što možemo promatrati kao više sjecišta u istoj točki. Bit će dakle potrebno obaviti jednu iteraciju kojom ćemo se premjestiti iz jednog u drugo sjecište, pri čemu će vrijednost funkcije cilja ostati ista. Ta se pojava naziva degeneracijom. ┌─────┬────────────────────────────────────────────────┬──────┐ │ │ Iteracija 3 │ Desna │ │ Baza │ z x x x x x x │ strana │ Kvocijent 1 2 3 4 5 6 ├─────┼────────────────────────────────────────────────┼──────┤ │ │ ┌─────┐ │ │ │ z │ 1 0 0 0 0 │ -4 │ 16 │ 11 6 │ │ │ ┌───────────────────────────┼─────┼──────┼─────┐│ │ x 3 │ 0 │ 0 0 1 0 │ 2 │ -2 │ 4 ││ 2 │ │ └───────────────────────────┼─────┼──────┼─────┘│ │ x 2 │ 0 0 1 0 0 │ 3/ 2 │ -1/2 │ 6 │ 4 │ │ │ │ │ │ │ x 1 │ 0 1 0 0 0 │ -2 │ 2 │ 4 │ ∞ │ │ │ │ │ │ │ x 4 │ 0 0 0 0 1 │ -3/2 │ 1/ 2 │ 0 │ ∞ │ │ └─────┘ │ │ └─────┴────────────────────────────────────────────────┴──────┘
Postupak se oslobodio degeneracije, i sljede ća iteracija vodi u optimum.
Uvod
┌─────┬────────────────────────────────────────────────┬──────┐ │ │ Iteracija 4 │ Desna x x x x x x │ Baza │ z │ strana │ 1 2 3 4 5 6 ├─────┼────────────────────────────────────────────────┼──────┤ │ │ │ │ z │ 1 0 0 2 0 0 12 │ 12 4 │ │ │ │ x 5 │ 0 0 0 1/2 0 1 -1 │ 2 │ │ │ │ x 2 │ 0 0 1 -3/4 0 0 1 │ 3 │ │ │ 0 1 0 2 0 0 0 │ 8 │ x 1 │ │ │ │ │ x 4 │ 0 0 0 3/2 1 0 -1 │ 3 │ │ │ └─────┴────────────────────────────────────────────────┴──────┘
37
│ │ │ │ │ │ │ │ │ │ │ │
Ako se velik broj ograničenja u višedimenzionalnom prostoru sije če u istoj točki, teorijski može doći do kruženja postupka. Međutim, osim kod nekih problema konstruiranih posebno za tu svrhu, pojava kruženja u praksi je vrlo rijetka. Smanjenje opasnosti od kruženja postiže se Charnesovim postupkom koji vrijednost desne strane 0 privremeno zamijeni nekom malom konstantom ε. Zbog toga kvocijenti postaju različiti od nule i međusobno se razlikuju.
38
Operacijska istraživanja
2.1.9. Dualnost Nakon dodavanja dopunskih varijabli standarni LP s maksimizacijom funkcije cilja i ograničenjima tipa ≤, može se tablično prikazati kao ┌──┬────────────────────────────────────────────────┬────┐ │ z │ x 1 .. . x j .. . x n x x n+1 .. . x n+i .. . n+m │ b │ ├──┼────────────────────────────────────────────────┼────┤ │ 1 │ -c 1 ... -c j ... -c n 0 ... 0 ... 0 │ 0 │ │ 0 │ a 11 .. . a 1j .. . a 1n 1 ... 0 ... 0 │ b 1 │ │ │ ..... │ │ │ 0 │ a i1 ... 1 ... 0 │ b i │ a ij .. . a in 0 │ │ ..... │ │ │ 0 │ a m1 ... 0 ... 1 │ b m │ a mj a mn 0 └──┴────────────────────────────────────────────────┴────┘
Nakon obavljene optimizacije sadržaj je tablice ovaj: ┌──┬────────────────────────────────────────────────┬────┐ │ z │ x 1 .. . x j .. . x n x x n+1 .. . x n+i .. . n+m │ b │ ├──┼────────────────────────────────────────────────┼────┤ │ 1 │ z 1-c 1 . z j-c j . z n-c n y 1 .. . y .. . y │ y 0 │ i m │ 0 │ α 11 .. . α 1j .. . α 1n .. . π 1i .. . π 1m │ ß 1 │ π 11 │ │ ..... │ .. . π ii .. . π im │ ß i │ α ij .. . α in π i1 │ 0 │ α i1 ..... │ │ │ .. . π mi .. . π mm │ ß m │ α mj α mn π m1 │ 0 │ α m1 └──┴────────────────────────────────────────────────┴────┘
│ │
Budući da su tokom simpleksnog postupka pojedini redci bili množeni s određenim koeficijentima te dodavani drugim retcima i to su bile jedine operacije, može se zaključiti na koji su način nastali koeficijenti u funkciji cilja za dopunske varijable, označeni kao y1, y2, ... ,ym. Na tim je pozicijama u početnoj tablici bila 0, a ispod njih nalazila se jedini čna matrica. Prema tome yi, za i=1,...,m, nastao je, direktno ili indirektno, množenjem retka i s vrijednosti yi i pribrajanjem tog retka retku funkcije cilja. Vrijednosti koeficijenata u funkciji cilja za strukturne varijable uvećane su za z1, z2, ..., zn. Te su vrijednosti dobivene množenjem i dodavanjem pojedinih redaka retku funkcije cilja: m z j = Σ aij y i ; j=1,...,n i=1
(1)
Analogno, vrijednost funkcije cilja u optimalnoj tablici jest m y i y i 0 = Σ b i=1
(2)
Interesantno je uočiti da je vrijednost funkcije cilja izražena kao funkcija raspoloživosti resursa bi, i=1,...,m. Dakle, kao zaključak može se reći da se redak funkcije cilja u optimalnoj simpleksnoj tablici dobije iz po četne tablice tako da se svaki redak i, i=1,...,m početne tablice pomnoži s pripadnim yi i doda retku funkcije cilja. Postavljanjem uvjeta optimalnosti
Uvod
z j - c j y i ≥ 0
0
≥
; j=1,...,n m ; i=1,...,
39
(3)
te supstitucijom izraza (1) u (3) i uz oblik funkcije cilja (2) dobije se m y i y i 0 = Σ b i=1 m Σ aij y i i=1 y i
≥
0
≥
c j ; j=1,...,n
m ; i=1,...,
Prema tome, postavljanjem uvjeta optimalnosti ponovno je dobiven linearni program, ali izražen varijablama yi, i=1,...,m koji sadrži n ograničenja tipa ≥. Matrica strukturnih koeficijenata jest A T, tj. transponirana u odnosu na početni problem. Takav linearni program naziva se dualom, dok je početni problem primal. * Potrebno je još utvrditi smjer optimizacije u dualnom problemu. Ako sa x označimo * neko moguće rješenje primalnog problema, a sa y neko moguće rješenje dualnog problema, vrijedi: Zbog uvjeta iz primalnog problema: * A x ≤ b * x ≥ 0
Zbog uvjeta iz dualnog problema: *T T y A ≥ c * y ≥ 0
Množenjem obje strane prvog uvjeta iz primalnog problema sa y*T: *T * *T y A x ≤ y b
Slično, množenjem prvog uvjeta iz dualnog problema sa x*: *T * y A x
≥
T * c x
Zbog svojstva tranzitivnosti, supstitucijom za y*T A x*, slijedi da svako moguće dualno rješenje daje funkciju cilja koja je ve ća ili jednaka funkciji cilja primalnog problema: *T T * y b ≥ c x
Kod razmatranja optimalnog rješenja primalnog problema u tabli čnom obliku pokazalo se da je vrijednost funkcije cilja za primalni problem jednaka funkciji cilja dualnog problema: T T x y * * = b c
Prema tome ako se želi rješavanjem dualnog problema saznati vrijednosti primalnih varijabli, u dualnom problemu treba tražiti minimum funkcije cilja. Rješenja za varijable primalnog problema naći će se ispod dopunskih varijabli u retku funkcije cilja. Iz analize optimalne simpleksne tablice može se uočiti da suboptimalno primalno rješenje (dakle takvo da u retku funkcije cilja ima negativnih koeficijenata) predstavlja nemoguće dualno rješenje jer nisu zadovoljeni uvjeti nenegativnosti. Budući da se u dualnom problemu traži minimum funkcije cilja, a u primalnom maksimum, takvo suboptimalno primalno rješenje odgovara ne samo nemogućem već i superoptimalnom dualnom rješenju jer je vrijednost funkcije manja nego što će biti u optimumu. Odnos između rješenja sistematiziran je u tablici:
40
Operacijska istraživanja
┌──────────────────────────┬────────────────────────────┐ │ Primalno rješenje │ Komplementarno dualno │ │ rješenje ├──────────────────────────┼────────────────────────────┤ │ Suboptimalno │ Superoptimalno │ Optimalno │ Optimalno │ Superoptimalno │ Suboptimalno │ Niti mogu ć e niti │ Niti mogu ć e niti │ superoptimalno │ superoptimalno │ Neograni č en o │ Nemogu ć e │ Nemogu ć e │ Neograni č en o │ Degenerirano │ Alternativni optimum │ Alternativni optimum │ Degenerirano │ │ └──────────────────────────┴────────────────────────────┘
│ │ │ │ │ │ │ │ │ │ │ │
Između primalnog i dualnog rješenja postoji potpuna simetrija te se za svaki linearni program može postaviti njegov dual. Odnos izme đu primalnog i dualnog problema ilustriran je ovom tablicom:
┌──────────────────────────────────┐ │ PRIMAL │ ├──────────────────────────┬───────┤ │ Koeficijenti │ │ │ │ Desne │ │ x 1 .. . x .. . x │ strane │ x 2 j n ┌────┬───────────┼──────────────────────────┼───────┼─────┐ │ │ │ y a 12 .. . a 1j .. . a 1n │ ≤ b 1│ a 11 1 │ │ │ y a 22 .. . a 2j .. . a 2n │ ≤ b 2│ a 21 2 │ │ Koefi. │ .. . │ .. . │ │ │ cijenti y i│ a i1 a i2 .. . a ij .. . a in │ ≤ b i │ │ DUAL │ . │ .. . │ .. . │ │ │ │ y a m2 .. . a mj .. . a mn │ ≤ b m│ a m1 m │ ├───────────┼──────────────────────────┼───────┤ │ │ │ Desne │ ≥ c 1 ≥ c 2 .. . ≥ c j .. . ≥ c n │ │ │ │ strane │ │ │ └────┴───────────┼──────────────────────────┴───────┼─────┘ │ ma x │ └──────────────────────────────────┘
│ │
│
│
mi n │
│
│
│
Treba uočiti da simetričnost primala i duala vrijedi samo ukoliko je linearni program u standardnom obliku, tj. maksimizacija funkcije cilja uz ograničenja tipa ≤, ili minimizacija funkcije cilja uz sva ograni čenja tipa ≥. Na sve varijable postavljen je uvjet nenegativnosti. Svođenje na standardni oblik obavlja se na sljedeće načine: Ograničenje tipa ≥ pretvara se u ≤, ili obratno, množenjem nejednadžbe s -1. Ograničenje u obliku jednakosti pretvara se u 2 nejednadžbe tipa ≤ ili ≥, prema potrebi, s međusobno suprotnim koeficijentima, tj. ograničenje: n Σ aij j=1
x j = b i
transformira se u n Σ aij j=1
x j ≤ b i
n Σ aij j=1
x j ≥ b i
Ako sva ograničenja moraju biti npr. oblika ≤, drugo se ograničenje množi s -1: n
Uvod
Σ aij j=1
n Σ -aij j=1
41
x j ≤ b i
x j
≤
-b i
U dualnom problemu uz ta dva ograničenja pridružit će se dualne varijable yi' i yi" koje se javljaju u svakom ograničenju duala i u dualnoj funkciji cilja s međusobno suprotnim koeficijentima. Može ih se supstituirati varijablom yi = yi' - yi". Takva varijabla nema ograničenja na predznak. Prema tome, primalno ograni čenje u obliku jednakosti u dualu odgovara slobodnoj varijabli. Rješavanjem primalnog problema istovremeno se rješava i dualni problem. Bazičnim dopunskim varijablama iz primala, odgovaraju nebazi čne dualne varijable. Ovo je evidentno jer je za svaku bazičnu varijablu aktualni koeficijent u retku funkcije cilja jednak 0. Ako je neka dopunska varijabla bazi čna, tj. veća od 0, to znači da ograničenje u kojem je dodana nije aktivno, odnosno da resurs čija je raspoloživost ograničenjem opisana, nije u potpunosti iskorišten. Nebazi čna pripadna dualna varijabla ukazuje da je tzv. marginalna vrijednost, utjecaj varijacije raspoloživosti resursa na vrijednost funkcije cilja, za taj resurs jednaka 0. Nebazična dopunska varijabla ukazuje da je ograni čenje aktivno, odnosno da je pripadni resurs u potpunosti iskorišten. Takvu ograni čenju pridružena je bazična dualna varijabla koja sadrži marginalnu vrijednost resursa. Optimalna vrijednost funkcije cilja suma je umnožaka marginalnih vrijednosti i raspoloživosti resursa. U praksi je interesantan podatak o marginalnoj vrijednosti resursa jer ukazuje koliko bi se poboljšala funkcija cilja povećanjem raspoloživosti resursa. Taj podatak vrijedi do prelaska u susjedno bazi čno rješenje i uz pretpostavku da su svi ostali podaci neizmijenjeni. Opisana interpretacija vrijednosti dualnih varijabli odgovara za slu čaj da se primalnim smatra problem maksimizacije s ograničenjima tipa ≤. Kod minimizacije i ograničenja tipa ≥, najčešće se ne radi o resursima već o zahtjevima. Dualne varijable tada ukazuju na moguće smanjenje funkcije cilja (npr. troškova), ako se smanje zahtjevi izraženi nejednadžbom tipa ≥. Svojstva dualnih varijabli osnova su za obavljanje i interpretaciju analize osjetljivosti.
2.1.9.1. Dualna simpleksna metoda Prisjetimo se jednostavnog problema proizvodnje iz poglavlja 2.1.3: uz
max z = 3x 1 + 5x 2 4 2x 2 ≤ 12 3x 1 + 2x 2 ≤ 18 x ≥ 0 1, x 2 x 1
≤
Za taj problem možemo postaviti dual. Primalni problem ima 2 varijable i 3 ograničenja. Za svaku primalnu varijablu nastat će jedno dualno ograni čenje, a za svako primalno ograničenje 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 istraživanja
nenegativne, pripadna dualna ograni čenja bit će tipa ≥. Sva su primalna ograničenja tipa ≤, pa su dualne varijable nenegativne. Matrica koeficijenata transponira se, a maksimizacija prelazi u minimizaciju, pa je dualni problem ovaj: uz
y y min z = 4 y 1 + 12 2 + 18 3 3 ≥ 3 + 3 y 2 y 2 + 3 ≥ 5 2 y y ≥ 0 1, y 2, y 3
y 1
Takav problem mogli bismo riješiti dodavanjem dopunskih i umjetnih varijabli metodom veliko M ili dvofaznom simpleksnom metodom. Pokušajmo, me đutim, nejednadžbe pretvoriti u jednadžbe oduzimanjem dopunskih varijabli, a uvođenjem suprotne funkcije cilja minimizaciju pretvoriti u maksimizaciju. Sad imamo: uz
y y max z ' = -z = -4 y 1 - 12 2 - 18 3 + 3 y = 3 3 - y 4 2 y 2 y - y 2 + 3 5 = 5 y ≥ 0 1, y 2, y 3, y 4, y 5 y 1
Množenjem jednadžbi ograni čenja s -1 dobijemo:
Uvod
uz
43
1 - 12 y 2 - 18 y 3 max z ' = -4 y
-y 1
- 3 y = -3 3 + y 4 + y 3 -2 y 2 y 2 5 = -5
y 1, y 2, y 3, y 4, y 5
≥
0
Napišimo to u obliku tablice, prebacivanjem funkcije cilja na lijevu stranu: ┌─────┬─────────────────────────────────────────┬──────┐ │ │ Iteracija 0 │ Desna │ Baza │ ' │ strana │ z y y y y y 1 2 3 4 5 ├─────┼─────────────────────────────────────────┼──────┤ │ │ │ │ z ' │ 1 4 12 18 0 0 │ 0 │ │ │ │ y 4 │ 0 -1 0 -3 1 0 │ -3 │ │ │ │ y 5 │ 0 0 -2 -2 0 1 │ -5 │ │ │ └─────┴─────────────────────────────────────────┴──────┘
│ │ │ │ │ │ │ │
Iz tablice vidimo da su svi koeficijenti u funkciji cilja pozitivni, što kod problema maksimizacije znači da je postignut optimum. S druge strane, bazi čne varijable y4 i y5 imaju negativne vrijednosti, pa je rješenje nemoguće. Kako vidimo, dobili smo nemoguće rješenje kod kojeg je zadovoljen kriterij optimalnosti. Takvo rješenje zovemo superoptimalnim. Mogli bismo sada pokušati vršiti promjene baze tako da rješenje postane mogu će a da se ne izgubi kriterij optimalnosti. Bazi čne varijable jesu y4 i y5, i obje imaju negativnu vrijednost. Pri tome je vrijednost za y5 po apsolutnoj vrijednosti veća, čime y5 više pridonosi ukupnoj nemogućnosti rješenja, pa je kandidat pogodan za izlaznu bazičnu varijablu. Smanjenje apsolutne vrijednosti varijable koja je u nekom retku bazična s negativnom vrijednošću može se kompenzirati jedino porastom neke od nebazičnih varijabli koje u tom retku imaju negativni koeficijent. Tu su u ovom slučaju y2 i y3. Za ulaznu nebazičnu varijablu odabrat ćemo onu koja ima po apsolutnoj vrijednosti manji kvocijent koeficijenta iz funkcije cilja i negativnog koeficijenta u retku izlazne bazi čne varijable, čime ćemo zadržati kriterij optimalnosti. Kvocijent za ulaznu nebazičnu varijablu y2 uz odabranu izlaznu bazičnu varijablu y5 iznosi po apsolutnoj vrijednosti 12/2 = 6, dok za y3 iznosi 18/2 = 9. Kao ulazna nebazična varijabla izabire se y2. Zbog toga će i nakon promjene baze svi koeficijenti u funkciji cilja ostati nenegativnima. ┌─────┬─────────────────────────────────────────┬──────┐ │ │ Iteracija 0 │ Desna │ z y y y y y │ Baza │ ' │ strana │ 1 2 3 4 5 ├─────┼─────────────────────────────────────────┼──────┤ │ │ ┌───┐ │ │ │ z ' │ 1 4 │ 12 │ 18 0 0 │ 0 │ │ │ │ │ │ │ │ y 4 │ 0 -1 │ 0 │ -3 1 0 │ -3 │ │ │ ┌──────┼───┼─────────────────────┼─────┐│ │ y 5 │ 0 │ 0 │ -2 │ -2 0 1 │ -5 ││ │ │ └──────┴───┴─────────────────────┼─────┘│ └─────┴─────────────────────────────────────────┴──────┘
44
Operacijska istraživanja
Nakon obavljena stožernog razvoja još je samo y4 negativno, a kandidati za ulaznu nebazičnu varijablu jesu y1 i y3, zbog negativnih koeficijenata u retku izlazne bazične varijable y4. Kad bismo odabrali y1, nakon stožernog razvoja koeficijent u funkciji cilja uz y3 postao bi negativan (tj. -6), pa odabiremo y3: ┌─────┬─────────────────────────────────────────┬──────┐ │ │ Iteracija 1 │ Desna │ ' z y │ Baza │ y y y y │ strana │ 1 2 3 4 5 ├─────┼─────────────────────────────────────────┼──────┤ │ │ ┌───┐ │ │ 1 4 0 0 6 │ -3 0 │ │ z ' │ │ 6 │ │ │ ┌──────────────┼───┼──────────────┼─────┐│ 0 │ -1 0 │ -3 │ 1 0 │ -3 ││ │ y 4 │ │ │ └──────────────┼───┼──────────────┼─────┘│ 0 0 1 0 -1/2 │ 5/ 2 │ │ y 2 │ │ 1 │ │ │ └───┘ │ │ └─────┴─────────────────────────────────────────┴──────┘
Nakon obavljena stožernog razvoja niti jedna varijabla nije negativna, a svi su koeficijenti u funkciji cilja pozitivni, što znači da smo postigli optimalno i mogu će rješenje: ┌─────┬─────────────────────────────────────────┬──────┐ Iteracija 2 │ │ │ Desna ' z y y y y y │ Baza │ │ strana │ 1 2 3 4 5 ├─────┼─────────────────────────────────────────┼──────┤ │ │ ╔═══════════╗│ │ 1 2 0 0 6 ║│ -3 6 │ z ' │ ║ 2 │ │ ╚═══════════╝│ │ 0 1/3 0 1 -1/3 0 │ 1 │ y 3 │ │ │ │ │ y 2 │ 0 -1/3 1 0 1/3 -1/2 │ 3/ 2 │ │ │ └─────┴─────────────────────────────────────────┴──────┘
│ │ │ │ │ │
Rješenje jest: y1 = 0, y2 = 3/2, y3 = 1. Prisjetimo se rješenja primalnog problema iz poglavlja 2.1.5. Stanje nakon posljednje iteracije izgledalo je ovako: z x 1 +
x 2
+ x 3 + + -
x 3/2x + 4 5 = 36 1/3x - 1/3x 4 5 = 2 1/2x = 6 4 1/3x + 1/3x 4 5 = 2
ili, u tabličnom obliku: ┌─────┬─────────────────────────────────────────┬──────┐ │ │ │ Desna │ Baza │ │ strana │ z x x x x x 1 2 3 4 5 ├─────┼─────────────────────────────────────────┼──────┤ │ │ ╔═════════════════╗│ │ │ z │ 1 0 0 ║ 0 3/2 1 ║│ 36 │ │ ╚═════════════════╝│ │ │ x 3 │ 0 0 0 1 1/3 -1/3 │ 2 │ │ │ │ x 2 │ 0 0 1 0 1/2 0 │ 6 │ │ │ │ x 1 │ 0 1 0 0 -1/3 1/3 │ 2 │ │ │ └─────┴─────────────────────────────────────────┴──────┘
│ │ │ │ │ │ │ │
Uvod
45
Vidimo da se rješenje primalnog problema može o čitati iz koeficijenata uz dopunske varijable duala. Analogno, koeficijenti uz dopunske varijable u primalnoj funkciji cilja rješenja su dualnog problema.
2.1.9.2. Vrste dualnih rješenja 2.1.9.2.1. Dualno nemoguće rješenje Prisjetimo se problema iz poglavlja 2.1.8.1: uz
max z = 3x 1 + 2x 2 x x 1 2 ≤ 2 x ≤ 3 1 x 1, x 2 ≥ 0
Rješenje tog problema jest neograničeno. Pokušajmo sada riješiti njegov dual: 1 + 3 y 2 min z = 2 y y y 1 + 2 ≥ 3 ≥ 2 -y 1 y 1, y 2 ≥ 0
Problem možemo pripremiti za rješavanje dualnom simpleksnom metodom: max z' = -2 y 1 - 3 y 2 y -y + y3 = -3 1 2 y + y4 = -2 1 y 4 ≥ 0 2, y 3, y 1, y
Problem ćemo sada napisati u tabličnom obliku i izabrati izlaznu bazi čnu i ulaznu nebazičnu varijablu: ┌─────┬──────────────────────────────────┬──────┐ │ │ Iteracija 0 │ Desna │ │ Baza │ ' │ strana │ z y y y y 1 2 3 4 ├─────┼──────────────────────────────────┼──────┤ │ │ ┌───┐ │ │ │ z ' │ 1 │ 2 │ 3 0 0 │ 0 │ │ │ ├───┼─────────────────────┼─────┐│ │ y 3 │ 0 │ -1 │ -1 1 0 │ -3 ││ │ │ ├───┼─────────────────────┼─────┘│ │ y 4 │ 0 │ 1 │ 0 0 1 │ -2 │ │ │ └───┘ │ │ └─────┴──────────────────────────────────┴──────┘ ┌─────┬──────────────────────────────────┬──────┐ │ │ Iteracija 1 │ Desna │ │ Baza │ ' │ strana │ z y y y y 1 2 3 4 ├─────┼──────────────────────────────────┼──────┤ │ │ ┌───┐ │ │ │ z ' │ 1 0 │ 1 │ 2 0 │ -6 │ │ │ │ │ │ │ │ y 1 │ 0 1 │ 1 │ -1 0 │ 3 │ │ │ ┌──────┼───┼──────────────┼─────┐│ │ y 4 │ 0 │ 0 │ -1 │ 1 1 │ -5 ││ │ │ └──────┴───┴──────────────┼─────┘│ └─────┴──────────────────────────────────┴──────┘
46
Operacijska istraživanja
Kakon obavljena stožernog razvoja varijabla y1 postaje opet negativnom, a u retku nema niti jednog negativnog koeficijenta oko kojeg bismo mogli obaviti stožerni razvoj. Iz toga zaključujemo da je rješenje nemoguće: ┌─────┬──────────────────────────────────┬──────┐ │ │ Iteracija 2 │ Desna │ │ Baza │ ' │ strana │ z y y y y 1 2 3 4 ├─────┼──────────────────────────────────┼──────┤ │ │ │ │ 1 0 0 3 1 │ -1 1 │ │ z ' │ │ │ │ │ 0 1 0 0 1 │ -2 │ y 1 │ │ │ │ │ │ │ y 2 │ 0 0 1 -1 -1 │ 5 │ │ │ │ │ └─────┴──────────────────────────────────┴──────┘
2.1.9.2.2. Dualno neograničeno rješenje Primjer iz poglavlja 2.1.8.2 uz
max z = 2x 1 +
x 2
x x 1 + 2 ≤ 2 x 1 - 2x 2 ≥ 4 x 2 ≥ 0 1, x
ima nemoguće rješenje. Treba primijetiti da je drugo ograni čenje tipa ≥, pa ga treba prije transformacije u dual pomnožiti s -1: -x 1 + 2x 2
≤
-4
Dual nakon toga ima oblik 1 - 4 y 2 min z = 2 y y y 1 2 ≥ 2 y y 2 ≥ 1 1 + 2 y 1, y 2 ≥ 0
Uvođenjem nove funkcije cilja i dopunskih varijabli te množenjem ograničenja s -1 dobijemo: max z '= -2 y 1 + 4 y 2 y y = -2 1 + 2 + y 3 y y 2 + y 1 - 2 4 = -1 y 1, y 2, y 3, y 4 ≥ 0
ili u tabličnom obliku: ┌─────┬──────────────────────────────────┬──────┐ Iteracija 0 │ │ │ Desna │ z y y y y │ Baza │ ' │ strana │ 1 2 3 4 ├─────┼──────────────────────────────────┼──────┤ │ │ │ │ │ z ' │ 1 2 -4 0 0 │ 0 │ │ │ │ │ │ y 3 │ 0 -1 1 1 0 │ -2 │ │ │ │ │ 0 -1 -2 0 1 │ -1 │ │ y 4 │ │ │ │ │ └─────┴──────────────────────────────────┴──────┘
Uvod
47
Vidimo da su varijable y3 i y4 negativne, a nije zadovoljen kriterij optimalnosti. Problem možemo rješavati i kombiniranom metodom, tako da prvo dualnom simpleksnom metodom postignemo moguće rješenje, a zatim zadovoljimo kriterij optimalnosti. ┌─────┬──────────────────────────────────┬──────┐ │ │ Iteracija 0 │ Desna │ │ Baza │ ' │ strana │ z y y y y 1 2 3 4 ├─────┼──────────────────────────────────┼──────┤ │ │ ┌───┐ │ │ 1 -4 0 0 │ 0 │ │ z ' │ │ 2 │ │ │ ├───┼─────────────────────┼─────┐│ 0 1 1 0 │ -2 ││ │ y 3 │ │ -1 │ │ │ ├───┼─────────────────────┼─────┘│ │ y 4 │ 0 │ -1 │ -2 0 1 │ -1 │ │ │ └───┘ │ │ └─────┴──────────────────────────────────┴──────┘ ┌─────┬──────────────────────────────────┬──────┐ │ │ Iteracija 1 │ Desna │ z y y y y │ Baza │ ' │ strana │ 1 2 3 4 ├─────┼──────────────────────────────────┼──────┤ │ │ │ │ │ z ' │ 1 0 -2 2 0 │ -4 │ │ │ │ │ │ y 1 │ 0 1 -1 -1 0 │ 2 │ │ │ │ │ │ y 4 │ 0 0 -3 -1 1 │ 1 │ │ │ │ │ └─────┴──────────────────────────────────┴──────┘
Vidimo da smo postigli moguće, ali suboptimalno rješenje. Varijabla y2 može, međutim, neograničeno rasti, čime smo pokazali da nemogućem rješenju primala odgovara neograničeno rješenje duala. Mogli bismo, radi vježbe, još jednom riješiti primalni problem, sada kombiniranom metodom. U prvoj je tablici varijabla x4 negativna pa započinjemo dualnom metodom: ┌─────┬──────────────────────────────────┬──────┐ │ │ Iteracija 0 │ Desna │ │ Baza │ │ strana │ z x x x x 1 2 3 4 ├─────┼──────────────────────────────────┼──────┤ │ │ ┌───┐ │ │ │ z │ 1 │ 2 │ -1 0 0 │ 0 │ │ │ │ │ │ │ │ x 3 │ 0 │ 1 │ 1 1 0 │ 2 │ │ │ ├───┼─────────────────────┼─────┐│ │ x 4 │ 0 │ -1 │ 2 0 1 │ -4 ││ │ │ └───┴─────────────────────┼─────┘│ └─────┴──────────────────────────────────┴──────┘ ┌─────┬──────────────────────────────────┬──────┐ │ │ Iteracija 1 │ Desna │ │ Baza │ │ strana │ z x x x x 1 2 3 4 ├─────┼──────────────────────────────────┼──────┤ │ │ │ │ │ z │ 1 0 3 0 -2 │ -8 │ │ │ │ │ │ x 3 │ 0 0 3 1 1 │ -2 │ │ │ │ │ │ x 1 │ 0 1 -2 0 -1 │ 4 │ │ │ │ │ └─────┴──────────────────────────────────┴──────┘
Varijabla x3 jest negativna, a u retku nema negativnih elemenata oko kojih bismo mogli vršiti stožerni razvoj. Rješenje je dakle nemogu će.
48
Operacijska istraživanja
2.1.9.2.3. Dualna degeneracija Kod primjera iz poglavlja 2.1.8.2, 2.1.8.3 uočili smo alternativni optimum. Problem je imao oblik: uz
max z = 3x 1 + 2x 2 4 ≤ 12 2x 2 ≤ 18 3x 1 + 2x 2 x 1
≤
x1, x2 ≥ 0 Njegov dual izgleda ovako: uz
1 + 12 y 2 + 18 y 3 min z = 4 y 3 ≥ 3 + 3 y 2 + 3 ≥ 2 2 y 2 y y 1, y 2, y 3 ≥ 0
y 1
ili, nakon transformacije: uz
max z ' = -4 y 1 - 12 y 2 - 18 y 3 - y 1
3 + y - 3 y = -3 4 2 3 -2 y 2 y + y 5 = -2 y 1, y 2, y 3, y 4, y 5 ≥ 0
Sad možemo raditi iteracije dualne simpleksne metode: ┌─────┬─────────────────────────────────────────┬──────┐ │ │ Iteracija 0 │ Desna │ z y │ Baza │ ' y y y y │ strana │ 1 2 3 4 5 ├─────┼─────────────────────────────────────────┼──────┤ │ │ ┌───┐ │ │ │ z ' │ 1 │ 4 │ 12 18 0 0 │ 0 │ │ │ ├───┼────────────────────────────┼─────┐│ │ y 4 │ 0 │ -1 │ 0 -3 1 0 │ -3 ││ │ │ ├───┼────────────────────────────┼─────┘│ │ y 5 │ 0 │ 0 │ -2 -2 0 1 │ -2 │ │ │ └───┘ │ │ └─────┴─────────────────────────────────────────┴──────┘ ┌─────┬─────────────────────────────────────────┬──────┐ │ │ Iteracija 1 │ Desna │ z y y y y y │ Baza │ ' │ strana │ 1 2 3 4 5 ├─────┼─────────────────────────────────────────┼──────┤ │ │ ┌───┐ │ │ │ z ' │ 1 0 12 │ 6 │ 4 0 │ -1 2 │ │ │ │ │ │ │ │ y 1 │ 0 1 0 │ 3 │ -1 0 │ 3 │ │ │ ┌─────────────┼───┼──────────────┼─────┐│ │ y 5 │ 0 │ 0 -2 │ -2 │ 0 1 │ -2 ││ │ │ └─────────────┴───┴──────────────┼─────┘│ └─────┴─────────────────────────────────────────┴──────┘
Uvod
┌─────┬─────────────────────────────────────────┬──────┐ Iteracija 2 │ │ │ Desna ' z y y y y y │ Baza │ │ strana │ 1 2 3 4 5 ├─────┼─────────────────────────────────────────┼──────┤ │ │ │ │ z ' │ 1 0 6 0 4 3 │ 18 │ │ │ │ y 1 │ 0 1 -3 0 -1 3/2 │ 0 │ │ │ 0 0 1 1 0 -1/2 │ 1 │ y 2 │ │ │ │ └─────┴─────────────────────────────────────────┴──────┘
49
│ │ │ │ │ │ │ │
Postigli smo optimalno rješenje, ali je jedna od bazičnih varijabli jednaka nuli, što znači da imamo degeneraciju.
2.1.9.2.4. Dualni alternativni optimum U primjeru iz 2.1.8.4 imali smo degeneraciju. Problem je bio ovaj: uz
max z = 11x 1 + 12x 2 8 ≤ 6 ≤ 7 ≤ 9 ≤
x 1 x 2 x 1/4x 1 + 2 x 3/4x 1 + 2 x 1, x 2 ≥ 0
Dual ima oblik uz
1 + 6 y 2 + min z = 8 y
y 1
3 + 7 y
4 9 y
3 + 3/4 y 4 ≥ 11 + 1/4 y y y y 2 + 3 + 4 ≥ 12
y 1, y 2, y 3, y 4
≥
0
Nakon transformacije u uz
max z ' = -8 y 1 - 6 y 2 -
7 y 3 -
-y 1
9 y 4
- 1/4 y 3 - 3/4 y 4 + y 5 y y -y 2 3 4 y ≥ , y , y , y , y , y 0 1 2 3 4 5 6
= -11 + y 6 = -12
slijede iteracije dualne simpleksne metode: ┌─────┬────────────────────────────────────────────────┬──────┐ │ │ Iteracija 0 │ Desna │ z y y y y y y │ Baza │ ' │ strana │ 1 2 3 4 5 6 ├─────┼────────────────────────────────────────────────┼──────┤ │ │ ┌───┐ │ │ │ z ' │ 1 8 │ 6 │ 7 9 0 0 │ 0 │ │ │ │ │ │ │ │ y 5 │ 0 -1 │ 0 │ -1/4 -3/4 1 0 │ -1 1 │ │ │ ┌──────┼───┼────────────────────────────┼─────┐│ │ y 6 │ 0 │ 0 │ -1 │ -1 -1 0 1 │ -1 2 ││ │ │ └──────┴───┴────────────────────────────┼─────┘│ └─────┴────────────────────────────────────────────────┴──────┘
50
Operacijska istraživanja
┌─────┬────────────────────────────────────────────────┬──────┐ Iteracija 1 │ │ │ Desna │ ' z y y y y y y │ Baza │ │ strana │ 1 2 3 4 5 6 ├─────┼────────────────────────────────────────────────┼──────┤ │ │ ┌────┐ │ │ │ z ' │ 1 8 0 1 │ 3 │ 0 6 │ -7 2 │ │ │ ┌───────────────────┼────┼──────────────┼─────┐│ │ y 5 │ 0 │ -1 0 -1/4 │ -3/4 │ 1 0 │ -1 1 ││ │ │ └───────────────────┼────┼──────────────┼─────┘│ 0 0 1 1 │ 1 │ 0 -1 │ 12 │ │ y 2 │ │ │ └────┘ │ │ └─────┴────────────────────────────────────────────────┴──────┘
Nakon stožernog razvoja, koeficijent uz nebazi čnu varijablu y3 jednak je nuli, što ukazuje na postojanje alternativnog rješenja u dualu, odnosno degeneracije u primalu: ┌─────┬────────────────────────────────────────────────┬──────┐ │ │ Iteracija 2 │ Desna │ y y y y y y │ Baza │ z │ strana │ 1 2 3 4 5 6 ├─────┼────────────────────────────────────────────────┼──────┤ │ │ ┌────┐ │ │ │ z │ 1 │ 4 │ 0 0 0 4 6 │ -116 │ │ │ │ │ │ │ 0 │ 4/ 3 │ 0 1/3 1 -4/3 0 │ 44/3 │ │ y 4 │ │ │ ├────┼───────────────────────────────────┼─────┐│ │ y 2 │ 0 │ -4/3 │ 1 2/3 0 4/3 -1 │ -8/3 ││ │ │ └────┴───────────────────────────────────┼─────┘│ └─────┴────────────────────────────────────────────────┴──────┘
Podsjetimo se, u konačnom rješenju primala nije bilo degeneracije. Tako ni u konačnom rješenju duala nema alternativnog optimuma: ┌─────┬────────────────────────────────────────────────┬──────┐ │ │ Iteracija 3 │ Desna │ strana │ y y y y y y │ Baza │ z 5 6 3 4 1 2 ├─────┼────────────────────────────────────────────────┼──────┤ │ │ │ │ z │ 1 0 3 2 0 8 3 │ -124 │ │ │ │ y 4 │ 0 0 1 1 1 0 -1 │ 12 │ │ │ │ y 1 │ 0 1 -3/4 -1/2 0 -1 3/4 │ 2 │ │ │ └─────┴────────────────────────────────────────────────┴──────┘
2.2. Revidirana simpleksna metoda
│ │ │ │ │ │ │ │
Za rješavanje linearnih programa u ra čunalu nije pogodno koristiti prije opisanu tabličnu simpleksnu metodu. U svakoj iteraciji te metode ponovno se izračunavaju svi koeficijenti u tablici, tijekom iteracija akumuliraju se numeri čke pogreške, zahtijeva se mnogo memorijskog prostora itd. U praksi se javljaju problemi dimenzija od nekoliko tisuća redaka i stupaca. To znači da bi klasičnim postupkom u svakoj iteraciji trebalo izra čunati na milijune koeficijenata koji predstavljaju aktualnu simpleksnu tablicu. Da bi se postigla barem donekle zadovoljavaju ća brzina, tablica bi morala biti memorijski rezidentna, a za postizanje prihvatljive točnosti trebalo bi koristiti dvostruku to čnost iz čega slijedi potreba za desecima megabajta središnje memorije. Klasični simpleksni postupak ne koristi činjenicu da su praktični linearni programi većih dimenzija u pravilu predstavljeni rijetko punjenom matricom. Iskustvo pokazuje da što je problem ve ćih dimenzija, tim je faktor popunjenja manji i obično se kreće ispod 1%. Da bi se na računalu uspješno rješavali takvi problemi iz prakse, razvijena je revidirana simpleksna metoda i niz računarskih postupaka s rijetko punjenim matricama. Ovdje će biti prikazane osnove potrebne za
Uvod
51
razumijevanje principa na kojima se osniva programska podrška za linearno programiranje. Pretpostavimo da se rješava ovaj linearni program: n
max z = Σ c jx j
uz
j=1
n
Σ aijx m ; i=1,.., j ≤ b i j=1 x ; j=1,..,n j ≥ 0
Dodavanjem dopunskih varijabli x j ; j=n+1,..,n+m i prelaskom na matrični prikaz linearni se program transformira u oblik: uz
T max z = c x
A x = 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 načina na koji je formirana matrica A (proširenjem matrice strukturnih koeficijenata jedini čnom matricom) moguće je uvijek u A m odabrati nesingularnu podmatricu B dimenzija m . Matrica A tada se dijeli na dvije podmatrice: A = ŠB │ N ]. N ima dimenzije m n. Vektori x i c tada se također dijele na particije: ┌ │ x B x = │ ── │ x N └
┐ ┌ ┐ │ │ c │ B │ c = │ ── │ │ │ c N │ ┘ └ ┘ Jednadžbe ograni čenja sad se mogu pisati kao B x x B + N N = b
Ako se postavi xN = 0, skup varijabli iz xN naziva se skupom nebazičnih varijabli. Preostale, bazične varijable xB jednoznačno su određene: B x x N B = b - N -1 -1 x B N x B = B b N -1 . Ukoliko su sve vrijednosti Zbog xN = 0 vrijednost bazičnih varijabli jest x B = B b za b ≥ 0, a za B odabrana je jedini čna matrica, B = I, što znači da su kao bazične
odabrane dopunske varijable, dobiveno rješenje jest
┌ ┐ │ x │ ≥ 0 B │ ≥ 0 x = │ │ x │ 0 = N └ ┘ To je moguće ili dopustivo bazično rješenje. U daljnjem će postupku biti pretpostavljeno da je početno bazično rješenje bilo moguće.
52
Operacijska istraživanja
2.2.1. Formuliranje transformiranog problema Supstitucijom izraza za bazi čne varijable dobije se transformirani problem koji odgovara aktualnoj simpleksnoj tablici u klasičnom postupku: uz
T T -1 T -1 (c max z = c N)x N BB b BB N - c
-1 -1 x B N x B= B b N x ≥ 0 Sve su veličine izražene preko koeficijenata, desnih strana i nebazi čnih varijabli.
Uz oznake -1 T -1 ß = B b i π T= c BB transformirani problem ima oblik T T T max z = c Bß - (π N - c N)x N
uz -1 x x B = ß - B N N
Budući da je po definiciji xN = 0, iz transformiranog problema lako se mogu odrediti trenutne vrijednosti funkcije cilja i bazi čnih varijabli. Koeficijenti uz nebazi čne varijable pokazuju što će se promijeniti ako pojedina nebazi čna varijabla poraste od vrijednosti 0 na vrijednost 1.
2.2.2. Izbor ulazne nebazične varijable T Redak π TN - c N sadrži koeficijente koji množe pripadne nebazi čne varijable te pokazuju za koliko bi se promijenila vrijednost funkcije cilja uz jedini čni porast pojedine nebazične varijable. Za nebazičnu varijablu (xN) j ta je promjena d j:
d j = z j - c j
gdje je
T z j = π aj
Rješenje linearnog programa jest optimalno ako je moguće i ako za sve nebazične varijable (xN) j vrijedi: d j
≥
0 ; j=1,...,n
Ako taj uvjet nije ispunjen, treba odabrati neku od nebazi čnih varijabli za koju je d j < 0 . To će biti ulazna nebazična varijabla. Sljedeći je korak izbor izlazne bazične varijable, i to tako da rješenje i dalje ostane moguće.
2.2.3. Izbor izlazne bazične varijable -1 aj za Uz oznaku vrijednosti koeficijenata u aktualnoj simpleksnoj tablici α j= B nebazične varijable (xN) j ; j=1,...,n transformirani problem može se napisati ovako:
max z =
T
cBß
- d 1(x N)1 - ... - d q(x N)q - ... - d n(x N)n
Uvod
53
uz x B =
ß - α 1(x N)1 - ... - α q(x N)q - ... - α n(x N )n
Ako je npr. dq ≤ 0, porast nebazične varijable (xN)q povećao bi vrijednost funkcije cilja. Zbog toga se (xN)q izabire za ulaznu nebazičnu varijablu. Budući da skup jednadžbi ograničenja mora ostati zadovoljen, porastom (xN)q mijenjaju se vrijednosti svih bazičnih varijabli (xB)i ; i=1,...,m za koje je αij ≠ 0: x B = ß - α q(x N)q Ako je αij < 0, (xB)i povećavat će se kad (xN)q raste. Budući da vrijednosti varijabli nisu odozgo ograničene, takav αij ne ograničava porast za varijablu (xN)q. Ograničenje za porast (xN)q predstavljaju bazične varijable čija se vrijednost smanjuje kad (xN)q raste. Uvjet za to jest αij > 0. Da bi ostao zadovoljen uvjet nenegativnosti svih varijabli, maksimalan dopušten porast ulazne nebazi čne
varijable je
(x N)q = min
š (ßi/α iq)│ α iq>0 ć
i
Ako je minimum prona đen u retku p, pripadna bazična varijabla pada na nulu, (xB)p = 0, i prelazi u skup nebazičnih varijabli. Ako ne postoji αiq > 0, ne može se izabrati izlazna bazična varijabla pa je rješenje neograničeno. Ako ima više jednakih minimalnih kvocijenata, svejedno je koja se bazi čna varijabla izabere za izlaznu. Zbog numeričke točnosti obično se izabire ona koja ima najveći αiq. Ostale bazične varijable s istim minimalnim kvocijentom nakon porasta ulazne nebazične varijable padnu na nulu, ali ostaju bazi čnima. Takvo se rješenje naziva degeneriranim.
2.2.4. Stožerni razvoj i revizija inverzne baze U slučaju da su odabrane ulazna nebazična i izlazna bazična varijabla, potrebno je u matrici A obaviti zamjenu stupaca. U stupac p podmatrice B smješta se stupac nove bazične varijable aq. Za prikaz te zamjene upotrijebit će se matrične transformacije. Neka je ei vektor dimenzije m za koji vrijedi (ei)j = 0 za i ≠ j = 1 za i = j
Iskoristimo li taj vektor, opisana zamjena stupca ima oblik T T B epep + aqep novo = B - B T -1 T (I - epep + B aqep ) = B
(e1 e2 ... ep-1 α q ep+1 ... em) = B F = B
Vrijednost nove inverzne matrice baze jest
54
Operacijska istraživanja -1 -1 -1 B novo = F B -1 ß ßnovo = F
a nova vrijednost desnih strana
Budući da je F jedini čna matrica osim stupca αq koji se nalazi u p-tom stupcu, F-1 bit će oblika: -1 F = Š e1 e2 ... ep-1 τq ep+1 ... em ] = E
Stupac τq jest ┌ ┐ │ -α iq/α pq ; i/ =p │ │ τq = │ │ 1 /α pq ; i =p │ └ ┘
Nakon k promjena baze inverzna matrica baze bit će prikazana u produktnom obliku, kao niz sukcesivnih revizija po četne inverzne baze I: -1 B = E kE k-1 E k-2E 2E 1I
Pokazat će se da nije potrebno tokom ra čunskih operacija u revidiranoj simpleksnoj metodi izračunavati inverznu bazu eksplicitno. Pojedina revizija inverzne baze Ei u i-toj iteraciji je jedini čna matrica osim jednog stupca. Takav prikaz inverzne baze poznat je u literaturi kao PFI (Product Form of Inverse). Prednost mu je što je numerički stabilan, a kod ugradnje na računalu može se efikasno koristiti vanjska memorija. Razvijene su i druge memorijski rezidentne metode za koje se u praksi pokazalo da generiraju manje članova različitih od nule. Osnivaju se najčešće na LU-dekompoziciji. Dobar opis tih metoda dan je u (Murtagh, 1980), a pregled novijih rezultata na tom podru č ju dan je u (Maleš, 1989).
2.2.5. Računske operacije u revidiranoj simpleksnoj metodi 2.2.5.1. Izračunavanje vektora π Vektor π izračunava se transformacijom unazad (BTRAN): -1 T π T = c BB
Redak s koeficijentima bazi čnih varijabli u funkciji cilja množi se s desna produktnim oblikom inverzne baze: Š π 1 π 2 ... π m ] = Š c B1 c B2 ... c Bm ]E kE k-1 ...E 1
Specijalna struktura matrica E može se iskoristiti tako da se pamti pozicija stupca τ u kojem se E razlikuje od jedinične matrice. Zbog rijetke popunjenosti matrice linearnog programiranja isplati se u stupcu τ pamtiti poziciju i iznose samo članova različitih od nule. Programski se riješi množenje retka s matricom E. Sukcesivnim množenjima retka s Ek, Ek-1, ... ,E1 u središnjoj je memoriji prostor dovoljan za pohranjivanje jednog retka i jednog stupca dimenzija m. Za imalo veći-1m to postaje 2 drastično manje od m što bi inače bilo neophodno kad bi se B izražavalo eksplicitno.
Uvod
55
2.2.5.2. Izračunavanje aktualnih koeficijenata u funkciji cilja T Za nebazične varijable x j izračunava se z j = π aj, a zatim slijedi d j = z j - c j. Prema klasičnom postupku izračunavaju se d j za sve nebazične varijable, a zatim se izabire najpovoljniji. Takav se pristup opravdava time što je poboljšanje funkcije cilja u pojedinoj iteraciji jednako umnošku d j i porasta ulazne nebazične varijable. Pretpostavka je da su te dvije veličine međusobno nezavisne (Orchard-Hays, 1968). S druge strane izračunavanje svih d j zahtijeva vremena, a veće d j povećava vjerojatnost i za veće pripadno α j (Murtagh, 1981) pa je porast ulazne nebazi čne varijable manji. Po toj argumentaciji nema smisla tražiti najpovoljniji d j već je dovoljno prona ći prvi povoljni d j. Opisane kontradiktorne tvrdnje ne mogu se dokazati jer je njihova istinitost stohastičke prirode. U (Kalpi ć, 1982) predložen je kompromis: računa se određeni broj povoljnih d j, izabire najpovoljniji i upamti se položaj izabrane nebazi čne varijable. U sljedećoj iteraciji računaju se d j od te pozicije na dalje, cikli čki.
2.2.5.3. Izračunavanje aktualnog ulaznog stupca Nakon k izmjena baze aktualna vrijednost koeficijenata u j-tom stupcu dobije se transformacijom unaprijed (FTRAN): α j = E kE k-1 E k-2 E 2E 1aj
Slično kao kod transformacije unazad, u memoriji je dovoljno prohraniti stupac a j i po jedan stupac matrice E. Redoslijed množenja je takav da je međurezultat uvijek stupac: α j = E k(E k-1 (E k-2 (E 2(E 1aj)...)))
2.2.5.4. Izračunavanje aktualnih desnih strana Aktualne vrijednosti desnih strana transformiranog skupa jednadžbi, a koje ujedno predstavljaju i vrijednosti bazi čnih varijabli, izračunavaju se također transformacijom unaprijed: ß = E b k(E k-1 (E k-2(E 2(E 1 )...)))
Valja uo čiti da u k-toj iteraciji ne treba ra čunati aktualne vrijednost desnih strana kompletnim množenjem prema gornjem izrazu, već je dovoljno ažurirati njihovu vrijednost iz prethodne iteracije: ßk = E kßk-1
2.2.5.5. Reinverzija Ako se inverzna baza prikazuje i pohranjuje u opisanom produktnom obliku, ona se sastoji od toliko faktora E koliko je bilo izmjena u bazi po čevši od jedinične matrice I kao prvog odabranog bazi čnog rješenja. U prvom bazičnom rješenju bazične su sve dopunske varijable, a sve su strukturne varijable nebazične. Tokom iteracija događa
56
Operacijska istraživanja
se da pojedina varijabla više puta mijenja status, tj. prelazi iz nebazične u bazičnu i obratno. Svaka takva promjena, bez obzira što se radi o istoj varijabli, stvara jedan faktor E. Dopunske varijable koje su postale nebazi čnima mogu ponovno postati bazične, ali najčešće u nekom drugom retku, različitu od njihove početne pozicije. Tijekom iteracija zbog opisanih se razloga produktni izraz za inverznu bazu stalno povećava, a to usporava postupak i smanjuje numeričku točnost. Postupak kojim se produktni oblik inverzne baze svodi na minimalan broj faktora naziva se reinverzija. Nakon reinverzije sve bazi čne dopunske varijable postaju bazi čne na originalnim pozicijama. Zbog toga se produktni oblik sastoji od toliko faktora E koliko ima strukturnih varijabli u bazi. U (Orchard-Hays, 1968) detaljno je opisan postupak reinverzije u kojem se vodi računa i o tome da u minimalnom produktnom izrazu pojedini faktori E sadrže što manje elemenata razli čitih od nule. U programskoj realizaciji sustava za linearno programiranje javlja se i problem izbora učestalosti reinverzije. Ukratko se može re ći da reinverziju treba obaviti: a) kad ne postoji raspoloživa inverzna baza, b) kad se obavi unaprijed zadan broj promjena baze od zadnje reinverzije, c) kad se produktni izraz ne može smjestiti u raspoloživu središnju memoriju, a poslije zadnje reinverzije bio je tamo smješten, d) kad uočene numeričke pogreške premaše toleranciju, a bilo je promjena u bazi od zadnje reinverzije, e) kad se učestalost reinverzije odabire tako da ukupno o čekivano trajanje optimizacije bude minimalno (Kalpi ć, 1981).
2.2.5.6. Kontrola dualnih pogrešaka Kontrola dualnih pogrešaka osniva se na činjenici da bi aktualni koeficijenti u retku funkcije cilja za bazi čne varijable trebali biti jednaki nuli: d j = z j - c j = 0 ;
∀
x j
ε
x B
Budući da se u računalu koristi ograničena točnost za prikaz realnih brojeva, zahtjev se svodi na to da │d j│ bude manje od tolerancije za d j, to jest od one veličine koju mora d j poprimiti pa da nebazi čna varijabla x j bude kandidat za ulaz u bazu. Dualne se pogreške periodički kontroliraju (npr. svakih 50 iteracija) i ukoliko premašuju toleranciju, obavlja se reinverzija. Ako reinverzija ne uspije ukloniti pogrešku, moguće je povećati toleranciju za d j, ali tada raste opasnost da se optimizacija zaustavi prije nego što je postignut stvarni optimum.
2.2.5.7. Kontrola primalnih pogrešaka Dobivena rješenja za bazične varijable uvrste se u početni sustav jednadžbi te bi trebalo vrijediti:
Uvod
57
A x = b
Zbog konačne numeričke točnosti zahtjev se modificira tako da bude │A │ manje od tolerancije za nemoguće rješenje. x - b Primalne pogreške kontroliraju se po završetku optimizacije. Ako su ve će od tolerancije, obavlja se reinverzija. Ako reinverzija ne može ukloniti pogreške, može se povećati tolerancija za nemogu će rješenje. Tolerancija se može povećavati sve dok ne postane sumjerljiva s točnosti podataka koji tvore skup desnih strana b.
2.2.6. Numerički primjer Primjer naveden u poglavlju 2.1.3 riješit će se revidiranom simpleksnom metodom: max z = 3x 1 + 5x 2 x 4 ≤ 1 2x 2 ≤ 12 3x 1 + 2x 2 ≤ 18
──────────────── x 1,
x 2
≥
0
U matričnom obliku, uz dodane dopunske varijable:
uz
┌ ┐ │ x │ 1 │ x 2 │ │ max z = Š 3 5 0 0 0 ] x 3 │ │ x 4 │ │ x 5 │ └ ┘
┌ ┐ ┌ ┐ │ x ┌ ┐ 1 │ │ 4 │ │ 1 0 1 0 0 │ │ x 2 │ │ 0 2 0 1 0 ││ x 3 │ = │ 12 │ │ 3 2 0 0 1 │ │ x │ 18 │ 4 │ └ ┘ │ x └ ┘ 5 │ └ ┘ Dopunske se varijable na početku izaberu kao bazične: ┌ ┐ │ x │ 3 x B = I B = │ x 4 │ │ x │ 5 └ ┘ Za nebazične varijable izračunava se d j:
T -1 π T = c BB =
Š 0 0 0 ] │ 0
┌ │ 1 1
│ 0 └
┐
0 0 │ 0 │ = Š 0 0 0 ] 0 1 │
┘
58
Operacijska istraživanja
┌ ┐ │ 1 │ T │ │ - 3 = -3 c = Š 0 0 0 ] 0 a = π d 1 1 1 │ 3 │ └ ┘ ┌ ┐ │ 0 │ T π │ │ - 5 = -5 d a c = = Š 0 0 0 ] 2 2 2 2 │ 2 │ └ ┘ Kao ulazna nebazična varijabla izabire se x2 (q=2). Obavlja se FTRAN na stupcu a2. ┌ ┐ ┌ ┐ ┌ ┐ │ │ │ │ │ 0 │ 1 0 0 0 -1 α 2 = B a2 = │ 0 1 0 ││ 2 │ = │ 2 │ │ 0 0 1 │ │ 2 │ │ 2 │ └ ┘ └ ┘ └ ┘ Izabire se minimalni kvocijent između desnih strana i stupca α2. Dobiju se rezultati
po retcima:
4/0 = ∞ 12/2 = 6 18/2 = 9
Minimalni nenegativni kvocijent jest u drugom retku (p=2). Izračunava se E 1 = Š e1 τ2 e3 ]:
┌ ┐ ┌ ┐ │ -a12/a22 │ │ 0 │ τ2 = │ 1 /a22 │ = │ 1/2 │ │ -a32/a22 │ │ -1 │ └ ┘ └ ┘
Ažurira se vrijednost desnih strana: ┌ ┐ ┌ ┐ ┌ ┐ ┌ ┐ │ x │ │ │ │ │ │ 1 0 0 4 4 │ 3 │ x │ │ │ │ │ │ │ ß E b = = = 0 1/2 0 12 = 6 2 1 │ x │ │ 0 -1 1 │ │ 18 │ │ 6 │ 5 └ ┘ └ ┘ └ ┘ └ ┘ Za nebazične varijable izračunava se ponovno d j: ┌ ┐ │ │ 1 0 0 T -1 π T = c B = Š 0 5 0 ] │ 0 1/2 0 │ = Š 0 5/2 0 ] B │ 0 -1 1 │ └ ┘ ┌ ┐ │ 1 │ T π │ │ - 3 = -3 d a c = = Š 0 5/2 0 ] 0 1 1 1 │ 3 │ └ ┘ ┌ ┐ │ 0 │ T │ │ - 0 = 5/2 c π = Š 0 5/2 0 ] 1 d a = 4 4 4 │ 0 │ └ ┘
Uvod
59
Kao ulazna nebazična varijabla izabire se x1 (q=1). Obavlja se FTRAN na stupcu a1. -1 α 1 = B a1
┌ │ 1
┐ ┌
┐
┌
┐
│ 1 │ 0 0 │ │ 1 │ = │ 0 1/2 0 ││ 0 │ = │ 0 │ │ 0 -1 1 │ │ 3 │ │ 3 │ └
┘ └ ┘ └ ┘ Izabire se minimalni kvocijent izme đu desnih strana ß i stupca α1. Dobiju se
rezultati po retcima: 4/1 = 4 6/0 ∞ 6/3 = 2
Minimalni nenegativni kvocijent jest u trećem retku (p=3). Izračunava se E 2 = Š e1 e2 τ3 ]:
┌ ┐ ┌ ┐ │ -α 11/α 31 │ │-1/3 │ τ3 = │ -α 21/α 31 │ = │ 0 │ │ │ 1/3 │ 1/α 31 │ └ ┘ └ ┘
Ažurira se vrijednost desnih strana: ┌ ┐ ┌ ┐ ┌ ┐ ┌ ┐ │ x │ │ │ │ │ 1 0 -1/3 4 2 │ 3 │ novo │ x = E 1 0 ││ 6 │ = │ 6 │ 2 │ = ß 2ß = │ 0 │ x │ 0 0 1/3 │ │ 6 │ │ 2 │ 1 │ └ ┘ └ ┘ └ ┘ └ ┘ Za nebazične varijable izračunava se ponovno d j: ┌ ┐ ┌ ┐ │ │ │ │ 1 0 -1/3 1 0 0 T -1 π T = c │ │ │ │ B = Š 0 5 3 ] 0 1 0 0 1/2 0 = B │ 0 0 1/3 │ │ 0 -1 1 │ └ ┘ └ ┘ ┌ ┐ │ 1 0 0 │ = Š 0 5 1 ]│ 0 1/2 0 │ = Š 0 │ 0 -1 1 │ └ ┘
3/2
1 ]
┌ ┐ │ 0 │ T d 4 = π a4 - c 4 = Š 0 3/2 1 ] │ 1 │ - 0 = 3/2 │ 0 │ └ ┘ ┌ ┐ │ 0 │ T d 5 = π a5 - c 5 = Š 0 3/2 1 ] │ 0 │ - 0 = 1 │ 1 │ └ ┘ Budući da bi porast bilo koje nebazične varijable pokvario funkciju cilja, dobiveno moguće rješenje jest optimalno.
60
Operacijska istraživanja
2.2.7. Skaliranje podataka Ulazni podaci, strukturni koeficijenti i vrijednosti desnih strana mogu se u originalnoj formulaciji modela razlikovati za više redova veli čina. To je najčešće slučaj kad model izrađuje nedovoljno iskusan operacijski istraživač koji u isti model ugrađuje kao pojedinačne stavke međusobno nesumjerljive veli čine. Primjer može biti unos u isti model podataka za potrošača reda veličine megavata čija je očekivana potrošnja u okviru pouzdanosti od 1% i potrošača reda veličine kilovata. Očito da bi manje potrošače u takvom slučaju trebalo tretirati grupno da bi bili sumjerljivi podacima o velikom potrošaču, ili obratno, raščlaniti velikog potroša ča tako da pojedine komponente budu istog reda veli čine kao opisani mali potrošači. Da bi se što je moguće više kompenzirali takvi eventualni propusti te da se pojednostavni formuliranje modela bez potrebe konverzije raspoloživih podataka u prikladnije jedinice, ulazne podatke mogu će je skalirati tako da maksimalni koeficijent ili desna strana bude na iznosu 1. U (Balinski, Hellerman, 1975) navodi se da je relativna pogreška kod izračunavanja vrijednosti bazičnih varijabli u sustavu B x B = b
ograničena konstantom koja je proporcionalna izrazu g k (B )
────── ║B ║
gdje je g najveći broj generiran Gaussovom eliminacijom, a -1 ║║B ║ k (B ) = ║B
║B ║ = max ( Σ │b ij│ ) i
U (Orchard-Hays, 1968 i Kalpi ć, 1982) detaljno su opisani postupci skaliranja u općem linearnom programu.
2.2.8. Numeričke tolerancije Budući da se u računalu koristi realna aritmetika, rezultati aritmetičkih operacija imaju konačnu točnost. Tu se činjenicu uzima u obzir uvođenjem numeričkih tolerancija čija veličina prvenstveno ovisi o preciznosti prikaza realnih brojeva u korištenom računalu. Pretpostavka je da su podaci skalirani na maksimalnu vrijednost jednaku 1.
Uvod
61
2.2.8.1. Tolerancija za nulu Svi rezultati do kojih se do đe operacijama zbrajanja i oduzimanja uspore đuju se po apsolutnoj vrijednosti s tolerancijom za nulu. Ukoliko su manje, smatraju se numeričkim šumom i izjednačuju s nulom.
2.2.8.2. Najmanji dozvoljeni stožer Ako se stožerni razvoj obavi na vrlo malom koeficijentu, numeri čke pogreške rastu. S druge strane prestrogi zahtjev za veli činu stožernog elementa može izazvati prijevremeni prekid optimizacije zbog nedostatka stožera. U postupku reinverzije može se tolerirati stožerni element koji je manji negoli u optimizaciji.
2.2.8.3. Najmanja signifikantna razlika dva broja Kod oduzimanja dva realna broja r = a - b
ispituje se je li dobiveni rezultat dovoljno relativno velik u odnosu na operande ili uopće ne sadrži točne znamenke. Ako je │r │ ─── │ a│
manje od tolerancije za diferenciju, postavlja se r=0.
2.2.8.4. Najmanja signifikantna vrijednost za d j Da bi se neka nebazična varijabla x j mogla smatrati kandidatom za ulaz u bazu, ona mora imati pripadni d j povoljnog predznaka, ali i dovoljne apsolutne veli čine. U suprotnom, ako se izabere ulazna nebazi čna varijabla s vrijednošću d j reda veličine dualnih pogrešaka, ne mora se dobiti poboljšanje funkcije cilja, a simpleksni postupak može oscilirati.
2.2.8.5. Maksimalno dozvoljeno prekoračenje ograničenja Vrijednosti bazi čnih varijabli u općem linearnom programu imaju propisan interval dopuštenih vrijednosti. Ti se intervali moraju proširiti za iznos veći od reda veličine primalnih pogrešaka. U suprotnom, tijekom optimizacije rješenje može postati ponovno nemoguće te postupak oscilira.
62
Operacijska istraživanja
2.2.9. Postupci u općem linearnom programu U općem linearnom programu moguće je navesti sve tipove ograničenja na retke i na stupce. Odgovarajućim transformacijama svi se ti problemi mogu svesti na standardni oblik linearnog programiranja (poglavlje 2.1.1). Efikasnije je međutim svim strukturnim i dopunskim varijablama pridružiti jedan od tipova iz intervala Š0,3] koji određuju njihov dopušteni interval vrijednosti. Prema (Orchard-Hays, 1968) to su: Tip │ Interval dopuštenih vrijednosti ────┼────────────────────────────────────── 0 │ 0 1 │ Š 0, 1 ] 2 │ Š 0, +∞ ] 3 │ Š-∞, +∞ ]
Na te intervale dopuštenih vrijednosti varijable se svode skaliranjem i translacijom. U optimalnom rješenju varijable tipa 0 uvijek su nebazi čne, varijable tipa 3 (slobodne varijable) jesu bazi čne, a varijable tipa 2 mogu biti bazične ili nebazične na vrijednosti 0. Varijable tipa 1 imaju donju i gornju granicu te mogu biti nebazične na donjoj ili na gornjoj granici. Ako im vrijednost nije jednaka graničnoj, onda su bazične. Uvođenjem tipova varijabli, umjesto proširivanja modela, štedi se memorija i ubrzava postupak, ali kriteriji za izbor ulazne nebazi čne i izlazne bazi čne varijable postaju bitno složeniji nego kod standardnog simpleksnog postupka. Detaljniji opis tih kriterija može se naći u (Orchard-Hays, 1968), a sistematizacija postupaka koji su ugrađeni u program LPE u (Kalpi ć, 1982). Detaljni opis revidirane simpleksne metode uz razne aspekte njene ugradnje na računalu može se između ostalog naći u (Orchard-Hays, 1968; Murtagh, 1980). U (Limić et al., 1978) priložen je program u FORTRANu za revidiranu simpleksnu metodu. Aspekti ugradnje za opći linearni program LPE uz štedljivo korištenje računarskih resursa obrađeni su u (Kalpić, 1982).
Uvod
63
2.3. Mješovito-cjelobrojno programiranje U nekim primjenama linearnog programiranja javljaju se strukturne varijable koje označavaju cjelobrojne veli čine kao npr. broj radnika, broj brodova, broj upotrijebljenih vodova i sl. Ukoliko se radi o relativno velikim brojevima, a problem je iz prakse, pokazuje se naj češće da su pogreške zaokruživanja na najbliži cijeli broj sumjerljive s točnosti podataka kojima je opisan model. U takvu slu čaju upotrebljava se linearno programiranje s vrijednostima varijabli iz realnog područ ja, a kod interpretacije rezultata obavlja se zaokruživanje. Postoje međutim slučajevi kad bi zaokruživanje izazvalo grube pogreške pa nije primjenjivo. To se događa kad su vrijednosti imanentno cjelobrojnih varijabli male ili, u najdrastičnijem slučaju, varijable predstavljaju odluku, da ili ne, pa trebaju poprimati vrijednosti 0 ili 1. Primjeri za takve varijable mogu biti: odluka o investiranju (tvornica se gradi ili ne gradi), odluka o postavljanju voda na nekoj trasi (dalekovod, vodovod, telefon i sl.), odluka ekskluzivnog izbora (poljoprivredna kultura koja će se uzgajati na nekoj parceli). U svim tim slučajevima realno rješenje za varijablu odluke posve je neprimjenjivo pa treba upotrijebiti neki od postupaka mješovito-cjelobrojnog programiranja. Ovdje će biti detaljnije opisan jedan od postupaka poznat u literaturi kao metoda grananja i ogra đivanja (Branch and Bound) ili metoda Land-Doig. Postupak je prikladan za ugradnju na ra čunalu (programski sustavi FMPS, MPSX).
2.3.1. Algoritam grananja i ograđivanja Za razliku od linearnog programiranja u realnom podru č ju gdje u općem slučaju postoji beskonačno mnogo mogućih rješenja, a optimalno rješenje traži se me đu konačno mnogo bazičnih rješenja koja se nalaze na vrhovima konveksnog skupa mogućih rješenja, u cjelobrojnom programiranju postoji kona čan broj mogućih rješenja. Ona se nalaze na cjelobrojnoj rešetki unutar konveksnog skupa mogućih rješenja relaksiranog problema, tj. istovjetnog linearnog programa u kojem na varijable nije postavljen uvjet cjelobrojnosti. Budu ći da se točke cjelobrojne rešetke općenito ne poklapaju s bazičnim rješenjima, pronalaženje optimuma složenije je negoli u realnom područ ju. Kod mješovito-cjelobrojnog programiranja vrijednosti cjelobrojnih varijabli se nalaze na rešetki dok su za ostale varijable dopuštene realne vrijednosti. Ideja algoritma grananja i ogra đivanja jest u tome da se najprije riješi relaksirni problem u kojem ne postoje zahtjevi za cjelobrojnost. Po odabranom redoslijedu pojedina čno se varijablama čija bi vrijednost trebala biti cjelobrojnom, a u dobivenom rješenju nisu cjelobrojne, zabranjuje da poprime svoju optimalnu necjelobrojnu vrijednost. Obavlja se grananje i generiraju dva nova linearna programa koja se smještaju u čvorove binarnog stabla. Lijevi čvor predstavlja linearni program u kojem promatrana varijabla može poprimiti vrijednosti manje ili jednake prvom cijelom
64
Operacijska istraživanja
broju koji je manji od dobivenog rješenja, a u desnom čvoru vrijednosti veće ili jednake prvom većem cjelobrojnom rješenju. Riješe se linearni programi u oba novonastala čvora. Budući da su ti čvorovi proizašli iz početnog čvora dodavanjem po jednog novog ograničenja, funkcija cilja u njima ne može biti bolja od vrijednost iz početnog čvora. Prema tome, to je ograda (kod maksimizacije gornja) za sve linearne programe koji će se po takvom principu generirati iz nekog čvora. Prilikom tog postupka varijabla koju se nastoji u činiti cjelobrojnom, poprimi cjelobrojnu vrijednost u iznosu novog ograničenja jer je tada najbliža svojoj optimalnoj vrijednosti. To nije slučaj samo onda kad rješenje na taj način postaje nemoguće. Iz čvora s nemogućim rješenjem ne obavljaju se daljnja grananja. Na primjer ako neka varijabla čija bi vrijednost trebala biti cjelobrojnom, poprimi u relaksiranom problemu vrijednost x = 3.75, onda će se generirati lijevi čvor u kojemu se rješava isti linearni program kao prije, ali s dodatnim ograni čenjem x ≤ 3. U desnom čvoru novo ograničenje bit će x ≥ 4. Time se varijabli zabrani da poprimi svoju optimalnu, ali necjelobrojnu vrijednost. Ukoliko u novim čvorovima rješenja budu moguća, pripadne vrijednosti bit će x = 3, odnosno x = 4 jer su tada najbliže dotadašnjoj optimalnoj vrijednosti 3.75. Čvorovi s mogućim rješenjem a koje još nije cjelobrojno, nazivaju se otvorenima. Po nekom se kriteriju izabere sljedeći otvoreni čvor i sljedeća varijabla na koju se postavljaju ograničenja da bi postala cjelobrojnom na prvoj manjoj odnosno ve ćoj vrijednosti od trenutne, u novom lijevom odnosno desnom čvoru. Za tu varijablu opet vrijedi da se postiže cjelobrojnost ili je rješenje nemoguće. Valja uočiti da u tom postupku varijable koje su u prethodnim čvorovima već postale cjelobrojnima, ne
moraju to svojstvo zadržati. Kad postanu necjelobrojne, na njih se stavljaju nova ograničenja. Zadržano je svojstvo da čvorovi sljedbenici ne mogu imati bolju vrijednost funkcije cilja od svojih prethodnika. Za binarne programe, tj. takve gdje n varijabli smije poprimiti samo vrijednosti 0 ili 1, gornja granica za broj čvorova n jest 2 . To ukazuje da se radi o tzv. nepolinomijalnom (NP) trajanju rješavnja problema. U teoriji algoritama takvi se problemi smatraju teškima. Kod linearnog programiranja iskustvo u praksi pokazuje da trajanje rješavanja raste s trećom potencijom broja linearnih ograni čenja, iako je najgori slučaj kombinatorni, dakle NP problem. Zbog toga se u linearnom programiranju u pravilu ne odustaje od potrage za optimalnim rješenjem. Za cjelobrojno programiranje, me đutim, često se izabiru postupci koji ne garantiraju postizanje optimuma, ali u praksi dovode do bržih rješenja.
Uvod
65
2.3.1.1. Standardni oblik algoritma 1. Formulirati mješovito-cjelobrojni linearni program (engl. Mixed Integer Program, MIP) oblika:
uz
n max z = Σ c j j=1
p x j + Σ c k+n k=1
n
δk
p
Σ aij j=1 x j
≥
0
x j
+ Σ aik+n
δk
≤ b i
m ; i=1,..,
k=1
; j=1,..,n
δk = 0, 1, 2,...
p ; k=1,...,
2. Postaviti s=0. Formulirati relaksirani problem LP0 u realnom podru č ju. Ograničenja δk = 0, 1, 2,...
p ; k=1,..,
treba zamijeniti ograni čenjima δk
≥
0
p ; k=1,..,
3. Riješiti LPs. Ako je dobiven optimum, upamtiti pripadnu vrijednost funkcije cilja Zs = Cs. Ako je rješenje nemoguće, vrijednost funkcije cilja postaviti na Cs = - ∞. s jest otvoreni čvor. 4. Pronaći otvoreni čvor q koji ima najbolju vrijednost funkcije cilja. Postaviti da je q zatvoreni čvor. Ako je najbolja vrijednost funkcije cilja - ∞, ne postoji moguće mješovito-cjelobrojno rješenje. Postupak zaustaviti. Ina če, pronaći prvi δk koji nije cjelobrojan. Ako takav ne postoji, rješenje je optimalno i postupak zaustaviti. Ako postoji r < δk < r+1, gdje je r cijeli broj: 4.a) Postaviti s:=s+1 i formirati LPs koji se sastoji od LPq uz dodatno ograničenje δk ≤ r. Obaviti točku 3. 4.b) Postaviti s:=s+1 i formirati LPs koji se sastoji od LPq uz dodatno ograničenje δk ≥ r+1. Ići na točku 3. Taj algoritam garantira konvergenciju i dobivanje optimalnog rješenja ukoliko takvo postoji. Primjer: uz
max z = x 2 1 + x 19x 1 + 12x 2 ≤ 114 2x 11 2 ≤
──────────────────── x 1, x 2 = 0, 1, 2, ...
66
Operacijska istraživanja
U tom primjeru nema varijabli iz realnog područ ja, a x1 i x2 odgovaraju varijablama δ1 i δ2 iz opisa algoritma. ┌────┬──────┬─────┬────────────────────────────────┬──────┐ │ Č vo r │ Itera- │ Baz. │ Koeficijenti │ Desne │ x x x x │ │ cija │ var. │ z x 1 │ strane │ 2 3 4 5 ├────┼──────┼─────┼────────────────────────────────┼──────┤ │ │ │ z │ 1 -1 -1 0 0 │ 0 │ │ │ 0 │ x │ 0 19 12 1 0 │ 11 4 │ 3 │ │ │ x 4 │ 0 0 2 0 1 │ 11 │ │ ├──────┼─────┼────────────────────────────────┼──────┤ │ │ │ z │ 1 0 -7/19 1/19 0 │ 114/19 │ │ 0 │ 1 │ x 1 12/19 1/19 0 │ 114/19 │ 1 │0 │ │ │ x 4 │ 0 0 2 0 1 │ 11 │ │ ├──────┼─────┼────────────────────────────────┼──────┤ │ │ │ z │ 1 0 0 1/19 7/38 │ 305/38 │ │ │ 2 │ x 1 0 1/19 -6/19 │ 48/19 │ 1 │0 │ │ │ x 2 │ 0 0 1 0 1/2 │ 11/2 │ ├────┼──────┼─────┼────────────────────────────────┼──────┤ │ │ │ │1 0 0 1/19 7/38 0 │ 305/38 │ │ │ 0 │ ? │0 1 0 1/19 -6/19 0 │ 48/19 │ │ │ │ │0 0 1 0 1/2 0 │ 11/2 │ │ │ │ │0 1 0 0 0 1 │ 2 │ │ ├──────┼─────┼────────────────────────────────┼──────┤ │ │ │ z │ 1 0 0 1/19 7/38 0 │ 305/38 │ │ 1 │ 1 │ x 1 0 1/19 -6/19 0 │ 48/19 │ 1 │0 │ │ │ x 2 │ 0 0 1 0 1/2 0 │ 11/2 │ │ │ │ x 5 │ 0 0 0 -1/19 6/19 1 │ -10/19 │ │ ├──────┼─────┼────────────────────────────────┼──────┤ │ │ │ z │ 1 0 0 0 1/2 1 │ 285/38 │ │ │ 2 │ x 1 0 0 0 1 │ 2 │ 1 │0 │ │ │ x 2 │ 0 0 1 0 1/2 0 │ 11/2 │ │ │ │ x 3 │ 0 0 0 1 -6 -19 │ 10 │ ├────┼──────┼─────┼────────────────────────────────┼──────┤ │ │ │ │1 0 0 1/19 7/38 0 │ 305/38 │ │ │ 0 │ ? │0 1 0 1/19 -6/19 0 │ 48/19 │ │ │ │ │0 0 1 0 1/2 0 │ 11/2 │ │ │ │ │0 -1 0 0 0 1 │ -3 │ │ ├──────┼─────┼────────────────────────────────┼──────┤ │ │ │ z │ 1 0 0 1/19 7/38 0 │ 305/38 │ │ 2 │ 1 │ x 1 0 1/19 -6/19 0 │ 48/19 │ 1 │0 │ │ │ x 2 │ 0 0 1 0 1/2 0 │ 11/2 │ │ │ │ x 5 │ 0 0 0 1/19 -6/19 1 │ -9/19 │ │ ├──────┼─────┼────────────────────────────────┼──────┤ │ │ │ z │ 1 0 0 1/12 0 7/12 │ 589/76 │ │ │ 2 │ x 1 0 0 0 -1 │ 3 │ 1 │0 │ │ │ x 2 │ 0 0 1 1/12 0 19/12 │ 19/4 │ │ │ │ x 4 │ 0 0 0 -1/6 1 -19/6 │ 3/ 2 │ └────┴──────┴─────┴────────────────────────────────┴──────┘
U tablici je prikazan postupak u čvoru 0 koji predstavlja primalni simpleks. Budu ći da za varijablu koja bi trebala biti cjelobrojnom, x1 = 48/19 = 2.526, nije dobiveno cjelobrojno rješenje, formira se linearni program za čvor 1 koji sadrži dodatno ograničenje x1 ≤ 2. Da se skrati postupak, ograničenje je dodano u optimalnu simpleksnu tablicu čvora koji prethodi. Kod većih linearnih programa time se bitno skraćuje postupak. Dodavanjem ograničenja pretvorenog u jednadžbu pojavila se nova dopunska varijabla x5. Iz tablice nije moguće odrediti bazi čno rješenje pa se zbog toga redak u kojem je x1 bio bazičan množi s -1 i dodaje novom retku tablice. Time se u iteraciji 1 čvora 1 dobiva bazično rješenje. To bazično rješenje zadovoljava uvjete optimalnosti, ali je nemoguće. Za superoptimalno rješenje pogodno je upotrijebiti dualnu simpleksnu metodu. Izabire se izlazna bazična varijabla x5 koja ima nedopustivu vrijednost (-10/19). Za stožerni element izabire se me đu negativnim koeficijentima onaj za koji je kvocijent izme đu koeficijenta u funkciji cilja i
Uvod
67
negativnog koeficijenta u odabranom retku po apsolutnoj vrijednosti minimalan. Optimalno rješenje za čvor 1 daje cjelobrojnu vrijednost za x1 = 2, necjelobrojnu vrijednost za x2 = 11/2 = 5.5 i vrijednost funkcije cilja z = 285/38 = 7.5. Kako je razumljivo da uvođenjem dodatnih ograni čenja nije moguće postići bolju vrijednost funkcije cilja, jasno je da dobiveno rješenje predstavlja gornju granicu po vrijednosti funkcije cilja za sve čvorove koji nastaju iz toga čvora. U čvoru 2 optimalnoj simpleksnoj tablici iz prethodnog čvora dodano je ograni čenje x1 ≥ 3. Postupak je sličan kao u čvoru 1. Dobije se cjelobrojni x1 = 3, necjelobrojni x2 = 19/4 = 4.75 i funkcija cilja z = 589/76 = 7.75. Prema opisanom algoritmu daljnji postupak slijedi iz čvora 2 jer ima veću vrijednost funkcije cilja. Dodavat će se ograničenja x2 ≤ 4 (čvor 3), odnosno x2 ≥ 5 (čvor 4). Na slici 2-9 prikazan je cijeli postupak optimizacije po metodi grananja.
Slika 2-9 Postupak optimiranja metodom grananja
68
Operacijska istraživanja
2.3.1.2. Strategije izbora otvorenog čvora Opisani algoritam (2.3.1.1) teorijski garantira konvergenciju i dobivanje optimalnog rješenja. Problem je trajanje optimizacije. Kod rješavanja prakti čnih problema najčešće se javlja ista zakonitost kao u odabranom primjeru, a to je da se približavanjem cjelobrojnom rješenju kvari funkcija cilja, tako da je njena vrijednost tim povoljnija što je rješenje u čvoru dalje od cjelobrojnosti. Izbor otvorenog čvora s najboljom funkcijom cilja generira široko binarno stablo. Gornja granica za broj n čvorova uz n binarnih varijabli jest 2 . Npr. za 100 binarnih varijabli to iznosi oko 1030 rješavanja linearnih programa, a to je previše i za najbrža računala! Da bi se ipak dobilo rješenje u kona čnom vremenu, razrađeni su određeni postupci kojima je zajednička karakteristika da je ubrzanje postignuto na štetu pouzdanosti dobivanja optimuma. Takve strategije obično se nude u komercijalnim programskim proizvodima (FMPS, 1975). Postupci čiji opis slijedi odnose se na slu čaj traženja maksimuma. Kod minimizacije treba uzeti u obzir da funkcija cilja raste prilikom približavanja k zadovoljenju zahtjeva na cjelobrojnost.
2.3.1.2.1. Izbor čvora koji je najbliži cjelobrojnom rješenju Ako se ograni čimo na to da cjelobrojne varijable budu binarne, tj. imaju dopustive vrijednosti 0 i 1, za pojedini čvor i može se definirati suma odstupanja od cjelobrojnosti kao: 0.5-1.0 0-0.5 ) + Σ (1 - f S m i = Σ f k
k
m
gdje su f k0-0.5 vrijednosti za binarne varijable dobivene iz raspona (0., 0.5), a f m0.5-1.0 vrijednosti za one binarne varijable koje su u čvoru i u intervalu (0.5, 1.). Ako se umjesto najbolje funkcije cilja kao kriterij uzme minimalno odstupanje od cjelobrojnosti, postupak vrlo brzo konvergira do mogu ćeg cjelobrojnog rješenja. Pri tome, međutim, vrijednost funkcije cilja može biti daleko od optimalne. Da se takav ishod spriječi, unaprijed se propiše dopušteno kvarenje funkcije cilja Fq u odnosu na optimum u realnom područ ju. Čvorovi se tada izabiru samo među onima koji imaju vrijednost funkcije cilja iz dopuštenog intervala. min š S i │ C i i
≥
C 0
F q ć
gdje je Ci vrijednost funkcije cilja u čvoru i, a C0 jest optimum u realnom podru č ju, tj. u čvoru 0. Nakon što se dobije cjelobrojno rješenje, mogu će je tražiti povoljnije, tako da se suzi čvorova koji su kandidati na one koji manje kvare funkciju cilja, npr. Fq := skup ½ (Fq) . Iz slike 2-9 može se uočiti da je npr. iz čvora 8 nastavljana optimizacija jer je imao bolju vrijednost funkcije cilja negoli u do tada dobivenom cjelobrojnom rješenju u
Uvod
69
čvoru 5. Pokazuje se međutim da dodavanjem ograni čenja funkcija cilja pada i na kraju se ne dobije rješenje povoljnije od ve ć postojećeg. Da bi se spriječile takve uzaludne iteracije kojih u modelima realne veli čine može biti vrlo mnogo, uvodi se
faktor Fp. On postaje aktivan kad se dobije prvo cjelobrojno rješenje s vrijednosti funkcije cilja CI. Otvorenima se smatraju samo oni čvorovi kojima je vrijednost funkcije cilja bolja barem za taj faktor: š C i │ C i > C I
(1+F p) ć
Na slici 2-10 prikazan je postupak optimizacije istog problema kao na slici 2-9 s tim da se izabire čvor najbliži cjelobrojnosti uz Fq = 0.8 i Fp = 0.1. Izračunavanje odstupanja od cjelobrojnosti prošireno je s binarnih na sve cijele brojeve.
Slika 2-10 Postupak optimiranja uz izbor čvora koji je najbliži cjelobrojnom rješenju
2.3.1.2.2. Izbor čvora s najboljim projekcijskim faktorom Pretpostavka za tu strategiju jest da postoji približno linearna zavisnost izme đu funkcije cilja i sume odstupanja od cjelobrojnosti. Izabire se čvor s maksimalnom vrijednosti izraza
70
Operacijska istraživanja
C i - (C 0 - C I)/ S 0
S i
Ako još ne postoji neko cjelobrojno rješenje, vrijednost funkcije u zadnjem cjelobrojnom rješenju, CI, mora se pretpostaviti, slično kao Fq. Nakon što je rješenje nađeno, CI poprima vrijednost funkcije cilja u tom čvoru, a Fp postaje aktivan. Ta strategija u prosjeku daje vrlo dobro rješenje u vremenu kra ćem nego prema algoritmu iz poglavlja 2.3.1.1.
2.3.1.2.3. Izbor redoslijeda cjelobrojnih varijabli Neobično je važno izabrati dobar redoslijed za forsiranje varijabli na cjelobrojne (odnosno 0,1) vrijednosti. U (FMPS, 1975) preporuča se: a) Poredati varijable po u češću u funkciji cilja. Tako se prvo donosi odluka o varijablama s najvećim učešćem u funkciji cilja. Metoda nije uvijek primjenjiva jer binarne varijable ne moraju biti izravno prisutne u funkciji cilja. b) Poredati varijable po udaljenosti od cjelobrojnosti. Prvo se donosi odluka o varijablama koje su najdalje od cjelobrojnosti. Metoda zahtijeva prethodno rješavanje i ispis rezultata u realnom područ ju. c) Kombinacija a) i b), tj. koeficijent u funkciji cilja množi se s udaljenošću od cijelog broja. Zaista je međutim najefikasniji, onda kad je primjenjiv, postupak redanja prema hijerarhijskom značenju. Npr. odluka o tome da li da se gradi tvornica treba do ći prije odluke o nabavci određenog stroja u toj tvornici. Za rješavanje čisto cjelobrojnih programa ili posebnih klasa problema razvijene su metode bitno efikasnije nego što je opisana univerzalna metoda Land-Doig. Kao zaključak može se reći da mješovito-cjelobrojno programiranje zahtijeva više vremena na računalu, a i više znanja i vještine kod postavljanja modela i izbora strategija nego što je to slučaj s linearnim programiranjem.
2.3.2. Primjene mješovito-cjelobrojnog programiranja 2.3.2.1. Izbor optimalne energetske mreže Razmatra se mreža koja sadrži n čvorova: izvora energije i prostorno dislociranih potroša ča. Izvori energije se tretiraju kao negativni potrošači. U čvoru j stvara se ili troši snaga W j. Čvorovi su međusobno povezani s m grana. Pojedina grana duljine li dopušta maksimalni protok snage C i. Pretpostavljeni su linearizirani gubitci snage po granama uz daljnju pretpostavku da novčana vrijednost očekivanog gubitka snage tijekom eksploatacije voda iznosi q % od cijene polaganja voda. Za svaku granu i uvodi se protok snage u pozitivnom smjeru P i i u negativnom smjeru R i. To je nužno da bi snaga u grani uvijek bila pozitivna i da se može izraziti gubitak u vodovima. Za odluku o postavljanju grane i uvedene su binarne varijable δi. Funkcija cilja jest minimalni trošak izgradnje i eksploatacije energetske mreže
Uvod
m min z = Σ li i=1
71
(δi + q P i + q R i)
uz ograničenja snage u granama P i + R i
≤
C i
m δi ; i=1,..,
i bilancu snage u čvorovima m Σ k (i,j) i=1
P i
m Σ k (i,j) i=1
R i = W j
; j=1,..,n
gdje su k(i, j) članovi matrice koja opisuje po četnu povezanost mreže (Grana i izlazi iz čvora j) -1 k (Grana i ne koincidira s čvorom j) (i,j) = 0 (Grana i ulazi u čvor j) 1 Realne varijable jesu P i R i
≥ ≥
0 0
m ; i=1,.., ; i=1,.., m
Binarne varijable jesu δi = 0, 1
m ; i=1,..,
Ostale su veličine konstante. U praktičnom primjeru postojao je 1 izvor energije, 23 potroša ča i 35 predloženih grana. Rješavanjem programom FMPS na računalu Sperry 1100 nije se uspjelo dobiti optimalno rješenje kad su se čvorovi izabirali prema najboljoj funkciji cilja. Razlog je u prekoračenju svih sistemski postavljenih limita: broja iteracija, broja čvorova, vremena procesiranja, vanjske memorije itd. Opisanim pragmati čnim tehnikama dobila su se rješenja (Kalpić, 1979). Najbolji rezultati dobiveni su kad se binarne varijable δi bile poredane od izvora energije prema periferiji, dakle prema padajućoj hijerarhiji.
2.3.2.2. Optimalni program sjetve Za poljoprivredno gospodarstvo od 2800 ha, 3 tipa tla i mogu ćnosti proizvodnje 11 kultura na 8 tehnoloških cjelina, izrađen je model linearnog programiranja kojim se želi maksimizirati dobit u uvjetima ograni čeno raspoloživih agrotehničkih sredstava (Kalpić i Budin, 1978). Veličina modela bila je oko 600 ograničenja i 800 strukturnih varijabli. Tehnički je neprikladno na jednoj cjelini uzgajati više različitih kultura. Zbog toga su uvedene binarne varijable δij = 0, 1; gdje i predstavlja tehnološku cjelinu, a j poljoprivrednu kulturu. Vrijednost 0 ukazuje da se kultura ne sadi, a 1 da se sadi. U tom modelu važno je bilo uo čiti da se radi o tzv. grupnim varijablama za koje vrijedi:
72
Operacijska istraživanja
Σ δij = 1 ; za svaki i j
Tim je uvjetom izrečena tvrdnja da se na svakoj tehnološkoj cjelini uzgaja jedna i samo jedna kultura. Kod takvog donošenja ekskluzivnih odluka konvergencija je brža jer je bitno smanjen broj kombinacija.
2.4. Separabilno programiranje Nelinearne funkcije cilja ili ograni čenja, ako se mogu linearizirati po odsje čcima, mogu se ugraditi u matematički model sličan linearnom programu. Postoje slu čajevi kad se uz tako linearizirane funkcije cilja problem može riješiti linearnim programiranjem. Kod maksimizacije prva derivacija funkcije cilja mora biti monotono padajuća, odnosno funkcija cilja mora biti konkavna. Suprotan je slu čaj kod minimizacije kad funkcija cilja mora biti konveksna, odnosno prva derivacija mora monotono rasti. Navedene situacije javljaju se u praksi kod degresivne dobiti i progresivnih troškova. Ako je slučaj obratan ili ako funkcije cilja nisu niti konkavne ni konveksne, nužna je modifikacija simpleksnog postupka tako da omogući separabilno programiranje.
Slika 2-11 Separabilna funkcija Nelinearna funkcija prema slici 2-11 linearizira se po odsje čcima duljina g1, g2,..,gn. Nezavisna varijabla x prikazuje se kao suma varijabli yi po odsječcima:
Uvod
n x = Σ y i i=1
; 0
≤ y i ≤
73
g i
Separabilna funkcija f (x) prikazuje se linearizirana po odsje čcima pomoću pravaca nagiba Si približno kao f (x )
≈
n f y i 0 + Σ S i i=1
Da bi se osiguralo kontinuirano kretanje duž separabilne funkcije, skup posebnih varijabli yi ;i=1,..n, mora biti uređen, tj. redoslijed tih varijabli ozna čuje kretanje po osi x. Uvjet kontinuiteta ima oblik Mora biti istinit izraz: (y i = g i)
∨
(y i+1 = 0) ; i=1,..,n-1
Drugim riječima, posebna varijabla smije biti razli čita od nule samo ako je prethodna posebna varijabla na svojoj gornjoj granici. Ti uvjeti mogu se opisati uz korištenje binarnih varijabli: y 1 ≤ g 1 y i ≥ g iδi y i+1 ≤ g i+1δi δi = 0, 1 i=1,..n-1
Umjesto korištenja binarnih varijabli, moguće je modificirati simpleksni postupak. Prilikom izbora ulazne nebazi čne varijable provjerava se je li ona iz skupa posebnih varijabli. Ako jest, provjerava se je li prethodna posebna varijabla na gornjoj, a sljedeća na donjoj granici. To je nužan uvjet da posebna varijabla može postati bazičnom. Kod separabilnog programiranja uz multimodalne funkcije nema garancije da će se dobiti globalni optimum. Pomoć u traženju globalnog optimuma predstavlja postupak koji formira početno bazično rješenje tako da nezavisne varijable separabilnih funkcija imaju maksimalne vrijednosti. Primjer gdje je takav postupak nužan javlja se u planiranju proizvodnje kad vremena po četnog podešavanja strojeva za izradu odre đenog artikla nisu zanemariva. Ovisnost koli čine proizvoda o vremenu za takav slučaj prikazana je na slici 2-12
Slika 2-12 Produktivnost stroja koji se mora podešavati
74
Operacijska istraživanja
Ukoliko optimizacija krene od vrijednosti 0 za posebne varijable, ta to čka odmah zadovoljava uvjete optimalnosti jer pove ćanje u okolini točke ne pridonosi poboljšanju funkcije cilja i tako se dobiva potpuno neupotrebivo rješenje. Kretanjem s gornjih granica početno je rješenje najčešće superoptimalno, a kad kroz iteracije postane moguće, to je i globalni optimum.
Uvod
75
76
Operacijska istraživanja
3. VIŠEKRITERIJSKO PROGRAMIRANJE U procesu odlučivanja često nije moguće definirati samo jednu funkciju cilja. Kriterija koje traženo rješenje treba zadovoljavati obi čno ima više. Kod izbora automobila, na primjer, bilo pri kupovini ili proizvodnji, želimo ostvariti što ve ću udobnost, brzinu i ubrzanje uz najmanju cijenu i utrošak goriva. Problem prehrane traži zadovoljenje dnevnih potreba organizma uz najmanje troškove i minimalnu konzumiranu količinu štetnih tvari. Kod planiranja proizvodnje želi se posti ći maksimalni doprinos za pokriće (kontribucija), tj. razlika između prihoda i direktnih troškova, ali cilj može biti i zadovoljenje potreba tržišta u što kra ćem roku. Izbor konačnog rješenja tada predstavlja kompromis izme đu nekoliko zahtjeva, često suprotnih. Od donosioca odluke zahtijeva se da procijeni prihvatljivost ponuđenog rješenja i eventualno usmjeri proces optimizacije prema boljemu. Metoda višekriterijskog programiranja ima mnogo, od kojih svaka ima neke prednosti, ali i nedostatke. Ovdje će biti spomenute najpoznatije i naj češće korištene metode.
3.1. Podjela metoda višekriterijskog programiranja Višekriterijsko programiranje može se podijeliti u dvije osnovne kategorije: 1. Metode optimalnog izbora (Multiple Attribute Decision Making Methods) koriste se u slučaju da treba izabrati najbolju mogu ćnost između ograničenog broja prethodno definiranih mogu ćnosti. Svaka će mogućnost biti opisana s nekoliko atributa, koji mogu biti kvalitativni i kvantitativni. Kao optimalno rješenje odabire se mogućnost čiji su atributi po nekim kriterijima bolji od atributa ostalih mogućnosti. Te će se metode koristiti, na primjer, pri kupovini elektroni čkog računala kad treba izabrati najpovoljniju izme đu nekoliko ponuda raznih proizvođača, pri odabiranju poslovnih partnera i sli čno. 2. Metode optimizacije s više funkcija cilja (Multiple Objective Decision Making Methods) nisu povezane s izborom iz skupa prethodno definiranih rješenja. Problemi kojima se te metode bave sastoje se od određenog broja funkcija cilja koje treba maksimizirati ili minimizirati i skupa ograničenja koja se postavljaju na varijable modela. Takvi problemi imaju beskona čno mnogo rješenja. Kao primjer za tu grupu metoda može se navesti problem smjese, prehrane, ili oblikovanja novog proizvoda. Svaka metoda višekriterijskog programiranja zahtijeva prisutnost čovjeka koji postavlja zahtjeve, usmjerava proces optimizacije i na kraju prihva ća ili odbija ponuđeno rješenje. Za tu osobu, ili više njih, uobi čajeni je naziv donosilac odluke. Dalja podjela obiju grupa uslijedit će prema učešću donosioca odluke u procesu optimizacije.
Višekriterijsko programiranje
77
Metode optimizacije s više funkcija cilja dijele se prema zahtjevima koji se postavljaju na donosioca odluke da usmjeri proces prema zadovoljavajućem rješenju, te prema tipu informacija koje treba dati u proces i prema trenutku u kojem su te informacije potrebne. Tako postoje metode koje ne zahtijevaju od donosioca odluke da se izjasni o preferencijama na funkciju cilja, odnosno metode kod kojih se preferencije zadaju prije procesa optimizacije, u toku njega, ili nakon njega. Metode optimalnog izbora dijele se prema tome daje li donosilac odluke informaciju o svojim zahtjevima na atribute modela, ili se izjašnjava o preferenciji neke mogućnosti, ili ne daje nikakvu informaciju.
3.2. Metode optimizacije s više funkcija cilja 3.2.1. Osnovni pojmovi i definicije Problem optimizacije s više funkcija cilja matemati čki se može prikazati kao max Š f ), f ), ..., f ) ] 1(x 2(x k(x
gdje su f i(x), i=1,...,k funkcije cilja, uz ograničenja g ) j(x
≤
m 0, j=1,...,
x jest n-dimenzionalan vektor. U vektorskoj notaciji to se kra će može napisati kao max f (x )
uz ograničenja g (x )
≤
0
(1)
Simbol ≤ u vektorskoj notaciji možemo definirati ovako: a ≤ b ako i samo ako je ai ≤ b i za svaki i Sve vrijednosti x za koje je zadovoljena nejednadžba (1) tvore skup mogućih rješenja X: X = š x │ g (x )
≤
0 ć
Sve vrijednosti f (x) uz zadovoljenje nejednadžbe (1) tvore skup funkcionalnih rješenja S: S = š f (x ) │ x ε X ć
Rješavanjem k problema max f ), j=1,...,k j(x
uz ograničenja g (x )
≤
0
dobijemo k optimalnih rješenja
78
Operacijska istraživanja * x j , j=1,...,k
Ako postoji rješenje y takvo da je * x j = y , j=1,...,k
tada kažemo da problem ima savršeno rješenje. Savršeno će se rješenje rijetko postići zbog najčešće konfliktnih zahtjeva na funkciju cilja. Efikasno rješenje takvo je rješenje kod kojeg nije moguće postići poboljšanje niti jedne funkcije cilja bez istovremenog pogoršanja barem jedne od preostalih funkcija cilja. Drugim riječima, ne postoji niti jedno rješenje koje je po jednom kriteriju bolje, a da po ostalima nije lošije od njega. Za efikasno rješenje nalazimo još i sljede će nazive: nedominirano, neinferiorno ili paretovski optimalno rješenje. Efikasno rješenje koje donosilac odluke prema nekim vlastitim mjerilima prihvati kao konačno naziva se najbolje rješenje. Zadovoljavajuće rješenje ne mora biti ujedno i efikasno, ali ga donosilac odluke prihvaća u nemogućnosti da svojim znanjem, sposobnostima, ili metodom koju koristi dođe do boljega. Za ilustraciju navedenih pojmova može poslužiti sljedeći primjer. Potrebno je maksimizirati dvije funkcije cilja max f 1 = x 1 + x 2 x x max f = 2 2 1
uz ograničenja x 1 ≤ 3 x 2 ≤ 3 x 1,x 2 ≥ 0
Skup dozvoljenih rješenja X i funkcije cilja u svojim optimumima prikazani su na slici 3-1 Skup dozvoljenih rješenja nalazi se unutar konveksnog skupa ABCD, dok se skup efikasnih rješenja nalazi na dužini BC. Na slici 3-2 prikazana je ovisnost među iznosima rješenja za funkcije cilja. Konveksni skup ABCD tu predstavlja skup funkcionalnih vrijednosti. Donosilac odluke može sada izabrati najbolje rješenje iz skupa efikasnih rješenja, tj. sa spojnice optimalnih rješenja BC.
Slika 3-1 Skup mogućih rješenja
Višekriterijsko programiranje
79
Slika 3-2 Skup funkcionalnih rješenja Općenito postoje dva pristupa u rješavanju linearnog problema optimizacije s više funkcija cilja. Prvi pristup sastoji se u optimizaciji jedne funkcije cilja dok se na ostale dodaju ograni čenja koja predstavljaju ciljeve koji se u procesu moraju postići. Takav pristup naziva se ciljno programiranje i može se formulirati kao
80
Operacijska istraživanja
Višekriterijsko programiranje
81
max f ) i(x
uz uvjete g (x ) f ) j(x
≤ ≥
0 aj ,
j=1,...,k ,
j
≠
i
a j jest cilj koji želimo postići za funkciju cilja j. Drugi pristup, ekvivalentan traženju efikasnog rješenja, uključuje optimizaciju nove funkcije cilja k max Σ w ) if i(x i=1
uz uvjete g (x )
≤
0
wi jesu težine ili ponderi koji se obično normaliziraju tako da je k Σ w i = 1 , i=1
w i > 0
Naravno, kod složenijih modela nije moguće unaprijed odrediti ciljeve odnosno težine, tako da oba postupka, u jednostavnu obliku u kojem su prikazana ovdje, nisu prikladna za rješavanje problema iz prakse. To, naravno, ne znači da se njihovom doradom ne mogu dobiti efikasni i vrlo upotrebljivi algoritmi.
3.2.2. Metode kod kojih se ne naglašava preferencije na funkcije cilja Pri korištenju tih metoda nije potrebno davati nikakve subjektivne informacije: dovoljno je definirati funkciju cilja i postaviti ograni čenja. Donosilac odluke mora samo prihvatiti ili odbaciti dobiveno rješenje. Prednost te grupe metoda jest u jednostavnu korištenju i minimalnoj količini podataka koje treba zadati. Tu ne treba zadavati preferencije, što bitno olakšava posao, ali kao posljedica proizlazi rješenje na koje se ne može utjecati i kao takvo ne mora biti prihvatljivo.
3.2.2.1. Metoda globalnog kriterija Osnovna ideja metode vidljiva je već iz naziva: sastoji se u optimizaciji nekog globalnog kriterija, npr. minimizaciji sume kvadrata udaljenosti od idealnih rješenja za pojedine funkcije cilja. Metoda se sastoji od dva osnovna dijela:
82
Operacijska istraživanja istraživanja
a) Riješi se k problema max f ), ), j=1,...,k =1,...,k j(x
uz ograničenja g ) i(x
≤
m m 0, i=1,...,
i dobije k idealnih rješenja * f =1,...,k j(x ), j=1,...,k
b) Ako je f j(x*) ≠ 0, j=1,..., j=1,...,k k riješi se problem min
k Σ i=1
┌ │ │ │ └
* f ) i(x ) - f i(x
────── ────── ──*────── ───── f i(x )
┐ p │ │ │ ┘
uz ograničenja g ) i(x
≤
m m 0, i=1,...,
Rješenje općenito ovisi o parametru p pa nije jednostavno odlu čiti se za konkretnu vrijednost. Za p=1 i f (x) i g(x) linearne funkcije, radi se o problemu linearnog programiranja, programiranja, koji se može riješiti npr. simpleksnim postupkom.
3.2.3. Metode kod kojih se informacije o preferencijama daju prije rješavanja problema Donosilac odluke, odlučivši se za jednu od ovih metoda, dužan je saopćiti svoje preferencije prije nego zapo čne s rješavanjem problema, problem a, a nakon formiranja modela. Informacije mogu biti kardinalne ili mješovite (kardinalne i ordinalne). Kod zadavanja kardinalnih informacija preferencije preferencije će biti definirane nekim broj čanim iznosom, dok će se u slučaju ordinalnih informacija funkcije cilja zadavati redom prema značenju.
3.2.3.1. Metode funkcije korisnosti Kod svih metoda iz te grupe problem višekriterijskog optimiranja definira se kao max u(f 1,f 2,..,f ,..,f k) = u(f ) uz ) g i(x
≤
0, i=1,..., m m
Funkcija u(f ) naziva se funkcijom korisnosti (engl. utility function). function). Ako se u(f ) korektno postavi, metoda daje najprihvatljivije najprihvatlji vije rješenje. rješenje . Naravno, funkciju nije lako odrediti i u tome je osnovna poteško ća kod primjene. u(f ) obično se može rastaviti na sumande pa u tom slučaju pišemo
Višekriterijsko programiranje
uz
83
k u = Σ u max u = j(f j) j=1 g ) i(x
≤
m m 0, i=1,...,
Poseban oblik funkcije korisnosti jest korištenje težina ili pondera: k max Σ w ) , if i(x i=1
w i > 0
Iako i ovdje postoje teškoće oko zadavanja težina, taj se oblik češće koristi zbog svoje ćnosti rješavanja linearnim jednostavnosti i, prije svega, zbog mogu programiranjem.
3.2.3.2. Metode ograničavanja funkcija cilja Kod tih metoda donosilac odluke postavlja minimalne prihvatljive iznose na pojedine funkcije cilja kao što je već prije bilo opisano i pristupa optimizaciji jedne od njih. max f ) r(x g ) i(x
≤
0,
m m i=1,...,
) f j(x
≥
lj ,
j=1,...,k =1,...,k ,
j
≠
r
Moguće je zadati i najveći dozvoljeni iznos, pa tako gornjim nejednadžbama dodajemo još i f ) j(x
≤
hj ,
j=1,...,k =1,...,k ,
j
≠
r
Poteškoću kod korištenja te metode predstavlja zadavanje korektnih iznosa koje funkcije cilja moraju posti ći. Nedostatak Nedostata k informacija o ponašanju modela u trenutku zadavanja lako može odvesti k nemogu ćem rješenju, a odabiranje jedne od funkcija cilja za optimizaciju zapravo je degradiranje višekriterijalnosti. višekriterijalnosti.
3.2.3.3. Leksikografska metoda Leksikografska metoda predstavnik je postupaka kod kojih se zadaju ordinalne informacije. Tu je potrebno funkcije cilja svrstati po važnosti. Proces optimizacije teče na sljedeći način, pod uvjetom da indeks funkcije cilja ima zna čenje njenog ranga po važnosti:
84
Operacijska istraživanja istraživanja
1. Riješi se uz
max f ) 1(x g ) i(x
≤
0,
i=1,..., m m
2. Postavlja se j se j=2 =2 3. Riješi se uz
max f ) j(x ) g i(x
≤
0,
m m i=1,...,
* f ) = f k(x k,
k=1,...,j-1
Ako je rješenje jedinstveno, tj. vrijednosti svih funkcija cilja ostale su iste kao u prethodnom koraku, ili je to posljednja funkcija cilja, postupak je gotov. Ina če, postavlja se j se j:= := j+1 j+1 i postupak nastavlja od 3. Nedostatak tog postupka jest zanemarivanje ostalih funkcija cilja odmah nakon postizanja jedinstvenog rješenja. Metodu je moguće poboljšati tako da se kod optimizacije sljede ćih funkcija cilja dozvoljava promjena iznosa prethodnih za odre đeni iznos d. U j-tom j-tom koraku sada imamo max f ) j(x g ) i(x
≤
0,
f ) k(x
≥
* f k - d k,
i=1,..., m m k=1,...,j-1
3.2.3.4. Ciljno programiranje Ideja ciljnog programiranja jest u postavljanju vrijednosti koje pojedine funkcije cilja moraju posti ći. Sad se problem višekriterijskog programiranja svodi na minimizaciju odstupanja od zadanih ciljeva. ┌ ┐ 1/ k p p + p │(d │ p ≥ 1 min Σ j + d j) j=1 └ ┘ g m m ) ≤ 0, i=1,..., i(x + j=1,...,k =1,...,k f ) + d j = b j, j(x j - d + d j=1,...,k =1,...,k j, d j ≥ 0, + b j označava cilj koji mora postići funkcija cilja f j(x). d j označava podbačaj, a d j prebačaj u odnosu na b j.
Višekriterijsko programiranje
85
3.2.3.5. Interaktivne metode Sljedeća, vjerojatno najvažnija grupa metoda višekriterijskog programiranja, gdje donosilac odluke u toku optimizacije progresivno utječe na usmjeravanje procesa, naziva se interaktivnim metodama metodama.. U posljednje vrijeme naro čito se radi baš na tim metodama jer je prevladalo mišljenje da se do kompromisnog rješenja kod međusobno konfliktnih konfliktn ih kriterija najlakše dolazi upravo dijalogom izme đu donosioca odluke i računala. U svakoj iteraciji donosilac odluke može sagledati dobiveno rješenje i reagirati daju ći dodatne informacije o svojim preferencijama. Tu se podrazumijeva podrazumijeva da donosilac odluke ne može unaprijed utvrditi ciljeve optimizacije zbog složenosti problema, ali može tokom rada zaklju čiti odgovara li mu neko rješenje ili ne, i koju bi vrijednost funkcije cilja u danom trenutku trebalo promijeniti. Osim što se efikasno utječe na konačni rezultat, tako se i najlakše spoznaje ponašanje modela. Postupak optimizacije ujedno predstavlja i proces učenja, što je naro čito značajno kod složenijih modela čije se ponašanje ne može unaprijed sagledati. Naravno, te metode zahtijevaju i mnogo više truda od čovjeka koji ih primjenjuje nego što je to bilo u slučaju s prije navedenima.
3.2.3.5.1. Metoda zadovoljavajućih ciljeva To je interaktivna modifikacija metode ograni čavanja funkcije cilja. Donosilac odluke definira prihvatljive ciljeve za svaku pojedinu funkciju cilja, pristupa optimizaciji i identificira iznos funkcije cilja koji je najmanje zadovoljavaju ći. Ograničenje na tu funkciju cilja pomiče se u željenom smjeru i ponovo se pristupa pristupa optimizaciji, sve do zadovoljavaju ćeg rješenja.
3.2.3.5.2. Metoda STEM Metoda STEM (STEp Method) jedan je od najpoznatijih i naj češće korištenih postupaka višekriterijskog programiranja. programiranja. Poslije izračunavanja idealnih rješenja za svaku pojedinu funkciju cilja, traži se moguće rješenje najbliže idealnom. Ako su neka rješenja zadovoljavajuća, a druga nisu, potrebno je dozvoliti umanjenje zadovoljavajućeg rješenja u korist onog koje to nije. Postupak je sljedeći: 1. Riješi se k problema uz
max f ), ), j(x g (x )
≤
j=1,...,k =1,...,k
0
i dobije k idealnih rješenja * f =1,...,k j, j=1,...,k
Pamti se matrica svih rješenja
86
Operacijska istraživanja istraživanja
f 1
f 1 f 2 ... ... f j ... ... f k
f 2
...
f j
...
f k
┌──────────────────────────────┐ * │ │ f ... f f 1j 1j ... f 1k 1k 1 12 12 │ * │ f │ f ... f 22 22 2 2j 2j ... f 2k 2k │ ... ... ... ... ... ... │ ... ... ... * ... ... ... f │ f ... f ... f │ j1 j2 j jk │ ... ... ... ... ... ... │ ... ... ... ... ... ... * │ f f │ f ... ... f k2 k2 kj kj k k1 k1 └──────────────────────────────┘
│ │ │ │ │
gdje f ijij predstavlja vrijednost funkcije cilja f j kad se optimiralo funkciju f i. Na glavnoj su dijagonali optimalne vrijednosti pojedinih funkcija cilja. Postavlja se n = 1. 2. Računa se moguće rješenje najbliže idealnom: min d
uz
* ) ) d ≥ ( f j - f j(x
w j
j=1,...,k =1,...,k
x ε Xn d ≥ 0
Skup mogućih rješenja Xn ograničen je početnim ograničenjima i ograni čenjima dodanima u prethodnih n-1 ciklusa. Težine w j računaju se prema (Marti ć, 1978): aj ───── w j = Σ ai i
gdje su * min f j - f j
aj = ──────────── * f j
1
* min f - f j j
aj = ──────────── min f j
─────────── ┌ n ┐½ 2 │ Σ (c │ ji ji) └ i=1 ┘
* ako je f j > 0
1
─────────── ┌ n ┐ ½ 2 │ Σ (c ji ji) │ └ i=1 ┘
* ako je f j ≤ 0
f jest najmanji član u stupcu j tablice funkcijskih vrijednosti. Prvi član izraza osigurava da najveću težinu dobije funkcija koja se najviše mijenja. Drugi član izraza normira a j koeficijentima c ji iz funkcije cilja
min j
n f j = Σ c ji jix i i=1
Višekriterijsko programiranje
87
3. Donosilac odluke sagledava kompromisno rješenje xn i uspoređuje vrijednosti funkcija cilja s idealnima. U slučaju da su neka rješenja zadovoljavajuća, a druga nisu, daje prihvatljivu promjenu r j funkcije cilja f j. Skup mogućih rješenja u koraku n+1 izgleda ovako: ) Xn+1 = š x │ x ε Xn, f j(x f ) i(x
≥
≥
n f j(x ) - r j,
n f i(x ) ć
i=1,...,k ;
i
≠
j
Postavlja se n := n + 1 te slijedi prijelaz na točku 2. Osnovna poteškoća je određivanje prihvatljive promjene r j. Da bi se predvidio utjecaj promjene na ostale varijable, moguće je provesti analizu osjetljivosti. Informacija o ponašanju modela u okolini rješenja može uvelike olakšati taj zadatak. Moguća je modifikacija metode, ugra đena u (Kalpić i Mornar, 1985), kod koje se u koraku 2. inicijalne težine ra čunaju kao ej
w j = ───── k Σ ei i=1
gdje je
max o j
ej = ─────── * │ f j │
1
─────────────── ┌ n ┐½ 2 │ Σ c │ ji └ i=1 ┘
c ji, i=1,...,n jesu koeficijenti iz funkcije cilja f j, a omax j najveće odstupanje od optimuma za funkciju cilja f j: max * o = maxi │ f j j - f ij │
U koraku 3. traži se uz
min d * d ≥ │ f j - f j │ w j, g (x ) ≤ 0
j=1,...,k
Ako rješenje zadovoljava, postupak se završava. Ako ne, donosilac odluke interaktivno mijenja težine w j, j=1,...,k i postupak se nastavlja od točke 3.
88
Operacijska istraživanja
3.2.4. Metode kod kojih se informacije o preferencijama daju naknadno Ta grupa metoda određuje podskup efikasnih rješenja i predo čava ga donosiocu odluke koji na temelju nekih svojih naknadno zadanih preferencija iz toga podskupa izabire najbolje rješenje. Me đutim, podskup efikasnih rješenja obi čno je vrlo velik pa je izdvajanje najboljeg među njima često gotovo nemoguć posao, tako da se te metode obično ugrađuju u neki od interaktivnih postupaka. Jedan od postupaka koji generiraju podskup skupa efikasnog rješenja jest i variranje težina.
3.2.4.1. Variranje težina Rješavanjem problema k max Σ w ) jf j(x j=1
na nekom skupu dozvoljenih rješenja X, uz težinske koeficijente w j koji predstavljaju relativnu važnost funkcija cilja, a koji su obično normalizirani tako da je k Σ w j = 1 , j=1
w j > 0
dobit će se efikasno rješenje. Sistematskim variranjem težina w može je generirati podskup skupa svih efikasnih rješenja. Međutim, očito je da je za veći broj funkcija cilja ili malu promjenu težine, broj rješenja velik, što će značiti dugo vrijeme proračuna.
3.3. Metode optimalnog izbora 3.3.1. Osnovni pojmovi Kao što je već spomenuto, problemi koji se rješavaju metodama optimalnog izbora sastoje se od nekoliko mogućnosti između kojih treba pronaći najprikladniju. Svaka mogućnost opisana je skupom atributa. Atributi mogu biti kvalitativni ili kvantitativni. Problem je najlakše opisati matricom odluke X dimenzija mxn, pri čemu je m broj mogućnosti, a n broj atributa. Element xij matrice predstavlja vrijednost atributa j mogućnosti i. Tako će redak matrice predstavljati sve atribute jedne mogu ćnosti, dok će stupac matrice prikazivati vrijednosti jednog atributa kod svih mogućnosti. Moguće je definirati, ali rijetko i postići, idealno rješenje * * * * o = ( x 1, x 2, ... , x n ) , gdje je * x m j = max x ij , i=1,...,
i
Višekriterijsko programiranje
89
3.3.2. Transformacija atributa Jednu od poteškoća u primjeni metoda optimalnog izbora predstavlja činjenica da ne moraju svi atributi uvijek biti kvantitativni, dakle zadani konkretnim numeričkim vrijednostima. Manevarske sposobnosti broda ili znanje stranog jezika kandidata na natječaju često se prikazuju atributima kao što su "dobro", "osrednje" ili "slabo". Obično će se takvi atributi transformirati u neke numeričke vrijednosti. Sljedeći je problem nesumjerljivost jedinica u kojima su zadani pojedini kvantitativni atributi. Brzina automobila zadaje se u kilometrima na sat, potrošnja goriva u broju litara na sto prijeđenih kilometara, cijena u novčanim jedinicama. Da bi se osiguralo objektivno vrednovanje, potrebno je provesti skaliranje, odnosno normalizaciju vrijednosti. Jedan od na čina jest vektorska normalizacija, gdje se svaki stupac matrice odluke dijeli sa svojom normom x ij
y ij = ──────── ┌ m 2 ┐½ │ Σ x ij │ └ i=1 ┘
Drugi je od mogućih načina linearna transformacija ─ svaki stupac matrice odluke dijeli se s najvećom vrijednosti iz toga stupca: x ij
y ij = ────── * x j
(1)
gdje je * x ij j = max x
i
Vidi se da su sada sve vrijednosti u matrici odluke svedene na interval Š0,1], što omogućava uspoređivanje dvaju različitih atributa. Međutim, kako postoje pozitivni atributi čija prihvatljivost raste s porastom iznosa i negativni atributi čija prihvatljivost s porastom iznosa opada, potrebno je negativne atribute transformirati druga čije. Moguće je, na primjer, uvrštavanje recipro čnih vrijednosti u izraz (1): 1 / x ij
y ij = ──────────────── max ( 1 / x ij ) i
što je zapravo min x ij i
y ij = ──────── x ij
90
Operacijska istraživanja
Sad vrijednosti u matrici odluka za sve atribute rastu s njihovom prihvatljivoš ću prema vrijednosti 1. Jedna modifikacija tog postupka omogućava da najlošiji iznos atributa poprimi vrijednost 0. Za pozitivne atribute izraz sad ima oblik min x ij - x j
y ij = ─────────── * min x j - x j
dok za negativne atribute vrijedi * x j - x ij
y ij = ─────────── * min x j - x j
xmin j jest najmanja vrijednost u j-tom stupcu matrice odluke.
3.3.3. Metode kod kojih se ne naglašavaju preferencije 3.3.3.1. Metoda dominacije Ako jedna mogu ćnost u jednom ili više atributa premašuje drugu, a po ostalima nije slabija od nje, kažemo da je dominiraju ća. Dominirana mogućnost može se eliminirati iz matrice odluke. Uspore đivanjem mogućnosti dolazi se do skupa efikasnih rješenja koji obi čno ima više elemenata, pa se ta metoda pretežno koristi samo za početno reduciranje broja mogu ćnosti izbacivanjem očito loših rješenja.
3.3.3.2. Maksimin Metoda služi za izbor mogu ćnosti s najboljom vrijednosti globalno najlošijeg atributa. Potreba za tom metodom može se ilustrirati činjenicom da će, na primjer, elektronički sklop raditi samo dok mu ne otkaže najlošiji element. Za svaku mogućnost pronaći će se najlošiji atribut i izabrat će se mogućnost sa najboljim iznosom najslabijeg atributa, dakle * o = š x i │ max min x ij ć
i
j
Važno je primijetiti da sve vrijednosti moraju biti normalizirane jer se uspore đuju različiti, međusobno nesumjerljivi atributi. Ozbiljan je nedostatak što metoda koristi samo dio informacija o svim mogućnostima. Jasno je da će mogućnost s očito izvrsnim atributima i jednom slabom stranom biti prevladana nekom prosječnom. Primjena će dakle biti vrlo ograni čena.
Višekriterijsko programiranje
91
3.3.3.3. Maksiimaks Za svaku mogućnost pronalazi se najbolji atribut, i kao najbolja, izabire se mogućnost s najvećom vrijednosti najboljeg atributa: * o = š x ij ć i │ max max x
i
j
Primjedbe koje vrijede za prethodnu metodu, mogu se izre ći i za ovu. Kako tu mogućnost s mnogo slabih i jednim izrazito dobrim atributom potiskuje mogućnosti s ujednačeno dobrim atributima, tako će se i ta metoda koristiti samo u specifičnim slučajevima.
3.3.4. Metode kod kojih se naglašavaju preferencije na atribute 3.3.4.1. Leksikografska metoda Atributi se rangiraju prema važnosti i promatra se najvažniji atribut. Ako postoji mogućnost koja je po tom atributu bolja od ostalih, ona se izabire kao rješenje. Ako ne, što znači da više mogućnosti ima jednaku vrijednost atributa, promatra se sljedeći atribut. Iako ovaj postupak ne zahtijeva transformaciju atributa, ne koristi se mnogo iz sličnih razloga kao i maksimaks.
3.3.4.2. Aditivna metoda Svakom atributu pridjeljuje se težina w j. Težine su obično normalizirane tako da je n Σ w j = 1 j=1
Najbolja mogućnost računa se kao o = š x i │ max *
i
n Σ w jx ij ć j=1
Matrica odluke mora biti normalizirana. Kako je metoda vrlo jednostavna za primjenu, vrlo se često koristi. Poteškoću u primjeni predstavlja samo pravilno postavljanje vektora težina w.
3.3.4.3. Metoda ELECTRE Metoda ELECTRE jedan je od najpoznatijih i često korištenih postupaka. Sam je algoritam prilično složen i sastoji se od velikog broja koraka, pa će ovdje biti spomenuta samo osnovna ideja. Nakon normalizacije matrice i pridjeljivanja težina atributima, pristupa se eliminaciji nadja čanih mogućnosti. Za razliku od metode
92
Operacijska istraživanja
dominacije, gdje se za eliminaciju neke mogućnosti zahtijeva da bude dominirana po strogoj definiciji dominiranosti, tu će donosilac odluke uspoređivanjem dvije po dvije mogućnosti odlučiti je li jedna od njih slabija od druge i kao takvu je isključiti iz daljeg procesa. Zainteresirani čitalac detalje postupka može prona ći u (Hwang i Yoon, 1981).
3.3.4.4. Metoda TOPSIS Naziv metode kratica je za Technique for Order Preference by Similarity to Ideal Solution, tehnika za svrstavanje po sličnosti s idealnim rješenjem. Kao što je moguće definirati idealno rješenje o*, tako je moguće definirati i negativno idealno rješenje kao o = š x 1, x 2, ..., x n ć
gdje je x j = min x ij
i
xij jesu, kao i prije, elementi matrice odluke. Ova metoda izabire rješenje koje je geometrijski najbliže idealnom, a istovremeno i najdalje od negativnog idealnog rješenja. Međutim, kako nije rijetkost da je neka mogu ćnost bliža i idealnom i negativnom idealnom rješenju nego neka druga mogu ćnost, nije jednostavno opravdati njen izbor. Postupak te če ovako: 1. Normira se matrica odluke X nekim od prije opisanih postupaka da bi se dobila normirana matrica odluke Y 2. Zadaje se dijagonalna matrica težina W:
W =
┌ │ │ │ │ │ └
w 0 .... 0 1 w 0 2 .... 0 .............. .............. 0 0 .... w m
┐ │ │ │ │ │ ┘
i množi s normiranom matricom odluke Y V = Y W
3. Određuje se idealno i negativno idealno rješenje * o m ), j=1,...,n ć = š ( max v ij, i=1,...,
i
i o m ), j=1,...,n ć = š ( min v ij, i=1,...,
i
Višekriterijsko programiranje
93
4. Za svaku mogućnost računa se udaljenost od idealnog rješenja * d i =
┌ n ┐½ * │ i=1,..., o m │ Σ (v )² , j ij └ j=1 ┘
i negativnog idealnog rješenja d i =
┌ n ┐½ │ Σ (v o m )² │ , i=1,..., ij j └ j=1 ┘
5. Računa se relativna udaljenost od idealnog rješenja d i
u i = ─────────── * (d i) i - d
,
i=1,..., m
Vidi se da ui teži prema nuli približavanjem negativnom idealnom rješenju i obratno, približavanjem idealnom rješenju ui teži prema 1. Mogućnosti se sada mogu rangirati prema dobivenoj vrijednosti ui.
3.3.5. Metode kod kojih se zadaju preferencije na mogućnosti 3.3.5.1. Metoda LINMAP Kod primjene metode LINMAP (Linear Programming Technique for Multidimensional Analysis of Preference) m mogućnosti i n atributa predstavlja se kao m točaka u n-dimenzionalnom prostoru. Kada se odredi idealna to čka, uspoređuju se udaljenosti od idealne točke za dvije po dvije mogućnosti i preferira se bliža točka. Sad se definira kvadratna udaljenost si
n * = Σ w j(x ij - x j)² j=1
i skup S svih mogućih parova (k,l), gdje k označava preferiranu mogućnost u odnosu na l. Linearnim programiranjem pronalazi se rješenje (w, x*) kod kojeg je odstupanje od uvjeta za svaki par (k,l) sl ≥ sk minimalno. Za razliku od metode ELECTRE, gdje se zadaju težine atributa da bi se dobili odnosi nadvladavanja među mogućnostima, tu je postupak obratan: za zadane odnose među mogućnostima računaju se težine. Međutim, kada je broj atributa veći od broja mogućnosti, teže je sagledati odnose među mogućnostima, pa se tada više koristi metoda ELECTRE.
94
Operacijska istraživanja
4. GRADIJENTNE METODE NELINEARNOG OPTIMIRANJA 4.1. Optimiranje konkavne nelinearne funkcije bez ograničenja Za optimiranje konkavne nelinearne funkcije od n varijabli f (x) bez postavljenih ograničenja, ukoliko funkcija ima neprekinute prve derivacije, prikladno je upotrebiti Cauchyjevu metodu najstrmijeg rasta (max), odnosno pada (min). Odabere se početna točka P0 s koordinatama x0 iz domene funkcije f (x). U toj se točki izračuna gradijent ∇ f (x0). Najveći porast funkcije cilja dobit će se kretanjem iz P0 u smjeru u0 koji se poklapa sa smjerom gradijenta (za slu čaj minimizacije postupak može biti identičan s razlikom da se maksimizira suprotna funkcija cilja, tj. pomnoži je se s -1). Treba odrediti duljinu kretanja u tom smjeru da bi se stiglo u novu točku x (x 1 = x 0 + σ u 0. Vrijednosti varijabli x1 uvrste se u f (x) te tako f 0 č postane funkcija jedne varijable σ . Deriviranjem po σ i izjedna avanjem + σ u ) 0 derivacije s nulom dobije se jednadžba koja se rješava po σ. Cijeli se postupak u točki x1 ponavlja. Postupak se zaustavlja ako se dobije gradijent jednak 0, ako se premaši unaprijed zadan broj iteracija, ako je poboljšanje funkcije cilja ispod zadane tolerancije ili ako je korak σ ispod tolerancije. Metoda će biti ilustrirana primjerom (McMillan, 1970): 2 2 max f (x 1, x 2) = 7x 1 + 4x 2 + x 1x 2 - x 1 - x 2
Računa se izraz za gradijent: ┌ ┐ │ /∂x │ ∂f 1 │ │ ∇ f (x 1,x 2) = │ │ ∂f /∂x 2 └ ┘ ┌ ┐ │ x │ (-2x + + 7) 1 2 │ = │ │ │ ( x -2x + 4) 1 2 └ ┘ Izabire se početna točka P0. Ako se radi o funkciji koja ima lokalne i globalne ekstreme, o izboru početne točke ovisit će rezultat. Kod funkcija s jednim globalnim ekstremom neprikladan izbor početne točke samo poveća broj iteracija. U P0 izračunava se vrijednost gradijenta. Ako se izabere P0(8, 2): ┌ ┐ ┌ ┐ │ 8 │ │ -7 ││ = │ x V = │ │ ; 0 P │ 2 │ │ 8 │ 0 └ ┘ └ ┘ Zbog numeričkih razloga povoljno je koristiti normirani vektor u0 čija maksimalna komponenta iznosi 1. To se postiže dijeljenjem s tzv. Čebyševljevom duljinom koja
se definira kao apsolutna vrijednost maksimalne komponente: T 0
u =
∇ f (x 0)
────────────── ║ ∇ f (x 0) ║
Gradijentne metode nelinearnog optimiranja
95
Za promatrani primjer imamo da je ┌ ┐ │ -7/8 │ │ u 0 = │ │ 1 │ └ ┘ U novu točku P1 dolazi se kretanjem iz P0 u smjeru u0 za iznos σ0 (vidi sliku 4-1). x 1 = x 0 + σ 0
u 0
Općenito, vrijednost funkcije cilja prilikom kretanja iz to čke (x1, x2) u smjeru T vektora u = Šm n] za iznos σ jest funkcija jedne varijable, varijable σ: σ, x σ+ 4x f m (x +mx +mnσ 21+ m 2+ nσ ) = 7x 1+7 2+4nσ +x 1x 2 2σ +nx 1σ 2 2 2 2 2 2 m σ -x x m 1-2x 1 σ2-2x 2nσ -n σ
Deriviranjem po σ i izjednačavanjem derivacije s nulom dobije se: 2 2 d σ = σ -2x f mx mnσ - m /d 7m +4n+ 2mx 2+nx 1+2 1-2 2n-2n σ = 0
m (n-2 )x (m -2n)x 7m + 4n 1 + 2 +
σ = ─────────────────────────────── 2 m mn+n2) 2( -
uz m=-7/8, n=1, x1=8, x2=2, dobije se σ0 = 2.67. Nova je točka P1 prema tome: ┌ ┐ │8-2.677/8│ │ = x 1 = │ │2+2.671 │ └ ┘
┌ ┐ │5.66│ │ │ │4.67│ └ ┘
Postupak se ponavlja u točki P1. Vrijednost gradijenta ┌ ┐ │ 5.66 │ │ x 1 = │ │ 4.67 │ └ ┘
;
1 V P =
┌ ┐ │ 0.35 │ │ │ │ 0.31 │ └ ┘
;
u 1 =
│
┌ │
1
┐ │
│ │ 0.88 │ └ ┘
Novi je smjer okomit na prethodni. Za kontrolu točnosti postupaka može se testirati relacija u 0 u 1 = 0: (-7/8i + j)
( i + 0.88j) = 0.005
96
Operacijska istraživanja
Rezultat je u skladu s korištenom to čnosti prikazivanja brojeva. Računa se σ1 i pronalazi točka P2. Kao što je već bilo napomenuto, postupak se ponavlja sve dok gradijent ne iščezne, promjena varijabli x padne ispod neke zadane tolerancije, promjena vrijednosti funkcije cilja postane zanemariva ili se premaši neki unaprijed zadan maksimalni broj iteracija.
Slika 4-1 Optimiranje konkavne nelinearne funkcije bez ograničenja
4.2. Optimiranje konkavne nelinearne funkcije uz linearna ograničenja Linearna ograničenja tvore konveksni skup dopuštenih rješenja. Optimum se može nalaziti u unutrašnjosti tog skupa ili na rubu ovisno o svojstvima funkcije cilja i smjeru optimizacije. Obradit će se optimizacija za funkciju 2 varijable.
Gradijentne metode nelinearnog optimiranja
97
4.2.1. Projekcija vektora na pravac Za razmatranje postupka potrebno je podsjetiti se iz vektorske algebre projekcije vektora na pravac što će se koristiti kod kretanja u smjeru projekcije gradijenta na linearno ograničenje. Treba odrediti projekciju G vektora B = r i + sj na pravac ax1 + bx2 = c (vidi sliku 4-2). Jedini čni vektor u smjeru pravca jest Š c /a ,
b ]T - c /
a = ──────────────────────
┌ ┐1/2 │ (c /a)2 + (c /b )2 │ └ ┘
Duljina vektora G dobije se kao skalarni produkt │G │= B a: rc b /a - sc /
│G │ = ──────────────────── ┌ ┐1/2 2 2 │ (c /a) + (c /b ) │ └ ┘
Pojedine komponente jesu /a c
│ ───────────────── G x = │ G 1
- c /b
│ ───────────────── G x = │ G 2
=
┌ ┐ 1/2 │ (c /a)2 + (c /b )2 │ └ ┘
2 - sab rb
─────────── 2 a
2 + b
rab - sa2
= - ─────────── 2 a2 + b ┐ 1/2
┌ │ (c /a)2 + (c /b )2 │ └ ┘
U matričnom obliku vektor G jest ┌ ┐ ┌ ┐ │ b │ │ b │ b aŠr -s]│ a │ Šr -s]│ a │ └ ┘ └ ┘ G = ──────────────────────────────────────── ┌ ┐ │ a │ │ Ša b ]│ │ b │ └ ┘
98
Operacijska istraživanja
Slika 4-2 Projekcija vektora na pravac
4.2.2. Produljenje vektora do pravca Duljina kretanja u smjeru gradijenta u slu čaju optimizacije bez ograni čenja određena je točkom u kojoj se promjena funkcije cilja svede na nulu. Kod optimizacije uz ograničenja može se kretanjem u smjeru gradijenta sti ći do nekog od ograničenja prije nego što poboljšavanje funkcije cilja prestane. Treba provjeriti mogućnost kretanja do svakog od ograničenja da bi se odredila maksimalna dopuštena duljina kretanja, takva da se ne iza đe iz dopuštenog područ ja. U tu je svrhu potreban izraz za određivanje produljenja vektora do nekog pravca. i + nj, pravac ax1 +bx 2= c i točka P(p1, p2). Traži Zadan je jedinični vektor a = m se vektor A = α a koji će imati hvatište u točki P, a vrh na pravcu u točki Q(q1, q2). Vektor B iz ishodišta do točke Q predstavlja sumu vektora P od ishodišta
Gradijentne metode nelinearnog optimiranja
99
do točke P i vektora A . Iz odnosa među projekcijama tih vektora na vektor V okomit na pravac može se odrediti duljina │ A │ (vidi sliku 4-3): (Projekcija B na V )=(Projekcija P na V )+(Projekcija A na V ) (Projekcija A na V )=(Projekcija B na V )-(Projekcija P na V ) α =
(Projekcija B na V )-(Projekcija P na V )
─────────────────────────────────────── (Projekcija a na V )
Duljine projekcija izračunaju se kao skalarni produkti: ┌ ┐ ┌ ┐ │ a │ │ a │ q p Šq Š 1 2]│ b │ 1 p 2]│ b │ └ ┘ └ ┘ α = ──────────────────────────────────────── ┌ ┐ │ a │ Šm n]│ b │ └ ┘
Budući da točka Q leži na pravcu, ┌ ┐ │ a │ c p Š 1 p 2]│ b │ └ ┘ α = ─────────────────────────── ┌ ┐ │ a │ Šm n]│ b │ └ ┘
100
Operacijska istraživanja istraživanja
Slika 4-3 Produljivanje vektora do pravca
4.2.3. Primjer optimizacije konkavne funkcije s ograničenjima uz
2 2 max f (x - x 1, x 2) = 7x 1 + 4x 2 + x 1x 2 - x 1 2
2/3x 1 + x 2 ≤ 8 -5/12x 1 + x 2 ≤ 2 x 2 ≤ 4
Radi se o istoj funkciji cilja kao u slučaju optimizacije bez ograni čenja. Optimizacija će započeti iz iste točke P0(8, 2) koja leži u dopuštenom područ ju. Već je bio izračunat normirani vektor u smjeru gradijenta u to čki P0 (vidi sliku 4-4): u 0 = -7/8i + j
i duljina kretanja u tom smjeru σ = 2.67. Budući da postoji skup ograni čenja, nužno je provjeriti koji je maksimalni dopušteni pomak u smjeru gradijenta. Računaju se duljine vektora u smjeru gradijenta, s hvatištem u P0, a vrhom na svakom od ograničenja.
Gradijentne metode nelinearnog optimiranja
┌ │ 2/3 8 - Š8 2] │ 1 └ α 1 = ─────────────────────── ┌ Š-7/8 1] │ 2/3 │ 1 └
┐ │ │ ┘
=
┐ │ │ ┘
┌ ┐ │-5/12│ 2 - Š8 2] │ 1 │ └ ┘ α 2 = ─────────────────────── = ┌ ┐ Š-7/8 1] │-5/12│ │ 1 │ └ ┘ ┌ ┐ │ 0 │ 4 - Š8 2] │ 1 │ └ ┘ α 3 = ─────────────────────── = ┌ ┐ Š-7/8 1] │ 0 │ │ 1 │ └ ┘
101
1.6
2.44
2.0
Izabire se min Š σ , min ( α i
≥
0)]
i
Negativni αi značio bi da se kretanjem u smjeru gradijenta udaljavamo od ograničenja, pa prema tome ograni čenje neće postati aktivno. Dobilo se da je najbliže prvo ograni čenje pa je zbog toga dopušteni pomak: ┌ ┐ │ m │ = + α │ │ x x 1 0 1 │ n │ └ ┘ ┌ ┐ ┌ ┐ ┌ ┐ │ 8 │ │-7/8│ │ 6.6 │ │ + 1.6 │ │ = │ │ x 1 = │ │ 2 │ │ 1 │ │ 3.6 │ └ ┘ └ ┘ └ ┘ Točka P1 nalazi se na prvom ograničenju. To ograničenje postaje aktivno jer se pojavilo prije optimuma u smjeru u0. Izračunat će se gradijent u to čki P1. Daljnje kretanje bit će u smjeru projekcije u1 na prvo ograničenje. Gradijent u P1 jest ┌ ┐ ┌ ┐ │(-2x │ │ │ x (-2x + +7) -2.6 1 2 │ │ = │ │ V = P 1 │( x │ │ │ x -2x -2 +4) 3.4 1 2 └ ┘│ └ ┘ │P 1
102
Operacijska istraživanja istraživanja
Normirani vektor u 1 = -0.765 i + j Traži se vektor g1 projekcija u1 na pravac prvog ograni čenja 2/3x 2 =8 1 + x ┌ ┐ ┌ ┐ │ 1 │ │ 1 │ 1Š-0.765 -1] │2/3│i - 2/3Š-0.765 -1]│2/3│j └ ┘ └ ┘ g 1 = ────────────────────────────────────────────────── ┌ ┐ │2/3│ Š2/3 1] │ 1 │ └ ┘
ili u normiranom obliku -i + 0.66j Kretanje u smjeru projekcije gradijenta na aktivno ograni čenje ima smisla sve dok se poboljšava vrijednost funkcije cilja g 1 = -0.99i
σ 1 =
+ 0.66j
(0.66+2)6.6 + (-1-2 0.66)3.6 - 7 +4 0.66 ────────────────────────────────────────── = 1.15 2(1+0.66+0.45)
ili dok se ne stigne do nekog od ostalih ograničenja: ┌ ┐ │-5/12│ 2 - Š6.6 3.6] │ 1 │ └ ┘ α 2 = ─────────────────────── = 1.068 ┌ ┐ Š-1 0.66]│-5/12│ │ 1 │ └ ┘ ┌ ┐ │ 0 │ 4 - Š6.6 3.6] │ 1 │ └ ┘ α 3 = ─────────────────────── = 0.606 ┌ ┐ Š-1 0.66]│ 0 │ │ 1 │ └ ┘ Kretanje će se zaustaviti zbog 3. ograničenja. Sljedeća točka jest ┌ ┐ ┌ ┐ ┌ ┐ │6.6│ │ -1 │ │ 6 │ │ + 0.606│ │ = │ │ x 2 = │ │3.6│ │0.66│ │ 4 │ └ ┘ └ ┘ └ ┘ Gradijent u toj to čki: ┌ ┐ ┌ ┐ │(-2x1+ x2+7) │ │ -1 │ │ │ │ │ V = = P 2 │( x1-2x2+4) j │ │ 2 │ └ ┘│ └ ┘ │P 2
Gradijentne metode nelinearnog optimiranja
103
Normirani vektor u 2 = -0.5i + j Traži se projekcija u2 na pravac 3. ograničenja x2 = 4: ┌ ┐ │ 1 │ 1Š-0.5 -1]│ 0 │i + 0j └ ┘ G = ────────────────────────── = -0.5i 2 ┌ ┐ Š0 1]│ 0 │ │ 1 │ └ ┘ Moguće je kretanje dok traje poboljšanje funkcije cilja: (0+1)6 + (-0.5)4 - 3.5 σ 2 = ──────────────────────── = 1 2(0.25) ili, budući da je P2 na sjecištu 1. i 3. ograničenja, provjerava se udaljenost samo do 2. ograničenja:
┌ ┐ │-5/12│ 2 - Š6 4]│ 1 │ └ ┘ α 2 = ─────────────────────── = ┌ ┐ Š-0.5 0]│-5/12│ │ 1 │ └ ┘
2.4
Poboljšanje funkcije cilja prestaje prije negoli se do đe do 2.ograničenja. Točka P3 jest ┌ ┐ ┌ ┐ ┌ ┐ │ 6 │ │-0.5│ │ 5.5 │ │ + 1│ │ = │ │ x 3 = │ │ 4 │ │ 0 │ │ 4 │ └ ┘ └ ┘ └ ┘ Gradijent u toj to čki: ┌ ┐ ┌ ┐ │(-2x │ │ │ x (-2x + +7) 0 1 2 │ │ = │ │ V = P 3 │( x -2x │ │ 1.5 │ 1-2x 2+4) └ ┘│ └ ┘ │P 3
Normirani vektor u 3 = 0i + j Budući da se P3 nalazi na 3. ograničenju, traži se projekcija u3 na pravac 3. ograničenja x2 = 4: ┌ ┐ │ 1 │ 1Š0 -1]│ 0 │i + 0j └ ┘ G = ────────────────────────── = 0i 3 ┌ ┐ Š0 1]│ 0 │ │ 1 │ └ ┘
+ 0j
104
Operacijska istraživanja istraživanja
Smjer gradijenta okomit je na aktivno ograni čenje pa prema tome nije mogu će daljnje poboljšavanje funkcije cilja. To čka P3 jest optimalno rješenje.
Slika 4-4 Optimalizacija nelinearne funkcije s linearnim ograničenjima
Dinamič ko programiranje
105
5. DINAMIČ KO PROGRAMIRANJE U većini problema kojima se bave operacijska istraživanja potrebno je odrediti iznos nekih varijabli, koje možemo nazvati varijablama odluke, tako da se postigne optimalna vrijednost neke funkcije cilja. Uobi čajeno je da algoritmi tretiraju te varijable simultano. Međutim, često se problem može razložiti na komponente i sistematskim povezivanjem međusobnih utjecaja rješenja pojedinih komponenata doći do optimalnog rješenja cijelog problema. Kod metoda dinami čkog programiranja problem se rješava po fazama, te se u proračunu svake faze koriste optimalne vrijednosti dobivene u prethodnoj fazi. Taj je postupak poznat kao Bellmanov princip i njime se dobije slijed optimalnih odluka. Kod dinamičkog programiranja ne može se postaviti striktna matemati čka formulacija. Može se reći da je dinamičko programiranje jedan poseban pristup rješavanju koji se uspješno primjenjuje kod niza problema. Nije jednostavno definirati ni klase problema koji se na taj na čin mogu riješiti, niti tipična područ ja primjene. Dinamičko programiranje uspješno je primijenjeno u gotovo svim segmentima operacijskih istraživanja, od linearnog i cjelobrojnog programiranja, preko analize mreža do problema skladišta. Op ćenito će o inventivnosti i inteligenciji operacijskog istraživa ča ovisiti hoće li prepoznati problem koji se može riješiti dinamičkim programiranjem i hoće li se dosjetiti kako to učiniti. Rekli smo već da je osnovna pretpostavka dinamičkog programiranja uspješna dekompozicija problema na faze. Unutar faze n-1 problem nalazi se u nekom (i-tom) n-1 od mogućih stanja sn-1 i iz kojega nekom ( j-tom) od za to stanje dozvoljenih odluka o ij prelazi u sljedeću fazu n, a time i u stanje snj, što se može ilustrirati slikom 5-1
Slika 5-1 Prijelaz iz faze n-1 u fazu n Stanje u sljede ćoj fazi funkcija je dakle stanja u prethodnoj fazi i odluke koja je tamo donesena, tj. n-1 sjn = g (sin-1, o ij)
106
Operacijska istraživanja
Pretpostavimo da za sva stanja j u nekoj fazi n poznajemo optimalnu vrijednost n* funkcije cilja f j . Pretpostavimo također da poznajemo funkciju h kojom se iz n-1 vrijednosti funkcije cilja u fazi n i odluke o ij kojom se prelazi iz faze n-1 u fazu n može izračunati vrijednost funkcije cilja u fazi n-1: n-1 n* n-1 f = h (f i j , o ij) (n-1)* Optimalna vrijednost f stanja i prethodne faze tada se može izra čunati kao i (n-1)* n* n-1 f = optj h (f i i, j o ij )
Dinamič ko programiranje
107
5.1. Problem najbržeg prijenosa Razmotrimo sljedeći problem: U nekoj je računalskoj mreži potrebno poslati elektroni čku poštu od računala 1 do računala 11. Ne postoji direktna veza između ta dva računala, ali je komunikacija moguća preko ostalih računala u mreži. Poznat je prosje čni intenzitet prometa informacija na svakoj od linija u mreži. Potrebno je odabrati čvorove preko kojih će se obaviti prijenos informacije tako da pošta u najkraćem roku stigne do odredišta. Pretpostavka je da je brzina prijenosa informacije na nekoj liniji obrnuto proporcionalna intenzitetu prometa na toj liniji. Mreža i intenziteti prometa u kbit/s prikazani su na slici 5-2
Slika 5-2 Primjer mreže za rješavanje dinami čkim programiranjem Zbog svojstva da je brzina prijenosa obrnuto proporcionalna intenzitetu prometa u mreži, za najbrži put treba odabrati onaj kod kojeg je suma intenziteta prometa u pojedinim granama najmanja. Problem je dakle jednak problemu najkra ćeg puta ako intenzitete prometa shvatimo kao udaljenosti. Taj se problem, naravno, može riješiti i nekom od metoda za ra čunanje najkraćeg puta kroz mrežu, ali specifična struktura mreže omogućava da se na ilustrativan na čin primijeni tehnika dinamičkog programiranja. U mreži se može dobro uo čiti 5 faza:
108
Operacijska istraživanja
Slika 5-3 Prikaz faza
Dinamič ko programiranje
109
Stanje u nekoj fazi puta odre đeno je čvorom u kojem se u toj fazi nalazimo. Iz toga se stanja prelazi u sljedeću fazu, a time i sljedeće stanje izborom sljedećeg čvora na putu. Odluku da u čvoru i u fazi n-1 kao direktnog nasljednika izaberemo čvor j n-1 nazvat ćemo o ij. U fazi 4 lako je za svaki čvor izračunati najkraći put do odredišta i odrediti čvor koji treba odabrati da bi se krenulo najkra ćim putem. Ako sa i4 označimo čvor u kojem 4* 4* se možemo nalaziti u fazi 4, s f ij optimalnu odluku i najkraći put do odredišta a s o za svaki čvor iz faze 4, možemo pisati: i4
4* 4* │ f │ o i ij ────────┼───────┼──────── │ │ 8 2 11 │ │ 9 3 11 │ │ 10 3 11
110
Operacijska istraživanja
U fazi 3 trebat će malo više računati. Ako se pošta nalazi u ra čunalu 6, tada je, kao sljedeće, moguće odabrati računalo 8, 9 ili 10. Najmanji intenzitet prometa na koji će se naići ako se krene u računalo 8 iznosi 1+2=3. Odluka o nastavku puta kroz računalo 9 donosi intenzitet prometa 5 + 3=8, dok za računalo 10 to iznosi 4+3=7. Optimalno je, dakle, ako se poruka zatekne u računalu 6, nastaviti preko računala 8. Na sličan se način može provesti razmatranje i za ra čunala 5 i 7. Prema tome, ako s pij označimo promet između čvora i i čvora j, funkcija kojom možemo izračunati vrijednost funkcije cilja za sva stanja u fazi 3 u ovisnosti od vrijednosti u fazi 4 i odluke u fazi 3 ima oblik 3 4* f i = p ij + f j
Iz toga slijedi da je optimalna vrijednost za svaki čvor u fazi 3 ova: 3* 4* f p i = minj ( ij + f j)
Tako za svaki čvor u fazi 3 i svaku odluku možemo izra čunati vrijednost funkcije cilja i iz toga odrediti optimalnu vrijednost i optimalnu odluku: ┌────────────────┐ 3 4* │f │ i = p ij + f j ├────────────────┼───────┬────────┐ │ │ │ 3* │ j4 3* │ 8 │ o │ 9 10 │ f i ij ┌───┬────┼────────────────┼───────┼────────┤ │ 3 │ 5 │ 7 6 8 │ 6 │ 9 │ │i │ 6 │ 3 │ 8 7 │ 3 │ 8 │ │ 7 │ 3 │ 6 5 │ 3 │ 8 └───┴────┴────────────────┴───────┴────────┘ U fazi 2 razmatranje je sli čno. Za čvor 2, na primjer, vrijednost funkcije cilja iznosi 7+6=13 ako se odlučimo za čvor 5, 4+3=7 ako je sljedeći čvor 6, odnosno 5+3=8 ako krenemo preko 7. Za čvorove 3 i 4 razmatranje je slično: ┌────────────────┐ 3* 2 │ │f ij + f j i = p ├────────────────┼───────┬────────┐ │ │ │ 2* │ j3 2* │ 5 │ │ o 6 7 │ f i ij ┌───┬────┼────────────────┼───────┼────────┤ │ 2 │ 2 │ 13 │ 7 8 │ 7 │ 6 │i │ 3 │ 10 │ 5 4 │ 4 │ 7 │ │ 4 │ 8 │ 5 11 │ 5 │ 6 └───┴────┴────────────────┴───────┴────────┘ U fazi 1 dolazimo do konačnog rješenja: ┌────────────────┐ 1 2* │f │ i = p ij + f j ├────────────────┼───────┬────────┐ │ │ │ 1* │ j2 1* │ 2 3 4 │ f │ │ o i ij ┌───┬────┼────────────────┼───────┼────────┤ │ i1 │ 1 │ 9 │ 7 9 │ 7 │ 3 └───┴────┴────────────────┴───────┴────────┘
Dinamič ko programiranje
111
Najmanji ukupni intenzitet prometa na koji će naići naša pošta iznosi 7. Iz računala 1 treba krenuti u 3, a dalje put možemo pratiti iz prethodnih tablica: iz 3 treba krenuti u 7, iz 7 u 8, i na kraju iz 8 u 11. Korisno je primijetiti da je taj pristup, osim optimalnog, dao i sva ostala rješenja, pa će, bez dodatnog prora čuna, biti lako odgovoriti na pitanje kojim putem krenuti ako, iz bilo kojeg razloga, računalo 3 prestane biti dostupno. U tom slu čaju imamo dva jednako duga puta. Odlučimo li se za 2 ili 4, u oba slučaja dalje treba ići preko 6, 8 i 9.
5.2. Problem raspodjele investicija Poznato je da se uspješnim i promišljenim ulaganjem u neku djelatnost ostvaruje dobit. U općem slučaju dobit raste s veličinom uloženog kapitala dok ne dođe do zasićenja. Potrebna je kvalitetna ekonomska analiza da bi se odredila zakonitost po kojoj se ravna dobit ovisno o uloženim sredstvima. Primjer kojim ćemo ilustrirati primjenu dinamičkog programiranja u tom podru č ju preuzet je iz (Kaufmann, 1970). Pretpostavimo da raspolažemo kapitalom od 10 nov čanih jedinica koji treba uložiti u neku proizvodnju u 4 područ ja. Ekonomske analize pokazuju koliku bi dobit trebalo u pojedinim podru č jima očekivati uz određeno investiranje sredstava. Za svako pojedino područ je A , B, C i D očekivana dobit u ovisnosti od investicije prikazana je tablicom: ┌─────────────┬────────┬────────┬────────┬────────┐ │ │ Dobit │ Dobit │ Dobit │ Dobit │Investicija │ │ │ │ A B C D ├─────────────┼────────┼────────┼────────┼────────┤ │ 0 │ 0 │ 0 │ 0 │ 0 │ │ │ │ │ 1 0.28 0.25 0.15 0.20 │ │ 0.45 │ 0.41 │ 0.25 │ 0.33 2 │ │ 0.65 │ 0.55 │ 0.40 │ 0.42 3 │ 4 │ 0.78 │ 0.65 │ 0.50 │ 0.48 │ │ 0.90 │ 0.75 │ 0.62 │ 0.53 5 │ │ 1.02 │ 0.80 │ 0.73 │ 0.56 6 │ │ 1.13 │ 0.85 │ 0.82 │ 0.58 7 │ │ 1.23 │ 0.88 │ 0.90 │ 0.60 8 │ │ 1.32 │ 0.90 │ 0.96 │ 0.60 9 │ │ 1.38 │ 0.90 │ 1. │ 0.60 10 └─────────────┴────────┴────────┴────────┴────────┘
Grafički se taj odnos može pokazati slikom 5-4
│ │ │ │ │ │ │ │ │ │ │ │ │
112
Operacijska istraživanja
Slika 5-4 Ovisnost dobiti o investicijama Potrebno je odrediti kako da se raspodijeli 10 nov čanih jedinica na ta 4 podru č ja tako da ukupna dobit bude maksimalna. Ako se ograni čimo samo na cjelobrojne iznose, mogla bi se računati dobit svake od kombinacija: (10,0,0,0); (9,1,0,0); (9,0,1,0); (9,0,0,1); itd.
Dinamič ko programiranje
113
U tom bi slučaju trebalo izvršiti 286 prora čuna. Ako bismo još željeli varirati ukupnu količinu sredstava na 9, 8, 7 itd. jedinica, broj potrebnih proračuna znatno bi narastao. Korisno je zato upotrijebiti metode dinami čkog programiranja. Već je rečeno da je osnovna pretpostavka za korištenje dinami čkog programiranja mogućnost dekompozicije problema na faze. Tako đer je u svakoj od faza potrebno postići optimalno rješenje, koje će se zatim koristiti za proračun optimalnih rješenja u ostalim fazama. Kod tog problema prvo ćemo sredstva investirati u samo jedno područ je, pri čemu je dobit određena podacima iz tablice. Zatim ćemo, u svakoj fazi, uvoditi jedno po jedno dodatno podru č je i računati optimalnu dobit služeći se podacima iz prethodne faze. Ako sa f A (x) označimo dobit kada x jedinica investiramo samo u A , tada je optimalna dobit * f ) = f ) A(x A(x
Označimo s f B(x), f C(x), i f D(x) funkcije koje odre đuju dobit kada se x jedinica investira u B, C ili D. Optimalnu dobit kad n jedinica uložimo u A i B nazvat ćemo * f AB(n). Za npr. n=2 moramo provesti sljede će razmatranje: 2 jedinice mogu se raspodijeliti na A i B tako da se obje investiraju u A , a niti jedna u B. Ukupna je dobit tada f AB (2) = f A(2) + f B(0) = 0.45 + 0 = 0.45
114
Operacijska istraživanja
Potrebno je još izra čunati dobit kad se jedna jedinica investira u A , a druga u B, te dobit kad se obje jedinice investiraju u B. Dobiti su tada f AB (2) = f A(1) + f B(1) = 0.28 + 0.25 = 0.53 f + 0.41 = 0.41 AB (2) = f A(0) + f B(2) = 0
Očito je optimalna investicijska politika da se jednu jedinicu investira u A, a drugu * u B, pri čemu je f AB(2) = 0.53 Općenito se može pisati da je optimalna dobit kad se n jedinica uloži u dva područ ja * (f ) + f )) f AB (n) = max B(x A(n-x x =0,...,n
Kako je * ) = f ) f A(x A(x
možemo pisati i * * f (f ) + f )) AB (n) = max B(x A(n-x =0,...,n x
Za sve investicije n od 0 do 10 optimalna dobit dana je u ovoj tablici: ┌───┬──────┬──────┬──────┬──────────────┐ │ │ │* │* │ Investira se │ │ n │f │ │ f f (n) (n) │ │ (n) u (A ,B) B A AB ├───┼──────┼──────┼──────┼──────────────┤ │ 0 │ 0 │ 0 │ 0 │ │ (0,0) │ 1 │ 0.25 │ 0.28 │ 0.28 │ │ (1,0) │ 2 │ 0.41 │ 0.45 │ 0.53 │ │ (1,1) │ 3 │ 0.55 │ 0.65 │ 0.70 │ │ (2,1) │ 4 │ 0.65 │ 0.78 │ 0.90 │ │ (3,1) │ 5 │ 0.75 │ 0.90 │ 1.06 │ │ (3,2) │ 6 │ 0.80 │ 1.02 │ 1.20 │ │ (3,3) │ 7 │ 0.85 │ 1.13 │ 1.33 │ │ (4,3) │ 8 │ 0.88 │ 1.23 │ 1.45 │ (5,3) │ │ 9 │ 0.90 │ 1.32 │ 1.57 │ (6,3) │ │10 │ 0.90 │ 1.38 │ 1.68 │ │ (7,3) └───┴──────┴──────┴──────┴──────────────┘
Kad uključimo i područ je C, tada se optimalna dobit ako n jedinica investiramo u sva tri područ ja može izračunati kao * * (f f ) + f )) ABC (n) = max C(x AB (n-x x =0,...,n
Dinamič ko programiranje
┌───┬──────┬──────┬────────┬───────────────────┐ │ │ │* │* │ Investira se u │ │ n │f │ f (n) (n) │ │ A B C │ f (n) ( , , ) C AB ABC ├───┼──────┼──────┼────────┬───────────────────┤ │ 0 │ 0 │ 0 │ 0 │ (0,0,0) │ │ 1 │ 0.15 │ 0.28 │ 0.28 │ │ (1,0,0) │ 2 │ 0.25 │ 0.53 │ 0.53 │ │ (1,1,0) │ 3 │ 0.40 │ 0.70 │ 0.70 │ │ (2,1,0) │ 4 │ 0.50 │ 0.90 │ 0.90 │ │ (3,1,0) │ 5 │ 0.62 │ 1.06 │ 1.06 │ (3,2,0) │ │ 6 │ 0.73 │ 1.20 │ 1.21 │ │ (3,2,1) │ 7 │ 0.82 │ 1.33 │ 1.35 │ │ (3,3,1) │ 8 │ 0.90 │ 1.45 │ 1.48 │ │ (4,3,1) │ 9 │ 0.96 │ 1.57 │ 1.60 │(5,3,1) ili (3,3,3)│ │10 │ 1. │ 1.68 │ 1.73 │ │ (4,3,3) └───┴──────┴──────┴────────┴───────────────────┘
Konačno, uključujući i područ je D, optimalna dobit računa se kao * * f (f ) + f )) ABCD(n) = max D(x ABC (n-x =0,...,n x
Konačni rezultati slijede: ┌───┬──────┬────────┬─────────┬───────────────────────┐ │ │ │* │ │ Investira se u │ * │ n │f │ ) │ (A ,B,C ,D ) D(n) │ f ABC(n) │ f ABCD(x ├───┼──────┼────────┬─────────┼───────────────────────┤ │ 0 │ 0 │ 0 │ │ │ 0 (0,0,0,0) │ 1 │ 0.20 │ 0.28 │ 0.28 │ (1,0,0,0) │ │ 2 │ 0.33 │ 0.53 │ 0.53 │ (1,1,0,0) │ │ 3 │ 0.42 │ 0.70 │ 0.73 │ │ (1,1,0,1) │ 4 │ 0.48 │ 0.90 │ 0.90 │(3,1,0,0) ili (2,1,0,1) │ │ 5 │ 0.53 │ 1.06 │ 1.10 │ │ (3,1,0,1) │ 6 │ 0.56 │ 1.21 │ 1.26 │ │ (3,2,0,1) │ 7 │ 0.58 │ 1.35 │ 1.41 │ │ (3,2,1,1) │ 8 │ 0.60 │ 1.48 │ 1.55 │ (3,3,1,1) │ │ 9 │ 0.60 │ 1.60 │ 1.68 │(4,3,1,1) ili (3,3,1,2) │ │10 │ 0.60 │ 1.73 │ 1.81 │ │ (4,3,1,2) └───┴──────┴────────┴─────────┴───────────────────────┘
115
116
Operacijska istraživanja
6. ANALIZA MREŽA 6.1. Osnovni pojmovi iz teorije grafova Graf G(C,L) sastoji se od konačnog skupa čvorova C i skupa grana L koje povezuju čvorove iz C. Skup grana L jest binarna relacija u C, dakle podskup Kartezijeva produkta C x C
Slika 6-1 Graf Graf na slici opisan je skupovima C = š 1, 2, 3, 4, 5, 6ć L = š (1,2), (1,3), (2,1), (2,3), (2,4), (2,5), (3,1), (3,2), (3,4), (3,5), (4,2), (4,3), (4,5), (4,6) (5,2), (5,3), (5,4), (5,6), (6,4), (6,5) ć
Graf se naziva simetričnim ili neorijentiranim ako je L simetrična relacija, dakle ako vrijedi L(a, b )
⇒
L b ε C) (b ,a), (∀a,
Graf je asimetričan ili orijentiran ako je L asimetrična relacija, tj. ako je L(a, b )
∧
L( b ,a)
⇒
a= b
Naravno, postoje grafovi koji nisu ni orijentirani ni neorijentirani, dakle imaju neke grane usmjerene, a neke neusmjerene. Slijed grana od nekog početnog do nekog završnog čvora naziva se put. Put može više puta prolaziti kroz isti čvor. Elementarni put jest put koji najviše jednom prolazi kroz svaki čvor. Zatvoreni put (petlja) jest put koji počinje i završava u istom čvoru. Spojeni graf jest graf kod kojeg postoji put između bilo koja dva čvora. Stablo je spojeni graf koji ne sadrži niti jednu petlju.
Analiza m reža
117
Grafom ćemo opisivati model nekog realnog sustava, kao što su gradovi povezani cestama, rafinerije i potroša či spojeni naftovodima, elektri čni sklopovi i sl. U stvarnom svijetu svakoj će grani grafa biti pridružen neki realni broj (udaljenost, kapacitet, otpor). Za graf kod kojeg su granama pridružene takve težine uobi čajen je naziv mreža.
6.2. Problem maksimalnog toka 6.2.1. Definicije Razmorimo problem slanja neke materije ili informacije od jednog čvora u mreži kojeg ćemo nazvati ishodištem, do nekog drugog čvora kojeg nazivamo odredištem. Pretpostavit ćemo da vrijedi zakon očuvanja materije u svakom čvoru, dakle količina materije koja ulazi u čvor jednaka je količini materije koja iz tog čvora izlazi. Također ćemo pretpostaviti da su grane u mreži usmjerene, dakle za granu (i, j) tok tij može biti usmjeren isključivo od čvora i prema čvoru j, te da je za svaku granu (i, j) definiran kapacitet kij kao maksimalna količina materije koja kroz tu granu može proći. Jedna takva mreža prikazana je na slici 6-2
Slika 6-2 Primjer protočne mreže
6.2.2. Rješenje linearnim programiranjem Problem maksimalnog toka može se riješiti i linearnim programiranjem. Za problem sa slike 6-2 matematički model ima oblik max t
uz pretpostavku očuvanja materije u svakom čvoru t = t12 + t13 t12 + t32 = t23 + t24 t13 + t23 = t32 + t34 t24 + t34 = t
i ograničenja na kapacitet pojedinih grana
118
Operacijska istraživanja
0 0 0 0 0 0
≤ ≤ ≤ ≤ ≤ ≤
t12 t13 t23 t24 t32 t34
≤ ≤ ≤ ≤ ≤ ≤
k 12 k 13 k 23 k 24 k 32 k 34
Taj sustav možemo riješiti simpleksnom metodom, ali postoje i efikasnije metode za rješavanje tog posebnog problema. Jednu od njih opisat ćemo nakon objašnjenja nekih dodatnih pojmova iz teorije mreža. Ako je C skup svih čvorova u mreži, c1 ishodište a cn odredište, može se pronaći rez koji razdvaja skup C na podskupove S i T tako da je c 1
ε
S, c n
ε
T
Pri tome vrijedi S U T = C S ∩ T = 0
Slika 6-3 Primjer za rez na mreži (1) Kapacitet reza K (S,T) jest suma kapaciteta svih grana koje su usmjerene iz S u T. Za sliku 6-3 kapacitet reza jest K (S,T) = k 24 + k 34
Slika 6-4 Primjer za rez na mreži (2) Mogući su i drugi rezovi, kao npr. onaj na slici 6-4 Kapacitet tog reza jest (S,T) = k K 12 + k 32 + k 34
Analiza m reža
119
Treba primijetiti da kapacitet k23 ne utječe na kapacitet reza. Rez najmanjeg kapaciteta naziva se minimalni rez. Očito je da ako se uklone sve grane reza nema puta od ishodišta prema odredištu, pa nema ni toka. Dakle, tok od ishodišta prema odredištu te če kroz grane reza. Posljedica toga jest činjenica da je ukupan tok t ograničen kapacitetom reza.
120
Operacijska istraživanja
Za svaku usmjerenu mrežu, ako je t tok od ishodišta prema odredištu, a ( S,T) rez, vrijedi da je t
≤
K (S,T)
Za svaku mrežu količina maksimalnog toka jednaka je kapacitetu minimalnog reza (Teorem "maksimalni tok ─ minimalni rez").
6.2.3. Algoritam za pronalaženje maksimalnog toka Algoritam za pronalaženje maksimalnog toka služi se spomenutim teoremom. Princip algoritma jest da se kod nekog stanja u mreži prona đe put kojim se može poslati dodatni pozitivan tok od ishodišta prema odredištu. Taj put zove se put dodatnog toka. Izbor čvorova za put dodatnog toka obavlja se na ovaj način: Krenuvši od ishodišta prema odredištu, izabiremo čvor j ako dodatni pozitivan tok može biti usmjeren od ishodišta prema čvoru j. Pozitivan tok moći će se usmjeriti prema čvoru j ako je ispunjen jedan od ova dva uvjeta: 1. Grana (i, j) jest izlazna grana za čvor i, a tok u (i, j) je manji od kapaciteta kij. 2. Grana (i, j) jest ulazna grana za čvor i (smjer je od j prema i), a postoji tok u ( j,i). Izbor čvorova za put dodatnog toka završava izborom odredišta. Nakon što se kroz mrežu propusti dodatni tok koji odgovara najve ćem toku koji put dodatnog toka može propustiti, pokušava se pronaći novi put dodatnog toka. Postupak završava kad više ne može biti pronađen niti jedan put dodatnog toka.
Analiza m reža
121
6.2.4. Primjer Potrebno je pronaći maksimalni tok u ovoj mreži:
U po četku u svakoj grani u mreži nema toka. Na granu koja ulazi u čvor 1 nema ograničenja, prema tome, čvor 1 se može izabrati za put dodatnog toka (izabrane čvorove označit ćemo zvjezdicom). U čvoru 1 redom ispitujemo čvorove u koje se iz 1 može doći. U grani (1,2) tok je manji od kapaciteta, pa izabiremo čvor 2. Slijedeći čvor koji se može izabrati krećući se iz čvora 2 je 3, a poslije čvora 3 može se izabrati čvor 4.
Izabrani čvorovi određuju put dodatnog toka:
Iz kapaciteta grana na putu dodatnog toka može se zaklju čiti da najveći tok koji se tim putem može propustiti iznosi 3 jedinice. Time dolazimo do sljede ćeg stanja u
122
Operacijska istraživanja
mreži, kod kojeg čvorove izabiremo ovako:
Put dodatnog toka ima kapacitet od 4 jedinice:
Kad nove 4 jedinice toka propustimo putem dodatnog toka kroz mrežu, grana (1,2) zasićena je pa se iz ishodišta izabire čvor 3, a iz čvora 3 ide se u 4:
što daje novi put dodatnog toka kapaciteta 5 jedinica. Krenuvši od ishodišta, možemo izabrati čvor 3. Prema prvom pravilu za izbor čvora, ne možemo iz čvora 3 izabrati čvor 4 jer je grana (3,4) zasi ćena. Međutim, primjećujemo da postoji grana (2,3) koja je za čvor 3 ulazna, a kroz nju teče pozitivan tok. Prema drugom pravilu za izbor izabiremo sada čvor 2 i nakon njega 4.
Analiza m reža
123
Novi put dodatnog toka ima kapacitet od 3 jedinice.
Da bi se povećao tok na ovom putu, pove ćavamo tok na granama koje teku prema odredištu, a smanjujemo tok na granama koje teku od odredišta prema ishodištu.
124
Operacijska istraživanja
Takvom modifikacijom toka dolazimo do stanja u mreži, kod kojeg nije moguće pronaći novi put dodatnog toka. Sada se može odrediti minimalni rez: skup S formira se od izabranih čvorova, skup T od preostalih.
6.3. Problem najkraćeg puta U postojećoj mreži često je potrebno poznavati najkra ći put od ishodišta do odredišta, ili između neka druga dva čvora. Postoji nekoliko metoda koje rješavaju problem najkraćeg puta, između kojih će izbor ovisiti o karakteristikama mreže. Ovdje su navedene najčešće i najprimjenjivije.
Analiza m reža
125
6.3.1. Rješenje linearnim programiranjem Problem najkraćeg puta može se riješiti i linearnim programiranjem, što ćemo pokazati na sljedećem primjeru, u kojem želimo pronaći najkraći put između čvorova 1 i 6 (slika 6-14)
Slika 6-14 Primjer mreže za traženje najkra ćeg puta Ako sa tij označimo tok između čvorova i i j, i ukupan tok u mreži postavimo na 1, minimalizacijom sume umnožaka duljine grana i toka u njima dobit ćemo najkraći put u mreži. Za primjer sa slike model ima oblik uz
min 3t12 + 7t13 + 4t14 + 1t23 + 1t43 + 1t25 + 2t35 + 3t36 + 5t46 + 1t56 t12 t12 t13 t14 t25 t56 tij
+ = + = + +
t13 t23 t23 t43 t35 t36
+ + + + = +
≥
0,
∀
t14 = 1 t25 t43 = t35 + t36 t46 t56 t46 = 1 i,j
Iznos funkcije cilja dat će nam duljinu najkraćeg puta, dok će varijable s iznosom jednakim jedinici identificirati grane na kritičnom putu. Na prvi pogled može se učiniti da rješenje tog linearnog programa može biti necjelobrojno. Me đutim, kako su sve varijable u funkciji cilja koju minimaliziramo, pozitivnu vrijednost imat će samo one koje se nalaze na najkraćem putu. Čak i u slučaju više jednakih najkraćih puteva, rješenje će biti cjelobrojno. U eventualnim alternativnim optimumima možemo pronaći ostale putove. Kao što je i u mnogim drugim primjenama slu čaj, linearno programiranje nije najbolji način rješavanja specifičnih problema. Slijedi objašnjenje nekih efikasnijih metoda.
126
Operacijska istraživanja
6.3.2. Metoda Bellman ─Ford Ako u mreži ostvarimo topološko ure đenje, tj. čvorove u mreži numeriramo tako da svaki čvor dobije redni broj tek nakon svojih prethodnika, za rješavanje možemo upotrijebiti metodu Bellman ─ Ford. Ako sa ui označimo udaljenost i-tog čvora od ishodišta koje ima oznaku 1, a sa dij direktnu udaljenost od čvora i do čvora j (ako ne postoji grana i- j, za dij pretpostavljamo vrijednost ∞), tada vrijedi dinamički program: u 1 = 0 u (u kj) j = min k + d k
Numeracija čvorova na slici 6-14 nije prikladna za rješavanje tom metodom. Tamo vidimo da se u čvor 3 može doći iz čvora 4. Za rješavanje tom metodom treba obaviti renumeraciju čvorova (slika 6-15). Oznake čvorova 3 i 4 jedina su anomalija u tom primjeru, pa će se zamjenom rednih brojeva, mreža mo ći riješiti.
Slika 6-15 Mreža prikladna za rješavanje metodom Bellman ─Ford Sada redom možemo pisati: 0 min min min min min u 6 = min min u 1 u 2 u 3 u 4 u 5
= = = = =
(u 1+3) = 3 (u 1+4, u 2+∞) = 4 (u +7, u 1 2+1, u 3+1) = min (7, 4, 5) = 4 (u 1+∞, u 2+1, u 3+∞, u 4+2) = (∞, 4, ∞, 6) = 4 (u 4+3, u 5+1) = 1+∞, u 2+∞, u 3+5, u (∞, ∞, 9, 7, 5) = 5
Analiza m reža
127
Udaljenost čvora 6 od ishodišta iznosi 5 jedinica. Najkraći put lako se određuje od odredišta unatrag. Kako je osnovni preduvjet za primjenu te metode taj da ni jedan čvor ne može nositi redni broj manji od čvora preko kojega se u taj čvor može doći, očito je da će ona biti pogodna za rješavanje problema najkra ćeg puta samo kod usmjerenih mreža koje ne sadrže petlju.
6.3.3. Dijkstrin algoritam Najkraći put u mreži može se odrediti Dijkstrinom metodom. Pri tome mreža može sadržavati i petlju, ali udaljenosti na granama moraju biti pozitivne. Postupak te če ovako: Formiraju se dva skupa uređenih parova S i T. Svaki uređeni par sastoji se od oznake čvora ci i udaljenosti ui od tog čvora do ishodišta. U koraku inicijalizacije, u skup S stavlja se ishodište, dok se svakom čvoru iz T pridružuje direkna udaljenost od ishodišta, ili ∞ ako ne postoji grana koja spaja taj čvor s ishodištem. U skup S prebacuje se element iz T s najmanjom udaljenošću ui. Ako se ustanovi da je za neki čvor iz T udaljenost od ishodišta preko preba čenog čvora manja od njegove dotad izračunate udaljenosti, udaljenost se modificira. Postupak se ponavlja dok ima elemenata u T. Postupak se egzaktnije može opisati algoritamski: S = š (c 1, 0) ć T = š (c 2, u 2), (c 3, u 3), ..., (c n, u n) ć,
u k = d 1k,
∀
k
dok je T = / š0ć
│ │ │ │ │ │ │ │ │ │
izaberi (c k, u k)
ε
T = T \ š(c k, u k)ć
T │ min u j j
S = S U š(c k, u k)ć
za svaki (c j, u j)
ε
T
│ │ u j = min (u j, u k + d kj)
Primjer: Potrebno je pronaći najkraći put od čvora 1 do čvora 6 na mreži sa slike 6-16
Slika 6-16 Primjer mreže za traženje najkra ćeg puta Dijkstrinim algoritmom U početnom koraku u skup S stavlja se ishodište, a u T ostali čvorovi s direktnim udaljenostima od ishodišta:
128
Operacijska istraživanja
S = š (A, 0) ć T = š (B, 3), (C, 7), (D, 4), (E,
∞),
(F,
∞) ć
Analiza m reža
129
Čvor s najmanjom udaljenošću jest čvor B, pa ga prebacujemo u S, dok za sve članove skupa T uspoređujemo udaljenost s udaljenošću preko čvora B, i izabiremo
manju:
S = š (A, 0), T = š (C, min (E, min š (C, 5),
(B, (7, (∞, (D,
3) ć 3+2)), (D, min (4, 3+ ∞)), 3+∞), (F, min (∞, 3+9) ć = 4), (E, ∞), (F, 12) ć
Od čvorova iz T sada je najbliži ishodištu čvor D: S = š (A, 0), T = š (C, min (F, min š (C, 5),
(B, 3), (D, 4) ć (5, 4+1)), (E, min ( ∞, 4+3), (12, 4+∞) ć = (E, 7), (F, 12) ć
Sljedeći izbor pada na C: S = š (A, 0), (B, 3), (D, 4), (C, 5) ć T = š (E, min (7, 5+3), (F, min (12, 5+6) ć = š (E, 7), (F, 11) ć
Odabiremo E: S = š (A, 0), (B, 3), (D, 4), (C, 5), (E, 7) ć T = š (F, min (11, 7+3) ć = š (F, 10) ć
F je jedini element iz T, pa njegovim prebacivanjem u S postupak završava. Udaljenost od A do F jest 10 jedinica. Slijed čvorova u najkraćem putu odredit ćemo unatrag, vodeći se činjenicom da je čvor i prethodnik čvora j ako je u j - ui = dij. Tako je npr. uF - uB = 7, dok je dFB = 9, pa zaključujemo da čvor B nije prethodnik čvora F. Slično vrijedi i za čvor C, dok za čvor E imamo uF - uE = 3, uz dEF = 3, pa zaključujemo da je čvor E prethodnik čvora F. Takvo razmatranje treba sada provesti u čvoru E, i tako do ishodišta, što će kao najkraći put dati A-D-E-F.
130
Operacijska istraživanja
6.3.4. Iterativna modifikacija Bellman ─Fordova algoritma Ako u mreži postoje negativne grane, problem najkraćeg puta moći ćemo riješiti iterativnom modifikacijom Bellman ─ Fordovog algoritma. Fizikalna interpretacija negativnih grana u kontekstu udaljenosti nema previše smisla, ali udaljenost nije i jedina moguća interpretacija težina na granama. U problemu u kojem je potrebno stići do cilja s najvećom količinom energije ili goriva, pozitivne grane ozna čuju utrošak, a negativne grane postojanje izvora. Taj algoritam dozvoljava postojanje petlji, ali ne i negativnih petlji (iz razumljivih razloga: najkra ći put u mreži s negativnom petljom jest -∞). U prvoj se iteraciji za udaljenost u j svakog čvora postavlja direktna udaljenost od ishodišta, da bi se u svakoj sljede ćoj iteraciji ta udaljenost ra čunala iz podataka dobivenih iz prethodne iteracije ovako: (1) u = d j 1j (m+1) (m) u = min (u + d j k kj)
k= /j
Postupak prestaje kad je u(m+1) = u(m) j j , za svaki j Primjer: Treba pronaći najkraći put od čvora 1 do čvora 4 u mreži na slici 6-17, 6-18
Slika 6-17 Primjer mreže za iterativno traženje najkra ćeg puta ┌──────────┬────┬───────────────────────┬───────────────────────┬───────────────────────┐ │ Iteracija │ │ │ │ │ │ │ u │ │ │ u u u m 1 │ 2 3 4 ├──────────┼────┼───────────────────────┼───────────────────────┼───────────────────────┤ 1 3 7 ∞ │ │ 0 │ │ │ │ 2 │ │ 0 │ min (0+3, 7-2, ∞+∞)=3 │ min (0+7, 3+4, ∞-3)=7 │ min (0+ ∞, 3+6, 7+4)=9 │ │ 3 │ 0 │ min (0+3, 7-2, 9+ ∞)=3 │ min (0+7, 3+4, 9-3)=6 │ min (0+ ∞, 3+6, 7+4)=9 │ │ 4 │ 0 │ min (0+3, 6-2, 9+ ∞)=3 │ min (0+7, 3+4, 9-3)=6 │ min (0+ ∞, 3+6, 6+4)=9 │ └──────────┴────┴───────────────────────┴───────────────────────┴───────────────────────┘
Analiza m reža
131
6.4. Problemi najduljeg puta Ponekad je u mreži potrebno prona ći najdulji put. Algoritmi za pronalaženje najkraćeg puta poslužit će i za pronalaženje najduljeg puta, pod uvjetom da se traženje minimalnih vrijednosti tokom prora čuna zamijeni maksimalnim. Naravno, kriteriji za primjenjivost algoritama sada se nešto mijenjaju. Na primjer, mreža ne smije imati pozitivnu petlju, jer će najdulji put u takvoj mreži biti beskonačno dugačak. Primjer: Potrebno je pronaći najdulji put od čvora 1 do čvora 8 u mreži sa slike 6-17, 6-18
Slika 6-18 Primjer mreže za traženje najduljeg puta Taj problem možemo riješiti Bellman ─ Fordovim algoritmom. Za problem najduljeg puta algoritam je ovaj: u 1 = 0 (u u j = max k + d kj) k
slici u pravokutnicima na slici 6-19
Slika 6-19 Računanje najduljeg puta
132
Operacijska istraživanja
6.5. Pronalaženje minimalnog stabla Podsjetimo se, stablo je spojeni graf koji ne sadrži petlje. Minimalno stablo jest stablo kod kojeg je ukupna dužina svih grana najmanja. Kad, na primjer, izme đu više gradova treba izgraditi ceste koje će spojiti sve gradove uz najmanji trošak, ili kad treba izgraditi komunikacijsku mrežu koja će spajati više točaka, problem možemo interpretirati kao problem pronalaženja minimalnog stabla. Algoritam za traženje minimalnog stabla jednostavan je i ne zahtijeva mnogo proračuna.
Analiza m reža
133
Ako je C skup svih čvorova u mreži, formirat ćemo skup svih grana koje tvore minimalno stablo M na sljedeći način: U inicijalnom koraku algoritma formira se skup S koji se sastoji od proizvoljno odabrana čvora c1. Formiraju se i skup T, koji se sastoji od preostalih čvorova i prazan skup grana M. Dok ima čvorova u T, traži se čvor iz T koji je najbliži nekom od čvorova iz S. Taj se čvor prebacuje u S, a u M dodaje se grana koja spaja ta dva čvora. Matematički se to može napisati ovako: C = š c 1, c 2, ..., c n ć S = š c 1 ć T = C \ S M = 0 dok je T = / š0ć
│ │ │ │ │ │ │ │ │ │
c k = c i │ min min d ij , c i i
j
c l = c j │ min d kj , c j S = S U c k
j
ε
ε
T, c j
ε
S
S
T = T \ c k M = M U (c k, c l)
Primjer: Potrebno je pronaći minimalno stablo u mreži sa slike 6-20 K ao po če tn i čv or m ož e m o od ab ra ti Slika 6-20 Primjer mreže za pronalaženje minimalnog stabla čv or 1. Njemu je najbliži čvor 3, pa je prva grana minimalnog stabla grana (1,3). Čvor najbliži čvorovima 1 i 3 jest 7, pa u minimalno stablo uvodimo granu (3, 7). Čvorovima 1, 3, i 7 najbliži je čvor 9 itd. Grane koje tvore minimalno stablo s redoslijedom kojim su izabirane ozna čene su na slici 6-21
134
Operacijska istraživanja
Slika 6-21 Minimalno stablo
Analiza Analiza m reža
135
6.6. Transportni problem Problem snabdijevanja n odredišta s m izvora uz fiksne jedini čne transportne troškove za pojedinu relaciju, ograni čeno raspoložive koli čine na izvorima i zadanu potražnju na odredištima, naziva se transportnim problemom. problemom. Rješavanje transportnog problema ima za cilj prona ći ono moguće rješenje koje rezultira najmanjim ukupnim transportnim transportnim troškovima. Transportni Transportni se problem može prikazati tablicom: ODREDIŠTA
┌────────────────────────────┬────────────┐ │ 1 2 3 ... j .. . n │ Raspoložive│ │ │ koli č in e │ ┌─────┼────────────────────────────┼────────────┤ │ 1 │ c 11 c 12 c 13 .. . c 1j .. . c 1n│ │ Q 1 │ │ │ │ │ 2 │ c 21 c 22 c 23 .. . c 2j .. . c 2n│ │ Q 2 │ │ │ │ │ Q │ 3 │ c 31 c 32 c 33 .. . c 3j .. . c 3n│ 3 │ │ │ │ IZVORI │ .. . │ .. . │ .. . │ │ │ │ │ │ i │ c i1 c i2 c i3 .. . c ij .. . c in│ Q │ i │ │ │ │ │ .. . │ .. . │ .. . │ │ │ │ │ │ m │ c m1 c m2 c m3 .. . c mj .. . c mn│ │ Q m │ │ │ │ └─────┼────────────────────────────┼────────────┘ │ D 1 D 2 D 3 .. . D j .. . D n │ ├────────────────────────────┤ │ Potrebe │ └────────────────────────────┘
6.6.1. Formulacija transportnog problema kao linearni program Ako se s xij označi količina koju treba prevesti iz izvora i na odredište j odredište j uz jedinični transportni transportni trošak cij, funkcija cilja je: m n z = Σ Σ c min z = ij ijx ij ij i=1 j=1
Ograničenja ovise o tome kakav je odnos između raspoloživih koli čina i potreba: a) Raspoložive koli čine jednake su potrebama Ako je suma raspoloživih količina jednaka sumi potreba, problem je zatvoren. Ograničenja se mogu postaviti u obliku m+n-1 linearnih jednadžbi: n Σ x m m ij ij = Q i ; i=1,.., j=1 m Σ x =1,..,n-1 ij = D j ; j=1,..,n i=1
136
Operacijska istraživanja istraživanja
Od m+n mogućih jednadžbi bilo koja se može izostaviti jer zbog zatvorenosti problema ona predstavlja linearnu kombinaciju ostalih.. Mogu ć je i prikaz s nejednadžbama: n Σ x ij ij j=1 m Σ x ij ij i=1
≤
Q m m i ; i=1,..,
≥
D =1,..,n j ; j=1,..,n
Takva formulacija formulac ija linearnog programa programa može izazvati numeri čke teškoće jer su sume upravo jednake. Zbog numeričke pogreške program može završiti kao nemogu ć. Da se to spriječi, dovoljno je bilo koju od količina Qi uvećati barem za iznos očekivane numeričke pogreške. Na taj će način potražnja sigurno biti zadovoljena pa će rješenje biti optimalno. b) Raspoložive koli čine veće su od potreba Problem je otvoren i najbolje ga je formulirati s pomoću nejednadžbi: n Σ x ij ij j=1 m Σ x ij ij i=1
≤
Q m m i ; i=1,..,
≥
D =1,..,n j ; j=1,..,n
tj. sve se potrebe moraju zadovoljiti, a niti s jednog izvora ne može se isporučiti više od raspoložive koli čine. Budući da je funkcija cilja minimizacija troška, u rješenju će sve potrebe biti zadovoljene upravo na donjoj granici. c) Potrebe su veće od raspoloživih količina U tom slučaju ostaje pitanje da li da se manjak raspodijeli jednoliko ili proporcionalno. proporcionalno. Ako je jedini cilj to da ukupan transportni transportni trošak bude minimalan, uvjeti su ovakvi: n Σ x ij ij j=1 m Σ x ij i=1
≥
Q m m i ; i=1,..,
≤
D =1,..,n j ; j=1,..,n
tj. sve se raspoložive koli čine moraju isporučiti, a niti jedno odredište ne smije primiti više nego što su mu potrebe. U svakom od slučajeva sve su varijable nenegativne. Tako formuliran transportni problem lako se rješava kao linearni program. Ograničenje kapaciteta prijevoza iz pojedinog pojedinog izvora na pojedino odredište, odre dište, tzv. kapacitirani kapacitiran i transportni problem, lako se riješi linearnim programom. programom . Također,
Analiza Analiza m reža
137
ne predstavlja posebnu teško ću dogradnja transportnog problema podacima, npr. o proizvodnji na izvorima, skladišnim troškovima na odredištima, mogućnosti supstitucije materijala itd. Zbog specifi čne strukture transportnog problema i radi ubrzanja postupka razvijeni su i specifični algoritmi za transportni transportni problem.
6.6.2. Metoda MODI 6.6.2.1. Zatvoreni transportni problem Pronađe se moguće bazično rješenje po metodi sjeverozapadnog kuta (NW). Po čevši od gornjeg lijevog kuta postavljaju se vrijednosti bazi čnih varijabli redom dok ne dođe do zasićenja bilo retka, bilo stupca, koji se prvi popuni. Ostatak se prenosi za popunu daljnjih polja. Za tablicu od m redaka i n stupaca: ┌─────────────────────────────────────┐ │ * * * │ │ * * * * │ │ * * * * * * │ │ * * * │ │ * * * * * │ │ * * │ └─────────────────────────────────────┘ │ μ 1 │ μ 2 │ │ .. . │ .. . │ μ m│ μ 3
Ako se broj bazičnih varijabli u i-tom retku označi sa μi, vrijedi: (μ 1-1) + ( μ 2-1) + ... + ( μ m-1-1) + μ m = n m Σ μ i - m (m -1) -1) = n i=1 m m + n - 1 Σ μ i = m + i=1
Broj bazičnih varijabli jest m+n-1, dakle upravo toliko koliko u zatvorenom transportnom problemu ima linearno nezavisnih jednadžbi. Po metodi MODI =1,..,m i v j ; j=1,.., j=1,..,n n tako da za sve formiraju se dva vektora s elementima ui ; i=1,..,m bazične varijable vrijedi cij = ui + v j. Promjena transportnog troška za jedini čni porast neke nebazične varijable xij, tj. njen dualni trošak, dobije se iz izraza d (u ij ij = c ij ij - (u i+v j)
Postupak će biti ilustriran ovim primjerom: ODREDIŠTA
┌──────────────────┬────────────┐ 2 3 4 │ 1 │ Raspoložive│ │ │ koli č in e │ ┌─────┼──────────────────┼────────────┤ 5 4 5 60 │ 1 │ 2 │ │ IZVORI │ 2 │ 1 2 1 4 │ 80 │ │ 3 │ 3 1 5 2 │ 60 │ └─────┼──────────────────┼────────────┤ │ 50 40 70 40 │ 20 0 │ ├──────────────────┼────────────┘ │ Potrebe │ └──────────────────┘
138
Operacijska istraživanja istraživanja
Tablica se popunjava koli činama koje se sad upisuju umjesto jedini čnih transportnih transportnih troškova, od gornjeg lijevog kuta (sjeverozapadna): ODREDIŠTA
┌──────────────────┬────────────┐ │ 1 2 3 4 │ Raspoložive│ │ │ koli č in e │ ┌─────┼──────────────────┼────────────┤ │ 1 │ 50 10 │ 60 │ IZVORI │ 2 │ 30 50 │ 80 │ │ 3 │ 20 40 │ 60 │ └─────┼──────────────────┼────────────┤ │ 50 40 70 40 │ 20 0 │ ├──────────────────┼────────────┘ │ Potrebe │ └──────────────────┘
U tablici ima 6 varijabli razli čitih od 0, što odgovara broju linearno nezavisnih jednadžbi (3+4-1). Za bazične varijable izra čunavaju se elementi vektora ui i v j. Ispod najvećeg troška za neku bazičnu varijablu xij postavi se v j=0. Svi ostali elementi tada su jednozna čno određeni izrazom cij= ui+v j. ODREDIŠTA
┌──────────────────┐ │ 1 2 3 4 │ ┌─────┼──────────────────┤ ┌───┐ │ 1 │ 2 4 5 │ │ 5 IZVORI │ 2 │ 1 4 │ │ 2 1 │ 3 │ 3 1 │ │ 5 2 └─────┴──────────────────┘ └───┘ ┌──────────────────┐ │ -3 0 -1 -4 │ v j └──────────────────┘
u i 5 │ 2 │ 6 │
Za sve nebazične varijable izra čunavaju se dualni troškovi dij: d 13 13= 4 - (5-1) = 0 d 14 14= 5 - (5-4) = 4 d 21 21= 1 - (2-3) = 2
d 24 24= 4 - (2-4) = 6 d 31 31= 3 - (6-3) = 0 d 32 32= 1 - (6+0) =-5
Smanjenju ukupnih transportnih troškova doprinijet će povećanje prijevoza iz izvora 3 na odredište 2. Da bi sve jednadžbe ostale zadovoljene i da vrijedi izračunato smanjenje funkcije cilja, pove ćanje x32 treba kompenzirati isključivo promjenama bazičnih varijabli. Ako x32 raste, x33 pada, x23 raste i x22 pada. Najveći dopušteni porast za x32 takav je da niti jedna bazi čna varijabla ne postane negativna. Budući da se smanjuju x32= 20 i x22= 30, dozvoljena promjena jest 20. ODREDIŠTA
┌──────────────────┬────────────┐ │ 1 2 3 4 │ Raspoložive│ │ │ koli č in e │ ┌─────┼──────────────────┼────────────┤ │ 1 │ 50 10 │ 60 │ IZVORI │ 2 │ │ 80 │ 30 50 │ 3 │ 40 │ 60 │ + 20 └─────┼──────────────────┼────────────┤ │ 50 40 70 40 │ 20 0 │ ├──────────────────┼────────────┘ │ Potrebe │ └──────────────────┘
Analiza Analiza m reža
139
Sadržaj tablice koli čina nakon obavljene iteracije jest: ODREDIŠTA
┌──────────────────┬────────────┐ │ 1 2 3 4 │ Raspoložive│ │ │ koli č in e │ ┌─────┼──────────────────┼────────────┤ │ 1 │ 50 10 │ 60 │ IZVORI │ 2 │ 10 70 │ 80 │ │ 3 │ 20 40 │ 60 │ └─────┼──────────────────┼────────────┤ │ 50 40 70 40 │ 20 0 │ ├──────────────────┼────────────┘ │ Potrebe │ └──────────────────┘
Ponovno se računaju ui i v j te dualni troškovi dij za nebazične varijable: ODREDIŠTA
┌──────────────────┐ │ 1 2 3 4 │ ┌─────┼──────────────────┤ ┌───┐ │ 1 │ 2 4 5 │ │ 5 IZVORI │ 2 │ 1 4 │ │ 2 1 │ 3 │ 3 5 │ │ 1 2 └─────┴──────────────────┘ └───┘ ┌──────────────────┐ v 0 -1 1 │ j │ -3 └──────────────────┘
d 13 13= d 14= d 21 21= d 24 24= d 31= d 33 33=
4 5 1 4 3 5
-
(5-1) (5+1) (2-3) (2+1) (1-3) (1-1)
u i 5 │ 2 │ 1 │
= 0 =-1 = 2 = 1 = 5 = 5
Povoljan je porast varijable x14. Promjenu kompenziraju bazične varijable x34, x32 i x12: ODREDIŠTA
┌──────────────────┬────────────┐ │ 1 2 3 4 │ Raspoložive│ │ │ koli č in e │ ┌─────┼──────────────────┼────────────┤ │ 1 │ 50 10 │ 60 │ + IZVORI │ 2 │ 10 70 │ 80 │ │ 3 │ │ 60 │ 20 40 └─────┼──────────────────┼────────────┤ │ 50 40 70 40 │ 20 0 │ ├──────────────────┼────────────┘ │ Potrebe │ └──────────────────┘
Najveća moguća promjena jest 10: ODREDIŠTA
┌──────────────────┬────────────┐ │ 1 2 3 4 │ Raspoložive│ │ │ koli č in e │ ┌─────┼──────────────────┼────────────┤ │ 1 │ 50 10 │ 60 │ IZVORI │ 2 │ 10 70 │ 80 │ │ 3 │ 30 30 │ 60 │ └─────┼──────────────────┼────────────┤ │ 50 40 70 40 │ 20 0 │ ├──────────────────┼────────────┘ │ Potrebe │ └──────────────────┘
140
Operacijska istraživanja
Ponovno se izračunavaju dij za sve nebazične varijable: ODREDIŠTA
┌──────────────────┐ │ 1 2 3 4 │ ┌─────┼──────────────────┤ ┌───┐ │ 1 │ 2 5 4 │ │ 5 IZVORI │ 2 │ 1 4 │ │ 2 1 │ 3 │ 3 5 │ │ 1 2 └─────┴──────────────────┘ └───┘ ┌──────────────────┐ v -1 -2 0 │ j │ -3 └──────────────────┘
d 12 = d 13 = d 21 = d 24 = d 31 = d 33 =
5 4 1 4 3 5
-
(5-1) (5-2) (3-3) (3+0) (2-3) (2-2)
= = = = = =
u i 5 │ 3 │ 2 │
1 1 1 1 4 5
Svaka promjena povećala bi ukupne transportne troškove, što zna či da je dobiven optimum.
6.6.2.2. Slučaj degeneracije Ukoliko se prilikom popunjavanja tablice istovremeno zasiti i redak i stupac, u tablici nastaje manje bazi čnih varijabli nego što ima linearno nezavisnih jednadžbi. Radi se o degeneraciji (bazi čna varijabla jednaka je 0). Degeneracija se otklanja modifikacijom količina za iznos ε. Postupak će biti ilustriran primjerom sličnim prethodnom, s tim da su modificirane količine na izvorima 1 i 2: ODREDIŠTA
┌──────────────────┬────────────┐ │ 1 2 3 4 │ Raspoložive│ │ │ koli č in e │ ┌─────┼──────────────────┼────────────┤ │ 1 │ 2 5 4 5 │ 50 │ IZVORI │ 2 │ 1 2 1 4 │ 90 │ │ 3 │ 3 1 5 2 │ 60 │ └─────┼──────────────────┼────────────┤ │ 50 40 70 40 │ 20 0 │ ├──────────────────┼────────────┘ │ Potrebe │ └──────────────────┘
Prilikom popunjavanja tablice od gornjeg lijevog kuta ODREDIŠTA
┌──────────────────┬────────────┐ 2 3 4 │ 1 │ Raspoložive│ │ │ koli č in e │ ┌─────┼──────────────────┼────────────┤ 50 │ 1 │ 50 │ │ IZVORI │ 2 │ 40 50 90 │ │ 20 40 60 │ 3 │ │ │ └─────┼──────────────────┼────────────┤ │ 50 40 70 40 │ 20 0 │ ├──────────────────┼────────────┘ │ Potrebe │ └──────────────────┘
Analiza m reža
141
dobije se 5 varijabli različitih od 0, što je za 1 manje od broja linearno nezavisnih jednadžbi (3+4-1). Da bi se zaobišao problem degeneracije, modificiraju se koli čine tako da ne bude istovremeno zasićen i redak i stupac: ODREDIŠTA
┌──────────────────┬────────────┐ │ 1 2 3 4 │ Raspoložive│ │ │ koli č in e │ ┌─────┼──────────────────┼────────────┤ ε │ 1 │ 50 │ 50 + ε │ IZVORI │ 2 │ 40 50 │ 90 │ │ 3 │ 20 40 │ 60 │ └─────┼──────────────────┼────────────┤ │ 50 40+ ε 70 40 │ 200+ ε │ ├──────────────────┼────────────┘ │ Potrebe │ └──────────────────┘
Za sve nebazične varijable izračunavaju se dij: ODREDIŠTA
┌──────────────────┐ │ 1 2 3 4 │ ┌─────┼──────────────────┤ ┌───┐ │ 1 │ 2 4 5 │ │ 5 IZVORI │ 2 │ 1 4 │ │ 2 1 │ 3 │ 3 1 │ │ 5 2 └─────┴──────────────────┘ └───┘ ┌──────────────────┐ v 0 -1 -4 │ j │ -3 └──────────────────┘
d 13 = d 14 = d 21 = d 24 = d 31 = d 32 =
4 5 1 4 3 1
-
(5-1) (5-4) (2-3) (2-4) (6-3) (6+0)
u i 5 │ 2 │ 6 │
= 0 = 4 = 2 = 6 = 0 =-5
Dozvoljena promjena za x32 jest 20. Sadržaj tablice nakon obavljene iteracije jest ODREDIŠTA
┌──────────────────┬────────────┐ │ 1 2 3 4 │ Raspoložive│ │ │ koli č in e │ ┌─────┼──────────────────┼────────────┤ │ 1 │ 50 │ 50 + ε │ ε IZVORI │ 2 │ 20 70 │ 90 │ │ 3 │ 20 40 │ 60 │ └─────┼──────────────────┼────────────┤ │ 50 40+ ε 70 40 │ 200+ ε │ ├──────────────────┼────────────┘ │ Potrebe │ └──────────────────┘
Ponovno se računaju dualni troškovi dij za nebazične varijable: ODREDIŠTA
┌──────────────────┐ │ 1 2 3 4 │ ┌─────┼──────────────────┤ ┌───┐ │ 1 │ 2 4 5 │ │ 5 IZVORI │ 2 │ 1 4 │ │ 2 1 │ 3 │ 3 5 │ │ 1 2 └─────┴──────────────────┘ └───┘ ┌──────────────────┐ │ -3 0 -1 1 │ v j └──────────────────┘
u i 5 │ 2 │ 1 │
142
Operacijska istraživanja
d 13 = d 14 = d 21 = d 24 = d 31 = d 33 =
4 5 1 4 3 5
-
(5-1) (5+1) (2-3) (2+1) (1-3) (1-1)
= 0 =-1 = 2 = 1 = 5 = 5
Povoljan je porast varijable x14. Promjenu kompenziraju bazične varijable x34, x32 i x12. Moguća promjena jest ε: ODREDIŠTA
┌──────────────────┬────────────┐ │ 1 2 3 4 │ Raspoložive│ │ │ koli č in e │ ┌─────┼──────────────────┼────────────┤ │ 1 │ 50 │ 50 + ε │ ε IZVORI │ 2 │ 20 70 │ 90 │ │ 3 │ 20 + ε 40 - ε │ 60 │ └─────┼──────────────────┼────────────┤ 200+ ε │ 50 40+ ε 70 40 │ │ ├──────────────────┼────────────┘ Potrebe │ │ └──────────────────┘
Obavljena je degenerirana iteracija u kojoj nije bilo promjene funkcije cilja. Daljnjim računom dij pokazuje se da je dobivena tablica optimalna. Vrijednost ε može se postaviti na 0. Za zaštitu od degeneracije mogu se sve rapoložive koli čine odmah uvećati za ε, a za isto toliko uvećaju se potrebe u zadnjem stupcu.
6.6.2.3. Otvoreni transportni problem Otvoreni transportni problem transformira se u zatvoreni tako da se doda fiktivni izvor ako je potražnja veća od raspoloživih koli čina, ili da se doda fiktivno odredište ako je ponuda veća od potražnje. Transportni troškovi za fiktivne koli čine jesu 0. Nakon što se dobilo optimalno rješenje, fiktivne količine treba izjednačiti s nulom. Daljnjom modifikacijom već obrađenog primjera može se dobiti otvoreni problem: ODREDIŠTA
┌──────────────────┬────────────┐ │ 1 2 3 4 │ Raspoložive│ │ │ koli č in e │ ┌─────┼──────────────────┼────────────┤ 5 4 5 60 │ │ 1 │ 2 │ IZVORI │ 2 │ 1 2 1 4 80 │ │ 1 5 2 60 │ │ 3 │ 3 │ └─────┼──────────────────┼─────┬┬─────┤ │ 70 50 90 50 │ 26 0 ││ 20 0 │ ├──────────────────┼─────┴┴─────┘ Potrebe │ │ └──────────────────┘
Potrebe su veće od raspoloživih količina na izvorima. Uvodi se fiktivni izvor 4 s raspoloživom količinom 60 i troškovima 0.
Analiza m reža
143
ODREDIŠTA
┌──────────────────┬────────────┐ │ 1 2 3 4 │ Raspoložive│ │ │ koli č in e │ ┌─────┼──────────────────┼────────────┤ │ 1 │ 2 5 4 5 │ 60 │ IZVORI │ 2 │ 1 2 1 4 │ 80 │ │ 3 │ 3 1 5 2 │ 60 │ │ 4 │ 0 0 0 0 │ 60 │ └─────┼──────────────────┼────────────┤ │ 70 50 90 50 │ 26 0 │ ├──────────────────┼────────────┘ │ Potrebe │ └──────────────────┘
Problem postaje zatvoren pa je daljnji postupak jasan.
6.7. Problemi pridruživanja i smještaja 6.7.1. Standardni problem pridruživanja Kod standardnog problema pridruživanja potrebno je rasporediti n strojeva na n poslova tako da ukupan trošak takvog rasporeda bude minimalan, pri čemu je poznat trošak cij kad stroj i radi na poslu j. Takav problem može se postaviti i riješiti kao linearni program. Ako sa xij označimo odluku treba li stroj i raditi na poslu j, tj. xij = 1 ako stroj i radi na poslu j xij = 0 ako stroj i ne radi na poslu j tada možemo pisati funkciju cilja min Σ Σ c ij x ij i
j
uz ograničenja da na svakom poslu radi samo jedan stroj Σ x ij = 1,
j=1,...,n
i
i da se na svakom stroju može raditi samo jedan posao Σ x ij = 1,
i=1,...,n
j
Takav se problem može riješiti i standardnim simpleksnim postupkom, bez bojazni da će rješenje biti necjelobrojno. Valja primijetiti da je problem pridruživanja poseban oblik transportnog problema kod kojeg strojevi odgovaraju ishodištima a poslovi odredištima, uz jedini čne kapacitete ishodišta i jedini čne potrebe odredišta:
144
Operacijska istraživanja
┌────────────────────────┐ Odredišta │ │ (poslovi) │ ├───────┐ ├────────────────────────┤ Kapa- │ │ P 1 P 2 P 3 P .. . n │ citeti │ ┌──────────┬────┼────────────────────────┼───────┤ 1 │ c │ │ S 1 │ c 11 c 12 c 13 .. . 1n│ │ Ishodišta │ S 2 │ c 21 c 22 c 23 .. . c 1 │ 2n│ │ (strojevi) │ .. . │ │ .. . │ 1 │ c │ │ S n │ c n1 c n2 c n3 nn│ ├──────────┴────┼────────────────────────┼───────┘ │ Potrebe │ 1 1 1 ... 1 │ └───────────────┴────────────────────────┘
Problem pridruživanja može se dakle riješiti i nekim od postupaka za rješavanje transportnog problema, ali je tada problem višestruko degeneriran jer postoji samo n bazičnih varijabli koje su različite od 0, dok ih je n-1 (od ukupno 2n-1) jednako nuli. Osim minimizacije, moguća je maksimizacija, npr. kod problema kod kojeg je potrebno maksimizirati produktivnost kad se n radnika raspoređuje na n poslova pri čemu je poznata produktivnost pij kad radnik i radi na poslu j. Funkcija cilja tada glasi max Σ Σ p ij x ij i
j
uz ograničenja da svaki radnik radi upravo jedan posao, a da na svakom poslu radi po jedan radnik.
6.7.2. Nestandardni problem pridruživanja Kod nestandardnog problema pridruživanja imamo m strojeva i n poslova, gdje je m različito od n. Takav problem rješava se dodavanjem fiktivnih poslova ili fiktivnih strojeva na sljedeći način: Ako imamo više strojeva nego poslova, dodat ćemo m-n fiktivnih poslova s troškovima jednakima nuli. Strojeve koje u kona čnom rasporedu rade na fiktivnim poslovima smatrat ćemo neraspoređenima. Ako više poslova ima nego strojeva, dodajemo n-m fiktivnih strojeva, s troškovima jednakima nuli, a poslove koji se u rješenju rade na fiktivnim strojevima smatramo neobavljenima.
6.7.3. Metoda grananja i ograđivanja Probleme pridruživanja moguće je rješavati i kombinatorikom, tj. generiranjem svih mogućih rasporeda i zadržavanjem onoga s najmanjim troškom. Međutim, kako je za n strojeva i n poslova broj mogućih kombinacija n!, što npr. za n=10 iznosi 3.628.800, lako se zaključuje da je takav postupak krajnje neprikladan. Metoda grananja i ograđivanja (Branch and Bound) omogućit će nam da ispitujemo samo one kombinacije kod kojih po nekom kriteriju možemo očekivati optimalno rješenje, dok ostale kombinacije odbacujemo i ne razvijamo dalje. Varijanta te metode primijenjena je već kod mješovito-cjelobrojnog optimiranja, ali postoji još čitav niz primjena.
Analiza m reža
145
Naglasimo samo da i mnogi programi iz područ ja umjetne inteligencije, kao što je npr. program za igranje šaha, koriste jednu od modifikacija te metode. Primjer: Potrebno je optimalno rasporediti 5 strojeva na 5 poslova, ako je poznata matrica troškova: ┌────────────────────┐ │
Poslovi
├────────────────────┤
│ 1 2 3 4 5 ┌─────────┬───┼────────────────────┤ │ │ A │ 7 26 55 43 28 │ │ B │ 83 57 40 77 61 │ Strojevi │ C │ 38 93 14 29 86 │ │ D │ 52 10 48 61 73 │ │ E │ 21 56 49 48 33 └─────────┴───┴────────────────────┘
│ │
│ │ │ │ │
Ako u svakom retku matrice prona đemo najmanji element i odaberemo raspored koji odgovara položaju tih elemenata, dobit ćemo rješenje od kojeg nema boljeg. Ako nam se pritom još i posre ći da je rješenje moguće, dakle da svaki stroj radi samo jedan posao, postupak završava. U našem slu čaju, kao i u većini ostalih slučajeva, ┌────────────────────┐ to nije tako. │ │ │ │ │
│ 1 2 3 4 5 ┌───┼────────────────────┤ A │ 7 26 55 43 28 B │ 83 57 40 77 61 C │ 38 93 14 29 86 D │ 52 48 61 73 10 E │ 21 56 49 48 33 └───┴────────────────────┘
│ │ │ │ │ │
Optimalno rješenje 7+40+14+10+21=92 ne možemo prihvatiti jer se poslovi 4 i 5 uopće ne rade, ali iz njega možemo vidjeti da će nas optimalni raspored stajati barem 92 novčane jedinice, pa takvo rješenje nazivamo donjom granicom. S druge strane, sumiranjem članova po dijagonali matrice dobit ćemo moguće rješenje. Iznos toga rješenja prozvat ćemo gornjom granicom. Za naš primjer odlučit ćemo se za manju od suma po glavnoj i sporednoj dijagonali tj. min (7+57+14+61+33, 28+77+14+10+21) = min (172, 150) = 150 Sada možemo početi grananje, tako da redom stroj A raspoređujemo na poslove 1,2,3,4 i 5, izračunavajući pritom donju granicu takvog rasporeda. Za kombinaciju A1 donja granica izračunava se kao trošak kad stroj A radi na poslu 1 uvećan za donju granicu rasporeda preostalih strojeva na preostale poslove, koju dobijemo sumiranjem najmanih elemenata po redcima pripadne podmatrice. ┌────────────────────┐ │ 1 2 3 4 5 ┌───┼────────────────────┤ │ A │ ────────────────── │ 26 55 43 28 7 │ B │ 83│ 57 40 77 61 │ C │ 38│ 93 14 29 86 │ D │ 52│ 10 48 61 73 │ E │ 21│ 56 49 48 33 └───┴────────────────────┘
│ │ │ │ │ │
146
Operacijska istraživanja
Donja je granica za A1 dakle 7 + (40 + 14 + 10 + 33) = 104. To je rješenje nemoguće, jer se posao 4 ne radi, ali ukazuje na mogući optimum u toj grani. Ostale donje granice izračunavaju se kako slijedi: A2: A3: A4: A5:
DG DG DG DG
= = = =
26 55 43 28
+ + + +
(40+14+48+21) (57+29+10+21) (40+14+10+21) (40+14+10+21)
= = = =
149, 172, 128, 113,
nemogu ć e nemogu ć e nemogu ć e nemogu ć e
Vidimo da kad A rasporedimo na 3, trošak ne može biti manji od 172, pa tu granu ne moramo dalje ni razvijati, jer već poznajemo moguće rješenje s iznosom 150. Prema dobivenim donjim granicama, najizglednije je dalje razvijati granu A1 (vidi sliku 6-22), pri čemu B pokušavamo rasporediti na 2, 3, 4 i 5: A1-B2: A1-B3: A1-B4: A1-B5:
DG DG DG DG
= = = =
7+57 7+40 7+77 7+61
+ + + +
(14+48+33) (29+10+33) (14+10+33) (14+10+48)
= = = =
159, 119, 141, 140,
nemogu ć e mogu ć e mogu ć e mogu ć e
Dobili smo novo moguće rješenje koje je bolje od dosadašnje gornje granice. To rješenje jest 119, što postaje nova gornja granica, pri čemu se mogu zanemariti sve grane čija je donja granica ve ća od postignute gornje granice. To su sve grane osim A5, pa A5 dalje raščlanjujemo: A5-B1: A5-B2: A5-B3: A5-B4:
DG DG DG DG
= = = =
28+83 28+57 28+40 28+77
+ + + +
(14+10+48) (14+48+21) (29+10+21) (14+10+21)
= = = =
183, 168, 128, 150,
mogu ć e nemogu ć e mogu ć e mogu ć e
Niti jedno rješenje iz te grane nema donju granicu manju od postoje će gornje granice, iz čega zaključujemo da je pronađen optimum. Rješenje s iznosom 119 nastalo je rasporedom A1-B3-C4-D2-E5.
6.7.4. Problemi smještaja centara posluživanja Često je potrebno odrediti lokaciju nekih centara posluživanja, kao što su pošte, banke, robne kuće, ambulante, tako da se ti centri po nekom kriteriju što više približe korisnicima. Sli čni su problemi i problemi smještaja tvornica u koje se
sirovine šalju iz više mjesta, odnosno smještaja tvornica iz kojih se proizvodi šalju k više potrošača, pri čemu treba smanjiti transportni trošak.
Analiza m reža
147
Slika 6-22 Postupak grananja i ogra đivanja
6.7.4.1. Maranzanin iterativni postupak Uočimo sljedeći problem. U nekoj regiji še ćerna repa uzgaja se na 6 lokacija. Na nekima od tih lokacija potrebno je sagraditi ukupno 2 tvornice za preradu, tako da se smanje ukupni troškovi transporta do tih tvornica. Poznata je matrica troškova transporta između svake od lokacija te proizvodni kapacitet tih lokacija.
148
Operacijska istraživanja A
A B C D E F
B
C
D
E
F
┌─────────────────────────┐
5 4 2 7 │ 0 10 │ 10 0 3 9 1 8 │ 5 3 0 5 3 2 │ 4 9 5 0 7 4 │ 2 1 3 7 0 1 │ 7 8 2 4 1 0 └─────────────────────────┘
Kapacitet
│ │ │ │ │ │
50 0 30 0 40 0 20 0 60 0 70 0
Taj problem riješit ćemo iterativnim postupkom koji je je predložen u (Maranzana, 1964). U početnoj fazi postupka proizvoljno odabiremo lokacije za tvornice, npr. L 1 -> A, L2 -> D. 1. iteracija: Za svaku od tvornica određujemo skup lokacija iz kojih će se sirovina slati u tu tvornicu tako da za svaku lokaciju utvrdimo kojoj je tvornici bliže, tj. do koje je transportni trošak manji. Tako npr. za B trošak tansporta u A iznosi 10, dok trošak transporta u D iznosi 9, pa B treba pridružiti skupu koji opskrbljuje tvornicu u D. Tako dobijemo: S1 = š A, C, E ć
S2 = š B, D, F ć
Analiza m reža
149
Za svaki od tih skupova određujemo centar gravitacije, dakle logični smještaj tvornice unutar toga skupa. To ćemo učiniti tako da za svaku od lokacija koje su elementi skupa izračunamo ukupan trošak kad bismo je snabdijevali iz svih lokacija iz skupa. Ako za lokaciju tvornice unutar skupa S1 odaberemo A, neće biti troška za slanje 500 jedinica iz A u A, dok će slanje 400 jedinica iz C u A koštati 5 novčanih jedinica po svakoj, a slanje 600 jedinica iz E u A 2 nov čane jedinice po svakoj. Ako sa Ti označimo ukupan trošak ako tvornicu smjestimo u i, imamo: T A = 0500 + 5 400 + 2600 = 3200 T C = 5500 + 0 400 + 3600 = 4300 T E = 2500 + 3 400 + 0600 = 2200
Za elemente skupa S2 možemo izračunati T B = 0300 + 9 200 + 8700 = 7400 T D = 9300 + 0 200 + 4700 = 5500 T F = 8300 + 4 200 + 0700 = 3200
Iz ovoga vidimo da bi u skupu S1 tvornicu trebalo postaviti u E, dok bi u skupu S2 tvornicu trebalo postaviti u F. Tako ćemo i učiniti, i postupak određivanja skupova i centara gravitacije ponavljati dok centri ne ostanu isti u dvije sukcesivne iteracije. Nove su lokacije L1 -> E, L2 -> F 2. iteracija: S1 = š A, B, E ć S2 = š C, D, F ć
Troškovi u S1: T 0500 + 10300 + 2600 = 4200 A = T 0300 + 1600 = 5600 B = 10500 + 2500 + 1300 + 0600 = 1300 T E =
Troškovi u S2: T C = 0400 + 5 200 + 2700 = 2400 T D = 5400 + 0 200 + 4700 = 4800 T F = 2400 + 4 200 + 0700 = 1600
Centri gravitacije ostali su isti, pa zaklju čujemo da je postignut optimum. Jednu ćemo tvornicu postaviti u E i snabdijevati je iz A, B i E, dok ćemo drugu postaviti u F i snabdijevati je iz C, D i F. Valja primijetiti da je taj postupak heuristički i da ne garantira postizanje optimalnog rješenja. Čitalac to može lako provjeriti ako taj problem rješava uzevši za početno rješenje npr. L1=A, L2=C.
150
Operacijska istraživanja
6.7.4.2. Primjena cjelobrojnog programiranja Kod problema smještaja podrazumijeva se da se vrijednost rješenja može na neki način kvantificirati, kao što je to bio slučaj s ukupnim troškom u prethodnom problemu. Međutim, kad je riječ o smještaju nekih javnih centara posluživanja, kao što su ambulante, pošte, trgovine, kriterij optimalnosti nije lako jednozna čno definirati, pa će se kod tih problema pojavljivati nadomjesne funkcije cilja od kojih su najčešće: a) suma ponderiranih udaljenosti ili vremena putovanja (pomnoženih s brojem korisnika) b) udaljenost ili utrošeno vrijeme najudaljenijeg korisnika U praksi će se često ti kriteriji kombinirati. Slijedi tipičan model smještaja centara posluživanja. Ako su K - skup lokacija na kojima žive korisnici, C - skup lokacija na kojima su smješteni centri posluživanja, D - granična udaljenost poslije koje se korisnik smatra nepokrivenim, dkc - udaljenost od lokacije k do lokacije c, xc - 1 ako je centar smješten na lokaciji c, 0 inače, Pk - skup lokacija koje pokrivaju lokaciju k unutar granične udaljenosti D: Pk = š c
ε
C │ d kc
≤
D ć
bk - broj korisnika na lokaciji k, n - ukupan broj centara posluživanja, tada je funkcija cilja max
Σ
b y k k
kεK
uz Σ
x c ≥ y k,
∀
k
ε
K
cεPk
Σ
x c = n
cεC
x c = (0,1)
∀
c
ε
C
y k = (0,1)
∀
k
ε
K
Analiza m reža
151
Nejednadžba Σ
x c ≥ y k
cεPk
osigurava da varijabla yk koja označava pokrivenost korisnika koji žive na lokaciji k, nosi vrijednost 1 samo ako barem jedan element iz Pk ima pripadni xc = 1, tj. barem jedan centar posluživanja smješten je u lokaciji c koja je od lokacije k udaljena manje od D. U tom se modelu dakle maksimizira broj korisnika pokrivenih smještajem centara posluživanja, pa neke lokacije s malim brojem stanovnika mogu ostati nepokrivene. Takvo nam rješenje neće uvijek biti prihvatljivo, npr. pri odre đivanju smještaja stanica hitne pomoći. Kod takva ili slična problema možemo uvesti dvije mjere za udaljenost. Jedna udaljenost predstavljat će, kao i do sada, graničnu udaljenost preko koje se korisnik smatra nepokrivenim, dok će druga udaljenost, nazovimo je U, biti optimalna udaljenost unutar koje ćemo pokušati smjestiti maksimalan broj korisnika. Time uvodimo i skup lokacija Ok koje optimalno pokrivaju lokaciju k Ok = š c
ε
C │ d kc
≤
U ć
Model sada ima oblik max
Σ
b y k k
kεK
uz Σ
x c ≥ y k,
∀
k
ε
K
∀
k
ε
K
cεOk
Σ
x c
≥
1,
cεPk
Σ
x c = n
cεC
x c = (0,1)
∀
c
ε
C
y k = (0,1)
∀
k
ε
K
Primjer: Poznata je matrica međusobnih udaljenosti 6 lokacija (u kilometrima) i broj korisnika na svakoj lokaciji:
152
Operacijska istraživanja
┌──────────────────────┬───────────┐ Broj │ │ 1 2 3 4 5 6 │ korisnika │ ├───┬──────────────────┼───────────┤ │ 1 │ 0 9 2 3 4 8 │ 5000 │ 2 │ 9 0 4 7 11 3 │ 1000 │ 3 │ 2 4 0 3 7 5 │ 50 0 │ 4 │ 3 7 3 0 8 3 │ 10000 │ 5 │ 4 11 7 8 0 12 │ 8000 │ 6 │ 8 3 5 3 12 0 │ 4000 └───┴──────────────────┴───────────┘
│ │ │ │ │ │ │ │
Potrebno je rasporediti dvije vatrogasne stanice tako da svi korisnici budu udaljeni najviše 6 kilometara od stanice, uz maksimalan broj korisnika koji su udaljeni najviše 4 kilometra. Za svaku lokaciju k potrebno je prvo odrediti skupove Ok i Pk: O1 O2 O3 O4 O5 O6
= = = = = =
š š š š š š
1, 2, 1, 1, 1, 2,
3, 4, 5 ć 3, 6 ć 2, 3, 4 ć 3, 4, 6 ć 5 ć 4, 6 ć
P1 P2 P3 P4 P5 P6
= = = = = =
š š š š š š
1, 2, 1, 1, 1, 2,
3, 4, 5 ć 3, 6 ć 2, 3, 4, 6 ć 3, 4, 6 ć 5 ć 3, 4, 6 ć
Sada možemo pisati funkciju cilja 1 + 1000 y 2 + 500 y 3 + 10000 y 4 + 8000 y 5 + max 5000 y 4000 y 6
i ograničenja x 1
+ x 2 + x 1 + x 2 + x + 1 x 1 x 2
≥ y x 5 1 3 + x 4 + x + x x ≥ y 3 6 2 x x y + ≥ 3 4 3 x x x ≥ y + + 3 4 6 4 + x ≥ y 5 5 + x + x 4 6 ≥ y 6
+ x 2 + x 1 + x 2 + x + 1 x 1 x 2 +
x ≥ 1 3 + x 4 + x 5 x + x 3 6 ≥ 1 x + x 3 + x 4 6 ≥ 1 x + x 3 + x 4 6 ≥ 1 x + 5 ≥ 1 x x + x ≥ + 1 3 4 6
x 1
x 1 + x 2 + x 3 + x 4 + x 5 + x 6 = 2 x c = (0,1), c = 1,...6 y k = (0,1), k = 1,...6
Mrežno planiranje
153
7. MREŽNO PLANIRANJE Uspješno upravljanje velikim projektima umnogome zavisi o pažljivom planiranju, terminiranju i koordinaciji brojnih povezanih aktivnosti. Krajem pedesetih godina razvijene su metode mrežnog planiranja uz pomo ć kojih je moguće lakše i pouzdanije pratiti odvijanje projekata, predvidjeti mogu će izvore problema i koordinirati aktivnosti u projektu tako da se izbjegne kašnjenje. Od mnogih metoda najpoznatije i najčešće korištene su metode PERT (Program Evaluation and Review Technique) i CPM (Critical Path Method). Metoda CPM nastala je 1956 ─57. u kompaniji E.I. du Pont de Nemours za potrebe planiranja u kemijskoj industriji. Nakon uspješne primjene kod izgradnje nove tvornice, metoda je primijenjena i u druge svrhe. Metodu PERT razvila je tokom 1958. ratna mornarica Sjedinjenih Ameri čkih Država da bi se ubrzao razvoj balisti čkih projektila Polaris. Taj je projekt zahtijevao koordinaciju tisuća privatnih i vladinih poduzeća. Primjena metode PERT pokazala se tako uspješnom da je projekt završen dvije godine prije roka, pa se metoda nastavila koristiti i u drugim poslovima, u početku za potrebe oružanih snaga, a kasnije svuda gdje je bilo potrebno bolje i efikasnije planiranje. Evo samo nekih mogućih primjena metoda mrežnog planiranja: ─ građevinski zahvati (zgrade, tvornice, mostovi, ceste), ─ proizvodnja i sastavljanje velikih strojeva, aviona, brodova, elektroni čkih računala, ─ znanstvena istraživanja, ─ razvoj novih proizvoda, oružja, informacijskih sustava. Za obje metode zajedničko je da se projekt raščlanjuje na pojedinačne aktivnosti koje imaju definirane preduvjete i zadano trajanje. Slijed aktivnosti prikazuje se mrežom. Značenje grana i čvorova u mreži razlikuje se u dva osnovna tipa prikaza mreže, mreži s aktivnostima na granama i mreži s aktivnostima u čvorovima.
7.1. Mreža s aktivnostima na granama Iako je mreža s aktivnostima u čvorovima prirodnija i jednostavnija za crtanje, mrežu s aktivnostima na granama valja upoznati ve ć i zato što su mnogi danas raspoloživi programski sustavi za računarsko rješavanje problema mrežnog planiranja zasnovani na tome prikazu. Mreža se definira ovako: a) grane u mreži predstavljaju pojedinačne aktivnosti, b) čvorovi u mreži označavaju određene vremenske trenutke u kojima završava jedna ili više aktivnosti, c) aktivnosti se jednoznačno označavaju svojim početnim i završnim čvorom,
154
Operacijska istraživanja
d) smjer grana prikazuje slijed aktivnosti. Ako je neka aktivnost predstavljena izlaznom granom iz čvora, ona ne može započeti ako nisu završene sve aktivnosti koje u taj čvor ulaze. Primjer: Izgradnja tvornice sastoji se od sljede ćih poslova zadanih trajanjem (u tjednima) i preduvjetima: ┌────────────────────────────────────┬──────────┬────────────┐ │ Aktivnost │ Trajanje │ Preduvjeti ├────────────────────────────────────┼──────────┼────────────┤ │ A - Projektiranje nove zgrade │ 25 │ │ B - Detaljni gra đ evinski projekt │ 30 │ A │ C - Izvo đ enje zgrade │ 60 │ B │ D - Narudžba strojeva │ 1 │ A │ E - Izrada strojeva │ 50 │ D │ F - Isporuka strojeva │ 4 │ E │ G - Puštanje u pogon │ 6 │ C, F └────────────────────────────────────┴──────────┴────────────┘
│ │ │ │ │ │ │ │
Mreža koja prikazuje opisani projekt vidi se na slici 7-1
Slika 7-1 Projekt prikazan mrežom
7.1.1. Rješenje linearnim programiranjem Ukupno trajanje projekta može se izra čunati i linearnim programiranjem. Ako s ti označimo vrijeme događaja i, dakle trenutak u kojem može započeti aktivnost aij, tada je, za naš primjer, ukupno trajanje projekta koje želimo minimizirati (t7 - t1). Linearni program ima oblik uz
min t7 - t1 t2 t3 t6 t4 t5 t6 t7
-
t1 t2 t3 t2 t4 t5 t6
≥ ≥ ≥ ≥ ≥ ≥ ≥
25 30 60 1 50 4 6
ti
≥
0
Mrežno planiranje
155
Taj linearni program možemo riješiti simpleksnom metodom. Međutim, malen broj ograničenja i njihov oblik omogućuju nam da ga riješimo i ručno, tako da postavimo t1 = 0, a ostale vrijednosti za ti odaberemo tako da zadovoljavaju ograničenja. Tako dobijemo t2 = 25, t3 = 55, t4 = 26, t5 = 76, t6 = 115, t7 = 121. Najkraće trajanje našeg projekta bit će, dakle, 121 dan. Kod velikog problema s razgranatom mrežom rješenje neće biti tako lako izračunati, pa će se, zbog velikog broja linearnih nejednadžbi, problemi mrežnog planiranja obično rješavati metodama analize mreža.
7.1.2. Rješenje analizom mreža Za svaki čvor u mreži možemo definirati najranije vrijeme događaja j kao najranije vrijeme u kojem može započeti aktivnost koja kreće iz čvora j. Aktivnost koja izlazi iz čvora j može započeti tek kad sve aktivnosti koje ulaze u čvor j završe. Na primjeru sa slike 7-2 aktivnost D može započeti tek kad završe aktivnosti A, B i C. Najranije vrijeme događaja j može se izračunati kao U j = max (U 1 + t1j, U 2 + t2j, U 3 + t3j)
gdje su Ui najranija vremena za događaje i, i=1,2,3, a t1j, t2j i t3j trajanja aktivnosti A, B i C. Općenito se može izreći formula za izračunavanje U j kao U j = max (U i + tij) i
gdje je tij trajanje aktivnosti (i, j). Prisjetimo li se Bellman ─ Fordove metode za izračunavanje najduljeg puta u mreži, vidimo da najranije vrijeme nekog događaja zapravo predstavlja najdulji put u mreži od ishodišta do čvora koji predstavlja taj događaj.
156
Operacijska istraživanja
Slika 7-2 Aktivnost i više preduvjeta Slično se može definirati i najkasnije vrijeme događaja i kao najkasnije vrijeme u kojem aktivnost (i, j) mora početi a da se vrijeme završetka cijelog projekta ne promijeni.
Slika 7-3 Više aktivnosti sa zajedničkim preduvjetom Prema slici 7-3 najkasnije vrijeme doga đaja i jest V i = min (V 4 - ti4, V 5 - ti5, V 6 - ti6)
gdje su tij, j=4,5,6 trajanja aktivnosti F, G i H. Općenito, najkasnije vrijeme nekog događaja računa se kao V i = min (V j - tij) j
gdje su (i, j) aktivnosti koje počinju u čvoru i, a tij njihova trajanja. Najkasnije vrijeme računa se kroz mrežu nakon izračunavanja najranijih vremena unatrag, od posljednjeg čvora u kojem se najkasnije i najranije vrijeme izjednačavaju.
Mrežno planiranje
157
U mreži s aktivnostima na granama svaki se čvor obično predstavlja kao krug podijeljen u tri segmenta. U gornju polovinu kruga upisuje se redni broj čvora tj. događaja, u donju lijevu četvrtinu najranije, a u donju desnu četvrtinu najkasnije vrijeme događaja.
Slika 7-4 Događaj prikazan čvorom U našem primjeru mreža s već izračunatim najranijim i najkasnijim vremenima vidi se na slici 7-5
Slika 7-5 Projekt prikazan mrežnim planom Vidi se da je kod nekih događaja najranije vrijeme jednako najkasnijem, dok kod drugih to nije tako. Razlika između najranijeg i najkasnijeg vremena nekog događaja naziva se vremenskom rezervom doga đaja. Ako iz bilo kojeg razloga zakasni događaj koji nema vremenske rezerve, zakasnit će i cijeli projekt. Zbog toga, događaje bez vremenske rezerve nazivamo kritičnim događajima, a put koji spaja početak i završetak projekta preko kriti čnih događaja nazivamo kritičnim putem. Aktivnosti na kriti čnom putu nazivamo kritičnim aktivnostima. U našem primjeru, kritični su događaji 1, 2, 3, 6 i 7, a kritične aktivnosti A, B, C i G. Kao rezultat terminskog plana za svaku aktivnost (i, j) važno je dobiti sljede će informacije:
158
Operacijska istraživanja
1. najraniji početak aktivnosti (earliest start) ESij, 2. najkasniji početak aktivnosti (latest start) LSij, 3. najraniji završetak aktivnosti (earliest finish) EFij, 4. najkasniji završetak aktivnosti (latest finish) LFij, 5. vremensku rezervu aktivnosti (total float) Rij. Ako su poznata najranija i najkasnija vremena doga đaja i i j, te trajanje aktivnosti tij, te se veličine mogu lako izračunati: ES i ij = U LS V ij = j - tij EF ij = U i + tij LF ij = V j R LF = ij ij - ES ij - tij Aktivnost je kritična ako je Rij = 0 odnosno LFij - ESij = tij. Raspolažući tim informacijama, osoba odgovorna za praćenje projekta može lako identificirati kritične poslove i poduzeti korake da se sprije či kašnjenje projekta. 1. 2. 3. 4. 5.
7.1.3. Fiktivne aktivnosti U nekim je slučajevima potrebno u mrežu dodati aktivnost koja u stvarnom projektu ne postoji, već se uvodi da bi se postigla jednozna čnost u definiciji aktivnosti ili korektno postavila zavisnost među aktivnostima. Takva aktivnost naziva se fiktivnom aktivnošću. Kako je u mreži s aktivnostima na granama svaka aktivnost jednoznačno zadana početnim i završnim čvorom, ne može postojati više aktivnosti koje imaju zajednički početak i kraj. Uvođenjem fiktivne aktivnosti rješava se ovaj problem na način prikazan slikom 7-6 Zavisnost među aktivnostima katkad je moguće korektno prikazati samo pomo ću fiktivne aktivnosti. Slika 7-7 ilustrira pogrešno i ispravno zadane zavisnosti u mreži za sljedeći primjer: Aktivnost C C D
Preduvjet A B B
Slika 7-6 Paralelne aktivnosti
Mrežno planiranje
159
Slika 7-7 Prikaz zavisnosti
7.2. Metoda kritičnog puta i analiza troškova Osnovne pretpostavke metode CPM jesu te da se trajanje neke aktivnosti može točno procijeniti te da je trajanje aktivnosti obrnuto proporcionalno s koli činom resursa angažiranih na njoj. Dakle, angažiranjem dodatnih radnika, strojeva ili materijala trajanje neke aktivnosti mo ći će se skratiti. To će, naravno, uvećati direktne troškove koji otpadaju na tu aktivnost, ali se može povoljno odraziti na ukupne troškove
160
Operacijska istraživanja
cijelog projekta ako skraćenjem aktivnosti skraćujemo i ukupno trajanje projekta. Pretpostavka je, naime, da na projektu postoje dnevni fiksni troškovi (trošak unajmljivanja strojeva, prehrana i nadnice radnika i sl.). Osim toga, ako je riječ o razvoju novog proizvoda, izlazak na tržište prije konkurentskog poduzeća ostvarit će mnogo veću dobit. U principu, aktivnosti nećemo moći proizvoljno skratiti. Na nekim poslovima, na primjer, ima mjesta samo za ograničen broj radnika, pa angažman dodatnih radnika ne može koristiti skraćenju toga posla. Najkraće trajanje neke aktivnosti koje se može postići dodatnim angažmanom resursa zovemo skraćenim trajanjem te aktivnosti. Trajanje aktivnosti bez dodatnih resursa zvat ćemo normalnim trajanjem. Iznos koji moramo utrošiti da bi se trajanje aktivnosti skratilo za jedinicu vremena nazvat ćemo jediničnim troškom skraćenja.
Mrežno planiranje
161
Primjer: ┌───────────┬────────────┬──────────┬──────────┬──────────┐ │ │ │ │ │ Jedini č ni │ │ │ │ Normalno │ Skra ć en o │ trošak │ │ Aktivnost │ Preduvjeti │ trajanje │ trajanje │ skra ć enja │ ├───────────┼────────────┼──────────┼──────────┼──────────┤ │ A │ │ 7 │ 5 │ 5 │ │ B │ A │ 8 │ 3 │ 3 │ │ C │ B │ 6 │ 4 │ 5 │ │ D │ A │ 5 │ 2 │ 2 │ │ E │ D │ 9 │ 6 │ 5 │ │ F │ C, E │ 5 │ 2 │ 5 │ │ G │ F │ 4 │ 3 │ 4 │ │ H │ C, E │ 8 │ 6 │ 6 │ └───────────┴────────────┴──────────┴──────────┴──────────┘
Fiksni trošak iznosi 6 novčanih jedinica za svaku vremensku jedinicu trajanja projekta. Na slici 7-8 prikazana je mreža i izračunato trajanje projekta uz normalna trajanja svih aktivnosti. Ako sa f označimo fiksni trošak po jedinici vremena trajanja projekta, t trajanje projekta a Ts trošak skraćenja, tada se ukupni trošak Tu može izračunati kao T t + T u = f s
što za taj slučaj iznosi T u = 630 + 0 = 180
Ako sve aktivnosti maksimalno skratimo, rezultat vremenske analize možemo očitati iz slike 7-9
Slika 7-8 Rješenje problema uz normalno trajanje
162
Operacijska istraživanja
Slika 7-9 Rješenje problema uz skra ćeno trajanje Ukupni trošak iznosi sada T u = 619 + (7-5) 5 + (8-3)3 + (6-4)5 + (5-2)2 + + (9-6)5 + (5-2)5 + (4-3)4 + (8-6)6 = = 114 + 87 = 201
Mrežno planiranje
163
Dakle, ukupni je trošak veći, pa zaključujemo da se ne isplati maksimalno skraćivati sve aktivnosti. Optimalna trajanja možemo izra čunati na dva načina: pomoću enumeracije i pomoću matematičkog programiranja.
7.2.1. Analiza troškova enumeracijom Kod enumeracije pokušat ćemo promatrati utjecaj skra ćivanja pojedinačnih aktivnosti ili neke kombinacije aktivnosti na trošak cijelog projekta. Ukupno trajanje, dakle i fiksni trošak, moći će se smanjiti samo skraćivanjem aktivnosti na kritičnom putu. U slučaju normalnih trajanja (slika 7-8) imamo dva paralelna kritična puta: 1, 2, 3, 5, 6, 7 i 1, 2, 4, 5, 6, 7. Kritične su aktivnosti dakle A, B, C, D, E, F i G. Promotrimo sada utjecaj skraćenja aktivnosti A na trošak projekta. Jediničnim skraćenjem aktivnosti A skraćuje se i trajanje projekta. To donosi uštedu zbog smanjenja fiksnog troška za 6 jedinica, ali i porast troškova zbog skraćenja za 5 jedinica, iz čega slijedi da A treba skratiti što više. Skraćeno trajanje aktivnosti A jest 5 jedinica, što ukupne troškove umanjuje za 2. Ako razmotrimo ponašanje troška uz promjenu trajanja kriti čnih aktivnosti F i G koje slijede jedna iza druge, zaklju čujemo da se isplati prvo skraćivati onu kojoj je jedinični trošak skraćenja manji. To je aktivnost G, čije jedinično skraćenje umanjuje trošak projekta za 2. G se može skratiti najviše za 1, nakon čega bi trebalo početi skraćivati aktivnost F. Međutim, skraćenjem G za 1 i H postaje kritična aktivnost: dobili smo dva paralelna kriti čna puta. Da bi se skratio cijeli projekt, potrebno je skratiti oba kriti čna puta. To bi za jedinično skraćenje projekta i uštedu od 6 jedinica
164
Operacijska istraživanja
značilo da treba uložiti 5 jedinica za aktivnost F i 6 jedinica za aktivnost H, što se ne isplati, jer uvećava ukupne troškove za 5. Aktivnosti B, C te D i E već sad leže na dva paralelna kriti čna puta. Dakle, treba skratiti po jednu aktivnost iz svakog. Moguće kombinacije i njihov utjecaj na ukupni trošak jesu: ┌─────────────────────────────────┐ │ Promjena │ │ Trošak ukupnog │ │ Aktivnosti skra ć enja troška │ ├─────────────────────────────────┤ │ B i D 3 + 2 = 5 -1 │ │ B i E 3 + 5 = 8 +2 │ │ C i D 5 + 2 = 7 +1 │ │ C i E 5 + 5 = 10 +4 │ └─────────────────────────────────┘
Dakle, jedina je isplativa kombinacija B i D. B možemo skratiti za 5, a D možemo skratiti za 3. Prema tome, B i D skraćujemo za 3. Ukupno trajanje umanjeno je sada za 2 + 1 + 3 = 6, dok su troškovi smanjeni za 2 + 2 + 3 = 7. Optimalno trajanje projekta jest 24 vremenske jedinice uz 173 jedinice troška. Nije teško zaključiti da će metoda enumeracije biti prikladna samo za vrlo male projekte. Veći projekti imaju često više paralelnih kriti čnih putova s više desetaka aktivnosti u svakom, te bi ispitivanje svih kombinacija moglo biti dugotrajno i skupo.
7.2.2. Analiza troškova matematičkim programiranjem Označimo li sa nij ─ normalno trajanje aktivnosti (i, j) sij ─ skraćeno trajanje aktivnosti (i, j) cij ─ jedinični trošak skraćenja aktivnosti (i, j) tij ─ trajanje aktivnosti (i, j), ovisnost trajanja aktivnosti (i,j) o uloženim sredstvima može se prikazati slikom 7-10
Slika 7-10 Ovisnost trajanja aktivnosti i troškova skraćenja
Mrežno planiranje
165
Treba primijetiti da linearna ovisnost troškova skra ćenja Tij vrijedi samo između sij i nij i može se izraziti kao za sij ≤ tij ≤ nij T ij = c ij(nij - tij) Ukupni troškovi skraćenja cijelog projekta tada su T c s = Σ ij(nij - tij) (i,j)
Ako je f fiksni trošak po jedinici trajanja projekta, ti najranije vrijeme događaja i, 1 prvi a n posljednji događaj projekta tada su fiksni troškovi T (tn - t1) f = f
166
Operacijska istraživanja
Ukupni troškovi suma su fiksnih troškova i troškova skraćenja T (tn - t1) + Σ c u = T f + T s = f ij(nij - tij) (i,j)
Ukupne troškove želimo minimizirati, što ćemo postići linearnim programiranjem uz ukupni trošak kao funkciju cilja. Model ima oblik min
c f (tn - t1) + Σ ij(nij - tij ) (i,j)
uz ograničenja za sve aktivnosti (i, j) za sve aktivnosti (i, j) sij ≤ tij ≤ nij za svaki događaj i ti ≥ 0 Za primjer iz poglavlja 7.2. model ima oblik tj - ti
min
uz t2 t3 t4 t5 t5 t6 t7
-
≥
tij
6(t7 - t1) 5(7 - t12) 2(5 - t24) 4(4 - t67) t1 t2 t2 t3 t4 t5 t6
≥ ≥ ≥ ≥ ≥ ≥ ≥
t12 t23 t24 t35 t45 t56 t67
+ + 3(8 - t23) + 5(6 - t35) + + 5(9 - t45) + 5(5 - t56) + + 6(8 - t57) 5 3 4
≤
t12
≤
≤
≤
2 6 2 3
≤
t23 t35 t24 t45 t56 t67
≤
≤ ≤ ≤
≤ ≤ ≤ ≤ ≤
7 8 6 5 9 5 4
Mrežno planiranje
t7 - t5
≥
6
t57
≤
t57
≤
167
8
za svaku aktivnost (i, j) ti ≥ 0 za svaki događaj i Treba naglasiti da opisani model daje samo optimalno rješenje. Me đutim, za kompetentnije donošenje odluka često je potrebno vidjeti ponašanje troškova i u okolini optimuma. Na primjer, možda je uz neznatno povećanje troškova moguće bitno skratiti projekt i tako dobiti na konkurentnosti i ugledu. Za takvu je analizu korisno imati krivulju na kojoj će se vidjeti odnos troškova i trajanja cijelog projekta. Tipičan izgled jedne takve krivulje prikazan je na slici 7-11 tij
≥
0
Slika 7-11 Ovisnost troškova o trajanju projekta Podatke potrebne za tu krivulju možemo dobiti na dva na čina. Jedan je pristup minimizacija fiksnih troškova ili trajanja uz ograničenje dodatnih sredstava za skraćenje aktivnosti na iznos G: uz
(tn - t1) min f ograničenja
Σ c ij (nij - tij) (i,j) tj - ti ≥ tij
ili ≤
min
(tn - t1)
G
za sve aktivnosti (i, j) sij ≤ tij ≤ nij za sve aktivnosti (i, j) ti ≥ 0 za svaki događaj i Alternativno, moguće je i zadati rok R za dovršenje projekta uz minimizaciju dodatnih troškova:
168
Operacijska istraživanja
min
uz
Σ c ij(nij - tij) (i,j)
tn - t1
≤
R
za sve aktivnosti (i, j) sij ≤ tij ≤ nij za sve aktivnosti (i, j) ti ≥ 0 za svaki događaj i Rješenje jednog od tih linearnih programa bit će ponovo samo jedna točka na krivulji troškova. Međutim, parametarskim programiranjem, dakle sistematskim rješavanjem linearnog programa uz variranje parametara G ili R, moguće je dobiti sve potrebne informacije za sagledavanje krivulje troškova. tj - ti
≥
tij
7.3. Metoda PERT Metoda CPM pretpostavlja da je trajanje pojedinih poslova poznato, i da ovisi samo o uloženim sredstvima. U realnom svijetu rijetko će biti tako. Kod nekih projekata, kao što su npr. znanstvena ili razvojna istraživanja, neki se poslovi rade po prvi puta. Za neke je moguće procijeniti trajanje prema trajanju sli čnih, već poznatih poslova, dok će se za neke druge, specifi čne aktivnosti trajanje moći samo pretpostaviti. Čak ni za jednostavne, već mnogo puta obavljene operacije često nismo u mogućnosti sa sigurnošću odrediti vrijeme trajanja. Vrijeme izvo đenja građevinskih radova, na primjer, varirat će u ovisnosti o atmosferskim prilikama. Metoda PERT uzima u obzir nesigurnost pri određivanju trajanja pojedinih aktivnosti. Za svaku se aktivnost zato zadaju tri vremena: 1) optimističko trajanje a ─ trajanje aktivnosti u posebno povoljnim okolnostima. 2) normalno trajanje m ─ trajanje koje se može pretpostaviti u normalnim uvjetima 3) pesimističko trajanje b ─ trajanje aktivnosi u izrazito nepovoljnim okolnostima, u kojima djeluju svi predvidivi nepovoljni činioci. Treba naglasiti da se kod sva tri vremena radi o procjenama, te da, teorijski, vrijeme trajanja neke aktivnosti može biti izvan intervala (a,b), naročito u slučaju katastrofe ili djelovanja nekih nepredvidivih nepovoljnih činilaca, ali da je statistički gledano ta vjerojatnost zanemarivo mala. Metoda PERT pretpostavlja da se stvarno trajanje aktivnosti ponaša prema beta-razdiobi (slika 7-12).
Mrežno planiranje
Slika 7-12 Beta-razdioba Očekivano vrijeme trajanja aktivnosti kod Beta razdiobe iznosi a + 4m + b
μ = ──────────
6
169
170
Operacijska istraživanja
Kako kod većine unimodalnih distribucija (s jednim ekstremom) po četna i krajnja vrijednost leže unutar tri standardne devijacije, od o čekivane vrijednosti tj. b - a = 6σ
standardna devijacija iznosi σ = (b - a)/6.
Varijanca distribucije jest kvadrat standardne devijacije, dakle σ ² = (( b - a)/6)²
Vremenska analiza kod metode PERT obavlja se tako da se za svaku aktivnost izračuna očekivano trajanje i varijanca. Koristeći očekivana trajanja dobije se kritični put i time očekivano trajanje projekta. Varijanca projekta izra čunava se kao suma varijanci na kritičnom putu. Primjer: Potrebno je metodom PERT procijeniti trajanje projekta koji se sastoji od sljedećih aktivnosti: ┌──────────┬────┬─────┬──────┬─────────────┐ │ Aktivnost │ a │ m │ b │ Preduvjeti ├──────────┼────┼─────┼──────┼─────────────┤ │ A │ 2 │ 5 │ 8 │ │ B │ 1 │ 3 │ 11 │ A │ C │ 1 │ 9 │ 11 │ A │ D │ 3 │ 6 │ 9 │ B │ E │ 7 │ 7 │ 13 │ B │ F │ 4 │ 4 │ 4 │ C │ G │ 3 │ 4 │ 5 │ D,E,F │ H │ 6 │ 9 │ 12 │ E, F └──────────┴────┴─────┴──────┴─────────────┘
│ │ │ │ │ │ │ │ │
Mrežno planiranje
171
Za svaku aktivnost izračunava se očekivano trajanje i varijanca: ┌───────────┬────┬──────┐ │ Aktivnost │ μ │ σ ² ├───────────┼────┼──────┤ │ A │ 5 │ 1 │ B │ 4 │ 25/9 │ C │ 8 │ 25/9 │ D │ 7 │ 1 │ E │ 8 │ 1 │ F │ 4 │ 0 │ G │ 4 │ 1/ 9 │ H │ 9 │ 1 └───────────┴────┴──────┘
│ │ │ │ │ │ │ │ │
Obavlja se vremenska analiza s očekivanim trajanjima:
Slika 7-13 Mrežni plan s o čekivanim vremenima Na slici 7-13 vidi se da postoje dva kritična puta: A, B, E, H i A, C, F, H. Očekivano trajanje projekta, tj. najranije vrijeme posljednjeg doga đaja Un, jednako je sumi očekivanih trajanja kriti čnih aktivnosti: (U E n) = 5 + 4 + 8 + 9 = 26
Varijanca trajanja projekta jednaka je sumi varijanci po kritičnom putu. Kako postoje dva kritična puta, dobit ćemo i dvije varijance: σ ²(U n) = 1 + 25/9 + 1 + 1 = 5 7/9 1 σ ²(U 2 n) = 1 + 25/9 + 0 + 1 = 4 7/9
Za varijancu trajanja projekta uzima se ve ća varijanca, dakle 5 7/9.
172
Operacijska istraživanja
7.3.1. Proračun vjerojatnosti Često će nas zanimati vjerojatnost da projekt završi do određenog roka. Da bismo tu vjerojatnost mogli izračunati, treba provesti sljede će razmatranje. Trajanja pojedinih aktivnosti slučajne su varijable. Trajanje cijelog projekta nastalo je zbrajanjem slučajnih varijabli (trajanja aktivnosti na kriti čnom putu), pa je i ono slučajna varijabla. Prema centralnom grani čnom teoremu suma velikog broja proizvoljno distribuiranih međusobno nezavisnih slučajnih varijabli daje slučajnu varijablu koja se ravna po normalnoj razdiobi. Tu, naravno, u prora čun unosimo određenu pogrešku, naročito za male projekte kod kojih broj aktivnosti, pa time i slučajnih varijabli u sumi, nije velik. Također nije sasvim točna pretpostavka da su slučajna trajanja pojedinih aktivnosti međusobno nezavisna (određene nepovoljne okolnosti mogu djelovati kroz cijelo trajanje projekta), ali za ve ćinu praktičnih primjena ta će aproksimacija dati zadovoljavaju će rezultate. Za očekivanje μ tako dobivene normalne razdiobe uzima se o čekivano trajanje projekta kao suma očekivanih trajanja aktivnosti na kritičnom putu, dok se za varijancu σ² uzima najveća suma varijanci po kritičnim putovima. Podsjetimo se, funkcija gustoće vjerojatnosti normalne razdiobe jest 1 -μ )²/2σ ²) f (x ) = ────── e(-(x σ (2π)½
dok je kumulativna funkcija vjerojatnosti, dakle vjerojatnost da slu čajna veličina poprimi vrijednost manju ili jednaku x, x ⌠ 1 -μ )²/2σ ²)dx │ ────── e(-(x F x ( ) = ½ ⌡ σ (2π) -∞
Taj se integral ne može analitički izračunati, pa je jedno od mogućih rješenja primjena neke od metoda numeri čke integracije (za pogrešku koja će pri tome nastati ne treba previše brinuti, ionako se radi o aproksimaciji). Alternativno, moguće je očitavanje iz tablica kumulativne funkcije standardne normalne razdiobe (normalne razdiobe s očekivanjem 0 i varijancom 1) koja ima oblik: x
⌠ ⌡
1
²/2)dx Φ (x ) = │ ───── e(-x -∞
(2π)½
U tu je svrhu potrebno varijablu koja se ravna po normalnoj razdiobi, linearno transformirati u varijablu koja se ravna po standardnoj normalnoj razdiobi: X - μ
Z = ───── σ
Mrežno planiranje
173
Vremenske rezerve pojedinih događaja također su slučajne varijable. Najranije vrijeme Ui događaja i ima varijancu σ²(U ²(Ui) koja se izračunava kao najveća suma varijanci aktivnosti na putu od po četnog čvora do čvora i. Varijanca σ²( V Vi) đ č ć najkasnijeg vremena Vi doga aja i izra unava se kao najve a suma varijanci aktivnosti na putu od posljednjeg čvora n do čvora i. Vremenska rezerva Ri događaja i slučajna je veličina i ima očekivanje R i = V i - U i
i varijancu σ ²(R ²(R ²(U ²(V i) = σ ²(U i) + σ ²(V i)
Za neki događaj koji ima vremensku vremensku rezervu može nas zanimati vjerojatnost njezina utroška, dakle nastanka novog kritičnog puta. Tu vjerojatnost transformacijom transformacijom u standardnu normalno distribuiranu distribuiranu varijablu izračunavamo na sljedeći način: ┌ ┐ ┌ ┐ U │ 0 - R │ │ i │ i - V i P (R (R = Φ │ ────── │ = Φ │ ────────────────── │½ i ≤ 0) │ σ (R │ (σ ²(U │ ²(U ²(V i) │ i) + σ ²(V i)) └ ┘ └ ┘ Vjerojatnost ispunjenja nekog čvrstog termina T za najranije vrijeme događaja Ui
jest
P (U (U i
≤
T )
=
┌ ┐ │ T │ T - U i Φ │ ────── │ │ σ (U │ i) └ ┘
7.4. Mreža s aktivnostima u čvorovima Kao što smo već napomenuli, mreža s aktivnostima u čvorovima mnogo je prirodnija i jednostavnija za crtanje od mreže s aktivnostima na granama. U takvoj mreži svaka se aktivnost označava pravokutnikom podijeljenim u sljede ća polja: ┌─────┬─────┬─────┐ │ ESx │ Tx │ EFx │ ├─────┼─────┼─────┤ │ │ x │ FFLx│ ├─────┼─────┼─────┤ │ LSx │ TFLx│ LFx │ └─────┴─────┴─────┘
Oznake su: x ─ Tx ─ ESx ─ EFx ─ LSx ─ LFx ─
identifikacija identifikacija aktivnosti trajanje aktivnosti najraniji početak aktivnosti najraniji završetak aktivnosti najkasniji početak aktivnosti najkasniji završetak aktivnosti
174
Operacijska istraživanja istraživanja
TFLx ─
ukupna vremenska rezerva (total (total float) float) koja govori za koliko se aktivnost može produžiti produžiti a da zbog toga ne zakasni cijeli projekt: TFLx = LFx - ESx - Tx = LFx - EFx FFLx ─ slobodna vremenska rezerva (free (free float) float) koja predstavlja razliku između najranijeg početka sljedbenika aktivnosti i najranijeg završetka aktivnosti. Drugim riječima, sve dok aktivnost ne utroši slobodnu vremensku rezervu, produženje aktivnosti ne utječe na najraniji početak niti jedne druge aktivnosti. Uobičajeno je da se kod tih mreža najranije vrijeme odnosi na po četak, a najkasnije vrijeme na kraj vremenskog perioda. Na primjer, ako je aktivnost 0 prva aktivnost u projektu i ima trajanje 4 dana, a aktivnost 1 njen je direktni nasljednik s trajanjem od 3 dana, tada vremenska analiza daje sljedeća najranija vremena: ┌─────┬─────┬─────┐ ┌─────┬─────┬─────┐ │ 1 │ 4 │ 4 │ │ 5 │ 3 │ 7 │ ├─────┼─────┼─────┤ ├─────┼─────┼─────┤ │ │ 0 │ ├────────┤ │ 1 │ │ ├─────┼─────┼─────┤ ├─────┼─────┼─────┤ │ │ │ │ │ │ │ │ └─────┴─────┴─────┘ └─────┴─────┴─────┘
Radi lakšeg crtanja mreže, korisno je za svaku aktivnost izračunati rang. rang. Rang Ri aktivnosti i u stvari predstavlja broj prethodnika te aktivnosti, a izra čunava se kao R 0 = 0 R i = max R j + 1 j
Aktivnosti j Aktivnosti j direktni su prethodnici aktivnosti i, a 0 početna aktivnost u projektu. Primjer: Izrada jednog segmenta informacijskog sustava nekog poduze ća sastoji se od sljedećih aktivnosti: ┌─────────┬───────────────────────────────────────────┬────────┬──────────┐ │Aktivnost│Naziv │Trajanje │Preduvjeti │ ├─────────┼───────────────────────────────────────────┼────────┼──────────┤ │ A │Idejno rješenje │ 12 │ │ │ B │Nabavka opreme │ 4 │ A │ │ C │ Izrada šifarskog sustava │ 5 │ A │ │ D │ Instalacija opreme │ 2 │ B │ │ E │ Izrada programa za kadrovsku evidenciju │ 16 │ C, D │ │ F │ Unos podataka za kadrovsku evidenciju │ 2 │ E │ │ G │ Testiranje programa za kadrovsku evidenciju │ 2 │ F │ │ H │ Izrada programa za obra č un OD │ 14 │ C, D │ │ I │ Testiranje programa za obra č un OD │ 3 │ H, F │ │ J │ Izrada programa za knjigovodstvo │ 18 │ C, D │ │ K │ Testiranje programa za knjigovodstvo │ 4 │ J │ │ L │Objedinjavanje Objedinjavanje sustava │ 3 │ G,I,K │ └─────────┴───────────────────────────────────────────┴────────┴──────────┘
Mrežno planiranje
175
Prije crtanja mreže potrebno je za svaku aktivnost izra čunati rang: R A R B R C R D R E R F R G R H R I R J R K R L
= = = = = = = = = = = =
0 R A + 1 = R A + 1 = R B + 1 = max (R (R C, R + 1 = E R F + 1 = max (R (R C, max (R (R F, max (R (R C, R + 1 = J max (R (R G,
0 + 0 + 1 + R D) 3 + 4 + R D) R H) R D) 3 + R I,
1 = 1 1 = 1 1 = 2 + 1 = max 1 = 4 1 = 5 + 1 = max + 1 = max + 1 = max 1 = 4 R K) + 1 =
(1, 2) + 1 = 3 (1, 2) + 1 = 3 (4, 3) + 1 = 5 (1, 2) + 1 = 3 max (5, 5, 4) + 1 = 6
Radi prostornog planiranja slike ustanovit će se broj aktivnosti pojedinog ranga: ┌───────┬─────────────────┐ │ Rang │ Broj aktivnosti ├───────┼─────────────────┤ │ 0 │ 1 │ 1 │ 2 │ 2 │ 1 │ 3 │ 3 │ 4 │ 2 │ 5 │ 2 │ 6 │ 1 └───────┴─────────────────┘
│ │ │ │ │ │ │ │
Slika 7-14 Vremenska analiza kod mreže s aktivnostima u čvorovima Sad se može nacrtati slika 7-14 i obaviti vremenska analiza:
176
Operacijska istraživanja istraživanja
8. PROBLEM NABAVKE I ZAMJENE ZAMJENE OPREME OPRE ME 8.1. Izbor trenutka za zamjenu opreme Većina industrijske opreme podliježe starenju što zna či da joj vrijednost s vremenom pada, a kvarovi su sve češći te troškovi održavanja rastu. U općem slučaju oprema čija je početna vrijednost u trenutku nabavke bila A 0 u nekom trenutku t vrijedi A 0Φ (t) te se pretpostavlja da se za taj iznos može prodati. Funkcija Φ(t) za t=0 ima vrijednost 1-k 1-k. Radi se o padu vrijednosti izazvanom fiksnim troškovima troškovima nabave nab ave (porez na promet, dostava, montaža). montaža ). U slučajevima kad postoje anomalije na tržištu (deficitarna oprema na čiju se isporuku dugo čeka), događa se da je k < 0. Daljnji tok funkcije jest eksponencijalni pad. Prema tome empirijska formula krivulje sa slike 8-1 bila bi oblika Φ (t) = (1-k (1-k )e-αt
Očekivanje ponašanja kumulativnih troškova održavanja prema slici 8-2 jest eksponencijalni eksponencijalni porast oblika: Ψ (t) = eμt - 1
Slika 8-1 Vrijednost opreme Slika 8-2 Troškovi održavanja Obje empirijske formule mogu se odrediti metodom najmanjih kvadrata ukoliko su raspoloživi tabelarni iskustveni podaci. Ukupni troškovi za nabavku i održavanje opreme jesu: Γ (t) = A = A + A 0 - A 0Φ (t) + A 0Ψ (t)
Za izbor optimalnog trenutka zamjene opreme traže se minimalni minimal ni prosječni troškovi (slika 8-3): Γ (t)
A 0Š(1 - Φ (t) + Ψ (t)]
γ (t) = ────── = ─────────────────────────
t
t
Ako ne postoje unaprijed poznati podaci, vrijednosti za Φ(t) i Ψ(t) dobivaju se praćenjem, a odluka o zamjeni donosi se kad se utvrdi da je γ(t) > γ(t-1).
Problem nabavke i zamjene opreme
177
Slika 8-3 Prosječni troškovi u praksi Postupak će se ilustrirati primjerom iz (Kaufmann, 1970). ─ Treba odrediti optimalni trenutak zamjene automobila. Cijena novog automobila A 0 = 35000 novčanih jedinica. Pra ćenjem troškova održavanja i cijena rabljenih automobila dobivena je tablica: ┌─────────────┬──────────────────────────────────────────┐ 6 12 18 24 30 36 42 │ Broj │ │ │mjeseci │ │ ├─────────────┼──────────────────────────────────────────┤ │ Pa d │ 5570 12150 14185 17500 20280 22625 24650 │ │vrijednosti │ │ ├─────────────┼──────────────────────────────────────────┤ │Kumulativni │ │ │troškovi │ 620 1500 2740 4500 6985 10500 15000 │ │održavanja │ │ ├─────────────┼──────────────────────────────────────────┤ │ Γ ( t ) │ 6190 13650 16925 22000 27265 33125 39650 │ ├─────────────┼──────────────────────────────────────────┤ │ γ ( t ) │ 1032 1138 940 917 909 920 944 │ └─────────────┴──────────────────────────────────────────┘
Najmanji su prosječni troškovi ako se automobil proda nakon 30 mjeseci. Ako se do podataka dolazilo vlastitim pra ćenjem, jasno je da će zamjena nužno zakasniti barem za jednu vremensku jedinicu. Treba uo čiti da kupca rabljenog automobila očekuju veći prosječni troškovi. Međutim, kako je nabavna cijena rabljenog automobila niža, uložen je manji kapital. Minimalna cijena kapitala odražava se kroz kamate, a uz adekvatno investiranje vrijednost kapitala je i ve ća tako da uštedu na nižim troškovima opreme može kompenzirati gubitak zbog zamrznutog kapitala. Krivulja prosječnih troškova prikazana je slikom 8-4
178
Operacijska istraživanja
Slika 8-4 Prosječni troškovi za numerički primjer
8.1.1. Aktualizacija U normalnoj tržišnoj ekonomiji banka na uloženi kapital daje odre đene godišnje realne kamate. Kod posudbe novca banka naplaćuje pozitivne kamate. Zbog toga glavnica npr. od 100 novčanih jedinica (NJ) danas uz realne kamatne stope α uložena u banku povećat će se kroz godinu dana na iznos 100(1+α ) bez ikakve aktivnosti ulagača. Slijedi da su novčani iznosi 100 NJ danas i 100(1+α ) za godinu dana ekvivalentni. Da bi se moglo uspoređivati novčane iznose u razli čitim vremenima, obavlja se tzv. aktualizacija. Radi se o svođenju svih vrijednosti na današnji dan. Iznos od 100 NJ realiziran za godinu dana ekvivalentan je dakle iznosu od 100/(1+α) realiziranom danas. Kod problema zamjene opreme radi se o novcu u različitim vremenskim točkama koji se ne smije zbrajati bez aktualizacije. Ispravniji je dakle postupak izra čunavanja ukupnih troškova svedenih na današnji dan: ┌
Φ (t)
┐
t
Ψ (k) - Ψ (k-1)
─────────────── Γ (t) = A 0│ 1 - ─────── │ + Σ └ (1+α )t ┘ k=1 (1+α )k
Problem nabavke i zamjene opreme
179
Primijenjeno na prethodni numerički primjer, a uz semestralnu realnu kamatnu stopu od 5%, dobije se: ┌───────────────────┬─────────────────────────────────────────┐ │Broj mjeseci │ 6 12 18 24 30 36 42 │ ├───────────────────┼─────────────────────────────────────────┤ │Γ (t) aktualizirano │7530 15630 20430 24420 29240 34090 40890 │ ├───────────────────┼─────────────────────────────────────────┤ │γ (t) aktualizirano │1255 1302 1135 1018 975 947 974 │ └───────────────────┴─────────────────────────────────────────┘ Optimalni trenutak zamjene odgađa se za 6 mjeseci. Slika 8-5 prikazuje aktualiziranu i neaktualiziranu krivulju prosje čnih troškova:
Slika 8-5 Aktualizirani i neaktualizirani prosječni troškovi
8.2. Problem izbora opreme Kod donošenja odluke o nabavci opreme, odnosno općenitije, o investiranju, javljaju se različiti problemi. Procjena financijske uspješnosti investicije bazira se na neizvjesnim podacima (buduće potrebe za proizvodima, cijene proizvoda, sirovina i ostali troškovi). Budući da investicija utječe i na život i sudbinu ljudi (nova radna mjesta, standard života, utjecaj na okoliš), donošenje odluke složen je posao. Kao što je već bilo napomenuto, metodama operacijskih istraživanja ne može se otkloniti neizvjesnost, ali se barem neki aspekti odlučivanja mogu olakšati. Na primjeru iz (Kaufmann, 1970) pokazat će se rješavanje problema izbora izme đu dvije naizgled
180
Operacijska istraživanja
nesumjerljive ponude. Pretpostavka je da kroz dulji budu ći period postoji potreba za određenim artiklom. Artikl se može prodati po cijeni od 10 novčanih jedinica. U cijeni artikla varijabilni troškovi sudjeluju sa 70%. Realna kamatna stopa iznosi 10%. Za proizvodnju tog artikla ponuđene su dvije vrste opreme A i B sljedećih karakteristika: Oprema A : vijek trajanja : 4 godine vijena : 50000 novčanih jedinica troškovi održavanja : Aritmetička progresija (a=1000, d=1000) vrijednost opreme na kraju perioda : 10000 novčanih jedinica proizvodni kapacitet : 10000 kom/godina Oprema B: vijek trajanja : 6 godina cijena : 65000 novčanih jedinica troškovi održavanja : Aritmetička progresija (a=2000, d=1000) vrijednost opreme na kraju perioda : 15000 novčanih jedinica proizvodni kapacitet : 14000 kom/godina Ponuđena oprema razlikuje se u sva četiri navedena atributa. Uz pretpostavku da su ti atributi jedini relevantni i da su podaci pouzdani, za donošenje odluke potrebno ih je učiniti sumjerljivima. Korištenje opreme svest će se na najmanji zajednički višekratnik njihova trajanja. Prora čunat će se aktualizirana dobit ostvarena kroz taj period opremom A i opremom B. Aktualizirana dobit kao funkcija investicije D(I) za opremu A jest: 29000
28000 27000 26000-40000 D (50000) = -50000 + ───── + ───── + ───── + ─────────── + 1.1 1.12 1.13 1.14 29000 28000 27000 26000-40000 + ───── + ───── + ───── + ─────────── + 1.15 1.16 1.17 1.18 29000 28000 27000 36000 + ───── + ───── + ───── + ───── 1.19 1.110 1.111 1.112 D (50000) = 100351
Investicijom se 1 NJ pretvara u 100351/50000 = 2.0 NJ
Problem nabavke i zamjene opreme
181
Za opremu B: 40000
39000 38000 37000 (65000) = -65000 + ───── + ───── + ───── + ───── + D 1.1 1.12 1.13 1.14 36000
35000-50000 40000 39000 + ───── + ─────────── + ───── + ───── + 1.15 1.16 1.17 1.18 38000 37000 36000 50000 + ───── + ───── + ───── + ───── 1.19 1.110 1.111 1.112 (65000) = 168949 D
Investicijom se 1 NJ pretvara u 168949/65000 = 2.6 NJ Slijedi zaključak da će nabavka opreme B donijeti veću aktualiziranu dobit. Korisno je uočiti da kod ulaganju u najpouzdaniju banku uz kamatnu stopu α (u pravilu minimalnu!) aktualizirana dobit uvijek iznosi 0 iako se radi o realnoj stopi. Takvo ulaganje smatra se investicijom minimalnog rizika i bez aktivnosti ulaga ča. Pozitivnu dobit donose sve one investicije koje uve ćavaju uloženi kapital više od važeće kamatne stope.
182
Operacijska istraživanja
9. PROBLEM VO\ENJA ZALIHA Problem vođenja zaliha javlja se u svim onim djelatnostima gdje je potrebno donijeti odluku o količini sirovina, poluproizvoda, finalnih proizvoda, likvidnih financijskih sredstava i slično koji moraju biti odmah raspoloživi za neki proces koji ih konzumira. Motivi za povećanje nivoa zaliha nalaze se u sigurnosti da će se proces moći odvijati nesmetano. Zaustavljanje procesa zbog nedostatnih zaliha izaziva troškove, gubitak dobiti ili neke druge nepovoljne posljedice. Osim toga, svaki postupak za obnavljanje zaliha kao što je izdavanje narudžbe, pokretanje proizvodnje, dostava i slično najčešće izaziva određene fiksne troškove. S druge strane držanje zaliha stvara troškove skladištenja koji nastanu zbog gubitka vrijednosti robe na skladištu, troškova za skladišni prostor, i što je često najvažnije, zamrznutog kapitala koji ne donosi nikakvu dobit. To dakako ne vrijedi u uvjetima grubih anomalija na tržištu kad se špekulativnim stvaranjem zaliha može ostvariti izuzetna dobit. U daljnjem razmatranju podrazumijevat će se stabilno tržište s pozitivnom realnom kamatnom stopom. Postoji velik broj matematičkih modela koji opisuju različite slučajeve vođenja zaliha. Modeli mogu biti deterministički i stohastički s dopušenim ili nedopuštenim manjkovima robe. U nekim se modelima manjkovi moraju nadoknaditi a u drugima ne itd. Bit će obrađeno nekoliko tipičnih slučajeva prema primjeru iz (Hillier, Lieberman, 1974). Problem je ovakav: Neka tvornica televizora proizvodi vlastite zvu čnike uz veliku produktivnost. Kao jedinica za vrijeme koristit će se mjesec (mj). Proizvodnja televizora kontinuirana je i iznosi a = 8000 kom/mj. Troškovi pokretanja proizvodnje zvučnika iznose K = 12000 novčanih jedinica (NJ), troškovi skladištenja jesu h = 0.30 NJ/(kom*mj), direktni proizvodni trošak za zvu čnike jest c = 10 NJ/kom. Ako zvučnik nedostaje, to izaziva dodatni trošak od g = 1.10 NJ/(kom*mj) zbog naknadne montaže, skladištenja televizora, zakašnjela prihoda itd.
9.1. Deterministički modeli 9.1.1. Nedostatak robe nije dopušten Za slučaj kontinuiranog praćenja stanja zaliha, tj. kad se odluka o obnavljanju zaliha može donijeti u bilo kojem trenutku i za uniformnu poznatu potražnju uz nedopušteni manjak na zalihama, traži se duljina ciklusa između dva pokretanja proizvodnje kao i veličina serije Q.
Problem vo đ enja zaliha
183
Duljina ciklusa između dva pokretanja proizvodnje zvučnika jest Q/a. Kretanje zaliha ilustrirano je slikom 9-1
Slika 9-1 Stanje zaliha uz nedopušteni nedostatak robe Prosječna količina na skladištu jest Q/2. Troškovi skladištenja jesu dakle: Q Q hQ ² h ─ ─ = ─── 2 a 2a
Na trošak skladištenja treba pribrojiti proizvodni trošak koji se sastoji od fiksnog dijela koji je izazvan pokretanjem proizvodnje, i varijabilnog ili direktnog dijela, koji je proporcionalan proizvedenoj koli čini. Ukupni trošak proizvodnje i skladištenja po jedinici vremena jest γ (Q ) =
hQ ² K + c Q + ────── 2 a
aK
hQ
Q
2
───────────────── = ─── + ac + ─── Q
─
a
Traži se Q* takav da ukupni trošak bude minimalan: dγ
aK h ── = - ─── + ─ = 0 Q dQ ² 2
Optimalna veličina serije jest
184
Operacijska istraživanja * Q = (2aK / h)½
Vremenski interval izme đu dva uzastopna pokretanja proizvodnje jest ┌ ┐ ½ │ K │ 2 t*= ─ = │ ─── │ │ ah │ a └ ┘ Numerički rezultati za naš primjer jesu Q*= 25298 kom, t*=3.2 mj. * Q
9.1.2. Privremeno dopušten nedostatak robe Ako je privremeno dopušten nedostatak robe koji se uz određene troškove od g NJ/(kom*mj) poslije nadoknadi, stanje zaliha kretat će se prema slici 9-2 Po četno je stanje S, a veličina serije Q. Troškovi skladištenja jesu
Slika 9-2 Stanje zaliha uz dopušteni nedostatak robe S S hS ² h ─ ─ = ─── 2 a 2a
Troškovi zbog nedostatka robe jesu -S ) g (Q
─────── 2
-S g -S )² Q (Q ─── = ─────── a 2a
Problem vo đ enja zaliha
185
Na troškove skladištenja i nedostatka robe treba pribrojiti proizvodni trošak. Ukupni trošak proizvodnje, skladištenja i nedostatka robe po jedinici vremena jest hS g (Q ² -S )² K + c Q + ────── + ─────── aK hS 2a 2a ² γ = ──────────────────────────── = ─── + ac + ─── + Q Q 2Q
─
a
-S )² g (Q
+ ──────── 2Q
Traže se S* i Q* takvi da ukupni trošak bude minimalan: dγ
hS
dS
Q
g -S ) (Q
── = ─── - ─────── = 0 dγ
aK
dQ
Q ²
Q
hS ²
g (Q -S )
g (Q -S )²
── = - ─── - ──── + ─────── - ──────── = 0 2Q ²
Q
2Q ²
Rješavanjem se dobije ┌ ┐½ │ 2 aK g │ * S = │ ───────── │ │ h(g +h) │ └ ┘ ┌ ┐½ │ │ h) 2 + aK (g * Q = │ ──────────── │ │ │ hg └ ┘ Vremenski interval izme đu dva pokretanja proizvodnje jest ┌ ┐½ * │ │ Q K (g h) 2 + t*= ─ = │ ───────── │ │ a ahg │ └ ┘
Maksimalni nedostatak robe jest ┌ ┐½ │ │ aK h 2 * * Q -S = │ ───────── │ │ g +h) │ (g └ ┘
Udio vremena bez manjka: * S g ──* = ─── Q g +h
Numerički su rezultati S*=22424 kom, Q*= 28540 kom, t*=3.6 mj.
186
Operacijska istraživanja
9.2. Stohastički modeli 9.2.1. Roba koja gubi na vrijednosti Ako je potražnja za nekom robom stohastička, nastoji se snimiti distribucija vjerojatnosti potražnje. To može biti neka od poznatih tipova distribucije ili empirijska distribucija koja se izražava tabli čno. Na primjeru prema (Kaufmann, Faure, 1970) pokazat će se donošenje odluke o naručivanju robe koja skladištenjem gubi vrijednost, a uz stohastičku potražnju. Primjer može biti problem prodavača novina koji od izdavača kupuje primjerak po 5 NJ/kom, prodaje ih za 10 NJ/kom, a za remitendu dobiva 2 NJ/kom. Na temelju tih podataka lako je izraditi tablicu ovisnosti zarade o broju naručenih primjeraka i potražnji: ┌──────────────┬───────────────────────────────────┐ │ Ako se od │ Potražnja │ izdava č a kupi │ 0 10 20 30 40 ├──────────────┼───────────────────────────────────┤ │ 0 │ 0 0 0 0 0 │ 10 │ -30 50 50 50 50 │ 20 │ -60 20 100 100 100 │ 30 │ -90 -10 70 150 150 │ 40 │ -120 -40 40 120 200 │ 50 │ -150 -70 10 90 170 └──────────────┴───────────────────────────────────┘
│
50 │ 0 50 100 150 200 250
│ │ │ │ │ │
Za donošenje odluke o broju nabavljenih komada neophodno je poznavati distribuciju potražnje (za tipi čne dane). Ako je poznata empirijska distribucija dobivena praćenjem potražnje kroz npr. 100 tipičnih dana, grupirano u razrede ┌────────┬──────────┬───────────────────────────┬───────────┬───────────┐ │ Razred │ Interval │ Broj dana s tom potražnjom │ O č ekivanje │ Kumulativ ├────────┼──────────┼───────────────────────────┼───────────┼───────────┤ │ 0 │ 0 - 4 │ 3 │ 0.03 │ 0.03 │ 10 │ 5 - 14 │ 17 │ 0.17 │ 0.20 │ 20 │ 15 - 24 │ 37 │ 0.37 │ 0.57 │ 30 │ 25 - 34 │ 29 │ 0.29 │ 0.86 │ 40 │ 35 - 44 │ 12 │ 0.12 │ 0.98 │ 50 │ 45 - 54 │ 2 │ 0.02 │ 1.00 └────────┴──────────┴───────────────────────────┴───────────┴───────────┘
│ │ │ │ │ │ │
moguće je izračunati očekivanu zaradu ovisno o broju primjeraka naru čenih od dobavljača: ┌─────┬─────────────────────────────────────────────────────┐ │ Ak o │ O č ekivana zarada │ kupi │ ├─────┼─────────────────────────────────────────────────────┤ │ 0 │ │ │ │ 10 │ -30*0.03+ 50*0.17+ 50*0.37+ 50*0.29+ + 50*0.12+ 50*0.02 │ │ │ │ │ 20 │ -60*0.03+ 20*0.17+100*0.37+100*0.29+ +100*0.12+100*0.02 │ │ │ │ │ 30 │ -90*0.03- 10*0.17+ 70*0.37+150*0.29+ +150*0.12+150*0.02 │ │ │ │ │ 40 │ -120*0.03- 40*0.17+ 40*0.37+120*0.29+ │ │ +200*0.12+200*0.02 │ │ │ 50 │ -150*0.03- 70*0.17+ 10*0.37+ 90*0.29+ │ │ +170*0.12+250*0.02 └─────┴─────────────────────────────────────────────────────┘
│ │ 0 = 47.6 = 81.6 = 86.0 = 67.2 = 38.8
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
Problem vo đ enja zaliha
187
Iz tablice se vidi da se u prosje čne dane može očekivati najveća zarada ako se od dobavljača naruči oko 30 primjeraka novina. Ukoliko je poznata funkcija distribucije potražnje P(X) = p(x≤X), tj. vjerojatnost da nastupi potražnja manja ili jednaka X, mogu se razmatrati financijski efekti povećanja kupnje kod izdavača od s-1 na s primjeraka. Očekivani porast zarade kod tog dodatnog primjerka koji će biti prodan uz vjerojatnost potražnje veće ili jednake s jest Porast zarade = 5*Š1 - P(s-1)] - 3*P(s-1) Dodatni se primjerak isplati naru čivati sve dok je očekivani porast zarade pozitivan. Za konkretni primjer to zna či da treba od izdava ča naručivati s primjeraka tako da se pronađe maksimalni s za koji još vrijedi 5*Š1 - P(s-1)] - 3*P(s-1) > 0
odnosno da je kumulativ vjerojatnosti P(s-1) < 0.625 < P(s)
9.2.2. Nedostatak robe izaziva troškove po količini i vremenu Uz stohastičku potražnju i gubitak zbog nedostatka robe koji se izražava po jedinici količine i jedinici vremena te uz pretpostavku da nema kašnjenja kod dobavlja ča, određuje se količina s predviđena da zadovoljava potrebe za robom kroz period T. Korištene oznake jesu ove: s ─ početna količina robe na zalihama (kom, kg...) ─ potražnja u periodu T (dan, mjesec...) a p(a) ─ vjerojatnost potražnje r u periodu T h ─ troškovi skladištenja (NJ/(kom*dan)...) ─ gubitak zbog nedostatka robe (NJ/(kom*dan)...) g Ako je početna količina bila s, tijekom perioda T mogu nastupiti dva slučaja prikazana slikama 9-3 i 9-4
Slika 9-3 Potražnja manja od po četne količine
188
Operacijska istraživanja
Slika 9-3 prikazuje slučaj kad je potražnja r bila manja od početne količine s. Na početku su bile zalihe s, a na kraju s-r. Prosječna je količine robe na zalihama s + s-a
a
2
2
──────── = s - ───
Slika 9-4 Potražnja veća od početne količine Slika 9-4 odgovara situaciji kad je stohasti čka potražnja a bila veća od početne s/a količina na zalihama padne na nulu. Prema količine s. Nakon vremena T 1=T tome, srednja je količina robe na skladištu s
─── 2
T 1
s²
T
2a
──── = ────
Problem vo đ enja zaliha
Maksimalni nedostatak robe jest a-s, a period bez robe T s/a = T (a-s)/a. 2 = T - T 1 = T - T
Prema tome, prosječni nedostatak robe jest a-s
─── 2
T (a-s) (a-s)T (a-s)² 2 ─── = ───────────── = ────── T a 2T 2a
189
190
Operacijska istraživanja
Ukupni troškovi skladištenja nastaju kao prosje čna količina na skladištu pomnožena s jediničnim troškovima skladištenja plus prosječni nedostatak robe pomnožen s jedničnim gubitkom. Sve su veličine ponderirane s vjerojatnosti da takav događaj nastupi: Γ (s) = h
s Σ (s-a/2)p(a) + h a=0
∞
Σ s²/(2a)p(a) + a=s+1 ∞
+ g Σ (a-s)²p(a)/(2a) a=s+1
Optimalna je ona koli čina početnih zaliha s* za koju vrijedi Γ (s*-1) > Γ (s*)
i
Γ (s*+1) > Γ (s*)
9.2.3. Stohastičko kašnjenje kod snabdijevanja U slučaju stohastičke potražnje i stohastičkog kašnjenja isporuke dobavljača potrebno je snimiti obje empirijske distribucije vjerojatnosti. Ako se radi o funkcijama koje se ne mogu dovoljno to čno analitički izraziti, rješenje valja potražiti u simulacijama. Ilustrativan se primjer može na ći u (Kaufmann, Faure, 1970).
Diskretni slu č ajni procesi
191
10. DISKRETNI SLU Č AJNI PROCESI Dosad smo, s izuzetkom kod mrežnog planiranja i praćenja zaliha, razmatrali procese kod kojih su parametri (cijena, udaljenost, utrošak vremena) deterministički utjecali na ponašanje modela. U stvarnom svijetu to, nažalost, neće biti uvijek tako. Proizvodnju će, na primjer, biti potrebno planirati u skladu s potražnjom za artiklima koju ne možemo to čno predvidjeti. Strojevi u pogonu podložni su kvarovima koji se dešavaju pod nepredvidivim okolnostima, poljoprivredna proizvodnja ovisi o vremenskim prilikama, itd. Za velik broj procesa u najboljem slučaju moći ćemo odrediti samo vjerojatnost doga đanja ili veličine parametara o kojima ovisi ponašanje modela. Takve procese nazivamo nedeterministi čkim ili slučajnim procesima. Ovdje ćemo razmatrati samo najjednostavniju klasu takvih procesa. Primjer: Pretpostavimo da želimo pratiti strukturu zaposlenosti stanovništva neke zemlje po tri osnovne grupe zanimanja: poljoprivreda, industrija i tercijarne djelatnosti. Ta se struktura mijenja iz godine u godinu: određen postotak ljudi napušta poljoprivredu i traži zaposlenje u industriji ili tercijarnim djelatnostima. Neki od zaposlenih u industriji ili tercijarnim djelatnostima tako đer mijenjaju zaposlenje. Vidimo da se, gledaju ći sa stanovišta pojedinca, mogu identificirati tri stanja, koja možemo proizvoljno numerirati. Neka su naše oznake za stanja sljedeće: 1 ─ osoba radi u poljoprivredi, 2 ─ osoba radi u industriji, 3 ─ osoba radi u tercijarnim djelatnostima. U nekom trenutku osoba može odlučiti da ostvari prijelaz iz jednog stanja u neko drugo stanje. Te prijelaze možemo pratiti kroz vrijeme. Jedna od mogu ćnosti praćenja vremena jest identificiranje trenutka u kojem se dogodio prijelaz iz stanja u stanje. Druga, za primjer prikladnija mogućnost jest definiranje vremenskog perioda (veli čine koraka) nakon kojeg se bilježe promjene. U oba slučaja radi se o diskretnim vremenskim trenucima, pa govorimo o diskretnom procesu. Proces prijelaza iz stanja u stanje može se prikazati i tzv. dijagramom prijelaza. Radi se o grafu kojem čvorovi predstavljaju stanja, a lukovi prijelaz iz stanja u stanje. Dijagram prijelaza za naš problem prikazan je na slici 10-1 Osim stvarnih prijelaza iz stanja u stanje mogu će je definirati i virtualni prijelaz, tj. ostanak u istom stanju nakon promatranog perioda, koji se na dijagramu prijelaza manifestira kao petlja.
192
Operacijska istraživanja
Slika 10-1 Dijagram prijelaza Služeći se terminima iz teorije vjerojatnosti, stanje u kojem se neka osoba nalazi promatrano nakon perioda (1, 2, ...) jest niz slu čajnih varijabli (X1, X2, ...). Slijed slučajnih varijabli kojima je pridruženo vrijeme naziva se stohastički proces. Kako su pridružena vremena diskretna, možemo kazati da je riječ o diskretnom
Diskretni slu č ajni procesi
193
stohastičkom procesu. Često se dodaje i varijabla X0 koja se često naziva degeneriranom slučajnom varijablom, jer prikazuje poznato početno stanje. Prijelazu iz stanja i u stanje j može se pridijeliti vjerojatnost pij. Matematički, to je vjerojatnost da se u sljede ćem trenutku proces na đe u stanju j ako je prethodno bio u stanju i: (X p ij = P n = j │ X n-1 = i)
U stvarnom svijetu vjerojatnost da se proces na đe u stanju j obično ovisi i o stanjima koja prethode stanju i, tj. p (X ij = P n = j │ X n-1 = i, X n-2 = in-2 , ..., X 0 = i0)
Tako se može pretpostaviti da u našem slu čaju vjerojatnost da osoba promijeni zanimanje u nekom periodu nije ista ako je osoba dugo radila u istoj grupi zanimanja ili se često selila. Međutim, kao što je često i u drugim područ jima kojima se bave operacijska istraživanja, da bi se uop će mogla izvršiti analiza, potrebno je uvesti aproksimaciju kojom se problem pojednostavnjuje do mjere u kojoj je moguće ostvariti proračun, a da se pri tome ne gubi bitno na to čnosti. To će se pojednostavnjenje ovdje sastojati u Markovljevoj pretpostavci, koja podrazumijeva da stanje u nekom trenutku ovisi samo o stanju iz prethodnog trenutka, tj. p (X ij = P n = j │ X n-1 = i, X n-2 = in-2 , ..., X 0 = i0) = j │ i X = P (X = = ) n n-1
Diskretni slučajni proces koji uključuje Markovljevu pretpostavku, tj. kod kojeg slučajna varijabla Xn ovisi samo o prethodnoj slučajnoj varijabli Xn-1, zove se Markovljev lanac. Markovljeva pretpostavka omogućuje nam da relativno jednostavno do đemo do rezultata koje inače uopće ne bismo mogli dobiti. O procesu moramo znati samo vrijednosti elemenata prijelazne matrice kod koje indeks retka označava stanje u trenutku n-1, indeks stupca stanje u trenutku n, a element
194
Operacijska istraživanja
vjerojatnost prijelaza. Naš se problem tako može opisati ovom prijelaznom matricom:
┌ ┐ │ p │ p p 11 12 13 P = │ p 21 p 22 p 23 │ p p │ p 31 32 33 │ └ ┘ Vjerojatnosti pij mogu se označiti i na dijagramu prijelaza (slika 10-2).
Slika 10-2 Dijagram prijelaza s vjerojatnostima Ako je poznato početno stanje procesa, tada se iz matrice direktno može o čitati vjerojatnost da se nakon prvog perioda proces nalazi u nekom drugom stanju. Kada je početno stanje zadano raspodjelom vjerojatnosti, postupak je nešto složeniji. Pretpostavimo da je vjerojatnost po četnog stanja dana vektorom retka (0) (0) (0) (0) = Šp p 1 p 2 p 3 ]
Proces će se nakon prvog perioda naći u stanju 1 ako je bio u 1 i prešao iz 1 u 1 ili ako je bio u 2 i prešao iz 2 u 1 ili ako je bio u 3 i prešao iz 3 u 1. Dakle, (1) (0) (0) (0) p 11 + p 21 + p 31 = p 1 1 p 2 p 3 p
Vjerojatnost da se nakon prvog perioda bude u stanju 2 izra čunava se na sličan način: (1) (0) (0) (0) p 12 + p 22 + p 32 = p 2 1 p 2 p 3 p
kao i vjerojatnost da se nakon prvog perioda bude u stanju 3 (0) (0) (0) (1) 23 + p 33 p 13 + p = p 3 p 1 p 2 p 3
Možemo primijetiti da navedene izraze dobijemo i kada pomnožimo vektor vjerojatnosti početnog stanja s matricom prijelaza
Diskretni slu č ajni procesi
(0) (0) (0) p Š 1 p 2 p 3 ]
195
┌ ┐ │ p │ p p 11 12 13 │ p 21 p 22 p 23 │ = │ p 31 p 32 p 33 │ └ ┘ (0)
(0) (0) 31 21 + p p 11 + p Š 3 p 2 p 1 p (0) (0) (0) p 12 + p 22 + p 32 1 p 2 p 3 p
(0) (0) (0) p 13 + p 23 + p 33] = 1 p 2 p 3 p (1) (1) (1) Š p 1 p 2 p 3 ]
Dakle, možemo zaključiti da vrijedi (1) (0) p = p
P
Ako želimo izračunati vjerojatnosti stanja u kojima će se naći proces nakon dva perioda, moramo uvesti pretpostavku stacionarnosti, kojom podrazumijevamo da se matrica prijelaza od perioda do perioda ne mijenja, tj. (k) p ij = p ij,
k = 1,...,∞
Markovljevi lanci kod kojih vrijedi pretpostavka stacionarnosti nazivaju se (2) homogeni Markovljevi lanci. Sada možemo lako izra čunati p . Iz pretpostavke stacionarnosti i gore provedena razmatranja za prijelaz iz po četnog stanja u stanje nakon perioda 1 možemo zaključiti da je (2) (1) p = p
P
odnosno, s obzirom da smo izračunali (1) (0) p P , = p možemo pisati (2) (0) p = p
(0) P P = p
n P
2 P
ili općenito (n) (0) p = p
Prijelazna matrica Pn naziva se još i prijelaznom matricom nakon n koraka ili prijelaznih trenutaka. Nužno je primijetiti da smo tu vrlo važnu formulu izra čunali prilično heuristički. Striktno matematički dokaz zainteresirani će čitalac naći u svakoj boljoj knjizi iz teorije vjerojatnosti. Treba također paziti na činjenicu da je vektor vjerojatnosti redak ili jednoredna matrica, te da ako želimo baratati stup čanim vektorima, treba transponirati matricu prijelaza i zamijeniti redoslijed multiplikanada: T(n) T T(0) p p = P
Pretpostavimo da za naš primjer vrijede sljede će brojke: godine 1980. 80% stanovništva bilo je zaposleno u poljoprivredi, 10% u industriji i 10% u tercijarnim djelatnostima. Praćenjem migracija kroz protekle periode ustanovljeno je da nakon
196
Operacijska istraživanja
10 godina prosječno 60% poljoprivrednog stanovništva ostaje u poljoprivredi, 30% zapošljava se u industriji, dok ostali nalaze zaposlenje u tercijarnim djelatnostima. Iz industrije u poljoprivredu prelazi 10%, u industriji ostaje 70%, a u tercijarne djelatnosti prelazi 20%. Iz tercijarnih djelatnosti u poljoprivredu prelazi 10% zaposlenih, u industriji se zapošljava tako đer 10%, dok ostatak zadržava staro zaposlenje. Te brojke možemo prikazati kao vektor početnih vjerojatnosti (0) p = Š0.8
i matricu prijelaza P =
┌ │0.6 │0.1 │0.1 └
0.1
0.3 0.7 0.1
0.1]
┐ 0.1 │ 0.2│ 0.8 │ ┘
Vektor p nakon prvog koraka (10 godina) jest (1) (0) p = p
P = Š0.5
0.32
0.18]
Prijelazne matrica za 2 odnosno 3 koraka imaju vrijednosti 2 P =
┌ ┐ │0.4 0.4 0.2 │ │0.15 0.54 0.31 │ │0.15 0.18 0.67 │ └ ┘
3 P =
┌ ┐ │0.3 0.42 0.28 │ │0.175 0.454 0.371 │ │0.175 0.238 0.587 │ └ ┘
Pripadne vjerojatnosti stanja jesu (2) p = Š0.35
0.392 0.258]
(3) p = Š0.275 0.405 0.320]
pa možemo očekivati da će nakon 3 koraka (30 godina), tj. 2010. godine, u toj zemlji, pod pretpostavkom nepromjenjivosti matrice prijelaza, biti 27.5% poljoprivrednog stanovništva, 40.5% stanovništva radit će u industriji, a 32% u tercijarnim djelatnostima. Interesantno je vidjeti što se doga đa nakon većeg broja koraka. Na prvi pogled može se učiniti da će nestati poljoprivrednika, jer je mnogo veća vjerojatnost odlaska od vjerojatnosti povratka. Međutim, treba imati u vidu da kako broj ljudi u industriji i tercijarnim djelatnostima raste, mala vjerojatnost povratka rezultira znatnim brojem ljudi koji se vraćaju. Intuitivno se može naslutiti da će se brojevi nakon velikog broja koraka stabilizirati na nekom iznosu. Nakon 10 odnosno 20 koraka matrice prijelaza jesu 10 P =
┌ ┐ │0.201 0.356 0.443 │ │0.2 0.352 0.448│ │0.2 0.346 0.454│ └ ┘
20 = P
┌ │0.2
┐
└
┘
0.35 0.45 │ │0.2 0.35 0.45 │ │0.2 0.35 0.45 │
dok su pripadne vjerojatnosti stanja (10) p = Š0.201 0.355 0.445]
(20) p = Š0.2
0.35
0.45]
Vidimo da su redci matrice prijelaza postali jednaki. Drugim rije čima, vjerojatnost nekog stanja nakon mnogo koraka jednaka je bez obzira na to iz kojeg smo početnog
Diskretni slu č ajni procesi
197
stanja krenuli. Kako za veće matrice množenje matrica dok se ne postigne stacionarnost znači mnogo računanja, potrebno je izračunati stacionarne vjerojatnosti na efikasniji način.
10.1. Stacionarne vjerojatnosti Ako definiramo (n) π j = lim p ij
n
→ ∞
tada, iz prethodnog razmatranja, slijedi da vrijedi ┌ │ π 1 │ π 1
π 2 π 2
π 3 .... │ π 3 .... │
┐
(n) lim P = │ ............... │ │ ............... │ n → ∞ │ π 1 π 2 π 3 .... │
└
┘
Također možemo pretpostaviti da, gledaju ći daleko u budućnost, nije važan točan broj koraka. S obzirom na to da uvijek vrijedi (n) (n-1) P P = P
a da možemo pretpostaviti (n) (n-1) lim P = lim P
n
n
→ ∞
→ ∞
uvrštavanjem dobijemo ┌ │ │ │ │ │ └
┌ │ π 1 π 2 π 3 .... │ │ π 1 π 2 π 3 .... │ ............... │ = │ ............... ............... │ │ ............... │ π 1 π 2 π 3 .... │ π 1 π 2 π 3 .... │ ┘ └ π 1 π 1
π 3 .... │ π 3 .... │
π 2 π 2
┐
┐ │ │
P
┘
što predstavlja niz ponavljanja sustava jednadžbi π = π
P
Vektor π jest jednoredna matrica. Prirodnije je pisati taj sistem služe ći se stupčanim vektorima: T π T = P
π T
Sada možemo πT prebaciti na drugu stranu jednadžbe: T P
π T - π T = 0
Izlučivši πT imamo T (P - I )π T = 0
Taj sistem, međutim, nije linearno nezavisan. U matrici PT suma članova u svakom stupcu jednaka je 1. Oduzimanjem jedinične matrice I suma članova u svakom
198
Operacijska istraživanja
stupcu postala je jednaka nuli. Matrica (PT - I) jest dakle singularna, što lako možemo provjeriti i na našem primjeru: ┌ │ 0.6 T (P - I ) = │ 0.3 │ 0.1 └ ┌ │-0.4 = │ 0.3 │ 0.1 └
┐
┌
┐
┘
└
┘
│ 1 0 0 │ 0.1 0.1 │ 0.7 0.1 │ - │ 0 1 0 │ = 0.2 0.8 │ │ 0 0 1 │ ┐ 0.1 0.1 │ -0.3 0.1 │ 0.2 -0.2 │ ┘
T │(P - I )│ = -0.4(-0.3-0.2 - 0.10.2) -
0.1( 0.3-0.2 - 0.10.1) + 0.1( 0.3 0.2 + 0.30.1) = -0.40.04 - 0.1-0.07 + 0.1 0.09 = = -0.016 + 0.007 + 0.009 = 0
Sustav jednadžbi ima dakle beskona čno mnogo rješenja. Međutim, prihvatljivo je jedino ono rješenje kod kojeg je zadovoljen uvjet da proces bude sigurno u nekom od razmatranih stanja. To znači da suma vjerojatnosti svih stanja mora biti jednaka 1: Σ π j = 1 j
Zamjenom bilo kojeg retka u (PT - I) tim uvjetom sustav dobiva ovaj oblik: ┌ │-0.4 0.1 │ 0.3 -0.3 │ 1 1 └
┐
0.1 │ 0.1 │ │ 1
┘
┌ ┐ ┌ ┐ │π 1│ │ 0 │ │π 2│ = │ 0 │ │π 3│ │ 1 │ └ ┘ └ ┘
Rješenje tog sustava jest π1 = 0.2, π2 = 0.35, π3 = 0.45, što potvrđuje vrijednosti dobivene potenciranjem matrice na veliku potenciju.
10.2. Klasifikacija Markovljevih lanaca Razmatranje koje smo proveli vrijedit će samo za jednu klasu Markovljevih lanaca. U našem primjeru iz svakog se stanja moglo prije ći u bilo koje stanje. Lanci kod kojih je to moguće, bilo u jednom ili više koraka, zovu se nerazloživi lanci. Lanac neće uvijek biti nerazloživ. Kao primjer možemo uzeti jedan gem iz tenisa. Ako vjerojatnost da server (igra č A) osvoji poen označimo s p, a vjerojatnost da server izgubi poen (igrač B osvoji poen) q = 1-p, identificiravši stanja u igri možemo nacrtati dijagram prijelaza (slika 10-3).
Diskretni slu č ajni procesi
199
Slika 10-3 Dijagram prijelaza za 1 gem u tenisu Kad proces napusti stanje 0:0, u njega se više nikad ne može vratiti. Lanac je dakle razloživ. Sa stanovišta stanja, možemo razlikovati ponavljajuće stanje, kao stanje za koje je sigurno da će se ponoviti ako se nekad dogodilo, i prijelazno stanje, za koje se to ne
200
Operacijska istraživanja
može tvrditi. U primjeru ekonomske migracije stanovništva, koji je opisan nerazloživim lancem, sva su stanja ponavljajuća. To će vrijediti za sve nerazložive lance s konačnim brojem stanja. U primjeru tenisa, imamo dva stanja (gem igrača A i gem igrača B) koja proces nikada ne napušta ako jednom u njih u đe. Takva stanja zovemo apsorbirajućima. Ostala su stanja u tom procesu prelazna. Ako imamo beskonačan broj stanja, situacija se komplicira, i nije uvijek mogu će zaključiti da su stanja ponavljajuća ako je lanac nerazloživ. Kao primjer za takav lanac može poslužiti igra na sreću (Ravindran, 1987) u kojoj je vjerojatnost da igrač dobije 1 NJ jednaka p, a vjerojatnost da igrač izgubi 1 NJ q=1-p. Ako iznos koji ima igrač proglasimo stanjem Markovljeva lanca, a igra čev je protivnik kockarnica za koju možemo pretpostaviti da na raspolaganju ima proizvoljno mnogo novca, i još k tome uvedemo neobično pravilo da igrač bez novaca može nastaviti igru, Markovljev lanac koji predstavlja našu igru može se prikazati slikom 10-4
Slika 10-4 Prikaz igre Markovljevim lancem Ako je p < q, tada je sigurno da će iznos koji igrač ima ostati malen, i da igra nikad neće posjetiti stanja koja predstavljaju veliko bogatstvo igrača. Dakle, ne može se tvrditi da će se takva stanja ikad dogoditi ili ponoviti. Za p > q možemo zaključiti obratno. U posebnom slučaju, kad je p = q, može se pokazati da su stanja
Diskretni slu č ajni procesi
201
ponavljajuća, ali da je prosje čno vrijeme ponavljanja beskona čno. Takva stanja nazivamo nulponavljajućima, dok stanja s konačnim prosječnim vremenom ponavljanja zovemo pozitivno ponavljaju ćima. Određene probleme donosi i pojava periodi čnosti u lancu, tj. mogućnost ponavljanja stanja samo u određenim vremenskim intervalima. To se u stvarnim slu čajnim procesima rijetko doga đa, pa se ovdje samo spominje radi definicije jedne klase lanaca koja se gotovo uvijek susreće kod modeliranja stvarnih procesa koji ne završavaju: ergodi čkih Markovljevih lanaca. Ergodički Markovljev lanac jest Markovljev lanac koji je nerazloživ, kod kojeg su sva stanja pozitivno ponavljajuća i aperiodička.
10.3. Vjerojatnost prvog dolaska ili prvog povratka čunati vjerojatnost prvog dolaska u Za sve vrste Markovljevih lanaca može se izra (n) neko stanje u n koraka koju označavamo sa f .ij To je vjerojatnost da se proces u ntom koraku nađe u stanju j ako je krenuo iz stanja i, uz uvjet da u međuvremenu ne bude u stanju j: (n) f = P(X = j, ..., X = j │ X ij n = j, X n-1 / 1 / 0 = i)
Jasno je da je (1) f ij = p ij
Dalje možemo pisati (2) (2) (1) f jj ij = p ij - f ij p
tj. vjerojatnost da se proces koji kreće iz stanja i nakon dva koraka prvi puta nađe u j jednaka je vjerojatnosti da se u j nađe u dva koraka a da u j nije stigao već u prvom koraku i tamo ostao. Za tri koraka izraz glasi (2) (3) (1) (2) (3) jj - f f i p j jj ij p ij = p ij - f
202
Operacijska istraživanja
ili, riječima, vjerojatnost da proces u tri koraka prvi puta do đe iz i u j jednaka je vjerojatnosti da do đe u tri koraka a da nije stigao već u prvom koraku u j i u sljedeća dva koraka prešao iz j u j (ta vjerojatnost, prisjetimo se izraza za vjerojatnost prijelaza u dva koraka, uključuje sve prijelaze j-k- j, gdje je k bilo koje moguće stanje, uključujući j), te da nije u drugom koraku prvi puta stigao iz i u j i tamo ostao. Općenito možemo pisati n-1 (n) ij
(n) ij
f = p - Σ
(k) (n-k) f i p j jj k=1
Vjerojatnosti prvog dolaska mogu se dakle izračunati iterativno. Ako je i= j, govorimo o vjerojatnosti prvog povratka, koja se može izra čunati na isti način.
10.4. Očekivano vrijeme prvog dolaska i prvog povratka Za ergodičke lance može se izračunati očekivano vrijeme prvog dolaska i prvog povratka. U prethodnom razmatranju izra čunali smo vjerojatnost da se proces nakon n koraka prvi puta na đe u nekom stanju. Često nas, međutim, zanima odgovor na pitanje koliko će prosječno koraka biti potrebno da se proces prvi put nađe u nekom stanju, što se iz prethodnog razmatranja ne može vidjeti. Prosječno vrijeme prvog dolaska iz stanja i u stanje j jednako je očekivanju: ∞ (n) m ij = Σ nf ij n=1
(n)
f ijjest vjerojatnost da se iz i prvi puta dođe u j u n koraka. Međutim, vidjeli smo već da te vjerojatnosti nije lako izra čunati, a nama je za proračun očekivanja potrebna kompletna distribucija od 1 do ∞. Zato ćemo prosječno vrijeme prvog dolaska izračunati na drugi na čin. Ako je proces u trenutku 0 bio u stanju i, tada je u trenutku 1 ili stigao u stanje j, pri čemu je vrijeme prvog dolaska jednako 1, ili u neko drugo stanje k, kada je vrijeme prvog dolaska u j jednako 1 plus prosječno vrijeme prvog dolaska iz k u j. Ako ta vremena pomnožimo s vjerojatnošću kao težinom, prosječno vrijeme prvog dolaska iz i u j može se izraziti kao m p ij + Σ (1 + m p ik ij = 1 kj) k/ =j
što se dalje može razviti: m p ik = ij = p ij + Σ p ik + Σ m kj k/ k/ =j =j
Diskretni slu č ajni procesi
203
p = Σ p ik = ik + Σ m kj k k/ =j m = 1 + Σ p kj ik k/ =j
Time smo prosječno vrijeme prvog dolaska iz stanja i u stanje j izrazili jednom jednadžbom s nekoliko nepoznanica. Izrazivši tako i prosječna vremena prvog dolaska iz ostalih stanja k, k =/ i, k =/ j u stanje j, dobijemo sistem jednadžbi koji se lako rješava. Pokušajmo sada za naš numerički primjer ekonomske migracije stanovništva izračunati očekivano vrijeme prvog prelaska poljoprivrednika u tercijarne djelatnosti. Matrica prijelaza, podsjetimo se, jest P =
┌ │0.6 │0.1 │0.1 └
0.3 0.7 0.1
┐
0.1 │ 0.2│ 0.8 │
┘
Zanima nas m13, za koji jednadžba ima oblik m m 13 + p m 23 13 = 1 + p 11 12
m23 možemo izraziti kao m m 13 + p m 23 23 = 1 + p 21 22
Uvrštavanjem vrijednosti dobijemo sistem m m 13 + 0.3 m 23 13 = 1 + 0.6 m m m 23 = 1 + 0.1 + 0.7 23 13
čija su rješenja m13=6.67 i m23=5.56. Dakle očekuje se da će poljoprivrednik nakon 6.67 perioda (66.7 godina) prvi puta prije ći u tercijarne djelatnosti. Ako je i = j, tada govorimo o prosječnom vremenu povratka, ili prosječnom vremenu ponavljanja. Ta se veličina može dobiti na opisani na čin, ali i uvidom u vektor
stacionarnog stanja. Naime, element vektora stacionarnog stanja može se protumačiti i kao fragment vremena koje sistem provede u nekom stanju. Tako se za naš numerički primjer, kod kojeg je vektor stacionarnog stanja π = Š0.2
0.35
0.45]
može reći da prosječna osoba u poljoprivredi radi 20% vremena, dok ostalo vrijeme radi u ostalim djelatnostima. Iz toga se može zaklju čiti da je prosječno vrijeme povratka 1/0.2 = 5 perioda, tj. da vrijedi 1
m ii = ───
π i
204
Operacijska istraživanja
10.5. Apsorbirajući lanci Analizirajmo sljedeću igru. Dva igrača bacaju kocku. Igrač koji dobije šesticu, pobijedio je. Ako dobije broj 4 ili 5, baca ponovo, dok u ostalim slučajevima prepušta bacanje drugom igraču. U igri možemo identificirati 4 stanja: 1 ─ na redu je igrač A 2 ─ na redu je igrač B 3 ─ pobijedio je igrač A 4 ─ pobijedio je igrač B Stanja 1 i 2 očito su prijelazna, a stanja 3 i 4 apsorbiraju ća, pa je i lanac apsorbirajući. Dijagram prijelaza s pripadnim vjerojatnostima prikazan je na slici 10-5
Slika 10-5 Apsorbirajući lanac Pretpostavimo da želimo saznati koja je vjerojatnost da igra č koji je započeo igru pobijedi. Za taj je prora čun potrebno provesti sljede će razmatranje. Ako vjerojatnost da proces uđe u neko apsorbirajuće stanje j ako je krenuo iz prijelaznog stanja i označimo sa aij, možemo pisati ∞ (n) aij = Σ f ij n=1
Već smo kazali da kompletnu distribuciju vjerojatnosti prvog dolaska nije lako izračunati, pa ćemo i tu veličinu prikazati preko stanja u trenutku 1. Ako u trenutku 0 proces kreće iz stanja i, tada je u trenutku 1 ili stigao u j, ili stigao u neko apsorbirajuće stanje iz kojeg je vjerojatnost dolaska u j jednaka 0, ili stigao u
Diskretni slu č ajni procesi
205
neko prijelazno stanje k preko kojeg može doći u j s vjerojatnošću akj. Prema tome, vjerojatnost dolaska iz i u j može se pisati kao aij = p ij + Σ p ik akj kεK
Tu je K skup svih prijelaznih stanja. Kako se i tu radi o jednoj jednadžbi s više nepoznanica, tako će biti potrebno izraziti i ostale vjerojatnosti da bi se dobio rješiv sustav. Izračunajmo sada vjerojatnost da pobijedi igra č A ako je on i započeo igru. Pobjeda igrača A prema dijagramu prijelaza jest stanje 3, a skup prijelaznih stanja K sastoji se od stanja 1 i 2 pa pišemo: a13 = p 13 + p 11 a13 + p 12 a23
Kako imamo dvije nepoznanice potrebna nam je i jednadžba za a23: a23 = p 23 + p 21 a13 + p 22 a23
Matrica prijelaza ima oblik P =
┌ │1/3 │1/2 │ 0 │ 0 └
1/2 1/3 0 0
1/6 0 1 0
┐
0 │ 1/6│ 0 │ 1 │
┘
Uvrstivši vrijednosti u jednadžbe imamo a13 = 1/6 + 1/3 a13 + 1/2a23 a23 =
0
+ 1/2a13 + 1/3a23
Rješenje sustava jest a13=4/7 i a23=3/7. Kako je dijagram simetričan, odmah možemo zaključiti i da je a14=3/7, a a24=4/7. U općenitom slučaju morali bismo za dobivanje tog rješenja postaviti sličan sustav jednadžbi: a14 = p 14 + p 11 a14 + p 12 a24 a24 = p 24 + p 21 a14 + p 22 a24
ili, uvrštavanjem vrijednosti a14 =
0 + 1/3a14 + 1/2a24
a24 = 1/6 + 1/2 a14 + 1/3a24
U tom jednostavnom slučaju s dva apsorbirajuća stanja mogli smo se poslužiti i činjenicom da sustav, počne li se od nekog stanja, mora završiti u nekom od apsorbirajućih stanja, tj. a13 + a14 = 1 a23 + a24 = 1
206
Operacijska istraživanja
Analizira li se struktura matrice prijelaza za absorbiraju će Markovljeve lance, može se uočiti da se prikladnom numeracijom stanja (u našem numeri čkom primjeru to je već učinjeno) ona uvijek može svesti na oblik P =
┌ ┐ │ Q R │ │ 0 I │ └ ┘
Q je matrica vjerojatnosti prijelaza iz prijelaznog u prijelazno stanje, a R matrica vjerojatnosti prijelaza iz prijelaznog u apsorbiraju će stanje. Ako sa m označimo broj prijelaznih a s n broj apsorbirajućih stanja, tada je jasno da će Q biti dimenzija mxm a R mxn. Ako sve vjerojatnosti da proces koji je krenuo iz nekog po četnog prijelaznog stanja završi u nekom apsorbirajućem stanju prikažemo matricom A , tada možemo primijetiti da ta matrica ima iste dimenzije kao i R. Izvršivši renumeraciju stanja tako da i prijelazna i apsorbirajuća stanja počnemo označavati od 1 (a11 sada je vjerojatnost da proces koji je krenuo iz prvog prijelaznog stanja završi u prvom apsorbirajućem stanju itd.), možemo primijetiti da se jednadžbe za aij mogu pisati i u matričnom obliku A = R + Q A
što dalje razvijamo kao A - Q A = R R (I - Q ) A =
A = (I - Q )-1R
U našem numeričkom primjeru imamo Q =
┌ │ 1/3 │ 1/2 └
┐
1/2 │ 1/3 │
┘
┌
R = │ 1/6 │ 0
└
┌
┐
└
┘
┐
0 │ 1/6 │
┘
(I - Q )-1 = │ 24/7 18/7 │ │ 18/7 24/7 │
pa dobivamo jednake rezultate: A =
┌ │ 4/7 │ 3/7 └
┐
3/7 │ 4/7 │
┘
Zanimljivo je još izračunati prosječan broj boravaka u stanju j ako je početno stanje bilo prijelazno stanje i, koji možemo označiti sa bij. Ako je početno stanje različito od promatranog stanja, tj. i =/ j, tada bij možemo izraziti preko svih prijelaznih stanja u koje proces može doći iz stanja i:
Diskretni slu č ajni procesi
207
b b kj ij = Σ p ik kεK
Ako je i = j, tada je broj boravaka za jedan veći, tj. b ii = Σ p i b k ki + 1 kεK
U matričnom obliku to se može napisati kao B = I + Q B
što dalje razvijamo kao B - Q B = I (I - Q )B = I B = (I - Q )-1
U našem primjeru tu smo matricu ve ć izračunali: ┌
┐
└
┘
B = (I - Q )-1 = │ 24/7 18/7 │ │ 18/7 24/7 │
Sada možemo zaključiti da igrač koji počinje igru baca kocku prosje čno 3.429 puta, dok njegov protivnik baca prosje čno 2.571 puta. Ukupan broj prijelaza ui ako je i početno stanje sada se može lako izra čunati kao suma prosječnog broja boravaka u svim prijelaznim stanjima: u i =
Σ b ij jεK
Dakle u našoj igri kocka se baca prosječno 6 puta, što je rezultat koji smo, znajući da igra završava kad se baci šestica, mogli i očekivati.
208
Operacijska istraživanja
11. LINEARNO PROGRAMIRANJE NA RA Č UNALU Podsjetimo se standardne definicije linearnog programa. Potrebno je maksimizirati fukciju cilja n Σ c jx j j=1
max z =
uz ograničenja n Σ aijx j j=1 x j
≥
;
≤ b i
m i=1,...,
0
;
j=1,...,n
Formulacija općeg linearnog programa nešto je šira: max ili min
uz
n z =
Σ
j=1
c jx j
n D i
≤
Σ aijx j
≤
G i
;
i=1,..., m
j=1
d j
≤
x j
≤
;
g j
j=1,...,n
Moguća je i sljedeća formulacija: max z =
uz
n Σ c jx j j=1
n y i = Σ aij x j j=1 D i d j
≤ ≤
y i x j
≤ ≤
;
G i g j
m i=1,..., ; ;
m i=1,..., j=1,...,n
Strukturne varijable x j ( j=1,...,n) nazivaju se stupcima, a yi (i=1,...,m) redcima. Svim se varijablama x j i yi pridružuju realne vrijednosti. Postavljen je zahtjev da te realne vrijednosti budu iz intervala (Di, Gi) za yi, odnosno (d j, g j) za x j. Di i Gi nazivamo donjim odnosno gornjim granicama za retke, a d j i g j donjim odnosno gornjim granicama za stupce. Cilj rješavanja linearnog programa jest izbor takvih vrijednosti za x j koje će zadovoljiti zahtjev da se i redci i stupci nalaze unutar dozvoljenih intervala (između donje i gornje granice) a da funkcija cilja z poprimi traženu ekstremnu vrijednost.
Linearno programiranje na računalu 209 Formulaciju linearnog programa mogu će je i dalje proširiti dopuštajući da neki od redaka budu sumandi u definiciji nekog drugog retka. Takvo ulan čavanje moguće je i za više nivoa, ali uz uvjet da se ne pojavi petlja: y y k i = Σ aij x j + Σ ai,n+k j
k
m ; i=1,..., ; k / = i
Ta posljednja formulacija linearnog programa prikladna je za formulaciju matematičkih modela problema iz prakse. To je važno svojstvo jer je zna čaj linearnog programiranja upravo u tome što je izrazito primjenjivo u praksi. U (Hillier i Lieberman, 1974), navodi se da je "zahvaljujući linearnom programiranju koje je postalo standardnim alatom, ušteđeno mnogo tisuća ili milijuna dolara čak u poduzećima skromnije veličine". U istoj se knjizi citira izvještaj IBM-a iz 1970. godine prema kojem je publicirano više od 100 različitih važnih vrsta primjene LP, a u istom se izvještaju procjenjuje, da se oko 25% svih numeri čkih proračuna na elektroničkim računalima odnosi na LP i srodne tehnike. U daljnjem tekstu posvetit će se pažnja postupku identifikacije problema čije se rješenje može potražiti s pomoću linearnog programiranja. Bit će opisani neki tipični problemi koji se rješavaju tom tehnikom.
11.1. Postupak izrade matematičkih modela 11.1.1. Identifikacija problema prikladnog za rješavanje s pomoću LP U prirodi je vrlo malo odnosa za koje vrijedi linearna proporcionalnost me đu veličinama. Međutim, ako se uvedu određena zanemarenja i uzme u obzir točnost u kojoj su prikupljeni podaci prikazani, u mnogo slu čajeva dopustivo je upotrebiti linearnu aproksimaciju. Tako se često može pretpostaviti linearnost u sljede ćim odnosima: 1) utrošeno vrijeme za izradu nekog artikla (min) ─ količina tog artikla (kg) 2) količina prodanog artikla (kg) ─ ostvarena realizacija (NJ) 3) utrošak sirovine (kg) ─ proizvedena koli čina finalnog proizvoda (kg) 4) vrijeme rada nekog stroja (h) ─ utrošak električne energije (kWh) 5) vrijeme rada nekog stroja (h) ─ utrošak nafte (kg)
210 6)
Operacijska istraživanja
utrošak električne energije (kWh) ─ iznos koji se plaća za taj utrošak (NJ) 7) utrošak nafte (kg) ─ iznos koji se plaća za taj utrošak (NJ) 8) utrošak deviza (USD) ─ ekvivalent (NJ) 9) devizna realizacija (USD) ─ ekvivalent (NJ) 10) količina robe koja se prevozi (kg) i udaljenost (km) ─ troškovi prijevoza (NJ) 11) količina koja je na skladištu (kg) i vrijeme skladištenja (mjesec) ─ troškovi skladištenja (NJ) 12) količina upotrebljenog sastojka (kg) ─ troškovi izrade smjese (NJ) ili (USD) Detaljnijom analizom ustanovilo bi se da niti u jednom od navedenih primjera ne vrijedi potpuna linearna zavisnost, ali je često pogreška učinjena linearnom aproksimacijom dopustivo mala tako da se u praksi koriste koeficijenti proporcionalnosti koji često imaju i poznate nazive: 1) produktivnost (kg/min) 2) prodajna cijena (NJ/kg) 3) normativ 4) snaga stroja (kW) 5) normativ utroška nafte (kg/h) 6) cijena elektri čne energije (NJ/kWh) 7) cijena nafte (NJ/kg) 8) devizni kurs prodajni (NJ/$) 9) devizni kurs kupovni (NJ/$) 10) jedinični troskovi prijevoza (NJ/kg) ili ŠNJ/(kg*km)] 11) trošak skladištenja ŠNJ/(kg*mjesec)] 12) cijena sastojka (NJ/kg) ili ($/kg) Ukoliko se u opisu nekog problema mogu upotrijebiti navedeni koeficijenti proporcionalnosti, njihove recipro čne vrijednosti ili analogno dobiveni koeficijenti, a pretpostavka linearnosti prihvatljiva s dovoljnom to čnosti, postoje preduvjeti da
Linearno programiranje na računalu 211 se izradi model linearnog programiranja. Za rješavanje je dakako potrebno poznavati numeričke vrijednosti upotrijebljenih koeficijenata proporcionalnosti. Neophodno je tako đer utvrditi što je funkcija cilja, tj. što se primjenom LP uop će želi postići. Slijede primjeri nekih tipi čnih funkcija cilja: 1) maksimalna kontribucija ili pokriće (NJ) (Izračunava se kao realizacija umanjena za varijabilni trošak) 2) maksimalna realizacija (NJ) 3) minimalni varijabilni trošak (NJ) 4) minimalni transportni trošak (NJ) 5) maksimalna količina proizvodnje (kg) 6) minimalni utrošak deviza ($) ili (NJ) 7) maksimalna devizna realizacija ($) ili (NJ) 8) maksimalno iskorištenje kapaciteta (h) 9) minimalno odstupanje od neke željene vrijednosti 10) minimalno trajanje neke obrade (h) 11) minimalna cijena izrade neke smjese (NJ) 12) minimalni gubitak (NJ) 13) maksimalni protok (kg/min) Nije uvijek a priori jasno što je cilj koji neka organizacija želi posti ći. Na izravno pitanje odgovorni rukovodioci naj česće se ne mogu odlučiti definitivno za samo jednu od predloženih funkcija cilja. Rezultat takvih nedoumica jest razvoj višekriterijskog programiranja. Ponekad je potrebna i detaljnija analiza da se ustanovi zbog čega neka organizacija postoji i koje je društvene potrebe dužna zadovoljavati, koji su njeni partikularni interesi, a koji je globalni interes. Međutim, često se ipak može problem svesti na optimizaciju jednog kriterija, i to bi u najvećem broju slučajeva trebala biti kontribucija ili doprinos za pokri će. U primjeru proizvodnje radi se o razlici izme đu prihoda koji je ostvaren prodajom i direktnih troškova izrade artikala. Maksimizacija kontribucije istovremeno obuhvaća dvije alternativne funkcije cilja: maksimalnu realizaciju i minimalne varijabilne troškove. Postavlja se pitanje zbog čega nije moguće kontribuciju učiniti po volji velikom ili troškove svesti na nulu i sli čno. To je u realnim problemima nemoguće zbog postojanja niza ograni čenja. Ograničenja se javljaju zbog ograni čene raspoloživosti sredstava (resursa, vrela) kao što su strojevi, sirovine, novac (domaći i devizni), kadrovi, prostor, energenti. Tu su također i tehnička, tržišna, zakonska i financijska ograničenja. Linearno programiranje najlakše se primjenjuje u slučajevima kad prevladava stacionarnost, tj. kad je trajanje prijelaznih pojava zanemarivo u odnosu na trajanje promatranog procesa. U slu čajevima kad je najvažnije izraditi vremenski raspored najčešće je prikladnije primijeniti tehniku mrežnog planiranja.
212
Operacijska istraživanja
11.2. Programski sustav LPE Probleme linearnog programiranja prakti čki je nemoguće rješavati ručno zbog velikog broja aritmetičkih operacija. Za velik broj elektroni čkih računala postoji izrađena programska podrška za LP. U ovoj knjizi primjeri će biti rješavani na mikroračunalu tipa IBM PC linearnim programom LPE razvijenim na Zavodu za primijenjenu matematiku Elektrotehni čkog fakulteta u Zagrebu. Verzije istog programskog sustava izvedene su i na računalima UNIVAC 1100, VAX785, PDP 11/70, EXL7330, i860, SUN i drugima (Kalpić i Mornar, 1984). Program LPE karakteriziran je jednostavnim interaktivnim na činom posluživanja i prikladnim formatom ulaznih podataka. Slijedi popis naredbi koje se mogu koristiti unutar programa LPE: Normalni završetak programa End Čitanje ulaznih podataka formiranih programski ili editorom. Prepare Interaktivno se zadaje naziv jedne ili više funkcija cilja i smjer optimizacije Optimize Pokretanje postupka optimizacije Continue Nastavljanje prekinute optimizacije Solution Ispis rješenja u standardnom obliku i u obliku koji preuzima sljedeći proces Analysis Analiza osjetljivosti, grupna i interaktivna Pokretanje optimizacije uz korištenje postoje će napredne baze Renewal
11.3. Primjeri korištenja linearnog programiranja 11.3.1. Jednostavni problem proizvodnje Prisjetimo se jednostavnog modela proizvodnje iz poglavlja 2.1.3 Model linearnog programiranja bio je Max REALIZ (NJ) = 3(NJ/kg) ARTIKL.1 (kg) + 5(NJ/kg) ARTIKL.2 (kg) STROJ..1 (h) = 1(h/kg) ARTIKL.1 (kg) STROJ..2 (h) = 2(h/kg) ARTIKL.2 (kg) STROJ..3 (h) = 3(h/kg) ARTIKL.1 (kg) + 2 (h/kg) STROJ..1 (h) ≤ 4(h) STROJ..2 (h) ≤ 12(h) STROJ..3 (h) ≤ 18(h)
ARTIKL.2 (kg)
11.3.1.1. Priprema ulaznih podataka za obradu na računalu Ulazni podaci za program LPE pohranjuju se u slijednu formatiziranu datoteku. Redoslijed zapisa proizvoljan je.
Linearno programiranje na računalu 213
11.3.1.1.1. Komentar Znak * u 1. koloni označava da je cijeli zapis komentar. Polja od 41. do 80. stupca bilo kojeg zapisa tretiraju se kao komentar. Dozvoljeni su potpuno prazni redci za vizuelno odjeljivanje grupa podataka.
11.3.1.1.2. Ime varijable Imena varijabli, redaka i stupaca mogu se sastojati od najviše 8 znakova, bez praznina. Razlikuju se velika i mala slova (case sensitive). Rezervirane riječi koje se ne smiju koristiti kao imena varijabli jesu UP, LO, MI, FR i FX
11.3.1.1.3. Element jednadžbi Element jednadžbe ima oblik Ime_stupca Ime_retka koeficijent
11.3.1.1.4. Element ograničenja Ograničenje na bilo koju varijablu, redak ili stupac, ima oblika: Tip_ograničenja Ime_varijable Iznos_ograničenja Tip_ograničenja može biti: UP LO MI FR FX
gornja granica ( ≤ ) donja granica ( ≥ ) donja granica jest -∞ slobodna varijabla (-∞, +∞) fiksirana varijabla ( = )
Za tipove MI i FR ne upisuje se Iznos_ograničenja. Implicitna donja granica za sve varijable jest 0, a gornja je + ∞.
11.3.1.2. Ulazni podaci za primjer jednostavnog problema proizvodnje Za konkretni primjer ulazni podaci mogu biti oblika
214
Operacijska istraživanja
ARTIKL.1 ARTIKL.2 ARTIKL.1 ARTIKL.2 ARTIKL.1 ARTIKL.2 UP STROJ..1 UP STROJ..2 UP STROJ..3
REALIZ REALIZ STROJ..1 STROJ..2 STROJ..3 STROJ..3 4. 12. 18.
3. 5. 1. 2. 3. 2.
11.3.1.3. Rezultati optimizacije S nekoliko interaktivno unesenih naredbi programski se dobije rješenje: *** R O W S *** NO. 1 2 3 4
ROW STROJ..1 STROJ..2 STROJ..3 REALIZ
IN 1 1 2 2
AT B U U B
ACTIVITY 2.000000 12.00000 18.00000 36.00000
LOWER BOUND 0.000000 0.000000 0.000000 NONE
UPPER BOUND 4.000000 12.00000 18.00000 NONE
AT B B
ACTIVITY 2.000000 6.000000
LOWER BOUND 0.000000 0.000000
UPPER BOUND NONE NONE
*** C O L U M N S *** NO. 151 152
COLUMN ARTIKL.1 ARTIKL.2
IN 3 3
Pod naslovom IN (U) navodi se broj incidencija promatrane varijable s ostalim varijablama u modelu. AT (NA) predstavlja status promatrane varijable: B(asic) Bazična, tj. rješenje se nalazi unutar granica U(pper) bound Rješenje je na gornjoj granici L(ower) bound Rješenje je na donjoj granici F(ixed) value Rješenje je na zadanoj fiksnoj vrijednosti A(lternative) Rješenje je na nekoj od granica. Promjena vrijednosti promatrane varijable ne bi izazvala promjenu funkcije cilja. I(nfeasible) Rješenje je izvan dopuštenog intervala Ispis može biti i proširen podacima pod naslovom Objective coefficient (koeficijent kojim varijabla ulazi u funkciju cilja) za stupce, Slack activity (vrijednost dopunske varijable) za retke i Dual activity (dualno rješenje) za sve varijable. Dobiveno rješenje sada se može usporediti s grafičkim na slici 2-3, 11-1
Linearno programiranje na računalu 215
Slika 11-1 Grafičko rješenje jednostavnog problema proizvodnje
11.3.1.4. Interpretacija analize osjetljivosti Osim dobivenog rješenja koje odgovara grafi čkomu, interesantno je promotriti kako bi se optimalno rješenje mijenjalo za slučaj da dođe do promjena pojedinih veli čina. Postupak se naziva analizom osjetljivosti. U programu LPE moguća je analiza promjena ograničenja i promjena koeficijenata u funkciji cilja.
216
Operacijska istraživanja
Rezultat analize jest informacija o tome kako bi trebalo optimalno reagirati ako dođe do promjene. Dobije se interval u kojem analiza vrijedi (DECREASED ACTIVITY, INCREASED ACTIVITY), tj. (UMANJENO RJEŠENJE, UVE]ANO RJEŠENJE), te kolika će biti promjena vrijednosti funkcije cilja (UNIT COST) za jedinično smanjenje, odnosno jedinično povećanje promatrane varijable. Postoji i alternativna interpretacija rezultata analize. Nebazi čne varijable, tj. one čije je rješenje fiksno ili na nekoj od granica, ukazuju na aktivno ograni čenje. Radi se o ograničenju koje onemogućuje daljnje poboljšanje vrijednosti funkcije cilja. Analiza pokazuje stopu poboljšanja funkcije cilja (UNIT COST) za jedini čnu relaksaciju aktivnog ograničenja. Suprotna je promjena za slu čaj da ograničenje postane još restriktivnijim. Jedinična promjena funkcije cilja može se smatrati marginalnom ili rubnom cijenom ograni čeno raspoloživa (ili zahtijevana) sredstva čiju količinu definira promatrano aktivno ograni čenje. Bazične varijable čije se rješenje kreće unutar zadanih granica, ukazuju na sredstva koja nisu kritična, tj. njihova smanjena raspoloživost ili povećani zahtjev nemaju utjecaja na optimalno rješenje ukoliko se kreću unutar intervala (DECREASED
Linearno programiranje na računalu 217 ACTIVITY, INCREASED ACTIVITY). Analogno zakonu ponude i potražnje, marginalna cijena takvih sredstava jest nula. Analiza pokazuje kolik će gubitak nastati (UNIT COST) ako se iz bilo kojeg razloga odstupi od izračunata optimalnog iznosa. Taj izračunati gubitak ujedno označuje dopuštenu varijaciju koeficijenta u funkciji cilja takvu koja neće izazvati promjenu optimalnog rješenja. Do promjene bi došlo samo u vrijednosti funkcije cilja proporcionalno varijaciji tog koeficijenta. To možda naizgled složeno objašnjenje pojasnit će se na primjerima koji slijede. U programu LPE može se interaktivno tražiti analiza odre đene varijable. Za traženu varijablu bit će izračunate promjene vrijednosti svih varijabli u modelu ukoliko se optimalno reagira na jedinično smanjenje odnosno jedinično povećanje analizirane varijable unutar intervala (DECREASED ACTIVITY, INCREASED ACTIVITY). Slijedi primjer analize varijable ARTIKL.1: ***
A N A L Y S I S
F O R
V A R I A B L E
"ARTIKL.1"
***
**************************************************************************** * NO.*COLUMN * ACTIVITY * LOWER BOUND *DECREASED ACT.* UNIT * *----*---------*--------------*--------------*--------------* * * IN* AT *OBJECTIVE COEF* UPPER BOUND *INCREASED ACT.* COST * **************************************************************************** 151 ARTIKL.1 2.000000 0.000000 0.000000 -3.000000 3 B 3.000000 NONE 4.000000 -4.500000 *** VARIABLES MODIFIED DUE TO UNIT DECREASE OF THE VARIABLE "ARTIKL.1" *** NO. 1 3 4
VARIABLE STROJ..1 STROJ..3 REALIZ
OPTIMUM 2.000000 18.00000 36.00000
UNIT CHANGE -1.0000000 -3.000000 -3.000000
LOWER BOUND 0.000000 0.000000 NONE
UPPER BOUND 4.000000 18.00000 NONE
Slika 11-2 Umanjeni iznos za ARTIKL.1 *** VARIABLES MODIFIED DUE TO UNIT INCREASE OF THE VARIABLE "ARTIKL.1" *** NO. VARIABLE
OPTIMUM
UNIT CHANGE
LOWER BOUND
UPPER BOUND
218
Operacijska istraživanja
1 2 4 152
STROJ..1 STROJ..2 REALIZ ARTIKL.2
2.000000 12.00000 36.00000 6.000000
1.0000000 -3.000000 -4.500000 -1.500000
0.000000 0.000000 NONE 0.000000
4.000000 12.00000 NONE NONE
Slika 11-3 Uvećani iznos za ARTIKL.1 Te su vrijednosti grafički prikazane na slikama 11-2 i 11-3 Moguća je i sljedeća interpretacija istog rezultata: Pove ćanje količine za ARTIKL.1 iznad optimuma koji iznosi 2 (kg) umanjuje funkciju cilja sa stopom od 4.5 (NJ/kg). Ako se zbog bilo kojeg razloga, npr. zbog porasta prodajne cijene za ARTIKL.1, realizacija poveća za barem 4.5 (NJ/kg), isplati se proizvoditi koli činu od 4 (kg) tog artikla. Na slici 11-4 to odgovara optimalnom rješenju koje bi se dobilo za funkciju cilja: REALIZ = 7.5 * ARTIKL.1 + 5 * ARTIKL.2. Naprotiv, ako realizacija za ARTIKL.1 pada, isplati se proizvoditi količinu od 2 (kg) sve dok realizacija ne padne na nulu, tj. dok se ne smanji za 3. To je objašnjenje vrijednosti dobivenih pod naslovom UNIT COST u analizi.
Linearno programiranje na računalu 219
Slika 11-4 Varijacija realizacije za ARTIKL.1 Slijede razmatranja za ostale varijable modela.
220
Operacijska istraživanja
Linearno programiranje na računalu 221
***
A N A L Y S I S
F O R
V A R I A B L E
"ARTIKL.2"
***
**************************************************************************** * NO.*COLUMN * ACTIVITY * LOWER BOUND *DECREASED ACT.* UNIT * *----*---------*--------------*--------------*--------------* * * IN* AT *OBJECTIVE COEF* UPPER BOUND *INCREASED ACT.* COST * **************************************************************************** 152 ARTIKL.2 6.000000 0.000000 2.999999 -3.000000 3 B 5.000000 NONE 6.000000 0.000000 *** VARIABLES MODIFIED DUE TO UNIT DECREASE OF THE VARIABLE "ARTIKL.2" *** NO. 1 2 4 151
VARIABLE STROJ..1 STROJ..2 REALIZ ARTIKL.1
OPTIMUM 2.000000 12.00000 36.00000 2.000000
UNIT CHANGE .6666666 -2.000000 -3.000000 .6666666
LOWER BOUND 0.000000 0.000000 NONE 0.000000
UPPER BOUND 4.000000 12.00000 NONE NONE
Valja uočiti da umanjeni iznos za ARTIKL.2 odgovara uvećanom iznosu za ARTIKL.1 na slici 11-4 Koli čina za ARTIKL.2 ne može se povećati jer je STROJ..2 u zasićenju.
222
Operacijska istraživanja
***
A N A L Y S I S
F O R
V A R I A B L E
"STROJ..1"
***
**************************************************************************** * NO.*ROW * ACTIVITY * LOWER BOUND *DECREASED ACT.* UNIT * *----*---------*--------------*--------------*--------------* * * IN* AT *SLACK ACTIVITY* UPPER BOUND *INCREASED ACT.* COST * **************************************************************************** 1 STROJ..1 2.000000 0.000000 0.000000 -3.000000 1 B 2.000000 4.000000 6.000000 -4.500000 *** VARIABLES MODIFIED DUE TO UNIT DECREASE OF THE VARIABLE "STROJ..1" *** NO. 3 4 151
VARIABLE STROJ..3 REALIZ ARTIKL.1
OPTIMUM 18.00000 36.00000 2.000000
UNIT CHANGE -3.000000 -3.000000 -1.0000000
LOWER BOUND 0.000000 NONE 0.000000
UPPER BOUND 18.00000 NONE NONE
*** VARIABLES MODIFIED DUE TO UNIT INCREASE OF THE VARIABLE "STROJ..1" *** NO. 2 4 151 152
VARIABLE STROJ..2 REALIZ ARTIKL.1 ARTIKL.2
OPTIMUM 12.00000 36.00000 2.000000 6.000000
UNIT CHANGE -3.000000 -4.500000 1.0000000 -1.500000
LOWER BOUND 0.000000 NONE 0.000000 0.000000
UPPER BOUND 12.00000 NONE NONE NONE
Interesantno je uočiti da povećanje angažmana za STROJ..1 iznad optimalnih 2(h) smanjuje realizaciju po stopi od 4.5(NJ/h). ***
A N A L Y S I S
F O R
V A R I A B L E
"STROJ..2"
***
**************************************************************************** * NO.*ROW * ACTIVITY * LOWER BOUND *DECREASED ACT.* UNIT * *----*---------*--------------*--------------*--------------* * * IN* AT *SLACK ACTIVITY* UPPER BOUND *INCREASED ACT.* COST * **************************************************************************** 2 STROJ..2 12.00000 0.000000 5.999999 -1.500000 1 U 12.00000 12.00000 18.00000 1.500000 *** VARIABLES MODIFIED DUE TO UNIT DECREASE OF THE VARIABLE "STROJ..2" *** NO. 1 4 151 152
VARIABLE STROJ..1 REALIZ ARTIKL.1 ARTIKL.2
OPTIMUM 2.000000 36.00000 2.000000 6.000000
UNIT CHANGE .3333333 -1.500000 .3333333 -.5000000
LOWER BOUND 0.000000 NONE 0.000000 0.000000
UPPER BOUND 4.000000 NONE NONE NONE
*** VARIABLES MODIFIED DUE TO UNIT INCREASE OF THE VAR IABLE "STROJ..2" *** NO. 1 4 151 152
VARIABLE STROJ..1 REALIZ ARTIKL.1 ARTIKL.2
OPTIMUM 2.000000 36.00000 2.000000 6.000000
UNIT CHANGE -.3333333 1.500000 -.3333333 .5000000
LOWER BOUND 0.000000 NONE 0.000000 0.000000
UPPER BOUND 4.000000 NONE NONE NONE
Realizacija znatno ovisi o promjenama raspoloživog kapaciteta za STROJ..2 jer se radi o uskom grlu te proizvodnje. Pomo ću gore navedenih rezultata i slike 11-5 vidljivo je kako se mijenja dopustivo područ je i u skladu s tim funkcija cilja.
Linearno programiranje na računalu 223
Slika 11-5 Varijacija kapaciteta za STROJ..2 ***
A N A L Y S I S
F O R
V A R I A B L E
"STROJ..3"
***
**************************************************************************** * NO.*ROW * ACTIVITY * LOWER BOUND *DECREASED ACT.* UNIT * *----*---------*--------------*--------------*--------------* * * IN* AT *SLACK ACTIVITY* UPPER BOUND *INCREASED ACT.* COST * **************************************************************************** 3 STROJ..3 18.00000 0.000000 12.00000 -.9999999 2 U 18.00000 18.00000 24.00000 .9999999 *** VARIABLES MODIFIED DUE TO UNIT DECREASE OF THE VARIABLE "STROJ..3" *** NO. 1 4 151
VARIABLE STROJ..1 REALIZ ARTIKL.1
OPTIMUM 2.000000 36.00000 2.000000
UNIT CHANGE -.3333333 -.9999999 -.3333333
LOWER BOUND 0.000000 NONE 0.000000
UPPER BOUND 4.000000 NONE NONE
*** VARIABLES MODIFIED DUE TO UNIT INCREASE OF THE VARIABL E "STROJ..3" *** NO. 1 4 151
VARIABLE STROJ..1 REALIZ ARTIKL.1
OPTIMUM 2.000000 36.00000 2.000000
UNIT CHANGE .3333333 .9999999 .3333333
LOWER BOUND 0.000000 NONE 0.000000
UPPER BOUND 4.000000 NONE NONE
Slično kao STROJ..2, STROJ..3 također je usko grlo proizvodnje. Analizom se dobiju podaci o učinku varijacije njegova raspoloživog kapaciteta.
224
Operacijska istraživanja
Slika 11-6 Varijacija kapaciteta za STROJ..3 Kod analize bazičnih varijabli na rubu intervala neka nebazi čna varijabla sa svoje donje ili gornje granice postaje bazi čnom na izračunatom iznosu. Istovremeno, neka druga bazična varijabla postaje nebazi čnom na donjoj ili gornjoj granici.
Linearno programiranje na računalu 225 Moguć je i slučaj da neka nebazična varijabla koja optimalno kompenzira varijaciju analizirane bazične varijable ne postane bazi čnom nego samo promijeni status granice, tj. poraste s donje granice na gornju ili padne s gornje na donju. Varijacija nebazične varijable dovodi do isključivanja neke do tada bazi čne varijable. Takva bazična varijabla postaje nebazi čnom na donjoj ili gornjoj granici.
11.3.2. Model višefazne proizvodnje Pretpostavimo da je problem sljede ći: Tri različita stroja mogu se alternativno koristiti za izradu dvije vrste proizvoda u koli činama X1, odnosno X2 (kg). Stroj br.3 služi za finalnu obradu. Produktivnost mu se razlikuje; za X1 ona je 35.6 (min/kg), a za X2 31.7 (min/kg). Količina X1 nastaje od bilo koje kombinacije poluproizvoda X11 proizvedenog na stroju br.1 i X12 na stroju br.2. Analogno nastaje količina X2. Produktivnosti za sve te poluproizvode vidljive su sa slike 11-7 Za X1 i X2 koriste se odgovarajuće sirovine br.1, odnosno br.2 uz zadane normative. Količine finalnih proizvoda X1 i X2 prodaju se na tržištu po cijenama 36 (NJ/kg), odnosno 45 (NJ/kg). Proizvođač je obavezan da u zadanom periodu snabdije tržište minimalnim količinama, ali je i apsorpciona moć tržišta uz postojeću cijenu ograničena. Raspoloživo moguće vrijeme rada strojeva tako đer je zadano kao i maksimalne količine sirovina koje je uz navedenu cijenu moguće nabaviti.
226
Operacijska istraživanja
STROJ..1(min) ≤ 2400 op. trošak 0.34(NJ/min)
┌───────────────┐ │ │ 1.12 │ 15.0(min/kg) │ X11(kg) ┌─────────────┤ ├─────────────────┐ │ │ │ │ │ 1.05 │ 23.0(min/kg) │ X21(kg) │ │ ┌──────────┤ ├──────────────┐ │ STROJ..3(min) ≤ 8400 └───────────────┘ │ │ op. trošak 0.27(NJ/min) SIROV..1(kg) ≤ 100 │ │ │ │ trošak 5.7(NJ/kg) │ │ ────────────────────* │ │ │ ┌───────────────┐ │ │ │ │ │ │ 30 ≤ X1(kg) ≤ 250 │ │ │ │ │ 35.6(min/kg) │ cijena 36(NJ/kg) │ │ │ * ─────┤ STROJ..2(min) ≤ 1800 ├────────────────── ────────────────────┼──* │ │ │ │ op. trošak 0.43(NJ/min) │ │ │ 31.7(min/kg) │ SIROV..2(kg) ≤ 300 │ │ ┌───────────────┐ trošak 7.6(NJ/kg) │ │ * ──┼─────┤ ├────────────────── │ │ │ │ │ │ └───────────────┘ 40 ≤ X2(kg) ≤ 120 │ │ 1.07 │ 17.0(min/kg) │ X12(kg) │ │ cijena 45(NJ/kg) └──┼──────────┤ ├──────────────┼──┘ │ │ │ │ │ 1.10 │ 21.5(min/kg) │ X22(kg) │ └──────────┤ ├──────────────┘ └───────────────┘ normativi:
Slika 11-7 Model višefazne proizvodnje
11.3.2.1. Priprema ulaznih podataka Ulazni podaci upisuju se analogno postupku opisanom u 11.3.1.1. Ovdje će se koristiti svojstvo programa LPE da varijable retka smiju ući kao stupac u neku drugu jednadžbu. Redoslijed je podataka proizvoljan. Slijedi ispis ulaznih podataka za problem sa slike 11-7 Zapisi koji počinju znakom * predstavljaju komentar isto kao i stupci 41-80. Kao komentar opisan je model matematičkom notacijom. *234567890123456789012345678901234567890 *PROBLEM VIŠEFAZNE PROIZVODNJE *Ulazni podaci za program: *Finalni prizvodi X11 X1 1. X12 X1 1. X21 X2 1. X22 X2 1. *Utrošak strojnog vremena X11 STROJ..1 15. X21 STROJ..1 23. X12 STROJ..2 17. X22 STROJ..2 21.5 X1 STROJ..3 35.6 X2 STROJ..3 31.7 *Utrošak sirovina X11 SIROV..1 1.12 X12 SIROV..1 1.07 X21 SIROV..2 1.05 X22 SIROV..2 1.10 *Troškovi SIROV..1 TROSAK 5.7
K o m e n t a r Ekvivalentna matemati č ka notacija: X1(kg) = X11(kg) + X12(kg) X2(kg) = X21(kg) + X22(kg) STROJ..1(min) = 15.(min/kg)* X11(kg) + 23.(min/kg)*X 21(kg) STROJ..2(min) = 17.(min/kg)* X12(kg) + 21.5(min/kg) *X22(kg) STROJ..3(min) = 35.6(min/kg)* X1(kg) + 31.7(min/kg)* x2(kg) SIROV..1(kg) = + SIROV..2(kg) = +
1.12*X11(kg) 1.07*X12(kg) 1.05*X21(kg) 1.10*X22(kg)
TROSAK(NJ)= 5.7(NJ/kg)*S IROV..1(kg)
Linearno programiranje na računalu 227 SIROV..2 STROJ..1 STROJ..2 STROJ..3
TROSAK TROSAK TROSAK TROSAK
7.6 0.34 0.43 0.27
+ 7.6(NJ/kg)*SI ROV..2(kg) +.34(NJ/min)* STROJ..1(min) +.43(NJ/min)*S TROJ..2(min) +.27(NJ/min) *STROJ..3(min )
228
Operacijska istraživanja
*Prihod X1 X2 *Kontribucija PRIHOD TROSAK *Ogranič enja LO UP LO UP UP UP UP UP UP
PRIHOD PRIHOD
36. 45.
PRIHOD(NJ) = 36.(NJ/kg)*X 1(kg) + + 45.(NJ/kg)*X2(kg)
KONTRIB. KONTRIB.
1. -1.
KONTRIB.(NJ) = PRIHOD(NJ) - TROSAK(NJ)
X1 X1 X2 X2 STROJ..1 STROJ..2 STROJ..3 SIROV..1 SIROV..2
30. 250. 40. 120. 2400. 1800. 8400. 100. 300.
30.(kg)
≤
X1
≤
250.(kg)
40.(kg)
≤
X2
≤
120.(kg)
STROJ..1 ≤ 2400.(min) STROJ..2 ≤ 1800.(min) STROJ..3 ≤ 8400.(min) SIROV..1 ≤ 100.(kg) SIROV..2 ≤ 300.(kg)
11.3.2.2. Rezultati optimizacije Nakon obavljene optimizacije ispisuju se uobičajeni podaci. Specifičnost je programa LPE u tome što u rubrici UNIT COST uvijek sadrži podatak o promjeni funkcije cilja u slučaju jediničnog porasta odgovarajuće nebazične varijable. Slijedi ispis optimalnog prozvodnog asortimana koji daje maksimalnu kontribuciju. **** LINEAR PROGRAM
L P E ****
*VISEF0* PRIMJER VISEFAZNE PROIZVODNJE *** R O W S *** NO. 10
ROW KONTRIB.
IN 2
AT B
ACTIVITY 3674.277
AT B L B B B U U B U B B B B
ACTIVITY 89.28571 0.000000 46.11802 73.88198 89.28572 120.0000 100.00000 129.6941 2400.000 1588.463 6982.572 8614.286 4940.008
LOWER BOUND NONE
UPPER BOUND NONE
LOWER BOUND 0.000000 0.000000 0.000000 0.000000 30.00000 40.00000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
UPPER BOUND NONE NONE NONE NONE 250.0000 120.0000 100.00000 300.0000 2400.000 1800.000 8400.000 NONE NONE
*** C O L U M N S *** NO. 151 152 153 154 155 156 157 158 159 160 161 162 163
COLUMN X11 X12 X21 X22 X1 X2 SIROV..1 SIROV..2 STROJ..1 STROJ..2 STROJ..3 PRIHOD TROSAK
IN 3 3 3 3 3 3 2 2 2 2 2 2 2
Količina X2 na gornjoj je granici, tj. proširenje tržišta povećalo bi kontribuciju sa stopom od 18.836 (NJ/kg). Interaktivnom analizom osjetljivosti saznaje se da raspon te promjene vrijedi do koli čine 129.8389 kad stroj br.2 prelazi u zasićenje. Također se vidi kako treba modificirati druge veli čine u modelu ako je dozvoljen jedini čni porast analizirane varijable.
Linearno programiranje na računalu 229 ***
A N A L Y S I S
F O R
V A R I A B L E
"X2
"
***
**************************************************************************** * NO.*COLUMN * ACTIVITY * LOWER BOUND *DECREASED ACT.* UNIT * *----*---------*--------------*--------------*--------------* * * IN* AT *OBJECTIVE COEF* UPPER BOUND *INCREASED ACT.* COST * **************************************************************************** 156 X2 120.0000 40.00000 46.11802 -18.83600 3 U 0.000000 120.0000 129.8389 18.83600 *** VARIABLES MODIFIED DUE TO UNIT INCREASE OF THE VARIABLE "X2 NO. 10 154 158 160 161 162 163
VARIABLE KONTRIB. X22 SIROV..2 STROJ..2 STROJ..3 PRIHOD TROSAK
OPTIMUM 3674.277 73.88198 129.6941 1588.463 6982.572 8614.286 4940.008
UNIT CHANGE 18.83600 1.0000000 1.100000 21.50000 31.70000 45.00000 26.16400
LOWER BOUND NONE 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
" *** UPPER BOUND NONE NONE 300.0000 1800.000 8400.000 NONE NONE
Iz optimalnog je plana vidljivo da je stroj br. 1 usko grlo proizvodnje. Pove ćanje njegova kapaciteta donijelo bi pove ćanu kontribuciju po stopi od 0.078478 (NJ/min). Kao što se iz sljedeće analize vidi, poluproizvod za X2 prebacit će se na povoljniji tehnički put, tj. na stroj br. 1. Promjene vrijede do kapaciteta 4099 (min). ***
A N A L Y S I S
F O R
V A R I A B L E
"STROJ..1"
***
**************************************************************************** * NO.*COLUMN * ACTIVITY * LOWER BOUND *DECREASED ACT.* UNIT * *----*---------*--------------*--------------*--------------* * * IN* AT *OBJECTIVE COEF* UPPER BOUND *INCREASED ACT.* COST * **************************************************************************** 159 STROJ..1 2400.000 0.000000 2173.704 -.7847837E-0 1 2 U 0.000000 2400.000 4099.286 .7847837E-0 1 *** VARIABLES MODIFIED DUE TO UNIT INCREASE OF THE VARIABLE "STROJ..1" *** NO. 10 153 154 158 160 163
VARIABLE KONTRIB. X21 X22 SIROV..2 STROJ..2 TROSAK
OPTIMUM 3674.277 46.11802 73.88198 129.6941 1588.463 4940.008
UNIT CHANGE LOWER BOUND .7847830E-01 NONE .4347826E-01 0.000000 -.4347826E-01 0.000000 -.2173915E-02 0.000000 -.9347826 0.000000 -.7847830E-01 0.000000
UPPER BOUND NONE NONE NONE 300.0000 1800.000 NONE
Sirovina br.1 u potpunosti je iskorištena. Ako se mogu nabaviti dodatne koli čine sve do iznosa od 116.9 (kg), kontribucija bi rasla po stopi od 12.256 (NJ/kg) sirovine br.1. Prema tome, to je granica povećanja cijene te sirovine koju još možemo tolerirati. Nakon toga njeno korištenje valja smanjiti na 33.6 (kg). Dodatne količine te sirovine isplatilo bi se nabavljati i za uve ćanu cijenu, sve dok to uvećanje ne premaši izračunati porast kontribucije. To zna či da bi se dodatnih 16.9 kg isplatilo kupiti i po cijeni do 5.7 + 12.256 = 17.956 NJ/kg. Ukoliko bi nabavka veće količine sirovine, tj. 116.9 kg, bila uvjetovana višom cijenom cijele količine te sirovine, može se izra čunati isplati li se to proizvodja ču. Ako
230
Operacijska istraživanja
cijena sirovine poraste za x i poveća se njena raspoloživost, promjena kontribucije bit će 100 * (-x) + 16.8967 * (12.25609-x) > 0 odnosno x ≤ 1.77 Dakle, ako cijena sirovine ne poraste na više od 5.7 + 1.77 = 7.47 NJ, isplati se i uz te uvjete kupovati povećanu količinu. ***
A N A L Y S I S
F O R
V A R I A B L E
"SIROV..1"
***
**************************************************************************** * NO.*COLUMN * ACTIVITY * LOWER BOUND *DECREASED ACT.* UNIT * *----*---------*--------------*--------------*--------------* * * IN* AT *OBJECTIVE COEF* UPPER BOUND *INCREASED ACT.* COST * **************************************************************************** 157 SIROV..1 100.00000 0.000000 33.60000 -12.25609 2 U 0.000000 100.00000 116.8967 12.25609 *** VARIABLES MODIFIED DUE TO UNIT INCREASE OF THE VARIABLE "SIROV..1" *** NO. 10 151 153 154 155 158 160 161 162 163
VARIABLE KONTRIB. X11 X21 X22 X1 SIROV..2 STROJ..2 STROJ..3 PRIHOD TROSAK
OPTIMUM 3674.277 89.28571 46.11802 73.88198 89.28572 129.6941 1588.463 6982.572 8614.286 4940.008
UNIT CHANGE LOWER BOUND 12.25609 NONE .8928571 0.000000 -.5822982 0.000000 .5822982 0.000000 .8928571 30.00000 .2911494E-01 0.000000 12.51941 0.000000 31.78571 0.000000 32.14286 0.000000 19.88676 0.000000
UPPER BOUND NONE NONE NONE NONE 250.0000 300.0000 1800.000 8400.000 NONE NONE
Ako smo zbog bilo kojeg razloga prisiljeni mijenjati izra čunatu optimalnu količinu X1, analiza ukazuje kako treba tu izmjenu kompenzirati, različito za smanjenje i za povećanje, pa da pad kontribucije bude minimalan. Također se može zaključiti da prodajna cijena smije pasti za 13.73 (NJ/kg) odnosno porasti za 3.02 (NJ/kg) prije nego što je nužna izmjena plana. ***
A N A L Y S I S
F O R
V A R I A B L E
"X1
"
***
**************************************************************************** * NO.*COLUMN * ACTIVITY * LOWER BOUND *DECREASED ACT.* UNIT * *----*---------*--------------*--------------*--------------* * * IN* AT *OBJECTIVE COEF* UPPER BOUND *INCREASED ACT.* COST * **************************************************************************** 155 X1 89.28572 30.00000 .7629395E-05 -13.72683 3 B 0.000000 250.0000 91.90587 -3.024438 *** VARIABLES MODIFIED DUE TO UNIT DECREASE OF THE VARIABLE "X1 NO. 10 151 153 154 157
VARIABLE KONTRIB. X11 X21 X22 SIROV..1
OPTIMUM 3674.277 89.28571 46.11802 73.88198 100.00000
UNIT CHANGE -13.72683 -1.0000000 .6521739 -.6521739 -1.120000
LOWER BOUND NONE 0.000000 0.000000 0.000000 0.000000
" *** UPPER BOUND NONE NONE NONE NONE 100.00000
Linearno programiranje na računalu 231 158 160 161 162 163
SIROV..2 STROJ..2 STROJ..3 PRIHOD TROSAK
129.6941 1588.463 6982.572 8614.286 4940.008
-.3260873E-01 -14.02174 -35.60000 -36.00000 -22.27317
0.000000 0.000000 0.000000 0.000000 0.000000
300.0000 1800.000 8400.000 NONE NONE
*** VARIABLES MODIFIED DUE TO UNIT INCREASE OF THE VARIABLE "X1 NO. 10 151 152 153 154 158 160 161 162 163
VARIABLE KONTRIB. X11 X12 X21 X22 SIROV..2 STROJ..2 STROJ..3 PRIHOD TROSAK
OPTIMUM 3674.277 89.28571 0.000000 46.11802 73.88198 129.6941 1588.463 6982.572 8614.286 4940.008
UNIT CHANGE -3.024499 -21.40003 22.40002 13.95654 -13.95654 -.6978280 80.73486 35.60000 36.00000 39.02450
LOWER BOUND NONE 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
" *** UPPER BOUND NONE NONE NONE NONE NONE 300.0000 1800.000 8400.000 NONE NONE
11.3.3. Problem smjese Problem smjese javlja se najčešće u kemijskoj industriji, metalurgiji i poljoprivredi. Potrebno je poznavati sastav, cijenu i raspoloživu količinu za svaku od sirovina od kojih se smjesa radi. S druge strane mora biti poznat sastav tražene smjese. Pri tome su moguće tolerancije, tj. zadavanje intervala, zatvorenih ili poluzatvorenih, za učešće pojedinog sastojka. LP se koristi za izbor sirovina, takav da sastav smjese bude u granicama tolerancija, da se upotrebe one koli čine sirovina koje su raspoložive, a da pri tome ukupna cijena upotrebljenih sirovina bude minimalna. U slučaju kad se radi receptura za izradu jedini čne količine neke smjese, sastav treba zadavati u postocima, a traženu koli činu smjese fiksirati na 100%. Kod rješavanja problema smjese interaktivna analiza može poslužiti za odre đivanje optimalnog omjera supstitucije pojedinih sirovina.
11.3.4. Problem prehrane Treba pripremiti obrok od tri mogu će vrste hrane A, B i C tako da budu zadovoljeni minimalni zahtjevi za ugljikohidratima, bjelan čevinama i vitaminima. Zadan je sastav svake od hrana kao i njihove cijene te minimum zahtjeva za sadržanim komponentama u tablici. Traži se receptura za izradu obroka koji će zadovoljiti minimalne zahtjeve uz najmanji trošak. ┌───────────┬────────────────┬─────────┬──────────┬──────────┐ │ Hrana │ Ugljikohidrati │ Bjelan č . │ Vitamini │ Cijena │ │ (jed/kg) │ (jed/kg) │ (jed/kg) │ (NJ/kg) ├───────────┼────────────────┼─────────┼──────────┼──────────┤ │ A │ 9 │ 3 │ 1 │ 7. 0 │ B │ 2 │ 8 │ 2 │ 6. 0 │ C │ 4 │ 6 │ 6 │ 5. 0 ├───────────┼────────────────┼─────────┼──────────┼──────────┤ │ Min. iznos │ 20 │ 18 │ 15 │ │ (jed/obrok)│ │ │ │ └───────────┴────────────────┴─────────┴──────────┴──────────┘
│ │ │ │ │ │ │
232
Operacijska istraživanja
Slijede ulazni podaci i rješenje: A A A B B B C C C A B C
UGLJIKOH BJELANC VITAMINI UGLJIKOH BJELANC VITAMINI UGLJIKOH BJELANC VITAMINI CIJENA CIJENA CIJENA UGLJIKOH BJELANC VITAMINI
LO LO LO ***
A N A L Y S I S
9. 3. 1. 2. 8. 2. 4. 6. 6. 7. 6. 5. 20. 18. 15. F O R
R O W S
***
**************************************************************************** * NO.*ROW * ACTIVITY * LOWER BOUND *DECREASED ACT.* UNIT * *----*---------*--------------*--------------*--------------* * * IN* AT *SLACK ACTIVITY* UPPER BOUND *INCREASED ACT.* COST * **************************************************************************** 1 UGLJIKOH 20.00000 20.00000 12.00000 -.6428571 3 L 0.000000 NONE 22.50000 .6428571 2 3
BJELANC L
18.00000 0.000000
18.00000 NONE
17.40000 30.00000
-.4047619 .4047619
3 3
VITAMINI B
15.71428 .7142852
15.00000 NONE
4.969697 30.00000
.2123288 .3400000
4 3
CIJENA
NONE NONE
20.14286 20.29452
0.000000 1.0000000
***
B
20.14286 -20.14286
A N A L Y S I S
F O R
C O L U M N S
***
**************************************************************************** * NO.*COLUMN * ACTIVITY * LOWER BOUND *DECREASED ACT.* UNIT * *----*---------*--------------*--------------*--------------* * * IN* AT *OBJECTIVE COEF* UPPER BOUND *INCREASED ACT.* COST * **************************************************************************** 151 A 1.142857 0.000000 NONE 4.250000 4 B 7.000000 NONE 1.191781 3.100000 152 4
B
153 4
C
L
0.000000 6.000000
0.000000 NONE
-2.400000 .1027396
-1.476191 1.476191
B
2.428571 5.000000
0.000000 NONE
2.267123 5.000000
.9393941 1.888889
Linearno programiranje na računalu 233
11.3.5. Problem korištenja sirovina Od 4 raspoložive sirovine izrađuje se smjesa u 3 različite kvalitete A, B i C. Zadani su postoci dozvoljenog učešća pojedinih sirovina da bi se dobila smjesa tražene kvalitete. Poznati su troškovi miješanja, prodajne cijene pojedinih kvaliteta smjese, cijene i raspoložive koli čine sirovina. Želi se izabrati takav proizvodni program koji će donijeti najveću kontribuciju. ┌─────────┬───────────────┬──────────────────┬────────────────┐ │ Kvaliteta│ Specifikacija │ Cijena miješanja │ Prodajna cijena │ │ │ │ (NJ/kg) │ (NJ/kg) │ ├─────────┼───────────────┼──────────────────┼────────────────┤ │ │ ≤ 30% MAT.1 │ │ │ │ A │ ≥ 40% MAT.2 │ 3. 0 │ 8. 5 │ │ │ ≤ 50% MAT.3 │ │ │ ├─────────┼───────────────┼──────────────────┼────────────────┤ │ B │ ≤ 50% MAT.1 │ 2. 5 │ 7. 0 │ │ │ ≥ 10% MAT.2 │ │ │ ├─────────┼───────────────┼──────────────────┼────────────────┤ │ C │ ≤ 70% MAT.1 │ 2. 0 │ 5. 5 │ └─────────┴───────────────┴──────────────────┴────────────────┘ ┌─────────┬───────────────┬──────────────────┐ │ Sirovina │ Raspoloživost │ Cijena sirovine │ │ │ (kg/tjedan) │ (NJ/kg) │ ├─────────┼───────────────┼──────────────────┤ │ MAT.1 │ 3000 │ 3 │ │ MAT.2 │ 2000 │ 6 │ │ MAT.3 │ 4000 │ 4 │ │ MAT.4 │ 1000 │ 2 │ └─────────┴───────────────┴──────────────────┘
Slijedi ispis ulaznih podataka: *KONTRIBUCIJA PRIHOD KONTR 1. TROS.MJE KONTR -1. TROS.SIR KONTR -1. *PRIHOD A PRIHOD 8.5 B PRIHOD 7. C PRIHOD 5.5 *TROSAK MIJESANJA A TROS.MJE 3. B TROS.MJE 2.5 C TROS.MJE 2. *TROSAK NABAVKE SIROVINA MAT.1 TROS.SIR 3. MAT.2 TROS.SIR 6. MAT.3 TROS.SIR 4. MAT.4 TROS.SIR 2. *SASTAV A MAT.1A A 1. MAT.2A A 1. MAT.3A A 1. MAT.4A A 1. *SASTAV B MAT.1B B 1. MAT.2B B 1. MAT.3B B 1. MAT.4B B 1. *SASTAV C MAT.1C C 1.
234
Operacijska istraživanja
MAT.2C C MAT.3C C MAT.4C C *KOLICINA MAT.1 MAT.1A MAT.1 MAT.1B MAT.1 MAT.1C MAT.1 *KOLICINA MAT.2 MAT.2A MAT.2 MAT.2B MAT.2 MAT.2C MAT.2 *KOLICINA MAT.3 MAT.3A MAT.3 MAT.3B MAT.3 MAT.3C MAT.3 *KOLICINA MAT.4 MAT.4A MAT.4 MAT.4B MAT.4 MAT.4C MAT.4 *TEHNOLOSKA OGRANICENJA A RMAT.1A MAT.1A RMAT.1A A RMAT.2A MAT.2A RMAT.2A A RMAT.3A MAT.3A RMAT.3A B RMAT.1B MAT.1B RMAT.1B B RMAT.2B MAT.2B RMAT.2B C RMAT.1C MAT.1C RMAT.1C *RASPOLOZIVOST SIROVINA UP MAT.1 3000. UP MAT.2 2000. UP MAT.3 4000. UP MAT.4 1000.
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0.3 -1. -0.4 1. 0.5 -1. 0.5 -1. -0.1 1. 0.7 -1.
MAT.1A / A MAT.1A 0.3*A - MAT.1A
11.3.6. Primjer problema pridruživanja
≤ ≤ ≥
0.3 0.3*A 0
-> ->
Problem je sljedeći: Raspoloživa su 3 stroja poznatih normativa potrebnog vremena za izradu jedinice proizvoda. Na tim strojevima treba izraditi zadane koli čine artikala P1 i P2. Osnovni cilj jest da se ustanovi je li moguće ostvariti zadanu proizvodnju uz tjedni kapacitet od 40 sati rada za svaki od strojeva. Ako je to mogu će, pokušat će se: a) Minimizirati ukupan utrošak vremena na strojevima da bi se lakše podnio eventualni kvar ili zastoj u proizvodnji. Rješenje će se potražiti u prikladnu odabiru ili pridruživanju radnih operacija pojedinim strojevima. b) Izradit će se takav raspored proizvoda po strojevima koji će osigurati da proizvodnja bude što prije gotova. Radi se o minimizaciji trajanja najdulje obrade (minimaks). Koristit će se isti ulazni podaci, ali je funkcija cilja maksimizacija razlike u vremenu izmedju raspoloživog kapaciteta od 40 sati i vremena za koje će proizvodnja biti potpuno dovršena.
Linearno programiranje na računalu 235 Proizvodni podaci: ┌────────────┬──────────────────────┬──────────────┐ │ Stroj │ Normativi vremena │ Kapacitet │ │ (h/kg) │ (h ) │ │ za artikle │ │ │ P1 P2 │ ├────────────┼──────────────────────┼──────────────┤ │ │ │ │ M1 │ 0.8000 0.8333 │ 40 . │ M2 │ 0.6000 0.9167 │ 40 . │ M3 │ 0.5000 0.7500 │ 40 . │ │ │ ├────────────┼──────────────────────┼──────────────┤ │ Koli č in a │ │ │ koju treba │ 100. 60. │ │ proizvesti │ │ │ (kg) │ │ └────────────┴──────────────────────┴──────────────┘
│ │ │ │ │ │ │ │ │ │ │ │ │
Slijede ulazni podaci: * PROBLEM PRIDRUZIVANJ A * Utrosak vremena za svaki proizvod na svakom od strojeva P11 M11 0.8 P12 M21 0.6 P13 M31 0.5 P21 M12 0.83333 P22 M22 0.91667 P23 M32 0.75 * Utrosak vremena na svakom od strojeva M11 M1 1. M12 M1 1. M21 M2 1. M22 M2 1. M31 M3 1. M32 M3 1. * Maksimalno neiskoristeno vrijeme stroja M1 M1UK 1. P M1UK 1. M2 M2UK 1. P M2UK 1. M3 M3UK 1. P M3UK 1. P PP 1. * Kolicina svakog od proizvoda P11 P1 1. P12 P1 1. P13 P1 1. P21 P2 1. P22 P2 1. P23 P2 1. * Ukupan utrosak vremena na strojevima M1 VRIJEME 1. M2 VRIJEME 1. M3 VRIJEME 1. * Raspolozivi kapaciteti strojeva UP M1UK 40. UP M2UK 40. UP M3UK 40. * Zadane kolicine koje treba proizvesti LO P1 100. LO P2 60.
236
Operacijska istraživanja
Slijedi ispis rješenja: a) Minimizacija ukupnog vremena rada strojeva GOAL FUNCTION OPERATION *** R O W S ***
: VRIJEME : MIN
NO. 10 11 12 13 14 15 16
IN 2 2 2 1 3 3 3
ROW M1UK M2UK M3UK PP P1 P2 VRIJEME
*** C O L U M N S *** NO. COLUMN IN 151 P11 2 152 P12 2 153 P13 2 154 P21 2 155 P22 2 156 P23 2 157 M11 2 158 M12 2 159 M21 2 160 M22 2 161 M31 2 162 M32 2 163 M1 3 164 P 4 165 M2 3 166 M3 3
AT U B U L L L B
ACTIVITY 40.00000 22.79982 40.00000 0.000000 100.00000 60.00000 102.7998
LOWER BOUND 0.000000 0.000000 0.000000 0.000000 100.00000 60.00000 NONE
UPPER BOUND 40.00000 40.00000 40.00000 NONE NONE NONE NONE
AT L B B B B B B B B L B B B B B B
ACTIVITY 0.000000 37.99971 62.00030 48.00020 0.000000 11.99981 0.000000 40.00000 22.79982 0.000000 31.00015 8.999847 40.00000 0.000000 22.79982 40.00000
LOWER BOUND 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
UPPER BOUND NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE
Ukupno je vrijeme rada strojeva 102.80 h, ali trajanje proizvodnje jest 40 h jer su toliko vremena angažirani M1 i M3.
Linearno programiranje na računalu 237 b) Minimizacija trajanja proizvodnje GOAL FUNCTION OPERATION
: PP : MAX
*** NO. 10 11 12 13 14 15 16
R O W S *** ROW M1UK M2UK M3UK PP P1 P2 VRIJEME
AT U U U B L L B
ACTIVITY 40.00000 40.00000 40.00000 5.243944 100.00000 60.00000 104.2682
LOWER BOUND 0.000000 0.000000 0.000000 NONE 100.00000 60.00000 0.000000
UPPER BOUND 40.00000 40.00000 40.00000 NONE NONE NONE NONE
*** NO. 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166
C O L U M N S *** COLUMN IN AT P11 2 B P12 2 B P13 2 B P21 2 B P22 2 L P23 2 B M11 2 L M12 2 B M21 2 B M22 2 B M31 2 B M32 2 B M1 3 B P 4 B M2 3 B M3 3 B
ACTIVITY 0.000000 57.92675 42.07324 41.70743 0.000000 18.29257 0.000000 34.75605 34.75605 0.000000 21.03662 13.71943 34.75605 5.243944 34.75605 34.75605
LOWER BOUND 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
UPPER BOUND NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE
IN 2 2 2 1 3 3 3
Ukupno vrijeme rada strojeva jest 104.27 h, ali je zato obrada na svim strojevima završena već nakon 34.76 h.
238
Operacijska istraživanja
11.3.7. Transportni problem Pretpostavka je da su poznate koli čine nekog artikla koje se proizvode u 3 tvornice na različitim lokacijama. Određene količine tog artikla treba dostaviti u 4 robne kuće koje su također prostorno dislocirane. Treba riješiti problem organizacije transporta iz tvornica u robne ku će tako da ukupni transportni troskovi budu minimalni. U tablici su uneseni potrebni podaci. ┌──────────────┬──────────────────────────────────┬───────────────┐ │ │ Transportni troškovi po jedinici │ │ │ artikla │ Proizvodni │ │ Robne ku ć e │ kapacitet │ ├──────────────────────────────────┤ │ │ │ 1 2 3 4 │ │ ┌─────┼──────────────────────────────────┼───────────────┤ │ │ 1 │ 12 15 9 14 │ 15 0 │ Tvornice │ 2 │ 8 17 16 │ 32 0 │ │ 3 │ 9 15 10 13 │ 27 0 ├────────┴─────┼──────────────────────────────────┼───────────────┘ │ Potražnja │ 180 120 60 275 │ └──────────────┴──────────────────────────────────┘
│ │ │ │ │ │ │
Valja uo čiti da je ukupni proizvodni kapacitet (740) ve ći od ukupne potražnje (635). Također, zbog nekog određenog razloga nije moguće snabdijevati 3. robnu kuću iz 2. tvornice. Uvest će se varijable oblika TVOiROK j. To je količina poslana iz tvornice i u robnu kuću j. Opisani problem može se formulirati kao linearni program: min TRTROSAK =
Σ ( TVOiROKj ) i=1,...,3 j=1,...,4
Σ ( TVOiROKj ) j=1,...,4
≤
TVOi
;
i=1,...,3
( TVOiROKj )
≥
ROKj
;
j=1,...,4 i=1,...,3 i=1,...,3 j=1,...,4
Σ
TVOiROKj
≥
TVO2ROK3
=
0. 0.
* UKUPNI TRANSPORTNI TROSKOVI TVO1ROK1 TRTROSAK 12. TVO1ROK2 TRTROSAK 15. TVO1ROK3 TRTROSAK 9. TVO1ROK4 TRTROSAK 14. TVO2ROK1 TRTROSAK 8. TVO2ROK2 TRTROSAK 17. TVO2ROK4 TRTROSAK 16. TVO3ROK1 TRTROSAK 9. TVO3ROK2 TRTROSAK 15.
;
Linearno programiranje na računalu 239 TVO3ROK3 TRTROSAK 10. TVO3ROK4 TRTROSAK 13. * OGRANICENI KAPACITETI IZVORA TVO1ROK1 TVO1 1. TVO1ROK2 TVO1 1. TVO1ROK3 TVO1 1. TVO1ROK4 TVO1 1. TVO2ROK1 TVO2 1. TVO2ROK2 TVO2 1. TVO2ROK4 TVO2 1. TVO3ROK1 TVO3 1. TVO3ROK2 TVO3 1. TVO3ROK3 TVO3 1. TVO3ROK4 TVO3 1. * OGRANICENA POTRAZNJA TVO1ROK1 ROK1 1. TVO2ROK1 ROK1 1. TVO3ROK1 ROK1 1. TVO1ROK2 ROK2 1. TVO2ROK2 ROK2 1. TVO3ROK2 ROK2 1. TVO1ROK3 ROK3 1. TVO3ROK3 ROK3 1. TVO1ROK4 ROK4 1. TVO2ROK4 ROK4 1. TVO3ROK4 ROK4 1. * PONUDA VECA OD POTRAZNJE UP TVO1 150. UP TVO2 320. UP TVO3 270. LO ROK1 180. LO ROK2 120. LO ROK3 60. LO ROK4 275.
Slijede rezultati analize tog problema: *** A N A L Y S I S F O R R O W S *** **************************************************************************** * NO.*ROW * ACTIVITY * LOWER BOUND *DECREASED ACT.* UNIT * *----*---------*--------------*--------------*--------------* * * IN* AT *SLACK ACTIVITY* UPPER BOUND *INCREASED ACT.* COST * **************************************************************************** 1 TRTROSAK 7430.000 NONE 7430.000 0.000000 11 B -7430.000 NONE 7490.000 1.0000000 2 4
TVO1
3 3
TVO2
4 4
TVO3
5 3
ROK1
6 3
ROK2
U
150.0000 150.0000
0.000000 150.0000
60.00004 180.0000
2.000001 -2.000001
B
215.0000 105.0000
0.000000 320.0000
215.0000 305.0000
0.000000 2.000001
U
270.0000 270.0000
0.000000 270.0000
165.0000 275.0000
3.000001 -3.000001
L
180.0000 0.000000
180.0000 NONE
.1525879E-04 285.0000
-8.000000 8.000000
L
120.0000 0.000000
120.0000 NONE
89.99998 225.0000
-17.00000 17.00000
240
Operacijska istraživanja 7 2
ROK3
8 3
ROK4
L
60.00000 0.000000
60.00000 NONE
29.99998 150.0000
-11.00000 11.00000
L
275.0000 0.000000
275.0000 NONE
270.0000 380.0000
-16.00000 16.00000
*** A N A L Y S I S F O R C O L U M N S *** **************************************************************************** * NO.*COLUMN * ACTIVITY * LOWER BOUND *DECREASED ACT.* UNIT * *----*---------*--------------*--------------*--------------* * * IN* AT *OBJECTIVE COEF* UPPER BOUND *INCREASED ACT.* COST * **************************************************************************** 151 TVO1ROK1 0.000000 0.000000 -30.00003 -6.000000 3 L 12.00000 NONE 89.99997 6.000000 152 3
TVO1ROK2 B
89.99997 15.00000
0.000000 NONE
84.99999 120.0000
0.000000 2.000000
153 3
TVO1ROK3 B
60.00001 9.000000
0.000000 NONE
29.99999 150.0000
2.000000 11.00000
154 3
TVO1ROK4 A
0.000000 14.00000
0.000000 NONE
-30.00002 4.999977
0.000000 0.000000
155 3
TVO2ROK1 B
180.0000 8.000000
0.000000 NONE
-90.00000 285.0000
4.000001 8.000000
156 3
TVO2ROK2 B
30.00003 17.00000
0.000000 NONE
-240.0001 35.00000
.9999987 0.000000
157 3
TVO2ROK4 B
4.999978 16.00000
0.000000 NONE
-84.99998 35.00000
0.000000 .9999989
158 3
TVO3ROK1 L
0.000000 9.000000
0.000000 NONE
-4.999977 180.0000
-4.000001 4.000001
159 3
TVO3ROK2 L
0.000000 15.00000
0.000000 NONE
-4.999977 30.00002
-.9999990 .9999990
160 3
TVO3ROK3 L
0.000000 10.000000
0.000000 NONE
-4.999977 30.00002
-2.000000 2.000000
161 3
TVO3ROK4 B
270.0000 13.00000
0.000000 NONE
240.0000 270.0000
.9999989 0.000000
11.3.8. Optimizacija trajanja projekta Plan izrade nekog projekta može se predočiti mrežom gdje grane koje povezuju dva čvora predstavljaju aktivnosti, a struktura mreže odražava zavisnost među aktivnostima. Numeracija čvorova može biti proizvoljna. Aktivnost je jednoznačno određena svojim početnim i završnim čvorom te trajanjem. Postoje poznate metode kritičnog puta i PERT za rješavanje problema mrežnog planiranja. Ovdje će se pokazati mogućnost formuliranja mrežnog plana kao problema linearnog programiranja. Pretpostavka je da su za svaku aktivnost poznati troškovi njezina obavljanja uz normalno trajanje. Uz dodatne napore kao npr. prekovremeni rad i
Linearno programiranje na računalu 241 dodatni angažman sredstava, trajanje pojedine aktivnosti može se u nekoj mjeri skratiti, ali su tada direktni troškovi ve ći. Pretpostavit ćemo linearnu zavisnost između skraćenja trajanja i pove ćanja troškova za svaku takvu aktivnost. Ako je pretpostavka prihvatljiva, ona omogućuje analizu promjene direktnih troškova u ovisnosti o ukupnom trajanju projekta. Slijedi primjer. Slika 11-8 predstavlja zavisnosti me đu aktivnostima u obliku grafa. Pune linije predstavljaju stvarne aktivnosti. Aktivnosti ozna čene isprekidanom linijom jesu fiktivne, a potrebne su da bi se ukazalo na zavisnosti me đu aktivnostima u skladu s pravilima o formiranju mrežnih planova.
Slika 11-8 Projekt prikazan grafom Pripadni podaci prikazani su u tablici: ┌──────────┬────────┬────────┬─────────┐ │ │ │ │ Jedinič ni │ │ Aktivnost │ Normalno │ Skra ć en o │ trošak │ │ │ trajanje │ trajanje │ skra ć enja │ c │ (i-j) │ n ij │ s ij │ │ ij ├──────────┼────────┼────────┼─────────┤ 1- 2 2 1 30 0 │ │ │ │ │ 2- 3 4 3 20 0 │ │ │ │ │ 3- 4 10 7 30 0 │ │ │ │ │ 4- 5 4 2 35 0 │ │ │ │ │ 4- 6 6 4 15 0 │ │ │ │ │ │ 4- 7 │ 7 │ 5 │ 10 0 │ │ 5- 7 │ 5 │ 3 │ 15 0 │ │ 5- 8 │ │ │ │ │ 6- 8 │ 7 │ 4 │ 20 0 │ │ 7- 9 │ 8 │ 6 │ 10 0 │ │ 8-10 │ 9 │ 5 │ 10 0 │ │ 9-11 │ 4 │ 3 │ 10 0 │ │ 9-12 │ 5 │ 3 │ 15 0 │ │ 10-13 │ 2 │ 1 │ 10 0 │ │ 11-12 │ │ │ │ │ 12-13 │ 6 │ 3 │ 133.3 │ └──────────┴────────┴────────┴─────────┘
242
Operacijska istraživanja
Fiksni trošak f trajanja projekta jest 200 novčanih jedinica po jedinici vremena trajanja projekta. Označimo li s tij trajanje aktivnosti između čvorova i i j, to vrijeme leži između skraćenog trajanja i normalnog trajanja: sij
≤
tij
≤
nij
Ako je tk najranije vrijeme kad se može stići u čvor k počevši u vremenu 0 u početnom čvoru, za svaku se aktivnost i- j može pisati: tj - ti
≥
tij
To znači da optimalno trajanje aktivnosti tij koje treba izračunati ne može biti veće od razlike između najranijeg dopuštenog završetka i najranijeg mogu ćeg početka aktivnosti i- j. Tim ograničenjima ustvari je opisana struktura mreže. Radi prilagodbe rješavanju programom LPE može se pisati: R ij = tj - ti - tij
≥
0
Za to ograničenje ne treba eksplicitno navoditi vrijednost granice. Rij jest ukupna vremenska rezerva za aktivnost i- j. Trajanje te aktivnosti može se produžiti za Rij vremenskih jedinica a da ne izazove produžetak trajanja cijelog projekta. Vrijeme početka projekta fiksirat će se na 0. Funkcija cilja jest suma fiksnih troškova i troškova skraćenja: TROSAK = f tn + Σ c ij (nij - tij) (i,j)
Kako su cij i nij konstante, korisno je funkciju cilja napisati kao tn + Σ c TROSAK = f ij nij (i,j)
= f tn + 13400
Σ +
c ijtij = (i,j)
Σ c ijtij (i,j)
Ta funkcija cilja dat će trajanje projekta optimalno sa stanovišta troškova. Ako želimo još i analizirati ponašanje troškova u ovisnosti od trajanja projekta, to možemo postići parametarskom analizom. Završni čvor, tj. vrijeme završetka projekta tn, fiksirat ćemo na iznos koji ćemo varirati od 45 do 27 vremenskih jedinica s korakom -1. Slijede ulazni podaci za program LPE: *FUNKCIJA CILJA t13 TROSAK Nij*Cij TROSAK t0102 TROSAK t0203 TROSAK t0304 TROSAK t0405 TROSAK t0406 TROSAK t0407 TROSAK
200. 1. -300. -200. -300. -350. -150. -100.
Linearno programiranje na računalu 243 t0507 TROSAK t0608 TROSAK t0709 TROSAK t0810 TROSAK t0911 TROSAK t0912 TROSAK t1013 TROSAK t1213 TROSAK *OPIS STRUKTURE MREZE t02 R0102 t01 R0102 t0102 R0102 t03 R0203 t02 R0203 t0203 R0203 t04 R0304 t03 R0304 t0304 R0304 t05 R0405 t04 R0405 t0405 R0405 t06 R0406 t04 R0406 t0406 R0406 t07 R0407 t04 R0407 t0407 R0407 t07 R0507 t05 R0507 t0507 R0507 t08 R0508 t05 R0508 t0508 R0508 t08 R0608 t06 R0608 t0608 R0608 t09 R0709 t07 R0709 t0709 R0709 t10 R0810 t08 R0810 t0810 R0810 t11 R0911 t09 R0911 t0911 R0911 t12 R0912 t09 R0912 t0912 R0912 t13 R1013 t10 R1013 t1013 R1013 t12 R1112 t11 R1112 t1112 R1112 t13 R1213 t12 R1213 t1213 R1213
-150. -200. -100. -100. -100. -150. -100. -133.33 1. -1. -1. 1. -1. -1. 1. -1. -1. 1. -1. -1. 1. -1. -1. 1. -1. -1. 1. -1. -1. 1. -1. -1. 1. -1. -1. 1. -1. -1. 1. -1. -1. 1. -1. -1. 1. -1. -1. 1. -1. -1. 1. -1. -1. 1. -1. -1.
244
Operacijska istraživanja
*INTERVALI MOGUCEG TRAJANJA AKTIVNOSTI LO t0102 1. UP t0102 2. LO t0203 3. UP t0203 4. LO t0304 7. UP t0304 10. LO t0405 2. UP t0405 4. LO t0406 4. UP t0406 6. LO t0407 5. UP t0407 7. LO t0507 3. UP t0507 5. LO t0608 4. UP t0608 7. LO t0709 6. UP t0709 8. LO t0810 5. UP t0810 9. LO t0911 3. UP t0911 4. LO t0912 3. UP t0912 5. LO t1013 1. UP t1013 2. LO t1213 3. UP t1213 6. *SUMA nij * cij FX Nij*Cij 13400. *TRAJANJE PROJEKTA FX t13 46.
Fiksirana vrijednost za t13 može se smanjivati u koracima sve dok rješenje ne postane nemoguće. Takav se postupak naziva parametarskom analizom. Od rezultata parametarske analize ovdje su priloženi prvi i posljednji parametarski izvještaj i tablica zavisnosti Trošak-Trajanje. Prvi izvještaj: *** PARAMETRIC REPORT # *** R O W S *** NO. ROW IN 1 TROSAK 16 2 R0102 3 3 R0203 3 4 R0304 3 5 R0405 3 6 R0406 3 7 R0407 3 8 R0507 3 9 R0508 3 10 R0608 3 11 R0709 3 12 R0810 3 13 R0911 3 14 R0912 3 15 R1013 3 16 R1112 3 17 R1213 3
1 *** AT B A A A A A B A A B A A A A A A B
ACTIVITY 9000.000 .0000000 .0000000 .0000000 .0000000 .0000000 2.000000 .0000000 .0000000 5.000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 1.000000
LOWER BOUND NONE .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000
UPPER BOUND NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE
Linearno programiranje na računalu 245 *** NO. 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830
C O L U M N S *** COLUMN IN AT t13 3 F Nij*Cij 1 F t0102 2 U t0203 2 U t0304 2 U t0405 2 U t0406 2 U t0407 2 U t0507 2 U t0608 2 U t0709 2 U t0810 2 U t0911 2 U t0912 2 U t1013 2 U t1213 2 U t02 2 B t01 1 A t03 2 B t04 4 B t05 3 B t06 2 B t07 3 B t08 3 B t0508 1 B t09 3 B t10 2 B t11 2 B t12 3 B t1112 1 B
ACTIVITY 45.00000 13400.00 2.000000 4.000000 10.00000 4.000000 6.000000 7.000000 5.000000 7.000000 8.000000 9.000000 4.000000 5.000000 2.000000 6.000000 2.000000 .0000000 6.000000 16.00000 20.00000 22.00000 25.00000 34.00000 14.00000 33.00000 43.00000 37.00000 38.00000 1.000000
LOWER BOUND 45.00000 13400.00 1.000000 3.000000 7.000000 2.000000 4.000000 5.000000 3.000000 4.000000 6.000000 5.000000 3.000000 3.000000 1.000000 3.000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000
UPPER BOUND 45.00000 13400.00 2.000000 4.000000 10.00000 4.000000 6.000000 7.000000 5.000000 7.000000 8.000000 9.000000 4.000000 5.000000 2.000000 6.000000 NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE
ACTIVITY 10000.00 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000
LOWER BOUND NONE .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000
UPPER BOUND NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE
ACTIVITY 28.00000 13400.00 1.000000
LOWER BOUND 28.00000 13400.00 1.000000
UPPER BOUND 28.00000 13400.00 2.000000
Izvještaj za posljednje moguće rješenje: *** PARAMETRIC REPORT # 18 *** *** R O W S *** NO. ROW IN AT 1 TROSAK 16 B 2 R0102 3 L 3 R0203 3 L 4 R0304 3 L 5 R0405 3 L 6 R0406 3 L 7 R0407 3 L 8 R0507 3 L 9 R0508 3 A 10 R0608 3 L 11 R0709 3 L 12 R0810 3 L 13 R0911 3 L 14 R0912 3 L 15 R1013 3 L 16 R1112 3 L 17 R1213 3 L *** C O L U M N S *** NO. COLUMN IN AT 801 t13 3 F 802 Nij*Cij 1 F 803 t0102 2 L
246
Operacijska istraživanja
804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830
t0203 t0304 t0405 t0406 t0407 t0507 t0608 t0709 t0810 t0911 t0912 t1013 t1213 t02 t01 t03 t04 t05 t06 t07 t08 t0508 t09 t10 t11 t12 t1112
2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 4 3 2 3 3 1 3 2 2 3 1
L L B B B L U L L L B L L B L B B B B B B B B B B B L
3.000000 7.000000 2.000000 4.000000 5.000000 3.000000 7.000000 6.000000 5.000000 3.000000 3.000000 1.000000 3.000000 1.000000 .0000000 4.000000 11.00000 13.00000 15.00000 16.00000 22.00000 9.000000 22.00000 27.00000 25.00000 25.00000 .0000000
3.000000 7.000000 2.000000 4.000000 5.000000 3.000000 4.000000 6.000000 5.000000 3.000000 3.000000 1.000000 3.000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000 .0000000
4.000000 10.00000 4.000000 6.000000 7.000000 5.000000 7.000000 8.000000 9.000000 4.000000 5.000000 2.000000 6.000000 NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE NONE
┌─────────────────────────────────────────┐ │ Zavisnost trošak ─ trajanje │ ├───────────────────┬─────────────────────┤ │ Trajanje projekta │ Troškovi projekta │ ├───────────────────┼─────────────────────┤ │ 45 │ 9000 │ │ 44 │ 8800 │ │ 43 │ 8700 │ │ 42 │ 8600 │ │ 41 │ 8533 │ │ 40 │ 8466 │ │ 39 │ 8466 │ │ 38 │ 8500 │ │ 37 │ 8550 │ │ 36 │ 8600 │ │ 35 │ 8650 │ │ 34 │ 8850 │ │ 33 │ 8850 │ │ 32 │ 8950 │ │ 31 │ 9050 │ │ 30 │ 9200 │ │ 29 │ 9600 │ │ 28 │ 10000 │ │ 27 │ Rješenje je nemogu ć e │ └───────────────────┴─────────────────────┘
Vidi se da bi najmanji troškovi bili ako projekt traje između 39 i 40 vremenskih jedinica.
11.3.9. Rješavanje sustava linearnih jednadžbi Ako se ne raspolaže odgovarajućom programskom podrškom za rješavanje velikih sustava linearnih jednadžbi s rijetko punjenom matricom koeficijenata, moguće je upotrebiti programsku podršku za linearno programiranje. Formira se model linearnog programiranja gdje se ista nenegativna varijabla dodaje svakoj od jednadžbi
Linearno programiranje na računalu 247 napisanih u obliku ograničenja tipa jednakosti. Oslobode se sve strukturne varijable, tj. one mogu poprimiti bilo kakvu vrijednost. Dodana varijabla ujedno je i jedina koja ulazi u funkciju cilja. Minimizacijom funkcije cilja, ako matrica nije singularna, dobije se minimum 0. Rješenja strukturnih varijabli ujedno su i rješenja zadanog sustava. U matričnoj notaciji, A x = b
transformira se u min z = x n+1
uz
A 'x ' = b -∞ < x < +∞ x n+1 ≥ 0
gdje su
┌ │ │ 1 │ A ' = │ A ; │...│ │ │ 1 │ └
┐ │ │ │ ┘
┌
┐
└
┘
x ' = │
x │ │ x n+1 │
Primjer za ulazne podatke s rješenjem za strukturne varijable: Xn+1 X1 X1 X1 X2 X2 X2 X3 X3 X3 Xn+1 Xn+1 Xn+1 FX FX FX FR FR FR
Z Y1 Y2 Y3 Y1 Y2 Y3 Y1 Y2 Y3 Y1 Y2 Y3 Y1 Y2 Y3 X1 X2 X3
*** Columns *** No. Column 51 52 53 54
Xn+1 X1 X2 X3
1. 4. 3. 1. 3. 2. 1. 4. 1. 1. 1. 1. 1. 10. 5. 4.
In
At
4 3 3 3
l b b b
Activity 0 -2.5 6 0.5000002
Lower Bound
Upper Bound
0 NONE NONE NONE
NONE NONE NONE NONE
248
Operacijska istraživanja
11.4. Primjeri korištenja višekriterijskog programiranja 11.4.1. Problem proizvodnje i prodaje s međuskladištem Proizvodi X i Y obrađuju se na strojevima A i B u tri vremenska perioda. Kapaciteti strojeva variraju po vremenskim periodima, kao i prihodi od prodanih artikala. Potrebno je proizvesti barem 100 artikala. ┌───────────────┬────────────┬───────────────────────┐ │ │ │ Kapaciteti strojeva │ │ Proizvod │ po periodu (h) │ │ X Y │ 1 2 3 ├───────────────┼────────────┼───────────────────────┤ │ Stroj A │ 3 1.5 │ 900 680 450 │ (h/t) B │ 1 3 │ 640 400 380 ├───────────────┼────────────┼───────────────────────┘ │ Prihod po 1 │ 3 2.25 │ │ periodima 2 │ 3.75 3 │ │ (NJ/t) 3 │ 6.5 4 │ └───────────────┴────────────┘
│ │ │ │ │
Mogućnost prodaje u pojedinim periodima ograni čena je. ┌───────────────────────────────────────────────┐ │ Mogu ć nost plasmana po periodima │ │ 1 2 3 │ ├────────────────┬──────────────────────────────┤ │ Proizvod X │ 300 350 nije ograni č en o │ │ (t) Y │ 400 420 nije ograni č en o │ └────────────────┴──────────────────────────────┘
Neprodanu količinu treba skladištiti, uz sljede će cijene i potrebnu površinu skladišta: ┌──────────────┬─────────────────────────────────┐ │ │ Periodi od-do Potrebna │ │ │ 1-2 2-3 površina (m²/t) │ ├──────────────┼─────────────────────────────────┤ │ Proizvod X │ 4 4.5 50 │ │ (NJ/t) Y │ 6 2.5 30 │ └──────────────┴─────────────────────────────────┘
Potrebno je proizvesti što veću količinu proizvoda, ostvariti najve ću kontribuciju i zauzeti što manju površinu skladišta. Protok proizvodnje, skladištenja i prodaje za proizvod X može se predo čiti d i j a g r a m o m ( s l i k a 1 1 - 9 ) .
Linearno programiranje na računalu 249
Slika 11-9 Proizvodnja u više perioda Oznake na dijagramu jesu ove: ─ količina proizvoda proizvedena na stroju A u periodu n XAn ─ količina proizvoda proizvedena na stroju B u periodu n XBn ─ ukupna količina proizvedena u periodu n Xn XSn ─ količina proizvoda skladištena od perioda n do n+1 XPn ─ količina proizvoda prodana u periodu n ─ količina proizvedena i prodana u periodu n XPnPn ─ količina proizvedena u periodu n i skladištena od perioda n do n+1 XPnSn ─ količina skladištena od perioda n do n+1 a prodana u periodu m XSnPm ─ količina skladištena i u periodu 1 ─ 2 i u periodu 2 ─3 XS1S2
250
Operacijska istraživanja
Analogni dijagram protoka može se izraditi i za proizvod Y. Optimizacija pojedinih funkcija cilja daje tablicu rješenja: *** PAYOFF TABLE *** KOLICINA KONTRIB POVRSINA
KOLICINA 2773.33 2233.33 2150.00
KONTRIB 6612.50 8192.50 8042.50
POVRSINA 49500.00 3500.00 .00
Višekriterijska optimizacija s po četnim težinama daje rješenje: *** SOLUTION FOR OBJECTIVES *** NAME KOLICINA KONTRIB POVRSINA
VALUE
OPTIMAL VALUE
DIFFERENCE
WEIGHT
2150.00000 8042.50000 .00000
2773.33400 8192.50100 .00000
623.33350 150.00050 .00000
.00000 .00000 .99999
To rješenje može se smatrati zadovoljavajućim, jer se već iz tablice rješenja vidi da će nebitno povećanje količine i kontribucije osjetno povećati zauzeće skladišta.
11.4.2. Problem transporta Treba riješiti problem transporta jedne vrste robe od tri skladišta do četiri potrošača uz minimalne troškove i najmanje provedeno vrijeme robe na putu. Troškovi transporta izraženi su u novčanim jedinicama i zadani matricom C, gdje je cij trošak transporta od skladišta i do potrošača j po toni robe. Vrijeme na putu
Linearno programiranje na računalu 251 izraženo je u satima i zadano matricom T, gdje je tij vrijeme potrebno da se roba dopremi od skladišta i do potrošača j. ┌ ┐ ┌ ┐ │ 4 7 8 9 │ │ 2 5 4 7 │ C = │ 2 4 9 1 │ T = │ 1 6 9 8 │ │ 3 5 6 10 │ │ 9 4 7 3 │ └ ┘ └ ┘ Količine na skladištu i potrebe potrošača izražene su u tonama i zadane vektorima
s i p kako slijedi: ┌
s = │ 30
└
┐ T
┌
40 │
30
p = │ 20
┘
25
30
└ Cijena transporta može se izraziti sljede ćom jednadžbom: CIJENA = Σ Σ x ij c ij i
┐T
25 │
┘
j
gdje je xij količina robe transportirane iz skladišta i potrošaču j. Ukupno vrijeme koje roba provede na putu izraženo u tona-satima dano je kao: VRIJEME =
Σ Σ i
x ijtij
j
Optimizacijom pojedinih funkcija cilja dobije se matrica rješenja: *** PAYOFF TABLE *** CIJENA VRIJEME
CIJENA 425.00 645.00
VRIJEME 530.00 335.00
Minimizacija po troškovima daje rezultate ┌ │ 20 X = │ 0 │ 0 └
0 5 20
10 0 20
┐
0 │ 25 │ 0 │
┘
dok se minimizacijom vremena provedenog na putu dobije ┌ │ 0 X = │ 20 │ 0 └
0 10 15
30 0 0
┐
0 │ 0 │ 25 │
┘
Nakon dobivanja početnih težina računa se kompromisno rješenje *** SOLUTION FOR OBJECTIVES *** NAME CIJENA VRIJEME
VALUE
OPTIMAL VALUE
DIFFERENCE
WEIGHT
512.87890 417.12110
425.00000 335.00000
87.87894 82.12110
.48307 .51693
252
Operacijska istraživanja
uz količine ┌ │ 5.79 X = │ 14.2 │ 0 └
0 0 25
┐
│ 24.2 0 0 15.79 │ 5.79 9.2 │ ┘
11.4.3. Organizacija proizvodnje Neko poduzeće proizvodi pet vrsta proizvoda. Raspolaže se jednom osnovnom sirovinom i tri stroja. Zadano je vrijeme izrade jednog proizvoda na svakom stroju (h/kom), utrošak sirovine za svaki proizvod (kg/kom), kapaciteti strojeva (h/period), dohodak po jedinici proizvoda (NJ/kom) i najmanja potrebna koli čina svakog proizvoda: ┌─────────┬──────────────────────────────────┬──────────┐ │ │ Proizvodi │ │ │ │ P1 P2 P3 P4 P5 │ Kapacitet │ ├─────────┼──────────────────────────────────┼──────────┤ 5 3 2 4 1 │ 60 0 │ │ Stroj 1 │ 6 4 3 6 2 │ 55 0 │ │ Stroj 2 │ 4 3 3 4 1 │ 40 0 │ │ Stroj 3 │ 350 150 500 100 │ │ Sirovina │ 600 │ 40 30 20 10 10 │ │ Dohodak │ │ 10 15 20 15 20 │ │ Potrebe │ │ └─────────┴──────────────────────────────────┴──────────┘
Želi se postići maksimalni dohodak, maksimalni broj proizvoda i minimalni utrošak vremena. Optimizacija pojedinih funkcija cilja daje ovakvu tablicu rješenja: *** PAYOFF TABLE *** DOHODAK BRPROIZV SIROVINA
DOHODAK 4775.00 3575.00 2375.00
BRPROIZV 120.00 200.00 80.00
SIROVINA 3200.00 2800.00 1600.00
Uz izračunate početne težine može se dobiti sljede će kompromisno rješenje: *** SOLUTION FOR OBJECTIVES *** NAME DOHODAK BRPROIZV SIROVINA
VALUE
OPTIMAL VALUE
DIFFERENCE
WEIGHT
4069.09400 113.88190 1938.81900
4775.00000 200.00000 1600.00000
705.90600 86.11811 338.81880
.26358 .18727 .54915
Pretpostavimo da rješenje ne zadovoljava zbog premalena ukupnog broja proizvoda. Variranjem težina može se postići zadovoljavajuće rješenje: *** SOLUTION FOR OBJECTIVES *** NAME DOHODAK BRPROIZV SIROVINA
VALUE
OPTIMAL VALUE
DIFFERENCE
WEIGHT
4175.00000 140.00000 2200.00000
4775.00000 200.00000 1600.00000
600.00000 60.00000 600.00000
.10000 1.00000 .10000
Linearno programiranje na računalu 253 *** R O W S *** NO. 1 2 3
ROW STROJ1 STROJ2 STROJ3
IN AT 5 B 5 B 5 B
ACTIVITY 365.0001 550.0000 375.0000
LOWER BOUND .0000000 .0000000 .0000000
UPPER BOUND 600.0000 550.0000 400.0000
LOWER BOUND 10.00000 15.00000 20.00000 15.00000 20.00000
UPPER BOUND NONE NONE NONE NONE NONE
*** C O L U M N S *** NO. 151 152 153 154 155
COLUMN IN AT PROIZV1 6 L PROIZV2 6 L PROIZV3 6 L PROIZV4 6 B PROIZV5 6 B
ACTIVITY 10.00000 15.00000 20.00000 45.00001 50.00000
254
Operacijska istraživanja
12. LITERATURA Bazaraa M.S., Shetty C.M.: Nonlinear Programming, John Wiley & Sons, New York, 1979. Bellman, R.: On a Routing Problem, Quart. Appl. Math., vol. XVI, no.1, 1958. Bunch, J.R., Rose, D.J.: Sparse Matrix Computations, Academic Press, New York, 1976. Burkard, R.E.: Methoden der ganzzahligen Optimierung, Springer Verlag, Wien, 1972. Dück, W., Bliefernich, M.: Operationsforschung, VEB Deutscher Verlag der Wissenschaften, Berlin, 1971. Chen, P.P.: The Entity-Relationship Model ─ Toward a Unified View of Data, ACM Transactions on Database Systems, Vol. 1, pp. 9-36, 1976. Church, R., ReVelle, C.: The Maximal Covering Location Problem, Papers of the Regional Science Association, Vol. 32, 1974. Fryer, M.J.: An Introduction to Linear Programming and Matrix Game Theory, Edward Arnold, London, 1978. Gessner, R.A.: Repetitive Manufacturing Production Planning, John Wiley & Sons, 1988. Helary, J.-M., Pedrono, R.: Recherche Operationnelle ─ Travaux diriges, Hermann, Paris, 1983. Hillier, F.S., Lieberman, G.J.: Operations Research, Holden-Day Inc., 1974. Hwang,C.L., Masud, A.S.Md.: Multiple Objective Decision Making ─ Methods and Applications, Springer-Verlag, Berli, Heidelberg, New York, 1979. Hwang, C.L., Yoon, K.: Multiple Attribute Decision making - Methods and applications, Springer-Verlag, 1981. IBM: Conversational and Interactive Project Evaluation and Control, General Information Manual, GH19-1150-2, 1984. Judin, D.B., Goldstein, E.G.: Lineare Optimierung, Akademie-Verlag, Berlin, 1968. Kalpić, D.: Algoritmi linearnog programiranja na malom ra čunalu, doktorska disertacija, Zagreb, 1982. Kalpić, D., Baranović, M., Mornar, V.: Planiranje proizvodnje karakterizirane procesima, Zbornik radova s 1. konferencije iz operacijskih istraživanja KOI'91, Zagreb, 1991.
Literatura 255 Kalpić, D., Baranović M., Mornar V.: Two-Period Production Planning and Simulation by Linear Programming with Multiple Objectives, Proceedings of 18th International Conference on Computers & Industrial Engineering, Shanghai, 1995, pp. 339-343. Kalpić, D., Mornar, V., Baranović, M.: Neki postupci za lociranje kontradiktornih ograničenja, Zbornik radova s 2. konferencije iz operacijskih istraživanja KOI'92, Rovinj, 1992. Kalpić, D., Mornar, V.: Linear Programming System LPE, Product Description, Zavod za primijenjenu matematiku, Elektrotehnički fakultet, Zagreb, 1984. Kalpić, D., Mornar, V.: Donošenje odluka interaktivnim višekriterijskim linearnim programiranjem, Informatologia Yugoslavica 18 (3-4), 1986. Kalpić, D., Mornar V., Baranović M.: Case study based on a multi-criteria production planning model, European Journal of Operational Research 87 (1995), pp 658-669 Kaufmann, A., Cruon, R.: Dynamic Programming, Academic Press, New York, 1967. Kaufmann, A.: Graphs, Dynamic Programming and Finite Games, Academic Press, New York, 1967 Kaufmann, A., Faure, R.: Invitation a la récherche opérationnelle, Dunod, Paris, 1970. Kaufmann, A.: Méthodes et modèles de la récherche opérationnelle, Dunod, Paris, 1970. Kendrich, Stoudjesdik: The planning of industrial investment programs, John Hopkins University Press, Baltimore, 1978. Kochan, D., Olling, G.: Software for Manufacturing, North-Holland, Amsterdam, 1989. Limić, N., Pašagić, H., Rnjak, Č.: Linearno i nelinearno programiranje, Informator, Zagreb, 1978. Maleš, H.: Usporedba nekih računarskih postupaka s rijetko punjenim matricama, magistarski rad, Zagreb, 1989. Maranzana, F.F.: On the Location of Supply Points to Minimize Transport Costs, Operations Research Quart., vol 15, 1964. Martić, Lj. et al.: Višekriterijalno programiranje, Informator, Zagreb, 1978. McMillan, Cl. Jr.: Mathematical Programming, John Wiley & Sons, 1970. Mornar, V.: Interaktivno višekriterijsko linearno programiranje, magistarski rad, Zagreb, 1985. Norris, F.R.: Discrete Structures: an introduction for mathematics for computer science, Prentice Hall, Englewood Cliffs, 1985.
256
Operacijska istraživanja
Orchard-Hays, W.: Advanced Linear-Programming Computing Techniques, McGraw-Hill, New York, 1968. Pauše, Ž.: Vjerojatnost. Informacija. Stohastički procesi, Školska knjiga, Zagreb, 1974. Ravindran, A., Phillips, D.T., Solberg, J.J.: Operations Research ─ Principles and Practice, John Wiley & Sons, New York, NY, 1987. Sasiseni, M., Yaspan, A., Friedman, L.: Operations Research, John Wiley & Sons, New York, 1959. Schassberger, R.: Warteschlangen, Springer-Verlag, Wien, 1973. Schrage, L.: Linear, Integer, and Quadratic Programming with LINDO, The Scientific Press, Palo Alto, CA Sivazlian, B.D., Stanfel, L.E.: Analysis of Systems in Operations Research, PrenticeHall, Englewood Cliffs, 1975. Smythe, W.R., Johnson, L.A.: Introduction to Linear Programming with Applications, Prentice-Hall, Englewood Cliffs, 1966 UNIVAC 1100: Functional Mathematical Programming System, Sperry-Rand, 1975. Vajda, S.: An Introduction to Linear Programming and the Theory of Games, Methuen, London, 1970. Žepić A., Kalpić D.: Osnove operacionih istraživanja, Sveučilište u Zagrebu, 1976.