operaciona istrazivanja

162
OPERACIONA ISTRAŽIVANJA – prvih 8 predavanja

Upload: oriflame-kozmetika

Post on 04-Jul-2015

4.640 views

Category:

Documents


9 download

TRANSCRIPT

Page 1: OPERACIONA ISTRAZIVANJA

OPERACIONA ISTRAŽIVANJA – prvih 8 predavanja

Page 2: OPERACIONA ISTRAZIVANJA

SADRŽAJO 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

2

Page 3: OPERACIONA ISTRAZIVANJA

Primjer 1.4.........................................................................................................................................22

1.2.3. Upotreba digitalnih računara u modeliranju i simuliranju.......................................................25

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

3

Page 4: OPERACIONA ISTRAZIVANJA

2.5.1. TRANSPORTNI PROBLEM.......................................................................................................79

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

2.5.2. PROBLEM RASPOREDJIVANJA................................................................................................90

Postavka zadatka...............................................................................................................................90

Matematički model problema raspoređivanja..................................................................................91

7. CJELOBROJNO LINEARNO PROGRAMIRANJE (1)...................................................................................97

3.1. POSTAVKA PROBLEMA....................................................................................................................98

3.2. METODA ODSJECAJUĆIH RAVNI (Gomory)................................................................................102

Problem raspoređivanja (Assignment prob-lem).............................................................................110

Transportni problem (The transportation problem)........................................................................111

Problem ranca (Knapsack problem).................................................................................................113

Problem ranca (Knapsack problem).................................................................................................115

3.3. PRISTUPI RJEŠAVANJU PROBLEMA CLP.........................................................................................124

Totalno pretraživanje.......................................................................................................................124

Zaokruživanje rješenja linearne relaksacije.....................................................................................124

Prevođenje u problem nelinarnog programiranja...........................................................................125

3.4. METOD GRANANJA I OGRANIČAVANJA........................................................................................126

4

Page 5: OPERACIONA ISTRAZIVANJA

O OPERACIONIM ISTRAŽIVANJIMA (OBNAVLJANJE)

Predmet Operacionih Istraživanja (OI)

OI su skup metoda, koje imaju za cilj nalaženje najboljih (optimalnih) rješenja složenih problema. Smatra se da, kao nauka, operaciona istraživanja (OI) postoje od 1940-te godine. Metode OI se primjenjuju u situacijama gdje je potrebno – raspoloživim (ograničenim) resursima potrebno je postići najbolje rezultate. Tako su metode OI (pored ostalih područja) našli široku primjenu na području poslovnog odlučivanja i upravljanja. Jedna od definicija, 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.“OI se bave istraživanjem operacija (aktivnosti). 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. Dio naziva – istraživanja – znači da OI koriste naučni pristup pri rješavanju zadataka sa kojima se susreću.Naučni metod se koristi i za naučno (najčešće matematičko) modeliranje realnih problema koje je potrebno riješiti. OI su uključena u kreativna naučna istraživanja fundamentalnih osobina operacija (aktivnosti).Razvoj informacionih tehnologija (IT) je dao snažnu osnovu i poticaj za razvoj i primjenu metoda OI. Povezivanje poslovnih IS i OI je proizvelo novi kvalitet – IS za podršku upravljanju. Ova veza je omogućila, s jedne strane, daleko šire i efikasnije korištenje „klasičnih“ metoda OI (linearno programiranje, mrežno planiranje, upravljanje zalihama, optimalno rezerviranje, simulacije, ...).S druge strane, potakla je razvoj novih načina korištenja metoda za nalaženje najboljih rješenja kroz:

- 'Sisteme za podršku odlučivanju' (Decision Suport Systems – DSS)- 'Sisteme za podršku izvršavanju' (Execution Suport Systems – ESS)- 'Ekspertne sisteme' (Expert systems – ES)- 'Vještačku inteligenciju' (Artificiel Intelligence - AI)

Ovi problemi, traganje za podacima i otkrivanje skrivenih odnosa i značenja među njima, predstavljaju jednu od suvremenih interesantnih oblasti operacionih istraživanja. Takvi pristupi se mogu naći u okviru naziva:

- Analitička obrada podataka u realnom vremenu (On Line Analytic Processing - OLAP)- Rudarenje podataka (Data Mining)- Poslovno istraživanje (Business Intelligence).

Danas velika većina zemalja ima svoja nacionalna profesionalna udruženja za OI koja organiziraju svoje skupove i izdaju časopise i biltene . Nacionalna udruženja se često povezuju u regionalne organizacije kao što su na pr.

- Evropska asocijacija EURO (European Associations of Operations Research Societes).

5

Page 6: OPERACIONA ISTRAZIVANJA

- 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).

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 - 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 - Usredsređenost na probleme upravljanja u složenim sistemima

U pravilu se rješavaju zadaci:- za koje ne postoje predhodna iskustva - koji uključuju veliki broj nepoznatih veličina - č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

Page 7: OPERACIONA ISTRAZIVANJA

Karakteristike OI - Sistemski pristup problemima

‘Cjelina je više nego zbir dijelova' (Aristotel)Optimazirajući dijelove, 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, ne mora biti optimalan sa stanovišta preduzeća). Problemi složenih organizacionih sistema (preduzeće, vojna jedinica, bolnica, regija) moraju se rješavati sa saznanjem da su to jedinstveni subjekti (cjeline).

Karakteristike OI - Timski rad

OI istraživači su, u pravilu, organizirani u timove. Problemi, koji su se rješavju, zhtijevaju znanja iz različitih oblasti. To ima pozitivan uticaj i na unapređenje metoda, 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

OI koriste matematički jezik za opisivanje i rješavanje postavljenih zadataka. Prednosti ovakvog pristupa su sljedeće:Složene veze izmedju raznih veličina u realnom sistemu, jednostavnije i jasnije se prikazuju u matematičkom obliku (jednačine, nejednačine, ...)

Karakteristike OI - Naučni metod nalaženja rješenja

osnovni zadatak modeliranja i jest u tom da se dođe do (matematičkog) modela koji je- dovoljno 'sličan' stvarnom problemu da bi mogao da bude njegova zamjena- dovoljno jednostavan da bi mogao biti rješiv.

Karakteristike OI - Naučni metod nalaženja rješenja

Uprošćenja i zanemarenja, koja se čine pri matematičkom modeliranju su često uočljiva, pa se to može iskoristiti, u slučaju neslaganja modela sa ponašanjem realnog sistema. Upotreba matematičkih modela (i matematičkih pristupa) je, također, jedan od uslova za korištenje IT u rješavanju konkretnih problema upravljanja u raznim područjima primjene.

7

Page 8: OPERACIONA ISTRAZIVANJA

Faze primjene OI

Kvanitativne metode predstavljaju najveći dio onoga što se danas naziva OI, tako da ćemo se mi baviti matematičkim metodama OI. Međutim, to ne znači da osnovnu težinu, pri praktičnom korištenju OI, čine matematičke analize. One (matematičke analize) često predstavljaju samo mali dio napora koji je potrebno uložiti.

Standardno, proces implementiranja metoda OI (OI studija), ima sljedeće faze:1. Definiranje problema i prikupljanje odgovajućih podataka2. Formiranje matematičkog modela koji predstavlja problem3. Razvoj (računarski baziranih) procedure za nalaženje rješenja problema iz matematičkog modela4. Testiranje modela i rješenja5. Priprema modela za korišenje6. Implementacija

8

Page 9: OPERACIONA ISTRAZIVANJA

Faze primjene OI - Definiranje problema i prikupljanje odgovarajućih podataka

Ne postoje stroga pravila koja bi pomogla u pravilnoj identifikaciji i formulaciji problema. U ovoj fazi najveći značaj imaju iskustvo i kreativnost istraživača. Ipak mogu se primjeniti slijedeće preporuke: Definirati ko je korisnik istraživanja i koje su granice sistema koji se analizira.

- korisnika istraživanja - ciljeve korisnika istraživanja- instrumente upravljanja kojima raspolaže korisnik- granice sistema- skup alternativnih rješenja- ograničenja u okviru kojih treba tražiti optimalnu odluku- kriterije za ocjenu rješenja.

Faze primjene OI - Konstrukcija modela

Pojam "model" se najčešće intuitivno prihvata kao "apstrakcija" nečega što je dio realnosti (EDEN I HARIS 1975). RIVET (1972) ukazuje da su "svi naučnici saglasni da je ključna aktivnost svake naučne metode – kreiranje modela". Prapočeci modeliranja (astronomski modeli) se mogu naći još u Vavilonskoj civilizaciji (750 godina prije nove ere). PETRIĆ i dr.: "modeli su veoma široko korišteno sredstvo za opis, objašnjenje, predviđanje i upravljanje pojavama u realnom svijetu“, oni predstavljaju "sintetsku apstrakciju realnosti". Zajednička karakteristika modela je da nikada ne mogu biti vjerna slika stvarnosti. Oni obuhvataju samo bitne osobine pojave koju predstavljaju, i pri tom, nužno zanemaruju niz osobina te iste pojave. Saznajna vrijednost modela je bazirana na činjenici da je rijetko potrebno sve znati o nekoj pojavi, odnosno, da je potrebno znati samo one veličine koje su bitne za pojedino razmatranje.

9

Page 10: OPERACIONA ISTRAZIVANJA

Korištenje modela ima slijedeće prednosti:- Omogućuju analizu i eksperimentisanje sa složenim problemima- Obezbjeđuje ekonomisanje resursima koji se koriste za analizu date pojave- Vrijeme za analizu pojave se može znatno skratiti (produžiti)- Obezbjeđuje koncentraciju na bitne karakteristike pojave.

RIVET je (1972) dao sljedeću definiciju modela:"Model, odnosno, hipoteza je skup logičkih relacija, bilo kvantitativnih, bilo kvalitativnih, koje će zajedno povezati relevantne karakteristike stvarnosti bitne za problem koji se rješava".

PETRIC i dr. (1982) klasificiraju modele prema 6, a TERSINE (1985 prema 8 osnovnih karakteristika.

KARAKTER MODELA MODELI1 FUNKCIJA - Deskriptivni (mape, seme, zavrsni racuni,..)

- Prediktivni (stimulacioni, regresioni, modeli simultanih jednacina, PERT, redovi cekanja,..- Normativni (LP modeli, modeli matematičkog programiranja,.

2 STRUKTURA - Ikonički (modeli atoma, hidrogradjevinskih objekata)- Analogni (graf sistema, PERT-mreza, modeliranje na analognom racunaru, . . )- Simbolicki (simulacioni modeli, modeli matematičkog programiranja, . . )

3 STEPEN SLUČAJNOSTI - Deterministicki - izvjesnost (vjerovatnoce nastupanja stanja su 1)- Rizik (nepoznata stanja ali poznatevjerovatnoce nastupanja stanja)- Neizvjesnost (nepoznata buduća stanja, nepoznate i vjerovatnoće njihovih nastupanja)- Konflikti (modeli planiranja i predviđanja, igre)

4 VREMENSKA ZAVISNOST - Statički (relacije među objektima nezavisne vremena)- Dinamički (postoji vremenska zavisnost promjenljivih)

5 OPŠTOST - Specijalizirani (za specificne probleme)- Opšti (linearno programiranje, redovi čekanja)

6 STEPEN KVANTIZACIJE – Kvalitativni , “mentalni”(I nivo apstrakcije), “verbalni”(govorni i pisani izrazi)- Kvantitativni (koriste formalni mat. jezik – relacije), “statisticki” (regresioni, redovi cek., Markov.lanci,..), “optimizacioni” (izbor najbolje alternative)- HeuristiČki (rješenja zadovoljavaju iskustvo blizu su ali ne moraju biti optimalna- Simulacioni (eksperimentiranje na racunarskom modelu)

7 DIMENZIONALNOST - Dvodimenzionalni- Višedimenzionalni

10

Page 11: OPERACIONA ISTRAZIVANJA

8 ZATVORENOST - Zatvoreni- Otvoreni

Posebna klasa modela su matematički modeli. Matematički modeli za opisivanje problema, koriste matematičke izraze i simbole. Na primjer, matematički izrazi F = m*a, U = R*I, E = m*c2, su matematički modeli određenih fizikalnih zakonitosti. Matematički modeli imaju niz prednosti u odnosu na verbalne modele. 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. Pri izgradnji modela treba zadovoljiti dva, u odredjenom smislu proturječna, 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.

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, međutim, u ovoj knjizi, mi ćemo se baviti samo problemima koji su zadani 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, to je procedura koja sadrži 'strategiju traženja najboljeg

rješenja' • (U literaturi, koja se bavi OI, najčešće se pod nazivom »model« podrazumjeva i skup ograničenja

i funkcija cilja, pa ćemo mi u nastavku koristiti takav pristup). • Formalna matematička struktura izbora najboljih rješenja se može šematski predstaviti

sljedećom slikom:

11

Page 12: OPERACIONA ISTRAZIVANJA

Formalna matematička struktura se može šematski predstaviti sljedećom slikom:

Model, 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. Oblast OI koja se bavi ovom vrstom modela naziva se matematičko programiranje.

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. Pošto je u OI cilj naći najbolje (optimalno) rješenje, potrebno je, znači, odrediti takve veličine upravljačkih promjenljivih koje zadovoljavaju sva ograničenja i koje funkciji cilja daju ekstremalnu vrijednost.

Da bi se to postiglo, potrebno naći ili razviti odgovarajuću (najčešće računarski potpomognutu) proceduru za rješavanje postavljenog modela.

12

Page 13: OPERACIONA ISTRAZIVANJA

Mada može izgledati da je to glavna težina ukupnog zadatka, to najčešće nije slučaj. 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.Najveći napori su u predhodnim i narednim koracima u što je uključena i postoptimalna analiza o čemu će kasnije biti riječi. 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, optimalno rješenje.

Međutim, prema Nobelovcu Herbertu Simonu, u praktičnim problemima češće je cilj naći dovoljno dobro (engl. satisficing što je kombinacija riječi satisfactory i optimizing) nego optimalno rješenje. To prije svega zato, što često postoji konflikt između različitih željenih ciljeva – kriterija. Efikasniji i realniji pristup je naći rješenje koje u određenoj mjeri zadovoljava sve postav-ljene kriterije (dovoljno dobro rješenje).Razlika između optimalnog i dovoljno dobrog je razlika između teorije i prakse. Jedan od vodećih OI istraživača u Engleskoj Samuel Eilon je rekao: „Optimizacija je nauka krajnosti (ekstrema), dovoljno dobro je umjetnost izvodljivog“. U procesu izbora metoda za rješavanje, može se, dakle, 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.

U praksi se pogodniji drugi pristup jer, s jedne strane, uproštavanja mogu dovesti u pitanje validnost modela, dok s druge strane, zbog uvjek prisutne približnosti u određivanju parametara modelaNaime, optimalno rješenje za model ne mora biti optimalno rješenje realnog problema.

Vrlo je korisna dodatna analiza u smislu šta – ako, tj. analiza šta će se desiti sa optimalnim rješenjem ako se neke pretpostavke promijene.Takva analiza se radi kada je već nađeno optimalno rješenje modela i naziva se postoptimalna analiza. 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“. Uobičajen definicija senzitivih parametara je sljedeća: „Za matematički model, koji ima specificirane vrijednosti za sve parametre, senzitivni prametri modela su parametri koji se ne mogu promijeniti a da se ne promjeni optimalno rješenje“ Identificiranje senzitivnih parametara je vrlo bitno. Greške u procjeni vrijednosti senzitivnih parametra mogu dovesti do suštinski pogrešnih rješenja. Također, ako u fazi korištenja modela dođe promjene vrijednosti senzitivnog parametra onda je to siguran znak da treba mijenjati rješenje.

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. Naime, prva verzija računarskog programa uvjek ima određeni broj grešaka. Testiranjem se

13

Page 14: OPERACIONA ISTRAZIVANJA

greške otkrivaju i popravljaju. Bez obzira što neke sitnije greške neće biti otkrivene u procesu testiranja, bitne greške će se otkriti i zadovoljavajuće popraviti i tada će program biti spreman za realnu upotrebu.Slično, prva verzija složenog matematičkog modela sadrži mnogo nedostataka. Neki bitni faktori i/ili međuveze mogu biti zanemareni, a neki parametri mogu biti pogrešno procijenjeni. Kroz proces testiranja nastoje se otkloniti svi bitni nedostaci modela. Taj proces testiranja i poboljšanja modela se naziva validacija modela (model validation).Vrlo je teško preciznije definirati pravila za validaciju modela jer taj proces dominantno zavisi od prirode problema koji se modelira. Međutim, postoje neki postupci koji uvjek pomažu u ovom procesu kao na pr. provjera da li su u svim matematskim izrazima konzistentno korištene jedinice mjera, zatim da li se sa promjenama vrijednosti upravljačkih promjenljivih izlazne vrijednosti modela mijenjaju na prihvatljiv način i slično.Sistematičniji je pristup je korištenje retrospektivnog testa. Naime, kada je to izvodivo, koriste se historijski podaci i provjerava da li model daje iste rezultate kao što se to dešavalo u prošlosti. 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, sljedeći korak je instaliranje dobro dokumentiranog sistema za primjenu modela prema uputstvima menadžmenta. Taj sistem uključuje model, proceduru za dobijanje rješenja (uključujući postoptimalnu analizu) i operativne procedure za implementaciju. U ovoj se fazi ispituju i uvjeti pod kojim vrijedi dobijeno rješenje. Ako se mijenjaju parametri modela (veličine na koje se ne može utjecati) ili se mijenjaju odnosi između veličina (relacije), može se desiti da se mijenja i optimalno rješenje.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, kao i pravila za modifikaciju rješenja u tim slučajevima.Sistem je u pravilu računarski realiziran i može sadržavati veći broj računarskih programa.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). Poslije korištenja programa za dobijanje rješenja, dodatni programi mogu automski implementirati dobijene rezultate. U drugom slučaju, koristi se interaktivni računarski podržan sistem - Sistem za podr-šku odlučivanju (Decision Support System – DSS). Drugi programi mogu generirati »upravljačke izvještaje« kako bi interpretirali izlaze iz modela i implikacije koje rezulati izraču-navanja predviđaju.

Faze primjene OI – Implementacija

14

Page 15: OPERACIONA ISTRAZIVANJA

Posljednja faza OI studije je njegova imlementacija, tj. ostvarivanje efekata iz znanja koja su ugrađena u kompletno rješenje. 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.Metode operacionih istrazivanja su, u pravilu, orjentirane na konkretnu upotrebu. Nažalost, daleko je veći broj optimalnih rješenja, koja su dobijena na papiru, od onih koji su praktično primjenjena. Primjena rješenja zahtijeva od operacionih istraživača posebnu vještinu komuniciranja sa korisnicima. Potrebno je motivirati i rukovodioce i izvršioce da primjene predložena rješenja. 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. • Tim operacionih istraživača nije dovoljno osposobljen da rukovodiocima i izvršiocima, na

pravilan način, obrazloži rezultate istraživanja i način njihog korištenja.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. • Nedostaci u obrazovanju visokih i srednjih rukovodilaca i nemogućnost da prihvate metode

operacionih istraživanja • Nedostatak odgovarajućih podataka za primjenu modela. • 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, 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.

Najdelikatnije faze operacionih istrazivanja nisu predmet predavanja na univerzitetskim kursevima. Kao što se plivanje moze učiti jedino u vodi, da bi neko bio učitelj plivanja mora najmanje znati plivati. Tako je za rješavanje složenih zadataka iz prakse potrebno, pored poznavanja metoda i modela operacionih istrazivanja, razumjevanja teorijskih osnova na koje se ovi modeli oslanjaju, imati i praktična iskustva koja se jedino mogu steći kroz praktične primjene ovih metoda i modela. Jer, OI istraživač mora znati identificirati probleme koje OI metode mogu riješiti, mora znati kako struktuirati problem u neki od standardnih matematičkih modela i, na kraju, mora znati kako primijeniti ili razviti računarske alate da bi našao rješenja problema.

MATEMATIČKO PROGRAMIRANJE

Skup problema opisanih matematičkim jezikom, kod kojih je zadatak naći ekstrem neke funkcije uz zadana ograničenja, naziva se problemima (zadacima) matematičkog programiranja (MP).

15

Page 16: OPERACIONA ISTRAZIVANJA

1. SIMULACIJA DISKETNIH SISTEMA

1.1. Obnavljanje statistike

1.1.1. DogađajSvi rezulati nekog eksperimenta, koji se mogu pojaviti i čiji je ishod nepoznat, u teoriji vjerovatnoće se nazivaju događaji. Događaji mogu biti :

- Sigurni- Nemogući- Slučajni.

Sigurni događaji se ostvaruju uvijek, pri svakom ponavljanju.Nemogući događaji se ne ostvaruju nikad. Slučajni događaji se mogu a ne moraju ostvariti.Svaki mogući ishod nekog eksperimenta zove se elementarni događaj. Događaje iz nekog skupa događaja možemo označiti sa A, B, C, ..., siguran događaj sa I, a nemoguć sa O. Za naprije definirane događaje vrijede pravila Bulove algebre.

1.1.2. Slučajna varijablaSvaki slučajni ishod nekog eksperimenta moguće je izraziti nekim realnim brojem. Tada se slučajni ishodi tog eksperimenta mogu opisati pomoću neke promjenljive X koju zovemo slučajna varijabla ili slučajna veličina. Ako je skup vrijednosti koje može uzeti promjenliva X konačan ili prebrojiv tada se radi o diskretnoj slučajnoj varijabli, a ako taj skup sadrži sve realne brojeve ili neki interval realnih brojeva tada je to kontinuirana slučajna varijabla.

Primjer 1.1.Ako se baca novčić tada možemo dobiti jedan od dva elementarna događaja:

- A – pismo- B – glava

čiji je ishod slučajna diskretna varijabla.

Primjer 1.2.Ako takmičari gađaju u metu onda rastojanje pogotka od središta mete može uzeti bilo koju vrijednost veću od nule. Ishod je u ovom slučaju kontinuirana slučajna varijabla.

1.1.3. Funkcija raspodjeleDistribucija 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.

16

Page 17: OPERACIONA ISTRAZIVANJA

Funkcija raspodjele ima sljedeća svojstva:1. F(-oo) = 02. F(x) je neopadajuća funkcija od x

3. F(x) je neprekidna s desna (definirana je u tački x = a postoji limx→a

f (x ) i njegova je vrijednost f(x)

s desna ako vrijedi za limx→a+0

f (x ) ).

Diskretna slučajna varijabla X može poprimiti vrijednosti x i (i = 1, 2, ...) sa vjerovatnoćama P(X=xi)=pi

i ima funkciju razdiobe F ( x )=∑x i≤ x

pi.

Neprekidna slučajna varijabla X ima vjerovatnoću, da poprimi određenu vrijednost x i, jednaku nuli. Zato se posmatra vjerovatnoća da X poprimi vrijednost iz nekog konačnog intervala [a,b]. Neka je to funkcija f(t), funkcija gustoće vjerovatnosti:

P (a≤ X ≤b )=∫b

a

f ( t )dt

Tada imamo neprekidnu funkciju razdiobe:

F ( x )=P (X ≤ x )∫−∞

x

f ( t )dt

i neprekidnu slučajnu varijablu.

Vjerovatnost kao površina

Vjerovatnost F ( x )=P (X ≤ x ) možemo intepretirati kao površinu između funkcije gustoće f(x) i apcise na intervalu −∞<t ≤ x.

Primjer 1.3.Testira se 5 sklopova. Svaki naredni sklop se testira pod uvjetom da se predhodni pokazao ispravnim. Naći zakon raspodjele slučajne veličine X – broj testiranja, ako je vjerovatnoća ispravnosti sklopova p = 0,9.

17

Page 18: OPERACIONA ISTRAZIVANJA

Rješenje:Slučajna veličina X ima vrijednosti:

x1 = 1, x2 = 2, x3 = 3, x4 = 4, x5 = 5Ako je prvi sklop neispravan testiranje se prekida.

P(X=1) = 1-0,9 = 0,1Vjerovatnoća da će se postupak prekinuti nakon testiranja prvog sklopa je 0,1.Ako je prvi sklop ispravan, a drugi neispravan, dobijemo vjerovatnoću:

P(X=2) = 0,9 * 0,1 = 0,09Ako su prva dva sklopa ispravni, a treći neispravan, dobijemo vjerovatnoću:

P(X=3) = 0,92 * 0,1 = 0,081Ako su prva tri sklopa ispravna, a četvrti neispravan, dobijemo vjerovatnoću:

P(X=4) = 0,93* 0,1 = 0,0729

Sada se mogu desiti dva slučaja:a. Prva četiri sklopa su ispravni, a peti je neispravan:

Pa(X=5) = 0,94 * 0,1 = 0,06561b. Svi su sklopovi ispravni:

Pb(X=5) = 0,95 = 0,59049Odnosno

P(X=5) = Pa(X=5) + Pb(X=5) = 0,6561

Zakon raspodjele slučajne veličine X je dat tabelom:

Vidi se da je :

18

Page 19: OPERACIONA ISTRAZIVANJA

1.2. Osnovno o simulaciji

Simulacija je proces proučavanja ponašanja postojećeg ili predloženog sistema posmatranjem ponašanja modela koji predstavlja (reprezentira) sistem. Simulacija je oponašanje (imitacija) realnog sistema ili procesa koja se odvija u određenom periodu vremena. Simulirajući sistem mi možemo posmatrati :

- performanse nekog postojećeg sistema- 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. Osnovni cilj modeliranja i simuliranja sastoji se u tome da se podaci o ponašanju nekog sistema dobiju ne proučavanjem samog sistema, nego se ponašanje sistema proučava tako da se napravi (kreira) model, pa se, zatim, eksperimentiranjem na takvom modelu dolazi do saznanja o ponašanju postojećeg ili nepostojećeg sistema.

„Sistem je zbir elemenata složenih u odredjenom obliku i usmjerenih k nekom cilju ili svrsi."

"Model je prikaz bitnih aspekata nekog stvarnog sistema (ili sistema koji ce se sagraditi) koji reprezentira osobine toga sistema u upotrebivom obliku."

19

Page 20: OPERACIONA ISTRAZIVANJA

Simulacija se tradicionalno posmatra kao metod koji se primjenjuje kada drugi analitički metodi zakažu. 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“.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, analitičke formule ili metode matematičkog programiranja. Jednostavni sistem čekanja (primjer će biti dat naprijed) spada u tu kategoriju. Analitičke metode su, jasno, najjači put da se poduhvati sa takvim problemom. Međutim, 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. U tim slučajevima simulacione tehnike mogu osigurati okvir za posmatranje, predviđanje, modificiranje i čak optimiranje sistema. Korištenje računara čini simulacione tehnike izvodljivim. Informacija dobijena posmatranjem pona-šanja sistema pri simulaciji, može sugerirati puteve modifikacije sistema. Izgradnja simulacionih modela je i danas vrlo skupa i troši mnogo vremena, međutim, ti nedostaci se znatno smanjuju u posljednje vrijeme bržim računarima i specijalnim simulacionim jezicima i softverskim proizvodima. Simulacioni paketi su sve više dostupni i lakši za korištenje, i sama simulacija je tako intuitivna i izgleda tako jednostavna za razumjevanje da je potrebno upozorenje. Simulacioni jezici i paketi su tako laki za „loše korištenje“ kao i za korektno korištenje. Računarski izlazi proizvedeni simulacionim paketima mogu biti vrlo impresivni. Ipak, postoji način da se dobije uspješna simulacija. Pravilno korištenje simulacione metodologije zahtjeva dobro prosuđivanje i uočavanje i jasno razumijevanje granica korištenja simulacionih modela, tako da analitičari mogu izvesti ispravne zaključke.Dobro zaključivanje vjerovatno dolazi samo kroz iskustvo.Ipak, mogu koristiti određene preporuke (uputstva) koje mogu pomoći u razvoju sposob-nosti razumijevanja i izgradnje simulacionih modela.Koristi, koje se mogu izvesti kroz korištenje simulacije, uključuju:

- Moguće je eksperimentirati sa novim dizajnom, politikama i procesima u industriji, ekenomici, vojsci i biološkim ambijentima, ... u kontroliranoj okolini simulacije, posmatrači mogu napraviti i pripreme mogu naraviti upoređenje sa predviđenim izlazima u eksperimentu.

- Moguće je komprimirati ili produžiti vrijeme. Na primjer, sudari u akceleratoru mogu biti prebrzi da bi ih instrument zapamtio, dok se erozija korita rijeke odvija tako sporo da onemogućava bilo kakvu intervenciju u proces. 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.

Iako razvoj simulacije može biti skup, model se može primjenjivati više puta u različitim vrstama eksperimenata. Simulacija se može koristiti za analizu predloženog sistema ili za eksperiment u realnom sistemu bez da „remetimo“ aktualni sistem. Eksperimentiranje na realnom sistemu, pogotovo sistemu u kojem su uključeni ljudi, često rezultira ponašanjem koje je modificirano kao odgovor na eksperiment. Tako, mi posmatramo pogrešan sistem.Jednostavnije i jeftinije je dobiti podatke iz simulacije nego iz realnog sistema. Simulacija se može koristiti da verificira ili ilustrira analitička rješenja problema. Simulacioni modeli ne moraju uvijek zahtijevati pojednostavljenja koja zahti-jevaju analitički modeli da bi bili rješivi. U skladu s tim, simulacioni model može biti „realističan najviše što je moguće“.

20

Page 21: OPERACIONA ISTRAZIVANJA

1.2.1. 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. U tu svrhu postoji jedna posebna strucna disciplina koja se naziva sistemskim inzenjerstvom (system engineering). No modeliranje i simuliranje nije nipošto jedini način kako se mogu proučavati sistemi. Postoji više različitih načina za proučavanje sistema. 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. Procjena kvalitete rezultata je najčešće subjektivna. 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, uz razumne troškove simulacije.Za proučavanje sistema postoji više mogućnosti. Neki od njih su:

- Eksperimentiranje na samom sistemu - Analiza sistema "na papiru" - Matematičko rješavanje problema - Modeliranje i simuliranje

Eksperimentiranje na samom sistemu se ponekad čini, ali dosta rijetko. Eksperimentiranje na postojećem realnom sistemu, remeti normalan rad samog sistema, pa je takvo eksperimentiranje veoma skupo. Najbolje to pokazuje eksperimentiranje s privrednim sistemom koje se je provodilo u nekim državama, ili eksperimentiranje s gradskim saobracćajem, koje može dovesti do kaosa. Ovaj postupak se ne može primijeniti na sisteme koje tek treba izgraditi.

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.

Metode za rješavanje pojedinih sistema su najčešće specifične za svaki konkretni sistem, iako se mogu koristiti i raniji rezultati. Ovakav način proučavanja sistema je veoma čest i daje dosta dobre rezultate, te se i dosta upotrebljava.Matematička analiza rada sistema se također često upotrebljava i daje dosta dobre rezultate, ako sistemi i njihov rad nisu suviše složeni. Ponekad se i složeni sistemi mogu analizirati na takav način, a rješenja koja se dobiju mogu biti veoma korisna, jer su općenita, a ne parcijalna kao ona što se dobiju modeliranjem i simuliranjem. Zbog toga je dobro koristiti takvo matematičko modeliranje uvijek kad se sistem može s dovoljno realizma prikazati matematičkim metodama. Kod složenih sistema to najčešće nije moguće. Naime, ako se složeni sistem želi prikazati s dovoljno realizma, tada se pri rješavanju ne može doći do odgovarajućih rješenja. Upravo ovaj razlog je dao značajan poticaj razvoju simuliranja s računalima. Postoji, dakako, i mogućnost da se sistem pretjerano idealizira, pa se onda mogu dobiti elegantna matematička rješenja, ali dosta beskorisna, jer ne predstavljaju dovoljno realno sistem koji se analizira. 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, mogu se dobiti rezultati koji su za praksu veoma korisni, iako nisu općeniti. Osnovna prednost ove metode jest njezin realizam. Ovaj pristup je primjenljiv i koristan za ispitivanje sistema koji su već u funkciji kao i za one koji se tek trebaju izgraditi.

21

Page 22: OPERACIONA ISTRAZIVANJA

1.2.2. SIMULIRANJE

Model najčešće prikazuje statičko stanje sistema, odnosno stanje u jednom momentu. Stanje sistema se prikazuje stanjem bitnih veličina sistema (parametara). Pod simuliranjem se podrazumijeva praćenje stanja sistema u vremenu. To znači da treba napraviti vremenski slijed, odnosno kronologiju stanja sistema. Tako se npr. u ekonomiji često upotrebljavaju jednostavni modeli ekonomskih sistema, kojima se stanje u pojedinim momentima izračunava "ručno" na papiru ili pomoću kalkulatora, koristeći svega nekoliko osnovnih veličina.Ponekad, se mogu upotrebljavati i jednostavne grafičke metode za praćenje ponašanja sistema u vremenu, pa se i to može smatrati simuliranjem. No očito je da su digitalna računala, zahvaljujući njihovoj moći i brzini obrade podataka, omogućila simuliranje na način, koji je bio neizvediv na bilo koji drugi način. Zato su modeli koji se formuliraju i rješavaju računarskim metodama posebna moderna kategorija modeliranja i simuliranja. Potrebno je naglasiti da je modeliranje i simuliranje eksperimentalna tehnika s tim da se eksperimentiranje vrši na modelu.

Na početku simuliranja se obično pretpostavi da se sistem nalazi u nekom željenom i stabilnom stanju. U nekom momentu simuliranog vremena se na sistem, odnosno, njegov model, nametne neki stres (poremećaj), pa se zatim promatra kako će se sistem ponašati. Poremećaj za ekonomski sistem može biti npr. promjena cijena nafte ili kamatnih stopa, promjena porezne politike, povećanje potražnje na tržistu itd. Stres za sistem ovjesenja automobilskog kotača može biti nailazak na "udarnu rupu" na cesti, a za sistem letilica ili plovila promjena smjera kretanja i slično. Takvi stresovi mogu dovesti do oscilacija i nestabilnog rada sistema ili do stabiliziranja na neželjenom nivou. Obično se želi stabilan rad sistema, a kod ekonomskih sistema stabilan rad uz maksimalni porast dohotka i drugih pozitivnih elemenata. Eksperimentiranjem na modelu traže se takvi parametri sistema koji bi omogućili najbolji rad, odnosno najbliži željenom."Simulacija je tehnika rješavanja problema. To je oblik imitacije u kojem je problem koji treba biti rješen zamijenjen modelom. Model predstavlja drugi problem, ali takav da se on lakše riješi."

22

Page 23: OPERACIONA ISTRAZIVANJA

Primjer 1.4.Dato je električno kolo sa konstantnim elementima R i L. U trenutku t = 0 na kolo je priključen istosmjerni izvor napona U. Odrediti struju u kolu. (R = 1 W; L = 1 H; U = 10 V)

Rješenje:Diferecijalna naponska jednačina za ovo kolo je:

L−d i

d t

+R ∙i=U

To je linearna nehomogena diferencijalna jednačina prvog reda. Prvo se riješi homogena diferencijalna jdnačina:

L ∙d i

d t

+R ∙i=0

Derivranjem i(t) se dobije:d i

d t

=dC (t)d t

∙ e−at−C (t ) ∙ a ∙ e−at=0

Uvrštenjem u polaznu nehomogenu diferencijalnu jednačinu:

L ∙( dC (t )d t

∙ e−at−C (t ) ∙ a ∙ e−at)+R∙C (t ) ∙e−at=U

i dalje

L ∙dC (t)d t

∙ e−at=U

jer je:

a=RL

Izvrši se razdvajanje promjenljivihd i

i=−Rdt

L

23

Page 24: OPERACIONA ISTRAZIVANJA

ln i=−RL

∙ t+ lnC

Rješenje homogene diferencijalne jednačine je:

i (t )=C (t )∙ e−at

gdje je:

a=RL

Razdvajanjem promjenljivih se dobije:

dC ( t )=UL∙eat ∙ dt

Poslije integriranja je:

C ( t )= UL∙a

∙ eat+C0=UR∙eat+C0

Uvrštenjem C(t) u rješenje homogene diferencijalne jednadžbe dobije se rješenje nehomogene linearne diferencijalne jednadžbe I reda :

i (t )=UR

+C0 ∙ e−at

Ako je u trenutku t = 0 vrijednost struje i = 0 dobijemo:

0=UR

+C0 ili C0=−UR

pa je

i (t )=UR∙ (1−e−at )

Struja je rastuća eksponencijalna funkcija koja za t = 0 ima vrijednost 0 a za t = ∞ vrijednost U/R. Za vrijednost zadanih parametara dobije se promjena struje kao na slici.

Isti zadatak se može riješiti i na drugi način. Početnu diferencijalnu jednačinu možemo napisati:

24

Izgled toka struje

0

2

4

6

8

10

12

0 0,1 0,2 0,3 0,4 0,5 0,6 t

i(t)

Page 25: OPERACIONA ISTRAZIVANJA

Lin+1−int n+1−tn

+R∙ in=U

in+1=in+U−R ∙ in

L∙ ( tn+1−t n )

Ako pretpostavimo da je vremnski korak kostantan i iznosi h dobićemo

in+1=in+U−R ∙ in

L∙h

Veličina L/R = t predstavlja vremensku konstantu eksponencijane funkcije. Prelazni proces se smatra završenim nakon vremena od 5 τ. Obično se uzima da je korak h za red veličine manji od τ:

h = 0,1 t = 0,1 0,1 / 1 = 0,01 secPošto je poznata početna vrijednost struje (i0 = 0) mogu se izračunati vrijednosti struje u narednim diskretnim trenucima vremena:

i1=0+10−1 ∙0❑

0,1∙0,01=1 A

i2=1+10−1 ∙10,1

∙0,01=1,9 A

i3=1,9+10−1 ∙1,90,1

∙0,01=2,71 A

Na isti način se dobije:i4 = 3,439 A i16 = 8,147 Ai5 = 4,095 A i17 = 8,322 Ai6 = 4,686 A i18 = 8,499 Ai7 = 5,217 A i19 = 8,649Ai8 = 5,695 A i20 = 8,784 Ai9 = 6,126 A i21 = 8,906 Ai10 = 6,513 A i22 = 9,015 Ai11 = 6,862 A i23 = 9,114 Ai12 = 7,176 A i24 = 9,202 Ai13 = 7,458 A i25 = 9,282 Ai14 = 7,712 A i26 = 9,354 Ai15 = 7,941 A i27 = 9,419 A

25

Page 26: OPERACIONA ISTRAZIVANJA

Primjer – program

1.2.3. Upotreba digitalnih računara u modeliranju i simuliranju

Upotreba digitalnih racunara u simulaciji može se podijeliti u dvije osnovne kategorije:- Upotreba računara sa specijaliziranim simulacijskim jezicima - Upotreba računara bez specijaliziranih simulacijskih jezika

Specijalizirani simulacijski jezici omogućavaju:- formulaciju modela uz upotrebu odgovarajućih simbola tih jezika (veoma različitih) - unos modela u digitalno računalo - izvođenje simulacije u računalu

Simulacijski jezici se mogu uključiti u kategoriju problemski orjentiranih jezika visokog nivoa. Naredbama takvih simulacijskih jezika mogu se izraziti relativno složene situacije i aktivnosti u sistemu na relativno jednostavan način. Za situacije koje se ne mogu prikazati takvim naredbama visokog nivoa, neki simulacijski jezici imaju dodatne elemente nižeg ranga ( napr. naredbe tipa fortrana ili nekog drugog programskog jezika opće namjene). To daje mogućnost modelaru da neke specifičnosti sistema koji modelira izrazi pomoću elastičnijeg nižeg programskog jezika.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. Tu se zapravo radi o eksperimentiranju na modelu, dok se ne dobiju zadovoljavajući rezultati.Drugi način upotrebe digitalnih računala u simuliranju je onaj kad se neki programski jezik, upotrebljava samo za rješavanje modela odnosno za izvođenje simulacije, a ne za formuliranje modela. Formuliranje modela je u ovom slučaju daleko teže i ne može se svesti na "tehnički" posao, nego predstavlja kreativan rad. Zato bismo formuliranje takvih modela radije nazvali "kreiranjem" modela, koji se formuliraju na specifičan način, pa često sadrže novine u pristupu.

1.2.3.1 Simulacijski jezici i načini njihova rada

26

Page 27: OPERACIONA ISTRAZIVANJA

Sistemi koji se proučavaju mogu se podijeliti u dvije osnovne grupe: - Kontinuirani sistemi - 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, a promjene do kojih dolazi su "glatke" (blage, neskokovite). Treba naglasiti da se govori o sistemu, a ne o njegovu 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. U vremenskom periodu između tih diskretnih momenata pretpostavlja se da nema promjena.

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, onda se i stanje sistema prikazano modelom prati kontinuirano, a i simulirano vrijeme teče kontinuirano. Naprotiv, ako se stanje sistema prati na digitalnom računaru, onda se stanje sistema pomoću modela izračunava, u određenim diskretnim koracima (trenucima), iako se promjene u sistemu mogu dogoditi i unutar tih intervala.Simulacijski programski jezici omogućavaju da se odabere taj korak, tako da izračunavanje stanja sistema bude “dovoljno gusto”, da se ne bi preskočila neka promjena u sistemu, koja bi se mogla dogoditi između dva takva koraka. Zato se ponekad, radi sigurnosti, pretjerano skraćuje korak (npr. 10, 100, ... puta), pa se za praćenje stanja sistema trosi 10, 100 ... puta više vremena. Time se višestruko povećavaju troškovi simulacije, rezultati su manje pregledni, jer su zatrpani nekorisnim podacima ("informacijsko smeće").Analogni računari i uopće analogne metode su prirodniji način za simuliranje kontinuiranih sistema i procesa, jer kod njih i simulirano vrijeme teče kontinuirano kao i u realnom sistemu, dok se pri simuliranju s digitalnim računalom simulirano vrijeme pomiče u koracima. No, s druge strane analogna računala imaju različitih nedostataka i ograničenja. Tako je tačnost analognih računara ogranicena kako zbog ograničene točnosti elektroničkih komponenti, tako i zbog načina realizacije matematičkih

27

Page 28: OPERACIONA ISTRAZIVANJA

operacija s analognim sklopovima.Međutim, odlučujuću ulogu igra velika rasprostranjenost digitalnih računara, dok su analogni računari rijetkost.Neki od simulacijskih jezika koje se koriste za simuliranje kontinualnih sistema na digitalnim računarima su:

- CSMP 1130 - CSMP 360 - ANSIR - MIMIC

Treba pomenuti da postoje i hibridni računari tj. kombinacija analognog i idigitalnog računara koji rade zajedno.

Prvi simulacijski jezici su uglavnom imitirali rad analognih računara (na pr. CSMP 1130), i imali su zanemarljive dodatne mogućnosti. Noviji jezici, osim simulacijskih funkcija koje imaju analogna računala, mogu koristiti naredbe proceduralnih jezika, kojima se simuliraju neke specifičnosti u modelu koje se ne mogu pretstaviti osnovnim blokovima analognog računala. Osim toga funkcije se pišu izravno kao simulacijske naredbe, a ne pomoću funkcionalnih blokova, kao što to treba za analogne računare i digitalno-analogne simulatore.Da bi se mogli simulirati kontinuirani sistemi potrebni su barem ovi elementi:

- Način (jezik) za formuliranje modela - Digitalni računar (hardver) u koji će se unijeti model i izvesti simulacija - 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 MODELIMANeki diskretni sistemi se mogu proučavati pomoću kontinuiranih modela ako se napravi tzv. agregacija (združivanje) pojedinih diskretnih događaja. (Tako je npr. svaka prodaja automobila ili njegova proizvodnja diskretan događaj. Isto vrijedi i za stanove, kuće, televizore itd. Međutim, te aktivnosti se mogu prikazati tako da se dnevna ili tjedna proizvodnja prikažu kao združena (agregirana) veličina (intenzitet prodaje ili proizvodnje). Niz takvih podataka se može prikazati kontinuiranom krivuljom npr. za 1 mjesec ili godinu, kao da je taj proces kontinuiran, pa se kao takav i simulira.) Razloga zašto se to tako radi ima više:

- Takvi modeli su, u pravilu, mnogo jednostavniji- Za kontinuirane sisteme postoje razvijene i provjerene metode razvijene za druga područja, pa

se one mogu koristiti. Posebno se primjenjuju metode analize sistema s povratnom vezom, koji mogu biti stabilni, oscilatorni ili nestabilni.

- Određeni procesi su lakše shvatljivi ako ih prikažemo u kontinualnoj formi.

Odgovor na pitanje da li se diskretni sistemi smiju simulirati kao kontinuirani je sljedeći:

28

Page 29: OPERACIONA ISTRAZIVANJA

U simuliranju se smije učiniti sve ono što daje dobre rezultate tj. takve da se od modela dobiju isti ili slični podaci kao što se dobiju od samog sistema. Drugim riječima, sistem i njegov model moraju se jednako ponašati ako se gledaju "iz vana". Da li su mehanizmi ili logika koja dovodi do takvog ponašanja u sistemu i njegovu modelu isti manje je važno.

1.3. Diskretna simulacija

Simuliranje diskretnih sistemaPri simuliranju diskretnih sistema pretpostavlja se da se promjene u sistemu i u njegovu modelu (događaji, en. events) mogu dogoditi samo u tačno određenim momentima - (vremenskim tačkama). Ako digitalni racunar izračunava stanje sistema baš za te momente, onda su modelom obuhvaćene sve promjene u sistemu.

U nekim simulacijskim modelima i jezicima pomiče se sat simuliranog vremena, ali se ne izračunava stanje sistema za svaki takav korak, nego samo za onaj u kojem dolazi do promjene stanja sistema. Naime, simulacijski program nakon pomaka sata simuliranog vremena, najprije provjerava da li u tom času dolazi do promjene stanja sistema, pa ako dolazi onda se izračunava novo stanje sistema, a ako ne 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

29

Page 30: OPERACIONA ISTRAZIVANJA

1.3.1. Diskretni simulacioni modeliRač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 modeliU 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:

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).

30

Page 31: OPERACIONA ISTRAZIVANJA

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 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.

31

Page 32: OPERACIONA ISTRAZIVANJA

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.

32

Page 33: OPERACIONA ISTRAZIVANJA

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. Dalje, 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.

33

Page 34: OPERACIONA ISTRAZIVANJA

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 raspodjelomJedan 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 X∙ n + c) podijeli sa m.

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.:

34

Page 35: OPERACIONA ISTRAZIVANJA

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:

uniformni slučajnibroj=cijeli slučajni broj+ 1

2m

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

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

35

Page 36: OPERACIONA ISTRAZIVANJA

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:

f ( x )={λ e−λx ,∧x ≥00 ,∧x<0

Tome odgovara kumulativna funkcija raspodjele data sa

f ( x )=∫−∞

x

f (t )dt=¿ {1−e− λx ,∧x≥00 ,∧ x<0

¿

Sl. 1.x. Transformacija uniformnih slučajnih brojeva iz intervala (0,1) u eksponencijalno distribuirane brojeve

Neka je R uniformni slučajni broj iz (0,1) i neka je F(x) = R slijedi da je x=F−1(R)Tada se x može izraziti preko R:

F ( x )=1−e− λx=R

e− λx=1−R

−λx=ln(1−R)

x=−1λln(1−R)

Ova relacija se naziva slučajni generator za eksponencijalnu distribuciju (random variate generator for exponential distribution).Često se zbog jednostavnosti (1-R) zamjenjuje sa R jer su obje vrijednosti uniformno distribuirane na (0,1), pa se dobije relacija:

x=−1λln(R)

36

Page 37: OPERACIONA ISTRAZIVANJA

1.3.3. Simulacijski jezici za diskretne sisteme

Simulacijske studije su podržane širokim skupom softverskih paketa i jezika. Specijalizirani programski jezici su razvijeni u nekoliko posljednih decenija da pomognu simulacionim analitičarima za razvoj i korištenje simulacija realnih sistema. Simulacioni modeli mogu biti implementirani u nekom od tradicionalnih instrukcijskih jezika kao što su Fortran, C ili Pascal, funkcionalnom jeziku kao što je LIPS ili na nekom od novih jezika baziranom na objektnoj paradigmi. Simulacije razvijene direktno u općim programskim jezicima često rade mnogo efikasnije nego one implementirane u specijaliziranim simulacionim jezicima. Međutim mnogi analitičari smatraju da je bolje koristiti specijalne simulacione jezike. 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. Najčešće je to, vjerovatno, analitičareva osposoblje-nost za programiranje, odnosno, koji je jezik lagan za učenje i usklađen sa njegovim vještinama i iskustvom. Ne-programer može izabrati jezik koji je najlakši za učenje ili ima najbolju podršku, dok vještiji programer traži moćniji i fleksibilniji jezik sa dodatnim kontrolnim mogućnostima.Većina simulacionih jezika ima automatske mehanizme za prikupljanje statistika, generiranje izvještaja i “debagiranje” simulacija.

Simulacioni jezici

GASP (General Activity Simulation Program) - Kolekcija Fortranskih subrutina i može se koristiti na bilo kom računaru koji ima fortranski kompajler. Podržava događajima upravljane simulacije i kontinualne simulacije. Uključuje subrutine za inicijalizaciju, planiranje budućih događaja, generator slučajnih brojeva, prikupljanje statistika i generator izvještaja.SIMSCRIPT- Originalno je baziran na Fortranu (oko 1960-te). Sada je baziran na jeziku visokog nivoa (SIMSCRIPT II.5) i raspoloživ je za najveće računara. Podržava događajima upravljane simulacije, procesno orijentirane i kontinualne simulacije. SIMSCRIPT je baziran na konceptu entiteta, atributa i skupova. Entiteti mogu biti privremeni (kao korisnici u redu čekanja) ili stalni (kao serveri). Entiteti imaju atribute i oni sa sličnim atributima mogu formirati skupove.GPSS (General Purpose Simulation System)- Razvijen je u IBM-u oko 1960-te. Pošto je jednostavan za učenje, vjerovatno je najviše korišten simulacijski jezik. GPSS je visoko specijalizirani jezik posebno dizajniran za simulaciju sistema čekanja. Jezik omogućuje automatsko planiranje događaja, prikupljanje statistika, međutim, ti su mehanizmi skriveni korisniku. GPSS ima više sljedbenika (GPSS/H, SLX, GPSS/PC)SLAM- Na Fortranu baziran simulacioni jezik. Podržava događajima upravljane simulacije, procesno orijentirane i kontinualne simulacije. Procesno orijentirani pristup je baziran na vizuelnom konceptu mreža sa granama i čvorovima. Grane predstavljaju aktivnosti i time protok vremena. Automatski

37

Page 38: OPERACIONA ISTRAZIVANJA

povezuje napredovanje vremena, planiranje događaja, kreiranje i terminiranje entiteta, prikipljanje statistika i generiranje izvještaja.SIMULA- Na Algolu 60 baziran, objektno orijentiran simulacioni jezik (1966). Podržava definiranje klasa i objekata, procedura za manipulaciju objektima, zaštitne mehanizme za osiguranje enkapsulacije, i podršku za označa-vanje nasljeđivanja i podklasa.Raspoloživ je za mnoge mainframe sisteme. Dizajniran je za MS-DOS, OS/2 i Unix bazirane sisteme.

MODSIM- MODSIM je objektno orijentiran simulacioni jezik koji je naslijedio dosta sintakse od Modula-2 i simulacionih koncepata od SIMSCRIPT. MODSIM je stalna podrška za moderno softver inženjersto, ima dobro razvijenu biblioteku, “window-uziran” grafički interfejs i prenosiv je.Postoji i niz drugih softverskih proizvoda koji se mogu koristiti na uobičajenim platformama kao što su DOS, Windows, OS/2, Macintosh, Unix, DEC, ... Pošto simulacione studije koriste mnogo računarskog vremena za izvršavanje velikih simulacija, posljednjih decenija se radi na razvoju tehnologija koje će koristiti paralelne računare da bi se ubrzalo izvršenje simulacionih programa.

1.4. Posmatranje simulacijePostoje 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.

1.4.1. Prikupljanje statistika

Ako se, na primjer, simulira sistem čekanja, jasno je da su informacije koje treba dobiti od sistema istog tipa kao one koje dobijamo iz analitičkih formula čekanja. Biće, dakle, interesantno odrediti vrijeme koje korisnici troše u sisemu i čekaju prosječan broj korisnika u redu faktor iskorištenja servisa.Ako se pogleda Primjer 1.5. može se vidjeti kako se te informacije mogu prikupiti. Važno je uočiti, međutim, 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.Ne može biti izvedena generalizacija o “tipičnom” ponašanju sistema u . Ako je potrebno izvesti zaključke o pouzdanim karakteristikama simuliranog sistema, tada bi bilo potrebno razmotriti više slučajeva.Prosječno vrijeme u sistemu

Za svakog korisnika i se izračuna T i=vrijeme provedenousistemu=Vrijeme završetkaservisa – vrijemedolaska

Sumiramo sva vremena i podijelimo sa brojem korisnika:

Prosječno vrijemeusistemu=(∑i=1

N

T i)/N

38

Page 39: OPERACIONA ISTRAZIVANJA

U simulaciji postavimo sumu na nula i poslije svakog događaja “kompletiranje servisa” izračunamo T i za tekućeg korisnika i to dodamo na sumu. Na kraju simulacije izvršimo dijeljenje. Za Primjer 1.5.:

2+3+7+4+5+2+3+6+5+5=42

To podijelimo sa 10 (broj korisnika) i dobije se da je prosječno vrijeme provedeno u sistemu 4.2 vremenske jedinice.

Prosječno vrijeme čekanjaZa svakog korisnika i se izračuna W i=vrijemečekanja=vrijeme početka servisa – vrijeme dolaska=vrijemeusistemu – vrijemeservisa

Sumiramo ta vremena i podijelimo sa brojem korisnika:

Prosječno vrijemečekanja ¿(∑i=1

N

W i)/NU 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. Na kraju simulacije izvršimo dijeljenje. Za Primjer 1.5.:

0+0+2+3+3+0+0+2+0+4=14To podijelimo sa 10 (broj korisnika) i dobije se da je prosječno vrijeme čekanja 1.4 vremenske jedinice.

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. To “knjigovodstvo” zahtijeva da se upamti trajanje svake dužine reda tokom simulacije. U posmatranom primjeru Slika 1.x pokazuje dužinu reda u svakom od 38 vremenskih intervala.

Dužina reda je ili 0 ili 1 ili 2.dužina reda = 0 za 26 vremenskih jedinica

39

Page 40: OPERACIONA ISTRAZIVANJA

= 1 za 10 vremenskih jedinica= 2 za 2 vremenske jedinice

Tada jeprosječnadužina reda=(0 ∙26+1∙10+2 ∙2)/38=0,368

Iskorištenje servisaZa svaki događaj treba odrediti status raspoloživosti servera (zauzet ili nekorišten) i zapamtiti ga.Tada je

faktor iskorištenosti servera=28/38=0,74i

faktorneiskorištenosti=10/38=0,26 .

Posmatranja kao ova nam omogućuju da napravimo interesantne zaključke, kao na primjer, o korisnosti nabavke još jednog CPU kako bi se skratilo vrijeme čekanja. U ovom primjeru, sa prosječnim vremenom čekanja od 1,4 vremenske jedinice (što je stvarno mali dio prosječnog vremena izvršenja), gdje je red češće prazan nego pun, i CPU je neiskorišten 26 % vremena, ne izgleda opravdano nabaviti dodatni CPU.

1.4.2. Dizajn simulacionog eksperimenta

Pri dizajniranju simulacije sistema kod kojeg su događaji generirani slučajno, javlja se više pitanja:- Kako startati simulaciju- Šta mjeriti- Koje podatke prikupljati- Koliko dugo vršiti (run) simulaciju- Kako prepoznati da li je sistem dostigao ravnotežu- Koliko simulacija izvesti

40

Page 41: OPERACIONA ISTRAZIVANJA

- 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. Kada je program za simulaciju razvijen i spreman za izvršenje, moraju biti definirana početna stanja. 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 mogu se pojaviti i drugačiji modeli. Na primjer, kada se otvori banka, može se pretpostaviti da je sistem prazan da nema redova i da su “poslužitelji” slobodni. Međutim, ako simuliramo bolnicu, 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.

Kada treba početi posmatranje sistema i prikupljanje podataka o:- dužini reda- vremenu čekanja- iskorištenosti servera

Nije dobro početi prikupljanje statistika dok je sistem u svom stacionarnom stanju, međutim, tu je tačku teško odrediti precizno.

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. To je, međutim, teško znati unaprijed.Pitanja šta mjeriti i koje podatke prikupljati zavise naravno od cilja simulacije. Pri simulaciji linije čekanja, ima više očiglednih kriterija performansi koji su interesantni. Pri simulaciji općenitijih sistema, potencijalno je raspoloživa velika količina podataka; međutim, prikupljanje svih tih podataka je skupo i može usložniti simulacijski program. Efektivnost simulacije može zavisti od jasnih odluka analitučara da se mjere samo ona ponašanja koja su relevantna za studiju. 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. Postoje sistemi kojinikada ne postignu stacionarno stanje (na primjer, sistemi čekanja). Neki pokazuju periodičko ili neko drugo nestacionarno ponašanje. Često je teško unaprijed znati kada će sistem koji se simulira stvarno postići stacionarno stanje.Kada se sistem eventualno stabilizira znamo da dužina vremena da se to pojavi zavisi od početnih uvjeta. 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. Kada se završe značajne razlike, može biti logično pretpostaviti da je stacionarno stanje postignuto. (To, naravno, može biti privremeni fenomen. Kako to znati sigurno?)

Kada je simulacioni program razvijen i kada su ustanovljeni svi dizajnirani prametri za jedno izvršenje simulacije, sljedeće je pitanje koliko simulacija uraditi. Naime, vjerovatno će biti statističkih varijacija u mjerama performansi sistema prilikom svake simulacije.Koliko uzoraka je potrebno da bismo bili sigurni da smo ustanovili realnost sistema koji je modeliran?

41

Page 42: OPERACIONA ISTRAZIVANJA

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, mi možemo upoređivati sisteme sa jednim CPU i sisteme sa dva CPU-a od kojih svaki ima 60% brzine prvog CPU-a. Da bi se napravila takva upoređenja, poželjno je napraviti niz eksperimenata za svaki od slučajeva. Preporuke, koje se mogu napraviti iz takvih posma-tranja, mogu se odnositi na mogućnosti, prednosti ili cijene alternativnih rješenja.

42

Page 43: OPERACIONA ISTRAZIVANJA

4. MATEMATIČKO PROGRAMIRANJELINEARNO PROGRAMIRANJE

- ponavljanje -

MATEMATIČKO PROGRAMIRANJE

U matematici, 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 jef(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). Mnogi realni i teorijski problemi se mogu biti modelirani u ovako općem okviru.Standardno, A je neki podskup Euklidskog prostora R često specificiran kao skup ograničenja, jednačina ili nejednačina koje članovi iz A moraju zadovoljavati. Elementi od A se nazivaju dopustiva rješenja. Funkcija f se naziva funkcija cilja, ili funkcija koštanja. Dopustivo rješenje koje minimizira (ili maksimizira, ako je to cilj) funkciju cilja naziva se optimalno rješenje.U općem slučaju može biti više lokalnih minimuma i maksimuma, 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. Lokalni maksimum se definira slično. 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. Cjelobrojno programiranje – je linearno programiranje u kojem neke ili sve promjenljive imaju ograničenje da mogu uzimati samo cjelobrojne vrijednosti. Kvadratno programiranje – funkcija cilja f može imati kvadratne članove, dok je skup A definiran koristeći samo linearne jednačine i nejednačine.

43

Page 44: OPERACIONA ISTRAZIVANJA

Nelinearno programiranje – opći slučaj kod kojeg funkcija cilja i/ili ograničenja mogu imati nelinearne dijelove.Stohastičko programiranje – neka od ograničenja zavise od slučajnih promjenljivih. 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. Optimizacija neograničenih dimenzija – skup dopustivih rješenja je podskup prostora neograničenih (beskonačnih) dimenzija, kao i prostor funkcija.

NELINEARNO PROGRAMIRANJENelinearno programiranje (NLP) spada u grupu determinističkih modela za rješavanje velike klase statičkih upravljačkih zadataka. Svaki upravljački zadatak kod koga je funkcija cilja F(X) i/ili skup ograničenja L definiran nelinearnim zavisnostima (funkcija cilja nelinearnom funkcijom, a ograničenja nelinearnim algebarskim jednačinama ili nejednačinama), je zadatak nelinearnog programiranja, čije se optimalno rješenje pronalazi nekom od metoda, koja najvise odgovara za pronalaženje rješenja konkretnog zadatka. Za razliku od zadataka linearnog programiranja, zadaci nelinearnog programiranja se ne mogu rješavati nekom univerzalnom metodom, kao što je to bio simpleks metod u linearnom programiranju, već je za svaki konkretni zadatak, zavisno od njegovog matamatičkog modela, dimenzija i karaktera nelinearnosti, potrebna nova metoda ili prilagođavanje postojeće. U velikom broju slučajeva ne postoji ni prikladna metoda na bazi koje se može naći optimalno rješenje formulisanog zadatka. To znači da postoji još uvijek veliki broj nerješivih zadataka ili u krajnjem slučaju vrlo teško rješivih zadataka. Za rješavanje zadataka nelinearnog programiranja postoji niz posebno razvijenih metoda, koje se formalno razlikuju po obliku matematičkog modela, tj. po obliku i dimenzijama funkcije cilja i skupa ograničenja. Tako postoje specijalne metode za:

• linearna ograničenja • za kvadratni oblik funkcije cilja • za cjelobrojne vrijednosti promjenljivih • itd.

Otuda potiču i neki posebni nazivi za takve specifične zadatke nelinearnog programiranja, kao što su: kvadratično programiranje, cjelobrojno programiranje, itd.

MATEMATIČKI MODEL NLP Opći oblik modela problema nelinearnog programiranja (NP) moze se formulirati na slijedeci nacin: Odrediti maksimum ili minimum funkcije (cilja); F (X) = F (x1, x2, …, xn) (1.1) Pod uslovima definiranim sistemima jednacina i/ili nejednačina:

44

Page 45: OPERACIONA ISTRAZIVANJA

gi (X) = gi (x1, x2, …, xn) {¿ ¿ } {¿ ¿ }¿{}

0 i = 1, 2, …, m (1.2) Funkcije F (X) i gi (X) mogu imati bilo kakav oblik. Uslovi nenegativnosti promjenljivih nisu posebno izdvojeni već su uključeni u nejednačine.Rješenje naprijed navedenog problema definira se u opcem slucaju kao zadatak nalaženja n-dimenzionalnog vektora, odnosno, tačke X = (x1, x2, …, xn) u n-dimenzionalnom Euklidovom prostoru u kojoj funkcija cilja F (X) = F (x1, x2, …, xn) ima odredjenu vrijednost, pri cemu je zadovoljen sistem ograničenja (1.2). Cilj rjesavanja zadatka je da se na ovako definiranom skupu mogucih rješenja odredi tačka X*, za koju vazi da je F (X*) = (max ili min) F (X). Ova tačka se naziva optimalnom tačkom ili rješenjem problema nelinearnog programiranja, pod uslovom da ta tačka zadovoljava unaprijed definirana ograničenja zadatka. U matematičkoj analizi zadaci ovog tipa nazivaju se zadacima iznalaženja uslovnog ekstrema. Posebni slučajevi zadataka nelinearnog programiranja javljaju se kada F i G nisu istovremeno nelinearne funkcije, tj. kada je samo F ili G nelinearna funkcija. Na toj osnovi, vezujući se za oblik funkcije F(X) i G(X), vrši se formalna klasifikacija zadataka nelinearnog programiranja. Neke od tih klasifikacija, 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, • Cjelobrojno programiranje.

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), koja zavisi od • više promjenljivih, pri čemu te promjenljive moraju zadovoljavati posebne uslove definisane • skupom ograničenja oblika (1.2). 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,2,…,m), već i njihovu neprekidnost, kao i egzistenciju njihovih parcijalnih izvoda drugog reda, što u većini slučajeva nije ispunjeno ili ako je ispunjeno, treba mnogo vremena za provjeru.

• Klasični matematski aparat varijacionog računa postaje nemoćan, ako se radi o traženju ekstrema funkcije kaja zavisi od više promjenljivih (npr. n¿ 5). Međutim, realni zadaci imaju desetine, stotine ili hiljade promjenljivih, što čini jednu od osnovnih prepreka u primjeni klasičnog matematskog aparata.

Osim ova dva razloga postoje i drugi razlozi koji su uticali na stvaranje posebne metodologije za numeričko rješavanje zadataka nelinearnog programiranja, primjenom računara. 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.Funkcija F(X) se naziva konveksnom (konkavnom) u zavisnosti od toga da li je:

45

Page 46: OPERACIONA ISTRAZIVANJA

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. Ona zauzima centralno mjesto u teoriji konveksnog programiranja definisanog uslovom (3) i predstavlja uopštenje klasične metode Langrange-ovih multiplikatora, koja omogucava pronalaženje ekstremne vrijednosti funkcije više promjenljivih, pri skupu ograničenja koja su zadana jednačinama. Kuhn-Tucker-ova teorema proširuje predhodni metod na pronalaženje ekstremne vrijednosti funcije više promjenljivih, pri ograničenjima koja mogu biti i nejednačine. Teorema Kuhn-Tucker-a daje potreban i dovoljan uslov koje mora ispunjavati vektor X, koji predstavlja rješenje zadatka opisanog sa (1) i (2). Kriterijumi ispunjavanja potrebnog i dovoljnog uslova formiraju se i provjeravaju na bazi uopštene Langrange-ove funkcije F(X,L). Za formiranje ove funkcije uvedimo m novih promjenljivih koje se zovu Langrange-ovi multiplikatori, a koje ćemo označiti sa λ 1,λ2,...,λm. Drugim riječima, 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:

φ (X , Λ )=F (X )+∑i=1

m

λ ι γι (X ) (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), tada i samo tada kada postoji vektor Λ=Λ* takav da je:X*≥0, Λ*≥0, (5)Φ(X*, Λ) ≤ F(X*, Λ*) ≤ φ(X, Λ*), (6)Za sve vrijednosti X*≥ 0, Λ*≥ 0.

46

Page 47: OPERACIONA ISTRAZIVANJA

Tada funkcija φ u tački (X*, Λ*) mora imati globalni minimum oblasti X ≥ 0 u odnosu na X i globalni maksimum u oblasti Λ* ≥ 0 u odnosu na Λ, ili drugim riječima: (X*, Λ*) predstavlja nenegativnu sedlastu tačku za funkciju φ.Zbog toga se ova teorema često naziva teorema o sedlastoj tački, 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. Rješenje X* minimaksnog zadatka predstavlja istovremeno rješenje minimizacije funkcije F(X) i obrnuto.Primjer izvođenja.

LINEARNO PROGRAMIRANJE

2.3. RJEŠENJE ZADATKA LP (ponavljanje)2.3.3. Simplex algoritam2.3.3.1. Algebra simplex algoritma2.3.3.2. Tabelarni oblik simpleks algoritma2.3.3.3. Vještačka početna baza

2.3. RJEŠENJE ZADATKA LPAko postoji optimalno rješenje problema LP , ono se nalazi u vrhu dopustivog prostora. Ova bitna osobina problema LP je osnov za opšti metod nazvan Simplex metod. Znači, dovoljno je ispitati vrijednosti funkcije cilja u konačnom broju vrhova da bi se našlo optimalno rješenje.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)

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. Procedura se zaustavlja kada se ne može naći nijedan susjedni vrh u kojem funkcija cilja ima bolju vrijednost od tekućeg vrha.Ona rješava svaki problem LP ili ustanovi da nema dopustivog rješenja ili da ima rješenje u beskonačnosti.

2.3.3.1. Algebra Simplex algoritma

Standardna i normalna forma problema LPU pripremi za primjenu SA poći ćemo od standardne forme problema LP:

Maksimizirati Z = c1x1 + c2x2 + … + cnxn (2.1)pod uvjetom da bude zadovoljeno

a11 x1 + a12 x2 + ... + a1n xn <= b1

a21 x1 + a22 x2 + ... + a2n xn <= b2

... (2.2)am1 x1 + am2 x2 + ... + amn xn <= bm

i

47

Page 48: OPERACIONA ISTRAZIVANJA

x1 >= 0, x2 >= 0, ..., xn >= 0 (2.3)gdje su aij, cj, bi za i = 1, 2, …, m, j = 1, 2, …,n, zadani realni brojevi. Normalna forma problema LP se dobije kada se u ograničenja-nejednačine dodaju izravnavajuće (dodatne) promjenljive. Na taj način, uvodeći novih m promjenljivih, nejednačine se prevode u jednačine. Problem LP u normalnoj (proširenoj) formi je dakle:

Maksimizirati Z = c1x1 + c2x2 + … + cnxn (2.7)pod uvjetom da bude zadovoljeno

a11 x1 + a12 x2 + ... + a1n xn + xn+1 = b1

a21 x1 + a22 x2 + ... + a2n xn + xn+2 = b2

... (2.8)am1 x1 + am2 x2 + ... + amn xn + xn+m = bm

i x1 >= 0, x2 >= 0, ..., xn+m >= 0 (2.9)

gdje su aij, cj, bi za i = 1, 2, …, m, j = 1, 2, …,n, zadani realni brojevi. ili u matrično vektorskom obliku:Max Z = cT xUz ograničenja: Ax = bX >= 0Pretpostavićemo da su svi bi >= 0, i = 1, 2, ..., m i da je rang A = m.Simpleks algoritam se, kao većina iterativnih procedura za nalaženje optimalnih rješenja, 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čkeAko se ograničenja (2.8) posmatraju kao sistem od m jednačina sa n+m promjenljivih, taj sistem će imati rješenje u prostoru dimenzionalnosti:

n + m – m = nIz toga slijedi da se n promjenljivih može odabrati proizvoljno. Promjenljive koje se ne biraju proizvoljno (m promjenljivih) nazivaju se bazne promjenljive.Matrica ograničenja (2.8) ima sljedeću strukturu:

|a11a12 … a1n 1 0 … 0 ¿||a21 a22 … a2n 0 1 … 0¿||⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯¿|¿¿

¿¿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. Tada je rješenje dato sa:

48

Page 49: OPERACIONA ISTRAZIVANJA

xj = 0 za j = 1, 2, ..., ni

xn+i = bi za i = 1, 2, ..., mOvo rješenje se naziva bazno dopustivo rješenje jer zadovoljava uslove nenegativnosti (jer su svi bi>= 0). Ono pretstavlja vrh dopustivog prostora definiranog ograničenjima (2.8) Dakle, - početno bazno dopustivo rješenje problema LP zadanog sa (2.7) –(2.9) je:

x0 = (0, 0, ..., 0, b1, b2, ..., bm)- početna baza:

B0 = (xn+1, xn+2, ..., xn+m)- početna vrijednost funkcije cilja:

F0 = 0U SA promjenljive, koje imaju ulogu baznih promjenljivih, imaju sljedeća svojstva:

samo jedna bazna promjenljiva sa nenultim koeficijentom se može nalaziti u jednom ograničenju

bazne promjenljive u jednačini ograničenja imaju koeficijent 1

Nalaženje nove bazne dopustive tačkeSada je potrebno naći novu baznu dopustivu tačku (rješenje) u kojoj funkcija cilja ima “bolju” vrijednost. U SA to je susjedna bazna dopustiva tačka. 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. Potrebno je, dakle, promijeniti početnu bazu tako što će se jedna od nebaznih promjenljivih prevesti u baznu, a jedna od baznih prevesti u nebaznu promjenljivu. To se mora uraditi tako da se “poboljša” (u posmatranom slučaju uveća) vrijednost funkcije cilja.Ulazeći u bazu, promjenljiva uvećava svoju vrijednost sa 0 na neku pozitivnu veličinu (zbog bi > 0. Slučaj za bi = 0 razmotriće se kasnije). Pošto ta promjenljiva učestvuje u vrijednosti funkcije cilja tako što se množi se sa odgovarajućim cj, ona će uvećavati ili umanjivati vrijednost funkcije cilja u zavisnosti od toga da li je cj veće ili manje od nule.Iz toga slijedi da se, ako postoji cj > 0, uvođenjem odgovarajuće promjenljive (xj) u bazu, može uvećati vrijednost funkcije cilja.Ako ima više cj > 0, j = 1, 2, ..., n onda je kriterij za ulazak promjenljive u bazu:

Cp = max(cj: cj >0) (2.34) j Є(1, 2, ..., m)

što znači da u bazu ulazi promjenljiva odgovarajućeg indeksa xp.Sada je potrebno odabrati promjenljivu koja izlazi iz baze.Pošto je cilj da se u svakoj iteraciji što više uveća funkcija cilja a da naredno rješenje ostane dopustivo, 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. Ograničenja (2.8) se sada mogu napisati u obliku:

a1q xq + xn+1 = b1

a2q xq + xn+2 = b2

49

Page 50: OPERACIONA ISTRAZIVANJA

... (2.10)amq xq + xn+m = bm

----------------------------xq >= 0, xn+1 >= 0, xn+2 >= 0, ..., xn+m >= 0

Ako je aiq > 0 tada se xq može uvećati maksimalno do vrijednosti bi/aiq, pri čemu se xn+1 smanjuje do nule.Ako je aiq = 0, tada povećanje xq ne utiče na vrijednost xn+i, i xq može neograničeno rasti.Ako je aiq < 0, tada povećanje xq uvećava vrijednost xn+i, i xq može neograničeno rasti.Kako sva ograničenja moraju biti zadovoljena, bira se ono ograničenje koje je najstrožije. Iz toga slijedi da rješenje sistema (2.10) postoji onda i samo onda kada xq ne prelazi vrijednost datu sa:

tp = min (bi/aiq: aiq > 0) (2.35) i Є (1, 2, ..., m)Dakle, iz baze izlazi promjenljiva xn+p za čiji indexs p važi:

bp/apq = min (bi/aiq: aiq > 0) i Є(1, 2, ..., m)

Novo bazno rješenjeIzborom indeksa za promjenljivu koja izlazi iz baze i za promjenljivu koja ulazi u bazu izabrali smo vodeću kolonu i vrstu. Na presjeku vodeće vrste i kolone nalazi se vodeći element. Time je određeno koja će promjenljiva postati bazna i u kojem će se ograničenju nalaziti sa koficijentom 1.Transformacija u novi prošireni oblik dobije se na sljedeći način:U vodećoj vrsti p, nova bazna promjenljiva xq se izrazi preko ostalih promjenljivih

xq = 1/apq (bp – ap1 x1 – ap2 x2 – ... – apn+m xn+m) (2.36)Ovaj izraz za xq se uvrsti u sva ograničenja i funkciju cilja. Na taj način će se vodeća promjenljiva xq

pojaviti sa koeficijentom 1 u vodećoj vrsti (ograničenju), a u svim drugim ograničenjima kao i u funkciji cilja će imati koeficijent 0.

Ustanovljavanje optimalnog rješenjeDa 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.Ukoliko nijedan od koeficijenata nije veći od nule, vrijednost funkcije s više ne može uvećavati pa tekuće dopustivo bazno rješenje predstavlja optimalno rješenje.Efektivno to znači da treba uraditi sljedeće:

1. Vodeću vrstu podijeliti sa apq

2. Sve koeficijente u ostalim ograničenjima i odgovarajući koeficijent u funkciji cilja izjednačiti sa nulom:aiq = 0 i = 1,2, ..., m, i ≠ p cq = 0

3. Ostali parametri se mijenjaju p na sljedeći način:- koeficijenti matrice ograničenja:

50

Page 51: OPERACIONA ISTRAZIVANJA

aij’ = aij – aiq apj/apq i = 1, 2, ..., m, i ≠ p (2.37)j = 1, 2, ..., n, j ≠ q

- desne strane ograničenja:bi’ = bi – aiq bp/apq i = 1, 2, ..., m (2.38)

i ≠ p - koeficijenti u funkciji cilja:cj’ = cj – apj cq/apq j = 1, 2, ..., n (2.39) j ≠ q

Primjer 2.5Koristeći SA riješiti zadatak 2.1.Rješenje:

Matematički model je dat u (standardnom) obliku:Naći:max (Z(x)) = 3x1 + 1x2

uz ograničenja 0.5 x1 + 0.3x2 <= 1500.1x1 + 0.2x2 <= 60------------------------------x1 >= 0, x2 >= 0

Odbraćemo prve dvije promjenljive kao nebazne tj. dobiće se:x1 = 0x2 = 0i dvije jednačine sa dvije (bazne) nepoznate:1x3 + 0x4 = 1500x3 + 1x4 = 60-----------------------x3 >= 0, x4 >= 0

Prošireni oblik je:Naći:

max (Z(x)) = 3x1 + 1x2 + 0x3 + 0x5

uz ograničenja 0.5x1 + 0.3x2 + 1x3 + 0x4 = 1500.1x1 + 0.2x2 + 0x3 + 1x4 = 60---------------------------------------------x1 >= 0, x2 >= 0, x3 >= 0, x4 >= 0

- početno bazno dopustivo rješenje problema LP je: x0 = (0, 0, 150, 60)- početna baza: B0 = (x3, x4)- početna vrijednost funkcije cilja: F0 = 0

Nalaženje nove bazne dopustive tačke

51

Page 52: OPERACIONA ISTRAZIVANJA

Sada je potrebno naći novu baznu dopustivu tačku (rješenje) u kojoj funkcija cilja ima “bolju” vrijednost.Ulazeći u bazu, promjenljiva uvećava svoju vrijednost sa 0 na neku pozitivnu veličinu (zbog bi > 0. Pošto ta promjenljiva učestvuje u vrijednosti funkcije cilja tako što se množi se sa odgovarajućim cj, ona će uvećavati ili umanjivati vrijednost funkcije cilja u zavisnosti od toga da li je cj veće ili manje od nule. Kriterij za ulazak promjenljive u bazu je:

cp = max(cj: cj>0) = max (c1, c2) = 3 j Є (1, 2, ..., m)

što znači da u bazu ulazi promjenljiva odgovara-jućeg indeksa - x1

Sada je potrebno odabrati promjenljivu koja izlazi iz baze.Pošto je cilj da se u svakoj iteraciji što više uveća funkcija cilja a da naredno rješenje ostane dopustivo, 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. Ograničenja se sada mogu napisati u obliku:

0.5x1 + 1x3 + 0x4 = 1500.1x1 + 0x3 + 1x4 = 60-----------------------------------x1 >= 0, x3 >= 0, x4 >= 0

Pošto su a11 > 0 i a21 > 0 tada se x1 može uvećati maksimalno do vrijednosti 150/0.5 = 300, odnosno, 60/0.1 = 600 pri čemu se x3 odnosno x4 smanjuju do nule.Kako sva ograničenja moraju biti zadovoljena, bira se ono ograničenje koje je najstrožije. Pošto je prvo ograničenje strožije iz baze izlazi promjenljiva x3. Tako su određeni vodeća kolona (j = 1) i vodeća vrsta (i = 1). Slijedi da je vodeći element a11 = 0.5.

Novo bazno rješenje

Transformacija u novi prošireni oblik dobije se na sljedeći način:U vodećoj vrsti 1, nova bazna promjenljiva x1 se izrazi preko ostalih promjenljivih

x1 = 1/a11 (b1 – a12 x2 – a13 x3 – a14 x4) = = 1/0.5 (150 – 0.3x2 – 1x3 – 0x4)

Ovaj izraz za x1 se uvrsti u sva ograničenja i funkciju cilja. Na taj način će se vodeća promjenljiva x1

pojaviti sa koeficijentom 1 u vodećoj vrsti (ograničenju), a u svim drugim ograničenjima kao i u funkciji cilja će imati koeficijent 0.Efektivno to znači da treba uraditi sljedeće:

1. Vodeću vrstu podijeliti sa a11 = 0.5 pa se dobije: 1x1 + 0.6x2 + 2x3 + 0x4 = 300

2. Sve koeficijente u ostalim ograničenjima i odgovarajući koeficijent u funkciji cilja izjednačiti sa nulom:ai1 = 0 i = 1, 2 i ≠ 1c1 = 0

3. Ostali parametri se mijenjaju pna sljedeći način:

52

Page 53: OPERACIONA ISTRAZIVANJA

- koeficijenti matrice ograničenja:aij’ = aij – ai1 a1j/a11 i = 1, 2 i ≠ 1,

j = 1, 2, 3, 4 j ≠ 1a22’ = 0.2 – 0.1 0.3/0.5 = 0.14a23’ = 0 – 0.1 1.0/0.5 = 0.2a24’ = 1 – 0.1 0.0/0.5 = 1 - desne strane ograničenja:bi’ = bi – ai1 b1/a11 i = 1, 2 i ≠ 1, b2’ = 60 – 0.1 150/0.5 = 30

- koeficijenti u funkciji cilja:cj’ = cj – apj cp/apq j = 1, 2, 3, 4 j ≠ 1c2’ = 1 – 3 0.3/0.5 = - 0.8c3’ = 0 – 3 1.0/0.5 = - 6.0c4’ = 0 – 3 0.0/0.5 = 0

Novi prošireni oblik je sada:Naći:

max (Z(x)) = 0x1 – 0.8x2 – 6x3 + 0x4

uz ograničenja 1.0x1 + 0.6x2 + 2x3 + 0x4 = 3000.0x1 + 0.14x2 + 0.2x3 + 1x4 = 30---------------------------------------------x1 >= 0, x2 >= 0, x3 >= 0, x4 >= 0

- novo bazno dopustivo rješenje je sada: x0 = (300, 0, 0, 30)- nova baza je: B0 = (x1, x4)- nova vrijednost funkcije cilja: F0 = c1x1 = 3*300 = 900Dobili smo zadatak koji po svom obliku potpuno odgovara početnom zadatku, tj. na njega možemo primijeniti isti postupak promjene baznog rješenja.U tom cilju ćemo ispitati vrijednosti koeficijenata u tekućoj funkciji cilja.

Ustanovljavanje optimalnog rješenjePošto nijedan od koeficijenata tekuće fukcije cilja nije veći od nule, ovo rješenje je ujedno optimalno rješenje zadatka.

2.3.3.2. Tabelarni oblik Simplex algoritmaAlgebarski oblik SA je pogodan za razumjevanja postupka kojim se, mijenjajući po određenim pravilima bazna dopustiva rješenja, može naći optimalno rješenje. Algebarskim postupkom je ujedno određeno mije-njanje parametara iz jednog baznog dopustivog rješenja u drugo. To omogućuje da se poblem LP predstavi u formi tabele i da se, koristeći naprijed definirana pravila izmjene parametara, dođe do optimalnog rješenja.Zadatak LP se može tabelarno predstaviti sljedećom tabelom

53

Page 54: OPERACIONA ISTRAZIVANJA

Postupak - Formira se početna simpleks tabela- Ako su svi cj <= 0, nađeno je optimalno bazno rješenje- Ako za neko j za koje je cj > 0, aij <= 0 za sve i = 1, 2, ..., m, tada je funkcija cilja

neogra-ničena odozgo pa problem nema rješenja. Prekida se dalji rad- Ako postoje cj > 0, 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. Na taj način se određuje indeks p

ograničenja čija postojeća bazna promjenljiva izlazi iz baze.- Generira se nova simpleks tabela primjenom algebarskih transforamcija (2.37)-(2.39)

navedenih naprijed

Primjer 2.6Koristeći tabelarnu formu SA riješiti zadatak 2.1.Rješenje:Početna simpleks tabela:

Izbor vodeće kolone i vodeće vrste:

54

Page 55: OPERACIONA ISTRAZIVANJA

Nova simpleks tabela (primjena transformacija (2.37)-(239)):

Pošto su svi koeficijenti tekuće funkcije cilja manji ili jednaki nuli, tekuće bazno dopustivo rješenje je optimalno rješenje.- optimalno rješenje je sada:

x0 = (300, 0, 0, 30)- baza optimalnog rješenja je:

B0 = (x1, x4)- optimalna vrijednost funkcije cilja:

F0 = c1 x1 = 3 300 = 900 Primjer 2.7Dva proizvoda P1 i P2 se proizvode na tri grupe mašinaM1, M2 i M3

- Vrijeme obrade (v.j.)- Kapaciteti mašina (v.j.)- Dobit (n.j.)

su dati u sljedećoj tabeli:

55

Page 56: OPERACIONA ISTRAZIVANJA

Pored toga, procjena je da se zbog ograničenih mogućnosti tržišta, proizvod P2 ne treba proizvoditi više od 550 komada u posmatranom periodu.Rješenje:Matematički model zadatka:Naći

max Z = 800 x1 + 1000 x2uz ograničenja

30 x1 + 16 x2 <= 22 80024 x1 + 19 x2 <= 14 10011 x1 + 26 x2 <= 15 950 x2 <= 550--------------------------------x1 >= 0, x2 >= 0

Prošireni model je:Naći

max Z = 800 x1 + 1000 x2 + 0 x3 + 0 x4 + 0 x5 + 0 x6uz ograničenja

30 x1 + 16 x2 + 1 x3 + 0 x4 + 0 x5 + 0 x6 = 22 80024 x1 + 19 x2 + 0 x3 + 1 x4 + 0 x5 + 0 x6 = 14 10011 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, x2 >= 0, x3 >= 0, x4 >= 0, x5 >= 0, x6 >= 0

Početna simpleks tabela:

56

Page 57: OPERACIONA ISTRAZIVANJA

Simpleks tabela 2:

Simpleks tabela 3:

57

Page 58: OPERACIONA ISTRAZIVANJA

Simpleks tabela 4:

Pošto su svi koeficijenti tekuće funkcije cilja manji ili jednaki nuli, tekuće bazno dopustivo rješenje je optimalno rješenje.- optimalno rješenje je sada:

x0 = (531, 390, 0, 110, 0, 19)- baza optimalnog rješenja je:

B0 = (x1, x2, x4, x6)- optimalna vrijednost funkcije cilja:

F0 = c1 x1 + c2 x2 = 800*531 + 1000*390 = = 813 800

58

Page 59: OPERACIONA ISTRAZIVANJA

2.3.3.3. Vještačka početna bazaAko zadatak LP nema standardni oblik definiran sa (2.7) – (2.9), koji je pogodan za direktnu primjenu SA, može se primijeniti tehnika nazvana Metoda velikog M. Metoda velikog M se zasniva na uvođenju tzv. Vještačkih promjenljivih u ograničenja koja nisu tipa <=. Uvođenje vještačke promjenljive narušava odgovarajuće ograničenje, pa se izbacivanje vještačkih promjenljivih iz baze osigurava uvođenjem koecijenta M odgovarajućeg znaka (- kod traženja maksimuma i + kod traženja minimuma) u funkciju cilja.Ako tokom primjene SA vještačke promjenljive ne budu anulirane onda to znači da zadatak nije dopustiv.

Ograničenje tipa =Ako je jedno ili više ograničenja zadano u obliku:

ai1 x1 + ai2 x2 + ... + ain xn = bi (2.40)imamo ograničenje koje je jednačina, međutim, u tom ograničenju, u općem slučaju, nemamo nijednu promjenljivu koja zadovoljava uvjete da bude bazna promjenljiva.Da bi se i u tom ograničenju dobila promjenljiva koja može biti bazna, dodaje se tzv. “vještačka promjenljiva” i jednačina (2.40) dobije oblik:ai1 x1 + ai2 x2 + ... + ain xn + 1 xn+i= bi (2.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.40), odnosno, ograničenje (2.40) će biti zadovoljeno samo u slučaju da je xn+i jednako nuli. Znači, algoritam mora izbaciti ovu promjenljivu iz baze da bi rješenje bilo dopustivo.

59

Page 60: OPERACIONA ISTRAZIVANJA

Da bi se to postiglo, u funkciji cilja, vještačka promjenljiva se množi sa koeficijentom –M kod traženja maksimuma (sa +M kod traženja minimuma). Koeficijent M ima za red veličine veću vrijednost od ostalih koeficijenata u funkciji cilja.Funkcija cilja će, dakle, imati oblik:Z = c1 x1 + c2 x2 + ... + cn xn +...+ (-M) xn+i +...

(2.42)Drugim rječima SA, koji nastoji maksimizirati funkciju cilja, izbaciće promjenljivu xn+i iz baze jer će njenim izbacivanjem uvećati funkciju cilja.Ako SA ne izbaci vještačku promjenljivu iz baze do kraja zadatka, onda to znači da taj zadatak LP nije dopustiv.

Ograničenje tipa >=Ako je jedno ili više ograničenja zadano u obliku:

ai1 x1 + ai2 x2 + ... + ain xn >= bi (2.43)potrebno je, da bi se dobila jednačina, oduzeti jednu pozitivnu promjenljivu. Medutim, u tom slučaju nijedna promjenljiva neće zadovoljavati uvjete da bude bazna promjenljiva.Da bi se i u tom ograničenju dobila promjenljiva koja može biti bazna, dodaje se još jedna promjenljiva - “vještačka promjenljiva” i jednačina (2.43) dobije oblik:

ai1 x1 + ai2 x2 + ... + ain xn - 1 xn+i + + 1 xn+i+1= bi (2.44)

Kao i u slučaju ograničenja tipa jednačina, 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.Da bi se vještačka promjenljiva izjednačila sa nulom, u funkciji cilja, ona se množi sa koeficijen-tom –M kod traženja maksimuma (sa +M kod traženja minimuma).Funkcija cilja će, dakle, imati oblik:

Z = c1 x1 + c2 x2 + ... + cn xn +... + + 0 xn+i + (-M) xn+i+1 +... (2.45)

Drugim rječima SA, koji nastoji maksimizirati funkciju cilja, izbaciće promjenljivu xn+i iz baze jer će njenim izbacivanjem uvećati funkciju cilja.Ako SA ne izbaci vještačku promjenljivu iz baze do kraja zadatka, onda to znači da taj zadatak LP nije dopustiv.Koeficijent M se naziva “kazneni koeficijent” jer on, radikalno umanjujući funkciju cilja, kažnjava nedopustivost baznih rješenja transformiranog zadatka u odnosu na originalni. Primjer 2.10Riješiti zadatak 2.2 koristeći simplex tabelu. Matematički model je data sa:Naći minimum funkcije

Z = 40 x1 + 30 x2uz ograničenja

0.1 x1 >= 0,2 0,1 x2 >= 0,30,5 x1 + 0,3 x2 >= 3,0

60

Page 61: OPERACIONA ISTRAZIVANJA

0,1 x1 + 0,2 x2 >= 1,2-----------------------------x1 >= 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.1 x1 - 1 x3 + 1 x4 - 0 x5 + 0 x6 – 0 x7 + 0 x8 – 0 x9 + 0 x10 = 0,2 0,1 x2 - 0 x3 + 0 x4 - 1 x5 + 1 x6 – 0 x7 + 0 x8 – 0 x9 + 0 x10 = 0,30,5 x1 + 0,3 x2 - 0 x3 + 0 x4 - 0 x5 + 0 x6 – 1 x7 + 1 x8 – 0 x9 + 0 x10 = 3,00,1 x1 + 0,2 x2 - 0 x3 + 0 x4 - 0 x5 + 0 x6 – 0 x7 + 0 x8 – 1 x9 + 1 x10 = 1,2-------------------------------------------------------------------------------------------------xj >= 0, j = 1, 2, ..., 10

Zadatak nije spreman za primjenu SA jer u funkciji cilja postoje bazne promjenljive koje se množe nenultim koeficijentima (x4, x6, x8, x10).Zato je potrebno ove promjenljive izraziti u funkciji od nebaznih promjenljivih u odgovarajućim ograničenjima i dobijene vrijednosti uvrstiti u funkciju cilja. Tako se, na primjer, iz prvog ograničenja može izraziti bazna promjenljiva x4:

x4 = 0,2 – 0.1 x1 + 1 x3 + 0 x5 – 0 x6 + 0 x7 – 0 x8 + 0 x9 – 0 x10 = = 0.2 – 0.1 x1 + x3

Kada se ova vrijednost (kao i za ostale bazne promjenljive) uvrsti u funkciju cilja dobije se: Z = (40 - 0.7M) x1 +(30 - 0.5M) x2 +M x3 + 0.0 x4 + M x5 + 0.0 x6 + M x7 + + 0.0 x8 + M x9 + 0.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 = 1000Kada 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.0 x4 –

- 1000 x5 + 0.0 x6 - 1000 x7 + + 0.0 x8 - 1000 x9 + 0.0 x10

61

Page 62: OPERACIONA ISTRAZIVANJA

Zadatak : MJESAVINA - MINIMUM Datum listanja zadatka : 22.10.2007__________________________________________________________________Broj promjenjljivih : 2Broj ogranicenja : 4Simplex tabela br.: 1

Simplex tabela br.: 2

Simplex tabela br.: 3

Simplex tabela br.: 4

62

Page 63: OPERACIONA ISTRAZIVANJA

Simplex tabela br.: 5

Pošto su sve vještačke promjenljive jednake nuli i svi koeficijenti tekuće funkcije cilja manji ili jednaki nuli, tekuće bazno dopustivo rješenje je optimalno rješenje.- optimalno rješenje je sada:

x0 = (3.42, 4.28, 0.14, 0, 0.12, 0, 0, 0, 0, 0)- baza optimalnog rješenja je:

B0 = (x1, x2, x3, x5)- optimalna vrijednost funkcije cilja:

F0 = 265.2

63

Page 64: OPERACIONA ISTRAZIVANJA

Ako je u nekom baznom dopustivom rješenju bar jedana od baznih promjenljivih jednaka nuli tada je to degenerirano bazno dopustivo rješenje.

5. LINEARNO PROGRAMIRANJE

DUALNI PROBLEMSvakom zadatku LP (primal) se može pridružiti tzv. dualni zadatak koji je u određenom odnosu prema primalu i ima isto rješenje kao i primal.Odnos između primala i duala je simetričan, tj. dual dualnog problema je jednak primalu. 2.4.1. Dualni problemNeka je zadan problem LP u standardnoj formi:

Maksimizirati Z = c1x1 + c2x2 + … + cnxn (2.1)pod uvjetom da bude zadovoljeno

a11 x1 + a12 x2 + ... + a1n xn <= b1a21 x1 + a22 x2 + ... + a2n xn <= b2... (2.2)am1 x1 + am2 x2 + ... + amn xn <= bmi x1 >= 0, x2 >= 0, ..., xn >= 0 (2.3)

gdje su aij, cj, bi za i = 1, 2, …, m, j = 1, 2, …,n, zadani realni brojevi.Ovako zadan problem LP se obično naziva primalni problem ili primal.

Ovom zadatku odgovara tzv. dualni problem ili dual:Minimizirati Y = b1 y1 + b2 y2 + … + bm ym (2.4)

pod uvjetom da bude zadovoljenoa11 y1 + a21 y2 + ... + am1 ym >= c1a12 y1 + a22 y2 + ... + am2 ym >= c2... (2.5)a1n y1 + a2n y2 + ... + amn ym >= cni y1 >= 0, y2 >= 0, ..., ym >= 0 (2.6)

Ovako zadan problem LP se naziva dualni problem ili dual.

U matrično vektorskom obliku:PrimalMaxZ = cTxAx <=bx >= 0

DualMaxY = bTyATy >=cy >= 0

Između primala i duala postoje sljedeći odnosi:

64

Page 65: OPERACIONA ISTRAZIVANJA

minimizacija funkcije cilja duala odgovara maksimizaciji funkcije cilja primalai daljebroj promjenljivih duala = broj ograničenja primalabroj ograničenja duala = broj promjenljivih primalamatrica ograničenja duala = transponovana matrica ograničenja primalakoeficijenti funkcije cilja duala = desne strane ograničenja primaladesne strane ograničenja duala = koeficijenti funkcije cilja primala

Primjer 2.4.1. (Simetrični dual)Zadatak

Max Z = 5 x1 + 2 x2 x1 ≤ 6

2 x2 ≤ 183 x1 + 2 x2 ≤ 24 x1, x2 ≥ 0

ima dualMin Y = 6 y1 + 18 y2 + 24 y3

y1 + 3 y3 ≥ 5 2 y2 + 2 y3 ≥ 2 y1, y2, 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. Ako zadatak nije zadan u obliku (2.1), (2.2) i (2.3) on se može svesti na taj oblik sljedećim jednostavnim transformacijama:T1. minimizacija funkcije Z = maksimizacija funkcije – Z T2. ograničenje tipa ≥ = množenjem obje strane sa -1 dobije se ≤T3. ograničenje tipa = = dva ograničenja tipa ≤ i ≥T4. nema uslova za xj = smjena xj = xj† - xj¯ gdje je xj†≥0 i xj¯≥ 0T5. uslov xj ≤ 0 = smjena xj’ = -xj i xj’ ≥ 0

65

Page 66: OPERACIONA ISTRAZIVANJA

Primjer 2.4.2. (Svođenje primala na simetrični oblik)Zadatak

Max Z = 5 x1 + 2 x2 x1 = 6

2 x2 ≤ 183 x1 + 2 x2 ≥ 24 x1, x2 ≥ 0

se korištenjem T2. i T3. svodi na ekvivalentni simetrični oblikMax Z = 5 x1 + 2 x2 x1 ≤ 6 - x1 ≤ -6

2 x2 ≤ 18-3 x1 - 2 x2 ≤ -24 x1, x2 ≥ 0

Sada je njegov dualMin Y = 6 y1 – 6 y2 + 18 y3 – 24 y4 y1 – y2 + 3 y4 ≥ 5

2 y3 – 2 y4 ≥ 2 y1, y2, y3, y4 ≥ 0

Primjenom transformacija T1., T2. i T3. može se dokazati da je dual dualnog zadatka (2.4), (2.5) i (2.6) jednak primalnom zadatku (2.1), (2.2) i (2.3). Mogu se izvesti i pravila prevođenja zadatka LP koji nije zadan u obliku (2.1), (2.2) i (2.3) u dual.Pravila za određivanje tipova ograničenja i ograničenosti znakova promjenljivih dati su u Tabeli 2.4.1.

Prema ovim pravilima tipovi ograničenja u dualu zavise od znaka promjenljivih primala, dok znakovi promjenljivih duala zavise od tipova ograničenja primala.Ova pravila su simetrična tako da i za ovako formiran dual vrijede ista pravila, tj. pravila dobijanja duala iz duala, što kao rezultat daje primal.

Primjer 2.4.3. (Dual općeg oblika)Zadatku

66

Page 67: OPERACIONA ISTRAZIVANJA

Max Z = 5 x1 + 2 x2 x1 = 6 <– y1

2 x2 ≤ 18 <– y23 x1 + 2 x2 ≥ 24 <– y3 x1, x2 ≥ 0

primjenom pravila odgovara dualMin 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, y3 ≤ 0

Uvođenjem smjena y1 = y1† – y1¯ y3’ = – y3

gdje je y1† ≥ 0y1¯ ≥ 0y3’ ≥ 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†, y1¯, y2, y3’ ≥ 0

Osnovni rezultati teorije dualnostiTeorija dualnosti izučava matematička svojstva odnosa primala i duala.

Svojstvo 2.4.1. Slaba dualnostAko je x dopustivo rješenje primala a y dopustivo rješenje duala, tada je

Z(x) ≤ Y(y)Ovo svojstvo određuje gornju granicu Y(y) maksimalne vrijednosti funkcije cilja primala, odnosno donju granicu Z(x) duala.

Ako u Primjeru 2.4.1. izaberemo x(6,0) što je dopustivo rješenje primala i y(6,1,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.

67

Page 68: OPERACIONA ISTRAZIVANJA

Svojstvo 2.4.2. a. 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.b. Ako je x dopustivo rješenje primala, y je dopustivo rješenje duala i Z(x) = Y(y), tačke x i y su

optimalna rješenja ovih zadataka. 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,3) i y = (2,0,1)

Z(x) = Y(y) = 36

Pa ona predstavljaju optimalna rješenja ovih zadataka.

Svojstvo 2.4.3. Primal ima optimalno rješenje ako i samo ako dual ima optimalno rješenje.Prema ovom svojstvu, primal nema optimalno rješenje ako i samo ako dual nema optimalno rješenje.

Svojstvo 2.4.4. Ako je funkcija cilja primala neograničena odozgo u njegovoj dopustivoj oblasti, tada je dopustiva oblast duala prazna.Ako je funkcija cilja duala neograničena odozdo u njegovoj dopustivoj oblasti, tada je dopustiva oblast primala prazna.Iz ovog svojstva, slijedi da ako su dopustive oblasti primala i duala neprazne, oba problema imaju optimalno rješenje.

Svojstvo 2.4.5. (Komplementarnost optimalnih rješenja primala i duala) Ako koordinate tačke y*=(y1*,y2*,...,ym*) zadovoljavaju sljedeće uslove:

1. Ako je xj izravnavajuća promjenljiva dodana i-tom ograničenju primala tada je yi*=-cj*2. Ako je xj izravnavajuća promjenljiva oduzeta od i-tog ograničenju primala tada je yi*=cj*3. Ako je xj vještačka promjenljiva dodana i-tom ograničenju primala tada je yi*=-M-cj*

tada je y* optimalno rješenje dualaPri tom y* zadovoljava i uslov:

4. cj*=cj – Aj y* za j = 1,2,...,n, gdje je Aj j-ta kolona matrice ograničenja primala.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. Usljed simetričnosti primala i duala dovoljno je Simpleks metodom riješiti jedan od ova dva zadatka i zatim pomoću svojstva (2.4.5.) ustanoviti rješenje drugog zadatka.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.

68

Page 69: OPERACIONA ISTRAZIVANJA

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

Izbor vodeće vrste i kolone

69

Page 70: OPERACIONA ISTRAZIVANJA

Koeficijenti tekuće vrijednosti funkcije cilja

Rješenje dualaY = 6 y1 + 18 y2 + 24 y3 + 0 y4 + 0 y5 + M v1 + M v2

y1 + 3 y3 - y4 + v1 = 5 2 y2 + 2 y3 - y5 + v2 = 2

y1, y2, y3, y4, y5, v1, v2 ≥ 0

70

Page 71: OPERACIONA ISTRAZIVANJA

Uvodi se smjena u funkciji cilja:v1 = 5 – y1 – 3 y3 + y4v2 = 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 + 7Mpa se može formirati simpleks tabela.Simpleks tabele za dual.

Početna simpleks tabela:

Simpleks tabele za dual. Simplex tabela br.: 1

Simpleks tabele za dual. Simplex tabela br.: 2

71

Page 72: OPERACIONA ISTRAZIVANJA

Simpleks tabele za dual. Simplex tabela br.: 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.Pošto v1 i v2 čine početnu bazu, tada je prema 3. iz svojstva 2.4.5. za slučaj minimizacije, optimalno rješenje primala određeno sa

x1* = 6 i x2* = 3

72

Page 73: OPERACIONA ISTRAZIVANJA

Ekonomska intepretacija dualnog problemaPrimalni problem (2.1), (2.2) i (2.3) se u pravilu interpretira kao problem

- optimalne raspodjele - ograničenih resursa - na određene aktivnosti .

Tako promjenljiva xj može predstavljati količinu j-tog proizvoda koji treba proizvesti, aij je količina resursa i koji se troši za proizvodnju jedne jedinice proizvoda j, bi je raspoloživa količina resursa i, a cj je zarada po jedinici j-tog proizvoda. Veličina cj ima dimenziju – novčana jedinica po jedinici proizvoda tada, prema (2.5) umnožak aij yi ima istu dimenziju. Kako je dimenzija za aij – jedinica resursa i po jedinici proizvoda j, dimenzija za yi je – novčana jednica po jedinici resursa. Funkcija cilja duala Y = b1 y1 + b2 y2 + … + bm ym dakle, predstavlja vrijednost ukupno utrošenog resursa pa je cilj minimizirati ovaj trošak.

Lijeva strana izraz a1k y1 + a2k y2 + ... + am2 yk ≥ ck iz (2.5) predstavlja vrijednost svih resursa utrošenih u proizvodnju jedne jedinice proizvoda k. Prema ograničenjima dualnog zadatka taj trošak ne može biti manji od profita po jedinici proizvoda ck. Pretpostavimo da je potrebno ispitati uticaj povećanja raspoložive količine resursa bi na maksimalni profit.Određenu informaciju u tom smislu na daje optimalno rješenje y* = (y1*, y2*, ..., ym*) dualnog zadatka.Ako bi se raspoloživa količina resursa bi, koji je u primalnom zadatku potpuno iskorišten, povećala za ε tada bi se ukupna dobit Z povećala za ε∙yi*. Veličina yi je u određenom smislu mjera dobiti koja bi se mogla ostvariti pri jediničnom povećanju količine resursa i, pa se naziva “cijena u sjeni”.Ovo zaključivanje vrijedi ako je i-to ograničenje aktivno i ako optimalno rješenje duala ostane nepromjenjeno pri povećanju resursa za ε. Ako se u Primjeru 2.4.4. 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/3a maksimalni profit je

Z* = 38Maksimalni profit se povećao za

y1* ∆b1 = 2 (7-6) = 2∙ ∙

Dualna simplex metodaSimpleks metoda, kroz iteracije, generira niz baznih dopustivih rješenja dok se ne zadovolji kriterij optimalnosti za tekuću funkciju cilja.Tim rješenjima odgovara niz komplementarnih rješenja duala koja nisu dopustiva sa stanovišta primala sve do dolaska u optimalnu tačku.

73

Page 74: OPERACIONA ISTRAZIVANJA

Na toj ideji se bazira dualna simplex metoda koja polazi od komplementarnog dualnog zadatka kod kojeg promjenljive nisu ograničene po znaku.

Primjer 2.4.5. Primjenićemo na zadatak iz Primjera 2.4.5. dualnu simpleks metodu. 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, y2, y3, y4, y5 ≥ 0Baza je Bo = (y4, y5) koja je dualno dopustiva ali nije primalno jer početno bazno rješenje sadrži negativne komponente:

yo = (0, 0, 0, -5, -2)Sada možemo postaviti početnu simplex tabelu uz pretpostavku da funkciji cilja promjenimo znak, tj. da tražimo:

max Z’ = – 6y1 – 18y2 – 24y3Simpleks tabele za dualnu metodu Početna simpleks tabela:

74

Page 75: OPERACIONA ISTRAZIVANJA

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. S druge strane, bazne promjenljive y4 i y5 su negativne što znači da je rješenje nemoguće.Rješenje koje je nemoguće a zadovoljava kriterij optimalnosti zovemo superoptimalnim. Sada se može pokušati zadatak napraviti mogućim tako što ćemo negativne promjenljive izbaciti iz baze.Pošto je promjenljiva y5 “negativnija” i više doprinosi “nemogućnosti rješenja”, nju ćemo izbaciti iz baze. Smanjenje apsolutne vrijednosti negativne promjenljive se može kompenzirati porastom apsolutne vrijednosti neke od nebaznih promjenljivih koje imaju negativni predznak. 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.Taj odnos za ulazne nebazne promjenljive je:

y1 = -6/-1 = 6y3 = -24/-3 = 8

Pa se za ulaznu baznu promjenljivu bira y1. Taj postupak se pimjeni na simpleks tabelu.

75

Page 76: OPERACIONA ISTRAZIVANJA

Sada su rješenja primalno dopustiva a svi su koeficijenti u tekućoj funkciji cilja manji ili jednaki nuli, dobili smo dopustivi maksimum funkcije cilja Z’.Pošto je

Y = - Z’Dobije se za dual:

- optimalno rješenjey = (2, 0, 1, 0, 0)

- baza optimalnog rješenja B = (y1, y3)

- optimalna vrijednost funkcije cilja Y = 36

(Karuš) Kuhn Tucker-ovi množitelji i dualni metodDa 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 x2 –z22 + 18 = 0– 3 x1 – 2 x2 – z32 + 24 = 0x1 – z42 = 0 x2 – z52 = 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, yi i zi daju:

76

Page 77: OPERACIONA ISTRAZIVANJA

Iz ovih jednačina se može vidjeti:1. Parcijalni izvodi po x1 i x2 odgovaraju ograničenjima duala a po y1, y2 i y3 ograničenjima

primala, tako da “izvorni zadatak” može imati dva oblika koji odgovaraju primalu odnosno dualu.

2. Na promjenljive x1 i x2 je postavljen uvjet nenegativnosti a na promjenljive yi nije3. 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. 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, odnosno ako je ograničenje neaktivno odgovarajući množitelj je jednak nuli jer ono ne utiče na optimalno rješenje

4. Početno rješenje primala je dato sa

odnosno, uvrštavajući vrijednosti za y1, y2 i y3 u prve dvije jednačine dobije se:y4 = -5y5 = -2prvo nedopustivo rješenje duala po dualnoj metodi.

Ovaj zadatak može biti riješen specifičnim korištenjem metoda KuhnTacker-a. U ovako datom zadatku mora biti:

1. Množitelji uz ograničenja ≤ moraju biti manji ili jednaki nuli, a množitelji uz ograničenja ≥ moraju biti veći ili jednaki nuli

2. Dva množitelja moraju biti različiti od nula (broj aktivnih ograničenja odgovara broju dimenzija) a ostali mogu biti nula

77

Page 78: OPERACIONA ISTRAZIVANJA

Iz predhodnog početnog reješenja slijedi da su aktivna ograničenja 4 i 5 (ograničenja na pozitivnost promjen-ljivih). 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, dobićemo:

78

Page 79: OPERACIONA ISTRAZIVANJA

79

Page 80: OPERACIONA ISTRAZIVANJA

6. LINEARNO PROGRAMIRANJE, TRANSPORTNI PROBLEM, PROBLEM RASPOREDJIVANJA

2.5.1. 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.5.2. PROBLEM RASPOREĐIVANJA

• Postavka zadatka• Matematički model• Mađarska metoda

2.5.1. TRANSPORTNI PROBLEMIzučavanja problema transporta primjenom anali-tičkih metoda potiče iz polovine prošlOg stoljeća. Tim se problemom bavilo više poznatih istraživača, mEđu kojima su značajni rezultati sovjetskog naučnika L. V. Kantroviča iz 1939 i američkog naučnika F. L. Hitchcocka-a iz 1941 godine.Nekako u isto vrijeme, veliki istraživački napori i rezultati su bili vezani za zadatak linearnog programiranja. 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. Međutim, pokazalo se, također, da zbog svoje specifične strukture, zadatak transporta može biti riješen i efikasnijim motodama.Dantzig je objavio rješenje bazirano na simpleks množiteljima, Vogel je predložio aproksimativnu metodu za nalaženje početnog rješenja, Charnes i Cooper su 1953. god. i objavili metodu danas poznatu kao metoda „skakanja s kamena na kamen“ (Stepping Stone Method), Ford i Fulkenson su 1956. godine objavili metodu za rješenje TP poznatu kao metoda Forda&Fulkerson. 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.Međutim danas se u ove probleme uključuju zadaci optimalnog razmje-štanja mašina, postrojenja, službi, skladišta, servisa, energetskih objekata, prodajnih objekata, ...

Postavka zadatkaPronalaž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.Pri tom su poznate :

- količine proizvoda smještene u skladištima- količine proizvoda koje potražuju mjesta potrošnje - jedinični troškovi transporta iz bilo kojeg mjesta skladištenja u bilo koje mjesto potrošnje .

80

Page 81: OPERACIONA ISTRAZIVANJA

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, i = 1,2,…,m – količine proizvoda u ishodištima- bj, j = 1,2,…,n – količine koje potražuju odredišta- cij, i = 1,2,…,m i j = 1,2,…,n – jedinični troškovi transporta iz ishodišta i u odredište j- xij, i = 1,2,…,m i j = 1,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 i = 1,2,…,m

bj > 0 j = 1,2,…,n

cij ≥ 0 i = 1,2,…,m i j = 1,2,…,n

xij ≥ 0 i = 1,2,…,m i j = 1,2,…,n

Pored toga, pretpostavlja se da je ukupna raspoloživa količina jednaka ukupnoj potraživanoj količini:

81

Page 82: OPERACIONA ISTRAZIVANJA

Ukupan broj promjenljivih xij je m n dok je ∙ broj jednačina m+n. Dakle, matrica ograničenja je dimenzija (m+n)x(m n) i ∙ specijalnog je oblika.

Sumiranjem lijevih i desnih strana ograničenja (2.5.2) i (2.5.3) dobije se:

Pošto je:

Postoji linearna zavisnost sistema jednačina (2.5.2) i (2.5.3) tako da je broj linearno nezavisnih ograničenja

82

Page 83: OPERACIONA ISTRAZIVANJA

r = m + n - 1

Prema tome, bazno rješenje TP ima (m + n -1) baznih elemenata.

TP je moguće riješiti pomoću simpleks algoritma, medjutim, koristeći specifičnu strukturu TP, moguće je razviti efikasnije algoritme.

Većina do sada razvijenih metoda pretpostavlja da je nekim drugim postupkom već određeno početno dopustivo rješenje.

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), na sljedeći način:

a. Promjenjliva x11 dobija maksimalnu vrijednost koja je ograničena manjim od kapaciteta a1 i b1

b. Preostala količina se dalje dodjeljuje sljedećoj promjenljivoj (x12 ako je a1>b1, odnosno, x21 ako je b1>a2) dok se ne istroši raspoloživa zaliha ishodišta, odnosno, zadovolji potražnja odredišta. Postupak se nastavlja pražnjenjem zalihe odnosno zadovoljavanjem potražnje.

c. Posupak se završava kada se rasporede sve zalihe odnosno zadovolji sva tražnja

83

Page 84: OPERACIONA ISTRAZIVANJA

Raspodijeljene su sve zalihe i zadovoljene sve potrebe.

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, ova metoda se u literaturi može naći i pod nazivima – metod raspodjele, distributivni metod, metod šahovke kule, ...

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, da se u tekućem dopustivom rješenju ispituju nezauzeta polja, tj. ispituje se da li bi uključenjem trans-porta na to polje ukupni trošak porastao ili bi ostao isti ili bi se smanjio.

Kada se nađe polje čije uključenje u transport smanjuje ukupni trošak, izvrši se promjena tekuće raspodjele vodeći pri tom računa da se ne naruši dopustivost rješenja.

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. Za svako prazno polje se može formirati samo jedan poli-gon koji može imati najmanje 4 a najviše m+n vrhova.

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.

84

Page 85: OPERACIONA ISTRAZIVANJA

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.

Ako postoji makar jedan poligon koji umanjuje ukupni trošak, 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.

Primjer 2.5.2.

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

85

Page 86: OPERACIONA ISTRAZIVANJA

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, najveće umanjenje troškova se može očekivati ako izvršimo promjenu transporta po poligonu za koji se dobio “najnenegativniji” rezultat.

U ovom slučaju najmanji koeficijent troškova se dobije za d31 i d32. Može se odabrati bilo koji, 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.

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, najveća moguća promjena odgovara najmanjoj vrijednosti u poljima koja se umanjuju. Polja koja se umanjuju su x11 = 90, x22 = 115 i x33 = 75. Dakle najveća moguća promjena transporta je 75 pa će sada vrijednosti transporta po poligonu biti: x31 = 0+75 = 75, x33 = 75–75 = 0, x23 = 5+75 = 80, x22 = 115–75 = 40, x12 = 10+75 = 85, x11 = 90–75 = 15

Novi dopustivo rješenje je sada

86

Page 87: OPERACIONA ISTRAZIVANJA

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. Količine trans-porta u vrhovima izabranog poligona su sljedeće:

Polja koja se umanjuju su x22 = 40, x11 = 15 i x34 = 65. Dakle najveća moguća promjena transporta je 15 pa će sada vrijednosti transporta po poligonu biti: x24 = 0+15 = 15, x22 = 40–15 = 25, x13 = 85+15 = 100, x11 = 15–15 = 0, x31 = 75+15 = 90, x34 = 65–15 = 50

87

Page 88: OPERACIONA ISTRAZIVANJA

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. Količine trans-porta u vrhovima izabranog poligona su sljedeće:

Polja koja se umanjuju su x34 = 50 i x22 = 25. Dakle najveća moguća promjena transporta je 25 pa će sada vrijednosti transporta po poligonu biti: x32 = 0+25 = 25, x34 = 50–25 = 25, x24 = 15+25 = 40, 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 =

88

Page 89: OPERACIONA ISTRAZIVANJA

= 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. Količine trans-porta u vrhovima izabranog poligona su sljedeće:

Polja koja se umanjuju su x12 = 100, x34 = 25 i x23 = 80. Najveća moguća promjena transporta je 25 pa će sada vrijednosti transporta po poligonu biti: x13 = 0+25 = 25, x12 = 100–25 = 75, x32 = 25+25 = 50, x34 = 25–25 = 0, 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 =

89

Page 90: OPERACIONA ISTRAZIVANJA

= 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. Količine trans-porta u vrhovima izabranog poligona su sljedeće:

Polja koja se umanjuju su x31 = 90, x12 = 75 i x23 = 55. Najveća moguća promjena transporta je 55 pa će sada vrijednosti transporta po poligonu biti: x21 = 0+55 = 55, x31 = 90–55 = 35, x32 = 50+55 = 105, x12 = 75–55 = 20, x13 = 25+55 = 80, 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

90

Page 91: OPERACIONA ISTRAZIVANJA

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.

x11 = 0 x12 = 20 x13 = 80 x14 = 0

x21 = 55 x22 = 0 x23 = 0 x24 = 65

x31 = 35 x32 = 105 x33 = 0 x34 = 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.5.2. PROBLEM RASPOREDJIVANJA

Postavka zadatkaProblem raspoređivanja (asignacije) je specijalan oblik zadatka LP a po strukturi i načinu rješavanja, sličan je problemu transporta. 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, studenata, takmičara, prodavnica, novca, ...) na određeni broj mjesta (na kojima se mogu realizirati te aktivnosti – poslova, mašina, ispita, radnih mjesta, sportskih disciplina, pogona, lokacija, ...). Pri tom jedan izvršilac može da bude raspore-đen na samo jedno mjesto, jednom mjestu može biti dodijeljen samo jedan izvršilacSvaki konkretni raspored proizvodi određeni efekat (povećanje vrijednosti ili povećanje troška).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, i = 1,2,…,m i j = 1,2,…,n – troškovi (dobiti) rasporeda izvršioca i na mjesto jxij, i = 1,2,…,m i j = 1,2,…,n – označava da li je izvršilac i raspoređen na mjesto j 1 - Ako je izvršilac i raspoređen na mjesto j

91

Page 92: OPERACIONA ISTRAZIVANJA

xij = { 0 - Ako izvršilac i nije raspoređen na mjesto j

Matematički model problema raspoređivanja

Ovako definiran model predstavlja poseban oblik modela LP, tzv. 0-1 programiranje.

U odnosu na transportni model, ovdje je specifično, što su ponude iz svih ishodišta jednake jedinici, odnosno, sve potrebe odredišta su jednake jedinici.

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.

Ako nije jednak broj izvršilaca i mjesta, to jest ako je m#n, tada imamo otvoreni model raspoređivanja. On se prevodi u zatvoreni, uvođenjem fiktivnih promjenljivih.

Da bi se uravnotežio broj izvršilaca i mjesta, uvodi se fiktivno mjesto, odnosno fiktivni izvršilac. Tada se uzima da je efikasnost fiktivnog mjesta cif = 0, (i = 1, 2, …, m), odnosno, fiktivnog izvršioca cfj= 0, (j = 1, 2, …, n).

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, inače, razvijene za rješavanje drugih problema (Linearno programiranje, transportni problem).

Problem raspoređivanja se može riješiti i ispitivanjem svih mogućih kombinacija i biranjem one kombinacije koja daje najbolji rezultat. Međutim, broj mogućih kombinacija je n! pa se već za n = 10 dobije broj kombinacija jednak 3,628.800. Jasno je da je ovakav pristup neprimjenljiv za iole veće zadatke raspoređivanja.

92

Page 93: OPERACIONA ISTRAZIVANJA

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.

Međutim, danas se najčešće koristi metoda posebno razvijena za rješavanje problema raspoređivanja (mađarska metoda po tehnici Flooda).

Postupak se zasniva na korištenju matrice efikasnosti (troškova) C čiji su elementi koeficijenti funkcije cilja. Ako se pretpostavi da je broj izvršilaca i broj mjesta jednak, matrica C će biti:

Smatra se da je efikasnost veća što je koeficijent cij manji.

Postupak se realizira kroz tri koraka:

1. 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. Na taj način se u svakom redu dobije najmanje jedna nula.

Zatim se, u tako dobijenoj matrici, svi članovi svake kolone umanje za vrijednost najmanjeg elementa te kolone.

Na taj način formirana matrica sadrži najmanje po jedan nulti element u svakoj vrsti i u svakoj koloni.

2. Označavaju se nule matrice na sljedeći način:a. Polazeći od prvog reda matrice, nalaze se redovi koji imaju samo jednu nulu. Ta se nula označi a ostale nule u koloni sa označenom nulom se prekriže. Ovaj postupak se sprovodi dok ima redova sa jednom neoznačenom nulom.

b. Isti postupak se primjeni na kolone.

Postupci a. i b. se ponavljaju dok sve nule ne budu označene ili prekrižene. Ako se u svakom redu i u svakoj koloni nalazi po jedna označena nula postupak je završen. U suprotnom prelazi se na korak 3.

3. Proizvodi se nova matrica slijedećim postupkom:

a. Označe se strelicama redovi koji nemaju označene nule

b. Označe se strelicama kolone koje u ozna-čenim redovima imaju prekrižene nule

93

Page 94: OPERACIONA ISTRAZIVANJA

c. Označe se redovi koji imaju označenu nulu u označenoj koloni

d. Ponavljaju se postupci b. i c. dok se lanac ne zatvori

e. Povuku se linije kroz neoznačene redove i označene kolone; kroz svaku označenu nulu (asignaciju) mora prolaziti jedna linija, dakle, treba da dobijemo onoliko linija koliko imamo označenih nula

f. Formira se nova matrica, tako što se najmanji nepokriveni (neprecrtan linijom) element cij predhodne matrice:

(1) oduzme od svakog nepokrivenog elementa

(2) doda svakom elementu dva puta prekriženom, tj. elementima koji se nalaze na presjeku dviju linija

Elementi prekriveni jednom linijom se prepišu u novu matricu.

Na ovako dobijenu matricu primjenjuje se korak 2.

Ako se ne nađe optimalno rješenje, nastavlja se sa korakom 3. i to se nastavlja dok se ne nađe optimalno rješenje.

Kada se dobije matrica sa potpunom asignacijom, koja sadrži n zaokruženih nula, iz nje se može odrditi optimalno rješenje.

Zaokružene nule označavaju varijable čije su vrijednosti jednake jedinici (xij = 1). Ostale varijable xij imaju vrijednost nula.

Primjer 2.5.3.

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

94

Page 95: OPERACIONA ISTRAZIVANJA

Svi članovi svake kolone ove matrice umanje se za vrijednost najmanjeg elementa te kolone

Polazeći od prvog reda matrice, nalaze se redovi koji imaju samo jednu nulu. 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.

Postupak nije završen jer nemamo 5 obilježenih nula, naime izvršilac 4 i posao 5 nisu raspodjeljeni.

Sada strelicama označimo redove koji nemaju označenih nula i kolone koje u označenim redovima imaju prekrižene nule

95

Page 96: OPERACIONA ISTRAZIVANJA

Označe se redovi koji imaju označenu nulu u označenoj koloni.

Ponavljaju se postupci dok u označenim redovima ima prekriženih nula

Povuku se linije kroz neoznačene redove i označene kolone; kroz svaku zaokruženu nulu (asignaciju) mora da prolazi jedna i samo jedna linija, dakle, treba da dobijemo onoliko linija koliko imamo zaokruženih nula

Primjenjuje se Korak 2., tj. 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.

b. Isti postupak se primjeni na kolone.

96

Page 97: OPERACIONA ISTRAZIVANJA

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

97

Page 98: OPERACIONA ISTRAZIVANJA

7. CJELOBROJNO LINEARNO PROGRAMIRANJE (1)

3. 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, u konkretnim problemi-ma, nisu uvjek u potpunosti ispunjene, LP daje rezultate koji se uspješno primjenjuju u praksi

Međutim, u nekim primjenama linearnog progra-miranja, pojedine ili sve strukturne prom-jenljive mogu imati samo cjelobrojne vrijednosti. Na primjer, broj mašina, zvršilaca, vozila, proizvodnih pogona, ... .

Ako se radi o relativno velikim brojevima, 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.

S druge strane, postoje slučajevi gdje bi se zaokruživanjem pravile grube greške. To se dešava kada su vrijednosti cjelobrojnih rezultata relativno male ili u ekstremnom slučaju, kada promjeljive mogu dobiti samo vrijednosti 0 ili 1.

Takvi slučajevi su tipični za situacije donošenja odluka o tome da li nešto uraditi ili ne – da li izgraditi tvornicu, da li zasijati određenu kulturu, da li izvršiti investiranje u određeni projekat, ... .

Iako formulacije cjelobrojnih problema programiranja često izgledaju vrlo slično nekim kontinualnim problemima programiranja, sličnost je na neki način zabluda.

Algebarski izrazi funkcije cilja i ograničenja u ova dva tipa problema, imaju sličan oblik, ali dodatna ograničenja, da neke ili sve promjenljive moraju biti cjelobrojne, čine cjelobrojne probleme znatno težim.

Mnogi problemi cjelobrojnog programiranja su klasificirani kao teški (hard) optimi-zacioni problemi.

98

Page 99: OPERACIONA ISTRAZIVANJA

Tako, dok opći problem LP može biti riješen u polinominalnom vremenu, nalaženje optimalnog rješenja za odgovarajući cjelobrojni zadatak obično zahtijeva eksponencijalno računarsko vrijeme.

Međutim, postoje neki cjelobrojni problemi koji se mogu lako riješiti.

Posebno, mnogi problemi linearnih mreža, kao problemi raspoređivanja i uparivanja (matching problems), transportni i problemi pretovara (transshipment problems), problemi mrežnog toka, uvijek kao optimalno rješenje dobiju cjelobrojni rezultat.

U ovim problemima, svaka krajnja tačka dopustivog prostora, predstavlja cjelo-brojno rješenje, međutim, iako se ti zadaci formuliraju i rješavaju kao problemi linearnog programiranja, vidjećemo da će simpleks algoritam davati cjelobrojna rješenja.

Nažalost to važi samo za probleme koji imaju mrežnu strukturu dok za većinu cjelobroj-nih zadataka, formulacija u obliku LP ne daje lako rješenje.

Međutim, postoje neki cjelobrojni problemi koji se mogu lako riješiti.

Posebno, mnogi problemi linearnih mreža, kao problemi raspoređivanja i uparivanja (matching problems), transportni i problemi pretovara (transshipment problems), problemi mrežnog toka, uvijek kao optimalno rješenje dobiju cjelobrojni rezultat.

U ovim problemima, svaka krajnja tačka dopustivog prostora, predstavlja cjelo-brojno rješenje, međutim, iako se ti zadaci formuliraju i rješavaju kao problemi linearnog programiranja, vidjećemo da će simpleks algoritam davati cjelobrojna rješenja.

Nažalost to važi samo za probleme koji imaju mrežnu strukturu dok za većinu cjelobroj-nih zadataka, formulacija u obliku LP ne daje lako rješenje.

3.1. POSTAVKA PROBLEMA Opći zadatak Cjelobrojnog Linearnog Progra-miranja (CLP) dat je u obliku:

Max(min) cTx

Ax = b (3.1)

x >= 0, xЄ Zn

gdje je Zn skup n-torki sa cjelobrojnim koordinatama, A = [aij] je mxn cjelobrojna matrica, a vektori b i c su cjelobrojni .

Ako se izostavi uslov cjelobrojnosti dobije se linearna relaksacija problema (3.1):

Max(min) cTx

Ax = b (3.2)

99

Page 100: OPERACIONA ISTRAZIVANJA

x >= 0

Osnovna razlika problema (3.1) i problema (3.2) je u tom, što je dopustivi skup u (3.1) diskretan, a u (3.2) konveksan.

Primjer 3.1.

Dat je zadatak CLP:

max x2

- 2 x1 + 2 x2 <= 1

2 x1 + 2 x2 <= 7

---------------------------------------

x1 >= 0, x2 >= 0, (x1, x2) Є Z2

Rješenje

Linearna relaksacija zadatka je:

max x2

- 2 x1 + 2 x2 <= 1

2 x1 + 2 x2 <= 7

-----------------------

x1 >= 0, x2 >= 0

U ovom zadatku, dopustivi prostor je konveksni poliedar ograničen pravcima:

x1 = 0

x2 = 0

- 2 x1 + 2 x2 = 1

2 x1 + 2 x2 = 7

Grafički je lako naći optimalnu vrijednost funkcije cilja linearne relaksacije. Ona je jednaka 2 i nalazi se u tačci (3/2, 2).

100

Page 101: OPERACIONA ISTRAZIVANJA

U slučaju CLP dopustivi skup je diskretan i sastoji se od 6 tačaka:

(0, 0), (1, 0), (2, 0), (3, 0), (1, 1), (2, 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, 1), (2, 1).

101

Page 102: OPERACIONA ISTRAZIVANJA

Primjer 3.2.

Dat je zadatak CLP:

max Z = - 10 x1 + 111 x2

- x1 + 10 x2 <= 40

x1 + x2 <= 20

---------------------------------------

x1 >= 0, x2 >= 0, (x1, x2) Є Z2

Zadatak riješiti grafičkom metodom.

Rješenje

Optimalno rješenje je u tački C(14, 5/11; 5, 5/11) gdje funkcija cilja dostiže maksimalnu Z = 460

Ako se zaokruže vrijednosti optimalnih promjenljivih dobiju se tačke:

E(14, 5), F(15, 5), G(14, 6), H(15, 6)

Tačke G i H ne zadovoljavaju ograničenja. Vrijednosti funkcije cilja u tačkama E i F su:

Z(14, 5) = 415

Z(15, 5) = 405

102

Page 103: OPERACIONA ISTRAZIVANJA

Na osnovu rezultata zaokruživanja moglo bi se zaključiti da je optimalno rješenje u tački E(14, 5), međutim, to nije tačno. Iz slike se vidi da tačka I(10, 5) ima bolju vrijednost funkcije cilja:

Z(10, 5) = 455

3.2. 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. Nova ogra-ničenja se generiraju na osnovu informa-cije o optimalnom rješenju linearne releksacije.

Postupak se sastoji od sljedećih koraka:

Korak 1. Naći optimalno rješenje koristeći simpleks algoritam ne uzimajući u obzir ograničenja na cjelobrojnost

Korak 2. Ako su sve promjenljive cjelobrojne u optimalnom rješenju, tada je to rješenje zadatka CLP

Korak 3. Ako je jedna promjenljiva u optimalnom rješenju necjelobrojna, tada se uvodi dodatno ograničenje. Ono se zove Gomory-jevo ograničenje. Ako je više promjen-ljivih necjelobrojno, bira se promjenljiva koja ima najveći necjelobrojni dio. Ako ih ima više istih, bira se jedna proizvoljno

Korak 4. Formira se simplex tabela uključujući dodatno ograničenje. Nalazi se novo optimalno rješenje koristeći dualni simpleks metod

Korak 5. Ako je novo optimalno rješenje cjelobrojno, to je rješenje zadatka CLP. U suprotnom, ide se na Korak 3..

Konstrukcija Gomory-jevih ograničenja

Primjer 3.3.

max Z = 8 x1 + 5 x2

x1 + x2 ≤ 6

9 x1 + 5 x2 ≤ 45

x1, x2 ≥ 0, (x1, x2) Є Z2

Proširenjem, linearna relaksacija zadatka dobije oblik:

max Z = 8 x1 + 5 x2 + 0 x3 + 0 x4

x1 + x2 + x3 = 6

9 x1 + 5 x2 + + x4 = 45

103

Page 104: OPERACIONA ISTRAZIVANJA

x1, x2, x3, x4 ≥ 0,

Početna simpleks tabela: Početno bazno dopustivo rješenje (0, 0, 6, 45), Z = 0, je cjelobrojno ali nije optimalno. Zadatak ćemo riješiti simlpeks algoritmom.

Simpleks tabela 1: Rješenje (5, 0, 1, 0), Z = 40, je cjelo-brojno ali nije optimalno.

Simpleks tabela 2: Rješenje (15/4, 9/4, 0, 0), Z = 165/4, je optimalno ali nije cjelobrojno .

104

Page 105: OPERACIONA ISTRAZIVANJA

Sada se izabere red optimalne simpleks tabele u kojoj slobodni član nije cjelobrojan. Pošto je necjelobrojni dio isti u oba reda (3/4), odabraćemo drugi red.

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 = ¾ - ¾ x3 – ¼ x4

Ako postoji cjelobrojno rješenje zadatka, tada su svi xi ≥ 0 cijeli brojevi. Iz toga proizilazi da je lijeva strana uvjek cijeli broj, a na osnovu toga, da i desna strana mora biti cijeli broj.

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.

Sada se formira tzv. odsjecajuća ravan

¾ - ¾ x3 – ¼ x4 = 0

i na osnovu nje formira novo ograničenje:

¾ - ¾ x3 – ¼ x4 ≤ 0

Ovo ograničenje ima sljedeće osobine:

• Svako dopustivo rješenje polaznog problema CLP, zadovoljava ovo ograničenje

• Optimalno rješenje linearne relaksacije ne zadovoljava

105

Page 106: OPERACIONA ISTRAZIVANJA

Sada se dodaje novo ograničenje sa novom dodatnom promjenljivom i dobije se nova Simpleks tabela:

Ova tabela nije primalno dopustiva ali jeste dualno, pa se može primijeniti dualna simpleks metoda.

Dobije se sljedeća simpleks tabela koja daje optimalno rješenje. Ujedno, ovo rješenje je cjelobrojno.

106

Page 107: OPERACIONA ISTRAZIVANJA

Optimalno rješenje je:

X* = (5, 0, 1, 0, 0)

Optimalna cjelobrojna vrijednost funkcije cilja je:

Z = 8 * 5 = 40

Dodatno ograničenje je smanjilo dopustivi prostor tj. odsjeklo je dio dopustivog prostora koji je “blizu” necjelobrojne optimalne tačke što je grafički dato na sl. 3.1..

107

Page 108: OPERACIONA ISTRAZIVANJA

Primjer 3.4.

max Z = x1 + 2 x2 + 3 x3 – x4

x1 + 2 x2 + 3 x3 = 15

2 x1 + x2 + 5 x3 = 20

x1 + 2 x2 + x3 + x4 = 10

x1, x2, x3, 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. Necjelobrojni dio je ½ u sve tri promjenljive. Proizvoljno biramo 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 = - ½

108

Page 109: OPERACIONA ISTRAZIVANJA

gdje je x5 odatna promjenljiva. Ova jednačina se naziva Gomory-jevo ograničenje a x5 Gomory-jeva dodatna promjen-ljiva.

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, ovaj zadatak nema nijedno cjelobrojno rješenje.

109

Page 110: OPERACIONA ISTRAZIVANJA

Ovaj algoritam nalazi optimalno rješenje cjelobrojnog linearnog programiranja za konačno mnogo koraka.

Međutim, broj koraka može biti vrlo veliki pa se ovaj metod kombinira sa metodom grananja i ograničavanja da bi se smanjio broj koraka.

Metode koje koriste kombinaciju ova dva pristupa nazivaju se metode grananja i odsjecanja.

Posebnu klasu u celobrojnom linearnom programiranju, zauzimaju problemi u kojima se zahteva da promenljive uzimaju vrednosti iz skupa {0, 1}.

To su tzv. zadaci 0-1 programiranja ili binar-nog programiranja. Ovi zadaci se često sreću u praksi.

Zadatak binarnog programiranja:

Max(min) cTx

Ax = b (3.3)

x >= 0 , x Є(0,1)

Linearna relaksacija zadatka binarnog programiranja je:

Max(min) cTx

Ax = b (3.4)

0 <= x <= 1

Problemi oblika (3.3) se mogu efikasno riješiti primjenom simpleks algoritma ili nekom drugom metodom koja ima polinominalnu računsku složenost.

Opći problem cjelobrojnog linearnog programiranja (3.1) je znatno teži, mada mu je dopustivi prostor zadan u obliku prebrojivog skupa.

110

Page 111: OPERACIONA ISTRAZIVANJA

3.2. TIPIČNI PROBLEMI CLP

1. Problem raspoređivanja

2. Transportni problem

3. Problem ranca

4. Problem trgovačkog putnika

Problem raspoređivanja (Assignment prob-lem)Potrebno je rasporediti n izvršilaca na n poslova, tako da njihova produktivnost bude maskimalna. Poznate su produktivnosti cij i-tog izvršioca na j-tom poslu za i, j = 1, 2, ..., n.

Matematički model Problema raspoređivanja predstavlja problem 0-1 programiranja, odnosno, binarnog programiranja:

111

Page 112: OPERACIONA ISTRAZIVANJA

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, S2, ..., Sm u n odredišta (prodavnica) P1, P2, ..., Pn, tako, da se preveze sva roba a da cijena transporta bude minimalna.

Poznate su količine robe u skladištima a1, a2, ..., am, potrebe prodavnica b1, b2, ..., bn, 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, S2, ..., Sm) jednaka ukupnoj potražnji (potrebe prodavnica P1, P2, ..., Pn), tj da vrijedi

Zadatak kod kojeg vrijedi gornji uvjet naziva se “zatvoreni” transportni zadatak u suprotnom je “otvoreni” transportni zadatak.

Otvoreni zadatak se prevodi u zatvoreni uvođenjem fiktivnog skladišta ili fiktivne prodavnice.

Ako sa xij označimo broj jednica mjere robe koja se prevozi iz skladišta i u prodavnicu j, matematički model transportnog problema je:

112

Page 113: OPERACIONA ISTRAZIVANJA

Jasno je da je problem raspoređivanja specijalan slučaj trans-portnog problema kada je m = n, ai = 1, bj = 1, cij = - cij

Dopustivi skupovi problema raspoređivanja i transportnog problema su “cjelobrojni poliedri” pa oni spadaju u “lake” probleme cjelobrojnog programiranja.

Poliedar x = (x e Rn / Ax = b, x >= 0), gdje je A cjelobrojna matrica ranga m i b je cjelobrojni vektor, naziva se cjelobrojni ako svi njegovi vrhovi (sva dopustiva bazna rješenja) imaju cjelobrojne koordinate.

Ako je dopustivi prostor dat kao cjelobrojni poliedar, uslovi cjelobrojnosti u zadatku (3.1) se mogu izostaviti i riješiti zadatak linearne relaksacije (3.2) čime se ujedno dobije rješenje zadatka (3.1).

Matrice, čiji su svi minori jednaki 0 ili ±1, nazivaju se totalno unimodularne.

Važi sljedeće: ako je A totalno unimo-dularna matrica punog ranga, tada je poliedar X cjelobrojan

Pošto su sve bazne podmatrice Ab nesingularne važi

det Ab Є {-1,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.

Dovoljan uvjet za totalnu unimodularnost

Pretpostavimo da svi elementi matrice A pripadaju skupu {0,1,-1} i da važi:

1. Svaka kolona ima najviše dva elementa različita od nule

2. Vrste se mogu podijeliti u dva skupa I i II, tako da nenulti elementi istog znaka iz proizvoljne kolone pripadaju raznim skupovima, a nenulti elementi različitog znaka iz proizvoljne kolone pripadaju istom skupu.

113

Page 114: OPERACIONA ISTRAZIVANJA

Tada je matrica A totalno unimodularna.

Primjer 3.5

Matrica A problema rasporedjivanja za n= 3 ima oblik:

Ako je I = {1,2,3} a II = {4,5,6}, ispunjeni su predhodni uvjeti pa je matrica A totalno unimodularna.

Pošto matrica A nema puni rang (rang A = 5), može se izostaviti posljednji red i uzeti da je II = {4,5}. Tada je matrica A totalno unimodularna punog ranga pa slijedi da ona definira cjelobrojni poliedar. Ovo vrijedi za prozvoljno n.

Slično se može izvesti za matricu transportnog problema.

Problem ranca (Knapsack problem)Pretpostavimo da planinar treba da popuni ranac sa određenim brojem stvari (na pr. konzervi) od kojih svaka ima određenu težinu (zapreminu) aj i ima neku vrijednost (kalorijsku) cj.

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, a da vrijednost (kalorijska) izabranog podskupa bude maksimalna.

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. Tada je matematički model problema ranca sljedeći:

Iako problem ranca ima jednostavnu strukturu (ima samo jedno ograničenje), može se pokazati da se postupkom agregacije bilo koji problem cjelobrojnog programiranja može svesti na problem ranca.

114

Page 115: OPERACIONA ISTRAZIVANJA

Ovako dobijen zadatak ima veoma velike koeficijente i teško se rješava, pa ova činjenica ima malu praktičnu vrijednost.

Problem trgovačkog putnika (Traveling Salesman Problem)

Trgovački putnik mora obići n gradova.

Poznata je “cijena” cij puta od grada i do grada j za svako i = 1, 2, ..., n, j = 1, 2, ..., n.

Treba naći redosljed obilazaka gradova pa da troškovi puta budu minimalni.

Problem je zatvoren ako se putnik mora vratiti u grad iz kojeg je pošao.

Problem je simetričan ako je cijena puta od grada i u grad j ista u oba smjera.

Ako je problem zatvoren i simetričan i ako između svaka dva grada postoji put, tada je broj različitih načina obilazaka – tura – jednak:

(n-1)!/2.

Primjer 3.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. Navešćemo dva modela koja spadaju u klasu problema cjelobrojnog programiranja.

Cjelobrojni model M1:

115

Page 116: OPERACIONA ISTRAZIVANJA

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:

Problem ranca (Knapsack problem)

Problem možemo postaviti slikovitije.

Provalnik ima ruksak veličine S (kubnih jedinica), a nailazi na veći plijen nego sto može ponijeti. Plijen su određeni predmeti (N) koji imaju različite velicine (volumen, izražen u onim istim kubnim jedinicama) i vrijednosti ci.

Lopov je u dilemi - kako napuniti ruksak predme-tima koji mu donose najveću dobit?

Ovaj zadatak se može riješiti na više načina

1. Proždrljivi algoritam (Greedy algorithm)

2. Dinamičko programiranje (Dynamic programming)

3. Algoritam granica i ograničavanja (Branch and boun)

4. Genetički algoritam (Genetic algorithm)

. . .

Osnovna ideja Proždrljivog algoritma (G. Dantzig, 1957) je da se nađu “specifične vrijednosti” predmeta kao odnos cijene i volumena.

116

Page 117: OPERACIONA ISTRAZIVANJA

Izbor tada ide od onih predmeta koji su naj-skupljih po jednici volumena (najvri-jedniji) dok se ruksak ne napuni.

Ovaj algoritam je vrlo efikasan ali rješenje, nađe-no na ovaj način, ne mora biti optimalno.

Primjer 3.7

Ukupni volumen je 10 kubnih jedinica, a broj predmeta, njihovi volumeni i cijene su dati u tabeli

Rješenje

“Specifične cijene” predmeta su

Bira se prvo jedan predmet broj 4. kao najvrijedniji (dva ne mogu jer bi bili veći od ukupnog volumena), predmet 3. ne može biti izabran jer bi također bi probijen ukupni volumen, pa se bira predmet 2., čime je popunjen volumen i to je ujedno kraj zadatka.

Rješenje je izbor predmeta 4. i predmeta 2. š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.

Ovdje ćemo zadatak rješavati tako što će se u razmatranje uzimati jedan po jedan predmet dok ne obradimo uključivanje svih predmeta.

Rekurzivna relacija se može napisati u obliku:

117

Page 118: OPERACIONA ISTRAZIVANJA

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. i Analiziraju se svi njegovi dopustivi rasporedi.

Z1(S1) = max[v1·x1] 0≤x1≤b1 i a1·x1≤S

gdje je

S = 10 ukupan raspoloživi volumen

a1 = 1 volumen po jedinici

b1 = 4 ukupan broj jedinica x1

v1 = 2 cijena po jedinici

Z1(S1) vrijednost funkcije cilja ako promjenljiva x1 zauzme volumen S1

Dopustiva rješenja, ako se uzme u obzir samo predmet 1., su:

Sada se razmatraju predmet 1. i predmet 2..

Z2(S2) = max[v2·x2+Z1(S2-x2)]

118

Page 119: OPERACIONA ISTRAZIVANJA

0≤x2≤b2 i a1·x1+a2·x2≤S

gdje je

a2 = 3 volumen po jedinici x2

b2 = 3 ukupan broj jedinica x2

v2 = 8 cijena po jedinici x2

Z2(S2) vrijednost funkcije cilja ako promjenljive x1 i x2 zauzmu volumen S2

Dopustiva rješenja su:

Sada se razmatra predmet 3., a preostali volumen se dodjeljuje predmetima 1. i 2. i uzima optimalna vrijednost izračunata kao Z2(S2)

Z3(S3) = max[v3·x3+Z2(S3-x3)]

0≤x3≤b3 i a1·x1+a2·x2+a3x3≤S

gdje je

a3 = 4 volumen po jedinici x3

b3 = 2 ukupan broj jedinica x3

v3 = 11 cijena po jedinici x3

Z3(S3) vrijednost funkcije cilja ako promjenljive x1, x2 i x3 zauzmu volumen S3

Dopustiva rješenja su:

119

Page 120: OPERACIONA ISTRAZIVANJA

Sada se razmatra predmet 4., a preostali volumen se dodjeljuje predmetima 1., 2. i 3. i uzima optimalna vrijednost izračunata kao Z3(S3)

Z4(S4) = max[v4·x4+Z3(S4-x4)]

0≤x4≤b4 i a1·x1+a2·x2+a3x3+a4x4≤S

gdje je

a4 = 7 volumen po jedinici x4

b4 = 2 ukupan broj jedinica x4

v4 = 20 cijena po jedinici x4

Z4(S4) vrijednost funkcije cilja ako promjenljive x1, x2, x3 i x4 zauzmu volumen S4

Dopustiva rješenja su:

Optimalno rješenje je:

120

Page 121: OPERACIONA ISTRAZIVANJA

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, optimalni izbor je:

x1 = 0, x2 = 1, x3 = 0, x4 = 1

Problem trgovačkog putnika (Traveling Salesman Problem)

Trgovački putnik mora obići n gradova.

Poznata je “cijena” cij puta od grada i do grada j za svako i = 1, 2, ..., n, j = 1, 2, ..., n.

Treba naći redosljed obilazaka gradova pa da troškovi puta budu minimalni.

Problem je zatvoren ako se putnik mora vratiti u grad iz kojeg je pošao.

Problem je simetričan ako je cijena puta od grada i u grad j ista u oba smjera.

Ako je problem zatvoren i simetričan i ako između svaka dva grada postoji put, tada je broj različitih načina obilazaka – tura – jednak:

(n-1)!/2.

Problem trovačkog putnika se može modelirati na više načina. Navešćemo dva modela koja spadaju u klasu problema cjelobrojnog programiranja.

Cjelobrojni model M1:

121

Page 122: OPERACIONA ISTRAZIVANJA

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:

122

Page 123: OPERACIONA ISTRAZIVANJA

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)

123

Page 124: OPERACIONA ISTRAZIVANJA

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:

124

Page 125: OPERACIONA ISTRAZIVANJA

u1 - 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.3. PRISTUPI RJEŠAVANJU PROBLEMA CLPPostoji više pristupa rješavanju problema CLP. Ovdje ćemo navesti tri direktne ideje:

1. Totalno pretraživanje

2. Zaokruživanje rješenja linearne relaksacije

3. Prevođenje u problem nelinarnog programiranja

Totalno pretraživanjeAko je dopustivi prostor problema (3.2) ograničen dopustivi skup problema (3.1) je končan skup. Iz toga slijedi da se do rješenja može doći pretraživanjem svih dopustivih tačaka.

Međutim, lako je pokazati da je ovaj pristup praktično neupotrebljiv kada poraste dimenzionalnost zadatka.

Naime, 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.

Jasno je da već pri n > 50 ni najbrži računari ne mogu, u prihvatljivom vremenu, obaviti potpuno pretraživanje.

Zaokruživanje rješenja linearne relaksacijeOvaj 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.

Ako se u Primjeru 3.1 izvrši zaokruživanje rješenja (3/2, 2) dobiće se tačke (1,2) i (2,2) od kojih nijedna nije dopustiva.

Pored toga, ako je rješenje dobijeno zaokruži-vanjem jest dopustivo, ono ne mora biti optimalno.

125

Page 126: OPERACIONA ISTRAZIVANJA

Prevođenje u problem nelinarnog programiranjaDiskretni uslovi

xi e Z, i =1, 2, ..., n

su jednaki kontinualnim nelinarnim uslovima

sin(∏xi) = 0, i =1, 2, ..., n

Također, diskretni uslovi

xi Є (0, 1), i =1, 2, ..., n

su jednaku kontinualnim nelinarnim uslovima

xi (xi-1) = 0, i =1, 2, ..., n

Koristeći ove zamjene, zadaci (3.1) i (3.3) se mogu napisati u obliku problema nelinearnog programiranja.

Međutim, u tom slučaju zadatak nije konveksan pa se do globalnog ekstrema ne može doći egzaktnim metodama.

Osnovna poteškoća kod cjelobrojnog programiranja je što ne postoje kritriji optimalnosti kao na primjer kod LP.

Radi toga nalaženje optimalnog rješenja se svodi na pretraživanje dopustivog skupa, što u općem slučaju ima eksponencijalnu složenost.

Veći problemi se, u praksi, rješavaju heuristi-čkim metodama kod kojih ne postoji garancija da je nađeno rješenje optimalno.

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.

Postoje prisupi zasnovani na odsjecanju dijelova dopustivog protora koji ne sadrže cjelobrojna rješenja.

Ovaj pristup je znatno efikasniji od totalnog pretraživanja, međutim, one ipak imaju eksponencijalnu računsku složenost.

Dakle, za sada, ne postoji algoritam koji za polinominalno vrijeme računanja rješava probleme cjelobrojnog programiranja

U nekim specijalnim slučajevima, kada su sve koordinate linearne relaksacije problema (3.1) cjelobrojne, rješenje problema (3.2) je ujedno rješenje problema (3.1).

126

Page 127: OPERACIONA ISTRAZIVANJA

U ove slučajeve spadaju Transportni problem, Problem Raspoređivanja, Problem maksimalnog protoka, ...

3.4. 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.

Pretraživanje je suženo na “interesantne” dijelove dopustivog skupa i zato je efikasnija od totalnog pretraživanja. Računarska složenost ostaje eksponencijalna ali se u nekim slučajevima do rezultata može doći relativno brzo.

Osnovna ideja se može definirati kao “dijeljenje i osvajanje”. Pošto je problem suviše složen za direktno rješavanje, on se dijeli na sve manje i manje podprobleme.

Dijeljenje se vrši razbijanjem dopustivog skupa na podskupove čime dobija podbroblem.

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.

Razrješeni problemi se brišu iz skupa pod-problema i po njima se ne vrši dalje grananje.

Primjer 3.8

Riješiti problem cjelobrojnog programiranja:

max Z = 8 x1 + 5 x2

x1 + x2 <= 6

9 x1 + 5 x2 <= 45

x1 >= 0, x2 >= 0, (x1, x2) € Z2

Linearna relaksacija i dopustiva cjelobrojna rješenja dati su na slici:

127

Page 128: OPERACIONA ISTRAZIVANJA

Rješenje

Podproblem 1: Linearna relaksacija

Sa slike se vidi da je optimalno rješenja linearne relaksacije (15/4, 9/4) iz čega slijedi da je optimalna vrijednost funkcije cilja Z = 165/4 = 41.25.

Rješenje nije cjelobrojno ali se na osnovu njega može zaključiti da je gornja granica za otimalnu vrijednost jednaka 41.

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

128

Page 129: OPERACIONA ISTRAZIVANJA

Optimalno rješenje Podproblema 2 je

(4, 9/5), Z = 41

a optimalno rješenje Podproblema 3 je

(3, 3), Z = 39

Optimalno rješenje podproblema 3 je cjelobrojno i ono je kandidat za optimum. Podproblem 3 ne treba dalje razlagati. Vrijednost 39 je donja granica 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

129

Page 130: OPERACIONA ISTRAZIVANJA

Dopustivi skup potproblema 4 je prazan skup i on se dalje ne razlaže.

Optimalno rješenje potproblema 5 je dato sa (40/9, 1), 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

130

Page 131: OPERACIONA ISTRAZIVANJA

Dopustivi skup podproblema 6 je tačka (5, 0) i ona je optimalno rješenje, Z = 40. Ona je ujedno kandidat za optimum polaznog zadatka.

Optimalno rješenje podproblema 7 je dato sa (4, 1), Z = 37, koje je cjelobrojno ali ne popravlja optimum.

Pošto nema više nerazrješenih podprob-lema, optimalno rješenje je (5, 0), Z = 40

131