Professional Documents
Culture Documents
Nelinearno i dinamičko
programiranje
U okviru ovog poglavlja opisaćemo dve važne klase modela koji, iako
srodni linearnom programiranju, ne mogu biti rešavani na isti način. Prvi
od njih predstavlja, u stvari, čitav niz različitih postupaka za rešavanje tzv.
problema nelinearnog programiranja.1 Reč je o grupi metoda namenjenoj
rešavanju velikog broja upravljačkih zadataka koji nastaju ”prelaskom” sa
linearne na nelinearnu zavisnost funkcije cilja, odnosno odgovarajućeg si-
stema ograničenja. U tesnoj vezi sa nelinearnim programiranjem, čak, može
se smatrati njegovim posebnim oblikom, jeste model dinamičkog programi-
ranja (DP model). On se, uglavnom, koristi u slučajevima tzv. separabilne
funkcije cilja F , kada se ona može rasčlaniti na ”delove” koji zavise samo
od jedne promenljive (nepoznate) veličine, pa se sam postupak optimizacije
obavlja nizom posebnih, odvojenih procedura.
267
268 Glava 6. NELINEARNO I DINAMIČKO PROGRAMIRANJE
gi (x) ≤ 0, i = 1, . . . , m,
x = (x1 , . . . , xn )T ∈ Rn
gi (x) ≥ 0, i = 1, . . . , m.
pri uslovima
x21 − x2 − 3 ≤ 0
x2 − 1 ≤ 0
−x1 ≤ 0.
2
Za detaljnije proučavanje NLP problema čitaocu predlažemo monografije [3] i [4].
Konveksne funkcije 269
Na slici 6.1 predstavljena je dopustiva oblast mogućih rešenja ovog problema. Zadatak se sastoji
u nalaženju takve tačke iz dopustive oblasti, za koju f (x1 , x2 ) ima najmanju moguu vrednost.
Primetimo da tačka (x1 , x2 ) koja zadovoljava jednačinu
(min) f = f (2, 1) = 2. 2
U opštem slučaju, kako smo već istakli, rešavanje problema NLP-a pove-
zano je sa nizom poteškoća. Većina postojećih algoritama zasniva se na
izvesnim dodatnim pretpostavkama o osobinama funkcije cilja i sistema
ograničenja, koje se, najčešće odnose na probleme konveksnosti, koju dalje
preciznije razmatramo.
gde je λ ∈ (0, 1), pripada segmentu sa krajevima A (x1 , f (x1 )) i B (x2 , f (x2 )).
S druge strane, f [λx1 + (1 − λ)x2 ] je vrednost funkcije f u tački segmenta
x1 x2 . Očito, segment A B leži iznad grafika konveksne funkcije, a u slučaju
konkavnosti ispod njega.
gde su ∂ f∂ (x 0)
xi parcijalni izvodi funkcije f (x) u tački x0 . S druge strane, na
osnovu (6.2) i (6.3) zaključujemo da se subgradijenti diferencijabilne funkcije
f : S → R u tački x0 ∈ S podudaraju sa jedinstvenim vektorom - gradije-
ntom funkcije f (x) u tački x0 . Kao ilustraciju, dajemo sledeći jednostavan
primer.
Primer 6.2.1. Neka je f (x) = max{f1 (x), f2 (x)}, gde je
Slika 6.4:
Očito, u tački x = 1 funkcija f (x) nije diferencijabilna, pa gradijent ne postoji. Ipak, familija
subgradijenata odred̄uje se relacijom
odnosno
∇f (x1 )T − ∇f (x2 )T (x2 − x1 ) ≤ 0,
xλ = λx + (1 − λ)x0 ∈ U (x0 ) ∩ S.
Slika 6.5:
7 2
f (x) = x1 − + (x2 − 4)2 , x = (x1 , x2 ) ∈ R2 ,
2
pri uslovima
−x1 + x2 ≤ 1
2x1 + 3x2 ≤ 6
−x1 ≤ 0
−x2 ≤ 0.
Očigledno, funkcija f (x) je konveksna i odred̄uje kvadrat rastojanja od tačke 72 , 4 do tačke
(x1 , x2 ). Ograničenja zadata nejednačinama odred̄uju konveksan poliedarski skup mogućih rešenja
S, koji je, zajedno sa nivoskim linijama funkcije f (x), prikazan na slici 6.6.
Slika 6.6:
3
Geometrijski se može odrediti optimalna tačka ovog problema xT
0 = 2 , 1 . Gradijent funkcije
f (x) u ovoj tački je
T
∂f (x0 ) ∂f (x0 )
∇f (x0 ) = , = ( −4, −6 )T .
∂x1 ∂x2
Sa slike se takod̄e vidi da ma koji ugao izmed̄u vektora ∇f (x0 ) i x − x0 , za proizvoljno x ∈ S, ne
prelazi 900 . Zato je njihov skalarni proizvod nenegativan, tj. važi uslov optimalnosti (6.6). 2
278 Glava 6. NELINEARNO I DINAMIČKO PROGRAMIRANJE
∇f (x0 )T (x − x0 ) ≤ 0 (6.9)
gi (x) ≤ 0, i = 1, . . . , m,
x = (x1 , . . . , xn )T ∈ X ⊆ Rn .
θ(u) ≤ f (x),
x2 x2
gde je x = (x1 , x2 )T i g(x) = 4
1
+ 2
12
− 1. Dakle, imamo
x21 x2
θ(u) = inf + 2 −1
x1 + x2 + u
4 12
n u o n u 2o
= inf x1 + x21 + inf x2 + x − u,
x1 4 x2 12 2
T
∂ θ(u) ∂ θ(u) 2 6
pa iz jednakosti = = 0 sledi x = − ,− . Zamenom ovih vrednosti dobijamo
∂ x1 ∂ x2 u u
eksplicitni oblik Lagrange-ove funkcije
u2 + 4
θ(u) = − , u≥0
u
koja svoju maksimalnu vrednost θmax = −4 dostiže u tački u0 = 2. Dakle, optimalne vrednosti
promenljivih x1,2 glase
2 6
x1 = − = −1, x1 = − = −3,
u0 u0
pri čemu je optimalna vrednost funkcije cilja fmin = θmax = −4. (Ostavljamo Vama da date
grafičku interpretaciju direktnog problema i njegovog optimalnog rešenja.)
= λθ(u1 ) + (1 − λ)θ(u2 ).
Odavde, po definiciji, sledi konkavnost za θ(u).
Zbog konkavnosti funkcije θ(u) sledi da je svaki njen lokalni maksimum
ujedno i globalni, pa ova činjenica čini pogodnim zadatak odred̄ivanja njenog
maksimuma. Med̄utim, osnovna poteškoća u rešavanju dualnog zadatka
sastoji se u tome što, najčešće, nije poznat eksplicitni oblik dualne funkcije,
jer ona može biti izračunata tek posle kada se reši odgovarajući podzadatak
minimizacije koji je dat u njenom zapisu.
Posmatrajmo sada problem diferencijabilnosti Lagrange-ove dualne fu-
nkcije. Diferencijabilnost funkcije θ(u) u nekoj tački u ∈ Rm zavisi od
elemenata skupa
X(u) = y : y je minimum izraza f (x) + uT g(x) za x ∈ X .
Naročito, ako se X(u) sastoji od jedinstvene tačke, onda će pod odred̄enim
uslovima funkcija θ(u) biti diferencijabilna u njoj, jer važi
Teorema 6.3.3. Neka je X 6= ∅ kompaktan skup prostora Rn , funkcije
f : Rn → R i g : Rn → Rm neprekidne, i u ∈ Rm proizvoljna tačka. Ako se
skup X(u0 ) sastoji od jedinstvene tačke x0 = x(u0 ), onda je funkcija θ(u)
diferencijabilna u tački u0 i njen gradijent je
∇θ(u0 ) = g [x(u0 )] . (6.11)
Dokaz. Na osnovu neprekidnosti funckija f i g sledi njihova ograničenost
na kompaktu X. Štaviše, funkcija
Ψ(x) = f (x) + uT0 g(x),
tada dostiže minimum u tački x0 = x(u0 ) koja je, na osnovu pretpostavki
teoreme, jedinstveno odred̄ena. Najzad, u tom slučaju Lagrange-ova funkcija
θ(u) predstavlja jednoznačno definisano linearno preslikavanje prostora Rm ,
diferencijabilno u tački u0 , za koje očito važi jednakost (6.11).
282 Glava 6. NELINEARNO I DINAMIČKO PROGRAMIRANJE
θ[u0 + λĝ(x0 )]
Tada je
= −8λ2 + 16λ, λ ≥ 0,
Rešavanje NLP problema 283
Optimalna vrednost (min) Ψ(x) = Ψ(x0 ) = 8 dostignuta je u jedinstvenoj tački x0 = (2, 2)T , pa
ponovnom primenom jednakosti (6.12) imamo
Znači, u ovom slučaju je x0 = (0, 0)T optimalno rešenje direktnog, a u0 = (4, 0)T optimalno
rešenje dualnog zadatka. U oba slučaja vrednosti ciljnih funkcija iznose
Ostavljamo čitaocu, kao i ranije, da dâ grafičku interpretaciju problema i dobijenih rezultata. 2
ui gi (x0 ) = 0, i = 1, . . . , m, (6.15)
Rešavanje NLP problema 285
gde su αi > 0 rešenja sistema linearnih jednačina (6.14). Očito, ovaj sistem
jednačina je ekvivalentan sistemu (6.13), pa na osnovu linearne nezavisnosti
vektora ∇gi (x0 ), i ∈ I sledi da su njegova rešenja, tj. vrednosti αi , i ∈ I
jedinstveno odred̄ene. Kao ilustraciju, dajemo nekoliko primera ovakvog
postupka ispitivanja Khun-Tucker-ovih uslova optimalnosti. Oni, kao što
ćemo videti, ukazuju na mnoge prednosti, ali i nedostatke ovakvog načina
nalaženja i provere optimalnih rešenja.
286 Glava 6. NELINEARNO I DINAMIČKO PROGRAMIRANJE
pri uslovima x21 + x22 ≤ 5, x1 + 2x2 ≤ 4, x1 , x2 ≥ 0. Dopustiva oblast rešenja ovog zadatka
prikazana je na slici 6.9 levo. Proverimo ispunjenost uslova optimalnosti u tački x0 = (2, 1)T .
Označimo
1 2
Na taj način, dobijaju se brojevi u1 = 3
, u2 = 3
, u3 = u4 = 0 koji će zadovoljavati uslove
optimalnosti Khun-Tuckera-a. 2
Primer 6.3.4. Minimizirajmo funkciju f (x1 , x2 ) = −x1 pri uslovima x2 −(1−x1 )3 ≤ 0, −x2 ≤ 0.
Dopustiva oblast ovog problema je predstavljena na slici 6.9 desno, zajedno sa optimalnom tačkom
x0 = (1, 0)T . Skup indeksa aktivnih ograničenja u toj tački je I = {1, 2}. Ovde je
∇f (x0 ) = (−1, 0)T , g1 (x0 ) = (0, 1)T , ∇g2 (x0 ) = (0, −1)T ,
ali jednačina
0 0 −1
u1 + u2 =
1 −1 0
pn+1 = W (pn ), n = 0, 1, 2, . . . ,
S tim u vezi nas će pre svega interesovati razni procesi upravljanja, odnosno
procesi koji protiču u vremenu i na čiji tok možemo uticati planiranjem i
realizacijom odgovarajućih aktivnosti.
Dinamičko programiranje 289
U = (U1 , U2 , . . . , Un )
koji ćemo dalje zvati strategija. Sada, svakoj izabranoj strategiji odgovara
odred̄ena vrednost kriterijuma F , tj.
F (U ) = F (U1 , . . . , Un ).
F (U ∗ ) = (opt)F.
fu = f1 + f2 + · · · + fn .
snost, koja može da se ogleda kroz dobit koja se ostvaruje utroškom (pre-
radom, tretmanom) odred̄ene količine resursa na odred̄enom mestu (mašini,
liniji, pogonu). Kapacitet svakog mesta trošenja je takod̄e ograničen. Ako
funkcija cilja predstavlja dobit, onda se ona može napisati kao
gde je
xj - količina resursa dodeljena j-tom procesu (mašini, liniji),
fj (xj ) - funkcija dobiti koja se ostvari kada se količina xj dodeli j-tom
procesu (mašini, liniji).
Pošto je količina resursa ograničena, sledi da je
x1 + x2 + · · · + xn ≤ S
a1 x1 + · · · + an xn ≤ bn ,
Osnovna ideja u primeni metoda DP-a, kako smo već prethodno istakli,
sastoji se u tome da se upravljanje nekim procesom podeli u više faza, a zatim
u svakoj od njih izabere optimalno upravljanje koje treba da omogući opti-
malno funkcionisanje procesa. Pritom, optimalno upravljanje ima osobinu
da, bez obzira na prethodno stanje i upravljanje u ranijim etapama, naredne
odluke moraju da daju optimalno upravljanje u odnosu na trenutno stanje
sistema. Reč je tzv. princip optimalnosti koji predstavlja srž metoda di-
namičkog programiranja, a postavio ga je Richard Bellman 1957. godine, u
svojoj knjizi Dynamic Programming, Princeton University Press, Princeton.
Od tada, model DP-a postaje važna tehnika u rešavanju niza najraznovrsni-
jih problema. Da bismo opisali praktičnu primenu Bellman-ovih principa,
posmatrajmo sledeći, čisto matematički primer.
Primer 6.4.1. Proizvoljan pozitivan broj c podeliti na n delova tako da njihov proizvod bude
maksimalan.
Rešenje: Označimo sa Fn (c) funkciju kriterijuma datog problema, odnosno traženu maksimalnu
vrednost proizvoda brojeva x1 , . . . , xn , za koje takod̄e važi x1 + · · · + xn = c. Za n = 1 imamo,
očito, F1 (c) = c, dok u slučaju n = 2 maksimalnu vrednost funkcije kriterijuma dobijamo na
osnovu jednakosti
F2 (c) = max{x(c − x)}.
x≤c
c
Jednostavnim računom nalazimo da funkcija f2 (x) = x(c − x) ima maksimum za x = 2
, tako da
optimalna vrednost funkcije Fn (c) u ovom slučaju glasi
c2
F2 (c) = .
4
c−x n
Fn+1 (c) = max xFn (c − x) = max x , (6.17)
0≤x≤c 0≤x≤c n
n+1
c
Fn+1 (c) = ,
n+1
1
koja se ostvaruje za x1 = x2 = · · · = xn+1 = n+1
. 2
Dinamičko programiranje 293
a1 x1 + · · · + an xn ≤ bn
(max) F = Fn (bn ).
U ∗ = (x∗1 , . . . , x∗n ).
Dinamičko programiranje 295
Vrednost ulaganja P1 P2 P3
10 6 5 6
20 15 14 18
30 24 23 30
40 32 30 35
Ulaganje u pojedine projekte se može realizovati u iznosima od 10, 20, 30 i 40 miliona dinara.
Odrediti optimalan plan investiranja banke za koji će se ostvariti maksimalan ukupni profit.
Rešenje: Polazeći od Belmanovih jednačina, optimalni plan investiranja odredićemo u više etapa
u kojima ispitujemo efikasnost ulaganja u pojedine projekte.
U tu svrhu, označimo sa fi (xi ) očekivani profit ulaganja sume xi u i-ti projekat (i=1,2,3).
Vrednost funkcije F tada predstavlja ukupan profit ostvaren ulaganjem celokupne sume od 40
miliona dinara u pojedine projekte. Dakle, matematički model datog problema glasi
uz ograničenja
x1 + x2 + x3 = 40, x1 , x2 , x3 ≥ 0.
Sada, u prvoj etapi, odred̄ujemo vrednost funkcije
gde je b1 ∈ {0, 10, 20, 30, 40} vrednost mogućih ulaganja u prvi projekat. Dobijamo sledeći niz
vrednosti
F1 (0) = 0, F1 (10) = 6, F1 (20) = 15, F1 (30) = 24, F1 (40) = 32.
U sledećoj, drugoj etapi potrebno je utvrditi optimalnu raspodelu ulaganja različitih iznosa
sredstava u projekte P1 i P2 . Stoga, na osnovu (6.19), ciljna funkcija ima oblik
gde je b2 ∈ {0, 10, 20, 30, 40}. Pri izračunavanju vrednosti funkcije F2 (b2 ) koristimo podatke
o efikasnosti ulaganja u projekat P2 (druga kolona tabele), ali i prethodno dobijene vrednosti
funkcije F1 (b1 ).
296 Glava 6. NELINEARNO I DINAMIČKO PROGRAMIRANJE
Znači, za b2 = 0 imamo:
dalje, za b2 = 10:
za b2 =20:
za b2 = 30 :
za b2 = 40:
f2 (0) + F1 (40) 0 + 32
f2 (10) + F1 (30) 5 + 24
= max f2 (20) + F1 (20) = max 14 + 15 = 32 (x2 = 0).
f2 (30) + F1 (10) 23 + 6
f2 (40) + F1 (0) 30 + 0
Kao što vidimo, sve optimalne vrednosti dobijene su za vrednost x2 = 0, čime ukazuju da, u
postojećoj etapi, nije poželjno ulagati sredstva u drugi projekat.
Na kraju, izvršićemo optimalnu raspodelu sredstava na sva tri projekta. Optimalan plan
investiranja odrediémo na osnovu podataka o efikasnosti ulaganja u projekat P3 i prethodno
izračunatih (maksimalnih) vrednosti funkcije F2 (b2 ). Primenom formule
za b3 = 10:
za b3 = 20:
za b3 = 30:
za b3 = 40:
f3 (0) + F2 (40) 0 + 32
f3 (10) + F2 (30) 6 + 24
= max f3 (20) + F2 (20) = max 18 + 15 = 36 (x3 = 30);
f3 (30) + F2 (10) 30 + 6
f3 (40) + F2 (0) 35 + 0
Sirovina A B
10 200 150
20 300 320
30 450 480
40 600 580
50 750 760
Odrediti optimalnu raspodelu ulaganja sredstava za oba proizvoda tako da preduzeće ostvari ma-
ksimalnu ukupnu dobit.
gde je b1 ∈ {0, 10, 20, 30, 40, 50}. Dobijamo niz vrednosti
F1 (0) = 0, F1 (10) = 200, F1 (20) = 300, F1 (30) = 450, F1 (40) = 600, F1 (50) = 750.
dalje, za b2 = 10:
za b2 =20:
za b2 = 30 :
za b2 = 40:
za b2 = 50:
Znači, maksimalni profit od 780 hiljada dinara može se ostvariti na dva načina:
1. Ulaganjem x1 = 20 tona sirovine u proizvodnju proizvoda A, a ostalih x2 = 30 tona u
proizvod B.
2. Ulaganjem x1 = 10 tona sirovine u izradu proizvoda A, a ostalih x2 = 40 tona u proizvod-
nju proizvoda B. 2
300 Glava 6. NELINEARNO I DINAMIČKO PROGRAMIRANJE
Rešenje:
Rešenje:
(a) Pokazujemo da važi jednakost (6.6). Neka su x1 , x2 ∈ R2 proizvoljne tačke, pri čemu
označimo x2 − x1 = (p, q)T ∈ R2 . Tada je
" #
2
T p p
∇f (x2 ) − ∇f (x1 ) (x2 − x1 ) = 6p2 + 8pq + 6q 2 = q 2 6
+8 + 6 ≥ 0,
q q
jer je F (u) = 6u2 + 8u + 6 strogo pozitivna kvadratna funkcija. Znači, funkcija f jeste
konveksna.
Zadaci za vežbu 301
(b) Slično kao pod (a) treba pokazati da za svako x1 , x2 ∈ R2 važi nejednakost
T
∇f (x2 ) − ∇f (x1 ) (x2 − x1 ) ≤ 0,
Rešenje:
(a) (min)f (x) = (x1 − 4)2 + (x2 − 3)2 (b) (max)f (x) = x21 + x1 + 2x22 + 2x2 + 3
2x1 + 5x2 ≤ 10 x1 + 2x2 ≤ 3
2x1 + x2 ≤ 6; x1 + x2 ≤ 1.
Rešenje:
6. Odrediti optimalan plan ulaganja 100 miliona dinara u tri projekta čija je
efikasnost ulaganja, u zavisnosti od nivoa uloženih sredstava, prikazana tabelom:
Visina uloženih Projekti
sredstava P1 P2 P3
20 12 11 16
40 26 36 37
60 42 45 46
80 62 60 63
100 76 78 80
Rešenje:
7. Preduzeće raspolaže sa 800 tona sirovine koju koristi za izradu tri proizvoda
(P1 , P2 , P3 ). Dobit (u 000 din.) ostvarena prodajom ovih proizvoda, u zavisnosti
od količine sirovine koja se utroši za njihovu izradu, prikazana je tabelom:
Zadaci za vežbu 303
Količina Proizvodi
sirovine P1 P2 P3
200 125 110 160
400 260 245 270
600 360 350 380
800 420 400 430
Rešenje: