Posebna svojstva simpleks algoritma
MaĆĄek, Maja
Undergraduate thesis / ZavrĆĄni rad
2018
Degree Grantor / Ustanova koja je dodijelila akademski / struÄni stupanj: University of Zagreb, Faculty of Organization and Informatics / SveuÄiliĆĄte u Zagrebu, Fakultet organizacije i informatike
Permanent link / Trajna poveznica: https://urn.nsk.hr/urn:nbn:hr:211:458199
Rights / Prava: Attribution-ShareAlike 3.0 Unported
Download date / Datum preuzimanja: 2021-10-25
Repository / Repozitorij:
Faculty of Organization and Informatics - Digital Repository
SVEUÄILIĆ TE U ZAGREBU
FAKULTET ORGANIZACIJE I INFORMATIKE
V A R A Ćœ D I N
Maja MaĆĄek
POSEBNA SVOJSTVA SIMPLEKS
ALGORITMA
ZAVRĆ NI RAD
VaraĆŸdin, 2018.
SVEUÄILIĆ TE U ZAGREBU
FAKULTET ORGANIZACIJE I INFORMATIKE
V A R A Ćœ D I N
Maja MaĆĄek
MatiÄni broj: 41343/12-I
Studij: Poslovni sustavi
POSEBNA SVOJSTVA SIMPLEKS
ALGORITMA
ZAVRĆ NI RAD
Mentor:
Dr. sc. Nenad PerĆĄi
VaraĆŸdin, veljaÄa 2018.
I
SadrĆŸaj
1. Uvod ...................................................................................................................................... 1
2. Operacijska istraĆŸivanja ......................................................................................................... 2
3. Linearno programiranje ......................................................................................................... 3
3.1. Osnovni pojmovi i njihovo definiranje ........................................................................... 6
3.2. MatematiÄko definiranje problema linearnog programiranja ....................................... 10
3.3. Ekonomsko definiranje problema linearnog programiranja ......................................... 16
3.4. RjeĆĄavanje problema linearnog programiranja ............................................................. 16
4. Simpleks algoritam .............................................................................................................. 20
4.1. Standardni problem linearnog programiranja za maksimum ....................................... 21
4.2. Standardni problem linearnog programiranja za minimum .......................................... 30
4.3. OpÄi problemi linearnog programiranja za maksimum i minimum ............................. 32
5. Posebna svojstva simpleks algoritma .................................................................................. 33
5.1. BaziÄno rjeĆĄenje ............................................................................................................ 33
5.2. Degeneracija ................................................................................................................. 33
5.2.1. Dualna degeneracija ............................................................................................... 39
5.3. Pojava ciklusa ............................................................................................................... 43
5.4. SluÄaj nedopuĆĄtenih rjeĆĄenja ........................................................................................ 46
5.5. SluÄaj neograniÄenih rjeĆĄenja ....................................................................................... 49
5.6. SluÄaj viĆĄestrukog optimalnog rjeĆĄenja ........................................................................ 51
6. ZakljuÄak ............................................................................................................................. 54
Literatura .................................................................................................................................. 55
Popis slika ................................................................................................................................ 56
Popis tablica ............................................................................................................................. 57
1
1. Uvod
Operacijska istraĆŸivanja imaju ĆĄiroko matematiÄko, ali i ekonomsko poimanje. Ona se
sastoje od razliÄitih metoda i tehnika koja svojom primjenom uveliko potpomaĆŸu
ekonomskim analizama odnosno donoĆĄenju krucijalnih odluka unutar nekog poduzeÄa.
PodruÄje operacijskih istraĆŸivanja koje Äe se obraÄivati u ovome radu je linearno
programiranje. Svakako prvotna uporaba i nastanak operacijskih istraĆŸivanja odnosno
linearnog programiranja nije bio namijenjen poduzeÄima kakva danas postoje, ali sam razvoj
discipline pratio je drugi svjetski rat i poveÄan razvoj industrije nakon rata odnosno razvoj
raÄunala. RaÄunalo je stupilo na snagu unutar discipline kao vrlo bitan element pomoÄu kojeg
se toÄnije i brĆŸe dolazi do rjeĆĄenja problema zadanog sustava. NaÄini odnosno metode
pomoÄu kojih se dolazi do takvih rjeĆĄenje je mnogo. Jedna od vaĆŸnijih obradit Äe se u ovome
radu, a to je simpleks metoda sa svojim algoritmom, koja kao metoda spada pod metodu
linearnog programiranja. Osim osnovnog o ovim metodama bit Äe rijeÄi i o posebnim
sluÄajevima koji se mogu javiti prilikom primjene simpleks algoritma. Ono ĆĄto se ovim radom
ĆŸeli pokazati je zaĆĄto se ti sluÄajevi javljaju i na koji naÄin im se pristupa. U realnim
sustavima u kojima se radi s velikim brojem informacija i podataka vrlo je bitno imati i
matematiÄko uporiĆĄte u donoĆĄenju odluka. Zato se ove metode jako dobro mogu prilagoditi
takvim oblicima problema u kojima treba dobro razvrstati podatke i primijeniti ih na
odgovarajuÄi naÄin. Naravno, uvijek kada se radi o velikom broju podataka koje treba obraditi
odnosno na temelju kojih treba doÄi do kvalitativnih odgovora, prisutna je moguÄnost pojave
odreÄenih poteĆĄkoÄa. PoteĆĄkoÄe mogu biti dio krivo postavljenih problema, zato ih je bitno
prepoznati i uvidjeti uzroke takvih poteĆĄkoÄa. Zato Äe ovaj rad obraditi upravo te vaĆŸne
dijelove simpleks algoritma. Nakon same definicije i objaĆĄnjenja linearnog programiranja te
zatim i detaljnog opisa funkcioniranja simpleks algoritma odgovorit Äe se na pitanje zaĆĄto se
odreÄene poteĆĄkoÄe prilikom primjene tog algoritma javljaju i mogu li se na neki naÄin i
otkloniti kako se ne bi dobila viĆĄesmislena rjeĆĄenja problema. Tema ovog rada vrlo je
kompleksna i zahtjevna, ali ona Äe biti odraÄena kroz ĆĄto jednostavnije primjere i definicije
kako bi se shvatila cjelokupna bit.
2
2. Operacijska istraĆŸivanja
Postoje mnoga tumaÄenja i definicije operacijskih istraĆŸivanja. MoĆŸe se reÄi kako
operacijska istraĆŸivanja objedinjuju matematiku, programiranje, elektroniÄku obradu
podataka, organizaciju podataka, pribavljanje podataka, tehnike strukturiranja i klasificiranja,
kreativne tehnike i joĆĄ mnogo disciplina i podruÄja s kojima operacijsko istraĆŸivanje mora
'suraÄivati' kako bi uspjelo postiÄi svoj cilj i primjenu. [BarkoviÄ, 2001, 8]. Ovoliko disciplina
koje su zajedno ujedinjene prema jednom cilju uvodi se kako bi se uÄvrstilo prihvaÄanje
odluka na znanstvenoj osnovi. Operativno istraĆŸivanje kao znanstvena metoda eksplicitno se
pojavila pod tim imenom za vrijeme drugog svjetskog rata na podruÄju vojne strategije i
taktike, a kasnije se zbog svoje djelotvornosti proĆĄirilo i na druga podruÄja ljudske djelatnosti
[MartiÄ, Vandal, 1968, 3]. Operacijska istraĆŸivanja objedinjuju mnoge metode i matematiÄka i
statistiÄka sredstva uz pomoÄu kojih se zajedno dolazi do rjeĆĄenja problema. Na temelju
klasifikacije problema odreÄuje se koje Äe se od metoda i sredstava primijeniti za rjeĆĄavanje
problema, ali i njegove analize. Za kvalifikaciju problema koriste se dva klasifikacijska
kriterija [MartiÄ, Vandal, 1968, 7]. Prema prvom kriteriju dobiva se klasifikacija prema
upotrijebljenim metodama i po tom kriteriju modeli operacijskih istraĆŸivanja mogu se
klasificirati ovako: modeli linearnog programiranja, modeli kvadratnog programiranja, modeli
bilinearnog programiranja itd. [MartiÄ, Vandal, 1968, 8]. Po drugom pak kriteriju dobiva se
klasifikacija prema obraÄivanom sadrĆŸaju i po tom kriteriju modeli se klasificiraju ovako:
modeli proizvodnih procesa, modeli transporta, modeli zaliha itd. [MartiÄ, Vandal, 1968, 8].
Modeli koji Äe se u ovom radu obraÄivati i na temelju kojih Äe se prikazati tema ovog rada su
modeli linearnog programiranja, koji Äe biti prikazani i kao problemi proizvodnih procesa.
3
3. Linearno programiranje
Linearno programiranje dio je matematiÄke discipline koja se naziva matematiÄko
programiranje [KalpiÄ, Mornar, 1996, 5]. TakoÄer, linearno programiranje moĆŸe se svrstati i
unutar discipline matematiÄkog optimiranja. Ono je najprimjenjivanija metoda operativnog
istraĆŸivanja te se primjenjuje kada se traĆŸe ekstremne vrijednosti problema, kao naprimjer
maksimum prihoda odnosno minimum troĆĄkova. [DobreniÄ, 1975, 3]. MoĆŸe se reÄi da je
linearno programiranje zapravo skup metoda i postupaka kojima se odreÄuju ekstremne
vrijednosti takve linearne funkcije, Äije podruÄje definicije odreÄuje sustav linearnih
jednadĆŸbi ili nejednadĆŸbi [DobreniÄ, 1975, 28]. Upravo zato ĆĄto ova metoda rjeĆĄava probleme
koji su postavljeni tako da su im sva ograniÄenja i ciljevi odnosno sve jednadĆŸbe i
nejednadĆŸbe u linearnom obliku, opravdava naziv same metode. Nadalje, neÄe se dublje
ulaziti u povijest nastanka tehnike linearnog programiranja, ali valja napomenuti neke bitne
toÄke njezina razvoja.
Iako je linearno programiranje kakvo danas postoji dobilo naziv i matematiÄku
definiciju tek kasnih Äetrdesetih i ranih pedesetih godina 20. stoljeÄa, njegovom otkrivanju
prethodila su razna druga stvaranja, razvoji i utjecaji. Neka Äak seĆŸu i u 18. stoljeÄe za koje se
kaĆŸe da je bio zaÄetak linearnog programiranja jer su tada ekonomisti prvi puta poÄeli
opisivati ekonomske sisteme matematiÄkim izrazima [DobreniÄ, 1975, 4]. StoljeÄe kasnije joĆĄ
jedan je ekonomist dao svoj doprinos razvoju linearnog programiranja time ĆĄto je preporuÄio
jedan umjetni matematiÄki model koji je kao dio svoje strukture imao tehnoloĆĄke koeficijente
[DobreniÄ, 1975, 4]. Od tada pa sve do tridesetih godina 20. stoljeÄa nije se niĆĄta bitno viĆĄe
dogaÄalo na tom polju da bi se prije i nakon drugog svjetskog rata ova teorija vrlo brzo razvila
i pretvorila u disciplinu. Bitno ime koje se spominje je ruski matematiÄar L.V. KantoroviÄ
koji je svojim djelima odnosno radovima pribliĆŸio matematiku ekonomskom planiranju
proizvodnje odnosno ekonomskom raÄunanju optimalnog iskoriĆĄtenja strojeva â kako se i
zvalo jedno od njegovih radova [DobreniÄ,1975, 5]. NaĆŸalost, ruski matematiÄar je sa svojim
radovima ostao popriliÄno nezapaĆŸen neko vrijeme od objave pa se za to vrijeme veÄ naveliko
razvilo linearno programiranje kao disciplina izvan granica SSSR-a. Tako je 1947. Georg. B.
Dantzig razradio simpleks raÄunsku metodu za pronalaĆŸenje optimalnog moguÄeg programa
problema linearnog programiranja [DobreniÄ, 1975, 6]. O toj metodi odnosno njezinom
algoritmu svakako Äe biti viĆĄe rijeÄi u narednim poglavljima. Nakon primjene linearnog
programiranja u vojnom podruÄju - planiranja vojnih akcija ĆĄirokih razmjera, od ruta brodova
izmeÄu luka do utvrÄivanja tijeka dobara izmeÄu privrednih grana â slijede prvi pokuĆĄaji
4
primjene linearnog programiranja u rjeĆĄavanju problema industrije [BarkoviÄ, 2001, 10].
Danas se veÄ mogu navesti mnogi problemi koji se rjeĆĄavaju uz pomoÄ linearnog
programiranja poput proizvodnih programa, izbora lokacije tvornica, optimalnog planiranja
investicijskih ulaganja, razmjeĆĄtaja strojeva, izbor optimalnih tehnoloĆĄkih postupaka,
sastavljanja optimalnih planova prehrane, transporta, izbora i razmjeĆĄtaja sredstava
naoruĆŸanja i joĆĄ bezbroj drugih podruÄja na kojima je moguÄe primijeniti linearno
programiranje.
Trebalo bi napomenuti kako je linearno programiranje doĆŸivjelo 'procvat' odnosno
poveÄan interes za koriĆĄtenjem paralelno s razvojem raÄunala i raÄunalnih tehnika kojima se
omoguÄilo brĆŸe rjeĆĄavanje sve veÄih zahtjeva i problema koji nisu bili moguÄi samo uz pomoÄ
ljudskog faktora. OdluÄivanje u organizaciji moralo je biti poduprto i raÄunalnim programima
uz pomoÄ kojih su se predlagali precizni i toÄni podaci. Svakako da su se ti programi iz
godinu u godinu usavrĆĄavali i nadograÄivali, pa se tako joĆĄ i danas oni mijenjaju i pokuĆĄavaju
ĆĄto viĆĄe prilagoditi ĆŸeljenim problemima. Danas se tako uz koriĆĄtenje raÄunala rjeĆĄavaju vrlo
sloĆŸeni problemi optimizacije koji se javljaju unutar podruÄja u kojima je linearno
programiranje nezaobilazna metoda [KuzmanoviÄ,Sabo, 1]. Problemi transporta, energije,
telekomunikacije, proizvodnje â svi oni nedvojbeno moraju ukljuÄiti u svoje poslovanje
odluÄivanje na temelju rezultata linearno programiranja.
Prema izvoru [Ravindran, Phillips, Solberg, 2007, 13] pojam linearnog programiranja
jednostavno definiramo kao odreÄen skup programskih problema koji zadovoljavaju sljedeÄe
uvjete:
1. Varijable odluÄivanja koje su ukljuÄene u problem su nenegativne odnosno
pozitivne ili nula. To se moĆŸe objasniti tako da ako varijable gledamo kao
proizvod on se moĆŸe proizvoditi u nekoj koliÄini ili se ne proizvodi, ne moĆŸe se
negativno proizvoditi.
2. Kriterij za odabir najbolje vrijednosti varijabli odluÄivanja moĆŸe biti opisan
linearnom funkcijom tih varijabli. Funkcija kriterija obiÄno se naziva funkcija
cilja.
3. Operativna pravila koja ureÄuju proces npr. koliÄina resursa mogu se izraziti kao
skup linearnih jednadĆŸbi ili linearnih nejednadĆŸbi. Ovaj skup se obiÄno naziva
skup ograniÄenja.
5
Upravo su zadnja dva stanja razlozi za zaĆĄto se linearno programiranje tako i naziva.
Kako se veÄ i navelo oni su u linearnom obliku. Ć iroka uporaba linearnog programiranja seĆŸe
od veÄ spomenute vojske, preko ekonomije do industrije pa Äak i socijalnih problema. Navode
se tri razloga za njihovo ĆĄiroko koriĆĄtenje:
1. Raznoliki problemi iz razliÄitih podruÄja mogu se prikazati ili barem pribliĆŸno kao
model linearnog programiranja.
2. Na raspolaganju postoje odnosno dostupne su uÄinkovite tehnike za rijeĆĄevanje
problema linearnog programiranja.
3. Sveprisutna jednostavnost kojom se razliÄiti podaci mogu upravljati putem
modela linearnog programiranja.
MoĆŸe se joĆĄ naglasiti kako su procedure rjeĆĄavanja po prirodi iterativne i da se Äak i za
umjereno velike probleme pribjegava koriĆĄtenju raÄunala kako bi se doĆĄlo do rjeĆĄenja.
Ponekad su analize do kojih se doĆĄlo linearnim programiranjem bile neisplative jer je troĆĄak
procedure s kojom se doĆĄlo do rjeĆĄenja problema bio veÄi nego vrijednost samog rjeĆĄenja.
Danas to naravno nije takav sluÄaj jer je razvoj raÄunala odnosno i same tehnologije toliko
uznapredovao da se je rjeĆĄenje velikih problema linearnog programiranja postalo ne samo
izvedimo veÄ i jeftino [Ravindran, Phillips, Solberg, 2007, 14].
Metode linearnog programiranja najvaĆŸniji su instrument operacijskih istraĆŸivanja
[BarkoviÄ, 2001, 9]. Kako operacijska istraĆŸivanja imaju za cilj odrediti najbolji odnosno
optimalni smjer aktivnosti u problemu odluÄivanja u okviru danih restrikcija i ograniÄenja
kapaciteta [BarkoviÄ, 2001, 1], tako se moĆŸe reÄi da je svrha linearnog programiranja unutar
operacijskih istraĆŸivanja takoÄer optimiranje. Takav cilj onda promatramo Äisto sa stajaliĆĄta
ekonomskog problema, a ne matematiÄkog, iako je ono potrebno kako bi se problem uspio
rijeĆĄiti odnosno optimirati. Upravo takvo matematiÄko definiranje linearnog programiranja
glasi, kako smo veÄ naveli, da je ono rjeĆĄenje nekog matematiÄkog zadatka koji se sastoji u
optimiranju neke linearne funkcije Äije varijable zadovoljavaju neki sustav linearnih jednadĆŸbi
i nejednadĆŸbi [BarkoviÄ, 2001, 9]. Striktno govoreÄi kako je veÄ spomenuto linearno
programiranje i je matematiÄka tehnika, ali u ekonomici nekog poduzeÄa linearno
programiranje obuhvaÄa i viĆĄe nego poznavanje same tehnike [DobreniÄ,1966, 25]. Linearno
programiranje je skup metoda Äija je karakteristika univerzalnost u primjeni pa one nisu
ograniÄene na usko podruÄje ekonomskih analiza. S druge pak strane matematiÄka
6
formulacija i postupak omoguÄavaju da se dobije toÄno rjeĆĄenje, liĆĄeno sumnje i osloboÄeno
subjektivizma, ĆĄto je u ekonomskoj analizi izrazito bitno [DobreniÄ, 1975, 28].
3.1. Osnovni pojmovi i njihovo definiranje
Prije samog matematiÄkog definiranja problema linearnog programiranja valjalo bi
objasniti osnovne pojmove s kojima se zapoÄinje rjeĆĄavanje problema linearnog
programiranja. Neki su se veÄ u kratko i spomenuli. Prvi svakako kojeg treba objasniti je
model.
Model odreÄenog problema postavlja se u apstraktnom ili matematiÄkom obliku.
Naravno kako bi se nad modelom koji je apstraktno postavljen mogle primjenjivati odreÄene
operacije odnosno metode i tehnike mora ga se dovesti u matematiÄki oblik. Prilikom tog
'prevoÄenja' odnosno joĆĄ prilikom same formulacije problema moĆŸe doÄi do kritiÄnih
pogreĆĄaka. Ukoliko se izostavi samo jedna Äinjenica tj. varijabla ili uvjeti koji su od kritiÄne
vaĆŸnosti moĆŸe se desiti da se pojave rjeĆĄenja koja nisu relevantna za aktualnu situaciju
[DobreniÄ, 1966, 14].
Postavljeni model linearnog programiranja sastoji se od kriterija odnosno cilja,
ograniÄenja i uvjeta. Funkcija cilja kako smo veÄ i spomenuli nam sluĆŸi za izbor najboljeg
moguÄeg rjeĆĄenja postavljenog problema odnosno optimalnog rjeĆĄenja. Zato se ona naziva i
funkcijom kriterija. [VuÄkoviÄ, 1983, 14]. OgraniÄenja pak ograniÄavaju niz rjeĆĄenja za
vrijednosti programa, ali tek s funkcijom cilja tvore potpuni program. OgraniÄenja problema
postavljaju se u obliku jednadĆŸbi i/ili nejednadĆŸbi.
Na temelju sljedeÄeg jednostavnog primjera1 objasnit Äe se navedeno. Recimo da u
zamiĆĄljenoj industriji imamo jedan stroj Äiji je kapacitet 30 radnih sati tjedno. Ćœeli se odrediti
koliÄina proizvoda koja se moĆŸe obraditi na tom stroju, a koju oznaÄavamo s nepoznanicom
đ. Svaka jedinica proizvoda đ„ zahtijeva vrijeme obrade od 5 sati rada. Izraz koji slijedi i
ovoga je:
5đ„ = 30.
Znak jednakosti odreÄuje da se kapacitet stroja mora iskoristiti u potpunosti te na
temelju toga dolazi se do sljedeÄeg rjeĆĄenja postavljenog problema, a to je đ„ = 5. To rjeĆĄenje
naziva se program. TakoÄer za ovaj problem moglo se traĆŸiti potpuno iskoriĆĄtenje, ali da ono
nije zahtijevano pa je onda potrebno u tom sluÄaju koristiti znak nejednakosti âmanje od ili
1 Primjer izraÄen prema DobreniÄ, 1966, 13.
7
jednakoâ - â€, koji se joĆĄ moĆŸe nazivati i ograniÄenjem koje je zadano gornjom granicom.
Ukoliko se u interpretaciji problema zahtijeva iskoriĆĄtenje minimalno 30 radnih sati odnosno
ograniÄenje je zadano donjom granicom, znak nejednakosti koji se mora staviti je âveÄe od ili
jednakoâ - â„. Ne treba bitno naglaĆĄavati da nejednadĆŸbe dozvoljavaju niz rjeĆĄenja odnosno
selekciju programa iz ĆĄirokog niza alternativa, dok jednadĆŸba naravno ne. Ipak, kod jednadĆŸbe
je moguÄe da se pojavi niz rjeĆĄenja ukoliko recimo na ovom primjeru ĆŸelimo da se na stroju
obavlja izrada joĆĄ jednog proizvoda i to po jedinici od 2 sata rada na istom. Na temelju toga
dobiva se sljedeÄi oblik jednadĆŸbe:
5đ„1 + 3đ„2 = 30,
i njeno rjeĆĄenje odnosno program koji ju zadovoljava
program 1: đ„1 = 6, đ„2 = 0
program 2: đ„1 = 0, đ„2 = 10
program 3: đ„1 = 3, đ„2 = 5.
RjeĆĄenje ove jednadĆŸbe dopuĆĄta obradu razliÄitih koliÄina prvog i/ili drugog
proizvoda, ali na naÄin da ispunjavaju uvjet koji nam zadaje da program mora sadrĆŸavati
onolike koliÄine koje zajedno iskoriĆĄtavaju pun kapacitet stroja. Navedenu jednadĆŸbu s dvije
nepoznanice moglo se takoÄer zapisati i u obliku nejednadĆŸbe i time bi se dobilo otvoreniji
problem u smislu da kapacitet stroja ne bi morao biti iskoriĆĄten u potpunosti:
5đ„1 + 3đ„2 †30.
Ponekad je prilikom postavljanja problema kljuÄno upravo ovo. Prepoznati
odgovarajuÄe ograniÄenje nad raspoloĆŸivim kapacitetom odnosno prepoznati hoÄe li se
upotrijebiti nejednakost ili jednakost. Ovom primjeru dodat Äe se joĆĄ jedno ograniÄenje tj. joĆĄ
jedan stroj na kojem se doraÄuju proizvodi, ali ovog puta samo proizvod đ„1 koji zahtijeva 2
sata obrade i to unutar kapaciteta od 12 radnih sata:
4đ„1 + 0đ„2 †12.
Ova ograniÄenja moraju se spojiti u jedan proĆĄireni model jer oba izraza moraju biti
simultano zadovoljena. TakoÄer potrebno im je dodati uvjet koji ne dozvoljava negativne
vrijednosti za proizvode poĆĄto se logiÄno i realno proizvodi ili ne proizvode (vrijednost im je
jednaka 0) ili proizvode (vrijednost im je veÄa od 0). Ne moguÄe ih je negativno proizvoditi.
Takav uvjet naziva se uvjet nenegativnosti. Svako moguÄe rjeĆĄenje problema je odgovarajuÄa
kombinacija nenenegativnih vrijednosti svih polaznih varijabli kod koje lijeva strana svake od
8
ograniÄavajuÄih nejednadĆŸbi ne smije imati vrijednost veÄu od njene odgovarajuÄe desne
strane [VuÄkoviÄ, 1983, 51]. Krajnji oblik modela, ali ne i potpuni sada glasi:
5đ„1 + 3đ„2 †30
4đ„1 + 0đ„2 †12
đ„1, đ„2 â„ 0.
Kako se pomoÄu postavljenih ograniÄenja dobiva niz moguÄih rjeĆĄenja, postavlja se
pitanje koji od tih programa izabrati kao konaÄno, najbolje rjeĆĄenje. U toj odluci pomaĆŸe
funkcija cilja tj. funkcija kriterija. Svaki problem linearnog programiranja je rjeĆĄiv ako ima
bar jedno moguÄe rjeĆĄenje, a isti moĆŸe imati i viĆĄe moguÄih rjeĆĄenja. Upravo funkcija cilja
sluĆŸi kao kriterij za izbor najboljeg moguÄeg rjeĆĄenja problema [VuÄkoviÄ, 1983, 48].
Funkcija cilja odreÄuje tijek programa odnosno pomoÄu nje se odreÄuje hoÄe li se pomoÄu
programa maksimizirati ili minimizirati konaÄna vrijednosti. U svakom sluÄaju za cilj joj je
izvrĆĄiti optimiranje. PronaÄi Äe najbolje moguÄe rjeĆĄenje. Funkcija cilja izraĆŸava se pomoÄu
zadanih konstanti npr. u navedenom sluÄaju đđ i đđ koje mogu prikazivati prihod po jedinici
proizvoda ili pak rashod - u ovisnosti ĆŸeli li se maksimizirati ili minimizirati zadani problem:
đ = đ1đ„1 + đ2đ„2 .
Za navedeni primjer uzet Äe se vrijednosti:
đ1 = 8, đ2 = 3,
pa zapis za ukupni prihod izgleda ovako:
đ = 8đ„1 + 3đ„2.
Odnosno potpuni model za ovaj problem glasi:
maksimizirati 8đ„1 + 3đ„2,
uz uvjete
5đ„1 + 3đ„2 †30
4đ„1 + 0đ„2 †12
đ„1, đ„2 â„ 0.
Program koji zadovoljava ove uvijete i cilj maksimizacije je: đ„1 = 3, đ„2 = 5. Ne
postoji viĆĄe niti jedan program koji bi bio tako dobar da rezultira najveÄim prihodom uz
postavljena ograniÄenja. Taj maksimalni prihod iznosi 8 â 3 + 3 â 5 = 39 n.j. kao novÄanih
jedinica poĆĄto se ne zna i nije trenutno bitno u kojem obliku su one izraĆŸene.
9
Preko ovog malog i jednostavnog primjera ĆŸeljelo se u kratko prikazati na koji naÄin
se postavlja model linearnog programiranja i na koji naÄin se ono optimira. Naravno da se u
stvarnom poslovnom svijetu pojavljuju daleko veÄi i kompleksiji modeli i njima odgovarajuÄe
metode. O nekima od njih Äe kasnije biti viĆĄe rijeÄi.
Sve ovo navedeno moĆŸe se zapisati naravno pomoÄu matematiÄkih simbola odnosno
model linearnog programiranja izgleda tako da problem kojeg ĆŸelimo optimirati se zapiĆĄe kao
[DobreniÄ, 1966, 17]:
đđđ. â đđđđ
đ
đ=đ
,
s njegovim pripadajuÄim uvjetima
â đđđđđ
đ
đ=đ
â€â„
đđ đ = 1, 2, ⊠, đ ,
đđ â„ đ đ = 1, 2, ⊠, đ.
Ako se detaljnije razloĆŸi funkcija cilja onda poprima sljedeÄi oblik:
â đđđđ
đ
đ=đ
⥠đ1đ„1 + đ2đ„2+ . . . +đđđđ ,
i s njenim ograniÄenjima
â đđđđđ ⥠đđ1đ„1 + đđ2đ„2+ . . . +
đ
đ=đ
đđđđđâ€â„
đđ ,
đ„đ â„ 0 ,
gdje su svakako opet
đ = 1, 2, ⊠, đ ,
đ = 1, 2, ⊠, đ .
Iz svih navedenih izraza sljedeÄa tablica prikazat Äe osnovne pojmove koji Äe nam biti
polaziĆĄte za razumijevanje ostatka rada u kojemu Äe se oni bolje objasniti i detaljnije razraditi
ponajviĆĄe uz odabrane primjere.
10
Tablica 1. Osnovni pojmovi [Izvori: DobreniÄ, 1966 i BabiÄ, 2010]
Funkcija cilja ili kriterija (prihodi ili rashodi) đđđ. â đđđđ
đ
đ=đ
OgraniÄenja na varijable đ„đ - skup ograniÄenja â đđđđđ
đ
đ=đ
â€â„
đđ
Funkcija cilja đ
Strukturne varijable (proizvodi ili komponente) đđ
TehniÄki koeficijenti ili normativi đđđ
Uvjeti nenegativnosti đđ â„ đ
Cijena j-tog proizvoda ili komponente đđ
Kapaciteti ili resursi đđ
Broj varijabli (proizvoda ili komponenata) đ
Broj ograniÄenja đ
MoĆŸe se zakljuÄiti kako su jedine konstante koje su zadane u problemu linearnog
programiranja tehniÄki koeficijenti i dobiti po jedinici proizvoda odnosno rashodi. TehniÄki
koeficijenti đđđ pokazuju koliko je sati rada đ-tog stroja potrebno za obradu jedne jedinice đ-
tog proizvoda. Uz osnovne varijable đ„đ koje se joĆĄ nazivaju i strukturnim varijablama javljaju
se joĆĄ i dva oblika varijabli koje su nam potrebne kako bi mogli linearni problem rijeĆĄiti
pomoÄu simpleks metode. Ovdje ih se nije posebno definiralo jer Äe o njima biti rijeÄi u
sljedeÄem poglavlju gdje Äe se detaljno objasniti zaĆĄto se i njih mora unijeti prilikom
postavljanja problema.
3.2. MatematiÄko definiranje problema linearnog programiranja
Centralni matematiÄki problem linearnog programiranja je pronaÄi rjeĆĄenje sustava
linearnih jednakosti koje maksimiziraju ili minimiziraju datu linearnu funkciju cilja
[Ravindran, Phillips, Solberg, 2007, 30]. S matematiÄkog glediĆĄta razlikuju se tri oblika
problema linearnog programiranja [DobreniÄ, 1966, 25]:
1) standardni problem
2) kanonski problem
3) opÄi problem
Uz navede oblike javlja se joĆĄ i Äetvrti problem, problem transporta. O njemu se neÄe
pisati u okviru ovog rada, ali on svakako ima bitnu ulogu unutar linearnog programiranja i
11
kao metoda sama za sebe. Problemi linearnog programiranja zadaju se u standardnom ili
opÄem obliku. OpÄi oblik je za neke metode potreban svesti na standardni kako bi se
odreÄena tehnika rjeĆĄavanja mogla primijeniti. Za sluÄaj ovoga rada odnosno simpleks
metode oblik kojem Äe se najviĆĄe paĆŸnje posvetiti je kanonski oblik.
3.2.1. Standardni problem i dualnost
Standardni problem linearnog programiranja moĆŸe se podijeliti u dvije kategorije. Za
minimum i za maksimum. Ovisno ĆĄto se ĆŸeli optimizacijom postiÄi odnosno ĆŸelimo li funkciju
cilja minimizirati ili pak maksimirati. Ove se dvije kategorije onda razlikuju upravo u tim
ograniÄenjima i ciljevima koji su im postavljeni. Preko sljedeÄe tablice prikazano je kako
problem mora biti postavljen da bi bio u standardnom obliku. MatematiÄki izrazi su veÄ
postavljeni u prethodnom poglavlju, ali nisu bili razdijeljeni i prikazani na ovakav naÄin.
Tablica 2. Standardni problemi za max i min [Izvor: DobreniÄ, 1975]
Standardni oblik LP za maksimum Standardni problem LP za minimum
Maksimizirati Minimizirati
đ = đđđđ + đđđđ+ . . . +đđđđ â đđđ đ = đ1đ„1 + đ2đ„2+ . . . +đđđ„đ â đđđ
Uz ograniÄenja
đđđđđ + đđđđđ+ . . . +đđđđđ †đđ
đđđđđ + đđđđđ+ . . . +đđđđđ †đđ
.......................................................
đđđđđ + đđđđđ+ . . . +đđđđđ †đđ
đ11đ„1 + đ12đ„2+ . . . +đ1đđ„đ â„ đ1
đ21đ„1 + đ22đ„2+ . . . +đ2đđ„đ â„ đ2
.......................................................
đđ1đ„1 + đđ2đ„2+ . . . +đđđđ„đ â„ đđ
i uvjet nenegativnosti
đđ, đđ, . . . , đđ â„ đ
Prilikom definiranja standardnog oblika problema mora se spomenuti i Äinjenica da se
zadaci linearnog programiranja javljaju u parovima. Tu Äinjenicu nazivamo princip dualiteta
[LonÄar, Hunjak, 1978, 235]. Svakom standardnom problemu linearnog programiranja za
maksimum korespondira odreÄeni problem za minimum i obratno. Originalni problem koji se
joĆĄ naziva i primal simetriÄan je dualnom obliku [DobreniÄ, 1975, 30]. Unutar ovog rada neÄe
se dublje ulaziti u njegovu upotrebnu i analiziranje, ali ono ĆĄto svakako treba spomenuti je da
je dualitet neĆĄto ĆĄto je izrazito bitno onome koji provodi analizu â jer mu daje dublji uvid u
problem i bolju podlogu za donoĆĄenje odluka. Kroz jedan primjer kasnije napomenut Äe na
koji naÄin se interpretira rjeĆĄenje dobiveno u dualu i ĆĄto ono znaÄi za dati primjer. Zanimljivo
je i vrlo vaĆŸno za reÄi da metode linearnog programiranja rjeĆĄavaju oba problema simultano
12
pa tako i simpleks metoda dolazi jednako do rjeĆĄenja kako u primalu tako i u dualu. Nije
potrebno rjeĆĄavati jedno pa drugo, veÄ vrijednosti funkcije cilja za oba oblika bit Äe jednake i
iskazane u zavrĆĄnoj optimalnoj iteraciji simpleks tablice â naravno ukoliko takvo optimalno
rjeĆĄenje postoji.
Dual originalnog problema formira se tako da lijeva strana nejednadĆŸbi ograniÄenja s
pripadajuÄim vrijednostima i varijablama, koja se primalu Äitala horizontalno, postavi u
stupce jedan za drugim isto tako kako su ograniÄenja u originalu iĆĄla jedan za drugim u
redovima. Vrijednosti ograniÄenja originala postat Äe konstante funkcije cilja duala, a
konstante funkcije cilja originala postat Äe vrijednosti ograniÄenja duala. Dakle, original ima
đ ograniÄenja i đ varijabli, dok dual ima đ ograniÄenja i đ varijabli [Loomba, 1964, 149].
Sukladno s time mijenjaju se i znaci nejednakosti i ciljevi optimiranja. Pa stoga ak je
originalni problem bio u standardnom obliku za maksimum njegov dual bit Äe izraĆŸen kao
standardni oblik za minimum. Strukturne varijable duala oznaÄavaju se s đđ. Sada Äe se sve to
objasniti uz kratki primjer iz poglavlja 3.1:
maksimizirati đđ„1 + đđ„2 ,
uz uvjete
đđ„1 + đđ„2 †đđ ,
đđ„1 + đđ„2 †đđ ,
đ„1, đ„2 â„ 0 .
Navedeni original koji je zadan u standardnom obliku prikaĆŸimo u dualnom:
minimizirati đđđŠ1 + đđđŠ2 ,
uz uvjete
đđŠ1 + đđ„2 â„ đ ,
đđŠ1 + đđ„2 â„ đ ,
i uvjete nenegativnosti koji se takoÄer moraju postaviti
đŠ1, đŠ2 â„ 0 .
RjeĆĄenje ovog sustava odnosno problema iznosi đŠ1 = 1, đŠ2 =3
4. Funkcija cilja tada
poprima vrijednost đâČ = 30 â 1 + 12 â3
4= đđ, ĆĄto je isti iznos kao i iznos funkcije cilja u
originalu. RjeĆĄenja varijabli duala koja su se dobila pokazuju koliko neto prihoda donosi
jedan radni sat stroja u okviru danog programa [DobreniÄ, 1975, 26]. Tako jedan radni sat
13
prvog stroja donosi 1 n.j., dok jedan radni sat drugog stroja donosi manje i to 0,75 n.j. neto
prihoda. Iz toga se moĆŸe zakljuÄiti da ukoliko se poveÄa kapacitet prvog stroja za jedan radni
sat, maksimalni neto prihod programa Äe se poveÄati za 1 n.j. PoveÄa li se kapacitet drugog
stroja isto za jedan radni sat, maksimalni neto prihod poveÄat Äe se za 0,75 n.j.
Ovim jednostavnim primjerom pokazano je kako vrijednosti varijabli duala
omoguÄuju i pomaĆŸu procjeniteljima i struÄnjacima u dobivanju boljeg uvida u to koliko im
koji stroj 'vrijedi' i za koji je poĆŸeljnije da mu se poveÄa ili smanji broj radnih sati obrade
proizvoda. U stvari vrijednosti varijabli duala pokazuju 'teĆŸinu' pojedinih ograniÄenja koja
predstavljaju 'usko grlo' optimalnog programa. Vrijednost varijable duala bit Äe jednaka nuli
ukoliko kapacitet na koji se ona odnosi ne bude u potpunosti iskoriĆĄten dobivenim
programom. Takav kapacitet odnosno ograniÄenje ne predstavlja 'usko grlo' proizvodnje.
Kako se uz linearno programiranje kao matematiÄku metodu veĆŸu mnogobrojni
teoremi i definicije tako svakako i uz dual. Unutar ovog rada neÄe se direktno dokazivati ti
teoremi, ali oni su svakako temelj preko kojeg se dolazi do pravila pojedine metode. Na
temelju fundamentalnog teorema dualiteta, zakljuÄuje se da postoje Äetiri moguÄa sluÄaja koja
se mogu pojaviti kod rjeĆĄavanja problema linearnog programiranja [BabiÄ, 2010, 78]:
a) Oba problema imaju optimalno rjeĆĄenje i optimalne vrijednosti funkcija cilja su
jednake,
b) Originalni problem nema moguÄe rjeĆĄenje, pa dualni nema optimalno,
c) Originalni problem ima moguÄe, ali nije optimalno rjeĆĄenje iz Äega slijedi da dual
nema moguÄe rjeĆĄenje,
d) Ne postoji rjeĆĄenje ni na jednoj strani jer su uvjeti nekonzistentni, tj. sistemi
nejednadĆŸbi su u sebi kontradiktorni.
Neki od ovih oblika sluÄajeva moguÄih rjeĆĄenja spomenut Äe se kasnije i malo
detaljnije razraditi, ali samo u okviru originalnog problema. Za sada je dovoljno ovo
napomenuti.
3.2.2. Kanonski problem
Kanonski problem linearnog programiranja razlikuje se od standardnog problema u
tome da su sva ograniÄenja, osim onih kojima se postavlja uvjet nenegativnosti, u obliku
jednadĆŸbi [BabiÄ, 2010, 88]. Ovaj oblik kako je veÄ reÄeno pogodan je za primjenu razliÄitih
metoda rjeĆĄavanja problema linearnog programiranja. Upravo zato koristit Äe se i u ovom radu
za rjeĆĄavanje problema simpleks algoritmom. Kanonski problem polazi od toga da se
14
originalni problem mora svesti na jednakosti. To se postiĆŸe uvoÄenjem novih dopunskih i/ili
artificijelnih varijabli. Za svaki znak nejednakosti, ali i jednakosti, prikazat Äe se na koji se
naÄin uvode ove promjene.
Da bi se nejednadĆŸbu u obliku âmanje od ili jednakoâ - †dovelo u oblik jednakosti
potrebno joj je lijevoj strani dodati varijablu koja Äe to i omoguÄiti. Takva varijabla zove se
dopunska varijabla i oznaÄavat Äe se s đ. Dopunskih varijabli bit Äe onoliko koliko je i
nejednadĆŸbi unutar zadanog problema. Indeksi dopunski (ali i artificijelnih) varijabli
dodjeljuju se onako kako se pojavljuju u problemu odnosno u ograniÄenjima â bit Äe
objaĆĄnjeno kroz primjere. Ove varijable takoÄer ne smiju biti negativne, pa stoga eventualna
njihova pozitivna vrijednost ne smije utjecati na vrijednost funkcije cilja [VuÄkoviÄ, 1983,
53]. Unutar ograniÄenja koja su ovako postavljena, ove varijable pokazuju koliko je po
optimalnom programu ostalo neiskoriĆĄtenog kapaciteta pojedinog stroja ili materijala ili ĆĄto je
veÄ u zadatku zadano. PoĆĄto funkcija cilja mjeri prihod ili rashod npr. neiskoriĆĄtenih 12 sati
rada na nekome stroju ne pridonosi prihodu. Prihod funkcije mora zavisiti samo od vrijednosti
varijabli đ„đ odnosno koliko se proizvoda za dati program proizvodi. Zato se svaka od
dopunskih varijabli u funkciju cilja uvodi s koeficijentom 0. Ovakve dopunske varijable
nazivaju se joĆĄ i kao neiskoriĆĄtene, oslabljenje ili slobodne varijable [VuÄkoviÄ, 1983, 55], ali
unutar ovog rada zvat Äe ih se samo dopunskim. Ukoliko je u nekom moguÄem rjeĆĄenju
problema za dopunsku varijablu u ovakvom ograniÄenju dobiveno 0 znaÄi da takvo
ograniÄenje u potpunosti iskoriĆĄteno.
Nadalje, da bi se nejednadĆŸba u obliku âveÄe od ili jednakoâ - â„ dovela u oblik
jednakosti lijevoj je strani pak potrebno dodati varijablu s negativnim predznakom koja Äe to
isto omoguÄiti. Radi se isto o varijabli đđ. Te dodatne varijable negativnog predznaka
nazivaju se joĆĄ i varijable viĆĄka s obzirom na to da pokazuju koliko je lijeva strana
ograniÄenja veÄa od desne [BabiÄ, 2010, 90]. ZnaÄi da ukoliko je kod nekog moguÄeg rjeĆĄenja
problema neka dopunska varijabla veÄa od 0 (đąđ > 0) znaÄi da lijeva strana ovakve pripadne
ograniÄavajuÄe nejednakosti ima veÄu vrijednost od odgovarajuÄe desne strane i da je takvo
ograniÄenje u potpunosti iskoriĆĄteno.
Uz dopunske varijable negativnog izraza uvijek u paru dolaze i njihove pripadajuÄe
artificijelne varijable đ pozitivnog predznaka. JoĆĄ ih se naziva i umjetne varijable. Njih se
uvodi iz razloga ĆĄto zbog negativnih predznaka dopunskih varijabli ne moĆŸe dobiti poÄetno
nenegativno baziÄno rjeĆĄenje. O poÄetnim baziÄnim rjeĆĄenjima Äe se govoriti neĆĄto kasnije, ali
bitno je sada napomenuti kako ĆŸelimo izbjeÄi takva rjeĆĄenja jer su ona nemoguÄa i
15
kontradiktorna. Ovim varijablama Äe se u funkciji cilja pridruĆŸiti nespecifiÄno veliki broj
đŽ. Razlog ovomu je ĆĄto ovakve varijable sluĆŸe za lakĆĄe rjeĆĄavanje problema i nikako ne smiju
utjecati na funkciju cilja. Iz tog razloga njihove vrijednosti seĆŸu u beskonaÄnost i ne smiju ni
na koji naÄin biti 'kandidati' za moguÄe rjeĆĄenje. Kako se u problemu za maksimum ima za
cilj dobiti ĆĄto veÄa konaÄna vrijednost tako Äe se prilikom definiranja funkcije cilja u
kanonskom obliku dodati uz varijable đ€ ovaj dovoljno veliki broj đ, ali u negativnom izrazu
kako bi varijablu uz njega postavili u ĆĄto inferiorniji odnos spram ostalih varijabli.
PoÄetno baziÄno rjeĆĄenje sadrĆŸi samo (pozitivne) dopunske i artificijelne varijable
odnosno poÄetno rjeĆĄenje se postavlja tako da moguÄih rjeĆĄenja varijabli mora biti onoliko
koliko i ograniÄenja. Stoga se i u kanonskom problemu ograniÄenjima zadanim s
jednakostima mora uvesti isto artificijelna varijabla kako bi osigurali tom ograniÄenju ulazak
u bazu. Svakako da ta varijabla ne smije utjecati na funkciju cilja i rjeĆĄenje odnosno ne smije
se uopÄe uzimati kao moguÄe rjeĆĄenje, jer takvo ne postoji, pa prema tome i tim varijablama
koje su dodane ograniÄenjima izraĆŸenim jednadĆŸbama mora se pridruĆŸiti dovoljno veliki broj
kako se one ne bi razmatrale kao moguÄe rjeĆĄenje. U ovisnosti o cilju funkcije isto se gleda
hoÄe li on iÄi u minus beskonaÄno ili plus beskonaÄno. TakoÄer artificijelne varijable isto
ulaze u uvjet nenegativnosti kao i dopunske.
Vrlo je vjerojatno da sve reÄeno za kanonski oblik nema trenutno prevelikog smisla,
ali sve Äe to 'sjesti na svoje mjesto' preko primjera koji Äe se razraditi u ostalim poglavljima.
Za sada za lakĆĄi prikaz ovog oblika posluĆŸit Äe sljedeÄa tablica:
Tablica 3: Dopunske i artificijelne varijable
OgraniÄenje Varijable
†+đą
â„ âđą + đ€
= +đ€
Funkcija cilja
đ â đđđ„ âđ
đ â đđđ +đ
3.2.3. OpÄi problem
Ukoliko je problem linearnog programiranja zadan u opÄem problemu znaÄi da su u
tom problemu neovisno je li zadan za maksimum ili minimum ograniÄenja izraĆŸena
nejednadĆŸbama †i/ili †ili pak i jednadĆŸbama = odnosno izraĆŸena su sustavom jednadĆŸbi i
16
nejednadĆŸbi. Takav problem potrebno je svesti na standardni odnosno kanonski problem
ukoliko ga se ĆŸeli rijeĆĄiti odabranom metodom linearnog programiranja.
3.3. Ekonomsko definiranje problema linearnog programiranja
Kako se veÄ reklo, u realnom sluÄaju gdje se najviĆĄe koriste metode linearnog
programiranja, problemi se javljaju u okviru ekonomije. Neki od takvih problema su problemi
strukture proizvodnje, problemi strukture sredstava i izvora sredstava, problemi sastava
smjesa, problemi zaliha proizvoda itd. Takvi ekonomski problemi, ukoliko ih je moguÄe,
treba svesti na matematiÄki. Ekonomski problem koji ima sljedeÄe tri kvantitativne
komponente moĆŸe se definirati kao problem linearnog programiranja [DobreniÄ, 1966, 31]:
a) cilj i kriterij
b) alternativne metode ili procese za postizanje cilja (kriterija)
c) ograniÄene resurse i druge uvjete.
Odnosno da bi se ekonomski problem mogao tretirati kao problem linearnog
programiranja, mora zadovoljavati sljedeÄe matematiÄke uvjete [DobreniÄ, 1975, 36]:
1. linearnost funkcije kriterija i sistema jednadĆŸbi odnosno nejednadĆŸbi
2. diskretnost procesa odnosno aktivnosti
3. zbrojivost procesa u utroĆĄku resursa i u funkciji cilja
4. proizvoljna djeljivost faktora
5. ograniÄeni broj procesa odnosno aktivnosti i ograniÄenja
Ne bi se trebalo neĆĄto puno ovdje reÄi jer navedene definicije odnosno uvjeti su veÄ u
veÄoj ili manjoj mjeri reÄeni i prilikom matematiÄkog definiranja. Ono na Äemu Äe se ovaj rad
bazirati je matematiÄki dio linearnog programiranja i kako pomoÄu njega doÄi do rjeĆĄenja.
Duboka i detaljna tumaÄenja tih rjeĆĄenja u ekonomskom smislu neÄe se obraÄivati.
3.4. RjeĆĄavanje problema linearnog programiranja
Problemi linearnog programiranja rjeĆĄavaju se metodama linearne algebre.
MatematiÄka sredstva koja se moraju upotrijebiti pri rjeĆĄavanja takvog problema ovisna su o
obimnosti problema, pogotovo o broju raspoloĆŸivih varijabli i broju uvjeta u formi jednadĆŸbi
odnosno nejednadĆŸbi [MartiÄ, Vandal, 1968, 8]. Po opsegu veoma mali problemi mogu se
rjeĆĄavati grafiÄkim metodama ili nekim pak elementarnim numeriÄkim aritmetiÄkim
metodama. Metoda na koju se ovaj rad oslanja je simpleks metoda. Metoda pomoÄu koje se
mogu rjeĆĄavati kompleksni i zahtjevni problemi koji su toliko veliki da ih se jednostavno
17
mora rijeĆĄiti i uz pomoÄ raÄunala jer mogu sadrĆŸavati i po viĆĄe stotina varijabli. Svim
linearnim problemima postupak rjeĆĄavanja je isti i on se sastoji od sljedeÄih koraka [DobreniÄ,
1975, 39]:
1. definiranje problema
2. prikupljanje i sreÄivanje informacija i podataka
3. postavljanje modela
4. rjeĆĄavanje problema
5. testiranje dobivenog programa
6. interpretacija dobivenog konaÄnog â optimalnog programa i eventualnih
suboptimalnih programa.
Ovi koraci Äine se jednostavnima, ali u realnim primjerima unutar stvarnih
organizacija prvi koraci â 1, 2 i 3 - su kljuÄni. Unutar njih se pokuĆĄavaju prikupiti svi
relevantni podaci te otkloniti eventualni problemi ili nesmislenosti koji bi mogli dovesti do
krivih rjeĆĄenja. Koraci 4 i 5 provodit Äe se u ovome radu. NeĆĄto malo kroz jedan kratki
primjer i korak 3 preko kojeg Äe se iz ekonomskog modela postaviti potrebiti matematiÄki
model. Formulacija takvog modela provodi se kroz sljedeÄa tri koraka [Ravindran, Phillips,
Solberg, 2007, 14]:
korak 1. Identificirati nepoznate varijable koje Äe se rjeĆĄavati i prikazati ih pomoÄu
algebarskih simbola
korak 2. Identificirati sva ograniÄenja i uvjete u problemu i izraziti ih kao linearne
jednadĆŸbe ili nejednadĆŸbe koje su linearne funkcije nepoznatih varijabli
korak 3. Identificirati cilj ili kriterij i predstaviti ga kao linearnu funkciju varijabli
odluÄivanja, koja treba maksimizirati ili minimizirati
Svakako treba naglasiti kako odabrana simpleks metoda sama provodi testiranje
dobivenih rjeĆĄenja kroz izvoÄenja njenog algoritma. Korak testiranja viĆĄe je potreban kod
ruÄnog raÄunanja nego putem raÄunalnih programa, ali svakako je korak kojeg se ne smije
nikako preskoÄiti i koji vodi toÄnoj interpretaciji dobivenog programa.
SljedeÄi primjer2 koji Äe se rijeĆĄiti grafiÄkom metodom, iz razloga jer opisuje dvije
nepoznate varijable i stoga ga je moguÄe prikazati u dvodimenzionalnom prostoru, pojasnit Äe
ĆĄto se toÄno traĆŸi i na koji naÄin tijekom rjeĆĄavanja linearnog programiranja. SluÄaj koji je
2 Zadatak preuzet iz materijala dostupnih na e-kolegiju 'Operacijska istraĆŸivanja 1' â rijeĆĄen samostalno
18
uzet ima jedno i optimalno rjeĆĄenje, koje naravno nije uvijek prisutno u veÄim i
kompleksnijim problema. O posebnim sluÄajevima neĆĄto kasnije.
Primjer se sastoji od sljedeÄe funkcije cilja i njenih ograniÄenja i uvjeta odnosno
model za ovaj primjer glasi:
đ = đđđ + đđđ â đđđ
P1 3đ„1 + 6đ„2 †24
P2 8đ„1 + 4đ„2 †40
P3 9đ„1 + 3đ„2 †27
P4 2đ„1 + 1đ„2 â„ 3
đđ, đđ â„ đ â uvjet nenegativnosti!
Svakom ograniÄenju dodijelile su se oznake za pravce kako bi ih se lakĆĄe raspoznalo i
nacrtalo unutar grafa odnosno sva ograniÄenja unutar grafiÄkog rjeĆĄenja crtaju se kao pravci
sa svojim podruÄjem rjeĆĄenje â koje se nalazi s jedne od strana istog. Ukoliko je ograniÄenje
zadano jednadĆŸbom podruÄje rjeĆĄenja za taj pravac svakako je on sam. RjeĆĄenje programa se
traĆŸi unutar prvog kvadranta. Odnosno ukoliko rjeĆĄenje nije unutar prvog kvadranta ono
zasigurno ne moĆŸe biti optimalno rjeĆĄenje, jer znaÄi da barem jedna toÄka rjeĆĄenje nije unutar
uvjeta nenegativnosti. GrafiÄko rjeĆĄenje3 ovog programa izgleda ovako:
Slika 1. GrafiÄko rjeĆĄenje problema
Zadatak linearnog programiranja je da od beskonaÄno mnogo toÄaka izabere jednu (ili
moĆŸda viĆĄe njih) za koju zadana funkcija cilja ima maksimalnu (ili minimalnu) vrijednost
[BabiÄ, 80]. I stoga na podruÄju moguÄih rjeĆĄenja treba naÄi onu toÄku koja unutar tog
podruÄja rjeĆĄenja zadovoljava funkciju cilja, odnosno treba pronaÄi ekstremnu toÄku podruÄja
bilo minimalnu ili maksimalnu. U ovom primjeru podruÄje rjeĆĄenja je pobojano crvenom
bojom. Unutar tog podruÄja treba pronaÄi ekstremnu toÄku programa koja Äe dati maksimalni
moguÄi rezultat. Ona se u grafiÄkom naÄinu rjeĆĄavanja linearnog problema nalazi tako da se
3 IzraÄen samostalno u: https://www.wolframalpha.com
19
pravac funkcije cilja povlaÄi ka rubovima podruÄja rjeĆĄenja dok se dostigne do one u ovom
sluÄaju maksimalne. U ovom primjeru ta maksimalna toÄka nalazi se na sjeciĆĄtu pravca P1 i P3
i oznaÄila se kao toÄka M. RjeĆĄavanje sjeciĆĄta dvaju pravaca daje koordinate te toÄke đ(2,3),
odnosno rjeĆĄenja za đ„1 i đ„2, a ona glase:
đđ = đ ,
đđ = đ .
Dok je vrijednost funkcije cilja s ovakvim programom jednaka:
đ = 3 â 2 + 2 â 3 = đđ .
Ono ĆĄto se ovim primjerom htjelo pokazati je naÄin na koji se traĆŸi ta ekstremna toÄka.
Simpleks metoda na isti naÄin u svim moguÄim rjeĆĄenjima pokuĆĄava doÄi do one toÄke n-
dimenzionalnog prostora koja Äe zadovoljiti funkciju cilja odnosno poluÄiti maksimalnoj ili
minimalnoj vrijednosti iste. Kako zadani problem sadrĆŸi samo dvije nepoznanice njega je bilo
moguÄe rijeĆĄiti grafiÄkom metodom dok kod problema s viĆĄe varijabli to je malo
kompliciranije. Zato se u takvim sluÄajevima primjenjuje simpleks metoda.
20
4. Simpleks algoritam
Simpleks algoritam sastavni je dio simpleks metode koja je pak temelj linearnog
programiranja. Sama metoda razvila se 1947. godine od strane G. Dantziga odnosno 1951.
kada je i objavio osnovni rad o njoj [MartiÄ, 1979, 103]. Iako za razne specijalne sluÄajeve
postoje brĆŸe i bolje metode, simpleks metoda je i dan danas 'kraljica' linearne optimizacije i
po jednostavnosti i po broju korisnika [ÄakloviÄ, 2010, 27]. Ovaj rad obraÄuje striktno
algebarski dio simpleks metode i to onaj koji se rjeĆĄava putem tabelarnog/tabliÄnog prikaza,
ali bitno je za naglasiti kako ona ima veliko uporiĆĄte u geometrijskoj matematici i da su joj
preko nje postavljeni temelji. Odnosno, simpleks metoda rjeĆĄava problem unutar okvira
linearne algebre, ali ima lijepu geometrijsku interpretaciju [ÄakloviÄ, 2010, 27].
Simpleks metoda linearnog programiranja zahtjeva da se prvo odredi neko polazno
baziÄno rjeĆĄenje odnosno kompletira odgovarajuÄa polazna simpleks tabela [VuÄkoviÄ, 109].
Zatim se odgovarajuÄim testovima takvo polazno baziÄno rjeĆĄenje unapreÄuje sve do
optimalnog rjeĆĄenja. To unapreÄenje odvija se postupno â iterativno izmjenom tekuÄe baziÄne
kombinacije u novu baziÄnu kombinaciju koje se meÄusobno razlikuju samo u jednoj baziÄnoj
varijabli dok im je m-1 ostalih varijabli istih. Postupak takvog rjeĆĄavanja obavlja se preko
odgovarajuÄeg niza simpleks tabela.
Prilikom primjene simpleks metode odnosno algoritma bitno je razlikovati simpleks
metodu koja polazi s linearnim programom u standardnom obliku i simpleks algoritam koji
polazi s kanonskim oblikom, a sastoji se od niza stoĆŸernih operacija i Äini glavni dio subrutine
simpleks metode [Dantzig, 1963, 94]. Stoga da bi se primijenio simpleks algoritam mora se
prvo unutar metode standardni odnosno opÄi oblik pretvoriti u kanonski oblik. Kako je veÄ
reÄeno kanonski oblik dobiva se tako da se sve nejednadĆŸbe unutar originalnog postavljenog
problema, bio on zadan u standardnom ili opÄem obliku, pretvore u sustav jednadĆŸbi tako ĆĄto
Äe mu se dodati odgovarajuÄe dopunske varijable (đ) i/ili artificijelne varijable (đ). I tek tada
kada se dobio kanonski oblik moĆŸe se krenuti s provoÄenjem simpleks algoritma, koji je se u
ovisnosti o optimizaciji (max ili min) razlikuje u par koraka. Stoga Äe se prvo krenuti od
rjeĆĄavanja standardnog problema linearnog programiranja simpleks algoritmom za
maksimum. Zatim Äe se objasniti postupak rjeĆĄavanja standardnog problema linearnog
programiranja za minimum, te Äe se na kraju objasniti i problemi postavljeni opÄim oblikom.
Uz svaki od navedenih primjera postepeno Äe se uz rjeĆĄavanje objaĆĄnjavati odnosno razvijati i
nadograÄivati i sam algoritam.
21
4.1. Standardni problem linearnog programiranja za maksimum
Kako je veÄ navedeno standardni problem linearnog programiranja za maksimum
izgleda tako da su mu sva ograniÄenja zadana gornjom granicom odnosno znakom
nejednakosti âmanje od ili jednakoâ. Za prikazivanje rjeĆĄavanja ovakvog oblika problema
uzet Äe se sljedeÄi primjer4:
đ = đđđđ + đđđđ + đđđđ + đđđđ â đđđ
0đ„1 + 1đ„2 + 3đ„3 + 2đ„4 †750
4đ„1 + 0đ„2 + 0đ„3 + 1đ„4 †350
1đ„1 + 1đ„2 + 4đ„3 + 2đ„4 †450
đ„1, đ„2, đ„3 , đ„4 â„ 0
Naravno, prvi korak koji se mora provesti unutar simpleks metode je problem koji je
zadan prevesti u kanonski oblik. Unutar njega na veÄ spomenuti naÄin unose se dopunske
varijable koje Äe se zapisivati po dijagonali kako se pojavljuju iz razloga jer Äe se na taj naÄin
kasnije i unositi u tablicu kao jediniÄna matrica. Kanonski problem stoga izgleda ovako:
đ = đđđđ + đđđđ + đđđđ + đđđđ + đ(đđ + đđ + đđ) â đđđ
0đ„1 + 1đ„2 + 3đ„3 + 2đ„4 + đđ = 750
4đ„1 + 0đ„2 + 0đ„3 + 1đ„4 + đđ = 350
1đ„1 + 1đ„2 + 4đ„3 + 2đ„4 + đđ = 450
đ„1, đ„2, đ„3 , đ„4, đđ, đđ, đđ â„ 0
Iz priloĆŸenog vidimo kako su dopunske varijable uĆĄle u funkciju cilja s koeficijentom
nula iz razloga koji je veÄ naveden, a taj je da one ne smiju imati utjecaja na njenu vrijednost
â ne pridonose nikakav prihod. Koeficijenti koji se tim varijablama dodaju unutar ograniÄenja
pri formiranju poÄetnog rjeĆĄenja je jedan5 i time formiranju jediniÄnu matricu. Na temelju
ovih podataka odnosno kanonskog oblika formira se prva poÄetna simpleks tablica. Tu
poÄetnu tablicu gledamo kao prvu fazu simpleks algoritma, a ona za cilj ima pronalaĆŸenje bilo
kakvog baziÄnog moguÄeg rjeĆĄenja.
BaziÄno rjeĆĄenje unutar tablice sluĆŸi nam kao sredstvo pomoÄu kojeg dolazimo
odnosno traĆŸimo optimalno moguÄe rjeĆĄenje. Na koji naÄin se to radi pokazat Äe se preko
primjera. BaziÄno rjeĆĄenje sadrĆŸi toÄno đ pozitivnih vrijednosti, dakle onoliko koliko postoji
nezavisnih jednadĆŸbi ograniÄenja [DobriniÄ, 1975, 51]. Najbolje moguÄe baziÄno rjeĆĄenje
4 Zadatak preuzet iz materijala dostupnih na e-kolegiju 'Operacijska istraĆŸivanja 1' â rijeĆĄen samostalno
5 za to ograniÄenje u kojem se prvi put pojavljuje, unutar ostalih ograniÄenja ono iznosi isto nula
22
zove se optimalno rjeĆĄenje problema i to je rjeĆĄenje kod koga funkcija cilja dostiĆŸe ĆŸeljenu
ekstremnu vrijednost (maksimalnu ili minimalnu â zavisno od cilja) koja mora biti konaÄna
[VuÄkoviÄ, 1983, 82]. Svaka od simpleks tablica u nizu odgovara baziÄnom rjeĆĄenju problema
koje je bliĆŸe njegovom optimalnom rjeĆĄenju [VuÄkoviÄ, 1983, 105]. Naravno da rjeĆĄenje ne
morao uvijek ispasti optimalno i jedinstveno, ali za sada je ovo dovoljno reÄi za baziÄno
rjeĆĄenje. Unutar poglavlja posebnih svojstava simpleks algoritma viĆĄe Äe se pozabaviti
razliÄitim sluÄajevima vezanim za baziÄna rjeĆĄenja.
Svaki kanonski oblik zapravo u sebi sadrĆŸi to prvo baziÄno rjeĆĄenje koje je potrebno za
postavljanje prve poÄetne simpleks tablice. Simpleks tablica formira se na sljedeÄi naÄin:
Tablica 46. PoÄetna tablica simpleks metode za problem maksimuma
Tablica unutar zaglavlja u prvom redu sadrĆŸi koeficijente varijabli đđ iz funkcije cilja.
Prvi stupac đđ sadrĆŸi koeficijente iz funkcije cilja onih varijabli koje se nalaze u baziÄnom
rjeĆĄenju. Kako se prvo poÄetno moguÄe baziÄno rjeĆĄenje formira iz kanonskog oblika
vrijednosti ovih koeficijenata za poÄetnu tablicu Äe naravno iznositi 0 poĆĄto se to prvo
baziÄno rjeĆĄenje sastoji od dopunskih varijabli. Za popuniti do kraja to prvo baziÄno rjeĆĄenje
moraju se unijeti te dopunske varijable u drugi stupac tablice koji inaÄe pokazuje koje su
trenutno varijable uzete za rjeĆĄenje problema. TreÄi stupac sadrĆŸi njihove trenutne vrijednosti.
6 Prema: DobreniÄ, 1975, 53.
đđ â đ1 đ2 ⯠đđ ⯠đđ 0 0 ⯠0 ⯠0
đđ
â
BaziÄno rjeĆĄenje Strukturne varijable Dopunske varijable
Varijabla KoliÄina đ„1 đ„2 ⯠đđ ⯠đ„đ đą1 đą2 ⯠đąđ ⯠đąđ K R
0
0
âź
đ
âź
0
đą1
đą2
âź
đđ
âź
đąđ
đ10
đ20
âź
đđđ
âź
đđ0
đ11 đ12 ⯠đđđ ⯠đ1đ
đ21 đ22 ⯠đđđ ⯠đ2đ
âź
đđđ đđđ ⯠đđđ ⯠đđđ
âź
đđ1 đđ2 ⯠đđđ ⯠đđđ
1 0 ⯠0 ⯠0
0 1 ⯠0 ⯠0
âź âź âź âź
đ đ ⯠đ ⯠đ
âź âź âź âź
0 0 ⯠0 ⯠0
đđ â đđ 0 âđ1 â đ2 ⯠â đđ ⯠âđđ 0 0 ⯠0 ⯠0
23
Kako su u poÄetnom baziÄnom rjeĆĄenju kreÄe od toga da su strukturne varijable đđ
jednake 0 tako Äe vrijednosti treÄeg stupca biti vrijednosti postavljenih ograniÄenja problema.
Kako bi se kasnije prikazao korak transformacija, za sada se te vrijednosti neÄe oznaÄavati
kao prije s đđ veÄ Äe im se za poÄetni indeks dodijeliti đ = 0 uz oznaku đ odnosno đ1 âĄ
đđđ, đ2 ⥠đđđ i tako redom [DobreniÄ, 1975, 55].
SrediĆĄnji dio tablice sadrĆŸi matricu input-output koeficijenata đđđ strukturnih varijabli,
desni dio tablice sadrĆŸi veÄ spomenutu jediniÄnu matricu dopunskih varijabli.
Zadnji red tablice đâČđ = đđ â đđ predstavlja red kriterija optimalnosti. Odnosno taj
redak tj. njeni koeficijenti koji se joĆĄ nazivaju i relativni troĆĄkovi ukazuju za koliko Äe đ biti
uveÄan (ili umanjen) za svako jediniÄno poveÄanje varijable koja se nalazi iznad tog
koeficijenta [Ravindran, Phillips, Solberg, 2007, 34]. Iz tog razloga varijabla koja se trenutno
nalazi u baziÄnom rjeĆĄenju uvijek Äe u tom retku poprimati vrijednost 0. No nuĆŸno ne mora to
biti jedina varijabla koja ima tu vrijednost. O tome ĆĄto to znaÄi reÄi Äe se neĆĄto kasnije.
Predzadnji stupac - kontrolni stupac â nije nuĆŸno provoditi jer ne predstavlja nuĆŸan uvjet za
donoĆĄenje rjeĆĄenja, ali korisno ga je koristiti prilikom ruÄnog raÄunanja jer kako mu i sam
naziv govori koristi se za kontrolu izraÄunatog. On sadrĆŸava zbroj svih vrijednosti za red na
koji se odnosi. U poÄetnoj tablici na taj naÄin se i raÄuna dok u ostalim tablicama na jedan
drugaÄiji naÄin. Detaljnije o tome neĆĄto kasnije. O zadnjem stupcu đ takoÄer neĆĄto viĆĄe u
nastavku.
Na temelju svega prethodno reÄenog popunjava se poÄetna tablica i ona sada izgleda
ovako:
Tablica 5. PoÄetna simpleks tablica za primjer 1.
đđ â 75 85 55 95 0 0 0
đđ
â
BaziÄno rjeĆĄenje Strukturne varijable Dopunske varijable
Var Kol x1 x2 x3 x4 u1 u2 u3 K R
0 u1 750 0 1 3 2 1 0 0 757
0 u2 350 4 0 0 1 0 1 0 356
0 u3 450 1 1 4 2 0 0 1 459
đđ â đđ 0 -75 -85 -55 -95 0 0 0 -310
24
Sada kada se popunila poÄetnu tablicu, zavrĆĄena je prva faza simpleks algoritma. Kako
ovo baziÄno rjeĆĄenje sadrĆŸi samo dopunske varijable vrlo je jasno kako ono nije i optimalno
rjeĆĄenje stoga zapoÄinje druga faza simpleks algoritma. Faza unutar koje se provodi
optimizacija i pomoÄu koje se dolazi do optimalnog maksimalnog ili minimalnog rjeĆĄenja
problema, ukoliko takvo i postoji. Druga faza sastoji se od konaÄnog broja iteracija za
poboljĆĄanje poÄetnog baziÄnog programa [DobreniÄ, 1975, 55]., Svaka iteracija sastoji se od
tri sljedeÄa koraka:
1) odreÄivanje vodeÄeg stupca â unutar ovog koraka odreÄuje se koja Äe to
varijabla uÄi u bazu kao moguÄe rjeĆĄenje problema. Kod ovog koraka za
problem maksimuma cilj je izabrati one varijable da uÄu u bazu kod kojih Äe se
maksimalno poveÄati vrijednost funkcije cilja. Kod minimuma naravno izabiru
se one koje Äe smanjivati vrijednost funkcije.
Za odabir tog stupca sluĆŸi nam zadnji red tablice, red relativnog profita, koji je iskazan
obrnutim predznakom odnosno vrijednost koja je iskazana s minus predznakom predstavlja za
koliko Äe se poveÄati Z za svaku jediniÄnu promjenu varijable na koju se taj iznosi odnosi.
Pozitivna vrijednost oznaÄava za koliko Äe se funkcija cilja smanjiti. Kako problem
maksimuma ĆŸelimo poboljĆĄavati u smjeru poveÄanja ukupne vrijednosti đ, vodeÄi stupac za
taj problem bit Äe onaj koji u tom retku poprima najveÄu negativnu vrijednost odnosno
đđđ{|đđ â đđ|} gdje je đđ â đđ < đ. Za navedeni primjer tu najveÄu negativnu vrijednost
poprima Äetvrta varijabla đ„4 te stupac unutar kojeg se ona nalazi oznaÄavamo kao vodeÄi
stupac.
2) odreÄivanje vodeÄeg reda â unutar ovog koraka odreÄuje se koja Äe to
varijabla izaÄi iz baze, a na njeno mjesto uÄi nova odabrana nebaziÄna
varijabla. Ovo odabiranje vodeÄeg reda zajedno s odabiranjem vodeÄeg stupca
naziva se pivotiranje [BarkoviÄ, 61]. Stoga element koji se naÄe na raskriĆŸju
tog vodeÄeg stupca i retka nazivamo pivot elementom.
Sada stupac đ dolazi u razmatranje. VodeÄi red bit Äe onaj koji poprima najmanji
kvocijent prvog stupca i odabranog vodeÄeg stupca. I te razlike zapisuju se unutar stupca R
radi lakĆĄeg snalaĆŸenja. Odabire upravo onaj najmanji omjer jer varijabla iz baze unutar reda
koja ima najmanju tu razliku prva Äe poprimiti vrijednost 0 ukoliko poraste nebaziÄna
varijabla koja se dovodi u bazu [BarkoviÄ, 21]. ZnaÄi da iz baze izlazi ona varijabla na koju
najviĆĄe odnosno najprije utjeÄe poveÄanje varijable koja ulazi u bazu. Ukoliko bi se odabrala
25
neka druga varijabla dogodilo bi se da u baziÄnom rjeĆĄenju imamo negativne vrijednosti, a to
se svakako ĆŸeli izbjeÄi. Ovo pravilo nazivamo joĆĄ i pravilom najmanjeg omjera (eng.
minimum ratio rule7):
Î = đđđ {đđ0
đđđ } , đ§đ đ đŁđ đđđ > 0 ,
gdje indeks đ predstavlja indeks vodeÄeg stupca, a uvjet govori da se prilikom raÄunanja ovog
omjera ne smije dijeliti s 0 ili negativnom vrijednosti. U odabranom primjeru u poÄetnoj
tablici vodeÄi red postaje red unutar kojeg se nalazi baziÄna varijabla đą3. Jer njegov omjer je
bio najmanji u iznosu od 225.
Tablica 6. OdreÄivanje vodeÄeg stupca i reda za primjer 1.
đđ
â Var Kol x1 x2 x3 x4 u1 u2 u3 K R
0 u1 750 0 1 3 2 1 0 0 757 375
0 u2 350 4 0 0 1 0 1 0 356 350
0 u3 450 1 1 4 2 0 0 1 459 225
đđ â đđ 0 -75 -85 -55 -95 0 0 0 -310
Nakon ĆĄto se odredio vodeÄi stupac i vodeÄi red odnosno koja nebaziÄna varijabla
ulazi u baziÄno rjeĆĄenje i koja baziÄna varijabla izlazi iz njega, slijedi prva iteracija simpleks
algoritma odnosno druga tablica. Prvo ĆĄto se radi je da se na mjesto baziÄne varijable koja je
izaĆĄla iz baze stavi nova varijabla koja je uĆĄla u bazu i to tako da vodeÄi stupac postaje
jediniÄni stupac tako ĆĄto stoĆŸerni element odnosno pivot poprima vrijednost 1 dok svi ostali
postaju 0. Nakon toga vrijednosti elemenata iz vodeÄeg reda dijele se s vrijednoĆĄÄu pivota i
izraÄunate vrijednosti zapiĆĄu se u novu tablicu. Te se vrijednosti ne smiju zaokruĆŸivati nego se
zapisuju u obliku razlomka ukoliko je potrebno. Svaka zaokruĆŸena vrijednost poluÄit Äe krive
zakljuÄke i rjeĆĄenja, a to svakako nije za cilj. Za odabrani sluÄaj to sada izgleda ovako:
7 Ravindran, Phillips, Solberg, 2007, 38-39.
26
Tablica 7. a) Prva iteracija za primjer 1.
đđ â 75 85 55 95 0 0 0
đđ
â
BaziÄno rjeĆĄenje Strukturne varijable Dopunske varijable
Var Kol x1 x2 x3 x4 u1 u2 u3 K R
0 u1 0
0 u2 0
95 x4 225 1/2 1/2 2 1 0 0 1/2 459/2
đđ â đđ 0 0
Prilikom popunjavanja ostatka tablice radi kraÄenja vremena mogu se koristiti sljedeÄe
olakĆĄice raÄunanja. Postoji li u vodeÄem stupcu prijaĆĄnje tablice na nekome mjestu vrijednost
0. Ukoliko da, vrijednosti reda u kojem se naĆĄla ta nula, prepisuju se. Isto tako vrijedi i za red.
Ukoliko u vodeÄem redu postoji vrijednost nula, vrijednosti stupca gdje se nalazila ta
vrijednost nula, prepisuju se:
Tablica 8. b) Prva iteracija za primjer 1.
đđ
â Var Kol x1 x2 x3 x4 u1 u2 u3 K R
0 u1 0 1 0
0 u2 0 0 1
95 x4 225 1/2 1/2 2 1 0 0 1/2 459/2
đđ â đđ 0 0 0 0
PoĆĄto u vodeÄem redu nije bilo vrijednosti 0, nije se niĆĄta moglo prepisati, dok se za
prvi i drugi stupac dopunskih varijabli to moglo uÄiniti. SljedeÄi korak popunjavanja ostatka
tablice treÄi je korak simpleks algoritma [DobreniÄ, 1975, 55]:
3) transformacija koeficijenata tabele iz đđđ u đâČđđ
a. transformacija koeficijenata vodeÄeg reda
b. transformacija koeficijenata ostalih redova.
Korak 3.a se veÄ izveo na opisan naÄin. Korak 3.b izvodi se na sljedeÄi naÄin za đ â đ, poĆĄto
su elementi s indeksom đ bili elementi vodeÄeg reda:
đâČđđ = đđđ â đâČđđ â đđđ
27
Stoga, nova vrijednost u novoj iteraciji raÄuna se tako da se od stare vrijednosti tog
elementa oduzme umnoĆŸak nove vrijednosti tog stupca, ali elementa koji je ujedno bio i u
vodeÄem redu, i stare vrijednosti iz vodeÄeg stupca za taj redak. Po ovom obrascu
transformiraju se i vrijednosti đđ â đđ reda i kontrolnog stupca. Tako za prvu iteraciju po
stupcima ove vrijednosti iznose:
Tablica 9. a) prva transformacija za primjer 1
kol: x1 x2
750
350
0
â225
â225
â225
â 2
â 1
â (â95)
= đđđ
= đđđ
= đđđđđ
0
4
â75
â1/2
â1/2
â1/2
â 2
â 1
â (â95)
= âđ
= 7/2
= âđđ/đ
1
0
â85
â1/2
â1/2
â1/2
â 2
â 1
â (â95)
= đ
= âđ/đ
= âđđ/đ
Tablica 10. b) prva transformacija za primjer 1.
x3 u3 K
3
0
â55
â2
â2
â2
â 2
â 1
â (â95)
= âđ
= âđ
= đđđ
0
0
0
â1/2
â1/2
â1/2
â 2
â 1
â (â95)
= âđ
= âđ/đ
= đđ/đ
757
356
â310
â459/2
â459/2
â459/2
â 2
â 1
â (â95)
= đđđ
= đđđ/đ
= đđđđđ/đ
Odnosno dobiva se konaÄno prva iteracija:
Tablica 11. Potpuna prva iteracija za primjer 1.
đđ â 75 85 55 95 0 0 0
đđ
â
BaziÄno rjeĆĄenje Strukturne varijable Dopunske varijable
Var Kol x1 x2 x3 x4 u1 u2 u3 K R
0 u1 300 -1 0 -1 0 1 0 -1 298
0 u2 125 7/2 -1/2 -2 0 0 1 -1/2 253/2
95 x4 225 1/2 1/2 2 1 0 0 1/2 459/2
đđ â đđ 21375 -55/2 -75/2 135 0 0 0 95/2 42985/2
Kontrolni stupac sada Äe posluĆŸiti kao pomagalo u kontroli dobivenih rjeĆĄenja.
Odnosno vrijednost koja je izraÄunata preko prijaĆĄnjeg koraka mora biti ista onoj vrijednosti
28
koja se dobije zbroje li se sve vrijednosti retka. Ukoliko se ispostavi da se te vrijednosti ne
podudaraju vrlo vjerojatno se negdje pogrijeĆĄilo rijekom raÄunanja.
Nakon ĆĄto se dobila prva iteracija preispituju se vrijednosti u đđ â đđ retku. Za sluÄaj
kada je problem iskazan u obliku standardnog problema za maksimum ĆŸeli se postiÄi da ovaj
redak nema negativne vrijednosti, odnosno da su sve vrijednosti đđ â đđ â„ đ. NadoveĆŸe li se
to na veÄ reÄeno za relativne troĆĄkove jasno je zaĆĄto ovo pravilo ovako glasi. Ukoliko u
problemu za maksimum ne postoji viĆĄe niti jedna varijabla s negativnom vrijednoĆĄÄu ovog
troĆĄka znaÄi da se viĆĄe ne moĆŸe unaprijediti program jer izabere li se koja druga varijablu kao
baziÄna funkcija cilja neÄe viĆĄe rasti veÄ suprotno. Korisno je ovdje za spomenuti kako
simpleks algoritam eliminira sva moguÄa rjeĆĄenja koja su loĆĄija od trenutnog postavljenog i
time efikasnije dolazi do rjeĆĄenja nego da ispituje rjeĆĄenje po rjeĆĄenje je li ono optimalno. A
tih rjeĆĄenja moĆŸe biti jako puno. Broj moguÄih baziÄnih rjeĆĄenja raÄuna se kao [Ravindran,
Phillips, Solberg 32]:
(đđ
) =đ!
đ! (đ â đ)! ,
odnosno konkretno za ovaj primjer
(43
) =4!
3! 1!= 4 .
Ovaj broj ne znaÄi da Äe i toliko tablica i koraka prilikom raÄunanja biti veÄ koliko je
moguÄih kombinacija varijabli i njihovih vrijednosti da zajedno zadovoljavaju ograniÄenja i
uvjete.
Kako prema uvjetu za maksimum đđ â đđ joĆĄ uvijek postoje negativne vrijednosti,
simpleks algoritam provodi se dalje. Ponovo se traĆŸi vodeÄi stupac, koji je sada đ„2, a vodeÄi
redak opet je ispao treÄi pa iz baze izlazi varijabla đ„4. Pivot element je 1/2.
Tablica 12. VodeÄi stupac i vodeÄi red za drugu iteraciju za primjer 1.
đđ
â Var Kol x1 x2 x3 x4 u1 u2 u3 K R
0 u1 300 -1 0 -1 0 1 0 -1 298 /
0 u2 125 7/2 -1/2 -2 0 0 1 -1/2 253/2 /
95 x4 225 1/2 1/2 2 1 0 0 1/2 459/2 450
đđ â đđ 21375 -55/2 -75/2 135 0 0 0 95/2 42985/2 /
29
PoĆĄto se u vodeÄem redu javlja nula prvi red se moĆŸe prepisati u novoj iteraciji. TakoÄer
vrijedi i za stupce ispod dopunskih varijabli koje su i unutar baziÄnog rjeĆĄenja. Provedu li se
dalje transformacije na veÄ pokazan naÄin dobiva se sljedeÄe rjeĆĄenje odnosno potpuna druga
iteracija:
Tablica 13. Druga iteracija za primjer 1.
đđ â 75 85 55 95 0 0 0
đđ
â
BaziÄno rjeĆĄenje Strukturne varijable Dopunske varijable
Var Kol x1 x2 x3 x4 u1 u2 u3 K R
0 u1 300 -1 0 -1 0 1 0 -1 298
0 u2 350 4 0 0 1 0 1 0 356
85 x4 450 1 1 4 2 0 0 1 459
đđ â đđ 38250 10 0 285 75 0 0 85 38705
Prikazano rjeĆĄenje druge iteracije ujedno i je optimalno baziÄno rjeĆĄenje jer viĆĄe ne
postoje negativne vrijednosti u zadnjem retku. I time se dobilo konaÄno rjeĆĄenje problema
odnosno program koji glasi:
đ„3 = đđđ
đą1 = đđđ
đą2 = đđđ
đ = đđđđđ
Navedeni primjer prikazuje kako nije uvijek nuĆŸno odabrati varijablu koja ima najveÄu
negativnu vrijednost u zadnjem redu veÄ treba i racionalno razmiĆĄljati i gledati na koji naÄin
Äe se vrijednost funkcije cilja mijenjati ovisno o varijabli koja se izabere za ulazak u baziÄno
rjeĆĄenje. Tom racionalnijem razmiĆĄljanju moĆŸe posluĆŸiti egzaktni kriterij za izbor varijable
koja ulazi u novu bazu [BabiÄ, 2010, 128]. Ovdje se nije ispitivala svaka varijabla koja moĆŸe
uÄi u bazu veÄ je uĆĄla ona koja po obiÄnom kriteriju ima đđđ„|đđ â đđ|. Da smo u prvom
koraku odmah odabrali varijablu đ„2 optimalno rjeĆĄenje dobili bi veÄ iz prve iteracije. No ovo
je dovoljno malen primjer i zadatak da se jedna iteracija viĆĄe moĆŸe zanemariti. O egzaktnom
kriteriju bit Äe rijeÄi u poglavlju posebnih sluÄajeva simpleks algoritma.
Iz simpleks tablice kako je veÄ naznaÄeno moguÄe je proÄitati i rjeĆĄenje dualnog
problema ukoliko takvo i postoji. PoĆĄto optimalni program za ovaj problem originala postoji,
30
rjeĆĄenje duala isto je optimalno i jednake je vrijednosti od 38250 n.j. Vrijednosti varijabli
duala Äitaju se ispod dopunskih varijabli u zadnjem redu i prema dobivenom rjeĆĄenju postoji
samo jedna vrijednost, a to je đŠ3 = 85. Kako je veÄ bilo i napomenuto, ova vrijednost duala
oznaÄava za koliko Äe se ukupni prihod poveÄati, poveÄali se kapacitet stroja 3 (npr. ako smo
ograniÄenja oznaÄili kao strojeve) za jednu jedinicu odnosno jedan sat. To znaÄi da jedan sat
rada na treÄem stroju donosi 85 n.j. prihoda. PoĆĄto je rjeĆĄenje problema takvo da program
ukazuje kako je isplatljivo proizvoditi samo proizvod đ„2 Äiji prihod po jedinici iznosi 85 n.j.
logiÄno je onda zaĆĄto je ispala ovakva vrijednost duala. PoĆĄto su dopunske varijable đą1 i đą2
ostale pozitivne one ukazuju na to da je ostalo neĆĄto neiskoriĆĄtenog kapaciteta. Za prvo
ograniÄenje odnosno stroj ono iznosi 300 sati, dok za drugi 350, odnosno jedini proizvod koji
se treba proizvoditi po ovom programu uopÄe se ne doraÄuje na drugome stroju jer je njegov
kapacitet ostao u potpunosti neiskoriĆĄten. Iz toga se moĆŸe zakljuÄiti da je stroj broj dva viĆĄak,
no ta dublja analiziranja ostavit Äe se na nekome kome Äe ona viĆĄe znaÄiti. Za interpretaciju
ovog rjeĆĄenja problema dovoljno je navedeno.
4.2. Standardni problem linearnog programiranja za minimum
Kako se prilikom rjeĆĄavanja standardnog oblika za minimum i opÄeg problema za
minimum i maksimum uvode nove artificijelne varijable, rjeĆĄavanje putem simpleks tablice
odvija se neĆĄto drugaÄije nego rjeĆĄavanje standardnog problema za maksimum. PoĆĄto te
artificijelne ne smiju nikako uÄi u rjeĆĄenje ( u suprotnom je ono nemoguÄe), postoje tri naÄina
otklanjanja ovog problema odnosno tri metode8:
1) metoda polaganja na maksimum, tj.dual
2) metoda veliko M
3) 'dvofazna' metoda
Prva metoda primjenjuje se kada je problem zadan u standardnom obliku za minimum.
PoĆĄto je njegov dual standardni problem za maksimum jasno je kako se u takvom problemu
kada se prevede u kanonski oblik neÄe javiti artificijelne varijable i da Äe ga se moÄi rijeĆĄiti na
naÄin koji je opisan u prethodnom potpoglavlju. Ukoliko postoji optimalno rjeĆĄenje, to
rjeĆĄenje duala rijeĆĄit Äe i problem originala.
Druga metoda naziv je dobila po velikom koeficijentu koju se stavlja uz artificijelne
varijable. Ta metoda koristi pravilo unutarnjeg proizvoda za dobivanje vrijednosti relativnih
troĆĄkova tablice. NeÄe se detaljno ova metoda objaĆĄnjavati jer prilikom rjeĆĄavanja ovakvog
8 Izvori: DobreniÄ, 1975, 74 i KalpiÄ, Molnar, 1996, 18.
31
problema koristit Äe se treÄa navedena metoda. Dovoljno je reÄi da obje metode 2) i 3) imaju
za cilj ĆĄto prije otkloniti i izbaciti artificijelne varijable iz baziÄnog rjeĆĄenja jer takvo rjeĆĄenje
je daleko od optimalnog i nikako nije prihvatljivo kao jedno od moguÄih rjeĆĄenja. TakoÄer
obje metode imaju i jednak broj iteracija.
TreÄa metoda tkz. 'dvofazna metoda' posluĆŸit Äe za ovaj primjer. Naziv je dobila po
svoje dvije faze koje se provode kako bi se dobio program problema [DobreniÄ, 1975, 77]:
1. faza: izraÄunavanje prvog upotrebljivog programa
2. faza: izraÄunavanje optimalnog programa
Prva faza se sastoji u izraÄunavanju prvog upotrebljivog programa koji Äe sadrĆŸavati
samo strukturne i/ili dopunske varijable, dakle rjeĆĄenje u kojem Äe sve artificijelne varijable
biti izbaÄene iz baze [DobreniÄ, 1975, 77]. Za izbacivanje tih varijabli za ovu metodu uvodi se
novi đđ redak. Taj redak sadrĆŸava vrijednosti koje su dobivene zbrajanjem koeficijenta đđđ
okomito po stupcu za strukturne varijable i ograniÄenja [DobreniÄ, 1975,91]. Odnosno kako je
taj đđ redak vezan za upravo te artificijelne varijable i uvodimo ga kako bi ih se moglo rijeĆĄiti
iz baze, vrijednost unutar reda sadrĆŸi zbroj okomito vrijednosti po stupcu, ali samo za one
koeficijente unutar Äijeg reda se nalazi artificijelna varijabla u bazi.
Cilj prve faze 'dvofazne' metode je izbaciti artificijelne varijable iz baze. Jednom kada
one izaÄu ne mogu se viĆĄe pojaviti unutar moguÄeg rjeĆĄenja. Sve dok one postoje u bazi
rjeĆĄenje problema nije moguÄe. ProvoÄenje ove faze odnosno njen algoritam glasi sliÄno kao i
za problem maksimuma. Odabrati vodeÄi stupac, odnosno odabrati varijablu koja ulazi u bazu
te odabrati na koje mjesto u bazi ona ulazi tako da se odredi vodeÄi red. Za problem
minimuma to se izvodi tako da se unutar đđ reda pronalazi najveÄa pozitivu vrijednost - ispod
strukturnih i dopunskih varijabli, jer artificijelne ne smiju ulaziti u baziÄno rjeĆĄenje â i stupac
u kojem se ta vrijednost nalazi odabiramo kao vodeÄi. Odabir vodeÄeg reda odvija se na isti
naÄin kao i u standardnom problemu za maksimum, po pravilu minimalnog omjera. Ovdje se
moĆŸe spomenuti i joĆĄ jedan naÄin kraÄenja vremena raÄunanja, a taj je da Äe vrijednost ispod
artificijelne varijable koja je bila vezana za negativnu dopunsku varijablu imati jednake
koeficijente u tablici obrnutog predznaka, stoga kada se u tablici izraÄunaju elementi varijable
đą4 elementi ispod varijable đ€4 mogu se prepisati s obrnutim predznakom.
32
Druga faza zapoÄinje ispitivanjem je li ovo dobiveno prvo moguÄe rjeĆĄenje ujedno i
optimalno, tako da se u đđ â đđ redu ispitaju vrijednosti ispod nebaziÄnih strukturnih i
dopunskih varijabli. Kako za minimum vrijednosti tog red da bi program bio optimalan
moraju biti †0, odnosno ne smije postojati viĆĄe niti jedna varijabla koja bi mogla uÄi u bazu i
da dodatno umanji funkciju cilja. Ukoliko u tom redu postoje pozitivne vrijednosti znaÄi da se
trenutni program moĆŸe joĆĄ poboljĆĄavati. Izbor varijable koja Äe uÄi u novo baziÄno rjeĆĄenje
vrĆĄi se po osnovnom kriteriju odnosno đđđ{đđ â đđ} gdje je đđ â đđ > đ.
4.3. OpÄi problemi linearnog programiranja za maksimum i
minimum
Unutar realnih sustava javljaju se veÄ spomenuti problemi koji znaju imati i po par
stotina varijabli i vjerojatnost da su im ograniÄenja postavljena u opÄem obliku vrlo je velika.
Jedan od opÄih problema bit Äe i rijeĆĄen u sljedeÄem poglavlju. OpÄi problemi za minimum i
maksimum kako je veÄ navedeno zadani su ograniÄenjima koja su iskazana nejednadĆŸbama
'manjim od ili jednako' i/ili 'veÄim od ili jednako' te mogu biti i u obliku jednadĆŸbi. SvoÄenje
na kanonski oblik unutar ovakvih problema dovodi do toga da se i u problemu za maksimum
moraju uvesti artificijelne varijable, a sukladno tome i đđ redak. Postupak pronalaĆŸenja
optimalnog programa isto se odvija u dvije faze â 'dvofaznom' simpleks metodom. Jedina
razlika koja se javlja u opÄem problemu za maksimum spram standardnog i opÄeg problema
za minimum (osim one vezane za redak đđ â đđ) je ta da poĆĄto se unutar opÄeg problema u
kanonskom obliku uz artificijelne varijable unutar funkcije cilja morao uvest dovoljno velik
odnosno mali broj M - iskazan negativnim predznakom - vrijednosti u dj retku Äe takoÄer biti
iskazane s negativnim predznakom. Zatim se preko toga reda unutar prve faze odabirom
đđđ{|đ đ|} gdje je đđ < 0 odreÄuje vodeÄi stupac. I to je jedina vaĆŸna nova razlika koja se
treba spomenuti. Test programa je li on optimalan unutar druge faze 'dvofazne' metode odvija
se na jednak naÄin kao i unutar standardnog problema za maksimum. Transformacije vodeÄeg
reda i novih elemenata odvijaju se takoÄer po istoj formuli.
33
5. Posebna svojstva simpleks algoritma
Problemi linearnog programiranja nisu uvijek 'idealni' odnosno postupak rjeĆĄavanja ne
teÄe uvijek kao 'ĆĄkolski primjerak' pa da se jednoznaÄno doÄe do optimalnog rjeĆĄenja.
Prilikom rjeĆĄavanja problema simpleks metodom odnosno simpleks algoritmom moguÄe je da
se pojave odreÄeni problemi, nedoumice, nedopuĆĄtene vrijednosti i sl. Kako se pristupa
takvim problemima i moĆŸe li ih se i na koji naÄin rijeĆĄiti opisat Äe se u nastavku poglavlja.
Prije opisivanja svakog od posebnih svojstava koja se javljaju u kratko Äe se detaljnije opisati
pojam baziÄnog rjeĆĄenja nego ĆĄto se spominjao u ostatku rada.
5.1. BaziÄno rjeĆĄenje
Unutar ovog poglavlja malo Äe se viĆĄe objasniti baziÄno rjeĆĄenje kako bi se sljedeÄe
poglavlje moglo lakĆĄe razjasniti. BaziÄno rjeĆĄenje je rjeĆĄenje koje sadrĆŸi najviĆĄe đ varijabli
razliÄitih od nule, dok su ostale varijable jednake nula [VuÄkoviÄ, 1983, 81]. Ako su te
varijable koje su razliÄite od nule ujedno sve i pozitivne to rjeĆĄenje zove se baziÄno moguÄe
rjeĆĄenje. Upravo zato kada se uvode artificijelne varijable u kanonskom problemu ĆŸeli se
izbjeÄi rjeĆĄenje s negativnim varijablama unutar prvog postavljenog rjeĆĄenje jer takvo rjeĆĄenje
nije prihvatljivo kao moguÄe odnosno takvo rjeĆĄenje s negativnim vrijednostima je nemoguÄe
baziÄno rjeĆĄenje. Ukoliko je baziÄno moguÄe rjeĆĄenje ujedno i najbolje moguÄe baziÄno
rjeĆĄenje u smislu oblika optimalnosti koja se ĆŸeli postiÄi nad problemom to rjeĆĄenje naziva se
optimalnim rjeĆĄenjem problema.
Unutar moguÄih baziÄnih rjeĆĄenja javlja se pojam degeneriranog rjeĆĄenja. Ukoliko se
unutar moguÄeg baziÄnog rjeĆĄenja pojavi barem jedna varijabla s vrijednosti 0 onda se takvo
rjeĆĄenje naziva baziÄno degenerirano moguÄe rjeĆĄenje [BabiÄ, 2010, 37]. A ukoliko su sve
varijable unutar baze, toÄno njih đ, pozitivne takvo rjeĆĄenje zove se baziÄno nedegenerirano
moguÄe rjeĆĄenje.
5.2. Degeneracija
Ć to znaÄi degenerirano baziÄno rjeĆĄenje i kako se ono prepoznaje opisano je u
prethodnom potpoglavlju. Degeneracija unutar simpleks tabele primjeÄuje se prilikom
provoÄenja pravila minimalnog omjera Î. Ona se javlja kada se ne moĆŸe jednoznaÄno odrediti
koji redak postaje vodeÄi redak odnosno koju baziÄnu varijablu treba izbaciti iz baze. To se
dogodi kada je za dvije odnosno maksimalno đ baziÄnih varijabli jednaka vrijednost
minimalnog omjera Î tj. kvocijenta preko kojeg se odreÄuje vodeÄi red. ZnaÄi da minimum
34
omjera nije jedinstven. SljedeÄi primjer koji Äe biti zadan tekstualno odnosno u okvirima
ekonomskog pristupa pokazat Äe pojavu upravo ovog opisanog problema:
Primjer 39:
PoduzeÄe ĆŸeli proizvesti proizvode P1, P2, P3 i P4 uz maksimalizaciju dobiti. IstraĆŸivanja
proizvodnog procesa pokazala su da se ograniÄenja u tom procesu nalaze na strani jednog
mjesta ruÄne dorade, jedne vrste materijala i jedne grupe strojeva. Grupa radnih mjesta
raspolaĆŸe s minimalno 1000 radnih sati dok je raspoloĆŸiva koliÄina materijala 2000
teĆŸinskih jedinica. Kapacitet grupe strojeva je 2500 sati rada i zadan je gornjom
granicom. Potrebna koliÄina materijala po jedinici proizvoda iznosi 4, 2, 1 i 4 teĆŸinske
jedinice. Vrijeme ruÄne dorade po jedinici proizvoda na grupi radnih mjesta iznosi 3, 2, 2 i 3
vremenske jedinice rada. Potrebna vremena izrade pojedinih proizvoda na grupi strojeva
iznosi 5, 3, 2 i 3 vremenske jedinice. Pored ovih proizvodnih ograniÄenja zadano je i
ograniÄenje koje opisuje specijalnu zavrĆĄnu strojnu obradu proizvoda. RaspoloĆŸiva
koliÄina ovog resursa je 1000 sati rada i mora biti u potpunosti iskoriĆĄtena. Potrebna
vremena specijalne zavrĆĄne obrade pojedinih proizvoda su: 1, 2, 2 i 0 vremenskih jedinica. U
programskom razdoblju planirani prihod po jedinici proizvoda iznosi: 20, 10, 35 i 45
novÄanih jedinica.
KljuÄne pojmove odnosno vrijednosti oznaÄilo se u tekstu. Proizvodi P1, P2, P3 i P4
predstavljaju proizvode koji se proizvode na tri radna mjesta: mjesto ruÄne dorade, jedna
grupa strojeva i specijalna zavrĆĄna strojna obrada. Ta radna mjesto uz raspoloĆŸivu koliÄinu
materijala Äine ograniÄenja ovog problema. Prevede li se ovaj tekst u simboliÄki algebarski
prikaz na naÄin on poprima sljedeÄi oblik:
Planirani prihod đ = đđđđ + đđđđ + đđđđ + đđđđ â đđđ
Mjesto ruÄne dorade 3đ„1 + 2đ„2 + 2đ„3 + 3đ„4 â„ 1000
Materijal 4đ„1 + 2đ„2 + 1đ„3 + 4đ„4 †2000
Grupa strojeva 5đ„1 + 3đ„2 + 2đ„3 + 3đ„4 †2500
Specijalna obrada 1đ„1 + 2đ„2 + 2đ„3 + 0đ„4 = 1000
đ„1, đ„2, đ„3 , đ„4 â„ 0
Pripadni kanonski problem je:
9 Zadatak preuzet iz materijala dostupnih na e-kolegiju 'Operacijska istraĆŸivanja 1' â rijeĆĄen samostalno
35
đ = đđđđ + đđđđ + đđđđ + đđđđ + đ(âđđ + đđ + đđ) â đŽ(đđ + đđ) â đđđ
3x1 + 2x2 + 2x3 + 3x4 â đđ + đđ = 1000
4x1 + 2x2 + 1x3 + 4x4 + đđ = 2000
5x1 + 3x2 + 2x3 + 3x4 + đđ = 2500
1x1 + 2x2 + 2x3 + 0x4 + đđ = 1000
đ„1, đ„2, đ„3,đ„4, đđ, đđ, đđ, đđ, đđ â„ 0
PoÄetna tablica ovog problema sada izgleda ovako:
Tablica 14. PoÄetna tablica za primjer degeneracije.
đđ â 20 10 35 45 0 0 0 -M -M
đđ
â
BaziÄno rjeĆĄenje Strukturne varijable Dopunske varijable Artificijelne varijable
Var Kol x1 x2 x3 x4 u1 u2 u3 w1 w2 K R
-M w1 1000 3 2 2 3 -1 0 0 1 0 1010
0 u2 2000 4 2 1 4 0 1 0 0 0 2012
0 u3 2500 5 3 2 3 0 0 1 0 0 2514
-M w2 1000 1 2 2 0 0 0 0 0 1 1006
đđ â đđ 0 -20 -10 -35 -45 0 0 0 0 0 -110
đ đ -2000 -4 -4 -4 -3 1 0 0 -1 -1 -2016
Prilikom odabira vodeÄeg stupca javljaj se problem kojeg odabrati s obzirom da tri nebaziÄne
varijable u zadnjem redu poprimaju tri iste maksimalne vrijednosti. Kako se toÄno taj problem
naziva i zaĆĄto reÄi Äe se neĆĄto kasnije. Za sada je dovoljno primijeniti jedno od pravila koje je
ujedno i najbrĆŸe, a to je da se ukoliko se pojavi ovakav problem za izbor vodeÄeg stupca
prelazi na red đđ â đđ. U njemu se sada gleda koja od nebaziÄnih varijabli (koje su imale u đđ
istu maksimalnu vrijednost) poprima maksimalnu apsolutnu vrijednost â poĆĄto se radi o
problemu za maksimum. Varijabla koja ima najveÄu tu vrijednost je varijabla đ„3.
Za odabir vodeÄeg reda izraÄunati su redom sljedeÄi omjeri:
36
Tablica 15. a) Odabir vodeÄeg reda za prvu iteraciju za primjer degeneracije.
đđ â 20 10 35 45 0 0 0 -M -M
đđ
â
BaziÄno rjeĆĄenje Strukturne varijable Dopunske varijable Artificijelne varijable
Var Kol x1 x2 x3 x4 u1 u2 u3 w1 w2 K R
-M w1 1000 3 2 2 3 -1 0 0 1 0 1010 500
0 u2 2000 4 2 1 4 0 1 0 0 0 2012 2000
0 u3 2500 5 3 2 3 0 0 1 0 0 2514 1250
-M w2 1000 1 2 2 0 0 0 0 0 1 1006 500
đđ â đđ 0 -20 -10 -35 -45 0 0 0 0 0 -110
đ đ -2000 -4 -4 -4 -3 1 0 0 -1 -1 -2016
Iz prikazane tablice jasno je vidljivo kako dvije baziÄne varijable - đ€1 i đ€2 â
poprimaju jednake vrijednosti traĆŸenog omjera. Ovo je sluÄaj koji Äe sigurno poluÄiti
degenerirano baziÄno rjeĆĄenje. Jer poĆĄto je ovim baziÄnim varijablama omjer - koji odreÄuje
za koliko Äe se smanjiti baziÄna varijabla ulaskom nebaziÄne, odnosno vrijednost za koju se
moĆŸe maksimalno poveÄati nebaziÄna varijabla - jednak, jasno je da kada iz baze izaÄe jedna
od njih druga Äe u sljedeÄoj iteraciji poprimiti vrijednost nula. Odnosno baziÄno
nedegenerirano rjeĆĄenje postaje degenerirano. Varijable koje su se naĆĄle u tom problemu
odnosno koje su u baziÄnom rjeĆĄenju poprimile vrijednost nula takoÄer Äe kasnije kroz
iteracije izaÄi iz baziÄnog rjeĆĄenja, ali te promjene neÄe zbog te nule utjecati na vrijednost
funkcije cilja odnosno funkcija cilja ostat Äe nepromijenjena. Cijeli taj nepromijenjeni proces
zbog nula vrijednosti zove se degeneracija. Razlog tome moĆŸe se objasniti tako, pogledaju li
se nejednadĆŸbe ograniÄenja kao odreÄeni vektori, da se u trenutnom baziÄnom rjeĆĄenju
dogodio sluÄaj u kojem postoji moguÄa toÄka optimalnog rjeĆĄenja u kojoj se nalazi viĆĄe nego
dva sjeciĆĄta ograniÄenja [KalpiÄ, Molnar, 1996, 31]. Pomicanje iz jednog sjeciĆĄta u drugo koje
se nalazi u istoj toÄki, ne utjeÄe na promjenu vrijednosti funkcije.
RazliÄiti autori razliÄito pristupaju ovom problemu, a svi se vode time da se u ĆĄto
manje koraka odnosno iteracija doÄe do optimalnog rjeĆĄenja. Bitno je za naglasiti kako u
sluÄajevima kada se javlja degeneracija, i to najÄeĆĄÄe kada je viĆĄe od jednog baziÄnog rjeĆĄenja
jednako nuli, javlja se joĆĄ jedan problem, problem kruĆŸenja. Njega se takoÄer pokuĆĄava ĆĄto
viĆĄe izbjeÄi uporabom razliÄitih pristupa rjeĆĄavanja problema degeneracije. On Äe biti viĆĄe
objaĆĄnjen kasnije. Jedan od naÄina kojim se prilazi degeneraciji je da se od viĆĄe varijabli koje
su vezane istim minimalnim omjerom proizvoljno odabere varijabla koja izlazi iz baze. Drugi
37
od naÄina je da iz baze izlazi ona varijabla Äija je vrijednost indeksa manja odnosno ona koja
se u ograniÄenjima u kanonskom problemu javila prva.
NaÄin na koji Äe se ovdje pristupiti problemu glasi da ukoliko se pojave dvije (ili viĆĄe)
baziÄnih varijable s ovim jednakim omjerima da Äe se u omjer staviti prvi sljedeÄi stupac koji
nije ujedno i vodeÄi. Vrijednosti tog stupca opet se dijele vrijednostima vodeÄeg stupca, ali
samo za vezane varijable odnosno one koje su imali jednak minimalni uvjet za izlazak iz
baze. To pomicanje po stupcima odvija se toliko dugo dok se ne dobiju razliÄite vrijednosti. U
odabranom primjeru veÄ odabirom prvog stupca dobile su se razliÄite vrijednosti i za vodeÄi
red odabire se Äetvrti red.
Tablica 16. b) Odabir vodeÄeg reda za prvu iteraciju za primjer degeneracije.
đđ â 20 10 35 45 0 0 0 -M -M
đđ
â
BaziÄno rjeĆĄenje Strukturne varijable Dopunske varijable Artificijelne varijable
Var Kol x1 x2 x3 x4 u1 u2 u3 w1 w2 K R
-M w1 1000 3 2 2 3 -1 0 0 1 0 1010 500 (1,5)
0 u2 2000 4 2 1 4 0 1 0 0 0 2012 2000
0 u3 2500 5 3 2 3 0 0 1 0 0 2514 1250
-M w2 1000 1 2 2 0 0 0 0 0 1 1006 500 (0,5)
đđ â đđ 0 -20 -10 -35 -45 0 0 0 0 0 -110
đ đ -2000 -4 -4 -4 -3 1 0 0 -1 -1 -2016
SljedeÄa iteracija pokazuje upravo spomenutu pojavu degeneracije gdje oba reda u kojoj su
bile vezane baziÄne varijable poprimaju vrijednost 0. Pojava nule u baziÄnom rjeĆĄenju
oznaÄava degenerirano baziÄno rjeĆĄenje. Kako dobiveni program i dalje nije optimalan, jer je
prisutna artificijelna varijabla u bazi odnosno đđ red i dalje nema sve nule, ide se dalje u
sljedeÄu iteraciju, odnosno koraci prve faze 'dvofazne' metode i dalje se provode:
38
Tablica 17. Prva iteracija za primjer degeneracije.
đđ â 20 10 35 45 0 0 0 -M -M
đđ
â
BaziÄno rjeĆĄenje Strukturne varijable Dopunske varijable Artificijelne varijable
Var Kol x1 x2 x3 x4 u1 u2 u3 w1 w2 K R
-M w1 0 2 0 0 3 -1 0 0 1 -1 4 0
0 u2 1500 7/2 1 0 4 0 1 0 0 -1/2 1509 375
0 u3 1500 4 1 0 3 0 0 1 0 -1 1508 500
35 x3 500 1/2 1 1 0 0 0 0 0 1/2 503 /
đđ â đđ 17500 -5/2 25 0 -45 0 0 0 0 35/2 17495
đ đ 0 -2 0 0 -3 1 0 0 -1 1 -4
Unutar sljedeÄe, druge iteracije, dobilo se upravo onakvo baziÄno rjeĆĄenje kakvo je
prethodno objaĆĄnjeno. Kako je vrijednost - koja pokazuje za koliko se varijabla koja ulazi u
bazu moĆŸe najviĆĄe promijeniti - jednaka nuli, vrijednost te nebaziÄne varijable koja ulazi u
bazu bit Äe naravno nula, a nova vrijednost funkcije cilja ostat Äe ne promijenjena. I stoga ova
iteracija nije nuĆŸno poveÄala funkciju cilja, ali je omoguÄila drugaÄiju kombinaciju varijabli u
bazi odnosno pomoÄu ove iteracije izbaÄena je neĆŸeljena artificijelna varijabla iz baze i time
se doĆĄlo do kraja prve faze 'dvofazne' metode.
Tablica 18. Druga iteracija za primjer degeneracije.
đđ
â Var Kol x1 x2 x3 x4 u1 u2 u3 w1 w2 K R
45 x4 0 2/3 0 0 1 -1/3 0 0 1/3 -1/3 4/3
0 u2 1500 5/6 1 0 0 4/3 1 0 -4/3 5/6 4511/3
0 u3 1500 2 1 0 0 1 0 1 -1 0 1504
35 x3 500 1/2 1 1 0 0 0 0 0 1/2 503
đđ â đđ 17500 55/2 25 0 0 -15 0 0 15 5/2
Drugom iteracijom i dalje se nije postigao ĆŸeljeni optimum programa ĆĄto znaÄi da se ulazi u
drugu fazu metode i odabirom maksimalne negativne vrijednosti u zadnjem redu odabire se
vodeÄi stupac te zatim i vodeÄi red.
39
Tablica 19. Odabir vodeÄeg reda i stupca za treÄu iteraciju za primjer degeneracije.
đđ â 20 10 35 45 0 0 0 -M -M
đđ
â
BaziÄno rjeĆĄenje Strukturne varijable Dopunske varijable Artificijelne varijable
Var Kol x1 x2 x3 x4 u1 u2 u3 w1 w2 K R
45 x4 0 2/3 0 0 1 -1/3 0 0 1/3 -1/3 4/3 /
0 u2 1500 5/6 1 0 0 4/3 1 0 -4/3 5/6 4511/3 1125
0 u3 1500 2 1 0 0 1 0 1 -1 0 1504 1500
35 x3 500 1/2 1 1 0 0 0 0 0 1/2 503 /
đđ â đđ 17500 55/2 25 0 0 -15 0 0 15 5/2
Nakon provedenih transformacija dobiva se sljedeÄa ujedno i posljednja iteracija programa:
Tablica 20. TreÄa iteracija za primjer degeneracije.
đđ
â
BaziÄno rjeĆĄenje Strukturne varijable Dopunske varijable Artificijelne varijable
Var Kol x1 x2 x3 x4 u1 u2 u3 w1 w2 K R
45 x4 375 7/8 1/4 0 1 0 1/4 0 0 -1/8 1509/4
0 u1 1125 5/8 3/4 0 0 1 3/4 0 -1 5/8 5411/4
0 u3 375 11/8 1/4 0 0 0 -3/4 1 0 -5/8 1505/4
35 x3 500 1/2 1 1 0 0 0 0 0 1/2 503
đđ â đđ 34375 295/8 145/4 0 0 0 45/4 0 0 95/8 137885/4
Iz navedenog optimalnog programa moĆŸe se vidjeti kako se dobilo baziÄno
nedegenerirano rjeĆĄenje. Stoga se moĆŸe zakljuÄiti da pojava degeneracije unutar simpleks
algoritma ne mora nuĆŸno znaÄiti da se na kraju neÄe doÄi do nedegeneriranog rjeĆĄenja
odnosno i do optimalnog rjeĆĄenja. ZnaÄi samo da Äe moĆŸda prilikom provoÄena algoritma biti
potrebna koja iteracija viĆĄe kako bi se doĆĄlo do konaÄne optimalne kombinacije baziÄnih
varijabli. ObjaĆĄnjena degeneracija joĆĄ se moĆŸe nazivati i primarna degeneracija, a
degeneracija koja Äe se sljedeÄe opisati naziva se dualna degeneracija.
5.2.1. Dualna degeneracija
Dualna degeneracija javlja se u simpleks tablici kada se unutar kriterija optimalnosti
jave dvije jednake vrijednosti. ToÄnije, kada se unutar izbora za vodeÄi stupac tj. strukturne
nebaziÄne varijable koja treba uÄi u bazu pojavi viĆĄe 'kandidata'. Naziva se dualna
40
degeneracija iz razloga ĆĄto se ispod strukturnih varijabli u konaÄnom rjeĆĄenju problema u
zadnjem redu Äitaju vrijednosti dopunskih varijabli dualnog problema.
U prijaĆĄnjem primjeru pojavio se takav sluÄaj ( i pristupilo mu se tako da se na najbrĆŸi
moguÄi naÄin odabrala varijabla koja treba uÄi u bazu. OdluÄilo se na temelju reda relativnih
troĆĄkova. JoĆĄ jedan od naÄina pristupanja ovom problemu je da se obiÄni kriterij izbora
nebaziÄne varijable zamjerni s egzaktnim. Odnosno da se od moguÄih varijabli koje bi trebale
uÄi u bazu vidi koja Äe dati pogodniji relativni troĆĄak za sljedeÄu iteraciju. SljedeÄi primjer10
koji Äe biti zadan odmah prvom poÄetnom simpleks tablicom prikazat Äe na koji se naÄin
koristi taj egzaktni sporiji, ali toÄniji kriterij izbora nebaziÄnih varijabli. Treba joĆĄ jednom
naglasiti samo kako ni jedan izbor varijable u ovom problemu nije pogreĆĄan, samo Äe se taj
izbor odraziti na ukupan broj iteracija. Ukoliko se izabere jedna varijabla koja moĆŸda nije
trebala uÄi, veÄ u nekim od sljedeÄih iteracija ona varijabla koja je trebala uÄi odabrat Äe se za
vodeÄi stupac.
Tablica 21. PoÄetna tablica za primjer dualne degeneracije.
đđ â 20 30 45 40 0 0 0 0 M M M M
đđ
â
BaziÄno rjeĆĄenje Strukturne varijable Dopunske varijable Artificijelne varijable
Var Kol x1 x2 x3 x4 u1 u2 u3 u4 w1 w2 w3 w4 K R
M w1 500 2 3 3 1 -1 0 0 0 1 0 0 0 509 500/3
M w2 1500 1 4 5 0 0 -1 0 0 0 1 0 0 1510 300
M w3 1500 3 3 1 1 0 0 -1 0 0 0 1 0 1508 1500
M w4 2000 0 0 4 4 0 0 0 -1 0 0 0 1 2008 500
đđ â đđ 0 -20 -30 -45 -40 0 0 0 0 0 0 0 0 -135
đ đ 5500 6 10 13 6 -1 -1 -1 -1 1 1 1 1 5535
SljedeÄe iteracije bit Äe prikazane jedna za drugom dok se ne pojavi ona u kojoj se javlja
dualni oblik degeneracije.
10
Zadatak preuzet iz materijala dostupnih na e-kolegiju 'Operacijska istraĆŸivanja 1' â rijeĆĄen samostalno
41
Tablica 22. Prva za primjer dualne degeneracije.
đđ â 20 30 45 40 0 0 0 0 M M M M
đđ
â
BaziÄno rjeĆĄenje Strukturne varijable Dopunske varijable Artificijelne varijable
Var Kol x1 x2 x3 x4 u1 u2 u3 u4 w1 w2 w3 w4 K R
45 x3 500/3 2/3 1 1 1/3 -1/3 0 0 0 1/3 0 0 0 509/3 /
M w2 2000/3 -7/3 1 0 -5/3 5/3 -1 0 0 -5/3 1 0 0 1985/3 400
M w3 4000/3 7/3 2 0 2/3 1/3 0 -1 0 -1/3 0 1 0 4015/3 4000
M w4 4000/3 -8/3 -4 0 8/3 4/3 0 0 -1 -4/3 0 0 1 3988/3 1000
đđ â đđ 7500 10 15 0 -25 -15 0 0 0 15 0 0 0 7500
đ đ 10000/3 -8/3 -3 0 5/3 10/3 -1 -1 -1 -10/3 1 1 1 9988/3
Tablica 23. Druga iteracija za primjer dualne degeneracije.
đđ â 20 30 45 40 0 0 0 0 M M M M
đđ
â
BaziÄno rjeĆĄenje Strukturne varijable Dopunske varijable Artificijelne varijable
Var Kol x1 x2 x3 x4 u1 u2 u3 u4 w1 w2 w3 w4 K R
45 x3 300 1/5 4/5 1 0 0 -1/5 0 0 0 1/5 0 0 302 /
0 u1 400 -7/5 -3/5 0 -1 1 -3/5 0 0 -1 3/5 0 0 397 /
M w3 1200 14/5 11/5 0 1 0 1/5 -1 0 0 -1/5 1 0 1206 1200
M w4 800 -4/5 -16/5 0 4 0 4/5 0 -1 0 -4/5 0 1 800 200
đđ â đđ 13500 -11 6 0 -40 0 -9 0 0 0 9 0 0 13455
đ đ 2000 2 -1 0 5 0 1 -1 -1 0 -1 1 1 2006
Tablica 24. TreÄa iteracija za primjer dualne degeneracije.
đđ â 20 30 45 40 0 0 0 0 M M M M
đđ
â
BaziÄno rjeĆĄenje
Strukturne varijable Dopunske varijable Artificijelne varijable
Var Kol x1 x2 x3 x4 u1 u2 u3 u4 w1 w2 w3 w4 K R
45 x3 300 1/5 4/5 1 0 0 -1/5 0 0 0 1/5 0 0 302 300
0 u1 600 -8/5 -7/5 0 0 1 -2/5 0 -1/4 -1 2/5 0 1/4 597 600
M w3 1000 3 3 0 0 0 0 -1 1/4 0 0 1 -1/4 1006 1000
40 x4 200 -1/5 -4/5 0 1 0 1/5 0 -1/4 0 -1/5 0 1/4 200 200
đđ â đđ 21500 -19 -26 0 0 0 -1 0 -10 0 1 0 10 21455 21500
đ đ 1000 3 3 0 0 0 0 -1 1/4 0 0 1 -1/4 1006 1000
42
U treÄoj iteraciji dogodila se navedena degeneracija. Po obiÄnom kriteriju gledajuÄi
relativne troĆĄkove odabrali bi onaj maksimalni meÄu pozitivnim. U ovom sluÄaju zapravo
prema tom redu zapravo imamo tkz. optimalno rjeĆĄenje jer nema pozitivnih u đđ â đđ, ali
naravno da je rjeĆĄenje daleko od moguÄeg kamoli optimalnog jer u bazi joĆĄ uvijek postoji
artificijelna varijabla. Ovaj sluÄaj rijeĆĄit Äe se uporabom egzaktnog kriterija. Iako se on
primjenjuje kada joĆĄ ima pozitivnih vrijednosti, svejedno Äe posluĆŸiti za ovaj sluÄaj. TakoÄer
uporaba egzaktnog kriterija ne mora se uvijek izvrĆĄavati kada se pojavljuje problem dualne
degeneracije.
Egzaktni kriterij pomoÄu kriterija za izbor vodeÄeg reda â pravilo minimalnog omjera
â gleda koja je varijabla viĆĄe pogodnija za ulazak u bazu. Egzaktni kriterij dat Äe vrijednost
koja predstavlja za koliko se egzaktno moĆŸe poveÄati funkcija cilja. Taj kriterij mnoĆŸi
minimalni omjer varijable s njezinim relativnim troĆĄkom i odabire onu koja ima maksimalnu
tu vrijednost:
đđđđŻ â (đđ â đđ),
Î = đđđ {đđ0
đđđ }.
ZnaÄi da za odabrani primjer vrijednosti koje su se dobile razmatranjem ovog kriterija su:
Tablica 25. Egzaktni kriterij
đđ đđ
Î = đđđ {1500,1000
3, } =
đđđđ
đ Î = đđđ {375,
1000
3, } =
đđđđ
đ
đđđ„Î â (đđ â đđ) = đđđ„ {(đđđđ
đâ â19) , (
đđđđ
đâ â26)} = đđđ„ {â
19000
3, â
26000
3} = â
đđđđđ
đ
Maksimalna vrijednost po ovom kriteriju je ona za varijablu đ„1 i prema tome ona ulazi u bazu, a
varijabla koja je izaĆĄla je naravno artificijelna.
43
Tablica 26. Äetvrta iteracija za primjer dualne degeneracije.
đđ â 20 30 45 40 0 0 0 0 M M M M
đđ
â
BaziÄno rjeĆĄenje Strukturne varijable Dopunske varijable Artificijelne varijable
Var Kol x1 x2 x3 x4 u1 u2 u3 u4 w1 w2 w3 w4 K R
45 x3 700/3 0 3/5 1 0 0 -1/5 1/15 -1/60 0 1/5 -1/15 1/60 3524/15 700/3
0 u1 3400/3 0 1/5 0 0 1 -2/5 -8/15 -7/60 -1 2/5 8/15 7/60 17003/15 3400/3
20 x1 1000/3 1 1 0 0 0 0 -1/3 1/12 0 0 1/3 -1/12 1006/3 1000/3
40 x4 800/3 0 -3/5 0 1 0 1/5 -1/15 -7/30 0 -1/5 1/15 7/30 4006/15 800/3
đđ â đđ 83500/3 0 -7 0 0 0 -1 -19/3 -101/12 0 1 19/3 101/12 83479/3 83500/3
đ đ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Iz navedene tablice vidi se kako je veÄ prilikom prve faze 'dvofazne' metode rijeĆĄen problem
odnosno dobiveno rjeĆĄenje je ujedno i optimalno. Pogleda li se vrijednosti funkcije cilja uvidjet Äe se
da se njena vrijednost zapravo poveÄala u optimalnom rjeĆĄenju, ali to se moĆŸe pripisati negativnim
koeficijentima u redu relativnih troĆĄkova. Izbor bilo koje od dvije varijabli pogorĆĄao bi stanje funkcije
cilja u smislu da bi njenu vrijednost poveÄao, a to se ne ĆŸeli dobiti u ovom problemu jer se njena
vrijednost ĆŸeli smanjiti ĆĄto je viĆĄe moguÄe. I stoga je ovdje izbor 'pao' na onu varijablu koja Äe manje
pogorĆĄati novo moguÄe rjeĆĄenje. Koje je se na kraju pokazalo i optimalnim. Da se u prijaĆĄnjoj iteraciji
ipak proizvoljno odabrala varijabla đ„2 ne bi se dobilo pogreĆĄno rjeĆĄenje, ali morala bi se provesti jedna
iteracija viĆĄe s kojom bi se doĆĄlo do gore prikazanog optimalnog rjeĆĄenja.
5.3. Pojava ciklusa
Ukoliko se degeneracija ne moĆŸe izbjeÄi unutar konaÄnog niza iteracija odnosno
novim iteracijama ne dogaÄa se stvarno poboljĆĄanje funkcije cilja, javlja se spomenuti
problem kruĆŸenja ili ciklusa. ZnaÄi da svako novo rjeĆĄenje koje nije ujedno i optimalno ne
donosi poveÄanje/smanjenje vrijednosti funkcije cilja, pa iteracije ulaze u beskrajnu petlju.
Neprestano ulaze i izlaze iste varijable. U realnim sustavima ovaj sluÄaj se vrlo rijetko dogaÄa
iako se pak nerijetko dogaÄa da puno praktiÄnih problema ima degenerirana rjeĆĄenja
[Ravindran, Phillips, Solberg, 2007, 45]. Drugim rijeÄima moguÄe je da simpleks metoda
unutar viĆĄe iteracija ne donosi poboljĆĄanje funkcije cilja, ali na kraju ona Äe izaÄi iz petlje i
doseÄi optimalno rjeĆĄenje.
SljedeÄi primjer11
prikazat Äe kako ovaj problem izgleda kada se moĆŸe izaÄi iz petlje:
11
Izvor: Dantzig, 1963, 230.
44
Tablica 27. PoÄetna tablica za primjer kruĆŸenja.
đđ â 3/4 -150 1/50 -6 0 0 0
đđ
â
BaziÄno rjeĆĄenje Strukturne varijable Dopunske varijable
Var Kol x1 x2 x3 x4 u1 u2 u3 K R
0 u1 0 1/4 -60 -1/25 9 1 0 0 -4979/100 0
0 u2 0 1/2 -90 -1/50 3 0 1 0 -2138/25 0
0 u3 1 0 0 1 0 0 0 1 3 /
đđ â đđ 0 -3/4 150 -1/50 6 0 0 0 15523/100
Tablica 28. Prva iteracija za primjer kruĆŸenja.
đđ â 3/4 -150 1/50 -6 0 0 0
đđ
â
BaziÄno rjeĆĄenje Strukturne varijable Dopunske varijable
Var Kol x1 x2 x3 x4 u1 u2 u3 K R
3/4 x1 0 1 -240 -4/25 36 4 0 0 -4979/25 /
0 u2 0 0 30 3/50 -15 -2 1 0 703/50 0
0 u3 1 0 0 1 0 0 0 1 3 /
đđ â đđ 0 0 -30 -7/50 33 3 0 0 293/50
Tablica 29. Druga iteracija za primjer kruĆŸenja.
đđ â 3/4 -150 1/50 -6 0 0 0
đđ
â
BaziÄno rjeĆĄenje Strukturne varijable Dopunske varijable
Var Kol x1 x2 x3 x4 u1 u2 u3 K R
3/4 x1 0 1 0 8/25 -84 -12 8 0 -2167/25 0
-150 x2 0 0 1 1/500 -1/2 -1/15 1/30 0 703/1500 0
0 u3 1 0 0 1 0 0 0 1 3 1
đđ â đđ 0 0 0 -2/25 18 1 1 0 498/25
45
Tablica 30. TreÄa iteracija za primjer kruĆŸenja.
đđ â 3/4 -150 1/50 -6 0 0 0
đđ
â
BaziÄno rjeĆĄenje Strukturne varijable Dopunske varijable
Var Kol x1 x2 x3 x4 u1 u2 u3 K R
1/50 x3 0 25/8 0 1 -525/2 -75/2 25 0 -2167/8 /
-150 x2 0 -1/160 1 0 1/40 1/120 -1/60 0 97/96 0
0 u3 1 -25/8 0 0 525/2 75/2 -25 1 2191/8 2/525
đđ â đđ 0 1/4 0 0 -3 -2 3 0 -7/4
Tablica 31. Äetvrta iteracija za primjer kruĆŸenja.
đđ â 3/4 -150 1/50 -6 0 0 0
đđ
â
BaziÄno rjeĆĄenje Strukturne varijable Dopunske varijable
Var Kol x1 x2 x3 x4 u1 u2 u3 K R
1/50 x3 0 -125/2 10500 1 0 50 -150 0 20677/2 0
-6 x4 0 -1/4 40 0 1 1/3 -2/3 0 485/12 0
0 u3 1 125/2 -10500 0 0 -50 150 1 -20671/2 /
đđ â đđ 0 -1/2 120 0 0 -1 1 0 239/2
Tablica 32. Peta iteracija za primjer kruĆŸenja.
đđ â 3/4 -150 1/50 -6 0 0 0
đđ
â
BaziÄno rjeĆĄenje Strukturne varijable Dopunske varijable
Var Kol x1 x2 x3 x4 u1 u2 u3 K R
0 u1 0 -5/4 210 1/50 0 1 -3 0 20677/100 /
-6 x4 0 1/6 -30 -1/150 1 0 1/3 0 -2138/75 0
0 u3 1 0 0 1 0 0 0 1 3 /
đđ â đđ 0 -7/4 330 1/50 0 0 -2 0 32627/100
Ovdje se jasno vidi da ukoliko se u petoj iteraciji za novu iteraciju odabere vodeÄi stupac đą2
sljedeÄa ĆĄesta iteracija poprimit Äe jednak izgled odnosno vrijednosti kao i prva poÄetna od
koje se krenulo.
46
Tablica 33. Ć esta iteracija za primjer kruĆŸenja.
đđ â 3/4 -150 1/50 -6 0 0 0
đđ
â
BaziÄno rjeĆĄenje Strukturne varijable Dopunske varijable
Var Kol x1 x2 x3 x4 u1 u2 u3 K R
0 u1 0 1/4 -60 -1/25 9 1 0 0 -4979/100 0
0 u2 0 1/2 -90 -1/50 3 0 1 0 -2138/25 0
0 u3 1 0 0 1 0 0 0 1 3 /
đđ â đđ 0 -3/4 150 -1/50 6 0 0 0 15523/100
5.4. SluÄaj nedopuĆĄtenih rjeĆĄenja
SluÄaj nedopuĆĄtenih rjeĆĄenja moĆŸe se javiti veÄ prilikom postavlja prvog poÄetnog
rjeĆĄenja. NedopuĆĄteno rjeĆĄenje je ono rjeĆĄenje unutar kojeg postoji barem jedna baziÄna
varijabla koja poprima negativnu vrijednost. Upravo su se zbog toga unutar problema koji ima
ograniÄenja/e zadana donjom granicom uvodile artificijelne varijable kako bi se veÄ u startu
izbjeglo takvo nemoguÄe rjeĆĄenje. Proporcionalno s time ukoliko se iz baziÄnog rjeĆĄenja ne
mogu izbaciti sve artificijelne varijable za takav problem ne postoji moguÄe rjeĆĄenje. GrafiÄka
pozadina toga glasila bi da uopÄe ne postoji jedna toÄka rjeĆĄenja tog sustava u kojoj su
zadovoljeni svi uvjeti ograniÄenja, a kamoli da je joĆĄ ta toÄka i optimalna. SljedeÄi
jednostavan primjer12
bit Äe rijeĆĄen prvo simpleks algoritmom (makar se ovakvi problemi ne
rjeĆĄavaju na taj naÄin), a onda Äe njegovo rjeĆĄenje biti i grafiÄki prikazano.
đ = đđđ + đđđ â đđđ
2x1 â 2x2 = 4
3x1 + 3x2 â„ 9
â4x1 + 2x2 †8
4x1 â 8x2 †3
â3x1 + 3x2 = 9
9x1 + 9x2 †81
đđ, đđ â„ đ
Pripadni kanonski problem glasi:
12
Zadatak preuzet iz materijala dostupnih na e-kolegiju 'Operacijska istraĆŸivanja 1' â rijeĆĄen samostalno
47
đ = đđđ + đđđ + đ(âđđ + đđ + đđ + đđ) + đŽ(đđ + đđ + đđ) â đđđ
2đ„1 â 2đ„2 + đđ = 4
3đ„1 + 3đ„2 â đđ + đđ = 9
â4đ„1 + 2đ„2 + đđ = 8
4đ„1 â 8đ„2 + đđ = 3
â3đ„1 + 3đ„2 + đđ = 9
9đ„1 + 9đ„2 + đđ = 81
đ„1, đ„2đđ, đđ, đđ, đđ, đđ, đđ, đđ â„ đ
Tablica 34. PoÄetna tablica za primjer nedopuĆĄtenog rjeĆĄenja.
đđ â 4 4 0 0 0 0 M M M
đđ
â
BaziÄno rjeĆĄenje Strukturne varijable Dopunske varijable Artificijelne varijable
Var Kol x1 x2 u1 u2 u3 u4 w1 w2 w3 K R
M w1 4 2 -2 0 0 0 0 1 0 0 5 /
M w2 9 3 3 -1 0 0 0 0 1 0 15 3
0 u2 8 -4 2 0 1 0 0 0 0 0 7 4
0 u3 3 4 -8 0 0 1 0 0 0 0 0 /
M w3 9 -3 3 0 0 0 0 0 0 1 10 3
0 u4 81 9 9 0 0 0 1 0 0 0 100 9
đđ â đđ 0 -4 -4 0 0 0 0 0 0 0 -8
đ đ 22 2 4 -1 0 0 0 1 1 1 30
48
Tablica 35. Prva iteracija za primjer nedopuĆĄtenog rjeĆĄenja.
đđ â 4 4 0 0 0 0 M M M
đđ
â
BaziÄno rjeĆĄenje Strukturne varijable Dopunske varijable Artificijelne varijable
Var Kol x1 x2 u1 u2 u3 u4 w1 w2 w3 K R
M w1 10 4 0 -2/3 0 0 0 1 2/3 0 15 /
4 x2 3 1 1 -1/3 0 0 0 0 1/3 0 5 /
0 u2 2 -6 0 2/3 1 0 0 0 -2/3 0 -3 3
0 u3 27 12 0 -8/3 0 1 0 0 8/3 0 40 /
M w3 0 -6 0 1 0 0 0 0 -1 1 -5 0
0 u4 54 0 0 3 0 0 1 0 -3 0 55 18
đđ â đđ 12 0 0 -4/3 0 0 0 0 4/3 0 12
đ đ 10 -2 0 1/3 0 0 0 1 -1/3 1 10
Tablica 36. Druga iteracija za primjer nedopuĆĄtenog rjeĆĄenja.
đđ â 4 4 0 0 0 0 M M M
đđ
â
BaziÄno rjeĆĄenje Strukturne varijable Dopunske varijable Artificijelne varijable
Var Kol x1 x2 u1 u2 u3 u4 w1 w2 w3 K R
M w1 10 0 0 0 0 0 0 1 0 2/3 35/3
4 x2 3 -1 1 0 0 0 0 0 0 1/3 10/3
0 u2 2 -2 0 0 1 0 0 0 0 -2/3 1/3
0 u3 27 -4 0 0 0 1 0 0 0 8/3 80/3
0 u1 0 -6 0 1 0 0 0 0 -1 1 -5
0 u4 54 18 0 0 0 0 1 0 0 -3 70
đđ â đđ 12 0 0 0 0 0 0 0 4/3 0 12
đ đ 10 -2 0 0 0 0 0 1 -1/3 1 10
Vrlo je jasno vidljivo kako je ovo nedopuĆĄteno baziÄno rjeĆĄenje. Odnosno ovo je rjeĆĄenje
kojeg je nemoguÄe provest do kraja prve faze 'dvofazne' simpleks metode. PoĆĄto se dalje ne
moĆŸe izabrati vodeÄi stupac, unutar baze nemoguÄe je rijeĆĄiti se artificijelnih varijabli.
Sukladno tome prikazana druga iteracija ovog primjera ne moĆŸe biti moguÄe baziÄno rjeĆĄenje
niti moĆŸe dovesti ovaj problem u prvo moguÄe rjeĆĄenje. Stoga za ovaj problem ne postoji
optimalno odnosno ni moguÄe rjeĆĄenje.
49
Slika 2. GrafiÄki13
prikaz rjeĆĄenja za primjer nedopuĆĄtenog rjeĆĄenja.
5.5. SluÄaj neograniÄenih rjeĆĄenja
Ovakav sluÄaj unutar simpleks metode odnosno samog linearnog programiranja javlja
se kada se ne moĆŸe jednoznaÄno odrediti optimalni program. MoguÄe rjeĆĄenje moĆŸe postojati,
ali ono zasigurno nije optimalno jer postoji joĆĄ beskrajno mnogo rjeĆĄenja koja su bolja. SluÄaj
neograniÄenih rjeĆĄenja unutar simpleks algoritma javit Äe se kada se meÄu omjerima preko
kojih se odreÄuje vodeÄi red neÄe moÄi odabrati minimalni, a da ujedno zadovoljavaju i uvjet
Î â„ 0. Odnosno kada su svi ti omjeri izraĆŸeni negativnim ili beskonaÄnim vrijednostima ââ.
I sljedeÄi primjer14
bit Äe jednostavan kako bi se preko njegovog grafiÄkog rjeĆĄenja moglo
lakĆĄe pojednostaviti ovo reÄeno.
đ = đđđ + đđđ â đđđ
âđ„1 + 2đ„2 †10
đ„1 â 3đ„2 †3
2đ„1 + 3đ„2 â„ 6
đ„1 â„ 1
đ„2 â„ 1
đđ, đđ â„ đ
13
IzraÄen samostalno u: https://www.wolframalpha.com 14
Zadatak preuzet iz materijala dostupnih na e-kolegiju 'Operacijska istraĆŸivanja 1' â rijeĆĄen samostalno
50
Pripadni kanonski problem glasi:
đ = đđđ + đđđ + đ(đđ + đđ â đđ â đđâđđ) â đŽ(đđ + đđ + đđ) â đđđ
âđ„1 + 2đ„2 + đđ = 10
đ„1 â 3đ„2 + đđ = 3
2đ„1 + 3đ„2 â đđ + đđ = 6
đ„1 â đđ + đđ = 1
đ„2 â đđ + đđ = 1
đ„1, đ„2, đđ, đđ, đđ, đđ, đđ, đđ, đđ, đđ â„ đ
Postupak simpleksa neÄe biti cijeli prikazan veÄ samo zadnja, Äetvrta iteracija u kojoj je doĆĄlo
do sluÄaja kada se viĆĄe ne moĆŸe odrediti vodeÄi red. U toj iteraciji moguÄe je proÄitati to
neograniÄeno rjeĆĄenje.
Tablica 37. Äetvrta iteracija za primjer neograniÄenog rjeĆĄenja
đđ â 4 4 0 0 0 0 M M M
đđ
â
BaziÄno rjeĆĄenje Strukturne varijable Dopunske varijable Artificijelne varijable
Var Kol x1 x2 u1 u2 u3 u4 u5 w1 w2 w3 K R
0 u3 25/2 0 0 3/2 0 1 -7/2 0 -1 7/2 0 -25/7
0 u2 37/2 0 0 3/2 1 0 -1/2 0 0 1/2 0 -37
0 u5 9/2 0 0 1/2 0 0 -1/2 1 0 1/2 -1 -9
4 x1 1 1 0 0 0 0 -1 0 0 1 0 -1
5 x2 11/2 0 1 1/2 0 0 -1/2 0 0 1/2 0 -11
đđ â đđ 63/2 0 0 5/2 0 0 -13/3 0 0 13/3 0
Kako se vidi u ovoj iteraciji sve vrijednosti omjera Î su negativne odnosno one
oznaÄavaju da odabrana ulazna nebaziÄna varijabla moĆŸe proizvoljno rasti. U realnim
problemima ovakvo stanje tablice odnosno rjeĆĄenja najÄeĆĄÄe Äe ukazivati na pogreĆĄno
formuliran model [KalpiÄ, Molnar, 1996, 26].
Preko grafiÄkog15
prikaza ovaj problem izgleda ovako:
15
IzraÄen samostalno u: https://www.wolframalpha.com
51
Slika 3. GrafiÄki prikaz za primjer neograniÄenog rjeĆĄenja.
Na slici se jasno vidi kako ne postoji gornje ograniÄenje veÄ je podruÄje rjeĆĄenja ovog
problema ide beskonaÄno.
5.6. SluÄaj viĆĄestrukog optimalnog rjeĆĄenja
Ukoliko se simpleks algoritmom doÄe do optimalnog rjeĆĄenja â funkcija cilja se viĆĄe
ne moĆŸe poboljĆĄati, a u bazi viĆĄe nema artificijelnih varijabli odnosno negativnih vrijednosti â
to sve ne mora znaÄiti da je dobiveni optimalni program ujedno i jedini optimalan. MoĆŸe se
pojaviti sluÄaj takozvanog multipliciranog optimalnog rjeĆĄenja odnosno sluÄaj u kojem postoji
viĆĄe optimalnih programa koji daju jednaku vrijednost zadane funkcije cilja. Ovaj sluÄaj moĆŸe
se prepoznati po tome ĆĄto Äe nebaziÄne varijable, odnosno varijable koje nisu uĆĄle u rjeĆĄenje
ni jednog od programa, poprimiti - unutar (prvog) optimalnog rjeĆĄenja - vrijednosti relativnog
troĆĄka jednake nuli. PoĆĄto su im te vrijednosti jednake nuli znaÄi da promjena funkcije cilja
unosom takvih varijabli u bazu neÄe biti postignuta, veÄ Äe znaÄiti da se novim programom
dobilo alternativno rjeĆĄenje optimalnog problema. Preko sljedeÄeg primjera16
pojasnit Äe se
ovaj sluÄaj.
đ = đđ + đđđ â đđđ
âđ„1 + 2đ„2 †4
3đ„1 + 2đ„2 †14
đ„1 â đ„2 †3
đđ, đđ â„ đ
16
Izvor: Ravindran, Phillips, Solberg, 2007, 39.
52
Pripadni kanonski problem ovog primjera glasi:
đ = đđ + đđđ + đ(đđ + đđ + đđ) â đđđ
âđ„1 + 2đ„2 + đđ = 4
3đ„1 + 2đ„2 + đđ = 14
đ„1 â đ„2 + đđ = 3
đđ, đđ, đđ, đđ, đđ â„ đ
Tablica 38. PoÄetna tablica za primjer viĆĄestrukog optimalnog rjeĆĄenja.
đđ â 3 2 0 0 0
đđ
â
BaziÄno rjeĆĄenje Strukturne varijable Dopunske varijable
Var Kol x1 x4 u1 u2 u3 K R
0 u1 4 -1 2 1 0 0 6 /
0 u2 14 3 2 0 1 0 20 14/3
0 u3 3 1 -1 0 0 1 4 3
đđ â đđ 0 -3 -2 0 0 0 -5
Tablica 39. Prva iteracija za primjer viĆĄestrukog optimalnog rjeĆĄenja.
đđ â 3 2 0 0 0
đđ
â
BaziÄno rjeĆĄenje Strukturne varijable Dopunske varijable
Var Kol x1 x4 u1 u2 u3 K R
0 u1 7 0 1 1 0 1 10 7
0 u2 5 0 5 0 1 -3 8 1
3 x1 3 1 -1 0 0 1 4 /
đđ â đđ 9 0 -5 0 0 3 7
SljedeÄa ujedno i posljednja iteracija koja mijenja vrijednost funkciji cilja je:
53
Tablica 40. Druga iteracija za primjer viĆĄestrukog optimalnog rjeĆĄenja.
đđ â 3 2 0 0 0
đđ
â
BaziÄno rjeĆĄenje Strukturne varijable Dopunske varijable
Var Kol x1 x4 u1 u2 u3 K R
0 u1 6 0 0 1 -1/5 8/5 42/5
2 x2 1 0 1 0 1/5 -3/5 8/5
3 x1 4 1 0 0 1/5 2/5 28/5
đđ â đđ 14 0 0 0 -1 0
Pogleda li se bolje upravo u ovoj iteraciji optimalnog programa prisutna je nebaziÄna
varijabla koja u zadnjem redu poprima vrijednost nula. Unosom te varijable u bazu dobit Äe se
prvo alternativno rjeĆĄenje optimalnog programa ujedno i jedino. Varijabla koja izlazi van je
varijabla đą1.
Tablica 41. Prvo alternativno rjeĆĄenje optimalnog programa.
đđ â 3 2 0 0 0
đđ
â
BaziÄno rjeĆĄenje Strukturne varijable Dopunske varijable
Var Kol x1 x4 u1 u2 u3 K R
0 u3 15/4 0 0 5/8 -1/8 0 15/4
2 x2 13/4 0 1 3/8 1/8 0 13/4
3 x1 5/2 1 0 -1/4 1/4 1 5/2
đđ â đđ 14 0 0 0 -1 0 14
54
6. ZakljuÄak
Ovaj rad pokuĆĄao je ĆĄto jednostavnije pribliĆŸiti i objasniti naÄin provoÄenja simpleks
algoritma. Kako u razliÄitim poduzeÄima odnosno organizacijama ne teÄe sve uvijek u
najboljem moguÄem tijeku i s najboljim moguÄim ishodima, tako niti kod simpleks algoritma
koji radi na temelju modela nekog problema neke organizacije nije sve uvijek 'bajno.
Problemi koji se mogu javiti mogu biti dio krivo protumaÄenih podataka i loĆĄe postavljenog
modela, no oni mogu biti i rezultat krivog provoÄenja nekih od metoda. Simpleks metoda nije
uvijek najbolji sluÄaj za linearno programiranje no ovaj rad se nije time bavio. Problemi koji
se mogu javiti unutar simpleks algoritma nisu nuĆŸno uvijek problemi, u punom smislu te
rijeÄi. Kako se prikazalo kod zadnjeg posebnog sluÄaja, sluÄaja viĆĄestrukog optimalnog
problema, nije svako odstupanje od 'standarda' ujedno i problem. ViĆĄestruko optimalno
rjeĆĄenje samo pokazuje razliÄit razmjeĆĄtaj varijabli unutar baziÄnog rjeĆĄenja koji na kraju
donosi istu vrijednost funkcije cilja. Uz ovaj sluÄaj i ostali prikazani sluÄajevi javljaju se
zapravo vrlo Äesto unutar primjene simpleks algoritma i zato im je bitno pristupiti sa znanjem
i logikom. Dobar dio tih sluÄajeva moĆŸe se na neki od prikazanih naÄina i ukloniti odnosno
protumaÄiti na naÄin da se u nekom od koraka provoÄenja linearnog programiranja nad
problem moĆŸda i pogrijeĆĄilo. Simpleks algoritam zato omoguÄuje da se ti posebni sluÄajevi
vrlo jasno i uoÄe.
55
Literatura
[1] BabiÄ Z (2010) Linearno programiranje. Split: SveuÄiliĆĄte u Splitu, Ekonomski fakultet.
[2] BarkoviÄ D (2001) Operacijska istraĆŸivanja (Drugo izmjenjeno i dopunjeno izdanje).
Osijek: Grafika.
[3] ÄakloviÄ L (2010) Geometrija linearnog programiranja (1. Izdanje). Zagreb: Element.
[4] Dantzig G.B (1963) Linear programming and extensions. Princeton, New Jersey:
Princeton university press.
[5] DobreniÄ S (1966) Linearno programiranje i njegova primjena u privrednoj organizaciji.
Zagreb: Informator.
[6] DobreniÄ S (1975) Linearno programiranje. VaraĆŸdin: Fakultet organizacije i
informatike.
[7] KalpiÄ D, Molnar V (1996) Operacijska istraĆŸivanja. Zagreb: ZEUS.9
[8] LonÄar I, Hunjak T (1978) MatematiÄke metode. VaraĆŸdin: Fakultet organizacije i
informatike.
[9] Loomba N.P (1964) Linear programming. USA: McGraw-Hill, Inc.
[10] LukaÄ Z, NeraliÄ L (2012) Operacijska istraĆŸivanja (1. izadanje). Zagreb: ELEMENT
d.o.o.
[11] MartiÄ Lj (1979) MatematiÄke metode za ekonomske analize (II. svezak . treÄe izdanje).
Zagreb: Narodne novine.
[12] MartiÄ Lj, Vandal A (1968) Operativno istraĆŸvanje. Zagreb: Informator.
[13] Ravindran A, Phillips D.T, Solberg J.J (2007) Oprations research: principles and
practice (secon edition). New Delhi: Wiley India
[14] VuÄkoviÄ Ćœ (1983) Linearno programiranje. Beograd: Savremena administracija.
[15] KuzmanoviÄ I, Sabo K. Linearno programiranje (Radni materijal za predavanja).
Dostupno 7.1.2018. na: http://www.mathos.unios.hr/lp/Materijali/predavanje16_lp.pdf
56
Popis slika
Slika 1. GrafiÄko rjeĆĄenje problema ......................................................................................... 18
Slika 2. GrafiÄki prikaz rjeĆĄenja za primjer nedopuĆĄtenog rjeĆĄenja. ........................................ 49
Slika 3. GrafiÄki prikaz za primjer neograniÄenog rjeĆĄenja. .................................................... 51
57
Popis tablica
Tablica 1. Osnovni pojmovi [Izvori: DobreniÄ, 1966 i BabiÄ, 2010] ...................................... 10
Tablica 2. Standardni problemi za max i min [Izvor: DobreniÄ, 1975] ................................... 11
Tablica 3: Dopunske i artificijelne varijable ............................................................................ 15
Tablica 4. PoÄetna tablica simpleks metode za problem maksimuma ..................................... 22
Tablica 5. PoÄetna simpleks tablica za primjer 1. .................................................................... 23
Tablica 6. OdreÄivanje vodeÄeg stupca i reda za primjer 1. .................................................... 25
Tablica 7. a) Prva iteracija za primjer 1. .................................................................................. 26
Tablica 8. b) Prva iteracija za primjer 1. .................................................................................. 26
Tablica 9. a) prva transformacija za primjer 1 ......................................................................... 27
Tablica 10. b) prva transformacija za primjer 1. ...................................................................... 27
Tablica 11. Potpuna prva iteracija za primjer 1........................................................................ 27
Tablica 12. VodeÄi stupac i vodeÄi red za drugu iteraciju za primjer 1. .................................. 28
Tablica 13. Druga iteracija za primjer 1. .................................................................................. 29
Tablica 14. PoÄetna tablica za primjer degeneracije. ............................................................... 35
Tablica 15. a) Odabir vodeÄeg reda za prvu iteraciju za primjer degeneracije. ....................... 36
Tablica 16. b) Odabir vodeÄeg reda za prvu iteraciju za primjer degeneracije. ....................... 37
Tablica 17. Prva iteracija za primjer degeneracije. .................................................................. 38
Tablica 18. Druga iteracija za primjer degeneracije................................................................. 38
Tablica 19. Odabir vodeÄeg reda i stupca za treÄu iteraciju za primjer degeneracije. ............. 39
Tablica 20. TreÄa iteracija za primjer degeneracije. ................................................................ 39
Tablica 21. PoÄetna tablica za primjer dualne degeneracije. ................................................... 40
Tablica 22. Prva za primjer dualne degeneracije. .................................................................... 41
Tablica 23. Druga iteracija za primjer dualne degeneracije. .................................................... 41
Tablica 24. TreÄa iteracija za primjer dualne degeneracije. ..................................................... 41
Tablica 25. Egzaktni kriterij ..................................................................................................... 42
Tablica 26. Äetvrta iteracija za primjer dualne degeneracije. .................................................. 43
Tablica 27. PoÄetna tablica za primjer kruĆŸenja....................................................................... 44
Tablica 28. Prva iteracija za primjer kruĆŸenja. ......................................................................... 44
Tablica 29. Druga iteracija za primjer kruĆŸenja. ...................................................................... 44
Tablica 30. TreÄa iteracija za primjer kruĆŸenja. ....................................................................... 45
Tablica 31. Äetvrta iteracija za primjer kruĆŸenja. .................................................................... 45
Tablica 32. Peta iteracija za primjer kruĆŸenja. ......................................................................... 45
58
Tablica 33. Ć esta iteracija za primjer kruĆŸenja. ....................................................................... 46
Tablica 34. PoÄetna tablica za primjer nedopuĆĄtenog rjeĆĄenja. ................................................ 47
Tablica 35. Prva iteracija za primjer nedopuĆĄtenog rjeĆĄenja. ................................................... 48
Tablica 36. Druga iteracija za primjer nedopuĆĄtenog rjeĆĄenja. ................................................ 48
Tablica 37. Äetvrta iteracija za primjer neograniÄenog rjeĆĄenja .............................................. 50
Tablica 38. PoÄetna tablica za primjer viĆĄestrukog optimalnog rjeĆĄenja. ................................ 52
Tablica 39. Prva iteracija za primjer viĆĄestrukog optimalnog rjeĆĄenja. ................................... 52
Tablica 40. Druga iteracija za primjer viĆĄestrukog optimalnog rjeĆĄenja. ................................. 53
Tablica 41. Prvo alternativno rjeĆĄenje optimalnog programa. ................................................. 53