You are on page 1of 14

SAOBRAĆAJNI FAKULTET TRAVNIK

Predmet: OPERACIONA ISTRAŽIVANJA

SEMINARSKI RAD
DINAMIČKO PROGRAMIRANJE

PROFESORI: STUDENT:

Doc.dr.sc. Sead Rešić Armin TRAKO, II-S-28/17

Travnik, februar 2018.


SADRŽAJ stranica

1. UVOD ................................................................................................................................. 2
2. PRIRODA DINAMIČKOG PROGRAMIRANJA ........................................................ 3
3. VIŠEETAPNI PROCESI ODLUČIVANJA ................................................................... 6
4. OPŠTA POSTAVKA ZADATAKA DINAMIČKOG PROGRAMIRANJA .............. 7
5. PRINCIP OPTIMALNOSTI I FUNKCIONALNA JEDNAČINA .............................. 8
6. OPŠTA PROCEDURA RJEŠAVANJA PROBLEMA DINAMIČKIM
PROGRAMIRANJEM .......................................................................................................... 10
7. ZAKLJUČAK ................................................................................................................. 12
LITERATURA ....................................................................................................................... 13
1. UVOD

Dinamicko programiranje spominje se kao tehnika u operacijskim istrazivanjima u okviru


matematickog optimiranja i kao algoritamska tehnika u racunalnom programiranju. U ovom
radu je prikazan prakticni pogled na dinamicko programiranje, specificno u kontekstu
primjene na pronalazenje optimalnih rjesenja malih instanci problema rasporedivanja.

U primjeni dinamickog programiranja, slicno kao kod primjene tehnike podijeli-pa-vladaj,


dobivena instanca problema sustavno se razlaze na jednostavnije instance istog problema.
Rjesenja jednostavnijih instanci koriste se onda za rjesavanje pocetne instance problema.
Medutim, dok je cilj tehnike podijeli-pa-vladaj instancu podijeliti na nezavisne instance,
dinamicko programiranje primjenjivo je upravo u slucaju kada se jednostavnije instance
preklapaju.

Dinamickim programiranjem moze se naivne algoritme za mnoge kombinatoricke probleme


znacajno ubrzati uz vecu potrosnju spremnickog prostora. Iako formalno neispravno, za
intuiciju se moze reci da se dinamickim programiranjem algoritam eksponencijalne
vremenske slozenosti svodi na polinomnu vremensku slozenost uz povecanje prostorne
slozenosti za polinomni faktor. Cak i kada je visoka prostorna slozenost prihvatljiva,
dinamicko pro- gramiranje cesto nije prikladno za rjesavanje nekog problema, tj. ne donosi
ubrzanje u izvodenju. U radu su opisani uvjeti koje mora ispunjavati neki algoritam kako bi se
njegova vremenska slozenost mogla smanjiti dinamickim programiranjem.

U najsirem smislu, problemi rasporedivanja traze optimalnu organizaciju zadataka na nekom


skupu strojeva, uz razlicite uvjete nad zadacima i razlicite funkcije cilja. Razlicite inacice
problema rasporedivanja prirodno se pojavljuju u organizaciji proizvodnje, ali i u racunalnim
sustavima, na primjer u rasporedivacu zadataka u operacijskom sustavu.

2
2. PRIRODA DINAMIČKOG PROGRAMIRANJA

Dinamičko programiranje u okvirima operacionih istraživanja razvijeno je za rješavanje


specifičnih zadataka odlučivanja koji se rastavljaju na više manjih zadataka koji se mogu
jednostavnije rješavati. Za razliku od linearne, nelinearne ili višekriterijalne optimizacije gdje
se do rješenja dolazi za problem, odnosno model kao cjelinu, dotle se kod dinamičkog
programiranja osnovni problem rastavlja na djelimične probleme, koji se rješavaju
sekvencijalni jedan za drugim, odnosno korak po korak ili etapa po etapa. Upravo to etapno
rješavanje osnovnog problema odlučivanja je osnovna karakteristika dinamičkog
programiranja. Osnove dinamičkog programiranja postavio je Bellman 1957. Godine.

Proces dekomponovanja rješavanja problema odlučivanja na etape koje su međusobno


povezane proizilazi iz specifičnosti onih zadataka koji obuhvataju vrijeme kao faktor, kao i
zadataka koji po svojoj prirodi zahtjevaju postepeno i višeetapno (višefazno) odlučivanje.
Opšti zadatak optimizacije višeetapnih procesa odlučivanja sastoji se u tome da je potrebno
odgovoriti na to kako dobiti optimalne odluke (rješenja) po etapama da bi na kraju
obezbjedila optimalnost rješenja za problem odlučivanja kao cjelinu.

S obzirom da po etapama postoji više mogućnosti odluka i stanja procesa kao posljedica
takvih odluka, koje se moraju kombinovati za cjelokupan višeetapni proces, neophodno je
izgraditi takve metode koje će obuhvatiti sve moguće kombinacije odluka u stanja procesa po
etapama da bi se dobilo optimalno rješenje za problem odlučivanja kao cjelinu. Za rješavanje
problema čija je imanencija veliki broj kombinacija koriste se tzv. Metode drveta odlučivanja
u koje spadaju, pored dinamičkog programiranja, i metoda grananja i odgrađivanja, metoda
potpunog prebrojavanja, metoda ograničenog prebrojavanja i slično. Sve ove metode imaju
osnovu u principu prebrojavanja, pdnosno u izračunavanju svih mogućih rješenja i izboru
najboljeg u smislu usvojenog kriterija. Proces prebrojavanja ide tako da se isključuju rješenja
ili djelimična rješenja čija je neoptimalnost utvrđena. Po strukturi najjednostavnija metoda
drveta odlučivanja je metoda potpunog prebrojavanja. Ona se sastoji od izračunavanja efekata
svih mogućih odluka i stanja kao posljedica takvih odluka po svakoj grani u svakoj etapi i
izbora najboljeg rješenja u skladu sa usvojenim kriterijima.

Ideja dinamičkog programiranja pretpostavlja da orices prebrojavanja po etapama teče strogo


paralelno, a između etapa sekvencijalno. U ovakvom procesu postavljaju se grane drveta
odlučivanja paralelno jedna drugoj što znači da se proces odvija simultano.

Kod dinamičkog programiranja se napreduje postepeno po etapama na kojima se uvijek


izračunavaju ukupna rješenja, odnosno stanja kao posljedica takvi rješenja. Tako se u svakoj
etapi upoređuju sva „sadržajno identična“ djelimična rješenja (analogna sadržaja), te odbacuju
ona koja sa sigurnošću ne vode boljem rješenju od nekog drugog „sadržajno identičnog“
djelimičnog rješenja.

3
Prema tome, zadaci koji se mogu predstaviti u vidu višeetapnih procesa odlučivanja
predstavljaju predmet dinamičkog programiranja. Mnogi zadaci, ne samo iz poslovnog
odlučivanja, već i u mnogim drugim oblastima kao što je fizika, tehnika, bilogija, vojne i
druge oblasti mogu se reprezentovati u obliku višeetapnih procesa ne koje se može primjeniti
dinamičko programiranje. Znači, dinamičko programiranje predstavlja posebnu matematičku
metodu optimizacije rješenja specijalno prilagođenih višeetapnim procesima odlučivanja.

Višeetapni proces obično podrazumjeva proces koji se ne odvija u vremenu i koji se može
dekomponovati na više etapa ili koraka. Međutim, kod nekih problema dinamičkog
programiranja procesi koji ne sadrže vremensku dimenziju mogu se dekomponovati na etape
vještački, kao npr. Proces raspodjele jednorodnog resursa.

Pristup dinamičkog programiranja u rješavanju problema odlučivanja ima 3 osnovne


karakteristike:

 Etapnost u dobivanju optimalnih rješenja – ova osobina dinamičkog programiranja


sastoji se u tome da se dobivanje rješenja u odnosu na višeetapne procese posmatra ne
kao jedinični akt, nego kao cjelina uzajamno povezanih etapnih rješenja, odnosno
odluka.

U terminologiji dinamičkog programiranja bilo koji niz uzajamno povezanih etapnih rješenja
naziva se strategija. Cilj optimalnog rješavanja modela je izbor strategije koja obezbjeđuje
dobivanje najboljih efekata sa aspekta izabranog kritetija, odnosno izbor optimalne strategije.
Suština dinamičkog programiranja sastoji se upravo u tome da se umjesto traženja optimalnog
rješenja u jednom koraku (odjednom) predpostavlja nalaženje optimalnih rješenja za nekoliko
prostih povezanih zadataka (etapa) na koje se raščlanjuje osnovni zadatak.

 Nezavnisnost optimalnog rješenja u nekoj etapi od predhistorije – Dinamičko


programiranje ne uzima u obzir način na koji se optimizacijom procesa postiglo
sadašnje stanje, već se optimalno rješenje izabire samo sa obuhvatanjem faktora koji
karakterišu proces u datom trenutku.

Npr. Ako se neki vozač koji je krenuo iz Sarajeva u Zagreb našao u Tuzlii i ako je odlučio da
izabere najkraći put do Zagreba, on dobiva rješenje bez utvrđivanja na koji način, kada i
kojim putem je on stigao u Tuzlu, već se rukovodi samo pozicijom Tuzle u opštoj shemi ka
Zagrebu.

 Izbor optimalnog rješenja u svakoj etapi mora uvažavati njegove posljedice u


budućnosti – optimizacijom procesa u svakoj etapi se smiju se zaboraviti sljedeće
etape.

Iz ovoga slijedi da optimizaciju višeetapnog procesa treba vršiti tako da se prilikom


optimizacije svake etape utvrđuje ne samo korist koja bi se dobila u zadatoj etapi, nego korist
koja bi se dobila po završetku cjelokupnog višeetapnog procesa. Taj princip izbora rješenja u
dinamičkom programiranju ima ključnu ulogu i naziva se princip optimalnosti, koji će se u
nastavku detaljno obrazložiti.

4
U primjeni dinamičkog programiranja u rješavanju konkretnih poslovnih problema
neophodno je za svaki razmatrani proces konstruisati matematički model sa precizno
definisanom funkcijom cilja čija se ekstremna vrijednost traži, kao i ograničenja koja se
obavezno moraju uzeti u obzir. Metoda dinamičkog programiranja zahtjeva obavezno
formulirasanje funkcionalne jednačine primjenom principa optimalnosti. Funkcionalna
jednačina bi morala obuhvatiti u svakoj etapi i posljedice trenutnog rješenja, odnosno odluke
na budućnost procesa. Kao izuzetak pojavljuje se posljednja etapa sa kojom se proces
završava. Proces optimizacije u posljednoj etapi najčešće se provodi uvođenjem određenih
predpostavki kojima će posljednja etapa, sama po sebi donijeti maksimalni efekat. U nastavku
rješavanja optimalnom rezultatu u posljednjoj etapi treba dodati predposljednju etapu tako da
bi rezultat tih dviju etapa bio optimalan. Korištenjem funkcionalne jednačine od posljednje do
prve etape omogućuje se postepeno dobivanje optimalnih rješenja za moguća ulazna stanja
procesa. Da bi se dobilo optimalno rješenje u posljednjoje etapi moraju se znati stanja procesa
kojima će se završiti predposljednja etapa, Za moguće završetke predposljednje etape nalaze
se rješenja pri čemu je efekat u posljednoj etapi optimalan. Tako optimalno rješenje koje je
pronađeno pri ograničenju da se prethodna etapa završila određenim stanjima procesa, naziva
se uslovno optimalnim rješenjem.

Na isti način se provodi optimizacija rješenja i u predposljednoj etapi, tj. neophodno je utvriti
sva moguća stanja procesa kojim bi se mogla završiti etapa koja prethodi predposljednoj i za
koja se od mogućih rješenja izabire takvo rješenje u predposljednoj etapi da bi efekti za
posljednje dvije etape bili najbolji. U suštini u svakoj etapi optimizacije uzimaju se u obzir
rezultati uslovne optimizacije dobijeni u prethodnoj etapi. Ako smo do kraja ka početku
optimiziranog procesa odredili uslovno optimalna rješenja za svaku etapu i izračunali
odgovarajuće efekte, onda ostaje da se prođe cijeli proces od prve do posljednje etape i
pročita optimalna strategija.

Inače u dinamičkom programiranju indeksacija etapa i stvarnih vremenskih perioda može se


vršiti u direktnom pravcu (istosmjerno) što zavisi od samog problema. Češći je slučaj da etape
i vremenski periodi prilikom rješavanja problema dinamičkim programiranjem ide u
suprotnom smjeru, odnosno posljednji period – prva etapa, predposljedni period – druga
etapam, itd.

5
3. VIŠEETAPNI PROCESI ODLUČIVANJA

S obzirom da su višeetapni procesi odlučivanja u središtu interesa metode dinamičkog


programiranja , neophodno ih je detaljnije definisati i obrazložiti. Ako obilježimo sa s 0  s
______
početno stanje procesa, a sa si , i  1, N stanja procesa u uzastopnim vremenskim trenucima i
ako postoji relacija si 1   (si ), s0  s, i  0,1,2...

koja predstavlja skup vektora kao reprezentaciju ponašanja procesa u diskretnim trenucima
vremena i=0,1,2,... tada skup vektora definise jednu specijalnu vrstu procesa koja se naziva
višeetapni proces.

Relacija govori o transformaciji stanja procesa s i u stanje si 1 samo po sebi. Ako se proces
nalazi u stanju s i onda je njegovo stanje si 1 u sljedećoj etapi određeno ne samo vektorom s i
nego i rješenjem u i koje je dobiveno u i-toj etapi. Na taj način se relacija može napisati kao

si 1   ( si , ui )

Gdje je  transformacija ili pravilo prelaska procesa iz i-tog u j-to stanje pod uticajem
izabranog rješenja.

U literaturi se može naći više kriterija za klasifikaciju višeetapnih procesa odlučivanja.


Prezentovat ćemo sljedeće:

- U zavisnosti od parametra N višeetapni procesi se dijele na konačne i beskonačne.


Procesi kod kojih je broj etapa konačan broj nazivaju se konačni, dok u suprotnom
slučaju su beskonačni.
- Iz aspekta definisanosti promjenljivih s obzirom na vrijeme razlikuju se vremenski
diskretni nasuprot vremenski kontinuiranim procesima. Vremenski diskretna
promjenjiva definisana je samo skupom diskretnih tačaka u prostoru. Procesi u kojima
su promjenjive vremenski diskretne nazivaju se vremenski diskretni procesi, dok kod
vremenski kontinuiranih procesa promjenjive su vremenski kontinuirane.
- U zavisnosti od toga da li transformacija  zavisi od vremena, razlikuju se stacionarni
i nestacionarni procesi. Ako transformacija  zavisi od vremena, tj. si 1   ( si , ui )
i=0,1,2,...
- Klasifikacija determinističkih nasuprot stohastičkih višeetapnih procesa ukazuje na to
kako je vrijednost funkcije specificirana vrijednošću njenog argumenta. Npr. Funkcija
prihoda od investicija je deterministička funkcija ako je egzaktno poznat odnos
između utrošenog novca i dobivenog prihoda. U stvarnosti, iznos prihoda od uloženog
novca zavisi i od drugih nepredvidivih faktora kao što su tržišna konjunktura, kretanje
mode, vremenske prilike i sl. Takvi nepredvidivi faktori mogu se predstaviti
stohastičkim (slučajnim) promjenjivim. U tom slučaju iznos očekivanog prihoda moće
biti realnije opisan funkcijom iznosa uloženog novca i stohastiče promjenjive.

6
4. OPŠTA POSTAVKA ZADATAKA DINAMIČKOG
PROGRAMIRANJA

Predpostavimo da se proces odlučivanja prirodno ili vještački dekomponuje na N etapa što


znači da posmatramo N-etapni proces odlučivanja. Stanje procesa u i-toj etapi označit ćemo
vektorom si  ( si1 ,....sim ) koji se naziva vektor stanja procesa.

Skup svih stanja u kojima se može nalaziti proces na početku i-te etape označit ćemo sa S i .

Predpostavlja se da je početno stanje procesa S 0  S poznato. Razvoj procesa predstavlja se


nizom prelaza iz jednog stanja u drugo i jednoznačno se u toku cijelog posmatranog perioda
može opisati nizom stanja s0 , s1 ,..., s N 1 , gdje je si  S i .

Polazeći od toga da je stanje procesa si 1 određeno vektorom s i i rješenjem u i , rješenje u i ne


može biti proizvoljno određeno nego je ono elemenat skupa mogućih rješenja U i , tj.ui  U i
naziva se određivanje dopustivog rješenja.

Bilo koji niz dopustivih rješenja u 0 , u1,..., u N 1 koja provede proces iz početnog stanja s 0  s u
konačno Sn nazivamo strategijom.

Za svaku strategiju N-etapnog procesa treba odrediti i uporediti vrijednost funkcije cilja
f N (s ) koja definiše ukupne efekte za svih N etapa procesa odlučivanja ako se proces našao u
početnom stanju s 0  s . Funkcija cilja data je u vidu sume ciljnih funkcija ri (si , ui ) čiji se
smisao objašnjava da u i-toj etapi procesa postoji neko rješenje u i pod čijim dejstvom proces
prelazi iz stanja s i u stanje si 1 , tj.

N 1
f N ( s)   ri ( si , u i )
i 0

Ovakav oblik funkcije cilja odgovara aditivnom zadatku dinamičkog programiranja.

Na osnovu predhodnog može se konstatovati da je višeetapni proces potpuno opisan ako su


poznati:

- Dopustivi skup stanja procesa,


- Dopustivi skup rješenja,
- Pravilo prelaska iz jednog stanja u drugo pod uticajem izabranog rješenja,
- Ciljna funkcija.

7
5. PRINCIP OPTIMALNOSTI I FUNKCIONALNA JEDNAČINA

Metoda dinamičkog programiranja sastoji se u korištenju principa optimalnosti koji je


primjenjiv na sve višeetapne procese odlučivanja. Deskriptivno se ovaj princip može izraziti u
obliku: Optimalna strategija ima takvu osobinu da bez obzira kakvo je početno stanje procesa
i prvobitno rješenje, sljedeće rješenje treba da određuje optimalnu strategiju u odnosu na
stanje dobiveno kao rezultat prvobitnog rješenja. U suštini optimalno ponasanje procesa ima
osobinu da za svako početno stanje i proizvoljno prvo rješenje, rješenja koja slijede su
optimalna i zavise samo od stanja procesa dobivenog nakon prvog rješenja.

Ovaj intuitivni princip može se ilustrovati na predhodno definisanom N-etapnom procesu


odlučivanja. Neka su s0 i s N početno i posljednje stanje N-etapnom procesa odlučivanja,
respektivno. Označimo sa f N ( s0 ) ekstremnu vrijednost funkcije cilja dobivenu od svih N-
etapa pri optimalnoj strategiji u * upravljanja procesom koji se nalazi u početnom stanju s0 .

Predpostavimo da je u 1.etapi dobiveno neko rješenje u 0 pod čijim je dejstvom proces prešao
iz stanja s0 u stanje s1 i koje je ostvarilo efekat r0 ( s0 , u 0 ) na vrijednost ciljne funkcije.
Predpostavimo nadalje da se poslije prve etape upravljanja procesom primjenila optimalna
strategija koja je obezbjedila ekstremnu vrijednost funkcije f N 1 ( s1 ) za ostalih N-1 etapa. Na
osnovu opisanih predpostavki opšta ocjena kvaliteta odlučivanja za svih N etapa ako proces
strartuje sa stanjem so izražena je relacijom: r0 (s0 , u0 )  f N 1 (s1 ). (slika 1.)

8
Ekstremna vrijednost funkcije cilja f N ( s0 ) za svih N etapa, ako proces startuje sa stanjem s0 ,
očigledno zavisi od početnog rješenja u 0 koje proces prevodi iz stanja s0 u stanje s1 , tj.
f N (s0 )  extrr0 (s0 , u0 )  f N 1 (s1 )
u0

Formula slijedi logiku Bellmanovog principa optimalnosti. Očigledno optimalna strategija


f N ( s0 ) se objašnjava pomoću dijela r0 ( s0 , u 0 ) izraza „za ma kakvo početno stanje s0 i
prvobitno rješenje u 0 “ i drugog dijela f N 1 ( s1 ) da „sljedeće rješenje treba da određuje
optimalnu strategiju s obzirom na stanje s1 koje rezultaira iz prvog rješenja“.

Označimo sa f N i ( s1 ) ekstremnu vrijednost funkcije cilja za posljednjih (N-i) etapa, ako se


proces nalazi u stanju s i . Po analogiji formulom može dobiti jednačinu u obliku:

f N 1 (s I )  extrri (si , ui )  f N (i 1) (si 1 )


ui

gdje je: i = 0,1,2..., N-1

Formula predstavlja matematičku formulaciju principa optimalnosti i naziva se osnovnom


funkcionalnoim jednačinom dinamičkog programiranja. Njenim korištenjem mogu se dobiti
etapna optimalna rješenja i postepeno formirati optimalna strategija upravljanja ciijelim N-
etapnim procesom. Iz izraza vidljivo je da se u funkciji f N i u svojstvu argumenata nalazi
vrijednost funkcije u predhodnoj etapi. Odnosi sa takvim osobinama nazivaju se rekurentnim
(rekurzivnim).

Izraz ima više simbolički karakter, nego što je pogodan za numerička izračunavanja. U njemu
nije prikazan konkretan vid funkcije ri (si , ui ) i nije određen karakter argumemta si , ui , si 1
već ukazuje samo na opštu shemu optimalnog izračunavanja pri korištenju metoda
dinamičkog programiranja. Za svaki konkretan zadatak funkcionalna jednačina ima svoj
specifican i konkretan oblik sa rekurzivim karakteristikama.

9
6. OPŠTA PROCEDURA RJEŠAVANJA PROBLEMA DINAMIČKIM
PROGRAMIRANJEM

Primjena dinamičkog programiranja u cilju dobivanja numeričkog rješenja nema standardnu


proceduru. Naprotiv, potrebno je dobro poznavati suštinu problema odlučivanja i
matematičku aparaturu dinamičkog programiranja da bi se jedan takav zadatak riješio. Svaki
zadatak je problem za sebe i zahtjeva posebnu konstrukciju funkcionalne jednačine za
njegovo rješavanje.

Nakon što se definiše funkcionalna jednačina, rješavanje zadatka dinamičkof programiranja


nastavlja se određivanjem niza rješenja u i kao i niza funkcija f N 1 ( si ) koristeći rekurzivnu
relaciju.

Proces rješavanja problema dinamičkim programiranjem ćemo predstaviti u slučaju da se


postupak počinje sa posljednjom etapom. Na početku te etape proces se nalazi u stanju S N 1
tako da se uvrštavanjem vrijednosti i = N-1 u funkciju dobiva:

f1 (s N 1 )  extrrN 1 (s N 1 , u N 1 )  f 0 (s N )
u N 1

Ukoliko se proces nakon granice konačnog stanja Sn ne posmatra i nikakav rezultat ne donosi,
onda se prirodno može predpostaviti da je f 0 (s N )  0 . Tada jednačina dobiva oblik:

f1 (s N 1 )  extrrN 1 (s N 1 , u N 1 )
u N 1

Označimo sa S N 1 ;...; DN 2, š dopustiva fiksna stanja procesa na početku posljednje etape koja
su rezultat razvoja procesa u posljednjih N-1 etapa. Za svako od tih stanja može se naći
uslovno optimalno rješenje za posljednju etapu:

u N 1 ; u N 1, 2 ;...; u N 1, p

I odgovarajuće vrijednosti efekata:

rN 1 ; rN 1.2;...; rN 1, p

Na ovaj način posljednja etapa je optimizirana.

Sada se prelazi na predpostljednju etapu. Za i = N-2 jednačina postaje

f 2 (s N 2 )  extrrN 2 (s N 2 , u N 2 )  f1 (s N 1 )
u N 1

10
____
Kao i u prethodnoj etapi, za svako moguće stanje s N  2,k , k  1, p pronalaze se efekti rN  2,k u
zavisnosti od dopustivnog rješenja u N  2,k . Upoređujući sume rN  2.k  f1 u koje su uvršteni
rezultati f1 optimizacije posljednje etape, utvrđuju se ekstremne sume za svako moguće
______
stanje s N  2 , k i odgovarajuća uslovno optimalna rješenja u N 2.k , k  1, p .

Analogno postupamo dalje i dolazimio do prve etape procesa. Zbog toga što je početno stanje
s0 poznato i jednoznačno određeno, optimalno rješenje se određuje samo za stanje s0 sa
učešćem svih uslovno optimalnih rješenja nađenih u drugoj etapi.

Na taj način du izračunate vrijednosti funkcija f1 , f 2 ..., f N 1 , f N za sva dopustiva stanja


procesa i pronađena sva uslovno optimalna rješenja za svaku etapu i stanje procesa. Među
uslovno optimalnim rješenjima nalaze se bezuslovno optimalna rješenja ili kratko, optimalna
rješenja ili optimalna strategija koja obezbjeđuje ekstremnu vrijednost funkcije cilja f N ( s0 ) .
Da bi se utvrdila optimalna strategija mora se proći jednom cijeli proces , ali u pravom pravcu
od s0 do s N . Na osnovu poznatog početnog stanja s0 i izračunate vrijednosti f N određuje se
optimalno etapno rješenje u * 0 . Zatim se na osnovu u * 0 i f N 1 nalazi u *1 i poslije identičnog
postupka dolazi se do kraja u * N 1 . Na taj način pronađena je optimalna strategija u * 0 , u *1 ,...,
u * N 1 , u * N  2 , problem dinamičkog programiranja.

11
7. ZAKLJUČAK

Dinamickim programiranjem se ucinkovito rjesavaju mnogi problemi, vecinom


optimizacijskog tipa. Kljucna ideja dinamickog programiranja je izbjegavanje visestrukog
izracunavanja iste vrijednosti kroz koristenje dodatnog spremnickog prostora za pohranu
medurezultata u rjesavanju instance nekog problema. U radu su nacelno i na konkretnim
primjerima prikazana dva vida dinamickog programiranja: memoizacija rekurzivnih funkcija i
dinamicko programiranje od dna prema vrhu. Iako se oba vida zasnivaju na istoj ideji, za neke
probleme je primjenjiva samo jedna. Na primjer, smanjiti vremensku ili prostornu slozenost
za memoizirani algoritam kao sto je prikazano za dinamicko programiranje od dna prema
vrhu moze biti iznimno slozeno ili nemoguce. S druge strane, memoiziranom rekurzijom se
mogu rijesiti problemi sa slozenijim prostorima stanja koje nije jednostavno ili uopce moguce
prikazati matricom.

Iako se dinamicko programiranje moze jednostavno primijeniti za dobivanje eksponencijalnog


rjesenja mnogih inacica problema rasporedivanja, takva rjesenja upitne su primjenjivosti. Za
konstrukciju pseudopolinomnog rjesenja tipicno je potrebno matematicki istraziti strukturu
problema. Ipak, takva pseudopolinomna rjesenja mogu biti primjenjiva kada je optimalnost
rjesenja visoke vaznosti.

12
LITERATURA

[1] Vugdalić R., Rešić S.: Operaciona istraživanja, Tuzla, 2011. godina,

[2] Krčevinac S., Čangalović M., Kobačević – Vujčić V., Martin M., Vujošević M.:
Operaciona istraživanja 1, Fakultet organizacioh nauka, Beograd, 2009. godina,

[3] Tadić D., Suknović M., Radojević G., Jovanović V.: Operaciona istraživanja,
Izdavački centar za industrijski menadžment plus, Kruševac, 2005. godina.

13

You might also like