You are on page 1of 48

DUALNI PROBLEM LINEARNOG

PROGRAMIRANJA
ANALIZA OSJETLJIVOSTI
28.03. i 04.04.2012.

Dr. sc. Tunjo Perić


 Koncept dualiteta predstavlja jedno od najvažnijih otkrića u LP.
 Prema tom konceptu svaki problem LP ima sa sobom povezan
jedan drugi problem nazvan dual.
 Uzajamni odnosi između originalnog problema i njegovog duala
pokazuju se ekstremno značajnim, naročito u analizi osjetljivosti.
 Analiza osjetljivosti je važan dio gotovo svake studije LP, budući
da je većina vrijednosti parametara originalnog modela samo
procjena budućih uvjeta. Pored toga, određene vrijednosti
parametara mogu predstavljati menadžerske odluke, a u tom
slučaju izbor vrijednosti parametara može biti ključni problem,
koji treba obraditi kroz analizu osjetljivosti.
 Teorija dualiteta zasnovana je na analzi simpleks tablica (od
početne do optimalne).
 Analitički se može pokazati da se u retku z-c mogu pročitati
vrijednosti dualnih varijabli (ispod vrijednosti dopunskih, odnosno
umjetnih varijabli koje čine početno bazično rješenje)
 Ako se radi o standardnom problemu maksimuma vrijednost
dualne varijable y1 kazuje nam za koliko će se povećati vrijednost
funkcije cilja ako se vrijednost ograničenja na koje se odnosi dana
dualna varijabla poveća za 1.
 Teorija dualiteta direktno je zasnovana na sljedećim
fundamentalnoj spoznaji:
Nakon svake iteracije, koeficijenti dopunskih varijabli u svakoj
jednadžbi odmah otkrivaju kako je ta jednadžba dobivena iz
početne jednadžbe.
Kao primjer važnosti ove spoznaje, pogledajmo formulu za
određivanje optimalnog rješenja simpleks metodom, u matričnom
obliku:
xB  B 1b
gdje je xB vektor bazičnih varijabli, B-1 je matrica koeficijenata
dopunskih varijabli finalne tablice, a b je vektor originalnih
ograničenja.
 Postoptimalna analiza normalno uključuje ispitivanje mogućih
promjena u b.
 Koristeći ovu formulu možemo točno vidjeti kako se mijenja
bazično moguće rješenje (ili postaje li nemoguće zbog
negativnosti varijabli) kao funkcija b.
 Ključni uzajamni odnosi između primarnog i originalnog
problema su:
(1) Osobina slabe dualnosti: Ako je x moguće rješenje za primarni
problem a y je moguće rješenje za dualni problem, onda je
cx  yb.
(2) Osobina stroge dualnosti: Ako je x optimalno rješenje za
primarni problem, a y je optimalno rješenje za dualni problem,
onda je
cx*  y*b .
Prema tome, te dvije osobine impliciraju da je cx  yb za moguća
rješenja, ako jedno ili oba od njih nisu optimalni za dani problem,
a jednakost važi kad su oba optimalni.
Osobina slabe dualnosti opisuje uzajamni odnos između bilo kojeg
para rješenja za primarne i dualne probleme gdje su oba rješenja
moguća za njihove posebne probleme.
 U svakoj iteraciji, simpleks metoda nalazi specifični par rješenja
za dva problema, gdje je primarni problem moguć, a dualni je
nemoguć (izuzev u konačnoj iteraciji).
 (3) Osobina komplementarnosti rješenja: U svakoj iteraciji,
simpleks metoda istovremeno identificira kutno moguće rješenje x
za primarni problem i komplementarno rješenje y za dualni
problem (u retku z-c koeficijenti dopunskih varijabli), gdje je
cx  yb.
Ako x nije optimalno za primarni problem, onda y nije moguće za
dualni problem (narušava ograničenja dualnog problema).
 (4) Osobina komplementarnosti optimalnih rješenja: U svakoj
konačnoj iteraciji, simpleks metoda istovremeno identificira
optimalno rješenje x* za primarni problem i komplementarno
optimalno rješenje y* za dualni problem, gdje je
cx*=x*b.
yi* su cijene u sjeni za primarni problem.
 (5) Osobina simetričnosti. Za bilo koji primarni problem i njegov
dualni problem, svi uzajamni odnosi između njih moraju biti
simetrični, budući da je dual dualnog problem primarni problem.
Prema tome simpleks metoda se može primijeniti ili na primarni
ili na dualni problem.
 Teorem dualiteta glasi:
1. Ako jedan problem ima moguća rješenja i ograničenu ciljnu
funkciju, onda i njegov dual ima moguća rješenja.
2. Ako jedan problem ima moguća rješenja i neograničenu ciljnu
funkciju (nema optimalno rješenje), onda njegov dual nema
moguća rješenja.
3. Ako jedan problem nema moguća rješenja, tada drugi problem
ili nema moguća rješenja ili ima neograničenu ciljnu funkciju.
 Dualni problem LP zasniva se na teoremu dualiteta, po kojem je
maksimalna vrijednost funkcije cilja originalnog problema
(primala) jednaka minimalnoj vrijednosti funkcije cilja dualnog
problema i obrnuto.
 Matematički izraženo to izgleda ovako:
 n  m 
max   c j x j   min   bi yi 
 j 1   i 1 
odnosno
 n  m 
min   c j x j   max   bi yi  ,
 j 1   i 1 
gdje je yi vrijednost i-te dualne varijable.
 U ovisnosti od toga od kojeg oblika primarnog problema polazi,
dualni problem LP može biti: (a) simetrični (polazi od standardnog
oblika primala) i (b) asimetrični (polazi od općeg oblika primala).
 Dualnih varijabli ima onoliko koliko ima ograničenja u primarnom
problemu.
 Ako je funkcija cilja vrijednosno izražena, onda dualne varijable
predstavljaju cjenovni izraz jedinice ograničenja (jedinice resursa).
To nije tržišna cijena po kojoj bi se mogla prodati ili kupiti
jedinica ograničenja, već interna cijena koja se može “platiti” za
jedinicu ograničenja (resursa) da bi se realiziralo optimalno
rješenje.
 Dualne varijable mogu biti nenegativne i nepozitivne.
 Vrijednosti dualnih varijabli govore nam za koliko će se
promijeniti vrijednost funkcije cilja ako se slobodni član u
ograničenjima poveća za jedinicu.
 Pri formiranju dualnog problema na osnovi primarnog problema
treba voditi računa o sljedećem:
 Ako je primarni problem za maksimum, dualni će problem biti za minimum
i obrnuto.
 Koeficijenti u funkciji cilja primarnog problema postaju slobodni
koeficijenti u ograničenjima dualnog problema,
 Slobodni koeficijenti u ograničenjima primarnog problema postaju
koeficijenti u funkciji cilja dualnog problema.
 Matrica strukturnih koeficijenata primarnog problema transponiranjem se
pretvara u matricu strukturnih koeficijenata dualnog problema.
 Dualni problem se uvijek piše u standardnom obliku za maksimum ili
minimum.
 Vrijednosti dualnih varijabli mogu biti:
 Nenegativne, ako se odnose na ograničenja oblika  kod primarnog
problema za maksimum, odnosno na ograničenja oblika  kod primarnog
problema za minimum,
 Nepozitivne, ako se odnose na ograničenja oblika  kod primarnog
problema za maksimum, odnosno na ograničenja oblika  kod primarnog
problema za minimum, i
 Nenagativne ili nepozitivne, ako se odnose na ograničenja oblika jednakosti
kod primarnog problema.
 Simetrični dualni problem polazi od standardnog oblika primarnog
problema.
 Ako je primarni problem napisan kao standardni problem
maksimuma, onda njegov dual izgleda ovako:
Primal za maksimum Dual problema za maksimum

z  c1 x1  c2 x2  ...  cn xn  max z '  b1 y1  b2 y2  ...  bm ym  min


a11 x1  a12 x2  ...  a1n xn  b1 a11 y1  a21 y2  ...  am 1 ym  c1
a21 x1  a22 x2  ...  a2 n xn  b2 a12 y1  a22 y2  ...  am 2 ym  c2

am 1 x1  am 2 x2  ...  amn xn  bm a1n y1  a2 n y2  ...  amn ym  cn


x j  0, j  1, 2,..., n. yi  0, i  1, 2,..., m .

 A ako je primarni problem napisan kao standardni problem


minimuma, onda njegov dualni problem izgleda ovako:
Primal za minimum Dual problema za minimum

z  c1 x1  c2 x2  ...  cn xn  min z '  b1 y1  b2 y2  ...  bm ym  max


a11 x1  a12 x2  ...  a1n xn  b1 a11 y1  a21 y2  ...  am 1 ym  c1
a21 x1  a22 x2  ...  a2 n xn  b2 a12 y1  a22 y2  ...  am 2 ym  c2

am 1 x1  am 2 x2  ...  amn xn  bm a1n y1  a2 n y2  ...  amn ym  cn


x j  0, j  1, 2,..., n. yi  0, i  1, 2,..., m .

 Ako primarni problem nije u standardnom obliku, koristi se tzv.


asimetrični dualni model, koji polazi od netransformiranog
primarnog problema.
 Polazeći od općeg oblika primarnog problema za maksimum,
dobivamo dual netransformiranog primarnog problema za
maksimum:
Opći problem za maksimum Dual općeg problema za maksimum

n k l m
z   c j x j  max z '   bi yi  by  by i i i i  min
j 1 i 1 i  k 1 i  l 1
n

a x j  bi , i  1,..., k k l m

a a a
ij
j 1
ij yi  ij yi  ij yi  c j ,
n i 1 i  k 1 i  l 1

a
j 1
ij x j  bi , i  k  1,..., l j  1,..., n,
n yi  0, i  1,..., k ,
a
j 1
ij x j  bi , i  l  1,..., m yi   0, i  k  1,..., l ,
yi  0, i  l  1,..., m .
x j  0, j  1,..., n.

 Polazeći od općeg oblika primarnog problema za minimum,


dobivamo dual netransformiranog primarnog problema za
minimum:
Opći problem za minimum Dual općeg problema za minimum

n k l m
z   c j x j  min z '   bi yi  by  by i i i i  max
j 1 i 1 i  k 1 i  l 1
n

a x j  bi , i  1,..., k k l m

a a a
ij
j 1
ij yi  ij yi  ij yi  c j ,
n i 1 i  k 1 i  l 1

a
j 1
ij x j  bi , i  k  1,..., l j  1,..., n,
n yi  0, i  1,..., k ,
a
j 1
ij x j  bi , i  l  1,..., m yi   0, i  k  1,..., l ,
yi  0, i  l  1,..., m .
x j  0, j  1,..., n.

 Budući da asimetrični dualni model ne udovoljava zahtjevu za


nenegativnošću varijabli (što je jedan od uvjeta linearnog modela),
neupotrebljiv je za rješavanjem metodama LP.
 Razumijevanje asimetričnog dualnog modela značajno je pri
konstrukciji modela te analizi i interpretaciji rješenja.
 Da bi se dual općeg linearnog modela riješio linearnim
programiranjem, potrebno je najprije opći primarni model
transformirati u standardni oblik, a potom formulirati simetrični
dualni model.
 Ako se neko ograničenje u primarnom modelu pomnoži s
konstantom s, tada će i odgovarajuća dualna varijabla biti
pomnožena s istom konstantom. Zbog toga će se vrijednost dualne
varijable transformiranog modela y’p morati podijeliti s tom
konstantom s, tj. yp = y’p/s, gdje su yp dualne varijable
netransformiranog primarnog problema, a y’p dualne varijable
transformiranog primarnog modela.
 Opći model primarnog problema potrebno je transformirati u
standardni oblik.
Transformirani oblik primarnog Dual transformiranog primarnog
problema za maksimum problema

n
z   c j x j  max
k l
z '   bi y  '
i  bi yi' 
j 1 i 1 i  k 1
n l m

 aij x j  bi , i  1,..., k
j 1
  bi yi''   i i  min
b y '

i  k 1 i  l 1
n k l

 aij x j  bi , i  k  1,..., l  ij i 
a
i 1
y '

i  k 1
aij yi' 
j 1
l m
  aij y   ij i  c j , j  1,..., n
n
  aij x j   bi , i  k  1,..., l
'' '
i a y
j 1 i  k 1 i  l 1

n yi'  0, i  1,..., m
  aij x j   bi , i  l  1,..., m
j 1 yi''  0, i  k  1,..., l .
x j  0, j  1,..., n.
 Veze između dualnih varijabli netransformiranog i
transformiranog primarnog problema su sljedeće:

yi  yi' , i  1,..., k
yi  yi'  yi'' , i  k  1,..., l
yi   yi' , i  l  1,..., m

 U slučaju transformiranog modela primarnog problema za


minimum, dual transformiranog modela će imati sljedeći oblik:
Transformirani oblik primarnog Dual transformiranog primarnog
problema za minimum problema za minimum

n
z   c j x j  min
k l
z '    bi y  '
i  bi yi' 
j 1 i 1 i  k 1
n l m
  aij x j   bi , i  1,..., k   bi yi''   i i  max
b y '

j 1 i  k 1 i  l 1
n k l

 aij x j  bi , i  k  1,..., l   aij yi'   aij yi' 


j 1 i 1 i  k 1
l m
  aij y   ij i  c j , j  1,..., n
n
  aij x j   bi , i  k  1,..., l
'' '
i a y
j 1 i  k 1 i  l 1

n yi'  0, i  1,..., m
a
j 1
ij x j  bi , i  l  1,..., m
yi''  0, i  k  1,..., l .
x j  0, j  1,..., n.
 Veze između dualnih varijabli netransformiranog i
transformiranog primarnog problema za minimum su sljedeće:

yi   yi' , i  1,..., k
yi  yi'  yi'' , i  k  1,..., l
yi  yi' , i  l  1,..., m

 Budući da dual transformiranog primarnog problema za


maksimum i minimum osigurava neophodan uvjet za
nenegativnošću dualnih varijabli, pogodan je za rješavanje
problema LP upotrebom duala.
 Primjer 1. Poduzeće proizvodi dvije vrste proizvoda A1 i A2. Za
proizvodnju ima na raspolaganju dnevno 6 kg sirovine S1, 10 kg
sirovine S2 i 4 kg sirovine S3. Za proizvodnju jednog proizvoda A1
potrebno je: 1 kg sirovine S1, 2 kg sirovine S2, dok se sirovina S3
ne koristi za proizvodnju tog proizvoda. Za proizvodnju jedinice
proizvoda A2 potrebno je po 1 kg svake od navedenih sirovina.
Odrediti optimalni dnevni proizvodni program s ciljem
maksimiziranja ukupne dobiti, ako je procijenjena dobit 3 $ po
jedinici proizvoda A1, a 2 $ po jedinici proizvoda A2.
 Rješenje:
Utrošak (kg/kom) Raspoloživa
A1 A2 količina (u kg)

S1 1 1 6
S2 2 1 10
S3 - 1 4
Dobit ($/kom) 3 2
x1, x2 – količina dnevne proizvodnje proizvoda A1 i A2, respektivno

Model LP u standardnom Model LP u kanonskom obliku


obliku

z  3 x1  2 x2  max z  3 x1  2 x2  0  ( x3  x4  x5 )  max
x1  x2  6 x1  x2  x3 6
2 x1  x2  10 2 x1  x2  x4  10
x2  4 x2  x5  4
x1 , x2  0 x1 ,..., x5  0
Početna simpleks tablica
cj 3 2 0 0 0
ci Baza x0 x1 x2 x3 x4 x5
0 x3 6 1 1 1 0 0
0 x4 10 2 1 0 1 0
0 x5 4 0 1 0 0 1
z-c 0 -3 -2 0 0 0
Prva iteracija
cj 3 2 0 0 0
ci Baza x0 x1 x2 x3 x4 x5
0 x3 1 0 1/2 1 -1/2 0
3 x1 5 1 1/2 0 1/2 0
0 x5 4 0 1 0 0 1
z-c 15 0 -1/2 0 3/2 0

Druga iteracija
cj 3 2 0 0 0
ci Baza x0 x1 x2 x3 x4 x5
2 x2 2 0 1 2 -1 0
3 x1 4 1 0 -1 1 0
0 x5 2 0 0 -2 1 1
z-c 16 0 0 1 1 0

U retku z-c više nema negativnih vrijednosti. Dobiveno je optimalno rješenje: x1 = 4,


x2 = 2, x5 = 2. Što nam govori x5 = 2?
 U tablici optimalnog rješenja ispod varijabli koje čine početno
bazično rješenje u retku z-c dane su vrijednosti dualnih varijabli: y1
= 1, y2 = 1, y3 = 0. z’ = 6y1 + 10y2 + 4y3 = 16, što je jednako
vrijednosti funkcije z originalnog modela.
 Riješimo prethodni problem upotrebom duala:

z '  6 y1  10 y2  4 y3  min
y1  2 y2 3
y1  y2  y3  2
yi  0, i  1, 2, 3
Dual u kanonskom obliku

z '  6 y1  10 y2  4 y3  0  ( y4  y5 )  M  ( y6  y7 )  min
y1  2 y2  y4  y6 3
y1  y2  y3  y5  y7  2
yi  0, i  1,...,7
Početna simpleks tablica

bj 6 10 4 0 0 M M
bi Baza y0 y1 y2 y3 y4 y5 y6 y7
M y6 3 1 2 0 -1 0 1 0
M y7 2 1 1 1 0 -1 0 1
z’-b 5M -6+2M -10+3M -4+M -M -M 0 0

Prva iteracija
bj 6 10 4 0 0 M M
bi Baza y0 y1 y2 y3 y4 y5 y6 y7
10 y2 3/2 1/2 1 0 -1/2 0 1/2 0
M y7 1/2 1/2 0 1 1/2 -1 -1/2 1
z’-b 15+1/2M -1+1/2M 0 -4+M -5+1/2M -M 5-3/2M 0
Druga iteracija

bj 6 10 4 0 0 M M
bi Baza y0 y1 y2 y3 y4 y5 y6 y7
10 y2 3/2 1/2 1 0 -1/2 0 1/2 0
4 y3 1/2 1/2 0 1 1/2 -1 -1/2 1
z’-b 17 1 0 0 -3 -4 3-M 4-M

Treća iteracija
bj 6 10 4 0 0 M M
bi Baza y0 y1 y2 y3 y4 y5 y6 y7
10 y2 1 0 1 -1 -1 1 1 -1
6 y1 1 1 0 2 1 -2 -1 2
z’-b 16 0 0 -2 -4 -2 4-M 2-M

Kad problem rješavamo preko duala onda vrijednosti strukturnih varijabli nalazimo
u retku z’-b ispod varijabli koje čine početno bazično rješenje, s tim da se M ne
uzima u obzir. Tako imamo x1 = 4, x2 = 2. U optimalnom rješenju vrijednost z = z’.
Prema tome z’ = 16.
 Dualna varijabla y1 = 1 odnosi se na prvo ograničenje i kazuje nam
da će se ukupna dobit povećati za 1 $ ako se raspoloživa količina
sirovine S1 poveća za 1 kg. Dualna varijabla y2 = 1 odnosi se na
drugo ograničenje i kazuje nam da će se ukupna dobit povećati za
1 $ ako se raspoloživa količina sirovine S2 poveća za 1 kg.
 Primjer 2. Poduzeću za proizvodnju treba sirovina koja sadrži
najmanje 8 jedinica sastojka A, 25 jedinica sastojka B i 3 jedinice
sastojka C. Dobavljač D1 može ponuditi sirovinu koja sadrži 1
jedinicu sastojka A, 2 jedinice sastojka B i 1 jedinicu sastojka C,
po cijeni $2 po 1kg. Dobavljač D2 može ponuditi sirovinu koja
sadrži 1 jedinicu sastojka A i 5 jedinica sastojka B, po cijeni od $2
po 1kg.
Odrediti količine sirovina koje treba nabaviti od pojedinih
dobavljača s ciljem izrade optimalne smjese.
 Rješenje:
Sastav sirovine (jed./kg)
D1 D2 Minimalne potrebe (jed.)

A 1 1 8
B 2 5 25
C 1 - 3
Nabavna cijena ($/kg) 2 2

x1, x2 – količina sirovine nabavljena od dobavljača D1 i D2, respektivno


Standardni oblik Kanonski oblik

z  2 x1  2 x2  min z  2 x1  2 x2  0  ( x3  x4  x5 ) 
p.o.  M  ( x6  x7  x8 )  min
x1  x2  8 p.o.
2 x1  5 x2  25 x1  x2  x3  x6 8
x1 3 2 x1  5 x2  x4  x7  25
x1 , x2  0 x1  x5  x8  3
x1 ,..., x8  0
Početna simpleks tablica

cj 2 2 0 0 0 M M M
ci Baza x0 x1 x2 x3 x4 x5 x6 x7 x8
M x6 8 1 1 -1 0 0 1 0 0
M x7 25 2 5 0 -1 0 0 1 0
M x8 3 1 0 0 0 -1 0 0 1
z-c 36M -2+4M -2+6M -M -M -M 0 0 0

Simpleks tablica nakon treće iteracije

cj 2 2 0 0 0 M M M
ci Baza x0 x1 x2 x3 x4 x5 x6 x7 x8
0 x5 2 0 -5/3 1/3 1 5/3 -1/3 -1
2 x2 3 0 1 2/3 -1/3 0 -2/3 1/3 0
2 x1 5 1 0 -5/3 1/3 0 5/3 -1/3 0
z-c 16 0 0 -2 0 0 2-M 0-M 0-M
Budući da se u retku z-c nalazi 0 ispod dopunske varijable x4, problem ima dva
optimalna rješenja. Prvo optimalno rješenje je: x1=5, x2=3, x5=2, z=16. Dualno
rješenje čitamo u retku z-c ispod artificijelnih varijabli, ne uzimajući u obzir
vrijednosti M (M je umjetno dodano s ciljem eliminiranja umjetnih varijabli iz baze,
pa njegove vrijednosti u optimalnoj simpleks tablici nemaju nikakvo značenje): y1=2,
y2=0, y3=0.
Dopunska varijabla x5=2 kazuje nam da u optimalnom rješenju imamo viška 2
jedinice sastojka C u odnosu na minimalne zahtjeve.
Drugo optimalno rješenje dobivamo uvođenjem varijable x4 u bazu, pri čemu
varijabla x5 izlazi iz baze.
Simpleks tablica nakon četvrte iteracije iteracije
cj 2 2 0 0 0 M M M
ci Baza x0 x1 x2 x3 x4 x5 x6 x7 x8
0 x4 6 0 0 -5 1 3 5 -1 -3
2 x2 5 0 1 -1 0 1 1 0 -1
2 x1 3 1 0 0 0 -1 0 0 1
z-c 16 0 0 -2 0 0 2-M 0-M 0-M

Drugo optimalno rješenje je: x1=3, x2=5, x4=6, z=16. Dualno rješenje: y1=2, y2=0,
y3=0. Dopunska varijabla x4=5 kazuje nam da imamo viška 5 jedinica sastojka S2 u
odnosu na minimalne zahtjeve. Ostala optimalna rješenja možemo dobiti
konveksnom kombinacijom dva optimalna rješenja.
 Isti problem ćemo riješiti upotrebom duala.

z '  8 y1  25 y2  3 y3  max z '  8 y1  25 y2  3 y3  0  ( y4  y5 )  max


p.o. p.o.
y1  2 y2  y3  2 y1  2 y2  y3  y4 2
y1  5 y2  2 y1  5 y2  y5  2
y1 , y2 , y3  0 y1 ,..., y5  0
Početna simpleks tablica

bj 8 25 3 0 0
bi Baza y0 y1 y2 y3 y4 y5
0 y4 2 1 2 1 1 0
0 y5 2 1 5 0 0 1
z’-b 0 -8 -25 -3 0 0
Prva iteracija

bj 8 25 3 0 0
bi Baza y0 y1 y2 y3 y4 y5
0 y4 6/5 3/5 0 1 1 -2/5
25 y2 2/5 1/5 1 0 0 1/5
z’-b 10 -3 0 -3 0 5

Druga iteracija

bj 8 25 3 0 0
bi Baza y0 y1 y2 y3 y4 y5
8 y1 2 1 0 5/3 5/3 -2/3
25 y2 0 0 1 -1/3 -1/3 1/3
z’-b 16 0 0 2 5 3

 Rješenje duala je: y1=2, y2=0, y3=0, z’=16. Optimalno rješenje


možemo pročitati u retku z’-b ispod dopunskih varijabli (ispod
varijabli koje formiraju početno bazično rješenje): x1=5, x2=3, z=16.
Analiza osjetljivosti
 Kod upotrebe modela LP donositelj odluke želi znati što će biti s
optimalnim rješenjem ako se promijene neki od ulaznih parametara.
 Postupak kojim se ispituje osjetljivost dobivenog rješenja na
promjenu nekih ulaznih parametara modela naziva se analiza
osjetljivosti ili postoptimalna analiza.
 Najčešće se postavljaju sljedeća pitanja:
 Kako promjena jediničnog prihoda (koeficijenata funkcije cilja cj) pojedine
aktivnosti (proizvoda) utječe na promjenu optimalnog rješenja, odnosno za
koliko treba promijeniti neki koeficijent u funkciji cilja da bi to dovelo do
promjene optimalnog rješenja? Pitanje se može postaviti i drukčije, tj. koliko
se može promijeniti neki koeficijent iz funkcije cilja, a da to ne utječe na
promjenu optimalnog rješenja?
 Što će se dogoditi ako se promijene raspoložive količine (bi) pojedinog
resursa proizvodnje? Treba odgovoriti na pitanje kako promjena desne strane
ograničenja utječe na dobiveno optimalno rješenje?
 Što će se desiti s optimalnim programom ako se uvede nova aktivnost,
odnosno je li isplativo uvesti novi proizvod?
 Što se dešava s optimalnim programom ako se promijeni neki tehnički
koeficijent (normativ)?
 Odgovore na gore postavljena pitanja dat ćemo uz pomoć sljedećeg primjera:
Kanonski oblik problema
Primarni problem z  12 x1  14 x2  16 x3  18 x4 
z  12 x1  14 x2  16 x3  18 x4  max  0  ( x5  x6  x7 )  max
p.o. p.o.
5 x1  2 x2  3 x3  4 x4  30 5 x1  2 x2  3 x3  4 x4  x5  30
3 x1  4 x2  10 x3  4 x4  40 3 x1  4 x2  10 x3  4 x4  x6  40
8 x1  8 x2  2 x3  x4  50 8 x1  8 x2  2 x3  x4  x7  50
x1 , x2 , x3 , x4  0 x1 , x2 , x3 , x4 , x5 , x6 , x7  0
 Optimalno rješenje ovog problema dobiveno je u sljedećoj simpleks tablici:
cj 12 14 16 18 0 0 0
ci Baza x0 x1 x2 x3 x4 x5 x6 x7
18 x4 5 7/4 0 -1 1 1/2 -1/4 0
14 x2 5 -1 1 7/2 0 -1/2 1/2 0
0 x7 5 57/4 0 -25 0 7/2 -15/4 1
z j - cj 160 11/2 0 15 0 2 5/2 0
1. Promjena koeficijenata funkcije cilja

 Neka koeficijent c1 = 12 može poprimiti neku drugu vrijednost, tj


dopustimo da bude c1 = 12 + t, gdje je t neki realni parametar.
Prema tome, funkcija cilja poprima oblik:
z = (12 + t)x1 + 14x2 +16x3+18x4.
 Primjećujemo da unutrašnjost simpleks tablice neće doživjeti
nikakve promjene. Naime, u simpleks tablici dan je prikaz svih
vektora našeg problema u terminima optimalne baze {x4, x2, x7}.
Stupac ispod vektora x0 također se ne mijenja, jer je to prikaz
vektora x0 u toj bazi. Promjene se događaju u koeficijentu iz
funkcije cilja , tj. u gornjem retku simpleks tablice, te u
posljednjem retku te simpleks tablice gdje se nalaze diferencije zj –
cj. Budući da vektor x1 nije bazični vektor, u lijevom stupcu
simpleks tablice nema koeficijenta c1. Dakle, jedina promjena
događa se iznad i ispod vektora x1, kojemu odgovara koeficijent c1.
Imamo:
cj 12+t 14 16 18 0 0 0
ci Baza x0 x1 x2 x3 x4 x5 x6 x7
18 x4 5 7/4 0 -1 1 1/2 -1/4 0
14 x2 5 -1 1 7/2 0 -1/2 1/2 0
0 x7 5 57/4 0 -25 0 7/2 -15/4 1
z j - cj 160 11/2-t 0 15 0 2 5/2 0

 Prema tome to rješenje ostaje optimalno sve dok je izraz z1 – c1  0,


11 11
t.j. t  0 t  .
2 2
11
Za t  izraz z1 – c1 postaje negativan, odnosno to više nije
optimalno 2 rješenje i treba ići na sljedeću simpleks tablicu u kojoj u
bazu ulazi vektor x1. Možemo zaključiti da dok je
11 35
c1  12  t  12    17.5 (c1  (  , 17.5].
2 2
ne dolazi do promjene optimalnog rješenja.
 Naime, proizvod x1 može ući u optimalno rješenje tek onda ako je
prihod po jedinici proizvoda x1 narastao toliko da ga bude isplativo
proizvoditi.
 Analognu situaciju imamo i kod proizvoda x3 koji također nije u
optimalnom programu (odnosno mijenja se koeficijent u funkciji
cilja uz nebazičnu varijablu x3), tj. c3 = 16 + t, odnosno funkcija
cilja poprima oblik:
z = 12x1 + 14x2 + (16 + t)x3 + 18x4.
Jedina promjena u simpleks tablici je ispod i iznad vektora x3, tj.

cj 12 14 16+t 18 0 0 0
ci Baza x0 x1 x2 x3 x4 x5 x6 x7
18 x4 5 7/4 0 -1 1 1/2 -1/4 0
14 x2 5 -1 1 7/2 0 -1/2 1/2 0
0 x7 5 57/4 0 -25 0 7/2 -15/4 1
z j - cj 160 11/2 0 15-t 0 2 5/2 0
 Prema tome, to rješenje ostaje optimalno sve dok je 15  t  0,
odnosno t  15. Sve dok je
c3  16  t  16  15  31 (c3  (  , 31])
ne dolazi do promjene optimalnog rješenja. Tek ako je prihod po
proizvodu x3 narastao na više od 31 vektor x3 ulazi u bazu, a iz
baze izlazi vektor x2, odnosno dolazi do promjene optimalnog
programa.
 Razmotrimo što se događa ako se mijenjaju koeficijenti bazičnih
varijabli x2 i x4, odnosno koeficijenti vektora koji su u optimalnoj
bazi. Pitamo se u kojem intervalu mogu varirati ti koeficijenti, a da
to ne dovede do promjene optimalnog rješenja. Neka je c2 = 14 + t,
odnosno
z = 12x1 + (14+t)x2 + 16x3 + 18x4.
 Budući da se mijenja koeficijent uz bazičnu varijablu to će
uzrokovati promjene u cijelom retku zj – cj, odnosno finalna
simpleks tablica sada izgleda ovako:
cj 12 14+t 16 18 0 0 0
ci Baza x0 x1 x2 x3 x4 x5 x6 x7
18 x4 5 7/4 0 -1 1 1/2 -1/4 0
14+t x2 5 -1 1 7/2 0 -1/2 1/2 0
0 x7 5 57/4 0 -25 0 7/2 -15/4 1
z j - cj 160+5t 11/2-t 0 15+7/2 t 0 2-1/2 t 5/2+1/2 t 0
 Da bi to rješenje ostalo optimalno potrebno je da svi elementi u
retku zj – cj budu nenegativni, tj moraju biti ispunjene sljedeće
nejednadžbe:
Taj sustav nejednadžbi ispunjen je za sve t
11 11 [-30/7, 4], tj. za t iz tog intervala dano rješenje
t  0 t  ,
2 2 ostaje optimalno. Budući da je c2 = 14 + t, to
7 30 znači da se optimalno rješenje ne mijenja dok
15  t  0  t   , se c2 nalazi u intervalu [14-30/7, 14+4]=[9.714,
2 7
1 18]. Ukoliko je c2 < 9.714, izraz z3 – c3 postaje
2  t  0  t  4, negativan (u bazu ulazi x3), a ako je c2 > 18,
2
tada negativan postaje izraz z5 – c5 i u novu
5 1
 t  0  t  5. bazu ulazi vektor x5.
2 2 Pri tome se vrijednost varijabli neće promijeniti,
ali će doći do promjene vrijednosti funkcije cilja.
 Analognu analizu moguće je napraviti i za drugu bazičnu varijablu
(x4). Funkcija cilja je tada
z = 12x1 + 14x2 + 16x3 + (18+t)x4.
Na isti načine se dobije sustav jednadžbi:
11 7 22  
 t  0 t   čije je rješenje c4  18 
22
, 18  10   14.857, 28 .
2 4 7
 7 
15  t  0  t  15
Dakle dok se koeficijent c4 nalazi u tom intervalu,
1 nema promjene optimalnog rješenja.
2  t  0  t  4
2
5 1
 t  0  t  10
2 4
 Sličan pristup primjenjiv je i u slučaju kada se zajedno mijenjaju
nekoliko koeficijenata iz funkcije cilja. Uzmimo npr. da se
mijenjaju oba koeficijenta bazičnih varijabli c2 i c4, tj da funkcija
cilja izgleda ovako:
z = 12x1 + (14+t)x2 + 16x3 + (18+v)x4.
Finalna simpleks tablica sada je:
cj 12 14+t 16 18+v 0 0 0
ci Baza x0 x1 x2 x3 x4 x5 x6 x7
18+v x4 5 7/4 0 -1 1 1/2 -1/4 0
14+t x2 5 -1 1 7/2 0 -1/2 1/2 0
0 x7 5 57/4 0 -25 0 7/2 -15/4 1
z j - cj 160+5t 11/2- 0 15+7/2 t-v 0 2-1/2 5+1/2 t- 0
+5v t+7/4 v t+1/2 v 1/4 v

 Prema tome, da bi dano rješenje ostalo optimalno, potrebno je da parametri t i v


zadovoljavaju sljedeći skup nejednadžbi:
11 7 7 1 1 1 1
 t  v  0, 15  t  v  0, 2  t  v  0, 5  t  v  0,
2 4 2 2 2 2 4
čije rješenje je neki skup točaka u prostoru R2, tj. presjek 4 poluravnine u R2.
2. Promjene u konstantama s desne strane nejednadžbi
 Promjene koeficijenata desne strane nejednadžbi ne uzrokuju
nikakve promjene u izrazima zj – cj, niti bilo kakve promjene u
unutrašnjosti simpleks tablice. Jedina promjena nastaje kod vektora
x0, što rezultira i njegovim prikazom u finalnoj simpleks tablici.
 Razmotrimo što se događa ako dolazi do promjene u prvoj
komponenti vektora x0. Vektor x0 ima sada sljedeći oblik:

 30  t   30  1 
x0'   40    40   t  0  x0  tI1 ,
     
 50   50   0
gdje je I1 jedinični vektor.
 Simpleks procedura transformira vektor x0' na način da pored
originalnog vektora x0 mora transformirati i jedinični vektor I1.
Budući da je transformacija jediničnog vektora već zastupljena u
simpleks tablici (u našem primjeru vektor x5), to će se simpleks
'
procedurom novi vektor x0 transformirati na način da mu se samo
dodaje transformirani vektor x5, naravno pomnožen s parametrom t.
 Prema tome, finalna simpleks tablica sada ima sljedeći oblik:
cj 12 14 16 18 0 0 0
ci Baza x0 x1 x2 x3 x4 x5 x6 x7
18 x4 5+1/2 t 7/4 0 -1 1 1/2 -1/4 0
14 x2 5-1/2 t -1 1 7/2 0 -1/2 1/2 0
0 x7 5+7/2 t 57/4 0 -25 0 7/2 -15/4 1
z j - cj 160+2t 11/2 0 15 0 2 5/2 0

 Pitanje sada nije ostaje li to rješenje optimalno, budući da su sve


diferencije zj – cj ostale nepromijenjene, već je li to rješenje
moguće ili nije, odnosno jesu li svi brojevi u stupcu x0 ostali
nenegativni. Pitamo se koliki mora biti parametar t, a da optimalna
baza ostane moguća. Prema tome, da bi naša optimalna baza ostala
ista, mora vrijediti:
1 1 7 10
5  t  0  t  10, 5  t  0  t  10, 5  t  0  t   .
2 2 2 7
 10 
 Da bi ta baza ostala moguća mora vrijediti t    , 10  , odnosno
 7 
 10   200 
b1   30  , 30  10    , 40  .
 7   7 
 Promjena b1 u tom intervalu dovodi do drukčijeg optimalnog rješenja,
ali s istom optimalnom bazom {x4, x2, x7}. Ako je npr. b1 = 34, tj. t =
4, novo rješenje je:
x2* = 5 – 2 = 3, x4* = 5 + 2 = 7, u3* = 5 + 14 = 19,
a nova vrijednost funkcije cilja je: z*  160  2  4  168.
 Primjećujemo da promjena vrijednosti funkcije cilja u potpunosti
odgovara interpretaciji dualnih varijabli. Naime, optimalna vrijednost
prve dualne varijable je y1* = 2, što je upravo porast funkcije cilja po
jednici porasta kapaciteta prvog resursa (2  t ).
 Razmotrimo promjene na raspoložive količine ostala dva resursa:
 30   30  0
b2'  b2  t  40  t  x0'   40  t    40   t  1   x0  tI 2 .
     
 50   50   0
 Promjene u vektoru x0 sada su vezane uz dopunski vektor x6 = I2,
pa imamo:

cj 12 14 16 18 0 0 0
ci Baza x0 x1 x2 x3 x4 x5 x6 x7
18 x4 5-1/4 t 7/4 0 -1 1 1/2 -1/4 0
14 x2 5+1/2 t -1 1 7/2 0 -1/2 1/2 0
0 x7 5-15/4 t 57/4 0 -25 0 7/2 -15/4 1
z j - cj 160+5/2 t 11/2 0 15 0 2 5/2 0

 Da bi optimalna baza ostala moguća mora vrijediti:


1 1 15 4
5  t  0  t  20, 5  t  0  t  10, 5  t  0  t  ,
4 2 4 3
 4
iz čega slijedi t   10,  , odnosno
 3
 4
b2   40  10, 40     30, 41.33 .
 3
 Jedinični porast tog resursa (t = 1) ostavlja istu optimalnu bazu, a
odgovarajuća dualna varijabla y2* = 5/2 predstavlja povećanje ukupne
dobiti po jednici porasta ograničenja b2.
 Ako je npr. t = - 4, tj. b2 = 36, dobivamo novo optimalno rješenje, uz
istu optimalnu bazu, i to:
x2* = 5 – 2 = 3, x4* = 5 + 1 = 6, x7* = 5 + 15 = 20, a odgovarajuća
dobit je: z* = 160 -10 = 150.
 Promjene u trećoj komponenti vektora x0, vezane su uz treći dopunski
vektor x7.
 30   30  0
b3'  b3  t  50  t  x0'   40    40   t  0  x0  tI 3
     
 50  t   50   1 
Međutim, treći dopunski vektor je i bazni vektor, pa se iz gornje
simpleks tablice može vidjeti da će jedina promjena kod vektora x0
biti u njegovoj trećoj komponenti, tj da bi ista optimalna baza ostala
moguća mora vrijediti: 5  t  0  t  5, odnosno
b3   50  5,   )   45,   ).
 Veze koje postoje između originalnog i dualnog problema jedna su
od osnovnih činjenica na kojima se temelji analiza osjetljivosti.
Naime kroz iteracije u simpleks proceduri vrši se i rješavanje
dualnog problema. U retku zj – cj stalno se u svakoj iteraciji nalazi
pokusno dualno rješenje. Međutim, u svim tablicama prije
optimalne, pokusne dualne varijable ne tvore moguće rješenje
dualnog problema. Iz iteracije u iteraciju traži se to moguće
rješenje dualnog problema, a u finalnoj simpleks tablici ono se i
postiže.
 Dakle simpleks metoda radi dvije stvari:
1. Kroz iteracije traži moguće rješenje dualnog problema;
2. Istovremeno održava moguće rješenje originalnog problema.
 Čim je dobiveno moguće rješenje oba problema, to rješenje je i
optimalno i iteracije završavaju.
 Optimalne vrijednosti dualnih varijabli nazivaju se “shadow prices”
(cijene u sjeni), a pokazuju koliko se najviše isplati platiti za
dodatnu jedinicu i-tog resursa.
3. Uvođenje novog proizvoda
 Razmotrimo kada se isplati uvesti u program proizvodnje novi
proizvod, tj. koliku jediničnu dobit bi taj novi proizvod morao imati
da bi ga se isplatilo uvesti u program proizvodnje.
Pretpostavimo da smo u našem primjeru uveli još jednu varijablu (x5)
koja ima tehničke koeficijente 3, 8 i 5. Naš problem sada izgleda
ovako:
z  12 x1  14 x2  16 x3  18 x4  c5 x5  max
p.o.
5 x1  2 x2  3 x3  4 x4  3 x5  30
3 x1  4 x2  10 x3  4 x4  8 x5  40
8 x1  8 x2  2 x3  x4  5 x5  50
x1 , x2 , x3 , x4 , x5  0
Postavlja se pitanje koliki mora biti koeficijent c5 da proizvođaču
bude isplativo uvođenje tog novog proizvoda u program. Analizu
ćemo izvesti pomoću odgovarajućeg dualnog problema.
 Odgovarajuća dualna relacija (peto ograničenje u dualu) je:
3y1 + 8y2 + 5y3  c5,
a optimalno rješenje dualnog problema je:
5 *
y1*  2, y2*  , y3  0.
2
 Pitamo se za koje vrijednosti c5 to dualno rješenje ostaje moguće.
Uvrstimo li optimalne vrijednosti duala u gornju relaciju, dobivamo:
5
3  2  8   5  0  c5  c5  26.
2
Prema tome, dokle god je c5  26 dano rješenje ostaje moguće, a time
se i odgovarajuće optimalno rješenje originalnog problema ne mijenja.
Znači da dok je c5  26, nova varijabla x5 neće postati bazična. Tek
ako jedinični prihod po novom proizvodu bude veći od 26 jedinica
dolazi do promjene optimalnog rješenja i varijabla x5 postaje bazična,
odnosno tad ima smisla uvesti u program proizvodnje proizvod x5.
4. Promjena tehničkih koeficijenata
 Razmotrit ćemo samo promjene tehničkih koeficijenata za nebazične
varijable.
Uzmimo npr. da se mijenja koeficijent a23 za nebazičnu varijablu x3,
tj. neka je a23 = 10 +t. Odgovarajuća dualna relacija tada je:
3 y1  (10  t ) y2  2 y3  16.
Pitamo se do koje vrijednosti parametra t optimalno dualno rješenje
ostaje moguće, odnosno nema promjene ni u optimalnom rješenju
originalnog problema. Uvrstimo li optimalne vrijednosti dualnih
varijabli u tu relaciju, slijedi:
5
6  (10  t )   16  t  6.
2
Prema tome, ako je t  6, tj. a23  4, nema promjene optimalnog
rješenja. Međutim, ako je t < -6, tj. a23 <4, dano dualno rješenje, a
time i optimalno rješenje originalnog problema, više nije optimalno, te
varijabla x3 postaje bazična varijabla.

You might also like