You are on page 1of 9

Operaciona israživanja (SO)

Dualnost

1. Dat je problem linearnog programiranja:

ζ = 6x1 + 5x2 → max

−2x1 + x2 ≤ 1
− x1 + 2x2 ≤ 5
x1 + x2 ≤ 7
2x1 + x2 ≤ 11
x1 − 2x2 ≤ 3
x1 ≥ 0, x2 ≥ 0.

Za dati problem postaviti dual, rešiti primar i dual.

Rešenje:
Primar:

ζ = 6x1 + 5x2 → max


−2x1 + 1x2 ≤ 1
−1x1 + 2x2 ≤ 5
1x1 + 1x2 ≤ 7
2x1 + 1x2 ≤ 11
1x1 − 2x2 ≤ 3
x1 ≥ 0, x2 ≥ 0.

Dualni problem koji odgovara datom problemu linearnog programiranja (primaru) će imati onoliko promen-
ljivih koliko primar ima uslova (ne računajući uslove x1 ≥ 0, x2 ≥ 0), odnosno imaće 5 promenljivih, koje
označavamo sa y1 , y2 , y3 , y4 , y5 . Uslova u dualu će biti onoliko koliko ima promenljivih u primaru, dakle dva.
Kada se primar nalazi u standardnom obliku sa ≤, uslovi u dualu će sadržati ≥.
Koeficijenti uz promeljive yi u funkciji cilja za dual, koju označavamo sa ξ, su brojevi koji se nalaze sa desne
strane nejednakosti u primaru (bi ), i funkciju ζ 1 minimizujemo:

ξ = 1y1 +5y2 +7y3 +11y4 +3y5 → min .

Koeficijenti koji stoje uz promenljive yi u prvom uslovu duala su brojevi koji stoje uz x1 u primaru (redom),
a broj sa desne strane nejednakosti je broj koji stoji uz x1 u funkciji cilja ζ:

−2y1 −1y2 +1y3 +2y4 +1y5 ≥ 6.

Isto tako, koeficijenti uz promenljive yi u drugom uslovu su brojevi koji stoje uz x2 redom, a broj sa desne
strane je jednak koeficijentu koji stoji uz x2 u funkciji cilja primara:

1y1 +2y2 +1y3 +1y4 −2y5 ≥ 5.

1
Dakle, dual koji odgovara datom problemu linearnog programiranja (primaru) je:

ξ = 1y1 +5y2 +7y3 +11y4 +3y5 → min


−2y1 − 1y2 + 1y3 + 2y4 + 1y5 ≥ 6
1y1 + 2y2 + 1y3 + 1y4 − 2y5 ≥ 5
y1 ≥ 0, y2 ≥ 0, y3 ≥ 0, y4 ≥ 0, y5 ≥ 0

Odnosno:
ξ = y1 + 5y2 + 7y3 + 11y4 + 3y5 → min
−2y1 − y2 + y3 + 2y4 + y5 ≥ 6
y1 + 2y2 + y3 + y4 − 2y5 ≥ 5
y1 ≥ 0, y2 ≥ 0, y3 ≥ 0, y4 ≥ 0, y5 ≥ 0

Rešićemo primar (iz optimalne tabele primara možemo očitati i rešenje duala).
Prvo moramo primar sveti na standardni oblik sa jednakostima:

ζ = 6x1 + 5x2 → max


−2x1 + x 2 + w1 = 1
− x1 + 2x2 + w2 = 5
x1 + x2 + w3 = 7
2x1 + x2 + w4 = 11
x1 − 2x2 + w5 = 3

x1 ≥ 0, x2 ≥ 0, w1 ≥ 0, w2 ≥ 0, w3 ≥ 0, w4 ≥ 0, w5 ≥ 0

Zatim popunjavamo početnu tabelu i rešavamo primar Simplex metodom (u svakoj tabeli pivoti su označeni
crvenom bojom):
0 x 1 x 2 w1 w2 w3 w4 w5 3 x 1 x 2 w1 w2 w3 w4 w5
w1 − 2 1 1 0 0 0 0 1 w1 0 0 1 0 −4 3 0 6
w2 − 1 2 0 1 0 0 0 5 w2 0 0 0 1 −5 3 0 3
w3 1 1 0 0 1 0 0 7 w5 0 0 0 0 5 −3 1 5
w4 2 1 0 0 0 1 0 11 x2 0 1 0 0 2 −1 0 3
w5 1 −2 0 0 0 0 1 3 x1 1 0 0 0 −1 1 0 4
−6 −5 0 0 0 0 0 0 0 0 0 0 4 1 0 39
1 x1 x 2 w1 w2 w3 w4 w5
w1 0 − 3 1 0 0 0 2 7 Rešenje primara (iz tabele 3):
w2 0 0 0 1 0 0 1 8
w3 0 3 0 0 1 0 −1 4 x ∗ = (4, 3), w∗ = (6, 3, 0, 0, 5), ζ ∗ = 39.
w4 0 5 0 0 0 1 −2 5
x1 1 −2 0 0 0 0 1 3
0 −17 0 0 0 0 6 18 Rešenje duala očitano iz optimalne tabele primara:

2 x 1 x 2 w1 w2 w3 w4 w5 y∗ = (0, 0, 4, 1, 0), z∗ = (0, 0), ξ ∗ = 39.


w1 0 0 1 0 0 3/5 4/5 10
w2 0 0 0 1 0 0 1 8
w3 0 0 0 0 1 −3/5 1/5 1 Uputstvo: dualne promenljive očitavamo:
x2 0 1 0 0 0 1/5 −2/5 1 y ispod w (y1 ispod w1 , y2 ispod w2 ,...), z ispod x (z1
x1 1 0 0 0 0 2/5 1/5 5 ispod x1 , z2 ispod x2 ,...). Sa zi su označene dodatne
0 0 0 0 0 17/5 −4/5 35 promenljive u duala (u primaru su to bile wi ).

2
U nastavku ćemo rešiti dual i očitati rešenje primara.
Dakle, u ovom slučaju rešavamo dual, pa njega treba svesti na standardni oblik sa jednakostima (dodajemo
i pomoćni problem jer imamo negativne brojeve sa desne strane nejednakosti):

ξ1 = − y0 → max
ξ = −y1 − 5y2 − 7y3 − 11y4 − 3y5 → max
2y1 + y2 − y3 − 2y4 − y5 + z1 − y0 = −6
−y1 − 2y2 − y3 − y4 + 2y5 + z2 − y0 = −5

y1 ≥ 0, y2 ≥ 0, y3 ≥ 0, y4 ≥ 0, y5 ≥ 0, z1 ≥ 0, z2 ≥ 0, y0 ≥ 0

Simplex metoda:
−1 y1 y2 y3 y4 y5 z1 z2 y0
z1 2 1 −1 −2 −1 1 0 −1 −6
z2 −1 −2 −1 −1 2 0 1 −1 −5
1 5 7 11 3 0 0 0 0
0 0 0 0 0 0 0 1 0
0 y1 y2 y3 y4 y5 z1 z2 y0
y0 −2 −1 1 2 1 −1 0 1 6
z2 −3 −3 0 1 3 −1 1 0 1
1 5 7 11 3 0 0 0 0
2 1 −1 −2 −1 1 0 0 −6
1 y1 y2 y3 y4 y5 z1 z2 y0
y0 4 5 1 0 −5 1 −2 1 4
y4 −3 −3 0 1 3 −1 1 0 1
34 38 7 0 −30 11 −11 0 −11
−4 −5 −1 0 5 −1 2 0 −4
2 y1 y2 y3 y4 y5 z1 z2
y2 4/5 1 1/5 0 −1 1/5 −2/5 4/5
y4 −3/5 0 3/5 1 0 −2/5 −1/5 17/5
18/5 0 −3/5 0 8 17/5 21/5 −207/5
3 y1 y2 y3 y4 y5 z1 z2
y3 4 5 1 0 −5 1 −2 4
y4 −3 −3 0 1 3 −1 1 1
6 3 0 0 5 4 3 −39

Rešenje duala, očitano iz tebele 3:

y∗ = (0, 0, 4, 1, 0), z∗ = (0, 0), ξ ∗ = 39.

Rešenje primara očitano iz optimalne tabele duala:

x ∗ = (4, 3), w∗ = (6, 3, 0, 0, 5), ζ ∗ = 39.

Uputstvo: primarne promenljive očitavamo:


w ispod y, x ispod z.

2. (Problem prodavnice zdrave hrane)


Prodavnica zdrave hrane pravi smesu dve vrste mizli. U Sport mizlima ima 20% pšeničnih pahuljica, a u
Tropic mizlima ima 32% pšeničnih pahuljica. Tropic mizle koštaju 60 pfeniga kg a Sport mizle 80 pfeniga
kg. Koliko kojih mizli treba staviti u 1 kg smese pa da se količina pšeničnih pahuljica održi do 25%, a da
smesa bude što jeftinija?

3
Rešenje:
Uvodimo veličine x1 = količina Sport mizli u 1 kg smese, x2 = količina Tropic mizli u 1 kg smese, ζ = cena
1 kg smese.
ζ = 80x1 + 60x2 → min
0.20x1 + 0.32x2 ≤ 0.25
x1 + x2 = 1
x1 ≥ 0, x2 ≥ 0

Ovaj problem linearnog programiranja možemo rešiti na dva načina. Prvi način je da rešimo primar Simplex
metodom, a drugi je da postavimo dual koji odgovara datom problemu, njega rešimo Simplex metodom i
očitamo iz optimalne tabele rešenje primara. Kako je primar rešen u sklopu prethodnih vežbi, rešavaćemo
dual.
Rešavamo dual i očitavamo rešenje primara.
Prvo treba postaviti dual.
Primar:
−ζ = −80x1 − 60x2 → max
0.20x1 + 0.32x2 ≤ 0.25
x1 + x2 = 1
x1 ≥ 0, x2 ≥ 0
Na osnovu primara možemo zaključiti da će dual imati 2 promenljive (y1 i y2 ), broj uslova će biti takod̄e 2.
Za nalaženje duala koristićemo dodatna pravila za postavljanje duala:

Primar Dual
jednakost u uslovima slobodne promenljive
nejednakost u uslovima nenegativne promenljive
slobodne promenljive jednakost u uslovima
nenegativne promenljive nejednakost u uslovima

Dakle, kako u drugom uslovu primara imamo jednakost, na osnovu pravila za postavljanje duala, promenljiva
u dualu koja odgovara toj jednakosti (prvom uslovu odgovara y1 , a drugom y2 ) će u dualu biti slobodna (bez
uslova y2 ≥ 0).
Dual će izgledati ovako:

−ξ = 0.25y1 + y2 → min
0.20y1 + y2 ≥ −80
0.32y1 + y2 ≥ −60
y1 ≥ 0

Kako bismo rešili dual, moramo ga prvo svesti na standardni oblik sa ≤. U oba uslova imamo ≥, pa množimo
oba uslova sa −1, a takod̄e imamo i slobodnu promenljivu koju ne smemo imati, pa y2 predstavljamo kao
y2 = y20 − y200 , y20 ≥ 0, y200 ≥ 0, i dobijamo:

ξ = −0.25y1 − y20 + y200 → max


−0.20y1 − y20 + y200 ≤ 80
−0.32y1 − y20 + y200 ≤ 60
y1 ≥ 0, y20 ≥ 0, y200 ≥ 0

4
Standardni oblik sa jednakostima je:

ξ = −0.25y1 − y20 + y200 → max


−0.20y1 − y20 + y200 + z1 = 80
0
−0.32y1 − y2 + y2 00 + z2 = 60

y1 ≥ 0, y20 ≥ 0, y200 ≥ 0, z1 ≥ 0, z2 ≥ 0

U nastavku rešavamo dual:


0 y1 y20 y200 z1 z2
z1 −1/5 −1 1 1 0 80
z2 −8/25 −1 1 0 1 60
1/4 1 −1 0 0 0
1 y1 y20 y200 z1 z2
z1 3/25 0 0 1 −1 20
y200 −8/25 −1 1 0 1 60
−7/100 0 0 0 1 60
2 y1 y20 y200 z1 z2
y1 1 0 0 25/3 −25/3 500/3
y200 0 −1 1 8/3 −5/3 340/3
0 0 0 7/12 5/12 215/3
Rešenje duala:
y∗ = (y1∗ , y2∗ 0 , y2∗ 00 ) = (500/3, 0, 340/3), z∗ = (0, 0), ξ ∗ = 71 + 2/3.
Očitavamo rešenje primara, koji je dual od duala:
x ∗ = (7/12, 5/12), w∗ = (0, 0, 0), ζ ∗ = 71 + 2/3.

3. Za dati problem linearnog programiranja postaviti dual, rešiti primar i dual.

ζ = 3x1 + 4x2 − x3 → max

4x1 − x2 − 2x3 ≥ 4
3x1 + 5x2 ≤ 15
x1 + x2 − x3 ≤ 6
x1 ≥ 0, x2 ≥ 0

Rešenje:
Na početku ćemo postaviti dual.
Prvi uslov u primaru pomnožimo sa −1 da dobijemo ≤, i primetimo da je promenljiva x3 u primaru slobodna,
što na osnovu pravila za postavljanje duala znači da će u uslovu koji odgovara promenljivoj x3 u dualu stajati
jednakost (promenljivoj x1 odgovara prvi uslov u dualu, promenljivoj x2 drugi, a x3 treći uslov). Dakle, dual
je:
ξ = −4y1 + 15y2 + 6y3 → min
−4y1 + 3y2 + y3 ≥ 3
y1 + 5y2 + y3 ≥ 4
2y1 − y3 = −1
y1 ≥ 0, y2 ≥ 0, y3 ≥ 0

Nakon postavke duala možemo preći na rešavanje.Prvo ćemo rešavati primar.


Uvodimo smenu x3 = x30 − x300 kako bismo rešili problem sa slobodnom promenljivom x3 , dodajemo x30 ≥ 0 i
x300 ≥ 0, prvi uslov množimo sa −1 i svodimo na standardni oblik sa jednakostima:

5
ζ1 = − x0 → max
ζ = 3x1 + 4x2 − x30 + x300 → max
−4x1 + x2 + 2x30 − 2x300 + w1 − x0 = −4
3x1 + 5x2 + w2 − x0 = 15
x1 + x2 − x30 + x300 + w3 − x0 = 6

x1 ≥ 0, x2 ≥ 0, x30 ≥ 0, x300 ≥ 0, w1 ≥ 0, w2 ≥ 0, w3 ≥ 0, x0 ≥ 0

Nadalje rešavamo primar:

−1 x1 x2 x30 x300 w1 w2 w3 x0
w1 − 4 1 2 −2 1 0 0 −1 −4
w2 3 5 0 0 0 1 0 −1 15
w3 1 1 −1 1 0 0 1 −1 6
−3 −4 1 −1 0 0 0 0 0
0 0 0 0 0 0 0 1 0
0 x1 x2 x30 x300 w1 w2 w3 x0
x0 4 −1 −2 2 −1 0 0 1 4
w2 7 4 −2 2 −1 1 0 0 19
w3 5 0 −3 3 −1 0 1 0 10
−3 −4 1 −1 0 0 0 0 0
−4 1 2 −2 1 0 0 0 −4
1 x1 x2 x30 x300 w1 w2 w3
x1 1 −1/4 −1/2 1/2 −1/4 0 0 1
w2 0 23/4 3/2 −3/2 3/4 1 0 12
w3 0 5/4 −1/2 1/2 1/4 0 1 5
0 −19/4 −1/2 1/2 −3/4 0 0 3
2 x1 x2 x30 x300 w1 w2 w3
x1 1 0 −10/23 10/23 −5/23 1/23 0 35/23
x2 0 1 6/23 −6/23 3/23 4/23 0 48/23
w3 0 0 −19/23 19/23 2/23 −5/23 1 55/23
0 0 17/23 −17/23 −3/23 19/23 0 297/23
3 x1 x2 x30 x300 w1 w2 w3
x1 1 0 0 0 −5/19 3/19 −10/19 5/19
x2 0 1 0 0 3/19 2/19 6/19 54/19
x300 0 0 −1 1 2/19 −5/19 23/19 55/19
0 0 0 0 −1/19 12/19 17/19 286/19
4 x1 x2 x30 x300 w1 w2 w3
x1 1 5/3 0 0 0 1/3 0 5
w1 0 19/3 0 0 1 2/3 2 18
00
x3 0 −2/3 −1 1 0 −1/3 1 1
0 1/3 0 0 0 2/3 1 16

Rešenje primara:

x ∗ = ( x1∗ , x2∗ , x3∗ 0 , x3∗ 00 ) = (5, 0, 0, 1), x3∗ = x3∗ 0 − x3∗ 00 = −1, w∗ = (18, 0, 0), ζ ∗ = 16

Rešenje duala očitavamo iz optimalne tabele:

y∗ = (0, 2/3, 1), z∗ = (0, 1/3, 0, 0), ξ ∗ = 16.

6
Rešavamo dual.
Standardni oblik sa jednakostima:

ξ1 = − y0 → max
−ξ = 4y1 − 15y2 − 6y3 → max
4y1 − 3y2 − y3 + z1 − y0 = −3
−y1 − 5y2 − y3 + z2 − y0 = −4
2y1 − y3 + z3 − y0 = −1
−2y1 + y3 + z4 − y0 = 1

y1 ≥ 0, y2 ≥ 0, y3 ≥ 0, z1 ≥ 0, z2 ≥ 0, z3 ≥ 0, z4 ≥ 0, y0 ≥ 0

−1 y1 y2 y3 z1 z2 z3 z4 y0
z1 4 −3 −1 1 0 0 0 −1 −3
z2 −1 −5 −1 0 1 0 0 −1 −4
z3 2 0 −1 0 0 1 0 −1 −1
z4 −2 0 1 0 0 0 1 −1 1
−4 15 6 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0

0 y1 y2 y3 z1 z2 z3 z4 y0
z1 5 2 0 1 −1 0 0 0 1
y0 1 5 1 0 −1 0 0 1 4
z3 3 5 0 0 −1 1 0 0 3
z4 −1 5 2 0 −1 0 1 0 5
−4 15 6 0 0 0 0 0 0
−1 −5 −1 0 1 0 0 0 −4

1 y1 y2 y3 z1 z2 z3 z4 y0
y2 5/2 1 0 1/2 −1/2 0 0 0 1/2
y0 −23/2 0 1 −5/2 3/2 0 0 1 3/2
z3 −19/2 0 0 −5/2 3/2 1 0 0 1/2
z4 −27/2 0 2 −5/2 3/2 0 1 0 5/2
−83/2 0 6 −15/2 15/2 0 0 0 −15/2
23/2 0 −1 5/2 −3/2 0 0 0 −3/2

2 y1 y2 y3 z1 z2 z3 z4 y0
y2 −2/3 1 0 −1/3 0 1/3 0 0 2/3
y0 −2 0 1 0 0 −1 0 1 1
z2 −19/3 0 0 −5/3 1 2/3 0 0 1/3
z4 −4 0 2 0 0 −1 1 0 2
6 0 6 5 0 −5 0 0 −10
2 0 −1 0 0 1 0 0 −1

3 y1 y2 y3 z1 z2 z3 z4
y2 −2/3 1 0 −1/3 0 1/3 0 2/3
y3 −2 0 1 0 0 −1 0 1
z2 −19/3 0 0 −5/3 1 2/3 0 1/3
z4 0 0 0 0 0 1 1 0
18 0 0 5 0 1 0 −16

7
Rešenje duala:
y∗ = (0, 2/3, 1), z∗ = (0, 1/3, 0, 0), ξ ∗ = 16.
Rešenje primara očitano iz optimalne tabele:
x ∗ = ( x1∗ , x2∗ , x3∗ 0 , x3∗ 00 ) = (5, 0, 0, 1), x3∗ = x3∗ 0 − x3∗ 00 = −1, w∗ = (18, 0, 0), ζ ∗ = 16.

4. (Komplementarnost dualnih promenljivih)


Rešiti problem linearnog programiranja prelaskom na dual grafičkom metodom.

ζ = x1 + 5x2 + 7x3 + 11x4 + 3x5 → min


−2x1 − x2 + x3 + 2x4 + x5 ≥ 6
x1 + 2x2 + x3 + x4 − 2x5 ≥ 5
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0 x4 ≥ 0, x5 ≥ 0
Rešenje:
Možemo primetiti da će dualni problem koji odgovara datom problemu linearnog programiranja imati dve
promenljive (koliko ima uslova u primaru), pa ga možemo rešiti grafičkom metodom. Odgovarajući dual,
kao i njegov standardni oblik sa jednakostima je:

ξ = 6y1 + 5y2 → max


−2y1 + y2 ≤ 1 −2y1 + y2 + z1 = 1
−y1 + 2y2 ≤ 5 −y1 + 2y2 + z2 = 5
∗ y1 + y2 ≤ 7 → ∗ y1 + y2 + z3 = 7
∗ 2y1 + y2 ≤ 11 ∗ 2y1 + y2 + z4 = 11
y1 − 2y2 ≤ 3 y1 − 2y2 + z5 = 3
y1 ≥ 0, y2 ≥ 0 z1 ≥ 0, z2 ≥ 0, z3 ≥ 0, z4 ≥ 0, z5 ≥ 0
Skiciramo skup dopustivih vrednosti S, kao i funkciju cilja ξ:

Sa slike vidimo da je rešenje problema y1∗ = 4, y2∗ = 3, ξ ∗ = 39.

8
Komplementarnost dualnih promenljivih
Neka su (w1 , w2 , ..., wm ) odgovarajuće dodatne promenljive primara i (z1 , z2 , ..., zn ) odgovarajuće pro-
menljive duala. (x1 , x2 , ..., xn ) je optimalno rešenje primara i (y1 , y2 , ..., ym ) optimalno rešenje duala ako
i samo ako važi: xj zj = 0 za j = 1, 2, ..., n, yi wi = 0 za i = 1, 2, ..., m.
Na osnovu komplementarnosti dualnih promenljivih, kako je y1∗ = 4 mora biti w1∗ = 0 (da bi važilo y1∗ w1∗ = 0),
i y2∗ = 3 pa je w2∗ = 0.
Rešenje duala (tačka (4, 3)) nalazi se u preseku pravih y1 + y2 = 7 i 2y1 + y2 = 11. Kada pogledamo uslove
duala, to bi značilo da u trećem ∗ i četvrtom ∗ uslovu treba da stoje jednakosti, a iz toga sledi da je z3∗ = 0 i
z4∗ = 0. Na osnovu komplementarnosti onda je x3∗ ≥ 0 i x4∗ ≥ 0.
Kako tačka koja je rešenje ne pripada nijednoj od preostalih pravih, u ostalim uslovima duala treba da stoji
stroga nejednakost, odnosno z1∗ > 0, z2∗ > 0, z5∗ > 0. Na osnovu komplementarnosti dualnih promenljivih sledi
da je u primaru x1∗ = 0, x2∗ = 0, x5∗ = 0.
Primar sveden na standardni oblik sa jednakostima:

−2x1 − x2 + x3 + 2x4 + x5 + w1 = 6
x1 + 2x2 + x3 + x4 − 2x5 + w2 = 5

kada uvrstimo dobijene rezultate dobijamo:

x3 + 2x4 = 6
.
x3 + x4 = 5

Ovo je sistem jednačina sa dve nepoznate koji se lako rešava. Rešenje sistema je x3∗ = 4, x4∗ = 1, ζ ∗ = 39.
Dualna komplementarnost se vidi iz rešenja primara i duala:
ζ ∗ = ξ ∗ = 39,
x ∗ = (0, 0, 4, 1, 0), w∗ = (0, 0),
z∗ = (6, 3, 0, 0, 5), y∗ = (4, 3).

You might also like