You are on page 1of 5

OPTIMIRANJE (skripta za 2. kolokvij, 2016./2017.

, Levanić)

općenito:
- sve var. su >=0 (kod graf. metoda se gleda samo I. kv.), osim ako nije rečeno drugačije; to se ne gleda kao ogr.
- množenjem nejednadžbe s -1 okreće se znak nejednakosti

GRAFIČKA METODA NP-a


- metoda ima praktičnu primjenu za maksimalno dvije varijable
- odredi se izgled krivulje za F(x)=0
- pravci se prevedu u segmentni oblik (na desnoj strani mora biti 1)
- odrede se vrhovi područja izvedivosti
- F(x) je kod NP-a >=0
- svi vrhovi se uvrste u F(x) da se vidi koji vrh daje Fmin, a koji Fmax (ispišu ne njegove koordinate)
- grafička kontrola: vrijednost od F(x) se povećava do kad ne dođe do prvog (F min), odnosno posljednjeg vrha
područja izvedivosti (ako je ono otvoreno, onda možda neće postojati Fmin i/ili Fmax)
 NP ne prepoznaje što je lokalni, a što globalni ekstrem
 kod NP-a je rješenje realno na rubu, ali ga mi radi jednostavnosti tražimo u vrhu
 konkavno = oblik šalice okrenut tako da se ne može piti kava
 područje izedivosti kora biti konkavni poliedar
 pravac je i konkavna i konveksna funkcija

METODA ELIMINACIJE NP-a


- metoda ima praktičnu primjenu za maksimalno pet varijabli
- bilo koja varijabla iz jednog linearnog ograničenja sa znakom jednakosti se ubaci u F(x), F(x) se derivira po
varijabli ili varijablama koje su ostale, odredi/e se stacionarna/e koordinata/e te se uvrsti/e u korišteno
ograničenje da se dobije stacionarna točka
- iz početne F(x) se odrede sve parc. der. 1. i 2. reda (npr. F12 je der. F(x) po x1 i x2), ovisno o tome koliko ima
varijabli, te se na kraju, ako je to potrebno, kod parc. der. 2. reda umjesto varijabli uvrste koordinate stac. točke
- računamo sve D-ove do onog s maksimalnim indeksom (maks. indeks uz D je određen brojem varijabli),
npr. ako imamo x1, x2 i x3, onda računamo D1, D2 i D3
- D je determinanta koja sadrži sve parc. der. 2. reda (samo 2.), a indeksi u determinanti su kao u matrici (npr.
za D2: u prvom redu su F11 i F12, a u drugom F21 i F22)
- prema Schwarzovom teoremu je npr. F112=F121=112
- uvjet da je stac. točka minimum: svi D-ovi > 0
- uvjet da je stac. točka maksimum: neparni D-ovi (npr. D1) < 0 , a parni D-ovi > 0

MATEMATIČKI MODEL LP-a


- traže se F(x) i ograničenja: F(x) = svi (c j*xj) po j teže u min/max, ogr.: svi (aij*xj - bi) po i i j su <=/=/>= 0
- xj = strukturne var. ili var. odlučivanja (one se ne mogu odrediti iz proizvodnje); [kom], [kg] ili
[cjelina]
- cj = jedinični profit ili jedinični trošak; [cijena/kom], [cijena/kg] ili [cijena/cjelina]
- aij = normativi; dobiven ili potrošen jedinični resurs (vrijeme, materijal, postotak ili cjelina po
jedinici); [h/kom], [h/kg], [h/cjelina], [materijal/kom], [materijal/kg], [materijal/cjelina], [%/kg],
[%/kom] ili [%/cjelina]
- bi = količina raspoloživog resursa (vrijeme, materijal, postotak ili cjelina); [h], [materijal], [%]
ili [cjelina]
- matrični zapis: F(x) = CT*X , A*X <=/=/>= B

GRAFIČKA METODA LP-a


- za neki F(x)<0 i neki F(x)>0 se preko sjecišta s pravcem istog ograničenja odredi u koju stranu se
pomiče graf kada F(x) pada, a u koju kada raste
- dalje je sve isto kao i kod grafičke metode NP-a, osim sljedećeg: F(x) može biti i <0, svi F(x)-ovi
su međusobno paralelni, ako se pravac od F(x) podudara s pravcem ogr. onda ima beskonačno mnogo rj.
- kod zadataka sa smjenama se varijable gledaju za onaj period kada smjena završava
- kod zadataka s masom ili cjelinom je uvijek jedno ogr. da sve varijable daju ukupnu masu ili cjelinu
 kod LP-a su ekstremi uvijek globalni

SIMPLEKS METODA LP-a (NUMERIČKA METODA LP-a)


- metoda ima praktičnu primjenu za minimalno tri varijable
- da bismo mogli koristiti simpleks metodu, moramo napraviti kanonski oblik: kod ograničenja trebamo
imati sve bi s desne strane i pozitivne (ako nisu, onda se cijelo ogr. pomnoži s -1) te samo znakove
jednakosti, a to postižemo tako da kod <= s lijeve strane dodajemo yi, kod = -yi+wi, a kod >= wi ; kod F(x) se
doda 0*(svi yi) te +-M*(svi wi), pri čemu je +M kada se traži minimun, a –M kada se traži maksimum
 yi su dopunske varijable (predstavljaju neiskorišteni raspoloživi resurs)
 wi su artificijalne varijable (predstavljaju manjak raspoloživog resursa), nemaju nikakvo tehnološko
značenje jer nisu realne (uvode se samo da bi model odgovarao)
 M je neki ogroman broj koji osigurava da kod zj-cj apsolutno najveću vrijednost imaju artificijalne
varijable; njih treba izbaciti iz baze jer one nisu realne varijable pa sve dok se nalaze u bazi nećemo
moći dobiti realnu vrijednost funkcije cilja (one se neće nužno izbaciti prve)
 prvom iteracijom se dobije prvo osnovno rješenje, drugom drugo itd., pri čemu se svakom iteracijom
dobiva optimalnije rješenje (rješenje postaje realno kada je vrijednost zj-cj u stupcu bi veća od nule i kad
ne sadrži M, tj. kada smo ušli u područje izvedivosti); posljenje osnovno rješenje se naziva optimalnim
 pošto se svakom iteracijom dobiva optimalnije rj., u dva uzastopna koraka se ne može pojaviti isto rj.
 početni uvjet je da su vrijednosti svih var. odlučivanja (xj-eva) na početku 0; to ne utječe na tablicu, ali
označuje da su početni raspoloživi resursi jednaki vrijednostima yi-eva i wi-eva
 aij polja su ona desno od trećeg stupca i ispod drugog retka
ispunjavanje tablice:
- u drugi redak se upisuju sve korištene var., a u prvi redak njihovi pripadni koeficijenti iz F(x)
- u drugi stupac se upisuju neki yi-evi i wi-evi, a u prvi stupac njihovi pripadni koeficijenti iz F(x), a to se radi na
sljedeći način: najprije se u drugi stupac upišu svi y i-evi i wi-evi, a onda se u polja aij upišu vrijednosti yi-eva i
wi-eva koji se pojavljuju u ograničenjima u kojima su i yi-evi i wi-evi iz priradajućih radaka; oni stupci kod kojih
je vektor jedinični (stupac s -1 nije jedinični vektor) pokazuju da se njihove varijable (koje su im u drugom
retku) koriste u bazi, a ostale ne; zapišu se točni retci, pri čemu je broj redaka sada jednak broju ograničenja
(npr. ograničenje s yi i wi će u bazi imati samo wi jer postoji manjak raspoloživih resursa pa je yi nepotreban)
pa se naznači koji redak odgovara kojem ograničenju
 u retcima yi i wi za stupce yi i wi može biti više brojeva u jednom retku, ali samo jedan u jednom stupcu
- prva dva stupca su odvojena od ostalih, a jedino što ih povezuje s ostalima je redni broj ograničenja
- za svako ograničenje se u polja bi zapišu vrijednosti raspoloživih resursa
- za svako ograničenje se u polja aij zapišu koeficijenti uz njima pripadajuće var. iz drugog retka
- zj-cj se kod stupca bi računa kao suma umnožaka polja u tom stupcu i njima pripadnih polja u stupcu c j, dok se
kod ostalih stupaca još oduzima vrijednost iz prvog retka tih stupaca
 redak zj-cj se naziva "prvi simpleks kriterij" te prikazuje vrijednost funkcije cilja (ako je ona negativna i/ili
sadrži M, onda u bazi imamo neke varijable koje treba izbaciti da bi rješenje uopće bilo realno, tj. još nismo
ušli u područje izvedivosti)
 stupac bi/aij se naziva "drugi simpleks kriterij"
- kod određivanja minimuma želimo što više smanjiti F(x) (troškove), a kod određivanja maksimuma želimo
što više povećati F(x) (profit), za što trebamo promijeniti varijable u bazi
- prilikom određivanja minimuma/maksimuma, kriterij za ulazak u bazu je najpozitivniji/najneg. broj
(oni najviše pridonose smanjenju/povećanju F(x)) u retku zj-cj (vodeći stupac; tu je isključena vrijednost kod
stupca bi), a za izlazak iz baze najmanji definirani poz. broj (>0, ne 0) u stupcu bi/aij (vodeći redak), pri
čemu se aij gleda za vodeći stupac
- u stupcu bi sve vrijednosti moraju biti pozitivne
- ako se u stupcu bi/aij dobije nedefinirana vrijednost, ona se označi s - i ne gleda se
- ako se u stupcu bi/aij dobije negativna vrijednost, ona nema utjecaja pa se ni ne gleda
- ako je u stupcu bi/aij sve nedef. ili negativno, onda područje izvedivosti nije dovoljno ograničeno
- ako su vrijednosti zj-cj iste za više stupaca (osim kod stupca bi), onda vodeći stupac biramo proizvoljno,
pri čemu može doći do degeneracije (iste var. mogu cijelo vrijeme ulaziti u bazu i izlaziti iz nje)
- ako je varijabla koja se izbacuje neki wi, onda se u sljedećem koraku stupac s tom varijablom križa (jer
se više nikad neće pojaviti u bazi), a ako je bilo što drugo, onda se ne križa
- u bazu ulazi određena varijabla (iz drugog retka) ulazi sa svojim cj (iz prvog retka)
- najprije se provodi "prvi simpleks kriterij" pa "drugi simpleks kriterij" te se na sjecištu vodećeg stupca i
vodećeg retka nalazi stožerni element
- prvi i drugi redak te prvi i drugi stupac se nikad ne mijenjaju, osim kad se križa neki stupac od w i ili kad se
izbacuje neki redak iz baze
- u vodećem retku se svi elementi osim prva dva podijele sa stožernim elementom (stož. el. postaje 1)
- u vodećem stupcu svi elementi osim prva dva i stožernog elementa postaju 0
- kad je u vodećem retku neki element jednak 0, onda se cijeli pripadajući stupac prepiše iz prošlog koraka
- kad je u vodećem stupcu neki element jednak 0, onda se cijeli pripadajući redak prepiše iz prošlog koraka
- svim preostalim elementima (tu se misli i na one iz trećeg stupca) je vrijednost polja jednaka sljedećim
vrijednostima iz prošlog koraka: [polje] - [polje u istom retku VS-a] * [polje u istom stupcu VR-a] / [stož. el.]
- metoda završava (posljednje dobiveno rješenje je optimalno; postigli smo uvjet zaustavljanja) kada su
u zj-cj retku svi brojevi negativni za minimum, odn. pozitivni za maksimum (tu je isključena vrijednost
kod stupca bi jer da bi rješenje bilo realno, on mora biti pozitivan), što znači da više nema niti jedne var.
čijim ulaskom u bazu bi se troškovi povećali, odn. profit smanjio; dalje se ne određuju b i/aij jer nema više var.
koju bi trebalo izbaciti iz baze
- ako je metoda završena, a u retku zj-cj je negdje nula (osim kod stupca bi), onda postoji više mogućih rj.
- rezultati se iščitavaju iz stupca bi: vrijednosti prikazuju vrijednosti varijabli u pripadnim retcima; u retku z j-cj i
stupcu bi se kod realnog rješenja neće nalaziti M, a vrijednost će biti poz. (za minimum će biti što manji poz.
broj, a za maksimum što veći poz. broj)
- na kraju se vrijednosti mogu uvrstiti u ogr. da se vidi jesu li rezultati dobri, pri čemu se za wi uzima 0

DUALNI MODEL LP-a


 primar je početni sustav (F(x) i poč. ogr.), a dual je transformirani sustav (Φ(y) i transf. ogr.)
 broj varijabli odlučivanja pretvara u broj ogr. i obrnuto pa se koristi se kada imamo veći broj
ograničenja nego varijabli odlučivanja (lakše je rješavati s više var. odlučivanja nego s više ogr.)
- sva ogr. u primaru moraju biti <=, odn. u dualu >= te nije bitno ima li b i u primaru, odn. cj u dualu
pozitivnu ili negativnu vrijednost
- ako je ograničenje u primaru sa znakom >=, onda se ono množi s -1 da se znak nejednakosti okrene
- ako je ograničenje u primaru sa znakom =, onda se to rastavi na jedno ogr. s <= (ograničenje i') i na
jedno s >= (ograničenje i''), pri čemu će se prvo ograničenje (s <=) grupirati uz yi', a drugo (s >=) uz yi'', -
- vrijedi da je yi = yi' – yi'' i da su svi koeficijenti s '' jednaki negativnim vrijednostima koeficijenata s '
- transformacije: F(x) u Φ(y), min u max i obrnuto, cj u bi i obrnuto, xj u yi, <= u >=
- kod funkcije cilja se sada ne sumira po j nego po i, a kod ogr. je zamijenjen redoslijed sumiranja po i i j
 u primaru se i mijenja vertikalno (po ograničenjima), a j horizontalno, dok je kod duala obrnuto
 razlike u odnosu na simpleks metodu: ogr. moraju biti sa znakom <=, b i može biti i poz. i neg. te se koristi
yi, a ne yj (jer je nastao transformacijom pa mu indeks mora odgovarati oznaci po kojoj se sumira)

TRANSPORTNI MODEL LP-a


- izvori sredstava = ishodišta (R1, R2, ..., Ri); imaju kapacitet xi0
- korisnici izvora sredstava = odredišta (S1, S2, ..., Sj); imaju kapacitet x0j
- xij = količina prevezenog materijala
- cij = trošak transporta jedinice materijala (jedinični trošak transporta materijala)
- F(x) = suma cij*xij po i i po j, uvijek se traži minimum jer gledamo trošak transporta
- ograničenja se odnose na ponudu (suma xrj po i je jednaka xr0; r je broj redova) i na potražnju (suma xis
po i je jednaka x0s; s je broj stupaca)
- i se mijenja vertikalno (po ograničenjima), a j horizontalno
- kod zatvorenog modela transporta je ponuda jednaka potražnji (suma xi0 po i je jednaka sumi x0j po j), a kod
otvorenog modela nije
 otvoreni model transporta se zatvara uvođenjem fiktivnog ishodišta ili odredišta (ovisno o tome gdje
nedostaje materijala), pri čemu fiktivno ishodište ili odredište ima cijene jednake nuli i kapacitet koji nedostaje
- cijene se upisuju u donje desne dijelove polja xij (ne i u polja xi0 i x0j)
- broj nezavisnih jednadžbi je r+s–1
- xij moraju općenito biti >=0, a xij koji su >0 se nazivaju bazne varijable
- kada je broj nezavisnih jedn. >= od broja baznih varijabli, onda je osnovno rješenje nedegerirano (u redu je)
- kada je broj nezavisnih jedn. < od broja baznih varijabli, onda je osnovno rješenje degenerirano: na
proizvoljna polja xij se postavi onoliko fiktivnih baznih varijabli (ε, vrijednost im je zanemarivo mala) koliko
baznih varijabli nedostaje da osnovno rješenje bude nedegenerirano
- prva faza modela: određivanje početnog rješenja (metodom sjeverozapadnog kuta ili Vogelovom metodom,
potrebno je imati zatvoreni model transporta)
- druga faza modela: iteracija provjera je li dobiveno rješenje optimalno i traženja optimalnijeg ako nije
(„Stepping-stone“ metodom, potrebno je imati nedegenerirano osnovno rješenje)
- one varijable koje nisu bazne (one koje su jednake nuli) se radi jednostavnosti neće ni zapisivati

METODA SJEVEROZAPADNOG KUTA


- potrebno je imati zatvoreni model transporta
- krene se od x11 i uzima se manja vrijednost od ponude i potražnje za to polje (manji kapacitet), pri čemu se ide
samo prema dolje ili prema desno (ovisno o tome koji kapacitet nije iskorišten za to polje); dalje se koriste
neiskorišteni kapaciteti
- rezultat je staza baznih varijabli od SZ kuta do JI kuta, dok sva ostala polja imaju vrij. varijable jednaku nula
 može se dogoditi da je na stazi neka varijabla 0 (nije bazna) te se tada ide dalje bilo dolje bilo desno
- na kraju svakog koraka se odredi trenutni F(x): F(x) = suma c ij*xij po i i po j
- kontrola: na kraju moramo imati iskorištene sve kapacitete

VOGELOVA METODA
- potrebno je imati zatvoreni model transporta
 za svako ishodište i odredište se odredi kazna (u smislu cijene) za nekorištenje najjeftinijeg puta
- kazna se za redak/stupac računa kao razlika 2. i 1. najmanje cijene u tom retku/stupcu
- kazna za prvi korak se u stupac ci0', odn. redak c0j', kazna da drugi korak u stupac ci0'', odn. redak c0j'' itd.
- ako u retku/stupcu postoji više istih najmanjih cijena, onda je kazna za taj redak/stupac jednaka nuli
- u retku ili stupcu (gleda se oboje) s maksimalnom kaznom se pronađe polje s minimalnom cijenom, u
koje se unosi manja vrijednost od ponude i potražnje za to njega (manji kapacitet); sva ostala polja u
retku ili stupcu gdje je iskorišten kapacitet imaju vrijednost varijable jednaku nuli
- kada se riješi redak/stupac, onda se on više ne gleda, a nove kazne za preostale retke/stupce (za retke/
stupce bez tog riješenog) jednake kao i one iz prošlog koraka (jer se u retcima/stupcima nije ništa
promijenilo)
- ako postoji više istih maksimalnih kazni, onda se za te kazne (samo za njih jer jedino između njih treba
dalje birati) određuju sekundarne kazne, koje se upisuju u gornji desni dio polja kazni na koju se odnose
- sekundarna kazna se za redak/stupac računa kao razlika 2. najmanje cijene u tom retku/stupcu i 1.
najmanje cijene u stupcu/retku kojem to polje pripada (2. najmanja cijena u retku/stupcu ne mora biti i 2.
najmanja cijena u pripadnom stupcu/retku jer se tamo cijene gledaju zasebno)
- maksimalna sekundarna kazna određuje samo koja je kazna maksimalna te se s tom informacijom
nastavlja gdje se stalo
- ako je negdje više drugih najmanjih cijena jednako, onda je svejedno koju koristimo
- kada ostane samo jedan redak/stupac za riješiti, tada se njegove varijable unesu direktno iz kapaciteta
- na kraju svakog koraka se odredi trenutni F(x): F(x) = suma c ij*xij po i i po j
 Vogelova metoda daje optimalnije početno rješenje od metode SZ kuta
 Vogelovom metodom se ne dobije staza baznih varijabli kao metodom SZ kuta

„STEPPING-STONE“ METODA
- potrebno je imati nedegenerirano osnovno rješenje
- za polja bez bazne varijable (nezauzeta polja), pri čemu se i ε gledaju kao bazne varijable, određuju se
relativni troškovi (dij), veličine koje pokazuju koliko bi se promijenili ukupni troškovi transporta ako bi se
jedinica robe transportirala preko određenog nezauzetog polja
 fiktivne bazne varijable se postavljaju proizvoljno, najbolje ondje gdje mislimo da će nam najviše olakšati
- fitkivne bazne varijable imaju zanemarivo malu vrijednost pa se kod računanja ta vrijednost zanemaruje
- pozitivne vrijednosti relativnih troškova znače povećanje troškova transporta, a negativne smanjenje pa se
optimalno rješenje dobiva kada u rješenju ne postoji niti jedan negativan relativni trošak (svi su >=0)
- početno polje je neko nezauzeto polje za koje želimo izračunati relativni trošak, a ostala polja na koja se skače
su polja s baznom varijablom
- po poljima se skače na sljedeći način: od početnog i od svakog drugog polja skačemo na ono najdalje
(moramo tako, osim u zadnjem skoku) koje će nam omogućiti da s njega skočimo dalje, pri čemu možemo
skakati samo naprijed, lijevo ili desno (ne možemo skočiti naprijed pa odmah zatim u rikverc)
- na kraju moramo zatvoriti petlju pa je posljednje polje ono s kojeg skačemo na poč. polje (zato tada ne
vrijedi da moramo skočiti na najdalje moguće polje); petlja se smije križati i svejedno je u koju stranu ide
 najbolje je u petlji imati čim manje polja da se čim lakše izračuna relativni trošak, a ionako nije bitno koliko
baznih varijabli koristimo, nego da izračunamo sve relativne troškove
- kontrola: moramo imati parni broj polja koje smo koristili u petlji
- relativni troškovi se računaju na sljedeći način: [cijena početnog polja] – [cijena 2. polja] + [cijena 3.
polja] – [cijena 4. polja] + ...
- želimo preusmjeriti tok transporta da smanjimo trošak, tj. želimo od određenog polja s baznom varijablom
napraviti nezauzeto polje, a od nezauzetog polja s najnegativnijim relativnim troškom polje s baznom var.
- kada smo izračunali sve relativne troškove, odredimo najnegativniji i za njegovu petlju odredimo nove
varijable na sljedeći način: vrijednosti var. poč. polja dodamo x, vrijednosti var. 2. polja oduzmemo x itd.
- ako postoji više istih najnegativnijih relativnih troškova, onda se odabire onaj kod kojeg će se pojaviti veći x
jer će to dati bolje poboljšanje (manji F(x))
- uz ε ne smije biti minus x, već jedino plus x
- x je jednak najmanjoj vrijednosti bazne varijable od koje se oduzima pa na tom polju sada više nećemo
imali baznu varijablu
- bazna varijabla se sada pojavljuje na polju koje je prije bilo nezauzeto
- odredimo novi F(x) na sljedeći način: F(x) = [stari F(x)] + [najneg. rel. trošak]*x
 novi F(x) će sigurno biti manji od starog
- izračunamo sve nove relativne troškove da vidimo je li dobiveno rješenje optimalno (svi novi rel. troškovi su
>=0) pa ako nije, ponovimo postupak

You might also like