OPERACIONA ISTRAŽIVANJA ʹ prvih 8 predavanja

SADRŽAJ
O OPERACIONIM ISTRAŽIVANJIMA (OBNAVLJANJE) ................................................................................. 5 Predmet Operacionih Istraživanja (OI).................................................................................................. 5 Osnovne karakteristike OI kao naučne discipline su.............................................................................. 6 Karakteristike OI - Usredsređenost na probleme upravljanja u složenim sistemima .......................... 6 Karakteristike OI - Sistemski pristup problemima ............................................................................. 7 Karakteristike OI - Timski rad............................................................................................................ 7 Karakteristike OI - Naučni metod nalaženja rješenja ......................................................................... 7 Karakteristike OI - Naučni metod nalaženja rješenja ......................................................................... 7 Karakteristike OI - Naučni metod nalaženja rješenja ......................................................................... 7 Faze primjene OI .................................................................................................................................. 8 Faze primjene OI - Definiranje problema i prikupljanje odgovarajućih podataka ............................... 9 Faze primjene OI - Konstrukcija modela ........................................................................................... 9 Faze primjene OI ʹ Nalaženje rješenja ............................................................................................ 12 Faze primjene OI ʹ Testiranje modela i rješenja ............................................................................. 13 Faze primjene OI ʹ Priprema modela za korištenje ........................................................................ 14 Faze primjene OI ʹ Implementacija ................................................................................................ 14 MATEMATIČKO PROGRAMIRANJE.......................................................................................................... 15 1. SIMULACIJA DISKETNIH SISTEMA ....................................................................................................... 16 1.1. Obnavljanje statistike .................................................................................................................. 16 1.1.1. Događaj ................................................................................................................................ 16 1.1.2. Slučajna varijabla.................................................................................................................. 16 Primjer 1.1. ........................................................................................................................................ 16 Primjer 1.2. ........................................................................................................................................ 16 1.1.3. Funkcija raspodjele............................................................................................................... 16 Vjerovatnost kao površina ................................................................................................................. 17 Primjer 1.3. .................................................................................................................................... 17 1.2. Osnovno o simulaciji ................................................................................................................... 19 1.2.1. Razlozi za korištenje modela i simulacije ............................................................................... 20 1.2.2. SIMULIRANJE ........................................................................................................................ 21 Primjer 1.4. .................................................................................................................................... 22 1.2.3. Upotreba digitalnih računara u modeliranju i simuliranju ..................................................... 25

2

SIMULIRANJE DISKRETNIH SISTEMA KONTINUIRANIM MODELIMA ..................................................... 27 1.3. Diskretna simulacija ........................................................................................................................ 28 Simuliranje diskretnih sistema ........................................................................................................... 28 Događajima upravljani modeli............................................................................................................ 29 Primjer 1.5. .................................................................................................................................... 30 1.3.2. Generiranje slučajnih događaja ............................................................................................ 33 Pseudoslučajni brojevi s jednolikom raspodjelom........................................................................... 33 1.3.3. Simulacijski jezici za diskretne sisteme.................................................................................. 36 Simulacioni jezici................................................................................................................................ 37 1.4. Posmatranje simulacije ............................................................................................................... 38 1.4.1. Prikupljanje statistika ........................................................................................................... 38 Iskorištenje servisa......................................................................................................................... 39 1.4.2. Dizajn simulacionog eksperimenta........................................................................................ 40 4. MATEMATIČKO PROGRAMIRANJE ...................................................................................................... 42 LINEARNO PROGRAMIRANJE ................................................................................................................. 42 - ponavljanje - ........................................................................................................................................ 42 MATEMATIČKO PROGRAMIRANJE ...................................................................................................... 42 NELINEARNO PROGRAMIRANJE ..................................................................................................... 43 LINEARNO PROGRAMIRANJE .......................................................................................................... 46 5. LINEARNO PROGRAMIRANJE.............................................................................................................. 63 DUALNI PROBLEM ................................................................................................................................. 63 Osnovni rezultati teorije dualnosti ..................................................................................................... 66 Svojstvo 2.4.1. Slaba dualnost ........................................................................................................ 66 Svojstvo 2.4.2. ................................................................................................................................ 67 Svojstvo 2.4.3. ................................................................................................................................ 67 Svojstvo 2.4.4. ................................................................................................................................ 67 Svojstvo 2.4.5. (Komplementarnost optimalnih rješenja primala i duala) ........................................ 67 Svojstvo 2.4.6. (Komplementarnost rješenja primala i duala).......................................................... 68 Dualna simplex metoda.................................................................................................................. 72 6. LINEARNO PROGRAMIRANJE, TRANSPORTNI PROBLEM, PROBLEM RASPOREDJIVANJA ...................... 79 2.5.1. TRANSPORTNI PROBLEM .................................................................................................... 79

Postavka zadatka ........................................................................................................................... 79

3

..............................4...... 124 Zaokruživanje rješenja linearne relaksacije ...................... 125 3.............2....... 90 Matematički model problema raspoređivanja ............... 111 Problem ranca (Knapsack problem) .............................. 126 4 .................. 98 3........ 124 Totalno pretraživanje ........................................................................................................................................................ 91 7...................................................................................................... METOD GRANANJA I OGRANIČAVANJA ....................................................... 115 3..................................................................................................................................................................................... POSTAVKA PROBLEMA ...............................................................................................................3.............................................................1............................................................................... 102 Problem raspoređivanja (Assignment prob-lem) ........................................................................................................2.............................................. 110 Transportni problem (The transportation problem).........................................2.............................5..................................... 124 Prevođenje u problem nelinarnog programiranja ........................ PROBLEM RASPOREDJIVANJA ................... PRISTUPI RJEŠAVANJU PROBLEMA CLP ............ 90 Postavka zadatka ........................ CJELOBROJNO LINEARNO PROGRAMIRANJE (1)........................ 97 3....................... METODA ODSJECAJUĆIH RAVNI (Gomory) ........ 113 Problem ranca (Knapsack problem) ........................................................................

'Ekspertne sisteme' (Expert systems ʹ ES) . Bavi se problemima u kojima treba riješiti ʹ kako voditi ili koordinirati operacije (aktivnosti) da bi se postigli najbolji efekti u skladu sa nekim kriterijem uz određena ograničenja. simulacije.Evropska asocijacija EURO (European Associations of Operations Research Societes). daleko šire i efikasnije korištenje ͣklasičnih͞ metoda OI (linearno programiranje. Jedna od definicija.. koje imaju za cilj nalaženje najboljih (optimalnih) rješenja složenih problema. mrežno planiranje.Analitička obrada podataka u realnom vremenu (On Line Analytic Processing . 5 .'Sisteme za podršku odlučivanju' (Decision Suport Systems ʹ DSS) . Takvi pristupi se mogu naći u okviru naziva: . operaciona istraživanja (OI) postoje od 1940-te godine. Smatra se da.Poslovno istraživanje (Business Intelligence). OI su uključena u kreativna naučna istraživanja fundamentalnih osobina operacija (aktivnosti).OLAP) . predstavljaju jednu od suvremenih interesantnih oblasti operacionih istraživanja. Nacionalna udruženja se često povezuju u regionalne organizacije kao što su na pr. Metode OI se primjenjuju u situacijama gdje je potrebno ʹ raspoloživim (ograničenim) resursima potrebno je postići najbolje rezultate. kao nauka. . upravljanje zalihama.͞ OI se bave istraživanjem operacija (aktivnosti).AI) Ovi problemi.O OPERACIONIM ISTRAŽIVANJIMA (OBNAVLJANJE) Predmet Operacionih Istraživanja (OI) OI su skup metoda. Danas velika većina zemalja ima svoja nacionalna profesionalna udruženja za OI koja organiziraju svoje skupove i izdaju časopise i biltene ..). Dio naziva ʹ istraživanja ʹ znači da OI koriste naučni pristup pri rješavanju zadataka sa kojima se susreću. potakla je razvoj novih načina korištenja metoda za nalaženje najboljih rješenja kroz: . S druge strane. .'Vještačku inteligenciju' (Artificiel Intelligence . optimalno rezerviranje.'Sisteme za podršku izvršavanju' (Execution Suport Systems ʹ ESS) . Ova veza je omogućila. koja dosta dobro određuje sadržaj OI. je sljedeća: ͣOperaciona istraživanja predstavljaju skup kvantitativnih i drugih naučnih metoda pomoću kojih se određuju (pronalaze) optimalna ekonomsko-tehnička rješenja složenih problema.Rudarenje podataka (Data Mining) . Tako su metode OI (pored ostalih područja) našli široku primjenu na području poslovnog odlučivanja i upravljanja. Naučni metod se koristi i za naučno (najčešće matematičko) modeliranje realnih problema koje je potrebno riješiti. traganje za podacima i otkrivanje skrivenih odnosa i značenja među njima.Razvoj informacionih tehnologija (IT) je dao snažnu osnovu i poticaj za razvoj i primjenu metoda OI. s jedne strane. Povezivanje poslovnih IS i OI je proizvelo novi kvalitet ʹ IS za podršku upravljanju.

Usredsređenost na probleme upravljanja u složenim sistemima U pravilu se rješavaju zadaci: .koji uključuju veliki broj nepoznatih veličina .Usredsređenost na probleme upravljanja u složenim sistemima Izvanredne mogućnosti IT i stalni razvoj metoda za nalaženje najboljih rješenja omogućuju rješavanje ambicioznih zadataka upravljanja u složenim organizacionim sistemima. Karakteristike OI .- Međunarodna federacija za operaciona istraživanja IFORS (International Federation of Operational Research Societes) Institut za operaciona israživanja INFORMS (Institut for Operational Research and the Management Science).čiji se uvjeti ne ponavljaju više puta pod istim okolnostima Rješavanje takvih zadataka je najčešće ozbiljan istraživački poduhvat 6 . Osnovne karakteristike OI kao naučne discipline su: Usredsređenost na probleme upravljanja u složenim sistemima Sistemski pristup problemima Timski rad Naučni metod nalaženja rješenja Karakteristike OI .za koje ne postoje predhodna iskustva .

dovoljno jednostavan da bi mogao biti rješiv. ne mora se uvjek dobiti (a najčešće se i ne dobije) optimalno rješenje za cjelinu (optimalni nivo zaliha sa stanovišta prodaje. regija) moraju se rješavati sa saznanjem da su to jedinstveni subjekti (cjeline).Timski rad OI istraživači su.Sistemski pristup problemima ͚Cjelina je više nego zbir dijelova' (Aristotel) Optimazirajući dijelove. u pravilu. Problemi. bolnica. 7 .dovoljno 'sličan' stvarnom problemu da bi mogao da bude njegova zamjena . jednostavnije i jasnije se prikazuju u matematičkom obliku (jednačine. Upotreba matematičkih modela (i matematičkih pristupa) je.Naučni metod nalaženja rješenja OI koriste matematički jezik za opisivanje i rješavanje postavljenih zadataka. u slučaju neslaganja modela sa ponašanjem realnog sistema. jer su različiti stručnjaci unosili u timski rad različite pristupe i na taj način obogatili metode u mnogim naučnim područjima. Karakteristike OI ...Naučni metod nalaženja rješenja Uprošćenja i zanemarenja. pa se to može iskoristiti. nejednačine.Naučni metod nalaženja rješenja osnovni zadatak modeliranja i jest u tom da se dođe do (matematičkog) modela koji je . koja se čine pri matematičkom modeliranju su često uočljiva. Karakteristike OI . također. organizirani u timove.Karakteristike OI . zhtijevaju znanja iz različitih oblasti. ne mora biti optimalan sa stanovišta preduzeća). koji su se rješavju. To ima pozitivan uticaj i na unapređenje metoda. Karakteristike OI . jedan od uslova za korištenje IT u rješavanju konkretnih problema upravljanja u raznim područjima primjene. vojna jedinica. Problemi složenih organizacionih sistema (preduzeće.) Karakteristike OI . . Prednosti ovakvog pristupa su sljedeće: Složene veze izmedju raznih veličina u realnom sistemu.

Formiranje matematičkog modela koji predstavlja problem 3. to ne znači da osnovnu težinu. ima sljedeće faze: 1.Faze primjene OI Kvanitativne metode predstavljaju najveći dio onoga što se danas naziva OI. pri praktičnom korištenju OI. Definiranje problema i prikupljanje odgovajućih podataka 2. Implementacija 8 . Međutim. One (matematičke analize) često predstavljaju samo mali dio napora koji je potrebno uložiti. proces implementiranja metoda OI (OI studija). Testiranje modela i rješenja 5. tako da ćemo se mi baviti matematičkim metodama OI. čine matematičke analize. Razvoj (računarski baziranih) procedure za nalaženje rješenja problema iz matematičkog modela 4. Priprema modela za korišenje 6. Standardno.

skup alternativnih rješenja . predviđanje i upravljanje pojavama u realnom svijetu͞. . da je potrebno znati samo one veličine koje su bitne za pojedino razmatranje. i pri tom. Prapočeci modeliranja (astronomski modeli) se mogu naći još u Vavilonskoj civilizaciji (750 godina prije nove ere).granice sistema .Konstrukcija modela Pojam "model" se najčešće intuitivno prihvata kao "apstrakcija" nečega što je dio realnosti (EDEN I HARIS 1975). Faze primjene OI . 9 . Ipak mogu se primjeniti slijedeće preporuke: Definirati ko je korisnik istraživanja i koje su granice sistema koji se analizira.: "modeli su veoma široko korišteno sredstvo za opis. nužno zanemaruju niz osobina te iste pojave. Saznajna vrijednost modela je bazirana na činjenici da je rijetko potrebno sve znati o nekoj pojavi.Faze primjene OI . Oni obuhvataju samo bitne osobine pojave koju predstavljaju.ciljeve korisnika istraživanja . objašnjenje.ograničenja u okviru kojih treba tražiti optimalnu odluku . odnosno. PETRIĆ i dr.instrumente upravljanja kojima raspolaže korisnik . RIVET (1972) ukazuje da su "svi naučnici saglasni da je ključna aktivnost svake naučne metode ʹ kreiranje modela". oni predstavljaju "sintetsku apstrakciju realnosti".korisnika istraživanja . Zajednička karakteristika modela je da nikada ne mogu biti vjerna slika stvarnosti. U ovoj fazi najveći značaj imaju iskustvo i kreativnost istraživača.kriterije za ocjenu rješenja.Definiranje problema i prikupljanje odgovarajućih podataka Ne postoje stroga pravila koja bi pomogla u pravilnoj identifikaciji i formulaciji problema.

Deskriptivni (mape. . seme. redovi čekanja) ʹ Kvalitativni . PETRIC i dr.Statički (relacije među objektima nezavisne vremena) . modeli matematičkog programiranja.Korištenje modela ima slijedeće prednosti: .HeuristiČki (rješenja zadovoljavaju iskustvo blizu su ali ne moraju biti optimalna ..Simulacioni (eksperimentiranje na racunarskom modelu) ..Omogućuju analizu i eksperimentisanje sa složenim problemima .Višedimenzionalni 1 2 STRUKTURA 3 STEPEN SLUČAJNOSTI 4 5 6 VREMENSKA ZAVISNOST OPŠTOST STEPEN KVANTIZACIJE 7 DIMENZIONALNOST 10 ...).Obezbjeđuje ekonomisanje resursima koji se koriste za analizu date pojave . igre) . PERT-mreza. .Kvantitativni (koriste formalni mat. bilo kvantitativnih.) . hidrogradjevinskih objekata) . regresioni.Simbolicki (simulacioni modeli. . bilo kvalitativnih.Opšti (linearno programiranje. modeliranje na analognom racunaru. jezik ʹ relacije). KARAKTER MODELA FUNKCIJA MODELI . ͞statisticki͟ (regresioni.Neizvjesnost (nepoznata buduća stanja.Analogni (graf sistema.Rizik (nepoznata stanja ali poznatevjerovatnoce nastupanja stanja) . .. ͞optimizacioni͟ (izbor najbolje alternative) .Dinamički (postoji vremenska zavisnost promjenljivih) . koje će zajedno povezati relevantne karakteristike stvarnosti bitne za problem koji se rješava".Vrijeme za analizu pojave se može znatno skratiti (produžiti) . Markov.Obezbjeđuje koncentraciju na bitne karakteristike pojave.lanci. redovi cek.izvjesnost (vjerovatnoce nastupanja stanja su 1) . RIVET je (1972) dao sljedeću definiciju modela:"Model. redovi cekanja..Konflikti (modeli planiranja i predviđanja.) .Ikonički (modeli atoma.Normativni (LP modeli. modeli matematičkog programiranja. odnosno. ͞mentalni͟(I nivo apstrakcije). a TERSINE (1985 prema 8 osnovnih karakteristika. ) ..Dvodimenzionalni . nepoznate i vjerovatnoće njihovih nastupanja) . (1982) klasificiraju modele prema 6. ͞verbalni͟(govorni i pisani izrazi) . PERT. hipoteza je skup logičkih relacija.. modeli simultanih jednacina.Specijalizirani (za specificne probleme) .Prediktivni (stimulacioni.Deterministicki . . zavrsni racuni..

U = R*I. Formalna matematička struktura izbora najboljih rješenja se može šematski predstaviti sljedećom slikom: 11 .8 ZATVORENOST - Zatvoreni Otvoreni Posebna klasa modela su matematički modeli. Na primjer. u odredjenom smislu proturječna. koja se bavi OI. u ovoj knjizi. Pri izgradnji modela treba zadovoljiti dva. to je procedura koja sadrži 'strategiju traženja najboljeg rješenja' (U literaturi. zahtjeva: ‡ model mora biti što jednostavniji (͞što jednostavniji ali ne više od toga͟) ‡ model mora obuhvatiti sve osobine sistema koje su bitne za problem koji se rješava. mi ćemo se baviti samo problemima koji su zadani u matematičkom obliku. matematički izrazi F = m*a. E = m*c2. Matematički model opisuje problem koncizno. jednoznačno određuje uzročno-posljedične veze pojedinih veličina. Posebna prednost je u mogućnosti korištenja vrlo moćnih matematičkih tehnika i računara pri analizi problema. međutim. Matematički modeli imaju niz prednosti u odnosu na verbalne modele. su matematički modeli određenih fizikalnih zakonitosti. koriste matematičke izraze i simbole. najčešće se pod nazivom »model« podrazumjeva i skup ograničenja i funkcija cilja. Da bi se moglo govoriti o problemu izbora najboljih rješenja (problem optimizacije) mora postojati slijedeće: ‡ mogućnost izbora između više različitih rješenja ‡ kriterij na osnovu kojeg će se upoređivati 'kvalitet' pojedinih rješenja ‡ ograničenja koja moraju biti zadovoljena Problem izbora najboljih rješenja može a ne mora biti postavljen u matematičkom obliku. Formalna matematička struktura za izbor najboljih rješenja sadrži: ‡ skup promjenljivih i skup parametara ƛ spoljnje promjenljive koje mogu biti upravljane (organizirane) i neupravljane (neorganizirane) ƛ unutarnje promjenljive na čije vrijednosti se utiče preko spoljnih promjenljivih ƛ parametri u pravilu nisu kontrolabilni i u formalnoj strukturi su određeni. Pojmovi ‡ ‡ ‡ ‡ ‡ model ʹ sistem matematičkih relacija koje povezuju skupove promjenljivih i skupove parametara (ograničenja) kriterij koji zavisi od promjenljivih i parametara metoda za nalaženje najboljeg rješenja. pa ćemo mi u nastavku koristiti takav pristup). Matematički modeli za opisivanje problema.

odrediti takve veličine upravljačkih promjenljivih koje zadovoljavaju sva ograničenja i koje funkciji cilja daju ekstremalnu vrijednost. Pošto je u OI cilj naći najbolje (optimalno) rješenje. 12 . potrebno naći ili razviti odgovarajuću (najčešće računarski potpomognutu) proceduru za rješavanje postavljenog modela. potrebno je. znači. Da bi se to postiglo. Oblast OI koja se bavi ovom vrstom modela naziva se matematičko programiranje. koji se sastoji od funkcije cilja (kriterij) čija se ekstremalna vrijednost traži i skupa ograničenja koja određuju dopustivi skup rješenja je najčešći oblik modela OI i naziva se matematički program. Faze primjene OI Ȃ Nalaženje rješenja Riješiti matematički model znači odrediti veličine upravljačkih (kontrolabilnih) promjenljivih i veličine nekontrolabilnih promjenljivih za zadane veličine parametara.Formalna matematička struktura se može šematski predstaviti sljedećom slikom: Model.

optimalno rješenje. Vrlo je korisna dodatna analiza u smislu šta ʹ ako. Za rješavanje matematičkih modela OI se mogu koristiti: ‡ Metode analitičkog rješavanja ‡ Metode numeričkog rješavanja ‡ Metode simulacije ‡ U najvećem broju situacija cilj metoda OI je naći najbolje. U praksi se pogodniji drugi pristup jer. senzitivni prametri modela su parametri koji se ne mogu promijeniti a da se ne promjeni optimalno rješenje͞ Identificiranje senzitivnih parametara je vrlo bitno.Mada može izgledati da je to glavna težina ukupnog zadatka. Efikasniji i realniji pristup je naći rješenje koje u određenoj mjeri zadovoljava sve postav-ljene kriterije (dovoljno dobro rješenje). prema Nobelovcu Herbertu Simonu. dakle. Međutim. zbog uvjek prisutne približnosti u određivanju parametara modela Naime. što često postoji konflikt između različitih željenih ciljeva ʹ kriterija. U procesu izbora metoda za rješavanje. uproštavanja mogu dovesti u pitanje validnost modela. analiza šta će se desiti sa optimalnim rješenjem ako se neke pretpostavke promijene. koji ima specificirane vrijednosti za sve parametre. Razlika između optimalnog i dovoljno dobrog je razlika između teorije i prakse. Testiranjem se 13 . optimalno rješenje za model ne mora biti optimalno rješenje realnog problema. u praktičnim problemima češće je cilj naći dovoljno dobro (engl. Najveći napori su u predhodnim i narednim koracima u što je uključena i postoptimalna analiza o čemu će kasnije biti riječi. tj. to najčešće nije slučaj. ako u fazi korištenja modela dođe promjene vrijednosti senzitivnog parametra onda je to siguran znak da treba mijenjati rješenje. Uobičajen definicija senzitivih parametara je sljedeća: ͣZa matematički model. U postoptimalnu analizu je uključena i senzitivna analiza u okviru koje se pronalaze parametri koji su najkritičniji za nađeno optimalno rješenje ʹ ͣsenzitivni parametri͞. primijeniti jedan od sljedeća dva pristupa: ‡ Naći optimalno rješenje uproštene verzije problema ‡ Naći približno rješenje tačnijeg i složenijeg modela razmatranog problema. Ponekad je ova faza stvarno jednostavna ako se problem može riješiti nekim od standardnih algoritama OI za koji postoji raspoloživ softverski paket. s jedne strane. Greške u procjeni vrijednosti senzitivnih parametra mogu dovesti do suštinski pogrešnih rješenja. To prije svega zato. dovoljno dobro je umjetnost izvodljivog͞. Također. Jedan od vodećih OI istraživača u Engleskoj Samuel Eilon je rekao: ͣOptimizacija je nauka krajnosti (ekstrema). prva verzija računarskog programa uvjek ima određeni broj grešaka. Takva analiza se radi kada je već nađeno optimalno rješenje modela i naziva se postoptimalna analiza. dok s druge strane. satisficing što je kombinacija riječi satisfactory i optimizing) nego optimalno rješenje. Naime. može se. Faze primjene OI Ȃ Testiranje modela i rješenja Razvoj složenog matematičkog modela je u određenom smislu sličan razvoju složenog računarskog programa.

dodatni programi mogu automski implementirati dobijene rezultate. Slično. Kroz proces testiranja nastoje se otkloniti svi bitni nedostaci modela. Faze primjene OI Ȃ Implementacija 14 .Sistem za podr-šku odlučivanju (Decision Support System ʹ DSS). postoje neki postupci koji uvjek pomažu u ovom procesu kao na pr. Sistematičniji je pristup je korištenje retrospektivnog testa. koristi se interaktivni računarski podržan sistem .greške otkrivaju i popravljaju. provjera da li su u svim matematskim izrazima konzistentno korištene jedinice mjera. sljedeći korak je instaliranje dobro dokumentiranog sistema za primjenu modela prema uputstvima menadžmenta. Sistem je u pravilu računarski realiziran i može sadržavati veći broj računarskih programa. a neki parametri mogu biti pogrešno procijenjeni. Baze podataka i upravljački informacioni sistemi mogu osiguravati ažurne ulaze za model i u tom slučaju su potrebni programi za interfejs (interface). zatim da li se sa promjenama vrijednosti upravljačkih promjenljivih izlazne vrijednosti modela mijenjaju na prihvatljiv način i slično. Naime. proceduru za dobijanje rješenja (uključujući postoptimalnu analizu) i operativne procedure za implementaciju. Neki bitni faktori i/ili međuveze mogu biti zanemareni. prva verzija složenog matematičkog modela sadrži mnogo nedostataka. Međutim. Mogu se postaviti dva pitanja: ‡ Da li važe pretpostavke o veličini parametara ? ‡ Koliko je optimalno rješenje osjetljivo na promjene parametara ili izmjenu relacija u modelu? Da bi se imala kontrola nad rješenjem moraju se razviti metode za ustanovljavanje značajnih promjena parametara. Bez obzira što neke sitnije greške neće biti otkrivene u procesu testiranja. može se desiti da se mijenja i optimalno rješenje. kao i pravila za modifikaciju rješenja u tim slučajevima. kada je to izvodivo. Nedostatak retrospektivnog testa je u tom što historije ne mora uvjek biti stvarni reprezent budućnosti Faze primjene OI Ȃ Priprema modela za korištenje Kada je završeno testiranje modela. Taj proces testiranja i poboljšanja modela se naziva validacija modela (model validation). U ovoj se fazi ispituju i uvjeti pod kojim vrijedi dobijeno rješenje. Vrlo je teško preciznije definirati pravila za validaciju modela jer taj proces dominantno zavisi od prirode problema koji se modelira. koriste se historijski podaci i provjerava da li model daje iste rezultate kao što se to dešavalo u prošlosti. Poslije korištenja programa za dobijanje rješenja. Ako se mijenjaju parametri modela (veličine na koje se ne može utjecati) ili se mijenjaju odnosi između veličina (relacije). bitne greške će se otkriti i zadovoljavajuće popraviti i tada će program biti spreman za realnu upotrebu. U drugom slučaju. Drugi programi mogu generirati »upravljačke izvještaje« kako bi interpretirali izlaze iz modela i implikacije koje rezulati izraču-navanja predviđaju. Taj sistem uključuje model.

naziva se problemima (zadacima) matematičkog programiranja (MP). Metode operacionih istrazivanja su. Najdelikatnije faze operacionih istrazivanja nisu predmet predavanja na univerzitetskim kursevima. razumjevanja teorijskih osnova na koje se ovi modeli oslanjaju. pored poznavanja metoda i modela operacionih istrazivanja. Tako je za rješavanje složenih zadataka iz prakse potrebno. ‡ Nedostatak vremena za analizu problema na naučnoj osnovi ‡ Nesposobnost korisnika da razumije metode i rezultate ‡ Teskoće u definiranju problema iz (poslovne) prakse ‡ Zadovoljavajući kvalitet rezultata dobijenih uobičajenim metodama. koja su dobijena na papiru. Nažalost. u pravilu. ‡ Tim operacionih istraživača nije dovoljno osposobljen da rukovodiocima i izvršiocima. na pravilan način. Problemi u primjeni se mogu svrstati u dvije velike grupe: ‡ Rukovodioci i izvršioci neće ili nisu sposobni da prihvate i sprovedu predloženo rješenje. na kraju. mora znati kako primijeniti ili razviti računarske alate da bi našao rješenja problema. bez primjene nauke o poslovnom upravljanju ‡ Nedovoljan broj OI istrazivača ‡ Loša reputacija naučnika istraživača u rješavanju praktičnih problema ‡ Osjećaj straha kod pojedinih rukovodilaca. ‡ Nedostaci u obrazovanju visokih i srednjih rukovodilaca i nemogućnost da prihvate metode operacionih istraživanja ‡ Nedostatak odgovarajućih podataka za primjenu modela. orjentirane na konkretnu upotrebu. mora znati kako struktuirati problem u neki od standardnih matematičkih modela i. OI istraživač mora znati identificirati probleme koje OI metode mogu riješiti. 15 . tj.Posljednja faza OI studije je njegova imlementacija. Jer. kod kojih je zadatak naći ekstrem neke funkcije uz zadana ograničenja. Jedno istraživanje osnovnih problema u primjeni operacionih istraživanja dalo je slijedeće rezultate: ‡ Teškoće plasiranja metoda operacionih istrazivanja na tržištu intelektualnih usluga. Potrebno je motivirati i rukovodioce i izvršioce da primjene predložena rješenja. Vrlo je bitno da OI tim učestvuje u početnoj fazi implementacije da bi se utvrdilo da li je sistem operativno upotrebljiv i da provjeri da li su sve bitne greške otklonjene. od onih koji su praktično primjenjena. MATEMATIČKO PROGRAMIRANJE Skup problema opisanih matematičkim jezikom. imati i praktična iskustva koja se jedino mogu steći kroz praktične primjene ovih metoda i modela. da bi neko bio učitelj plivanja mora najmanje znati plivati. Kao što se plivanje moze učiti jedino u vodi. ostvarivanje efekata iz znanja koja su ugrađena u kompletno rješenje. daleko je veći broj optimalnih rješenja. Primjena rješenja zahtijeva od operacionih istraživača posebnu vještinu komuniciranja sa korisnicima. obrazloži rezultate istraživanja i način njihog korištenja.

a ako taj skup sadrži sve realne brojeve ili neki interval realnih brojeva tada je to kontinuirana slučajna varijabla.1. 1. Ako je skup vrijednosti koje može uzeti promjenliva X konačan ili prebrojiv tada se radi o diskretnoj slučajnoj varijabli. C.Nemogući .3.2. koji se mogu pojaviti i čiji je ishod nepoznat. Primjer 1.1. Ako takmičari gađaju u metu onda rastojanje pogotka od središta mete može uzeti bilo koju vrijednost veću od nule.. siguran događaj sa I. Obnavljanje statistike 1.A ʹ pismo .Sigurni .1. Događaje iz nekog skupa događaja možemo označiti sa A. Funkcija raspodjele ima sljedeća svojstva: 16 .1. u teoriji vjerovatnoće se nazivaju događaji. Za naprije definirane događaje vrijede pravila Bulove algebre.1. 1. a nemoguć sa O. B. Primjer 1. Tada se slučajni ishodi tog eksperimenta mogu opisati pomoću neke promjenljive X koju zovemo slučajna varijabla ili slučajna veličina. . SIMULACIJA DISKETNIH SISTEMA 1. Slučajni događaji se mogu a ne moraju ostvariti.1. Ishod je u ovom slučaju kontinuirana slučajna varijabla.2. Događaji mogu biti : . Sigurni događaji se ostvaruju uvijek..1. Događaj Svi rezulati nekog eksperimenta. pri svakom ponavljanju.Slučajni.B ʹ glava čiji je ishod slučajna diskretna varijabla.. Funkcija raspodjele Distribucija slučajne varijable X opisuje se pomoću funkcije raspodjele (distribicije) F(x) = P(X <= x) za ʹoo < x < oo To je vjerovatnoća da će slučajna varijabla poprimiti vrijednost između ʹoo i x. Slučajna varijabla Svaki slučajni ishod nekog eksperimenta moguće je izraziti nekim realnim brojem.Nemogući događaji se ne ostvaruju nikad. Svaki mogući ishod nekog eksperimenta zove se elementarni događaj. Ako se baca novčić tada možemo dobiti jedan od dva elementarna događaja: .

) sa vjerovatnoćama P(X=xi)=pi i ima funkciju razdiobe ‫ ܨ‬ሺ‫ݔ‬ሻ ൌ σ௫೔ஸ௫ ‫݌‬௜ . Testira se 5 sklopova. x5 = 5 17 . Neprekidna slučajna varijabla X ima vjerovatnoću.. x4 = 4. x2 = 2. Svaki naredni sklop se testira pod uvjetom da se predhodni pokazao ispravnim. ako je vjerovatnoća ispravnosti sklopova p = 0.. F(x) je neopadajuća funkcija od x 3. Neka je to funkcija f(t).b].9. funkcija gustoće vjerovatnosti: ܲ ሺܽ ൑ ܺ ൑ ܾ ሻ ൌ න ݂ ሺ‫ݐ‬ሻ݀‫ݐ‬ ௕ ௔ Tada imamo neprekidnu funkciju razdiobe: ‫ ܨ‬ሺ‫ݔ‬ሻ ൌ ܲ ሺܺ ൑ ‫ݔ‬ሻ න ݂ሺ‫ݐ‬ሻ݀‫ݐ‬ i neprekidnu slučajnu varijablu. .3. 2.1. Diskretna slučajna varijabla X može poprimiti vrijednosti xi (i = 1. F(x) je neprekidna s desna (definirana je u tački x = a postoji Ž‹௫՜௔ ݂ሺ‫ݔ‬ሻ i njegova je vrijednost f(x) s desna ako vrijedi za Ž‹௫՜௔ା଴ ݂ሺ‫ݔ‬ሻ ). jednaku nuli. ିஶ ௫ Vjerovatnost kao površina Vjerovatnost ‫ ܨ‬ሺ‫ݔ‬ሻ ൌ ܲ ሺܺ ൑ ‫ݔ‬ሻ možemo intepretirati kao površinu između funkcije gustoće f(x) i apcise na intervalu െλ ൏ ‫ ݐ‬൑ ‫ ݔ‬. Rješenje: Slučajna veličina X ima vrijednosti: x1 = 1. da poprimi određenu vrijednost xi. x3 = 3. Primjer 1. F(-oo) = 0 2. Naći zakon raspodjele slučajne veličine X ʹ broj testiranja. Zato se posmatra vjerovatnoća da X poprimi vrijednost iz nekog konačnog intervala [a.

9 = 0.1 = 0. dobijemo vjerovatnoću: P(X=2) = 0.94 * 0.1 = 0.Ako je prvi sklop neispravan testiranje se prekida.1 = 0. dobijemo vjerovatnoću: P(X=3) = 0.0729 Sada se mogu desiti dva slučaja: a.1.59049 Odnosno P(X=5) = Pa(X=5) + Pb(X=5) = 0. a četvrti neispravan.09 Ako su prva dva sklopa ispravni. Ako je prvi sklop ispravan. a drugi neispravan.6561 Zakon raspodjele slučajne veličine X je dat tabelom: Vidi se da je : 18 .93* 0.9 * 0. Prva četiri sklopa su ispravni. P(X=1) = 1-0.1 Vjerovatnoća da će se postupak prekinuti nakon testiranja prvog sklopa je 0.95 = 0.081 Ako su prva tri sklopa ispravna. a peti je neispravan: Pa(X=5) = 0. Svi su sklopovi ispravni: Pb(X=5) = 0. dobijemo vjerovatnoću: P(X=4) = 0.1 = 0.92 * 0. a treći neispravan.06561 b.

Simulacija je oponašanje (imitacija) realnog sistema ili procesa koja se odvija u određenom periodu vremena. ti nedostaci se znatno smanjuju u posljednje vrijeme bržim računarima i specijalnim simulacionim jezicima i softverskim proizvodima." Simulacija se tradicionalno posmatra kao metod koji se primjenjuje kada drugi analitički metodi zakažu. Korištenje računara čini simulacione tehnike izvodljivim. nego se ponašanje sistema proučava tako da se napravi (kreira) model. U tim slučajevima simulacione tehnike mogu osigurati okvir za posmatranje. ͣSistem je zbir elemenata složenih u odredjenom obliku i usmjerenih k nekom cilju ili svrsi. Računarske simulacije su se uspješno koristile u zadnje četiri dekade i izgleda da će simulacije nadživjeti svoju ranu reputaciju kao ͣmetoda posljednjeg pribježišta͞. najjači put da se poduhvati sa takvim problemom. Simulacioni paketi su sve više dostupni i lakši za korištenje. analitičke formule ili metode matematičkog programiranja. može sugerirati puteve modifikacije sistema. predviđanje. pa se. Osnovno o simulaciji Simulacija je proces proučavanja ponašanja postojećeg ili predloženog sistema posmatranjem ponašanja modela koji predstavlja (reprezentira) sistem. mnogi sistemi su toliko kompleksni da su matematičke metode neodgovarajuće da modeliraju zamršene (i moguće stohastičke) interakcije između elemenata sistema. Međutim. Jednostavni sistem čekanja (primjer će biti dat naprijed) spada u tu kategoriju." "Model je prikaz bitnih aspekata nekog stvarnog sistema (ili sistema koji ce se sagraditi) koji reprezentira osobine toga sistema u upotrebivom obliku.performanse nekog postojećeg sistema . 19 . Neki sistemi su dovoljno jednostavni da se mogu predstaviti matematičkim modelom i biti riješeni dobro definiranim matematičkim tehnikama kao što su račun. eksperimentiranjem na takvom modelu dolazi do saznanja o ponašanju postojećeg ili nepostojećeg sistema. jasno. Informacija dobijena posmatranjem pona-šanja sistema pri simulaciji.1.2. Izgradnja simulacionih modela je i danas vrlo skupa i troši mnogo vremena. Simulirajući sistem mi možemo posmatrati : . Analitičke metode su. Osnovni cilj modeliranja i simuliranja sastoji se u tome da se podaci o ponašanju nekog sistema dobiju ne proučavanjem samog sistema. Simulacioni jezici i paketi su tako laki za ͣloše korištenje͞ kao i za korektno korištenje. i sama simulacija je tako intuitivna i izgleda tako jednostavna za razumjevanje da je potrebno upozorenje. modificiranje i čak optimiranje sistema. zatim. međutim.hipotetičke modifikacije postojećeg sistema .odrediti radne karakteristike nekog nepostojećeg sistema Pomoću simulacije je moguće eksperimentirati sa ponašanjem sistema i kada bi to bilo previše skupo ili opasno ili nemoguće uraditi sa samim sistemom.

Modeliranje i simuliranje 20 . Iako razvoj simulacije može biti skup. Eksperimentiranje na realnom sistemu. Simulacija se može koristiti za analizu predloženog sistema ili za eksperiment u realnom sistemu bez da ͣremetimo͞ aktualni sistem. u kontroliranoj okolini simulacije. tako da analitičari mogu izvesti ispravne zaključke. Simulacioni modeli ne moraju uvijek zahtijevati pojednostavljenja koja zahti-jevaju analitički modeli da bi bili rješivi. Postoji više različitih načina za proučavanje sistema.Ipak. .Računarski izlazi proizvedeni simulacionim paketima mogu biti vrlo impresivni. Najvažnija stvar za svaki simulacioni eksperiment jest da se od njega dobiju rezultati što sličniji onima koji bi se dobili od samog (realnog) sistema. dok se erozija korita rijeke odvija tako sporo da onemogućava bilo kakvu intervenciju u proces. mogu koristiti određene preporuke (uputstva) koje mogu pomoći u razvoju sposob-nosti razumijevanja i izgradnje simulacionih modela. posmatrači mogu napraviti i pripreme mogu naraviti upoređenje sa predviđenim izlazima u eksperimentu. sudari u akceleratoru mogu biti prebrzi da bi ih instrument zapamtio.Moguće je eksperimentirati sa novim dizajnom. No modeliranje i simuliranje nije nipošto jedini način kako se mogu proučavati sistemi. uključuju: . Simulirajući takve procese vremenski kontrolni mehanizam se može koristiti da uspori ili ubrza događaje i dovede ih u vremensku skalu povoljnu za ljudsku analizu. simulacioni model može biti ͣrealističan najviše što je moguće͞. Jednostavnije i jeftinije je dobiti podatke iz simulacije nego iz realnog sistema. U tu svrhu postoji jedna posebna strucna disciplina koja se naziva sistemskim inzenjerstvom (system engineering). Tako. Na primjer. .. Neki od njih su: . Osnovni kriterij za tu procjenu bi mogao biti to da se pomoću modeliranja i simuliranja dobiju rezultati bolji nego uz druge načine proučavanja sistema. postoji način da se dobije uspješna simulacija. U skladu s tim. koje se mogu izvesti kroz korištenje simulacije.2.Moguće je komprimirati ili produžiti vrijeme.1. pogotovo sistemu u kojem su uključeni ljudi. 1. uz razumne troškove simulacije. Koristi. Pravilno korištenje simulacione metodologije zahtjeva dobro prosuđivanje i uočavanje i jasno razumijevanje granica korištenja simulacionih modela. mi posmatramo pogrešan sistem. Za proučavanje sistema postoji više mogućnosti. Ipak. vojsci i biološkim ambijentima. često rezultira ponašanjem koje je modificirano kao odgovor na eksperiment.Eksperimentiranje na samom sistemu . ekenomici.Dobro zaključivanje vjerovatno dolazi samo kroz iskustvo. Simulacija se može koristiti da verificira ili ilustrira analitička rješenja problema.Analiza sistema "na papiru" . Razlozi za korištenje modela i simulacije Očito je da sisteme i njihovo ponašanje treba proučavati ako se zeli poboljšati njihovo funkcioniranje. politikama i procesima u industriji..Matematičko rješavanje problema . model se može primjenjivati više puta u različitim vrstama eksperimenata. Procjena kvalitete rezultata je najčešće subjektivna.

Eksperimentiranje na samom sistemu se ponekad čini. tada se pri rješavanju ne može doći do odgovarajućih rješenja. u ekonomiji često upotrebljavaju jednostavni modeli ekonomskih sistema. Upravo ovaj razlog je dao značajan poticaj razvoju simuliranja s računalima. zahvaljujući njihovoj moći i brzini obrade podataka.2. Matematička analiza rada sistema se također često upotrebljava i daje dosta dobre rezultate. jer su općenita. odnosno stanje u jednom momentu. remeti normalan rad samog sistema. Osnovna prednost ove metode jest njezin realizam. SIMULIRANJE Model najčešće prikazuje statičko stanje sistema. Ovaj pristup je primjenljiv i koristan za ispitivanje sistema koji su već u funkciji kao i za one koji se tek trebaju izgraditi. Kod složenih sistema to najčešće nije moguće. ili eksperimentiranje s gradskim saobracćajem. odnosno kronologiju stanja sistema. pa se i to može smatrati simuliranjem. mogu se dobiti rezultati koji su za praksu veoma korisni. Pod simuliranjem se podrazumijeva praćenje stanja sistema u vremenu. Zato su modeli koji se formuliraju i rješavaju računarskim metodama posebna moderna 21 . Postoji. Dakako dobri znalci matematike su skloni ovakvom načinu analize sistema(?) Koristeći modeliranje i simuliranje rada sistema uz upotrebu digitalnih računara ili bez njih. koji je bio neizvediv na bilo koji drugi način. koristeći svega nekoliko osnovnih veličina. Metode za rješavanje pojedinih sistema su najčešće specifične za svaki konkretni sistem. ali dosta rijetko. te se i dosta upotrebljava. To znači da treba napraviti vremenski slijed. iako se mogu koristiti i raniji rezultati. Eksperimentiranje na postojećem realnom sistemu. Naime. ako se složeni sistem želi prikazati s dovoljno realizma. ako sistemi i njihov rad nisu suviše složeni. Najbolje to pokazuje eksperimentiranje s privrednim sistemom koje se je provodilo u nekim državama. kojima se stanje u pojedinim momentima izračunava "ručno" na papiru ili pomoću kalkulatora. No očito je da su digitalna računala. Stanje sistema se prikazuje stanjem bitnih veličina sistema (parametara). jer ne predstavljaju dovoljno realno sistem koji se analizira. se mogu upotrebljavati i jednostavne grafičke metode za praćenje ponašanja sistema u vremenu. 1. Analiza sistema "na papiru͞ pretpostavlja da se formiraju odgovarajuće grupe stručnjaka i da se prikupe svi mogući podaci o istim ili sličnim sistemima. Ovakav način proučavanja sistema je veoma čest i daje dosta dobre rezultate. pa se onda mogu dobiti elegantna matematička rješenja. Ponekad se i složeni sistemi mogu analizirati na takav način. ali dosta beskorisna. Ponekad. a rješenja koja se dobiju mogu biti veoma korisna. omogućila simuliranje na način. i mogućnost da se sistem pretjerano idealizira. Zbog toga je dobro koristiti takvo matematičko modeliranje uvijek kad se sistem može s dovoljno realizma prikazati matematičkim metodama. dakako. pa je takvo eksperimentiranje veoma skupo. Tako se npr. koje može dovesti do kaosa. a ne parcijalna kao ona što se dobiju modeliranjem i simuliranjem.2. Ovaj postupak se ne može primijeniti na sisteme koje tek treba izgraditi. iako nisu općeniti.

Na početku simuliranja se obično pretpostavi da se sistem nalazi u nekom željenom i stabilnom stanju. ali takav da se on lakše riješi.4. povećanje potražnje na tržistu itd. To je oblik imitacije u kojem je problem koji treba biti rješen zamijenjen modelom. L = 1 H. Odrediti struju u kolu. U trenutku t = 0 na kolo je priključen istosmjerni izvor napona U. Stres za sistem ovjesenja automobilskog kotača može biti nailazak na "udarnu rupu" na cesti. (R = 1 W. promjena porezne politike. odnosno." Primjer 1. Obično se želi stabilan rad sistema. odnosno najbliži željenom. promjena cijena nafte ili kamatnih stopa. Dato je električno kolo sa konstantnim elementima R i L. U nekom momentu simuliranog vremena se na sistem. Eksperimentiranjem na modelu traže se takvi parametri sistema koji bi omogućili najbolji rad. pa se zatim promatra kako će se sistem ponašati. Potrebno je naglasiti da je modeliranje i simuliranje eksperimentalna tehnika s tim da se eksperimentiranje vrši na modelu. a za sistem letilica ili plovila promjena smjera kretanja i slično. U = 10 V) 22 . nametne neki stres (poremećaj). Model predstavlja drugi problem. Poremećaj za ekonomski sistem može biti npr. Takvi stresovi mogu dovesti do oscilacija i nestabilnog rada sistema ili do stabiliziranja na neželjenom nivou.kategorija modeliranja i simuliranja. "Simulacija je tehnika rješavanja problema. a kod ekonomskih sistema stabilan rad uz maksimalni porast dohotka i drugih pozitivnih elemenata. njegov model.

Prvo se riješi homogena diferencijalna jdnačina:  ݀௜ ‫ܮ‬ȉ ൅ܴȉ݅ ൌͲ ݀௧ Derivranjem i(t) se dobije: ݀௜ ݀‫ܥ‬ሺ‫ݐ‬ሻ ି௔௧ ൌ ȉ݁ െ ‫ ܥ‬ሺ‫ݐ‬ሻ ȉ ܽ ȉ ݁ ି௔௧ ൌ Ͳ ݀௧ ݀௧ Uvrštenjem u polaznu nehomogenu diferencijalnu jednačinu: ݀‫ܥ‬ሺ‫ݐ‬ሻ ି௔௧ ‫ ܮ‬ȉ ൬ ȉ݁ െ ‫ ܥ‬ሺ‫ݐ‬ሻ ȉ ܽ ȉ ݁ ି௔௧ ൰ ൅ ܴ ȉ ‫ ܥ‬ሺ‫ݐ‬ሻ ȉ ݁ ି௔௧ ൌ ܷ ݀௧ i dalje ݀‫ܥ‬ሺ‫ݐ‬ሻ ି௔௧ ȉ݁ ൌܷ ‫ܮ‬ȉ ݀௧ jer je: ܴ ܽൌ ‫ܮ‬ Izvrši se razdvajanje promjenljivih ݀௜ ܴ݀‫ݐ‬ ൌെ ݅ ‫ܮ‬ Ž ݅ ൌ െ ܴ ȉ ‫ ݐ‬൅ ݈݊‫ܥ‬ ‫ܮ‬ Rješenje homogene diferencijalne jednačine je: ݅ ሺ‫ݐ‬ሻ ൌ ‫ܥ‬ሺ‫ݐ‬ሻ ȉ ݁ ି௔௧ gdje je: ܴ ܽൌ ‫ܮ‬ Razdvajanjem promjenljivih se dobije: ܷ ݀‫ ܥ‬ሺ‫ݐ‬ሻ ൌ ȉ ݁ ௔௧ ȉ ݀‫ݐ‬ ‫ܮ‬ Poslije integriranja je: ܷ ܷ ‫ ܥ‬ሺ‫ ݐ‬ሻ ൌ ȉ ݁ ௔௧ ൅ ‫ܥ‬଴ ൌ ȉ ݁ ௔௧ ൅ ‫ܥ‬଴ ‫ܮ‬ȉܽ ܴ Uvrštenjem C(t) u rješenje homogene diferencijalne jednadžbe dobije se rješenje nehomogene linearne diferencijalne jednadžbe I reda : ܷ ݅ ሺ‫ݐ‬ሻ ൌ ൅ ‫ܥ‬଴ ȉ ݁ ି௔௧ ܴ Ako je u trenutku t = 0 vrijednost struje i = 0 dobijemo: Ͳൌ ௎ ோ ൅ ‫ܥ‬଴ ili ‫ܥ‬଴ ൌ െ ௎ ோ 23 .Rješenje: Diferecijalna naponska jednačina za ovo kolo je: ݀௜ ‫ܮ‬െ ൅ܴȉ݅ ൌܷ ݀௧ To je linearna nehomogena diferencijalna jednačina prvog reda.

01 sec Pošto je poznata početna vrijednost struje (i0 = 0) mogu se izračunati vrijednosti struje u narednim diskretnim trenucima vremena: ͳͲ െ ͳ ȉ Ͳ ȉ ͲǡͲͳ ൌ ͳ‫ܣ‬ Ͳǡͳ ͳͲ െ ͳ ȉ ͳ ȉ ͲǡͲͳ ൌ ͳǡͻ‫ܣ‬ ݅ଶ ൌ ͳ ൅ Ͳǡͳ ͳͲ െ ͳ ȉ ͳǡͻ ݅ଷ ൌ ͳǡͻ ൅ ȉ ͲǡͲͳ ൌ ʹǡ͹ͳ‫ܣ‬ Ͳǡͳ ݅ଵ ൌ Ͳ ൅ 24 . Za vrijednost zadanih parametara dobije se promjena struje kao na slici.5 0.4 0.6 t Isti zadatak se može riješiti i na drugi način. Obično se uzima da je korak h za red veličine manji od ʏ: h = 0.2 0.1 0. Početnu diferencijalnu jednačinu možemo napisati: ݅௡ାଵ െ ݅௡ ൅ ܴ ȉ ݅௡ ൌ ܷ ‫ݐ‬௡ାଵ െ ‫ݐ‬௡ ܷ െ ܴ ȉ ݅௡ ȉ ሺ‫ݐ‬௡ାଵ െ ‫ݐ‬௡ ሻ ൌ ݅௡ ൅ ‫ܮ‬ ‫ܮ‬ ݅௡ାଵ Ako pretpostavimo da je vremnski korak kostantan i iznosi h dobićemo ݅௡ାଵ ൌ ݅௡ ൅ ܷ െ ܴ ȉ ݅௡ ȉ݄ ‫ܮ‬ Veličina L/R = t predstavlja vremensku konstantu eksponencijane funkcije.1 0. Prelazni proces se smatra završenim nakon vremena od 5 ʏ.pa je ܷ ȉ ሺͳ െ ݁ ି௔௧ ሻ ܴ Struja je rastuća eksponencijalna funkcija koja za t = 0 ima vrijednost 0 a za t = ь vrijednost U/R.1 / 1 = 0. ݅ ሺ‫ ݐ‬ሻ ൌ Izgled toka struje i(t) 12 10 8 6 4 2 0 0 0.1 t = 0.3 0.

izvođenje simulacije u računalu Simulacijski jezici se mogu uključiti u kategoriju problemski orjentiranih jezika visokog nivoa.176 A i13 = 7.695 A i9 = 6.114 A i24 = 9.3. Za situacije koje se ne mogu prikazati takvim naredbama visokog nivoa.015 A i23 = 9.439 A i5 = 4.649A i20 = 8.147 A i17 = 8.458 A i14 = 7.354 A i27 = 9.unos modela u digitalno računalo .712 A i15 = 7.419 A Primjer ʹ program 1.906 A i22 = 9.784 A i21 = 8.095 A i6 = 4.513 A i11 = 6.126 A i10 = 6.499 A i19 = 8.322 A i18 = 8.Upotreba računara bez specijaliziranih simulacijskih jezika Specijalizirani simulacijski jezici omogućavaju: .formulaciju modela uz upotrebu odgovarajućih simbola tih jezika (veoma različitih) . naredbe tipa fortrana ili nekog drugog 25 .941 A i16 = 8.862 A i12 = 7.217 A i8 = 5.Upotreba računara sa specijaliziranim simulacijskim jezicima .202 A i25 = 9.282 A i26 = 9. neki simulacijski jezici imaju dodatne elemente nižeg ranga ( napr. Naredbama takvih simulacijskih jezika mogu se izraziti relativno složene situacije i aktivnosti u sistemu na relativno jednostavan način.Na isti način se dobije: i4 = 3. Upotreba digitalnih računara u modeliranju i simuliranju Upotreba digitalnih racunara u simulaciji može se podijeliti u dvije osnovne kategorije: .2.686 A i7 = 5.

Diskretni sistemi Za kontinuirane sisteme je karakteristično da kod njih do promjene stanja sistema kao cjeline ili samo nekih njegovih elemenata može doći u bilo kojem momentu. onda se i stanje sistema prikazano modelom prati kontinuirano. Drugi način upotrebe digitalnih računala u simuliranju je onaj kad se neki programski jezik. Formuliranje modela je u ovom slučaju daleko teže i ne može se svesti na "tehnički" posao. dok se ne dobiju zadovoljavajući rezultati. Naprotiv. neskokovite). a promjene do kojih dolazi su "glatke" (blage. onda se stanje sistema pomoću modela 26 . Zato bismo formuliranje takvih modela radije nazvali "kreiranjem" modela. Stanje kontinuiranog sistema ili njegovih parametara i simuliranje tog stanja na analognom i digitalnom računalu. Ako se kontinuirani sistem simulira analognim računarom ili uopće analognim sklopovima.3. a ne o njegovu modelu. koji se formuliraju na specifičan način. 1. ako se stanje sistema prati na digitalnom računaru. a i simulirano vrijeme teče kontinuirano.2. To daje mogućnost modelaru da neke specifičnosti sistema koji modelira izrazi pomoću elastičnijeg nižeg programskog jezika. nego predstavlja kreativan rad. Isto tako simulacijski jezici omogućavaju da se jednostavno promijene parametri modela. te se sa svakom novom grupom parametara može izvesti nova "runda" simuliranja.programskog jezika opće namjene). Tu se zapravo radi o eksperimentiranju na modelu. Diskretni sistemi su oni kod kojih do promjene stanja sistema može doći samo u točno određenim vremenskim (diskretnim) momentima ili se barem pretpostavlja da je tako. pa često sadrže novine u pristupu. U vremenskom periodu između tih diskretnih momenata pretpostavlja se da nema promjena. a ne za formuliranje modela. upotrebljava samo za rješavanje modela odnosno za izvođenje simulacije.Kontinuirani sistemi . Treba naglasiti da se govori o sistemu.1 Simulacijski jezici i načini njihova rada Sistemi koji se proučavaju mogu se podijeliti u dvije osnovne grupe: .

pretjerano skraćuje korak (npr. Međutim. kao što to treba za analogne računare i digitalno-analogne simulatore.izračunava. koja bi se mogla dogoditi između dva takva koraka.Način (jezik) za formuliranje modela .Prevodilački program koji pomoću odgovarajućeg jezika formulirani model prevodi u oblik koji se može izvesti na računaru SIMULIRANJE DISKRETNIH SISTEMA KONTINUIRANIM MODELIMA Neki diskretni sistemi se mogu proučavati pomoću kontinuiranih modela ako se napravi tzv. kojima se simuliraju neke specifičnosti u modelu koje se ne mogu pretstaviti osnovnim blokovima analognog računala.Međutim. dok su analogni računari rijetkost. tako da izračunavanje stanja sistema bude ͞dovoljno gusto͟. Isto vrijedi i za stanove.. CSMP 1130). dok se pri simuliranju s digitalnim računalom simulirano vrijeme pomiče u koracima. Tako je tačnost analognih računara ogranicena kako zbog ograničene točnosti elektroničkih komponenti. rezultati su manje pregledni. televizore itd. da se ne bi preskočila neka promjena u sistemu. 100 . s druge strane analogna računala imaju različitih nedostataka i ograničenja. odlučujuću ulogu igra velika rasprostranjenost digitalnih računara. svaka prodaja automobila ili njegova proizvodnja diskretan događaj. jer su zatrpani nekorisnim podacima ("informacijsko smeće"). 10. iako se promjene u sistemu mogu dogoditi i unutar tih intervala. .MIMIC Treba pomenuti da postoje i hibridni računari tj. i imali su zanemarljive dodatne mogućnosti. radi sigurnosti. No.. puta više vremena.Digitalni računar (hardver) u koji će se unijeti model i izvesti simulacija . te aktivnosti se mogu prikazati tako da se dnevna ili tjedna proizvodnja prikažu kao združena (agregirana) veličina 27 . kombinacija analognog i idigitalnog računara koji rade zajedno. Zato se ponekad. kuće. agregacija (združivanje) pojedinih diskretnih događaja..CSMP 360 .CSMP 1130 .. Time se višestruko povećavaju troškovi simulacije. Noviji jezici. Simulacijski programski jezici omogućavaju da se odabere taj korak. Osim toga funkcije se pišu izravno kao simulacijske naredbe. osim simulacijskih funkcija koje imaju analogna računala. a ne pomoću funkcionalnih blokova. 100. tako i zbog načina realizacije matematičkih operacija s analognim sklopovima. (Tako je npr. jer kod njih i simulirano vrijeme teče kontinuirano kao i u realnom sistemu.ANSIR . Analogni računari i uopće analogne metode su prirodniji način za simuliranje kontinuiranih sistema i procesa. mogu koristiti naredbe proceduralnih jezika. puta). Prvi simulacijski jezici su uglavnom imitirali rad analognih računara (na pr. Neki od simulacijskih jezika koje se koriste za simuliranje kontinualnih sistema na digitalnim računarima su: . u određenim diskretnim koracima (trenucima). Da bi se mogli simulirati kontinuirani sistemi potrebni su barem ovi elementi: . pa se za praćenje stanja sistema trosi 10.

najprije provjerava da li u tom času dolazi do promjene stanja sistema. Ako digitalni racunar izračunava stanje sistema baš za te momente. pa ako dolazi onda se izračunava novo stanje sistema. kao da je taj proces kontinuiran. Naime. ali se ne izračunava stanje sistema za svaki takav korak. nego samo za onaj u kojem dolazi do promjene stanja sistema. pa se one mogu koristiti.Takvi modeli su. events) mogu dogoditi samo u tačno određenim momentima . . en. u pravilu. Da li su mehanizmi ili logika koja dovodi do takvog ponašanja u sistemu i njegovu modelu isti manje je važno. sistem i njegov model moraju se jednako ponašati ako se gledaju "iz vana". simulacijski program nakon pomaka sata simuliranog vremena. Drugim riječima. za 1 mjesec ili godinu. Diskretna simulacija Simuliranje diskretnih sistema Pri simuliranju diskretnih sistema pretpostavlja se da se promjene u sistemu i u njegovu modelu (događaji. takve da se od modela dobiju isti ili slični podaci kao što se dobiju od samog sistema.3. 1. a ako ne 28 . oscilatorni ili nestabilni.(vremenskim tačkama).(intenzitet prodaje ili proizvodnje). pa se kao takav i simulira. Posebno se primjenjuju metode analize sistema s povratnom vezom. mnogo jednostavniji . koji mogu biti stabilni. Niz takvih podataka se može prikazati kontinuiranom krivuljom npr.) Razloga zašto se to tako radi ima više: . Odgovor na pitanje da li se diskretni sistemi smiju simulirati kao kontinuirani je sljedeći: U simuliranju se smije učiniti sve ono što daje dobre rezultate tj.Za kontinuirane sisteme postoje razvijene i provjerene metode razvijene za druga područja. onda su modelom obuhvaćene sve promjene u sistemu. U nekim simulacijskim modelima i jezicima pomiče se sat simuliranog vremena.Određeni procesi su lakše shvatljivi ako ih prikažemo u kontinualnoj formi.

dolazi, onda se ne izračunava. Na taj se način, postižu velike uštede u radu računara, što je posebno važno, jer se za simuliranje diskretnih sistema najčešće upotrebljavaju moćni (i prema tome skupi) digitalni računari. Prvi način rada bi se mogao nazvati "korak po korak", a drugi "slijedeći događaj". Procesi izgradnje simulacije sistema nisu potpuno različiti od procesa kriranja drugih tipova modela. - Formulacija problema - Izgradnja modela - Prikupljanje podataka - Kodiranje - Verifikacija i validacija - Projektiranje eksperimenta - Korištenje

1.3.1. Diskretni simulacioni modeli Računarska simulacija izvršava akcije kroz računarski program da bi prezentirala aktivnosti nekog realnog sistema koji je modeliran. Cilj simulacije je posmatranje i prikupljanje statističkih podataka za bolje razumijevanje aktivnosti u simuliranom sistemu i kada je to moguće, napraviti preporuke za njegovo poboljšanje. Simulacije se mogu kategorizirati kao diskretne ili kontinualne. Razlika se odnosi na promjenljive (varijable) koje opisuju stanje sistema. Posebno, promjenljive koje opisuju protok vremena mogu se posmatrati kao kontinualno promjenljive ili kao promjenljive koje se pojavljuju samo u diskretnim tačkama vremena. U modelima fizičkih ili hemijskih procesa, na primjer, mi možemo biti zainteresirani za kontinualno posmatranje promjena temperature ili pritiska u vremenu, i u tom slučaju bi odgovarao kontinualni simulacioni model. Taj model se općenito sastoji od skupa difrencijalnih jednačina; veličina promjene bilo koje varijable zavisi od tekućih vrijednosti mnogih grugih varijabli. Primjeri uključuju upravljanje procesima, let aviona ili satelit u orbiti koji kontinualno uravnotežuje sile gravitacije, brzinu i pogon rakete. S druge strane, u sistemima čekanja, događaji kao što su dolasci korisnika i kompletiranje usluge (servisa), se dešavaju u određenim trenucima (tačkama) vremena i tada se može koristiti simulacioni model sa diskretnim događajima.

Događajima upravljani modeli
U svim simulacionim modelima, objekti u sistemu se nazivaju entitetima. U sistemima čekanja, na primjer, entiteti mogu biti : - Korisnici - Poslužitelji - Redovi Osnovna struktura modela čekanja:

29

Svaki entitet ima karakteristike koje za nazivaju atributi. Atributi korisnika uključuju vrijeme dolaska i tip usluge koju traži. Atributi poslužitelje su tip servisa koji pruža, cijena njegovog rada, dužina vremena kada je zauzet. Atributi reda čekanja uključuju dužinu reda i tip usluge za koju je red dizajniran. Neki atributi kao tip potrebne usluge ili cijene (mjere) rada su dati na početku simulacije dok se drugi atributi dodjeljuju i ažuriraju u procesu simulacije. Stanje sistema je definirano skupom entiteta i atributa. Stanje sistema se mijenje s protokom vremena. Procesi koji proizvode stanje sistema nazivaju se aktivnosti. Aktivnosti u sistemu čekanja mogu biti korisnikovo čekanje u redu, ili posluženje korisnika od strane uslužitelja (servera). Bilo koja aktivnost u simulaciji može evenualno kulminirati u događaj, i pojava događaja ustvari proizvodi promjenu stanja sistema u diskretnim simulacionim modelima. Radi toga, diskretni simulacioni modeli su nazvani kao događajima upravljani modeli. Premda postoje i drugi nazivi (pristupi) kao ͣprocesno orijentirana͞ simulacija i ͣobjektno orjentirana͞ simulacija, ͣdogađajima uravljani͞ pogled je vjerovatno najšire korišten pristup diskretnoj simulaciji. Za praćenje protoka vremena u simulacionom modelu simulaciona vremenska varijabla se na početku stavlja na nulu i ona raste da bi označila porast simuliranog vremena. Inkrement može biti fiksan ili promjenljiv. Pri napredovanju simulacionog vremena, u fiksnim jedinicama vremena, u svakom inkrementu, ustanovljava se da li se dogodio bilo koji događaj od posljednjeg inkrementa. Nedostatak ovakvog pristupa je teškoća određivanja odgovarajućeg inkrementa vremana. Ako je interval premali, gubi se mnogo vremena na kretanje koje je neinteresantno u kojem se neće pojavljivati nikakav događaj. Ako je interval prevelik, može se pojaviti više događaja u inkrementu i mi nemamo definiran precizni redosljed događaja. Na taj način ključna informacija može biti izgubljena. Pošto sistemi nisu uvijek uniformno ͣpuni događaja͞ za vrijeme trajanja simulacije, nemoguće je naći ͣispravni͞ ili ͣnajbolji͞ inkrement za cijelu simulaciju. Alternativa je, da se vremenski pomjeraj dogodi samo kada se dogodi događaj. Praćenje zahtijeva održavanje liste događaja koji će se dogoditi i kad se dogodi to se ustanovi. Mehanizam konsultira listu da odredi ͣsljedeći͞ događaj i pomjera simulirano vrijeme na vrijeme tog događaja. Takav mehanizam promjenljivog vremena je efektivan i lagan za implementaciju. Dobar način da se nauči tačno kako računar radi pri simulaciji je da se simulacija uradi ručno. Primjer 1.5. Računarski programi (korisnici) se unose za izvršenje na jednoprocesorskoj mašini. Kada se program unese u sistem, on se ili odmah počne procesirati ili se, ako je procesor zauzet, smješta u red (ͣjob queue͞) koji operativni sistem održava u FIFO redosljedu. Servisna podrška (CPU u ovom slučaju) je ili zauzeta ili raspoloživa. Kada je u sistemu, korisnik (računarski program u ovom slučaju) je ili u redu ili se

30

počinje opsluživati. Red karakterizira broj korisnika koje sadrži. Status servera, korisnika, i reda čekanja zajedno predstavljaju ͣstanje͞ sistema čekanja i stanje se mijenja jedino u slučaju kada korisnik dolazi ili odlazi. Ulazni podaci za ovaj simulacioni primjer dati su Tabeli 1.5.1.. Prvi program dolazi na izvršenje u vremenu 0. Taj program pokreće simulacioni sat iz 0. Drugi program stiže 4 vremenske jedinice kasnije. Treći korisnik stiže 1 vremensku jedinicu kasnije u vremenskoj jedinici 5, i tako dalje. Vremena izvršenja programa su 2, 3, 5, ... vremenskih jedinica. Vidi se da se u nekim slučajevima program izvrši kompletno prije nego što sljedeći stigne, ostavljajući CPU privremeno slobodnim, dok u drugo vrijeme program dolazi dok su njegovi predhodnici još u izvršenju i taj program mora čekati u redu. Tabela 1.5.2. pokazuje vremena u koja svaki program ulazi u sistem, početak izvršenja i odlazak iz sistema poslije kompletiranja izvršenja. Zabilježi da je CPU slobodan dvije vremenske jedinice između Programa 1 i 2, za tri vremenske jedinice između Programa 5 i 6, i pet vremnskih jedinica između Programa 6 i 7. Program 9 dolazi tačno kada je predhodnik kompletiran, tako da CPU nema slobodnog vremena niti Program 9 staje u red i čeka. Programi 3, 4, 5, 8 i 10 moraju čekati u redu prije nego što počne izvršavanje. Tabela 1.5.3. pokazuje hronološki slijed događaja u ovoj simulaciji. Primarni cilj simulacije je omogućiti posmatranje i kupljenje statistike. U ovom primjeru, interesntno je odrediti prosječno vrijeme koje programi provode u sistemu (ͣjob turnaround time͞) prosječno vrijeme za čekanje prosječan broj programa u redu i veličinu ili procenat vremena kada je CPU slobodan.

31

Dalje.Ovo je pojednostavljeni model čekanja jer su dolasci i dužine servisa dati deterministički u tabelarnojformi a ne kroz Poissonovu i eksponencijanu distribuciju što je bliže realnim sistemima. 32 .

sistem ima samo deset korisnika i posmatra se kroz period od samo 38 vremenskih jedinica. Zbog determinističkog ponašanja korisnika i servisa i zbog kratkog trajanja simulacije, ovi rezultati nisu ͣtipični͞ za normalno funkcioniranje sistema. Mnogo bliži realnosti je pristup sa generiranjem numeričkih vrijednosti koje predstavljaju veći broj korisnika sa slučajnim uzorcima vremena dolazaka i vremenima servisiranja. Potrebno je da te slučajne veličine dobro predstavljaju događaje i aktivnosti koje se dešavaju u realnom sistemu. 1.3.2. Generiranje slučajnih događaja U simulaciji diskretnih događaja (discrete-event simulation), najvažnije pitanje, poslije simuliranja jednog slučajnog događaja, je: koliko dugo, iza toga, će se desiti sljedeći događaj. Dakle, kada korisnik stigne u sistem mora se znati kada će doći sljedeći korisnik. Ili slično, kada se završi servis na tekućem korisniku, mora se znati trajanje sljedećeg servisa da bi se mogao planirati odlazak iz sistema. Ako se pretpostavi da su interval vremena i trajanje servisa slučajno raspoređeni, onda se za simulaciju mora imati mehanizam koji će generirati takve intervale vremena. U tom cilju, potrebno je generirati slučajne brojeve sa uniformnom distribucijom. Simuliranje slučajnih događaja se, dakle, najčešće svodi na simuliranje slučajnih brojeva. Slučajni brojevi se veoma često upotrebljavaju u različitim područjima istraživanja, pa je razvijeno vise različitih metoda za generiranje slučajnih brojeva. Tako generirani slučajni brojevi se testiraju odredjenim matematičkim postupcima da bi se provjerila njihova svojstva tj. koliko su stvarno slučajni i kakva su im druga svojstva koja doprinose kvaliteti slučajnih brojeva. Tako provjereni slučajni brojevi se štampaju u posebnim knjigama slučajnih brojeva. Budući da se radi o statističkim veličinama takvih brojeva treba ogromna količina. Takvi, stvarno slučajni brojevi, se ne upotrebljavaju u simulacijskim eksperimentima izvođenim s računarima, nego se simuliraju pomoću tzv. pseudoslučajnih brojeva, brojeva koji se proizvode na deterministički način, ali su im svojstva takva da se ponašaju kao da su slučajni. Pomoću pseudoslučajnih brojeva se moze ponoviti eksperiment s istim nizom pseudoslučajnih brojeva, budući da su oni generirani na deterministički način. S druge strane takvi, na deterministički način generirani pseudoslučajni brojevi, zadovoljavaju testove slučajnosti, tj. ponašaju se kao da su stvarno slučajni. Pseudoslučajni brojevi su brojevi koji zadovoljavaju odgovarajuće statističke testove slučajnosti ali su gnerirani algoritamskom procedurom tako da se mogu ponoviti ako se to želi. Postoje različiti algoritmi za generiranje pseudoslučajnih brojeva koji zadovoljavaju gornji zahtjev.

Pseudoslučajni brojevi s jednolikom raspodjelom Jedan od najčešće upotrebljavanih algoritama za generiranje pseudoslučajnih brojeva su iz klase ͞kongruentnih generator metoda͟ (͞congruential generator methods͟). Kod mješovite kongruentne metode (͞mixed congruential method͟) se novi slučajni broj Xn+1 dobiva od prethodnog prema formuli: Xn+1 = (a · Xn + c) (mod m) Gdje su a, c i m pozitivni cijeli brojevi (a<m, c<m). To znači da je Xn+1 ostatak kada se (a · Xn + c) podijeli sa m.

33

Moguće vrijednosti za Xn+1 su tada 0, 1, ..., m-1. Za ilustraciju, neka je m = 8, a = 5, c = 7 i Xo = 4 Tada je X1 = int((5 · 4 + 7)/8) = int(3 + 3/8) = 3 Rezutati su dati u Tabeli 1.6.:

Dalje bi se brojevi u tabeli ponavljali u istom redosljedu.Treba uočiti da se svaki od brojeva, od osam mogućih, ponavlja samo jednom. Maksimalna dužina ciklusa je m. U Tabeli 1.7. je data konverzija cijelih slučajnih brojeva u uniformne slučajne brojeve, koji se dobiju: ͳ ݆݈ܿ݅݁݅‫ ݆݋ݎܾ݆݅݊ܽ«ݑ݈ݏ‬൅ ʹ ‫ ݆݋ݎܾ݆݅݊ܽ«ݑ݈ݏ݅݊݉ݎ݋݂݅݊ݑ‬ൌ ݉

Svaki od ovih uniformnih slučajnih brojeva leži u sredini jednog od osam jednakih intervala. 0 ʹ 0,125 0,125 ʹ 0,25 ... 0,875 ʹ 1

34

Jedno od najvažnijih svojstava neke serije pse-udoslučajnih brojeva je zahtjev da ona bude sto je moguće duža. Daljnji su zahtjevi da se dobije "maksimalna serija͞, tj. da su zastupljeni svi mogući brojevi koji se mogu prikazati na nekom registru (osim nule), da se što bolje udovoljava testovima za provjeru slučajnosti itd. Nizovi pseudoslučajnih brojeva imaju svoj "kvalitet" i on može utjecati na rezulate dobivene simulacijskim eksperimentom. Zato je često na raspolaganju veći broj različitih generatora pseudoslučajnih brojeva, kako bi se simulacijski eksperimenti mogli napraviti s različitim nizovima pseudoslučajnih brojeva i tako uočiti i eventualno eliminirati utjecaji nesavršenosti pojedinih generatora pseudo-slučajnih brojeva.Pseudoslučajni brojevi se mogu realizirati i specijalnim elektronskim sklopovima, odnosno hardverski. Za to se upotrebljavaju tz. "sift-registri" (pomačni registri). Osnovna prednost takvih generatora je velika brzina rada. Za svaki pseudoslučajni broj pomocu programa treba izvesti vise instrukcija, pa utrošak vremena može biti više od 10 puta duži nego kod korištenja elektronskih sklopova. Na kraju, sa praktičnog stanovišta treba imati u vidu sljedeća upozorenja. Pošto skoro svaki računarski sistem nudi najmanje jedan način generiranja uniformnih slučajnih brojeva, najveći broj računarskih korisnika upotrebljava te mogućnosti sa povjerenjem, pretpostavljajući njihovu korektnost, i sretni su zbog rezultata. Međutim, veliki je broj loših GSB i to se posebno odnosi na mikroračunarske sisteme. Takođe, generatori široko korišteni na većim sofisticiranijim sistemima mogu pokazivati greške na nekim standardnim teoretskim ili iskustvenim statističkim testovima za slučajnost. Korištenje uniformnih SB iz intervala (0,1) za dobijanje slučajnih brojeva sa exponencijalnom raspodjelom. Mada postoji vise različitih načina kako se mogu generirati pseudoslučajni nizovi brojeva s jednolikom raspodjelom, ne postoji neki opći način kako bi se izravno generirali slučajni brojevi s bilo kojom raspodjelom, prikazanom matematičkim izrazom ili nekom eksperimentalno dobivenom krivuljom skupljanjem statistike iz realnog sistema. Za dobijanje pseudoslučajnih brojeva sa exponencijalnom raspodjelom najčešće se koristi metod inverzne transformacije (inverse transform method). Funkcija gustine vjerovatnoće za exponencijalnu raspodjelu je data sa: ߣ݁ ିఒ௫ ǡ ‫ ݔ‬൒ Ͳ ݂ ሺ‫ ݔ‬ሻ ൌ ൜ Ͳǡ ‫ݔ‬൏Ͳ Tome odgovara kumulativna funkcija raspodjele data sa
݂ሺ‫ݔ‬ሻ ൌ න ݂ ሺ‫ݐ‬ሻ݀‫ ݐ‬ൌ ൜
ିஶ ௫

ͳ െ ݁ ିఒ௫ ǡ Ͳǡ

‫ ݔ‬൒ Ͳ ‫ݔ‬൏Ͳ

35

1. Simulacijski jezici za diskretne sisteme Simulacijske studije su podržane širokim skupom softverskih paketa i jezika. Međutim mnogi analitičari smatraju da je bolje koristiti specijalne simulacione 36 . C ili Pascal.1). Specijalizirani programski jezici su razvijeni u nekoliko posljednih decenija da pomognu simulacionim analitičarima za razvoj i korištenje simulacija realnih sistema. Transformacija uniformnih slučajnih brojeva iz intervala (0. Često se zbog jednostavnosti (1-R) zamjenjuje sa R jer su obje vrijednosti uniformno distribuirane na (0. Simulacije razvijene direktno u općim programskim jezicima često rade mnogo efikasnije nego one implementirane u specijaliziranim simulacionim jezicima. pa se dobije relacija: ͳ ‫ ݔ‬ൌ െ Žሺܴሻ ߣ െߣ‫ ݔ‬ൌ Žሺͳ െ ܴሻ 1. Simulacioni modeli mogu biti implementirani u nekom od tradicionalnih instrukcijskih jezika kao što su Fortran.3.3.x.Sl.1) i neka je F(x) = R slijedi da je ‫ ݔ‬ൌ ‫ି ܨ‬ଵ ሺܴሻ Tada se x može izraziti preko R: ‫ ܨ‬ሺ‫ݔ‬ሻ ൌ ͳ െ ݁ ିఒ௫ ൌ ܴ ݁ ିఒ௫ ൌ ͳ െ ܴ ͳ ‫ ݔ‬ൌ െ Žሺͳ െ ܴሻ ߣ Ova relacija se naziva slučajni generator za eksponencijalnu distribuciju (random variate generator for exponential distribution).1) u eksponencijalno distribuirane brojeve Neka je R uniformni slučajni broj iz (0. funkcionalnom jeziku kao što je LIPS ili na nekom od novih jezika baziranom na objektnoj paradigmi.

Unix. Jezik omogućuje automatsko planiranje događaja. dok vještiji programer traži moćniji i fleksibilniji jezik sa dodatnim kontrolnim mogućnostima. SIMSCRIPT je baziran na konceptu entiteta.. ͞window-uziran͟ grafički interfejs i prenosiv je. prikipljanje statistika i generiranje izvještaja. Macintosh. OS/2 i Unix bazirane sisteme. Kompetentni analitičar može imati nedostatke u programskim vještinama i može smatrati važnijim da se koncentrira na modeliranje sistema i da koristi najprihvatljivije alate. Razni kriteriji određuju analitičarev izbor simulacionog jezika ili paketa. Dizajniran je za MS-DOS. Entiteti mogu biti privremeni (kao korisnici u redu čekanja) ili stalni (kao serveri). GPSS (General Purpose Simulation System). objektno orijentiran simulacioni jezik (1966). vjerovatno. analitičareva osposoblje-nost za programiranje. prikupljanje statistika. Najčešće je to.MODSIM je objektno orijentiran simulacioni jezik koji je naslijedio dosta sintakse od Modula-2 i simulacionih koncepata od SIMSCRIPT. procedura za manipulaciju objektima. 37 . međutim. generiranje izvještaja i ͞debagiranje͟ simulacija.Raspoloživ je za mnoge mainframe sisteme. Procesno orijentirani pristup je baziran na vizuelnom konceptu mreža sa granama i čvorovima. Uključuje subrutine za inicijalizaciju. Ne-programer može izabrati jezik koji je najlakši za učenje ili ima najbolju podršku. Grane predstavljaju aktivnosti i time protok vremena. vjerovatno je najviše korišten simulacijski jezik. MODSIM je stalna podrška za moderno softver inženjersto. Većina simulacionih jezika ima automatske mehanizme za prikupljanje statistika. planiranje budućih događaja.Razvijen je u IBM-u oko 1960-te. SIMULA. Podržava događajima upravljane simulacije i kontinualne simulacije.jezike. Pošto je jednostavan za učenje. SLX.Kolekcija Fortranskih subrutina i može se koristiti na bilo kom računaru koji ima fortranski kompajler. Automatski povezuje napredovanje vremena. ima dobro razvijenu biblioteku. koji je jezik lagan za učenje i usklađen sa njegovim vještinama i iskustvom. prikupljanje statistika i generator izvještaja.Na Fortranu baziran simulacioni jezik.Na Algolu 60 baziran. OS/2. GPSS ima više sljedbenika (GPSS/H. i podršku za označa-vanje nasljeđivanja i podklasa.Postoji i niz drugih softverskih proizvoda koji se mogu koristiti na uobičajenim platformama kao što su DOS. GPSS je visoko specijalizirani jezik posebno dizajniran za simulaciju sistema čekanja. GPSS/PC) SLAM. MODSIM. SIMSCRIPT. odnosno. zaštitne mehanizme za osiguranje enkapsulacije. Sada je baziran na jeziku visokog nivoa (SIMSCRIPT II. . Windows. atributa i skupova. kreiranje i terminiranje entiteta.5) i raspoloživ je za najveće računara. generator slučajnih brojeva. ti su mehanizmi skriveni korisniku. DEC.. Simulacioni jezici GASP (General Activity Simulation Program) . Podržava događajima upravljane simulacije. Podržava definiranje klasa i objekata. procesno orijentirane i kontinualne simulacije. procesno orijentirane i kontinualne simulacije.Originalno je baziran na Fortranu (oko 1960-te). Entiteti imaju atribute i oni sa sličnim atributima mogu formirati skupove. Podržava događajima upravljane simulacije. planiranje događaja.

interesantno odrediti vrijeme koje korisnici troše u sisemu i čekaju prosječan broj korisnika u redu faktor iskorištenja servisa.Pošto simulacione studije koriste mnogo računarskog vremena za izvršavanje velikih simulacija. Ako se pogleda Primjer 1. 1. tada bi bilo potrebno razmotriti više slučajeva. Posmatranje simulacije Postoje tehnike koje generiraju događaje i ubacuju ih u simulirani sistem kroz vrijeme da bi ustanovili koja se posmatranja mogu sprovesti tokom simulacije što bi moglo pomoći da se karakterizira ili razumije sistem koji se proučava. da ako mi odredimo te mjere ponašanja sistema mi to činimo samo za specifični sistem sa posebnim dolascima i odlascima datim u tabeli i samo za posebne vremenske intervale određene tim događajima.1. Ako je potrebno izvesti zaključke o pouzdanim karakteristikama simuliranog sistema. Na kraju simulacije izvršimo dijeljenje. Biće. 1. Ne može biti izvedena generalizacija o ͞tipičnom͟ ponašanju sistema u . posljednjih decenija se radi na razvoju tehnologija koje će koristiti paralelne računare da bi se ubrzalo izvršenje simulacionih programa. Prosječno vrijeme u sistemu Za svakog korisnika i se izračuna ܶ௜  ൌ ‫ ݑ݉݁ݐݏ݅ݏݑ݋݊݁݀݁ݒ݋ݎ݌݆݁݉݁݅ݎݒ‬ൌ ܸ‫ݎݒܽݖ݆݁݉݁݅ݎ‬æ݁‫ܽݏ݅ݒݎ݁ݏܽ݇ݐ‬Ȃ ‫ܽ݇ݏ݈ܽ݋݆݀݁݉݁݅ݎݒ‬ Sumiramo sva vremena i podijelimo sa brojem korisnika: ܲ‫ ݑ݉݁ݐݏ݅ݏݑ݆݁݉݁݅ݎݒ݋݊«݆݁ݏ݋ݎ‬ൌ ൭෍ ܶ௜ ൱൘ܰ ே U simulaciji postavimo sumu na nula i poslije svakog događaja ͞kompletiranje servisa͟ izračunamo Ti za tekućeg korisnika i to dodamo na sumu. Prikupljanje statistika Ako se. Za Primjer 1. Prosječno vrijeme čekanja Za svakog korisnika i se izračuna ܹ௜  ൌ ‫ ݆ܽ݊ܽ݇݁«݆݁݉݁݅ݎݒ‬ൌ ‫ܽݏ݅ݒݎ݁ݏܽ݇ݐ݁«݋݌݆݁݉݁݅ݎݒ‬Ȃ ‫ܽ݇ݏ݈ܽ݋݆݀݁݉݁݅ݎݒ‬ ൌ ‫ݑ݉݁ݐݏ݅ݏݑ݆݁݉݁݅ݎݒ‬Ȃ ‫ܽݏ݅ݒݎ݁ݏ݆݁݉݁݅ݎݒ‬ 38 .4.: ʹ ൅ ͵ ൅ ͹ ൅ Ͷ ൅ ͷ ൅ ʹ ൅ ͵ ൅ ͸ ൅ ͷ ൅ ͷ ൌ Ͷʹ ௜ୀଵ To podijelimo sa 10 (broj korisnika) i dobije se da je prosječno vrijeme provedeno u sistemu 4. može se vidjeti kako se te informacije mogu prikupiti. jasno je da su informacije koje treba dobiti od sistema istog tipa kao one koje dobijamo iz analitičkih formula čekanja.5. dakle. Važno je uočiti. simulira sistem čekanja. međutim.2 vremenske jedinice.5.4. na primjer.

To ͞knjigovodstvo͟ zahtijeva da se upamti trajanje svake dužine reda tokom simulacije. U posmatranom primjeru Slika 1.: Ͳ ൅ Ͳ ൅ ʹ ൅ ͵ ൅ ͵ ൅ Ͳ ൅ Ͳ ൅ ʹ ൅ Ͳ ൅ Ͷ ൌ ͳͶ To podijelimo sa 10 (broj korisnika) i dobije se da je prosječno vrijeme čekanja 1. Tada je ݂ܽ݇‫݅ݎ݋݇ݏ݅ݎ݋ݐ‬æ‫ ܽݎ݁ݒݎ݁ݏ݅ݐݏ݋݊݁ݐ‬ൌ ʹͺȀ͵ͺ ൌ Ͳǡ͹Ͷ 39 .x pokazuje dužinu reda u svakom od 38 vremenskih intervala. ௜ୀଵ Prosječan broj korisnika u redu Dužinu reda je praktičnije posmatrati kroz svaki događaj i množiti dužinu reda sa brojem vremenskih jedinica koje proteknu do sljedećeg događaja koji promijeni dužinu reda.4 vremenske jedinice. dužina reda =0 =1 =2 za 26 vremenskih jedinica za 10 vremenskih jedinica za 2 vremenske jedinice Tada je ‫ݑ݀ܽ݊«݆݁ݏ݋ݎ݌‬ā݅݊ܽ‫ ܽ݀݁ݎ‬ൌ  ሺͲ ȉ ʹ͸ ൅ ͳ ȉ ͳͲ ൅ ʹ ȉ ʹሻȀ͵ͺ ൌ Ͳǡ͵͸ͺ Iskorištenje servisa Za svaki događaj treba odrediti status raspoloživosti servera (zauzet ili nekorišten) i zapamtiti ga. Na kraju simulacije izvršimo dijeljenje. Za Primjer 1.5. Dužina reda je ili 0 ili 1 ili 2.Sumiramo ta vremena i podijelimo sa brojem korisnika: ܲ‫ ݆ܽ݊ܽ݇݁«݆݁݉݁݅ݎݒ݋݊«݆݁ݏ݋ݎ‬ൌ ൭෍ ܹ௜ ൱൘ܰ  ே U simulaciji postavimo sumu na nula i poslije svakog događaja ͞početak servisa͟ izračunamo Wi za tekućeg korisnika i to dodamo na sumu.

Posmatranja kao ova nam omogućuju da napravimo interesantne zaključke. U ovom primjeru. o korisnosti nabavke još jednog CPU kako bi se skratilo vrijeme čekanja. Dizajn simulacionog eksperimenta Pri dizajniranju simulacije sistema kod kojeg su događaji generirani slučajno. Međutim mogu se pojaviti i drugačiji modeli. kada se otvori banka.i ݂ܽ݇‫݅ݎ݋݇ݏ݅݁݊ݎ݋ݐ‬æ‫ ݅ݐݏ݋݊݁ݐ‬ൌ ͳͲȀ͵ͺ ൌ Ͳǡʹ͸ . sa prosječnim vremenom čekanja od 1.4. Kada treba početi posmatranje sistema i prikupljanje podataka o: .Koliko dugo vršiti (run) simulaciju . Kada je program za simulaciju razvijen i spreman za izvršenje. gdje je red češće prazan nego pun.Kako prepoznati da li je sistem dostigao ravnotežu . javlja se više pitanja: .Koje podatke prikupljati . moraju biti definirana početna stanja.Koliko simulacija izvesti .dužini reda 40 . 1.4 vremenske jedinice (što je stvarno mali dio prosječnog vremena izvršenja). kao na primjer.Šta mjeriti . Na primjer. Može izgledati logično da se sistem inicijalizira sa slobodnim serverima i bez korisnika i zatim pustiti da korisnici počnu dolaziti slučajno. Međutim. ako simuliramo bolnicu.Koje preporuke uraditi za modifikaciju simuliranog sistema Nije nužno predložiti odgovore na ta pitanja ali o njima moraju barem razmišljati analitičari ili sistem dizajneri. vjerovatno će dan početi tako da postoje pacijenti koji su planirani i za više dana unaprijed i neki sa čijom se obradom već započelo. i CPU je neiskorišten 26 % vremena.Kako startati simulaciju . ne izgleda opravdano nabaviti dodatni CPU.2. može se pretpostaviti da je sistem prazan da nema redova i da su ͞poslužitelji͟ slobodni.

Da bi se napravila takva upoređenja. ima više očiglednih kriterija performansi koji su interesantni. Pri simulaciji linije čekanja. međutim.iskorištenosti servera Nije dobro početi prikupljanje statistika dok je sistem u svom stacionarnom stanju. Kada se sistem eventualno stabilizira znamo da dužina vremena da se to pojavi zavisi od početnih uvjeta. Pitanja šta mjeriti i koje podatke prikupljati zavise naravno od cilja simulacije. naravno. prednosti ili cijene alternativnih rješenja. Kada se završe značajne razlike. poželjno je napraviti niz eksperimenata za svaki od slučajeva. koje se mogu napraviti iz takvih posma-tranja. Možda je najvažniji i najkorisniji odgovor na pitanje koliko dugo vršiti simulaciju i kako znati kada dodatna izračunavanja ne donose dodatne informacije.. međutim. 41 . sljedeće je pitanje koliko simulacija uraditi. (To.vremenu čekanja . teško znati unaprijed. Pri simulaciji općenitijih sistema. može biti privremeni fenomen. sistemi čekanja). Koliko uzoraka je potrebno da bismo bili sigurni da smo ustanovili realnost sistema koji je modeliran? Da li treba izvršiti fixan broj simulacija? Ili dovoljno simulacija da su varijacije izlaza prihva-tljivo niske? I ako napravimo veliki broj simulacija da li su one obuhvatile identičan interval simuliranog vremena? Da li različite simulacije uključuju različite sisteme parametara? Na primjer. međutim. tu je tačku teško odrediti precizno. Neki pokazuju periodičko ili neko drugo nestacionarno ponašanje. To je. Preporuke. Koliko dugo vršiti simulaciju nakon početka? Bilo bi korisno na neki način dobiti informaciju unaprijed (možda iz predhodnih sličnih simulacija) koja opisuje sistem nakon što se početno neregularno ponašanje sistema završi. Efektivnost simulacije može zavisti od jasnih odluka analitučara da se mjere samo ona ponašanja koja su relevantna za studiju. Kako to znati sigurno?) Kada je simulacioni program razvijen i kada su ustanovljeni svi dizajnirani prametri za jedno izvršenje simulacije. Naime. potencijalno je raspoloživa velika količina podataka. vjerovatno će biti statističkih varijacija u mjerama performansi sistema prilikom svake simulacije. Jedini način da se odluči koliko dugo vršiti simulaciju je prikupljati podatke akumulirati mjere perfomansi (kao što je prosječna dužina reda) i upoređivati te mjere sa mjerama iz predhodnih simulacija. Postoje sistemi kojinikada ne postignu stacionarno stanje (na primjer. mogu se odnositi na mogućnosti. prikupljanje svih tih podataka je skupo i može usložniti simulacijski program. može biti logično pretpostaviti da je stacionarno stanje postignuto. Često je teško unaprijed znati kada će sistem koji se simulira stvarno postići stacionarno stanje. mi možemo upoređivati sisteme sa jednim CPU i sisteme sa dva CPU-a od kojih svaki ima 60% brzine prvog CPU-a.

MATEMATIČKO PROGRAMIRANJE LINEARNO PROGRAMIRANJE . dok je skup A definiran koristeći samo linearne jednačine i nejednačine. Funkcija f se naziva funkcija cilja.4. U općem slučaju može biti više lokalnih minimuma i maksimuma. Glavna područja ‡ Linerano programiranje ‡ Cjelobrojno programiranje ‡ Kvadratno programiranje ‡ Nelinearno programiranje ‡ Stohastičko programiranje ‡ Dinamičko programiranje ‡ Kombinatorna optimizacija ‡ Optimizacija neograničenih dimenzija Linerano programiranje ʹ funkcija cilja f je linearna i skup A je definiran koristeći samo linearne jednačine i nejednačine. 42 . Dopustivo rješenje koje minimizira (ili maksimizira. ako je to cilj) funkciju cilja naziva se optimalno rješenje. Lokalni maksimum se definira slično. termin optimizacija se odnosi na analizu problema koji imaju oblik Zadano je: funkcija f:A-R preslikavanje skupa A na skup realnih brojeva Naći: element x0 u A takav da je f(x0) <= f(x) za svako x u A (͞minimizacija͟) ili takav da je f(x0) >= f(x) za svako x u A (͞maximizacija͟) Ovakva formulacija se ponekad naziva matematički program (termin se ne odnosi na računarsko programiranje). Elementi od A se nazivaju dopustiva rješenja. Kvadratno programiranje ʹ funkcija cilja f može imati kvadratne članove. A je neki podskup Euklidskog prostora R često specificiran kao skup ograničenja. Cjelobrojno programiranje ʹ je linearno programiranje u kojem neke ili sve promjenljive imaju ograničenje da mogu uzimati samo cjelobrojne vrijednosti. ili funkcija koštanja. jednačina ili nejednačina koje članovi iz A moraju zadovoljavati. Standardno. Mnogi realni i teorijski problemi se mogu biti modelirani u ovako općem okviru.ponavljanje MATEMATIČKO PROGRAMIRANJE U matematici. gdje je lokalni minimum x* definiran kao tačka za koju vrijedi da za neko d > 0 i svako x za koje je ||x ʹ x*|| <= d zadovoljeno da je f(x*)< = f(x) što znači da se može reći da su u nekoj kugli (sferi) u okolini tačke x* sve vrijednosti funkcije veće ili jednake od vrijednosti u toj tačci.

1) Pod uslovima definiranim sistemima jednacina i/ili nejednačina: 43 . čije se optimalno rješenje pronalazi nekom od metoda. Stohastičko programiranje ʹ neka od ograničenja zavise od slučajnih promjenljivih. MATEMATIČKI MODEL NLP Opći oblik modela problema nelinearnog programiranja (NP) moze se formulirati na slijedeci nacin: Odrediti maksimum ili minimum funkcije (cilja). koja najvise odgovara za pronalaženje rješenja konkretnog zadatka. Otuda potiču i neki posebni nazivi za takve specifične zadatke nelinearnog programiranja. koje se formalno razlikuju po obliku matematičkog modela. dimenzija i karaktera nelinearnosti. xn) (1. po obliku i dimenzijama funkcije cilja i skupa ograničenja. Za rješavanje zadataka nelinearnog programiranja postoji niz posebno razvijenih metoda. potrebna nova metoda ili prilagođavanje postojeće. tj. Dinamičko programiranje ʹ optimizaciona strategija koja se zasniva na dijeljenu (dekompoziciji) problema na manje podprobleme. Kombinatorna optimizacija ʹ problemi gdje je skup dopustivih rješenja diskretan ili može biti reduciran na diskretan skup. već je za svaki konkretni zadatak. U velikom broju slučajeva ne postoji ni prikladna metoda na bazi koje se može naći optimalno rješenje formulisanog zadatka. kao i prostor funkcija. ͙.Nelinearno programiranje ʹ opći slučaj kod kojeg funkcija cilja i/ili ograničenja mogu imati nelinearne dijelove. Tako postoje specijalne metode za: ‡ linearna ograničenja ‡ za kvadratni oblik funkcije cilja ‡ za cjelobrojne vrijednosti promjenljivih ‡ itd. x2. zadaci nelinearnog programiranja se ne mogu rješavati nekom univerzalnom metodom. NELINEARNO PROGRAMIRANJE Nelinearno programiranje (NLP) spada u grupu determinističkih modela za rješavanje velike klase statičkih upravljačkih zadataka. je zadatak nelinearnog programiranja. kao što su: kvadratično programiranje. Optimizacija neograničenih dimenzija ʹ skup dopustivih rješenja je podskup prostora neograničenih (beskonačnih) dimenzija. itd. To znači da postoji još uvijek veliki broj nerješivih zadataka ili u krajnjem slučaju vrlo teško rješivih zadataka. Za razliku od zadataka linearnog programiranja. kao što je to bio simpleks metod u linearnom programiranju. F (X) = F (x1. a ograničenja nelinearnim algebarskim jednačinama ili nejednačinama). Svaki upravljački zadatak kod koga je funkcija cilja F(X) i/ili skup ograničenja L definiran nelinearnim zavisnostima (funkcija cilja nelinearnom funkcijom. zavisno od njegovog matamatičkog modela. cjelobrojno programiranje.

kao i egzistenciju njihovih parcijalnih izvoda drugog reda. Uslovi nenegativnosti promjenljivih nisu posebno izdvojeni već su uključeni u nejednačine. ͙. kada je samo F ili G nelinearna funkcija. stotine ili hiljade promjenljivih.2. vrši se formalna klasifikacija zadataka nelinearnog programiranja. primjenom računara. x2. Ova tačka se naziva optimalnom tačkom ili rješenjem problema nelinearnog programiranja. što u većini slučajeva nije ispunjeno ili ako je ispunjeno. realni zadaci imaju desetine.͙. 2. x2. Rješenje naprijed navedenog problema definira se u opcem slucaju kao zadatak nalaženja ndimenzionalnog vektora. ͙. Osim ova dva razloga postoje i drugi razlozi koji su uticali na stvaranje posebne metodologije za numeričko rješavanje zadataka nelinearnog programiranja. x2. n u 5). ͙. Funkcija F(X) se naziva konveksnom (konkavnom) u zavisnosti od toga da li je: 44 .®¾ ±± gi (X) = gi (x1. Iz postavke zadatka nelinearnog programiranja jasno se vidi da se kod njegovog rješavanja radi o pronalaženju: ‡ ekstremne vrijednosti nelinearne algebarske funkcije F(X). treba mnogo vremena za provjeru. Međutim. pri cemu je zadovoljen sistem ograničenja (1. m (1. vezujući se za oblik funkcije F(X) i G(X). Cilj rjesavanja zadatka je da se na ovako definiranom skupu mogucih rješenja odredi tačka X*. Neke od tih klasifikacija. xn) ima odredjenu vrijednost. Na toj osnovi. xn) u n-dimenzionalnom Euklidovom prostoru u kojoj funkcija cilja F (X) = F (x1. Jedan od fundamentalnih rezultata u ovoj oblasti dali su Kuhn i Tucker koji se odnose na zadatke nelinearnog programiranja čija funkcija cilja i skup ograničenja zadovoljavaju uslov konveksnosti. za koju vazi da je F (X*) = (max ili min) F (X).2) Funkcije F (X) i gi (X) mogu imati bilo kakav oblik.2).2). što čini jednu od osnovnih prepreka u primjeni klasičnog matematskog aparata. pod uslovom da ta tačka zadovoljava unaprijed definirana ograničenja zadatka. ͙. već i njihovu neprekidnost. tj. odnosno. ‡ Klasični matematski aparat varijacionog računa postaje nemoćan. tačke X = (x1. ako se radi o traženju ekstrema funkcije kaja zavisi od više promjenljivih (npr. pri čemu te promjenljive moraju zadovoljavati posebne uslove definisane ‡ skupom ograničenja oblika (1. xn) ¯! ¿ 0 ± "± ° À i = 1. ‡ Cjelobrojno programiranje. Klasični matematski aparat teorije maksimuma i minimuma funkcija više promjenljivih ne može da obezbijedi rješenje zadatka nelinearnog programiranja i to iz više razloga među kojima su: ‡ Klasični matematski aparat pretpostavlja ne samo poznavanje analitičkog oblika funkcije F(X) i gi(X) (i=1. koje izbjegavaju viši nivo apstrakcije i uopštene zaključke ove složene metodologije su: ‡ Nelinearno programiranje sa linearnim skupom ograničenja ‡ Nelinearno programiranje sa separabilnom funkcijom cilja F(X) ‡ Kvadratno programiranje. Posebni slučajevi zadataka nelinearnog programiranja javljaju se kada F i G nisu istovremeno nelinearne funkcije.m). U matematičkoj analizi zadaci ovog tipa nazivaju se zadacima iznalaženja uslovnog ekstrema. koja zavisi od ‡ više promjenljivih.

pri skupu ograničenja koja su zadana jednačinama. 0 ) ! F ( X )  § PM K M ( X ) i !1 ( 4) Tek sada se može dati pecizna definicija teoreme Kuhn-Tucker-a koja glasi: Vektor X=X* predstavlja rješenje zadatka nelinearnog programiranja. definisanog posredstvom pronalaženja minimuma funkcije (1) pri ograničenjima (2).ʄ2.ʄm.L). Langrange-ovi multiplikatori sačinjavaju komponente m-domenzionalnog vektora L od koga zavisi uopštena Langrange-ova funkcija F koja predstavlja funkciju zavisnu od n+m promjenljivih (X. koja se formira na sljedeći način: m J ( X . Za formiranje ove funkcije uvedimo m novih promjenljivih koje se zovu Langrange-ovi multiplikatori. Teorema Kuhn-Tucker-a daje potreban i dovoljan uslov koje mora ispunjavati vektor X. ȿ*) ч ʔ(X.ȿ). (5) Ɍ(X*. tada i samo tada kada postoji vektor ȿ=ȿ* takav da je: X*ш0.. Kriterijumi ispunjavanja potrebnog i dovoljnog uslova formiraju se i provjeravaju na bazi uopštene Langrange-ove funkcije F(X. ȿ*ш0. 45 . koja omogucava pronalaženje ekstremne vrijednosti funkcije više promjenljivih. a koje ćemo označiti sa ʄ1.. ȿ*). (6) Za sve vrijednosti X*ш 0. ȿ*ш 0.. Ona zauzima centralno mjesto u teoriji konveksnog programiranja definisanog uslovom (3) i predstavlja uopštenje klasične metode Langrange-ovih multiplikatora. Kuhn-Tucker-ova teorema proširuje predhodni metod na pronalaženje ekstremne vrijednosti funcije više promjenljivih. koji predstavlja rješenje zadatka opisanog sa (1) i (2). pri ograničenjima koja mogu biti i nejednačine.za bilo koju vrijednost Ovaj metod zasniva se na teoremi Kuhn-Tucker-a koja se u literaturi često pominje i pod imenom teorema o sedlastoj tački. Drugim riječima.. ȿ) ч F(X*.

3. Primjer izvođenja. am1 x1 + am2 x2 + . + amn xn <= bm i (2.Tada funkcija ʔ u tački (X*.3.3. Simplex algoritam 2.3. 2. RJEŠENJE ZADATKA LP (ponavljanje) 2.2) 46 . ȿ*) mora imati globalni minimum oblasti X ш 0 u odnosu na X i globalni maksimum u oblasti ȿ* ш 0 u odnosu na ȿ. Vještačka početna baza 2.1..3. Simplex metod ʹ algoritam (SA) je postupak koji omogućuje da se optimalno rješenje nađe bez potrebe ispitivanja vrijednosti funkcije cilja u svim vrhovima dopustivog prostora..2.. Procedura se zaustavlja kada se ne može naći nijedan susjedni vrh u kojem funkcija cilja ima bolju vrijednost od tekućeg vrha. RJEŠENJE ZADATKA LP Ako postoji optimalno rješenje problema LP.1. + a1n xn <= b1 a21 x1 + a22 x2 + . + a2n xn <= b2 . ȿ*) predstavlja nenegativnu sedlastu tačku za funkciju ʔ.3.3.3. Ova bitna osobina problema LP je osnov za opšti metod nazvan Simplex metod. ili drugim riječima: (X*. LINEARNO PROGRAMIRANJE 2.3. Algebra Simplex algoritma Standardna i normalna forma problema LP U pripremi za primjenu SA poći ćemo od standardne forme problema LP: Maksimizirati Z = c1x1 + c2x2 + ͙ + cnxn (2.3...3. ono se nalazi u vrhu dopustivog prostora. Algebra simplex algoritma 2. obzirom da zadatak minimizacije F(X) odgovara zadatku određivanja sedlaste tačke (minimaksnom zadatku) za funkciju ʔ kod koje su od svih ograničenja očuvana samo ograničenja u odnosu na znak. (2) Geometrijska interpretacija SA SA pretstavlja iterativnu proceduru koja u svakoj iteraciji generira po jedan vrh dopustivog prostora u kojem funkcija cilja ima ͞bolju͟ vrijednost nego u tekućoj tačci. Ona rješava svaki problem LP ili ustanovi da nema dopustivog rješenja ili da ima rješenje u beskonačnosti. Znači..3..3. Tabelarni oblik simpleks algoritma 2. Rješenje X* minimaksnog zadatka predstavlja istovremeno rješenje minimizacije funkcije F(X) i obrnuto..1) pod uvjetom da bude zadovoljeno a11 x1 + a12 x2 + . Zbog toga se ova teorema često naziva teorema o sedlastoj tački. dovoljno je ispitati vrijednosti funkcije cilja u konačnom broju vrhova da bi se našlo optimalno rješenje.

.. ili u matrično vektorskom obliku: Max Z = cT x Uz ograničenja: Ax = b X >= 0 Pretpostavićemo da su svi bi >= 0. uvodeći novih m promjenljivih. + a2n xn + xn+2 = b2 .n.. j = 1. + amn xn + xn+m = bm i x1 >= 0. Normalna forma problema LP se dobije kada se u ograničenja-nejednačine dodaju izravnavajuće (dodatne) promjenljive.. ͙.8) am1 x1 + am2 x2 + .3) gdje su aij. x2 >= 0. . . a m1a m 2 - . xn >= 0 (2. + a1n xn + xn+1 = b1 a21 x1 + a22 x2 + .. cj. j = 1.9) gdje su aij. zadani realni brojevi.. a mn 0 0 . ͙. cj. Na taj način. m i da je rang A = m. i = 1.. .. . ͙..x1 >= 0. . ͙. Matrica ograničenja (2.8) ima sljedeću strukturu: a11 a12 a 21 a 22 - a1n 1 0 a2n 0 1 - 0 0 . 2. 2. bi za i = 1. mora riješiti tri podzadatka: ‡ naći prvu dopustivu tačku (rješenje) ‡ zamjeniti tekuću dopustivu tačku drugom dopustivom tačkom u kojoj funkcija cilja ima ͞bolju͟ vrijednost ‡ ustanoviti (prepoznati) optimalnu tačku Nalaženje prve dopustive tačke Ako se ograničenja (2. x2 >= 0. Promjenljive koje se ne biraju proizvoljno (m promjenljivih) nazivaju se bazne promjenljive. bi za i = 1.n. . 2... 2. . m. 2. . (2.8) posmatraju kao sistem od m jednačina sa n+m promjenljivih... .. Simpleks algoritam se. Tada je rješenje dato sa: 47 .7) pod uvjetom da bude zadovoljeno a11 x1 + a12 x2 + . xn+m >= 0 (2. taj sistem će imati rješenje u prostoru dimenzionalnosti: n+mʹm=n Iz toga slijedi da se n promjenljivih može odabrati proizvoljno. Problem LP u normalnoj (proširenoj) formi je dakle: Maksimizirati Z = c1x1 + c2x2 + ͙ + cnxn (2. kao većina iterativnih procedura za nalaženje optimalnih rješenja.1 Očigledno je da je rješenje ovog sistema jednačina vrlo jednostavno ako se za prvih n promjenljivih odabere da su proizvoljne vrijednosti jednake nuli. nejednačine se prevode u jednačine... m.. zadani realni brojevi.

xn+2.. Ono pretstavlja vrh dopustivog prostora definiranog ograničenjima (2. . Pošto ta promjenljiva učestvuje u vrijednosti funkcije cilja tako što se množi se sa odgovarajućim cj.7) ʹ(2... promjenljiva uvećava svoju vrijednost sa 0 na neku pozitivnu veličinu (zbog bi > 0... j = 1. dakle. . m Ovo rješenje se naziva bazno dopustivo rješenje jer zadovoljava uslove nenegativnosti (jer su svi bi>= 0).početna vrijednost funkcije cilja: F0 = 0 U SA promjenljive. Sada je potrebno odabrati promjenljivu koja izlazi iz baze. može uvećati vrijednost funkcije cilja. a jedna od baznih prevesti u nebaznu promjenljivu. . Iz toga slijedi da se.34) j ˒(1.. ona će uvećavati ili umanjivati vrijednost funkcije cilja u zavisnosti od toga da li je cj veće ili manje od nule..početno bazno dopustivo rješenje problema LP zadanog sa (2. ako postoji cj > 0. ... . Ako ima više cj > 0..početna baza: B0 = (xn+1. 0. .. 0. U SA to je susjedna bazna dopustiva tačka. m) što znači da u bazu ulazi promjenljiva odgovarajućeg indeksa xp. b1. To se mora uraditi tako da se ͞poboljša͟ (u posmatranom slučaju uveća) vrijednost funkcije cilja. uvođenjem odgovarajuće promjenljive (xj) u bazu. n onda je kriterij za ulazak promjenljive u bazu: Cp = max(cj: cj >0) (2. Slučaj za bi = 0 razmotriće se kasnije). ispituju se sva ograničenja i nalaze se najveće vrijednosti za koja bi se odabrana promjenljiva mogla promijeniti ako bi dotadašnja bazna promjenljiva postala jednaka nula.. ... Ulazeći u bazu.. Ograničenja (2. Potrebno je.. promijeniti početnu bazu tako što će se jedna od nebaznih promjenljivih prevesti u baznu. 2. 2. b2. imaju sljedeća svojstva: y samo jedna bazna promjenljiva sa nenultim koeficijentom se može nalaziti u jednom ograničenju y bazne promjenljive u jednačini ograničenja imaju koeficijent 1 Nalaženje nove bazne dopustive tačke Sada je potrebno naći novu baznu dopustivu tačku (rješenje) u kojoj funkcija cilja ima ͞bolju͟ vrijednost. Pošto je cilj da se u svakoj iteraciji što više uveća funkcija cilja a da naredno rješenje ostane dopustivo.8) Dakle.9) je: x0 = (0.. 2.. . xn+m) .. koje imaju ulogu baznih promjenljivih. 2. Susjedna bazna dopustiva tačka (rješenje) je ona čija se baza razlikuje od baze tekuće bazne dopustive tačke za samo jednu promjenljivu. bm) .. n i xn+i = bi za i = 1.xj = 0 za j = 1..8) se sada mogu napisati u obliku: a1q xq + xn+1 = b1 a2q xq + xn+2 = b2 48 .

Efektivno to znači da treba uraditi sljedeće: 1. m) Dakle.koeficijenti matrice ograničenja: 49 . xn+1 >= 0. vrijednost funkcije s više ne može uvećavati pa tekuće dopustivo bazno rješenje predstavlja optimalno rješenje. Ukoliko nijedan od koeficijenata nije veći od nule. pri čemu se xn+1 smanjuje do nule. Iz toga slijedi da rješenje sistema (2.. (2. iz baze izlazi promjenljiva xn+p za čiji indexs p važi: bp/apq = min (bi/aiq: aiq > 0) i ˒(1.2... xn+2 >= 0. . a u svim drugim ograničenjima kao i u funkciji cilja će imati koeficijent 0.10) amq xq + xn+m = bm ---------------------------xq >= 0.35) i ˒ (1. Na taj način će se vodeća promjenljiva xq pojaviti sa koeficijentom 1 u vodećoj vrsti (ograničenju). Vodeću vrstu podijeliti sa apq 2.. Ako je aiq = 0.10) postoji onda i samo onda kada xq ne prelazi vrijednost datu sa: tp = min (bi/aiq: aiq > 0) (2.. xn+m >= 0 Ako je aiq > 0 tada se xq može uvećati maksimalno do vrijednosti bi/aiq.. tada povećanje xq ne utiče na vrijednost xn+i.. m) Novo bazno rješenje Izborom indeksa za promjenljivu koja izlazi iz baze i za promjenljivu koja ulazi u bazu izabrali smo vodeću kolonu i vrstu. Ostali parametri se mijenjaju p na sljedeći način: .. i xq može neograničeno rasti.. 2.. nova bazna promjenljiva xq se izrazi preko ostalih promjenljivih xq = 1/apq (bp ʹ ap1 x1 ʹ ap2 x2 ʹ .36) Ovaj izraz za xq se uvrsti u sva ograničenja i funkciju cilja. i xq može neograničeno rasti.. Na presjeku vodeće vrste i kolone nalazi se vodeći element.. 2.. ʹ apn+m xn+m) (2.. . m. bira se ono ograničenje koje je najstrožije. ... Time je određeno koja će promjenljiva postati bazna i u kojem će se ograničenju nalaziti sa koficijentom 1. Ustanovljavanje optimalnog rješenje Da bi se uvećala tekuća vrijednost funkcije cilja potrebno je da neki od koeficijenata cj u tekućoj funkciji cilja bude veći od nule. Transformacija u novi prošireni oblik dobije se na sljedeći način: U vodećoj vrsti p. i т p cq = 0 3. .. tada povećanje xq uvećava vrijednost xn+i. Ako je aiq < 0. Sve koeficijente u ostalim ograničenjima i odgovarajući koeficijent u funkciji cilja izjednačiti sa nulom: aiq = 0 i = 1. Kako sva ograničenja moraju biti zadovoljena.

dobiće se: x1 = 0 x2 = 0 i dvije jednačine sa dvije (bazne) nepoznate: 1x3 + 0x4 = 150 0x3 + 1x4 = 60 ----------------------x3 >= 0.2x2 + 0x3 + 1x4 = 60 --------------------------------------------x1 >= 0... . Rješenje: Matematički model je dat u (standardnom) obliku: Naći: max (Z(x)) = 3x1 + 1x2 uz ograničenja 0... m.. j т q .38) iтp ..3x2 <= 150 0. 2.1.. x4 >= 0 . 0. x4) . x4 >= 0 Prošireni oblik je: Naći: max (Z(x)) = 3x1 + 1x2 + 0x3 + 0x5 uz ograničenja 0.5 x1 + 0. i т p (2. 2. 150..desne strane ograničenja: bi͛ = bi ʹ aiq bp/apq i = 1. m (2. 2. x2 >= 0 Odbraćemo prve dvije promjenljive kao nebazne tj.i = 1.. x2 >= 0.. .1x1 + 0. . 2..koeficijenti u funkciji cilja: cj͛ = cj ʹ apj cq/apq j = 1.39) j т q Primjer 2. x3 >= 0.početno bazno dopustivo rješenje problema LP je: x0 = (0.5 Koristeći SA riješiti zadatak 2.1x1 + 0. n (2.2x2 <= 60 -----------------------------x1 >= 0. 60) .početna vrijednost funkcije cilja: F0 = 0 aij͛ = aij ʹ aiq apj/apq Nalaženje nove bazne dopustive tačke 50 .3x2 + 1x3 + 0x4 = 150 0. n. .5x1 + 0.37) j = 1..početna baza: B0 = (x3.

Novo bazno rješenje Transformacija u novi prošireni oblik dobije se na sljedeći način: U vodećoj vrsti 1. ona će uvećavati ili umanjivati vrijednost funkcije cilja u zavisnosti od toga da li je cj veće ili manje od nule.. x4 >= 0 Pošto su a11 > 0 i a21 > 0 tada se x1 može uvećati maksimalno do vrijednosti 150/0. 60/0. Pošto ta promjenljiva učestvuje u vrijednosti funkcije cilja tako što se množi se sa odgovarajućim cj.6x2 + 2x3 + 0x4 = 300 2.5 = 300.1 = 600 pri čemu se x3 odnosno x4 smanjuju do nule. Sve koeficijente u ostalim ograničenjima i odgovarajući koeficijent u funkciji cilja izjednačiti sa nulom: ai1 = 0 i = 1. c2) = 3 j ˒ (1.. promjenljiva uvećava svoju vrijednost sa 0 na neku pozitivnu veličinu (zbog bi > 0.5 pa se dobije: 1x1 + 0. 2 i т 1 c1 = 0 3.. a u svim drugim ograničenjima kao i u funkciji cilja će imati koeficijent 0.x1 Sada je potrebno odabrati promjenljivu koja izlazi iz baze. Ulazeći u bazu. bira se ono ograničenje koje je najstrožije. ispituju se sva ograničenja i nalaze se najveće vrijednosti za koja bi se odabrana promjenljiva mogla promijeniti ako bi dotadašnja bazna promjenljiva postala jednaka nula. Pošto je prvo ograničenje strožije iz baze izlazi promjenljiva x3. Pošto je cilj da se u svakoj iteraciji što više uveća funkcija cilja a da naredno rješenje ostane dopustivo. Vodeću vrstu podijeliti sa a11 = 0. Efektivno to znači da treba uraditi sljedeće: 1. Kako sva ograničenja moraju biti zadovoljena.5 (150 ʹ 0. Ostali parametri se mijenjaju pna sljedeći način: 51 . m) što znači da u bazu ulazi promjenljiva odgovara-jućeg indeksa . Ograničenja se sada mogu napisati u obliku: 0.5x1 + 1x3 + 0x4 = 150 0. 2.1x1 + 0x3 + 1x4 = 60 ----------------------------------x1 >= 0. . Na taj način će se vodeća promjenljiva x1 pojaviti sa koeficijentom 1 u vodećoj vrsti (ograničenju). odnosno. Kriterij za ulazak promjenljive u bazu je: cp = max(cj: cj>0) = max (c1. x3 >= 0.3x2 ʹ 1x3 ʹ 0x4) Ovaj izraz za x1 se uvrsti u sva ograničenja i funkciju cilja. Slijedi da je vodeći element a11 = 0. nova bazna promjenljiva x1 se izrazi preko ostalih promjenljivih x1 = 1/a11 (b1 ʹ a12 x2 ʹ a13 x3 ʹ a14 x4) = = 1/0.Sada je potrebno naći novu baznu dopustivu tačku (rješenje) u kojoj funkcija cilja ima ͞bolju͟ vrijednost. Tako su određeni vodeća kolona (j = 1) i vodeća vrsta (i = 1).5.

0. 2. x4 >= 0 .5 = .6x2 + 2x3 + 0x4 = 300 0. 0. Tabelarni oblik Simplex algoritma Algebarski oblik SA je pogodan za razumjevanja postupka kojim se. dođe do optimalnog rješenja.8x2 ʹ 6x3 + 0x4 uz ograničenja 1.desne strane ograničenja: bi͛ = bi ʹ ai1 b1/a11 i = 1. x3 >= 0.nova vrijednost funkcije cilja: F0 = c1x1 = 3*300 = 900 Dobili smo zadatak koji po svom obliku potpuno odgovara početnom zadatku.3/0. 30) . b2͛ = 60 ʹ 0. 2 i т 1.5 = 30 . 3. Zadatak LP se može tabelarno predstaviti sljedećom tabelom 52 . 0.nova baza je: B0 = (x1.3/0.1 0.3.14 a23͛ = 0 ʹ 0.5 = 0. može naći optimalno rješenje..1 1.0 c4͛ = 0 ʹ 3 0.1 150/0.5 = 1 . mijenjajući po određenim pravilima bazna dopustiva rješenja.koeficijenti u funkciji cilja: cj͛ = cj ʹ apj cp/apq j = 1. x2 >= 0. ovo rješenje je ujedno optimalno rješenje zadatka. To omogućuje da se poblem LP predstavi u formi tabele i da se.2 ʹ 0.0/0.1 0.8 c3͛ = 0 ʹ 3 1.0x1 + 0.novo bazno dopustivo rješenje je sada: x0 = (300. 4 jт 1 c2͛ = 1 ʹ 3 0. na njega možemo primijeniti isti postupak promjene baznog rješenja.2x3 + 1x4 = 30 --------------------------------------------x1 >= 0.2. 2 i т 1.2 a24͛ = 1 ʹ 0. koristeći naprijed definirana pravila izmjene parametara. tj.0/0.5 = 0.0x1 + 0.0/0.koeficijenti matrice ograničenja: aij͛ = aij ʹ ai1 a1j/a11 i = 1. j = 1.6.0/0.14x2 + 0. 2. U tom cilju ćemo ispitati vrijednosti koeficijenata u tekućoj funkciji cilja.5 = . 2.5 = 0 Novi prošireni oblik je sada: Naći: max (Z(x)) = 0x1 ʹ 0.3. Ustanovljavanje optimalnog rješenje Pošto nijedan od koeficijenata tekuće fukcije cilja nije veći od nule. x4) . 3. Algebarskim postupkom je ujedno određeno mije-njanje parametara iz jednog baznog dopustivog rješenja u drugo. 4 jт1 a22͛ = 0.

. m. Prekida se dalji rad Ako postoje cj > 0. Rješenje: Početna simpleks tabela: Izbor vodeće kolone i vodeće vrste: 53 .. .37)-(2.. Na taj način se određuje indeks p ograničenja čija postojeća bazna promjenljiva izlazi iz baze. tada je funkcija cilja neogra-ničena odozgo pa problem nema rješenja. aij <= 0 za sve i = 1.39) navedenih naprijed Primjer 2.1.6 Koristeći tabelarnu formu SA riješiti zadatak 2. nađeno je optimalno bazno rješenje Ako za neko j za koje je cj > 0.Postupak Formira se početna simpleks tabela Ako su svi cj <= 0. Generira se nova simpleks tabela primjenom algebarskih transforamcija (2. 2. bira se cq = cmax i na taj način se određuje indeks promjenljive koja ulazi u bazu Ispituju se svi odnosi bi/aiq za aiq > 0 i bira minimalni.

Dobit (n.optimalno rješenje je sada: x0 = (300.Kapaciteti mašina (v.j.) .Nova simpleks tabela (primjena transformacija (2.) su dati u sljedećoj tabeli: 54 .j. 30) .j.) . 0. x4) .baza optimalnog rješenja je: B0 = (x1.37)-(239)): Pošto su svi koeficijenti tekuće funkcije cilja manji ili jednaki nuli. .Vrijeme obrade (v.optimalna vrijednost funkcije cilja: F0 = c1 x1 = 3 300 = 900 Primjer 2. tekuće bazno dopustivo rješenje je optimalno rješenje. 0. M2 i M3 .7 Dva proizvoda P1 i P2 se proizvode na tri grupe mašina M1.

x6 >= 0 Početna simpleks tabela: 55 . x2 >= 0.Pored toga. x3 >= 0. x5 >= 0. proizvod P2 ne treba proizvoditi više od 550 komada u posmatranom periodu. procjena je da se zbog ograničenih mogućnosti tržišta. x2 >= 0 Prošireni model je: Naći max Z = 800 x1 + 1000 x2 + 0 x3 + 0 x4 + 0 x5 + 0 x6 uz ograničenja 30 x1 + 16 x2 + 1 x3 + 0 x4 + 0 x5 + 0 x6 = 22 800 24 x1 + 19 x2 + 0 x3 + 1 x4 + 0 x5 + 0 x6 = 14 100 11 x1 + 26 x2 + 0 x3 + 0 x4 + 1 x5 + 0 x6 = 15 950 x2 + 0 x3 + 0 x4 + 0 x5 + 1 x6 = 550 ----------------------------------------------------------------x1 >= 0. Rješenje: Matematički model zadatka: Naći max Z = 800 x1 + 1000 x2 uz ograničenja 30 x1 + 16 x2 <= 22 800 24 x1 + 19 x2 <= 14 100 11 x1 + 26 x2 <= 15 950 x2 <= 550 -------------------------------x1 >= 0. x4 >= 0.

Simpleks tabela 2: Simpleks tabela 3: 56 .

Simpleks tabela 4: Pošto su svi koeficijenti tekuće funkcije cilja manji ili jednaki nuli. 0. 110. .optimalna vrijednost funkcije cilja: F0 = c1 x1 + c2 x2 = 800*531 + 1000*390 = = 813 800 57 . x6) . x2. x4. 0. 19) .baza optimalnog rješenja je: B0 = (x1.optimalno rješenje je sada: x0 = (531. tekuće bazno dopustivo rješenje je optimalno rješenje. 390.

Da bi se i u tom ograničenju dobila promjenljiva koja može biti bazna.9). pa se izbacivanje vještačkih promjenljivih iz baze osigurava uvođenjem koecijenta M odgovarajućeg znaka (. odnosno. u općem slučaju.kod traženja maksimuma i + kod traženja minimuma) u funkciju cilja. Znači. 58 .41) Nenegativna promjenljiva xn+i se naziva vještačka promjenljiva jer nije dio originalnog zadatka i dodana je samo da bi formalno dobili promjenljivu koja može biti bazna promjenljiva. Nenegativna promjenljiva xn+i narušava ograničenje (2.. Vještačka početna baza Ako zadatak LP nema standardni oblik definiran sa (2. Ograničenje tipa = Ako je jedno ili više ograničenja zadano u obliku: ai1 x1 + ai2 x2 + . koji je pogodan za direktnu primjenu SA. + ain xn = bi (2.3.40) dobije oblik: ai1 x1 + ai2 x2 + .3. ograničenje (2. dodaje se tzv.3.40)..40) imamo ograničenje koje je jednačina. algoritam mora izbaciti ovu promjenljivu iz baze da bi rješenje bilo dopustivo.. + ain xn + 1 xn+i= bi (2.40) će biti zadovoljeno samo u slučaju da je xn+i jednako nuli. Uvođenje vještačke promjenljive narušava odgovarajuće ograničenje. nemamo nijednu promjenljivu koja zadovoljava uvjete da bude bazna promjenljiva. Vještačkih promjenljivih u ograničenja koja nisu tipa <=. Ako tokom primjene SA vještačke promjenljive ne budu anulirane onda to znači da zadatak nije dopustiv. ͞vještačka promjenljiva͟ i jednačina (2.2. može se primijeniti tehnika nazvana Metoda velikog M. u tom ograničenju. međutim.7) ʹ (2. Metoda velikog M se zasniva na uvođenju tzv..

+ cn xn +. koji nastoji maksimizirati funkciju cilja. Ograničenje tipa >= Ako je jedno ili više ograničenja zadano u obliku: ai1 x1 + ai2 x2 + .10 Riješiti zadatak 2.44) Kao i u slučaju ograničenja tipa jednačina.. imati oblik: Z = c1 x1 + c2 x2 + .. ona se množi sa koeficijen-tom ʹM kod traženja maksimuma (sa +M kod traženja minimuma). izbaciće promjenljivu xn+i iz baze jer će njenim izbacivanjem uvećati funkciju cilja. imati oblik: Z = c1 x1 + c2 x2 + . onda to znači da taj zadatak LP nije dopustiv... koji nastoji maksimizirati funkciju cilja.42) Drugim rječima SA. onda to znači da taj zadatak LP nije dopustiv. Medutim.. Ako SA ne izbaci vještačku promjenljivu iz baze do kraja zadatka. Koeficijent M ima za red veličine veću vrijednost od ostalih koeficijenata u funkciji cilja.1 x2 >= 0. dakle. + ain xn .. vještačka promjenljiva se množi sa koeficijentom ʹM kod traženja maksimuma (sa +M kod traženja minimuma). Funkcija cilja će.1 x1 >= 0..43) dobije oblik: ai1 x1 + ai2 x2 + . u tom slučaju nijedna promjenljiva neće zadovoljavati uvjete da bude bazna promjenljiva.43) potrebno je. nenegativna promjenljiva xn+i se naziva vještačka promjenljiva jer nije dio originalnog zadatka i dodana je samo da bi formalno dobili promjenljivu koja može biti bazna promjenljiva.2 koristeći simplex tabelu.0 59 . u funkciji cilja. Ako SA ne izbaci vještačku promjenljivu iz baze do kraja zadatka.2 0..+ (-M) xn+i +. + ain xn >= bi (2.. (2. dakle. Da bi se i u tom ograničenju dobila promjenljiva koja može biti bazna.3 0.. izbaciće promjenljivu xn+i iz baze jer će njenim izbacivanjem uvećati funkciju cilja. Primjer 2. Koeficijent M se naziva ͞kazneni koeficijent͟ jer on. Funkcija cilja će.. Matematički model je data sa: Naći minimum funkcije Z = 40 x1 + 30 x2 uz ograničenja 0.... dodaje se još jedna promjenljiva ͞vještačka promjenljiva͟ i jednačina (2.5 x1 + 0.3 x2 >= 3. u funkciji cilja.45) Drugim rječima SA. + cn xn +.1 xn+i + + 1 xn+i+1= bi (2..Da bi se to postiglo. (2. oduzeti jednu pozitivnu promjenljivu. Da bi se vještačka promjenljiva izjednačila sa nulom. kažnjava nedopustivost baznih rješenja transformiranog zadatka u odnosu na originalni. + + 0 xn+i + (-M) xn+i+1 +. radikalno umanjujući funkciju cilja. da bi se dobila jednačina..

1000 x5 + 0. na primjer.0.0 x3 + 0 x4 . Zato je potrebno ove promjenljive izraziti u funkciji od nebaznih promjenljivih u odgovarajućim ograničenjima i dobijene vrijednosti uvrstiti u funkciju cilja.0 x3 + 0 x4 .1 x1 + 0.1 x1 + x3 Kada se ova vrijednost (kao i za ostale bazne promjenljive) uvrsti u funkciju cilja dobije se: Z = (40 ..1 x5 + 1 x6 ʹ 0 x7 + 0 x8 ʹ 0 x9 + 0 x10 = 0.1 x1 + 0. x6..2 ʹ 0.0 x5 + 0 x6 ʹ 0 x7 + 0 x8 ʹ 1 x9 + 1 x10 = 1.0.0 x5 + 0 x6 ʹ 0 x7 + 0 x8 ʹ 0 x9 + 0 x10 = 0..3 x2 .0.0 x6 .1 x1 + 1 x3 + 0 x5 ʹ 0 x6 + 0 x7 ʹ 0 x8 + 0 x9 ʹ 0 x10 = = 0. x2 >= 0 Prošireni model je: Naći minimum funkcije Z = 40 x1 + 30 x2 + 0 x3 + M x4 + 0 x5 + M x6 + 0 x7 + M x8 + 0 x9 + M x10 uz ograničenja 0.2 ----------------------------x1 >= 0.2 0. x8.1 x1 .0 x8 + M x9 + 0. .2 x2 >= 1.0 x3 + 0 x4 .0 x10 Za M se može uzeti bilo koja konstanta za red veličine veća od ostalih koefi-cijenata u funkciji cilja. Odabraćemo da je: M = 1000 Kada se to uvrsti u funkciju cilja i ona pomnoži sa -1 (da bi se tražio maksimum) dobije se: Z = 660 x1 + 570 x2 ʹ 1000 x3 + 0.2 ------------------------------------------------------------------------------------------------xj >= 0.1000 x7 + + 0.1000 x9 + 0.1 x2 . Tako se.2 ʹ 0.5M) x2 +M x3 + 0.0 x4 + M x5 + 0. 10 Zadatak nije spreman za primjenu SA jer u funkciji cilja postoje bazne promjenljive koje se množe nenultim koeficijentima (x4.0 x4 ʹ .0 x10 60 .0 x5 + 0 x6 ʹ 1 x7 + 1 x8 ʹ 0 x9 + 0 x10 = 3.3 0.5 x1 + 0.2 x2 .0 x8 .1 x3 + 1 x4 .7M) x1 +(30 . iz prvog ograničenja može izraziti bazna promjenljiva x4: x4 = 0. 2.0 x6 + M x7 + + 0. x10). j = 1.0 0.

: 3 Simplex tabela br.10.MINIMUM Datum listanja zadatka : 22.: 4 61 .: 2 Simplex tabela br.: 1 Simplex tabela br.Zadatak : MJESAVINA .2007 __________________________________________________________________ Broj promjenjljivih : 2 Broj ogranicenja : 4 Simplex tabela br.

.2 62 .: 5 Pošto su sve vještačke promjenljive jednake nuli i svi koeficijenti tekuće funkcije cilja manji ili jednaki nuli.baza optimalnog rješenja je: B0 = (x1. 0. x2.optimalna vrijednost funkcije cilja: F0 = 265.12.optimalno rješenje je sada: x0 = (3. x3.42. 0. 4. 0. 0) . 0.Simplex tabela br. x5) .28.14. 0. tekuće bazno dopustivo rješenje je optimalno rješenje. 0. 0.

zadani realni brojevi. xn >= 0 (2. + am2 ym >= c2 . Ovako zadan problem LP se obično naziva primalni problem ili primal.. 2. 2. .1.. + am1 ym >= c1 a12 y1 + a22 y2 + . .. + a2n xn <= b2 . Dualni problem Neka je zadan problem LP u standardnoj formi: Maksimizirati Z = c1x1 + c2x2 + ͙ + cnxn (2. (2. + a1n xn <= b1 a21 x1 + a22 x2 + . 2. (2.6) Ovako zadan problem LP se naziva dualni problem ili dual. cj. + amn ym >= cn i y1 >= 0.......5) a1n y1 + a2n y2 + . m. dualni zadatak koji je u određenom odnosu prema primalu i ima isto rješenje kao i primal. + amn xn <= bm i x1 >= 0. Ovom zadatku odgovara tzv.. tj..2) am1 x1 + am2 x2 + . dual dualnog problema je jednak primalu.. 5.... ͙. Odnos između primala i duala je simetričan. U matrično vektorskom obliku: Primal MaxZ = cTx Ax <=b x >= 0 Između primala i duala postoje sljedeći odnosi: Dual MaxY = bTy ATy >=c y >= 0 63 .. j = 1.. ͙. bi za i = 1.4) pod uvjetom da bude zadovoljeno a11 y1 + a21 y2 + .1) pod uvjetom da bude zadovoljeno a11 x1 + a12 x2 + . dualni problem ili dual: Minimizirati Y = b1 y1 + b2 y2 + ͙ + bm ym (2..n. y2 >= 0... x2 >= 0.Ako je u nekom baznom dopustivom rješenju bar jedana od baznih promjenljivih jednaka nuli tada je to degenerirano bazno dopustivo rješenje.3) gdje su aij.4.. LINEARNO PROGRAMIRANJE DUALNI PROBLEM Svakom zadatku LP (primal) se može pridružiti tzv. ym >= 0 (2..

y3 ш 0 Za ovakve zadatke LP ʹ maksimizacija funkcije cilja sa ograničenjima ч i minimizacija funkcije cilja sa ograničenjima ш ʹ kaže se da su zadaci u simetričnom obliku.1). x2 ш 0 ima dual Min Y = 6 y1 + 18 y2 + 24 y3 y1 + 3 y3 ш 5 2 y2 + 2 y3 ш 2 y1. minimizacija funkcije Z = maksimizacija funkcije ʹ Z T2.2) i (2.3) on se može svesti na taj oblik sljedećim jednostavnim transformacijama: T1. nema uslova za xj = smjena xj = xjΏ . (2. ograničenje tipa ш = množenjem obje strane sa -1 dobije se ч T3. uslov xj ч 0 = smjena xj͛ = -xj i xj͛ ш 0 64 . Ako zadatak nije zadan u obliku (2.1.4. (Simetrični dual) Zadatak Max Z = 5 x1 + 2 x2 x1 ч 6 2 x2 ч 18 3 x1 + 2 x2 ч 24 x1.minimizacija funkcije cilja duala odgovara maksimizaciji funkcije cilja primala i dalje broj promjenljivih duala = broj ograničenja primala broj ograničenja duala = broj promjenljivih primala matrica ograničenja duala = transponovana matrica ograničenja primala koeficijenti funkcije cilja duala = desne strane ograničenja primala desne strane ograničenja duala = koeficijenti funkcije cilja primala Primjer 2. y2.xj¯ gdje je xjΏш0 i xj¯ш 0 T5. ograničenje tipa = = dva ograničenja tipa ч i ш T4.

2. (Dual općeg oblika) Zadatku 65 . može se dokazati da je dual dualnog zadatka (2. i T3.5) i (2.1.6) jednak primalnom zadatku (2.x1 ч -6 2 x2 ч 18 -3 x1 .2) i (2. T2. (2. pravila dobijanja duala iz duala. (2. svodi na ekvivalentni simetrični oblik Max Z = 5 x1 + 2 x2 x1 ч 6 .4. Mogu se izvesti i pravila prevođenja zadatka LP koji nije zadan u obliku (2.4). Primjer 2.. x2 ш 0 Sada je njegov dual Min Y = 6 y1 ʹ 6 y2 + 18 y3 ʹ 24 y4 y1 ʹ y2 + 3 y4 ш 5 2 y3 ʹ 2 y4 ш 2 y1.1).3. Prema ovim pravilima tipovi ograničenja u dualu zavise od znaka promjenljivih primala.3). y2. tj. što kao rezultat daje primal. Ova pravila su simetrična tako da i za ovako formiran dual vrijede ista pravila. (2. dok znakovi promjenljivih duala zavise od tipova ograničenja primala. (Svođenje primala na simetrični oblik) Zadatak Max Z = 5 x1 + 2 x2 x1 = 6 2 x2 ч 18 3 x1 + 2 x2 ш 24 x1. y4 ш 0 Primjenom transformacija T1. Pravila za određivanje tipova ograničenja i ograničenosti znakova promjenljivih dati su u Tabeli 2.2) i (2.2 x2 ч -24 x1.4. x2 ш 0 se korištenjem T2.1). i T3. y3.4.3) u dual.Primjer 2.

Ako u Primjeru 2.1/3) što je dopustivo rješenje duala dobićemo: Z(x) = 30 < 62 = Y(y) Što znači da maksimum funkcije nije veći od 62 a minimum nije manji od 30. Slaba dualnost Ako je x dopustivo rješenje primala a y dopustivo rješenje duala.1. tada je Z(x) ч Y(y) Ovo svojstvo određuje gornju granicu Y(y) maksimalne vrijednosti funkcije cilja primala. y3 ч 0 Uvođenjem smjena y1 = y1Ώ ʹ y1¯ y3͛ = ʹ y3 gdje je y1Ώ ш 0 y1¯ ш 0 y3͛ ш 0 ovaj se zadatak može svesti na ekvivalentni zadatak LP Min Y = 6 y1Ώ ʹ 6 y1¯ + 18 y2 ʹ 24 y3͛ y1Ώ ʹ y1¯ ʹ 3 y3͛ ш 5 2 y2 ʹ 2 y3͛ ш 2 y1Ώ. y3͛ ш 0 Osnovni rezultati teorije dualnosti Teorija dualnosti izučava matematička svojstva odnosa primala i duala. y1¯. odnosno donju granicu Z(x) duala. izaberemo x(6. Svojstvo 2.4. 66 .1. y2.4.0) što je dopustivo rješenje primala i y(6.1. x2 ш 0 primjenom pravila odgovara dual Min Y = 6 y1 + 18 y2 + 24 y3 y1 + 3 y3 ш 5 ʹ> x1 2 y2 + 2 y3 ш 2 ʹ> x2 y1 ʹ neograničeno po znaku y2 ш 0.Max Z = 5 x1 + 2 x2 x1 = 6 <ʹ y1 2 x2 ч 18 <ʹ y2 3 x1 + 2 x2 ш 24 <ʹ y3 x1.

Ako je xj izravnavajuća promjenljiva oduzeta od i-tog ograničenju primala tada je yi*=cj* 3.5.n.4. Ako je x dopustivo rješenje primala koje nije optimalno i ako je Z(x) = Y(y) tada tačka y nije dopustivo rješenje duala. Ako je x dopustivo rješenje primala. Ako je funkcija cilja primala neograničena odozgo u njegovoj dopustivoj oblasti.5. Svojstvo 2.2.4.Svojstvo 2. Ako je funkcija cilja duala neograničena odozdo u njegovoj dopustivoj oblasti. Ako je xj izravnavajuća promjenljiva dodana i-tom ograničenju primala tada je yi*=-cj* 2. Iz ovog svojstva. 67 . a.....4. Ako je xj vještačka promjenljiva dodana i-tom ograničenju primala tada je yi*=-M-cj* tada je y* optimalno rješenje duala Pri tom y* zadovoljava i uslov: 4. Iz ovog svojstva slijedi da se koordinate optimalnog rješenja duala mogu direktno ustanoviti na osnovu elemenata iz reda ʹf optimalne simpleks tabele primala koje odgovaraju promjenljivim iz njegove početne baze.ym*) zadovoljavaju sljedeće uslove: 1.2. tada je dopustiva oblast primala prazna. b.3.4. primal nema optimalno rješenje ako i samo ako dual nema optimalno rješenje.0. Ovo svostvo omogućuje da se za data rješenja primala i duala utvrdi da su ona optimalna bez rješavanja ovih zadataka. Dovoljno je dokazati da je Z(x) = Y(y) Tako je za dopustiva rješenja x=(6.. slijedi da ako su dopustive oblasti primala i duala neprazne. Usljed simetričnosti primala i duala dovoljno je Simpleks metodom riješiti jedan od ova dva zadatka i zatim pomoću svojstva (2. gdje je Aj j-ta kolona matrice ograničenja primala. (Komplementarnost optimalnih rješenja primala i duala) Ako koordinate tačke y*=(y1*.. Pošto praktična efikasnost Simpleks metode više zavisi od broja ogra-ničenja m nego od broja promjenljivih n onda je preporučljivo rješavati dualni zadatak uvjek kada je m > n. Primal ima optimalno rješenje ako i samo ako dual ima optimalno rješenje. Svojstvo 2.) ustanoviti rješenje drugog zadatka. tada je dopustiva oblast duala prazna. cj*=cj ʹ Aj y* za j = 1. oba problema imaju optimalno rješenje. tačke x i y su optimalna rješenja ovih zadataka. y je dopustivo rješenje duala i Z(x) = Y(y). Prema ovom svojstvu.4..y2*..4.3) i y = (2. Svojstvo 2.1) Z(x) = Y(y) = 36 Pa ona predstavljaju optimalna rješenja ovih zadataka.

x2 ш 0 y1.Svojstvo 2. tada Yk nije dopustivo rješenje duala.5. i = 1.4.4... (Komplementarnost rješenja primala i duala) Ako je Yk tačka čije su koordinate yk i. Ovo svojstvo znači da se u svakoj tabeli primala može odrediti tačka koja je komplemen-tarna baznom dopustivom rješenju. (Komplementarnost rješenja) Primal Dual Max Z = 5 x1 + 2 x2 Min Y = 6 y1 + 18 y2 + 24 y3 x1 ч6 y1 + 3 y3 ш 5 2 x2 ч 18 2 y2 + 2 y3 ш 2 3x1 + 2 x2 ч 24 x1. Na ovom svojstvu se bazira Dualna simpleks metoda. Početna simpleks tabela: Izbor vodeće vrste i kolone 68 . y3 ш 0 Sada se za primal mogu uraditi simpleks tabele. y2. Primjer 2. 2.6.4. tada Yk i ckj zadovoljavaju uslov(4) ovog svojstva i vrijedi da je: Z(Xk) = Y(Yk) Ako Xk nije optimalno rješenje primala. a nedopustiva je u odnosu na dual osim kada je optimalna. m. .. određene pomoću valičina ckj prema (1)-(3) iz svojstva 2.4.

v1. y3. y5.y5 + v2 = 2 y1. y4. y2.Koeficijenti tekuće vrijednosti funkcije cilja Rješenje duala Y = 6 y1 + 18 y2 + 24 y3 + 0 y4 + 0 y5 + M v1 + M v2 y1 + 3 y3 . v2 ш 0 69 .y4 + v1 = 5 2 y2 + 2 y3 .

Uvodi se smjena u funkciji cilja: v1 = 5 ʹ y1 ʹ 3 y3 + y4 v2 = 2 ʹ 2 y2 ʹ 2 y3 + y5 Sada je funkcija cilja: Y = (6 ʹ M) y1 + (18 ʹ 2M) y2 + (24 ʹ 5M) y3 + + M y4 + M y5 + 0 v1 + 0 v2 + 7M pa se može formirati simpleks tabela. Simpleks tabele za dual. Simplex tabela br.: 2 70 . Početna simpleks tabela: Simpleks tabele za dual. Simplex tabela br.: 1 Simpleks tabele za dual.

: 3 Promjenljive y4 i y5 su dodatne (izravnavajuće) promjenljive oduzete od prvog odnosno drugog ograničenja a v1 i v2 su vještačke promjenljive dodane na ova ograničenja. tada je prema 3. Simplex tabela br. optimalno rješenje primala određeno sa x1* = 6 i x2* = 3 71 . za slučaj minimizacije.Simpleks tabele za dual. iz svojstva 2.4.5. Pošto v1 i v2 čine početnu bazu.

3) se u pravilu interpretira kao problem . (2. prema (2. Ovo zaključivanje vrijedi ako je i-to ograničenje aktivno i ako optimalno rješenje duala ostane nepromjenjeno pri povećanju resursa za ɸ. Određenu informaciju u tom smislu na daje optimalno rješenje y* = (y1*. a cj je zarada po jedinici j-tog proizvoda. aij je količina resursa i koji se troši za proizvodnju jedne jedinice proizvoda j. Prema ograničenjima dualnog zadatka taj trošak ne može biti manji od profita po jedinici proizvoda ck. y2*.optimalne raspodjele . ym*) dualnog zadatka.1)...ograničenih resursa .Ekonomska intepretacija dualnog problema Primalni problem (2. Pretpostavimo da je potrebno ispitati uticaj povećanja raspoložive količine resursa bi na maksimalni profit. pa se naziva ͞cijena u sjeni͟. dimenzija za yi je ʹ novčana jednica po jedinici resursa. slobodni član b1 poveća sa 6 na 7 optimalno rješenje duala ostaje isto dok je novo rješenje primala x1* = 7 i x2* = 2/3 a maksimalni profit je Z* = 38 Maksimalni profit se povećao za y1* · ѐb1 = 2 · (7-6) = 2 Dualna simplex metoda Simpleks metoda.5) umnožak aij yi ima istu dimenziju. Ako bi se raspoloživa količina resursa bi... + am2 yk ш ck iz (2. bi je raspoloživa količina resursa i. Ako se u Primjeru 2. Funkcija cilja duala Y = b1 y1 + b2 y2 + ͙ + bm ym dakle. predstavlja vrijednost ukupno utrošenog resursa pa je cilj minimizirati ovaj trošak. Tim rješenjima odgovara niz komplementarnih rješenja duala koja nisu dopustiva sa stanovišta primala sve do dolaska u optimalnu tačku. Tako promjenljiva xj može predstavljati količinu j-tog proizvoda koji treba proizvesti.4.5) predstavlja vrijednost svih resursa utrošenih u proizvodnju jedne jedinice proizvoda k.. koji je u primalnom zadatku potpuno iskorišten. Lijeva strana izraz a1k y1 + a2k y2 + . povećala za ɸ tada bi se ukupna dobit Z povećala za ɸ·yi*.2) i (2.4. kroz iteracije. Kako je dimenzija za aij ʹ jedinica resursa i po jedinici proizvoda j. Veličina yi je u određenom smislu mjera dobiti koja bi se mogla ostvariti pri jediničnom povećanju količine resursa i. . Veličina cj ima dimenziju ʹ novčana jedinica po jedinici proizvoda tada.na određene aktivnosti . 72 . generira niz baznih dopustivih rješenja dok se ne zadovolji kriterij optimalnosti za tekuću funkciju cilja.

4. y2. -5. y5 ш 0 Baza je Bo = (y4.5. 0.4. Primjer 2. y3. dualnu simpleks metodu. 0. da tražimo: max Z͛ = ʹ 6y1 ʹ 18y2 ʹ 24y3 Simpleks tabele za dualnu metodu Početna simpleks tabela: 73 . y5) koja je dualno dopustiva ali nije primalno jer početno bazno rješenje sadrži negativne komponente: yo = (0. y4.Na toj ideji se bazira dualna simplex metoda koja polazi od komplementarnog dualnog zadatka kod kojeg promjenljive nisu ograničene po znaku.5. Zadatak je dat u obliku: Da bi se dobio dualno dopustivi zadatak dodaćemo u dualna ograničenja negativne dopunske promjenljive: y1 + 3 y3 ʹ y4 = 5 2 y2 + 2 y3 ʹ y5 = 2 Kada se pomnože ova ograničenja sa -1 dobiće se dualni zadatak u obliku: Min Y = 6 y1 + 18 y2 + 24 y3 ʹ y1 ʹ 3 y3 + y4 =ʹ5 ʹ 2 y2 ʹ 2 y3 + y5 = ʹ 2 y1. Primjenićemo na zadatak iz Primjera 2. tj. -2) Sada možemo postaviti početnu simplex tabelu uz pretpostavku da funkciji cilja promjenimo znak.

nju ćemo izbaciti iz baze. Taj postupak se pimjeni na simpleks tabelu. Taj odnos za ulazne nebazne promjenljive je: y1 = -6/-1 = 6 y3 = -24/-3 = 8 Pa se za ulaznu baznu promjenljivu bira y1.Pošto se traži maksimum funkcije cilja a svi koeficijenti tekuće funkcije cilja su negativni ili nula to bi trebalo značiti da je postignut maksimum. Rješenje koje je nemoguće a zadovoljava kriterij optimalnosti zovemo superoptimalnim. Pošto je promjenljiva y5 ͞negativnija͟ i više doprinosi ͞nemogućnosti rješenja͟. bazne promjenljive y4 i y5 su negativne što znači da je rješenje nemoguće. Smanjenje apsolutne vrijednosti negativne promjenljive se može kompenzirati porastom apsolutne vrijednosti neke od nebaznih promjenljivih koje imaju negativni predznak. S druge strane. Sada se može pokušati zadatak napraviti mogućim tako što ćemo negativne promjenljive izbaciti iz baze. To su u ovom slučaju y1 i y3. Za ulaznu baznu promjenljivu ćemo odabrati onu koja ima po apsolutnoj vrijednosti manji odnos koeficijenta funkcije cilja i negativnog koeficijenta u redu izlazne bazne promjenljive. 74 .

Sada su rješenja primalno dopustiva a svi su koeficijenti u tekućoj funkciji cilja manji ili jednaki nuli.optimalno rješenje y = (2.Z͛ Dobije se za dual: . 0. 1. 0. Pošto je Y = . yi i zi daju: 75 . 0) .baza optimalnog rješenja B = (y1.optimalna vrijednost funkcije cilja Y = 36 (Karuš) Kuhn Tucker-ovi množitelji i dualni metod Da bi se primijenio metod (Karuš) Kuhn Tucker-ovih množitelja primal se može napisati u obliku (da bi svi dopustivi množi-telji bili nenegativni sva ograničenja će se prevesti u tipa ш): Max Z = 5 x1 + 2 x2 ʹx1 ʹ z12 + 6=0 2 ʹ 2 x2 ʹz2 + 18 = 0 ʹ 3 x1 ʹ 2 x2 ʹ z32 + 24 = 0 x1 ʹ z42 =0 2 x2 ʹ z5 =0 Sada se mogu uvesti množitelji yi pa se dobije proširena funkcija: Max Zpr = 5 x1 + 2 x2 + y1 (ʹx1 ʹ z12 + 6) + + y2 (ʹ2 x2 ʹ z22 +18) + + y3 (ʹ3 x1 ʹ 2 x2 ʹ z32 + 24) + + y4 (x1 ʹ z42 ) + + y5 (x2 ʹ z52 ) Parcijalni izvodi po xj. dobili smo dopustivi maksimum funkcije cilja Z͛. y3) .

Iz ovih jednačina se može vidjeti: 1. Dva množitelja moraju biti različiti od nula (broj aktivnih ograničenja odgovara broju dimenzija) a ostali mogu biti nula 76 . a množitelji uz ograničenja ш moraju biti veći ili jednaki nuli 2. Početno rješenje primala je dato sa odnosno. tako da ͞izvorni zadatak͟ može imati dva oblika koji odgovaraju primalu odnosno dualu. Parcijalni izvodi po zi su ͞KuhnTucker-ovi uvjeti͟ iz kojih se vidi da kad je promjenljiva z1 # 0 tada je odgovarajuća promjenljiva yi jednaka nuli i obratno. U ovako datom zadatku mora biti: 1. odnosno ako je ograničenje neaktivno odgovarajući množitelj je jednak nuli jer ono ne utiče na optimalno rješenje 4. Na promjenljive x1 i x2 je postavljen uvjet nenegativnosti a na promjenljive yi nije 3. y2 i y3 ograničenjima primala. Parcijalni izvodi po x1 i x2 odgovaraju ograničenjima duala a po y1. Ovaj zadatak može biti riješen specifičnim korištenjem metoda KuhnTacker-a. Drugim rječima kada je zi = 0 to znači da je odgovarajuće ograničenje aktivno pa je njegov množitelj raličit od nule. Množitelji uz ograničenja ч moraju biti manji ili jednaki nuli. 2. uvrštavajući vrijednosti za y1. y2 i y3 u prve dvije jednačine dobije se: y4 = -5 y5 = -2 prvo nedopustivo rješenje duala po dualnoj metodi.

Iz predhodnog početnog reješenja slijedi da su aktivna ograničenja 4 i 5 (ograničenja na pozitivnost promjen-ljivih). dobićemo: 77 . Ako sada stavimo da je y4 = 0 kao množitelj koji najviše ͞odstupa͟. a stavimo da je z1 = 0 kao novo aktivno ograničenje.

78 .

količine proizvoda smještene u skladištima .5. službi. mEđu kojima su značajni rezultati sovjetskog naučnika L. i objavili metodu danas poznatu kao metoda ͣskakanja s kamena na kamen͞ (Stepping Stone Method). 79 . . Naziv ovog problema potiče od toga što su se prvo rješavali problemi transporta ʹ naći minimalne troškove transporta kroz zadanu transportnu mrežu i uz zadana transportna sredstva. Charnes i Cooper su 1953. godine objavili metodu za rješenje TP poznatu kao metoda Forda&Fulkerson. Dantzig je objavio rješenje bazirano na simpleks množiteljima. skladišta. Nekako u isto vrijeme. Pri tom su poznate : .. PROBLEM RASPOREĐIVANJA ‡ Postavka zadatka ‡ Matematički model ‡ Mađarska metoda 2. Postavka zadatka Pronalaženje optimalnog plana transporta se najčešće svodi na zadatak transporta jedne vrste proizvoda iz određenog broja mjesta skladištenja u određeni broj mjesta potrošnje uz minimalne troškove. da zbog svoje specifične strukture. postrojenja. Vogel je predložio aproksimativnu metodu za nalaženje početnog rješenja.6. TRANSPORTNI PROBLEM ‡ Postavka zadatka ‡ Matematički model ‡ Metoda ͞sjeverozapadnog ugla͟ (određivanje početnog dopustivog rješenja) ‡ Stepping Stone Method ʹ Metoda ͞skakanje s kamena na kamen͟ (nalaženje optimalnog rješenja) 2. Pokazalo se da je transportni problem njegov specijalan slučaj i da može biti riješen nekom od metoda za rješavanje zadatka LP. V.5. također. TRANSPORTNI PROBLEM. LINEARNO PROGRAMIRANJE. pokazalo se. energetskih objekata.količine proizvoda koje potražuju mjesta potrošnje . L. Međutim. Tim se problemom bavilo više poznatih istraživača.2. veliki istraživački napori i rezultati su bili vezani za zadatak linearnog programiranja..1. Hitchcocka-a iz 1941 godine. prodajnih objekata.5. god. Međutim danas se u ove probleme uključuju zadaci optimalnog razmje-štanja mašina.1. PROBLEM RASPOREDJIVANJA 2. servisa. Kantroviča iz 1939 i američkog naučnika F. Ford i Fulkenson su 1956. TRANSPORTNI PROBLEM Izučavanja problema transporta primjenom anali-tičkih metoda potiče iz polovine prošlOg stoljeća. zadatak transporta može biti riješen i efikasnijim motodama.jedinični troškovi transporta iz bilo kojeg mjesta skladištenja u bilo koje mjesto potrošnje .

2.͙.2.͙.2.͙.2.Pri definiranju matematičkog modela transportnog problema uobičajeno se koristi sljedeće obilježavanje: m ʹ broj ishodišta (skladišta) n ʹ broj odredišta (mjesta potrošnje) ai.2.n ʹ količine koje treba prevesti iz ishodišta i u odredište j Raspložive količine ai i potraživane količine bj moraju biti pozitivne veličine dok su jednični troškovi transporta cij i prevezene količine xij u pravilu nenegativni: ai > 0 bj > 0 i = 1.n xij ш 0 i = 1.m j = 1.͙.m i j = 1.n Pored toga.m i j = 1.n cij ш 0 i = 1.͙.m ʹ količine proizvoda u ishodištima bj.2.͙.2. i = 1.͙. i = 1.n ʹ količine koje potražuju odredišta cij.͙.2.͙. i = 1. j = 1.m i j = 1.2. pretpostavlja se da je ukupna raspoloživa količina jednaka ukupnoj potraživanoj količini: 80 .͙.2.m i j = 1.2.͙.n ʹ jedinični troškovi transporta iz ishodišta i u odredište j xij.͙.2.

5.2) i (2.2) i (2. Dakle.5.3) dobije se: Pošto je: Postoji linearna zavisnost sistema jednačina (2.5. matrica ograničenja je dimenzija (m+n)x(m·n) i specijalnog je oblika. Sumiranjem lijevih i desnih strana ograničenja (2.5.Ukupan broj promjenljivih xij je m·n dok je broj jednačina m+n.3) tako da je broj linearno nezavisnih ograničenja 81 .

r=m+n-1 Prema tome. zadovolji potražnja odredišta. moguće je razviti efikasnije algoritme. bazno rješenje TP ima (m + n -1) baznih elemenata. odnosno. TP je moguće riješiti pomoću simpleks algoritma. Većina do sada razvijenih metoda pretpostavlja da je nekim drugim postupkom već određeno početno dopustivo rješenje. Posupak se završava kada se rasporede sve zalihe odnosno zadovolji sva tražnja 82 . Preostala količina se dalje dodjeljuje sljedećoj promjenljivoj (x12 ako je a1>b1. odnosno. Promjenjliva x11 dobija maksimalnu vrijednost koja je ograničena manjim od kapaciteta a1 i b1 b. medjutim. Zato je razvijen veći broj metoda za određivanje početnog dopustivog rješenje kao na primjer: ‡ ‡ ‡ metoda ͞sjeverozapadnog ugla͟ metoda najmanjeg elementa u matrici cijena Vogelova aproksimativna metoda Metoda ͞sjeverozapadnog ugla͟ (određivanje početnog dopustivog rješenja) Dodjeljivanje vrijednosti promjenljivim počinje od gornjeg lijevog ugla (sjeverozapad na geofrafskim kartama). Postupak se nastavlja pražnjenjem zalihe odnosno zadovoljavanjem potražnje. na sljedeći način: a. koristeći specifičnu strukturu TP. x21 ako je b1>a2) dok se ne istroši raspoloživa zaliha ishodišta. c.

.. 83 .Raspodijeljene su sve zalihe i zadovoljene sve potrebe. Algoritam se zaustavlja kada se pri određenoj raspodjeli ne može naći nijedno polje koje smanjuje ukupni trošak transporta. Metod se primjenjuje tako što se iz svakog praznog polja tekućeg rješenja formira pravougaoni poligon čiji ostali vrhovi leže u popunjenim poljima. distributivni metod. Za ovu metodu je potrebno predhodno odrediti početno dopustivo rješenje što se može uraditi bilo kojom od naprijed pomenutih metoda za nalaženje početnog dopustivog rješenja.. Osnova ideje ove metode je u tom. metod šahovke kule. Troškovi polaznog rješenja su: 90 · 8 + 10 · 9 + 115 · 9 + 5 · 5 + 75 · 7 + 65 · 4 = 2655 Stepping Stone Method ʹ Metoda ͞skakanje s kamena na kamen͟ (nalaženje optimalnog rješenja) Pored ovog naziva. ispituje se da li bi uključenjem trans-porta na to polje ukupni trošak porastao ili bi ostao isti ili bi se smanjio. tj. ova metoda se u literaturi može naći i pod nazivima ʹ metod raspodjele. Za svako prazno polje se može formirati samo jedan poligon koji može imati najmanje 4 a najviše m+n vrhova. izvrši se promjena tekuće raspodjele vodeći pri tom računa da se ne naruši dopustivost rješenja. da se u tekućem dopustivom rješenju ispituju nezauzeta polja. Na osnovu poligona izračunavamo relativne koeficijente troškova koji pokazuju za koliko će se promijeniti ukupni troškovi ako u prazno polje uvrstimo jednu jedinicu prevezene robe. Kada se nađe polje čije uključenje u transport smanjuje ukupni trošak.

5. tekuće rješenje se mijenja tako da se transport ͞praznog polja͟ uveća što je više moguće a da se pri tom ne naruši dopustivost rješenja. Razmotrićemo predhodni zadatak sa početnim dopustivim rješenjem koje je određeno metodom ͞sjevero-zapadnog ugla͟: Troškovi polaznog rješenja su: Z = 90 · 8 + 10 · 9 + 115 · 9 + 5 · 5 + 75 · 7 + 65 · 4 = 2655 Relativni koeficijenti troškova su: d13 = c13 ʹ c12 + c22 ʹ c23 = 4 ʹ 9 + 9 ʹ 5 = ʹ 1 d14 = c14 ʹ c12 + c22 ʹ c23 + c33 ʹ c34 = =6ʹ9+9ʹ5+7ʹ4= 4 d21 = c21 ʹ c22 + c12 ʹ c11 = 6 ʹ 9 + 9 ʹ 8 = ʹ 2 d24 = c24 ʹ c23 + c33 ʹ c34 = 3 ʹ 5 + 7 ʹ 4 = 1 84 . Primjer 2. Ako postoji makar jedan poligon koji umanjuje ukupni trošak.2.Relativni koeficijenti troškova se izračuna-vaju tako što se jedinični troškovi naiz-mjenično uvećavaju i umanjuju za cijene koje koje se nalaze u vrhovima poligona.

x12 = 10+75 = 85. U ovom slučaju najmanji koeficijent troškova se dobije za d31 i d32. najveća moguća promjena odgovara najmanjoj vrijednosti u poljima koja se umanjuju.d31 = c31 ʹ c33 + c23 ʹ c22 + c12 ʹ c11 = =5ʹ7+5ʹ9+9ʹ8=ʹ5 d32 = c32 ʹ c33 + c32 ʹ c22 = 6 ʹ 7 + 5 ʹ 9 = ʹ 5 Pošto relativni koeficijenti troškova predstavljaju promjenu ukupnih troškova ako bi se izvršila promjena rasporeda transporta po navedenim poljima poligona za jednu jedinicu transportovane robe. Količine transporta u vrhovima izabranog poligona su sljedeće: Pošto uvećanju transporta u jednom polju odgovara uma-njenje u poljima koja su s njim u istom redu i u istoj koloni. x22 = 115 i x33 = 75. Može se odabrati bilo koji. x22 = 115ʹ75 = 40. Polja koja se umanjuju su x11 = 90. x33 = 75ʹ75 = 0. x23 = 5+75 = 80. tako da biramo koeficijent d31. To znači da ćemo uvećati transport iz S1 u P3 što je moguće više a da pri tom ne narušimo dopusti-vost zadatka. Dakle najveća moguća promjena transporta je 75 pa će sada vrijednosti transporta po poligonu biti: x31 = 0+75 = 75. x11 = 90ʹ75 = 15 Novi dopustivo rješenje je sada 85 . najveće umanjenje troškova se može očekivati ako izvršimo promjenu transporta po poligonu za koji se dobio ͞najnenegativniji͟ rezultat.

x11 = 15 i x34 = 65.Relativni koeficijenti troškova za prazna polja su: d13 = c13 ʹ c12 + c22 ʹ c23 = 4 ʹ 9 + 9 ʹ 5 = ʹ 1 d14 = c14 ʹ c11 + c31 ʹ c34 = 6 ʹ 8 + 5 ʹ 4 = ʹ 1 d21 = c21 ʹ c22 + c12 ʹ c11 = 6 ʹ 9 + 9 ʹ 8 = ʹ 2 d24 = c24 ʹ c22 + c12 ʹ c11 + c31 ʹ c34 = =3ʹ9+9ʹ8+5ʹ4=ʹ4 d32 = c32 ʹ c31 + c11 ʹ c12 = 6 ʹ 5 + 8 ʹ 9 = 0 d33 = c33 ʹ c31 + c11 ʹ c12 + c22 ʹ c23 = =7ʹ5+8ʹ9+9ʹ5= 5 ͞Najnegativniji͟ relativni koeficijent je d24. x31 = 75+15 = 90. Dakle najveća moguća promjena transporta je 15 pa će sada vrijednosti transporta po poligonu biti: x24 = 0+15 = 15. x11 = 15ʹ15 = 0. x22 = 40ʹ15 = 25. x34 = 65ʹ15 = 50 86 . Količine trans-porta u vrhovima izabranog poligona su sljedeće: Polja koja se umanjuju su x22 = 40. x13 = 85+15 = 100.

x22 = 25ʹ25 = 0 Relativni koeficijenti troškova za prazna polja su: d11 = c11 ʹ c12 + c32 ʹ c31 = 8 ʹ 9 + 6 ʹ 5 = 0 d13 = c13 ʹ c12 + c32 ʹ c34 + c24 ʹ c23 = 87 . x34 = 50ʹ25 = 25. Dakle najveća moguća promjena transporta je 25 pa će sada vrijednosti transporta po poligonu biti: x32 = 0+25 = 25. Količine trans-porta u vrhovima izabranog poligona su sljedeće: Polja koja se umanjuju su x34 = 50 i x22 = 25. x24 = 15+25 = 40.Relativni koeficijenti troškova za prazna polja su: d11 = c11 ʹ c12 + c22 ʹ c24 + c34 ʹ c14 = =8ʹ9+9ʹ3+4ʹ5= 4 d13 = c13 ʹ c12 + c22 ʹ c23 = 4 ʹ 9 + 9 ʹ 5 = ʹ 1 d14 = c14 ʹ c12 + c22 ʹ c24 = 6 ʹ 9 + 9 ʹ 3 = 3 d21 = c21 ʹ c24 + c34 ʹ c14 = 6 ʹ 3 + 4 ʹ 5 = 2 d32 = c32 ʹ c34 + c24 ʹ c22 = 6 ʹ 4 + 3 ʹ 9 = ʹ 4 d33 = c33 ʹ c34 + c24 ʹ c32 = 7 ʹ 4 + 3 ʹ 5 = 1 ͞Najnegativniji͟ relativni koeficijent je d32.

x24 = 40+25 = 65. x23 = 80ʹ25 = 55 Relativni koeficijenti troškova za prazna polja su: d11 = c11 ʹ c12 + c32 ʹ c14 = 8 ʹ 9 + 6 ʹ 5 = 0 d14 = c14 ʹ c13 + c23 ʹ c24 = 6 ʹ 4 + 5 ʹ 3 = 4 d21 = c21 ʹ c31 + c32 ʹ c12 + c13 ʹ c23 = 88 . x34 = 25 i x23 = 80. Količine trans-porta u vrhovima izabranog poligona su sljedeće: Polja koja se umanjuju su x12 = 100. x34 = 25ʹ25 = 0. Najveća moguća promjena transporta je 25 pa će sada vrijednosti transporta po poligonu biti: x13 = 0+25 = 25. x32 = 25+25 = 50.=4ʹ9+6ʹ4+3ʹ5=ʹ5 d14 = c14 ʹ c12 + c22 ʹ c24 = 6 ʹ 9 + 6 ʹ 4 = ʹ 1 d21 = c21 ʹ c24 + c34 ʹ c14 = 6 ʹ 3 + 4 ʹ 5 = 2 d22 = c22 ʹ c24 + c34 ʹ c32 = 9 ʹ 3 + 4 ʹ 6 = 4 d33 = c33 ʹ c34 + c24 ʹ c32 = 7 ʹ 4 + 3 ʹ 5 = 1 ͞Najnegativniji͟ relativni koeficijent je d13. x12 = 100ʹ25 = 75.

Količine trans-porta u vrhovima izabranog poligona su sljedeće: Polja koja se umanjuju su x31 = 90. x13 = 25+55 = 80. x32 = 50+55 = 105.=6ʹ5+6ʹ9+4ʹ5=ʹ3 d22 = c22 ʹ c23 + c13 ʹ c12 = 9 ʹ 5 + 4 ʹ 9 = ʹ 1 d33 = c33 ʹ c32 + c12 ʹ c13 = 7 ʹ 6 + 9 ʹ 4 = 6 d34 = c34 ʹ c32 + c12 ʹ c13 + c23 ʹ c24 = =4ʹ6+9ʹ4+5ʹ3= 5 ͞Najnegativniji͟ relativni koeficijent je d21. x12 = 75ʹ55 = 20. Najveća moguća promjena transporta je 55 pa će sada vrijednosti transporta po poligonu biti: x21 = 0+55 = 55. x12 = 75 i x23 = 55. x31 = 90ʹ55 = 35. x23 = 55ʹ55 = 0 Relativni koeficijenti troškova za prazna polja su: d11 = c11 ʹ c12 + c32 ʹ c14 = 8 ʹ 9 + 6 ʹ 5 = 0 d14 = c14 ʹ c12 + c32 ʹ c31 + c21 ʹ c24 = =6ʹ9+6ʹ5+6ʹ3= 1 89 .

sportskih disciplina.d22 = c22 ʹ c21 + c31 ʹ c32 = 9 ʹ 6 + 5 ʹ 6 = 2 d23 = c23 ʹ c21 + c31 ʹ c32 + c12 ʹ c13 = =5ʹ6+5ʹ6+9ʹ4= 3 d33 = c33 ʹ c32 + c12 ʹ c13 = 7 ʹ 6 + 9 ʹ 4 = 6 d34 = c34 ʹ c31 + c21 ʹ c24 = 4 ʹ 5 + 6 ʹ 3 = 2 Pošto su svi relativni koeficijenti troškova veći ili jednaki nuli. ovo rješenje je optimalno.). radnih mjesta. i = 1.2.m i j = 1. mašina..͙.͙.͙. novca.2. lokacija. sličan je problemu transporta.) na određeni broj mjesta (na kojima se mogu realizirati te aktivnosti ʹ poslova. Potrebno je naći takav raspored izvršilaca na određena mjesta koji će dati optimalni efekat (maksimum ili minimum) Pri definiranju modela raspoređivanja (asignacije) uobičajeno se koristi sljedeće obilježavanje: m ʹ broj izvršilaca n ʹ broj mjesta (radnih zadataka) cij. takmičara. .. prodavnica.n ʹ troškovi (dobiti) rasporeda izvršioca i na mjesto j xij. x11 = 0 x12 = 20 x13 = 80 x14 = 0 x23 = 0 x24 = 65 x34 = 0 x21 = 55 x22 = 0 x31 = 35 x32 = 105 x33 = 0 Z = 8 0 + 9 20 + 4 80 + 6 0 + 6 55 + 9 0 + 5 0 + 3 65 + 5 35 + 6 105 + 7 0 + 4 0 = 1830 2. pogona.2. PROBLEM RASPOREDJIVANJA Postavka zadatka Problem raspoređivanja (asignacije) je specijalan oblik zadatka LP a po strukturi i načinu rješavanja.Ako je izvršilac i raspoređen na mjesto j 90 .2. . studenata.5. jednom mjestu može biti dodijeljen samo jedan izvršilac Svaki konkretni raspored proizvodi određeni efekat (povećanje vrijednosti ili povećanje troška).n ʹ označava da li je izvršilac i raspoređen na mjesto j 1 . Pri tom jedan izvršilac može da bude raspore-đen na samo jedno mjesto.2.m i j = 1.͙. i = 1. Sam problem se predstaviti na sljedeći način: Rasporediti određeni broj izvršilaca (nekoga ili neče-ga što može da obavi ili proizvede neke aktivnosti ʹ radnika. ispita...

inače. ͙.628. n). tzv. broj mogućih kombinacija je n! pa se već za n = 10 dobije broj kombinacija jednak 3. odnosno fiktivni izvršilac. On se prevodi u zatvoreni. tada imamo otvoreni model raspoređivanja. 2. ovdje je specifično. Da bi se uravnotežio broj izvršilaca i mjesta. ͙. 91 .Ako izvršilac i nije raspoređen na mjesto j Matematički model problema raspoređivanja Ovako definiran model predstavlja poseban oblik modela LP. odnosno. Jasno je da je ovakav pristup neprimjenljiv za iole veće zadatke raspoređivanja. Metoda raspoređivanja za minimalnu vrijednost funkcije cilja ʹ mađarska metoda Problem raspoređivanja se može riješiti korištenjem više metoda koje su. što su ponude iz svih ishodišta jednake jedinici. uvođenjem fiktivnih promjenljivih. odnosno. (i = 1. Međutim. Da bi se problem raspoređivanja mogao riješiti potrebno je da broj izvršilaca i broj (radnih) mjesta bude jednak (m=n) Ako je n = m imamo zatvoreni model raspo-ređivanja.800. fiktivnog izvršioca cfj= 0. uvodi se fiktivno mjesto. Tada se uzima da je efikasnost fiktivnog mjesta cif = 0. to jest ako je m#n. (j = 1. Problem raspoređivanja se može riješiti i ispitivanjem svih mogućih kombinacija i biranjem one kombinacije koja daje najbolji rezultat. razvijene za rješavanje drugih problema (Linearno programiranje. 2. 0-1 programiranje. m). Ako nije jednak broj izvršilaca i mjesta. U odnosu na transportni model.xij = { 0 . transportni problem). sve potrebe odredišta su jednake jedinici.

Ta se nula označi a ostale nule u koloni sa označenom nulom se prekriže. Postupci a. danas se najčešće koristi metoda posebno razvijena za rješavanje problema raspoređivanja (mađarska metoda po tehnici Flooda). Zatim se. Označavaju se nule matrice na sljedeći način: a. Označe se strelicama kolone koje u ozna-čenim redovima imaju prekrižene nule 92 . Na taj način se u svakom redu dobije najmanje jedna nula. se ponavljaju dok sve nule ne budu označene ili prekrižene. Označe se strelicama redovi koji nemaju označene nule b. 3.Ovaj problem se može riješiti i metodom grananja (Branch and Bound) koja omogu-ćava ispitivanje samo onih kombinacija koje su po određenom kriteriju bolje od nekih drugih koje odbacujemo. Zadana matrica efikasnosti C se prevodi u matricu C͛ tako što se svi članovi svakog reda polazne matrice umanje za vrijednost najma-njeg elementa tog reda. matrica C će biti: Smatra se da je efikasnost veća što je koeficijent cij manji. Na taj način formirana matrica sadrži najmanje po jedan nulti element u svakoj vrsti i u svakoj koloni. i b. Međutim. Postupak se zasniva na korištenju matrice efikasnosti (troškova) C čiji su elementi koeficijenti funkcije cilja. Proizvodi se nova matrica slijedećim postupkom: a. b. Ako se u svakom redu i u svakoj koloni nalazi po jedna označena nula postupak je završen. nalaze se redovi koji imaju samo jednu nulu. Polazeći od prvog reda matrice. Isti postupak se primjeni na kolone. Ako se pretpostavi da je broj izvršilaca i broj mjesta jednak. u tako dobijenoj matrici. Postupak se realizira kroz tri koraka: 1. svi članovi svake kolone umanje za vrijednost najmanjeg elementa te kolone. 2. Ovaj postupak se sprovodi dok ima redova sa jednom neoznačenom nulom. U suprotnom prelazi se na korak 3.

koja sadrži n zaokruženih nula. dok se lanac ne zatvori e.3. Zaokružene nule označavaju varijable čije su vrijednosti jednake jedinici (xij = 1). nastavlja se sa korakom 3. Primjer 2. Ponavljaju se postupci b. Na ovako dobijenu matricu primjenjuje se korak 2. dakle. Povuku se linije kroz neoznačene redove i označene kolone. Formira se nova matrica. i to se nastavlja dok se ne nađe optimalno rješenje. kroz svaku označenu nulu (asignaciju) mora prolaziti jedna linija.5. tj. tako što se najmanji nepokriveni (neprecrtan linijom) element cij predhodne matrice: (1) oduzme od svakog nepokrivenog elementa elementima koji se nalaze na (2) doda svakom elementu dva puta prekriženom.c. i c. Naći optimalno rješenje problema raspo-ređivanja za sljedeću matricu koštanja: Rješenje Sve članovi svakog reda polazne matrice umanje se za vrijednost najmanjeg elementa tog reda 93 . presjeku dviju linija Elementi prekriveni jednom linijom se prepišu u novu matricu. Označe se redovi koji imaju označenu nulu u označenoj koloni d. treba da dobijemo onoliko linija koliko imamo označenih nula f. Ako se ne nađe optimalno rješenje. Ostale varijable xij imaju vrijednost nula. iz nje se može odrditi optimalno rješenje. Kada se dobije matrica sa potpunom asignacijom.

nalaze se redovi koji imaju samo jednu nulu.Svi članovi svake kolone ove matrice umanje se za vrijednost najmanjeg elementa te kolone Polazeći od prvog reda matrice. naime izvršilac 4 i posao 5 nisu raspodjeljeni. Ta se nula označi a ostale nule u koloni sa označenom nulom se prekriže. Isti postupak se uradi i sa kolonama dok sve nule ne budu obilježene ili prekrižene. Sada strelicama označimo redove koji nemaju označenih nula i kolone koje u označenim redovima imaju prekrižene nule 94 . Postupak nije završen jer nemamo 5 obilježenih nula.

b. Ponavljaju se postupci dok u označenim redovima ima prekriženih nula Povuku se linije kroz neoznačene redove i označene kolone. tj.. Isti postupak se primjeni na kolone. dakle. nalaze se redovi koji imaju samo jednu nulu i ta se nula označi a ostale nule u koloni sa označenom nulom se prekriže.Označe se redovi koji imaju označenu nulu u označenoj koloni. treba da dobijemo onoliko linija koliko imamo zaokruženih nula Primjenjuje se Korak 2. 95 . kroz svaku zaokruženu nulu (asignaciju) mora da prolazi jedna i samo jedna linija.

Dobili smo optimalno rješenje: x11 = 1 x24 = 1 x35 = 1 x43 = 1 x52 = 1 Z = c11 + c24 + c35 + c43 + c52 = = 11 + 6 + 16 + 17 + 10 = 60 96 .

da li zasijati određenu kulturu. vozila. da neke ili sve promjenljive moraju biti cjelobrojne. . S druge strane. LP daje rezultate koji se uspješno primjenjuju u praksi Međutim. Algebarski izrazi funkcije cilja i ograničenja u ova dva tipa problema. u nekim primjenama linearnog progra-miranja. nisu uvjek u potpunosti ispunjene. . Iako formulacije cjelobrojnih problema programiranja često izgledaju vrlo slično nekim kontinualnim problemima programiranja. . u konkretnim problemi-ma. nalaženje optimalnog rješenja za odgovarajući cjelobrojni zadatak obično zahtijeva eksponencijalno računarsko vrijeme. ali dodatna ograničenja. pojedine ili sve strukturne prom-jenljive mogu imati samo cjelobrojne vrijednosti.. broj mašina. Tako. da li izvršiti investiranje u određeni projekat. CJELOBROJNO LINEARNO PROGRAMIRANJE U naprijed razmatranom modelu LP su uključene sljedeće pretpostavke: ‡ ‡ ‡ ‡ ‡ Veze između promjenljivih su linearne Parametri su konstantni Ne javljaju se slučajne varijable Postoji samo jedna funkcija kriterija Upravljačke promjenljive su neprekidne nenegativne veličine Iako ove pretpostavke. zvršilaca. kada promjeljive mogu dobiti samo vrijednosti 0 ili 1. proizvodnih pogona. imaju sličan oblik. Na primjer. postoje slučajevi gdje bi se zaokruživanjem pravile grube greške.. Takvi slučajevi su tipični za situacije donošenja odluka o tome da li nešto uraditi ili ne ʹ da li izgraditi tvornicu. 97 . .. Ako se radi o relativno velikim brojevima.7. čine cjelobrojne probleme znatno težim. dok opći problem LP može biti riješen u polinominalnom vremenu. sličnost je na neki način zabluda. CJELOBROJNO LINEARNO PROGRAMIRANJE (1) 3. To se dešava kada su vrijednosti cjelobrojnih rezultata relativno male ili u ekstremnom slučaju.. Mnogi problemi cjelobrojnog programiranja su klasificirani kao teški (hard) optimi-zacioni problemi. pogreške zaokruživanja su relativno male tako da je u tim slučajevima prihvatljivo rješiti problem LP sa realnim promje-nljivim i dobijene vrijednosti zaokružiti na najbliže cjelobrojne vrijednosti.

transportni i problemi pretovara (transshipment problems). kao problemi raspoređivanja i uparivanja (matching problems). vidjećemo da će simpleks algoritam davati cjelobrojna rješenja. kao problemi raspoređivanja i uparivanja (matching problems).Međutim. Posebno.1. Međutim. svaka krajnja tačka dopustivog prostora. problemi mrežnog toka. predstavlja cjelo-brojno rješenje. međutim. uvijek kao optimalno rješenje dobiju cjelobrojni rezultat. Ako se izostavi uslov cjelobrojnosti dobije se linearna relaksacija problema (3.1): Max(min) cTx Ax = b x >= 0 (3. x˒ Zn gdje je Zn skup n-torki sa cjelobrojnim koordinatama. predstavlja cjelo-brojno rješenje. formulacija u obliku LP ne daje lako rješenje. Nažalost to važi samo za probleme koji imaju mrežnu strukturu dok za većinu cjelobroj-nih zadataka. svaka krajnja tačka dopustivog prostora. mnogi problemi linearnih mreža. POSTAVKA PROBLEMA Opći zadatak Cjelobrojnog Linearnog Progra-miranja (CLP) dat je u obliku: Max(min) cTx Ax = b x >= 0. A = [aij] je mxn cjelobrojna matrica. postoje neki cjelobrojni problemi koji se mogu lako riješiti. iako se ti zadaci formuliraju i rješavaju kao problemi linearnog programiranja. a vektori b i c su cjelobrojni . problemi mrežnog toka. Nažalost to važi samo za probleme koji imaju mrežnu strukturu dok za većinu cjelobroj-nih zadataka. iako se ti zadaci formuliraju i rješavaju kao problemi linearnog programiranja. međutim. mnogi problemi linearnih mreža. 3. transportni i problemi pretovara (transshipment problems).2) (3.1) 98 . vidjećemo da će simpleks algoritam davati cjelobrojna rješenja. U ovim problemima. Posebno. formulacija u obliku LP ne daje lako rješenje. postoje neki cjelobrojni problemi koji se mogu lako riješiti. U ovim problemima. uvijek kao optimalno rješenje dobiju cjelobrojni rezultat.

a u (3. 99 .1.2 x1 + 2 x2 = 1 2 x1 + 2 x2 = 7 Grafički je lako naći optimalnu vrijednost funkcije cilja linearne relaksacije. x2 >= 0. (x1.2 x1 + 2 x2 <= 1 2 x1 + 2 x2 <= 7 ----------------------x1 >= 0.Osnovna razlika problema (3.2) je u tom.1) i problema (3. Ona je jednaka 2 i nalazi se u tačci (3/2.1) diskretan. Dat je zadatak CLP: max x2 . Primjer 3. x2 >= 0 U ovom zadatku. što je dopustivi skup u (3. x2) ˒ Z2 Rješenje Linearna relaksacija zadatka je: max x2 .2) konveksan. 2). dopustivi prostor je konveksni poliedar ograničen pravcima: x1 = 0 x2 = 0 .2 x1 + 2 x2 <= 1 2 x1 + 2 x2 <= 7 --------------------------------------x1 >= 0.

(2. (1. 1). (2. 1). 0). (3. 0). 1). 100 . 1) Ispitujući vrijednosti funkcije cilja u ovim tačama dobije se da je optimalna vrijedost jednaka 1 i da se nalazi u tačkama (1. 0). 0).U slučaju CLP dopustivi skup je diskretan i sastoji se od 6 tačaka: (0. (1. (2.

F(15.2. Vrijednosti funkcije cilja u tačkama E i F su: Z(14.10 x1 + 111 x2 . x2 >= 0. 5.x1 + 10 x2 <= 40 x1 + x2 <= 20 --------------------------------------x1 >= 0. 5). (x1. Dat je zadatak CLP: max Z = . 5/11) gdje funkcija cilja dostiže maksimalnu Z = 460 Ako se zaokruže vrijednosti optimalnih promjenljivih dobiju se tačke: E(14. 5/11. 6). x2) ˒ Z2 Zadatak riješiti grafičkom metodom. 5) = 405 101 . H(15. G(14. 5).Primjer 3. 6) Tačke G i H ne zadovoljavaju ograničenja. 5) = 415 Z(15. Rješenje Optimalno rješenje je u tački C(14.

Ako su sve promjenljive cjelobrojne u optimalnom rješenju. linearna relaksacija zadatka dobije oblik: max Z = 8 x1 + 5 x2 + 0 x3 + 0 x4 x1 + x2 + x3 9 x1 + 5 x2 + = 6 + x4 = 45 102 . Nalazi se novo optimalno rješenje koristeći dualni simpleks metod Korak 5. (x1. U suprotnom.Na osnovu rezultata zaokruživanja moglo bi se zaključiti da je optimalno rješenje u tački E(14. Formira se simplex tabela uključujući dodatno ograničenje. x2 ш 0. ide se na Korak 3. 5) ima bolju vrijednost funkcije cilja: Z(10. međutim. 5). Iz slike se vidi da tačka I(10. tada se uvodi dodatno ograničenje. Postupak se sastoji od sljedećih koraka: Korak 1. bira se jedna proizvoljno Korak 4.2. bira se promjenljiva koja ima najveći necjelobrojni dio. Ako je novo optimalno rješenje cjelobrojno.3. to nije tačno. max Z = 8 x1 + 5 x2 x1 + x2 ч 6 9 x1 + 5 x2 ч 45 x1. to je rješenje zadatka CLP. x2) ˒ Z2 Proširenjem. METODA ODSJECAJUĆIH RAVNI (Gomory) Suština ideje je u sljedećem: Na dopustivi skup linearne relaksacije dodaju se nova ograničenja koja trebaju odsjeći dijelove dopustivog prostora koji ne sadrže cjelobrojne tačke. tada je to rješenje zadatka CLP Korak 3. Nova ogra-ničenja se generiraju na osnovu informa-cije o optimalnom rješenju linearne releksacije. Ako je jedna promjenljiva u optimalnom rješenju necjelobrojna. 5) = 455 3.. Ako je više promjen-ljivih necjelobrojno. Ako ih ima više istih. Naći optimalno rješenje koristeći simpleks algoritam ne uzimajući u obzir ograničenja na cjelobrojnost Korak 2. Ono se zove Gomory-jevo ograničenje. Konstrukcija Gomory-jevih ograničenja Primjer 3.

6. 1. 0. x3. 103 . Simpleks tabela 2: Rješenje (15/4. Z = 165/4. 45). 0. Z = 40. 0). Zadatak ćemo riješiti simlpeks algoritmom. Početna simpleks tabela: Početno bazno dopustivo rješenje (0. Simpleks tabela 1: Rješenje (5. je cjelobrojno ali nije optimalno. je cjelo-brojno ali nije optimalno. je optimalno ali nije cjelobrojno . 0. x2. 0). Z = 0. x4 ш 0.x1. 9/4.

odabraćemo drugi red.¾ x3 ʹ ¼ x4 ч 0 Ovo ograničenje ima sljedeće osobine: ‡ ‡ Svako dopustivo rješenje polaznog problema CLP. Iz toga proizilazi da je lijeva strana uvjek cijeli broj. Ovom redu odgovara ograničenje: x1 ʹ 5/4 x3 + ¼ x4 = 15/4 Razdvajanjem cjelih i razlomljenih dijelova dobije se: x1 ʹ 2 x3 + 3/4 x3 + ¼ x4 = 3 + ¾ ili x1 ʹ 2x3 ʹ 3 = ¾ . zadovoljava ovo ograničenje Optimalno rješenje linearne relaksacije ne zadovoljava 104 . a na osnovu toga. Pošto je necjelobrojni dio isti u oba reda (3/4).¾ x3 ʹ ¼ x4 = 0 i na osnovu nje formira novo ograničenje: ¾ . Pošto su x3 ш 0 i x4 ш 0 slijedi da je desna strana cio broj koji je manji ili jednak od ¾ što znači da najviše može biti nula. odsjecajuća ravan ¾ . tada su svi xi ш 0 cijeli brojevi.¾ x3 ʹ ¼ x4 Ako postoji cjelobrojno rješenje zadatka.Sada se izabere red optimalne simpleks tabele u kojoj slobodni član nije cjelobrojan. Sada se formira tzv. da i desna strana mora biti cijeli broj.

Dobije se sljedeća simpleks tabela koja daje optimalno rješenje. pa se može primijeniti dualna simpleks metoda. Ujedno.Sada se dodaje novo ograničenje sa novom dodatnom promjenljivom i dobije se nova Simpleks tabela: Ova tabela nije primalno dopustiva ali jeste dualno. ovo rješenje je cjelobrojno. 105 .

0) Optimalna cjelobrojna vrijednost funkcije cilja je: Z = 8 * 5 = 40 Dodatno ograničenje je smanjilo dopustivi prostor tj. 0. odsjeklo je dio dopustivog prostora koji je ͞blizu͟ necjelobrojne optimalne tačke što je grafički dato na sl.1. 0. 1. 3.Optimalno rješenje je: X* = (5.. 106 .

x4 ш 0 i svi xj su cjelobrojni. Rješenje Koristeći simpleks metod dobije se optimalno rješenje čija konačna tabela izgleda: Ovdje su sve promjenljive necjelobrojne.Primjer 3. Proizvoljno biramo x2. x2. Odgovarajuća jednačina (iz tabele) za prvu vrstu je: 0 x1 + 1 x2 + 0 x3 + 1/6 x4 = 5/2 ili x2 + (0 + 1/6) x4 = 2 + ½ x2 ʹ 2 = ½ ʹ 1/6 x4 pa je -½ -1/6 x4 ч 0 što se može napisati kao -1/6 x4 + x5 = . Necjelobrojni dio je ½ u sve tri promjenljive.4.½ 107 . max Z = x1 + 2 x2 + 3 x3 ʹ x4 x1 + 2 x2 + 3 x3 2 x1 + x2 + 5 x3 = 15 = 20 x1 + 2 x2 + x3 + x4 = 10 x1. x3.

108 . Ova jednačina se naziva Gomory-jevo ograničenje a x5 Gomory-jeva dodatna promjen-ljiva.gdje je x5 odatna promjenljiva. ovaj zadatak nema nijedno cjelobrojno rješenje. Dodajući Gomory-jevo ograničenje u konačnu simpleks tabelu dobije se: Koristeći dualnu simpleks metodu izbacujemo promjenljivu x5 iz baze: Pošto je rješenje i dalje nedopustivo a ne postoji nijedno aij manje od nule.

Posebnu klasu u celobrojnom linearnom programiranju. x ˒(0.1) je znatno teži. To su tzv. (3. Međutim. Zadatak binarnog programiranja: Max(min) cTx Ax = b x >= 0 . zauzimaju problemi u kojima se zahteva da promenljive uzimaju vrednosti iz skupa {0. broj koraka može biti vrlo veliki pa se ovaj metod kombinira sa metodom grananja i ograničavanja da bi se smanjio broj koraka. 1}. Metode koje koriste kombinaciju ova dva pristupa nazivaju se metode grananja i odsjecanja. Opći problem cjelobrojnog linearnog programiranja (3. zadaci 0-1 programiranja ili binar-nog programiranja. Ovi zadaci se često sreću u praksi.3) se mogu efikasno riješiti primjenom simpleks algoritma ili nekom drugom metodom koja ima polinominalnu računsku složenost.1) Linearna relaksacija zadatka binarnog programiranja je: Max(min) cTx Ax = b 0 <= x <= 1 Problemi oblika (3. mada mu je dopustivi prostor zadan u obliku prebrojivog skupa.Ovaj algoritam nalazi optimalno rješenje cjelobrojnog linearnog programiranja za konačno mnogo koraka.3) 109 .4) (3.

TIPIČNI PROBLEMI CLP 1. Problem ranca 4. Problem raspoređivanja 2. Transportni problem 3.2. tako da njihova produktivnost bude maskimalna. odnosno. Problem trgovačkog putnika Problem raspoređivanja (Assignment prob-lem) Potrebno je rasporediti n izvršilaca na n poslova. 2. binarnog programiranja: 110 . j = 1. ... Poznate su produktivnosti cij i-tog izvršioca na j-tom poslu za i. Matematički model Problema raspoređivanja predstavlja problem 0-1 programiranja. n.3..

.. da se preveze sva roba a da cijena transporta bude minimalna. Ako sa xij označimo broj jednica mjere robe koja se prevozi iz skladišta i u prodavnicu j.... .. S2. am. .. tj da vrijedi Zadatak kod kojeg vrijedi gornji uvjet naziva se ͞zatvoreni͟ transportni zadatak u suprotnom je ͞otvoreni͟ transportni zadatak.... S2. Pn. Otvoreni zadatak se prevodi u zatvoreni uvođenjem fiktivnog skladišta ili fiktivne prodavnice. ..Podrazumjeva se da je xij = 1 ako je i-ti izvršilac raspoređen na j-ti posao Transportni problem (The transportation problem) Potrebno je prebaciti robu iz m ishodišta (skladišta) S1.. P2. Sm u n odredišta (prodavnica) P1. matematički model transportnog problema je: 111 . Pn). . Sm) jednaka ukupnoj potražnji (potrebe prodavnica P1.. a2... Poznate su količine robe u skladištima a1... b2. P2. bn. potrebe prodavnica b1.. . . tako. kao i cijena prevoza jedne jedinice mjere robe od skladišta Si do prodavnice Pj Petpostavićemo da je ukupna ponuda (roba smještena u skladištima S1.

ai = 1. naziva se cjelobrojni ako svi njegovi vrhovi (sva dopustiva bazna rješenja) imaju cjelobrojne koordinate.cij Dopustivi skupovi problema raspoređivanja i transportnog problema su ͞cjelobrojni poliedri͟ pa oni spadaju u ͞lake͟ probleme cjelobrojnog programiranja. a nenulti elementi različitog znaka iz proizvoljne kolone pripadaju istom skupu. nazivaju se totalno unimodularne.1) se mogu izostaviti i riješiti zadatak linearne relaksacije (3. Poliedar x = (x e Rn / Ax = b.1. Svaka kolona ima najviše dva elementa različita od nule 2. bj = 1.Jasno je da je problem raspoređivanja specijalan slučaj trans-portnog problema kada je m = n.2) čime se ujedno dobije rješenje zadatka (3. Matrice.-1} i da važi: 1. cij = . tada je poliedar X cjelobrojan Pošto su sve bazne podmatrice Ab nesingularne važi det Ab ˒ {-1. Važi sljedeće: ako je A totalno unimo-dularna matrica punog ranga. gdje je A cjelobrojna matrica ranga m i b je cjelobrojni vektor. tako da nenulti elementi istog znaka iz proizvoljne kolone pripadaju raznim skupovima.1). x >= 0). Ako je dopustivi prostor dat kao cjelobrojni poliedar. Vrste se mogu podijeliti u dva skupa I i II. uslovi cjelobrojnosti u zadatku (3.1} Iz cjelobrojnosti matrice Ab slijedi cjelobrojnost A-1b = adj Ab / det Ab Kako je vrh poliedra definiran sa Xb = A-1b b slijedi da su sve kordinate vrha cjelobrojne. čiji su svi minori jednaki 0 ili ±1. Dovoljan uvjet za totalnu unimodularnost Pretpostavimo da svi elementi matrice A pripadaju skupu {0. 112 .

5}. Neka je b ukupna težina ranca i neka 0-1 vrijabla xj = 1 znači da je j-ta stvar izabrana i smještena u ranac. može se izostaviti posljednji red i uzeti da je II = {4. 113 . Potrebno je izabrati takav podskup raspoloživih stvari da se one ne prelaze određenu težinu (zapreminu) ʹ koja se može ponijeti (smjestiti) u ranac. konzervi) od kojih svaka ima određenu težinu (zapreminu) aj i ima neku vrijednost (kalorijsku) cj. Tada je matrica A totalno unimodularna punog ranga pa slijedi da ona definira cjelobrojni poliedar.6}.2.Tada je matrica A totalno unimodularna.5.3} a II = {4. može se pokazati da se postupkom agregacije bilo koji problem cjelobrojnog programiranja može svesti na problem ranca. ispunjeni su predhodni uvjeti pa je matrica A totalno unimodularna. Slično se može izvesti za matricu transportnog problema.5 Matrica A problema rasporedjivanja za n= 3 ima oblik: Ako je I = {1. Ovo vrijedi za prozvoljno n. Tada je matematički model problema ranca sljedeći: Iako problem ranca ima jednostavnu strukturu (ima samo jedno ograničenje). a da vrijednost (kalorijska) izabranog podskupa bude maksimalna. Problem ranca (Knapsack problem) Pretpostavimo da planinar treba da popuni ranac sa određenim brojem stvari (na pr. Primjer 3. Pošto matrica A nema puni rang (rang A = 5).

2.6 Za n = 4 moguće je napraviti 3 različite ture Problem trovačkog putnika se može modelirati na više načina.Ovako dobijen zadatak ima veoma velike koeficijente i teško se rješava. Poznata je ͞cijena͟ cij puta od grada i do grada j za svako i = 1. j = 1.. Ako je problem zatvoren i simetričan i ako između svaka dva grada postoji put. Problem je zatvoren ako se putnik mora vratiti u grad iz kojeg je pošao.. tada je broj različitih načina obilazaka ʹ tura ʹ jednak: (n-1)!/2. .. Problem je simetričan ako je cijena puta od grada i u grad j ista u oba smjera.. n.. Cjelobrojni model M1: 114 . .. 2. Navešćemo dva modela koja spadaju u klasu problema cjelobrojnog programiranja. n. Problem trgovačkog putnika (Traveling Salesman Problem) Trgovački putnik mora obići n gradova. Treba naći redosljed obilazaka gradova pa da troškovi puta budu minimalni. Primjer 3. pa ova činjenica ima malu praktičnu vrijednost.

1957) je da se nađu ͞specifične vrijednosti͟ predmeta kao odnos cijene i volumena. Prva grupa ograničenja osigurava da tura ulazi i izlazi iz svakog grada. Dantzig. (broj elemenata konačnog skupa M se zove Kardinalni broj skupa i označava se sa card M ili sa |M|) xij = 1 ako i samo ako odabrani put ʹ tura spaja gradove i i j. Dinamičko programiranje (Dynamic programming) 3. 2. Lopov je u dilemi . Proždrljivi algoritam (Greedy algorithm) 2. izražen u onim istim kubnim jedinicama) i vrijednosti ci.kako napuniti ruksak predme-tima koji mu donose najveću dobit? Ovaj zadatak se može riješiti na više načina 1. Pošto je broj različitih podskupova skupa X.. Provalnik ima ruksak veličine S (kubnih jedinica).. Naime drugi skup ograničenja se može transformirati u oblik: Problem ranca (Knapsack problem) Problem možemo postaviti slikovitije.gdje je: X = (1. Osnovna ideja Proždrljivog algoritma (G. Često se koristi nešto jednostavniji oblik modela M1.. Algoritam granica i ograničavanja (Branch and boun) 4. 2**n broj ovih ograničenja raste eksponen-cijalno sa dimenzijama zadatka. . Genetički algoritam (Genetic algorithm) . 115 . a druga grupa sprječava da se tura raspadne na više disjunktnih tura.. a nailazi na veći plijen nego sto može ponijeti. n) a |S| označava kardinalnost skupa S.. Plijen su određeni predmeti (N) koji imaju različite velicine (volumen.

nađe-no na ovaj način.. Ovdje ćemo zadatak rješavati tako što će se u razmatranje uzimati jedan po jedan predmet dok ne obradimo uključivanje svih predmeta. i predmeta 2. kao najvrijedniji (dva ne mogu jer bi bili veći od ukupnog volumena).7 Ukupni volumen je 10 kubnih jedinica. njihovi volumeni i cijene su dati u tabeli Rješenje ͞Specifične cijene͟ predmeta su Bira se prvo jedan predmet broj 4. Rekurzivna relacija se može napisati u obliku: 116 . čime je popunjen volumen i to je ujedno kraj zadatka. Primjer 3. ne može biti izabran jer bi također bi probijen ukupni volumen. Rješenje je izbor predmeta 4. a broj predmeta. što daje ukupnu vrijednost 20 + 8 = 28 Ovaj zadatak može biti riješen i primjenom dinamičkog programiranja (Belman) Dinamičko programiranje rješava složene probleme tako što ih rastavlja na više ma-njih jednostavnijih zadataka čijim rješa-vanjem istovremeno rješava polazni zadatak. ne mora biti optimalno. Ovaj algoritam je vrlo efikasan ali rješenje.Izbor tada ide od onih predmeta koji su naj-skupljih po jednici volumena (najvri-jedniji) dok se ruksak ne napuni. pa se bira predmet 2. predmet 3.

Z1(S1) = max[v1·x1] gdje je S = 10 a1 = 1 b1 = 4 v1 = 2 Z1(S1) ukupan raspoloživi volumen volumen po jedinici ukupan broj jedinica x1 cijena po jedinici vrijednost funkcije cilja ako promjenljiva x1 zauzme volumen S1 0чx1чb1 i a1·x1чS Dopustiva rješenja. i Analiziraju se svi njegovi dopustivi rasporedi..gdje je S ʹ ukupni raspoloživi resurs Z(S) ʹ optimalna vrijednost funkcije cilja Zn(xn) ʹ doprinos koji funkcija cilja ima od promjenljive xn Zn-1(S-xn) ʹ doprinos koji funkcija cilja ima od ostalih promjenljivih Razmatranje se počinje tako što se pretpostavi da je na raspolaganju samo predmet 1.. ako se uzme u obzir samo predmet 1. su: Sada se razmatraju predmet 1. Z2(S2) = max[v2·x2+Z1(S2-x2)] 117 . i predmet 2.

a preostali volumen se dodjeljuje predmetima 1.. i 2. x2 i x3 zauzmu volumen S3 i a1·x1+a2·x2+a3x3чS 118 . i uzima optimalna vrijednost izračunata kao Z2(S2) Z3(S3) = max[v3·x3+Z2(S3-x3)] 0чx3чb3 gdje je a3 = 4 b3 = 2 v3 = 11 Z3(S3) Dopustiva rješenja su: volumen po jedinici x3 ukupan broj jedinica x3 cijena po jedinici x3 vrijednost funkcije cilja ako promjenljive x1.0чx2чb2 gdje je a2 = 3 b2 = 3 v2 = 8 Z2(S2) Dopustiva rješenja su: i a1·x1+a2·x2чS volumen po jedinici x2 ukupan broj jedinica x2 cijena po jedinici x2 vrijednost funkcije cilja ako promjenljive x1 i x2 zauzmu volumen S2 Sada se razmatra predmet 3.

i uzima optimalna vrijednost izračunata kao Z3(S3) Z4(S4) = max[v4·x4+Z3(S4-x4)] 0чx4чb4 gdje je a4 = 7 b4 = 2 v4 = 20 Z4(S4) Dopustiva rješenja su: volumen po jedinici x4 ukupan broj jedinica x4 cijena po jedinici x4 vrijednost funkcije cilja ako promjenljive x1. x3 i x4 zauzmu volumen S4 i a1·x1+a2·x2+a3x3+a4x4чS Optimalno rješenje je: 119 . a preostali volumen se dodjeljuje predmetima 1. i 3. x2.Sada se razmatra predmet 4. 2...

Poznata je ͞cijena͟ cij puta od grada i do grada j za svako i = 1. x4 = 1 Problem trgovačkog putnika (Traveling Salesman Problem) Trgovački putnik mora obići n gradova. 2. . Problem trovačkog putnika se može modelirati na više načina.. Cjelobrojni model M1: 120 . Treba naći redosljed obilazaka gradova pa da troškovi puta budu minimalni.. x3 = 0. n. Navešćemo dva modela koja spadaju u klasu problema cjelobrojnog programiranja. Ako je problem zatvoren i simetričan i ako između svaka dva grada postoji put.. x2 = 1. tada je broj različitih načina obilazaka ʹ tura ʹ jednak: (n-1)!/2. optimalni izbor je: x1 = 0.. n. .. j = 1.Z4(10) = 28 Dobijeno za x4 = 1 i S3 = 10 ʹ 7 = 3 Optimalno rješenje za S3(3) = 8 se dobije za: x3 = 0 i S2 = 3 ʹ 0 = 3 Optimalno rješenje za S2(3) = 8 se dobije za: x2 = 1 i x1 = 0 Dakle. 2.. Problem je simetričan ako je cijena puta od grada i u grad j ista u oba smjera. Problem je zatvoren ako se putnik mora vratiti u grad iz kojeg je pošao.

gdje je: X = (1, 2, ..., n) a |S| označava kardinalnost skupa S. (broj elemenata konačnog skupa M se zove Kardinalni broj skupa i označava se sa card M ili sa |M|) xij = 1 ako i samo ako odabrani put ʹ tura spaja gradove i i j. Prva grupa ograničenja osigurava da tura ulazi i izlazi iz svakog grada, a druga grupa sprječava da se tura raspadne na više disjunktnih tura. Pošto je broj različitih podskupova skupa X, 2**n broj ovih ograničenja raste eksponen-cijalno sa dimenzijama zadatka. Često se koristi nešto jednostavniji oblik modela M1. Naime drugi skup ograničenja se može transformirati u oblik:

Primjer 3.8 Riješiti problem trgovačkog putnika za n = 6. Rješenje Broj promjenljivih je n(n-1)/2 = 6*5/2 = 15 Funkcija cilja je: z = c12 x12 + c13 x13 + ...+ c56 x56 Prva grupa ograničenja je:

121

x12 + x13 + x14 + x15 + x16 = 2 x12 + x23 + x24 + x25 + x26 = 2 x13 + x23 + x34 + x35 + x36 = 2 x14 + x23 + x34 + x45 + x46 = 2 x15 + x25 + x35 + x45 + x56 = 2 x16 + x26 + x36 + x46 + x56 = 2 U drugoj grupi je dovoljno uzeti ograničenja vezana za tročlane podskupove skupa (1, 2, 3, 4, 5, 6), kojih ima 20. Tako, na primjer, podskupu S = (1, 4, 5) odgovara ograničenje: x14 + x15 + x45 <= 2 Koje sprječava podturu:

Linearna relaksacija se dobije kada se uslovi: xij ˒ (0, 1)

122

Zamjene uslovima: 0 ч xij ч 1 za svako 1 ч i ч j ч n Pošto je broj ograničenja vrlo velik nije praktično primjeniti neku od metoda za rješavanje problema LP. Zato se primjenjuje sljedeći postupak: 1. Riješi se linearna relaksacija sa ograniče-njima iz prve grupe 2. Ako sve promjenljive u optimalnom rješenju linearne relaksacije imaju vrijednost 0 ili 1 dobijena je optimalna tura. U suprotnom, prelazi se na korak 3. 3. Primjenjuje se tehnika grananja i ograničavanja sve dok se ne dobije optimalna tura Cjelobrojni model M2: Ako se pretpostavi da je xij # xji, broj promjenljvih će biti n(n-1). Da se dobije sljedeći matematički model:

Uslovi (a) i (b) osiguravaju da putnik ulazi i izlazi iz svakog grada. Uslovi (c) sprječavaju podture. Tako, na primjer u podturi iz Primjera (3.7)

imamo x14 = 1, x45 = 1, x51 = 1 što je nemoguće jer iz:

123

Zaokruživanje rješenja linearne relaksacije 3. Zaokruživanje rješenja linearne relaksacije Ovaj pristup se sastoji u sljedećem: ‡ ‡ ‡ Linearna realaksacija se riješi nekom od metoda za rješavanje zadatka LP Ako u koordinate rješenja cjelobrojne to je ujedno i rješenje zadatka CLP Ako neke koordinate nisu cjelobrojne vrši se njihovo zaokruživanje na najbliži cio broj Poteškoća ovog pristupa je u tom što ovako dobijeno rješenja ne mora biti dopustivo.1 izvrši zaokruživanje rješenja (3/2. obaviti potpuno pretraživanje. 2) dobiće se tačke (1. Prevođenje u problem nelinarnog programiranja Totalno pretraživanje Ako je dopustivi prostor problema (3. 124 .3. da bi se riješio zadatak CLP potpunim pretraživanjem potrebno je izračunati vrijednost funkcije cilja u 2**n tačaka sa koordinatama 0 ili 1. Totalno pretraživanje 2. u prihvatljivom vremenu.2) od kojih nijedna nije dopustiva. Ako se u Primjeru 3. Ovdje ćemo navesti tri direktne ideje: 1.u4 + 6 x14 <= 5 u4 ʹ u5 + 6 x45 <= 5 u5 ʹ u1 + 6 x51 <= 5 Slijedi 6(x14 + x45 + x51) <= 15 Lako je vidjeti da je nemoguća i suprotno orijentirana podtura 3. Pored toga. ako je rješenje dobijeno zaokruži-vanjem jest dopustivo.2) i (2. lako je pokazati da je ovaj pristup praktično neupotrebljiv kada poraste dimenzionalnost zadatka. ono ne mora biti optimalno.1) je končan skup.u1 . Međutim. PRISTUPI RJEŠAVANJU PROBLEMA CLP Postoji više pristupa rješavanju problema CLP. Naime. Iz toga slijedi da se do rješenja može doći pretraživanjem svih dopustivih tačaka.2) ograničen dopustivi skup problema (3. Jasno je da već pri n > 50 ni najbrži računari ne mogu.

. n su jednaku kontinualnim nelinarnim uslovima xi (xi-1) = 0. . ne postoji algoritam koji za polinominalno vrijeme računanja rješava cjelobrojnog programiranja probleme U nekim specijalnim slučajevima. n Koristeći ove zamjene... za sada. . u praksi. 2.. Problemi manjih dimenzija se rješavaju metodama razvijenim na ideji grananja i ograničavanja i srodnoj ideji implicitne enumeracije (imlicitnog pebrojavanja) koji skraćuju potpuno pretraživanje a ipak garantuju optimalnost. 2.1).3) se mogu napisati u obliku problema nelinearnog programiranja. . 125 . rješavaju heuristi-čkim metodama kod kojih ne postoji garancija da je nađeno rješenje optimalno. n su jednaki kontinualnim nelinarnim uslovima sin(ѓxi) = 0. Dakle.2) je ujedno rješenje problema (3. i =1. zadaci (3. što u općem slučaju ima eksponencijalnu složenost. međutim..1) cjelobrojne.. Međutim. 2. Ovaj pristup je znatno efikasniji od totalnog pretraživanja. Osnovna poteškoća kod cjelobrojnog programiranja je što ne postoje kritriji optimalnosti kao na primjer kod LP.. Postoje prisupi zasnovani na odsjecanju dijelova dopustivog protora koji ne sadrže cjelobrojna rješenja. one ipak imaju eksponencijalnu računsku složenost.Prevođenje u problem nelinarnog programiranja Diskretni uslovi xi e Z.. Veći problemi se.. i =1. kada su sve koordinate linearne relaksacije problema (3.1) i (3. n Također. 2. diskretni uslovi xi ˒ (0.. 1)... rješenje problema (3. i =1. u tom slučaju zadatak nije konveksan pa se do globalnog ekstrema ne može doći egzaktnim metodama. i =1. Radi toga nalaženje optimalnog rješenja se svodi na pretraživanje dopustivog skupa..

3. Problem maksimalnog protoka.. (x1. Dijeljenje se vrši razbijanjem dopustivog skupa na podskupove čime dobija podbroblem. . Pretraživanje je suženo na ͞interesantne͟ dijelove dopustivog skupa i zato je efikasnija od totalnog pretraživanja.8 Riješiti problem cjelobrojnog programiranja: max Z = 8 x1 + 5 x2 x1 + x2 <= 6 9 x1 + 5 x2 <= 45 x1 >= 0.4. Primjer 3.U ove slučajeve spadaju Transportni problem. METOD GRANANJA I OGRANIČAVANJA Metoda grananja i ograničavanja je jedna od opštih tehnika pretraživanja koja ne pretražuje cijeli dopustivi skup. Razrješeni problemi se brišu iz skupa pod-problema i po njima se ne vrši dalje grananje. Računarska složenost ostaje eksponencijalna ali se u nekim slučajevima do rezultata može doći relativno brzo. x2) Φ Z2 Linearna relaksacija i dopustiva cjelobrojna rješenja dati su na slici: 126 . Osnovna ideja se može definirati kao ͞dijeljenje i osvajanje͟. Podproblem je riješen kada se nađe njegovo optimalno cjelobrojno rješenje i kada se procijeni da njegov dopustii skup ne sadrži optimalno rješenje polaznog problema.. Problem Raspoređivanja. x2 >= 0. Pošto je problem suviše složen za direktno rješavanje. on se dijeli na sve manje i manje podprobleme.

Rješenje nije cjelobrojno ali se na osnovu njega može zaključiti da je gornja granica za otimalnu vrijednost jednaka 41.Rješenje Podproblem 1: Linearna relaksacija Sa slike se vidi da je optimalno rješenja linearne relaksacije (15/4. Sada se vrši grananje po jednoj od necjelo-brojnih koordinata. na primjer x1 (3 < 15/4 < 4) i dobiju se dva podbroblema: Podproblem 2: Podproblem 1 se proširuje ograničenjem x1 >= 4 Podproblem 3: Podproblem 1 se proširuje ograničenjem x1 <= 3 127 .25. 9/4) iz čega slijedi da je optimalna vrijednost funkcije cilja Z = 165/4 = 41.

Podproblem 3 ne treba dalje razlagati. Z = 41 a optimalno rješenje Podproblema 3 je (3.Optimalno rješenje Podproblema 2 je (4. Z = 39 Optimalno rješenje podproblema 3 je cjelobrojno i ono je kandidat za optimum. Podproblem 2 granamo po x2: x2 (1 < 9/5 < 2) i dobiju se dva podbroblema: Podproblem 4: Podproblem 2 se proširuje ograničenjem x2 >= 2 Podproblem 5: Podproblem 2 se proširuje ograničenjem x2 <= 1 128 . 3). 9/5). Vrijednost 39 je donja granica za optimum.

Optimalno rješenje potproblema 5 je dato sa (40/9. 1).Dopustivi skup potproblema 4 je prazan skup i on se dalje ne razlaže. Z = 365/9 =40.55 Podproblem 5 granamo po x1: x1 (4 < 40/9 < 5) i dobiju se dva podbroblema: Podproblem 6: Podproblem 5 se proširuje ograničenjem x1 >= 5 Podproblem 7: Podproblem 5 se proširuje ograničenjem x1 <= 4 129 .

Optimalno rješenje podproblema 7 je dato sa (4. 0) i ona je optimalno rješenje. Z = 40. Ona je ujedno kandidat za optimum polaznog zadatka. optimalno rješenje je (5.Dopustivi skup podproblema 6 je tačka (5. 0). Pošto nema više nerazrješenih podprob-lema. 1). Z = 40 130 . koje je cjelobrojno ali ne popravlja optimum. Z = 37.

Sign up to vote on this title
UsefulNot useful