Sunteți pe pagina 1din 5

Algoritmul simplex dual

Problemei de programare liniară:

min f ( X ) = C T ⋅ X

(24)  A⋅ X ≥ L

 X ≥0

i se asociază problema:

1 y 
max g( Y ) = LT ⋅ Y  
 y2 
(25)  T
A ⋅Y ≤C unde Y = 
  
 Y ≥0  
 ym 
Problema (24) se va numi primală iar problema (25) duala problemei (24) şi
reciproc.
Exemplul II.7.1
m i nf = x1 + 2 x2 + 2 x3
 x1 − 2 x2 + x3 + x4 ≥ 1

 2 x1 − x2 − x3 + x4 ≥ 2

 x1 + x2 + x3 − x4 ≥ 1
 xi ≥ 0, i = 12, ,3,4
Folosind tabelul:

Y X x1 x2 x3 x4 ≥L
y1 1 −2 1 1 1
y2 2 −1 −1 1 2
1 1 1 −1 1
y3
≤ 1 2 2 0 C
găsim duala:
m a xg( Y ) = y1 + 2 y2 + y3
 y1 + 2 y2 + y3 ≤ 1

 − 2 y1 − y2 + y3 ≤ 2
 y1 − y2 + y3 ≤ 2

y +y −y ≤0
 1 2 3
 yi ≥ 0, i = 1,2,3

Teorema II.7.1. Fie X o soluţie posibilă pentru problema (24) şi Y o soluţie


posibilă pentru problema (25). Atunci f ( X ) ≥ g( Y )

Demonstraţie: Din AX ≥ L, înmulţind la stânga cu Y T ≥ 0 obţinem:


Y ⋅ A ⋅ X ≥ Y T ⋅ L = LT ⋅ Y = g( Y )
T

Pe de altă parte: A T ⋅ Y ≤ C ⇒ X T ⋅ A T ⋅ Y ≤ X T ⋅ C = C T ⋅ X = f ( X )
Dar cum Y T ⋅ A ⋅ X = ( A ⋅ X ) T ⋅ Y = X T ⋅ A T ⋅ Y ajungem la concluzia g( Y ) ≤ f ( X ) .

Teorema II.7.2. Dacă (24) are optim finit atunci (25) are optim finit şi avem
max g (Y  ) = min f ( X  )  sau   C T⋅X = LT⋅Y   unde X  este o soluţie optimă
pentru (24) iar Y  o soluţie optimă pentru (25).

Demonstaţie: Din teorema II.7.1. pentru orice pereche de programe duale X,Y,
avem g (Y ) ≤ f ( X ) . Deci are loc şi max g (Y ) ≤ f ( X ) . Cum f este o funcţie liniară, deci
continuă, atunci min f ( X ) există şi are loc max g( Y ) ≤ min f ( X ) .
Pe de altă parte folosind (13) şi teorema II.4.1. avem
min f ( X ) = f ( X  ) = Z C Tp ⋅ B −1 ⋅ L . Se demonstrează că Y  = B −1 ⋅ C p ≥ 0 este un
program optim pentru duala (25). Atunci:
(
min f ( X ) = C Tp ⋅ B −1 ⋅ L = B −1 ⋅ C p ) T
( )
⋅ L = Y T ⋅ L = LT ⋅ Y  = g Y  = max g (Y ).
Teorema II.7.3. (teorema ecarturilor complementare)
Fie X,Y soluţii ale problemelor (24), respectiv (25). Atunci X,Y sunt soluţii optime
dacă şi numai dacă au loc relaţiile:
Y T ⋅ ( L − AX ) = 0; (
X T AT ⋅ Y − C = 0)
Demonstraţie. Avem:
LT ⋅ Y = Y T ⋅ L ≤ Y T AX = X T ⋅ A T ⋅ Y ≤ X T ⋅ C = C T ⋅ X
Folosind teoremele II.7.2. şi II.7.1. obţinem că X,Y sunt programe optime dacă şi
numai dacă LT ⋅ Y = C T ⋅ X ceea ce conduce la:
Y T L = Y T A ⋅ X = X T AT ⋅ Y = X T C
sau: Y T ( L − AX ) = 0; ( )
X T A T Y − C = 0.
Dualitatea se foloseşte cel mai frecvent în cazul în care problema primală necesită
calcule multe:
Exemplul II.7.2.
m inf = 3x1 + x2
 2 x1 + x2 ≥ 1

 x1 + x2 ≥ 1
 3x1 + 2 x2 ≥ 3.

2 x + 3x ≥ 1
 1 2
 xi ≥ 0, i = 1,2
Pentru a rezolva această problemă cu algoritmul simplex trebuie introduse patru
variabile de egalizare, dar scriind problema duală:

m a gx = y1 + y 2 + 3y 3 + y 4
 2 y + y + 3y + 2 y ≤ 3
 1 2 3 4
 y1 + y 2 + 2 y 3 + 3 y 4 ≤ 1

 yi ≥ 0 = 14 i,
aceasta necesită numai două variabile de egalizare. Obţinem:
−1 −1 −3 −1 0 0
1 2 3 4 5 6
a a a a a a
0 a 5 2 1 3 2 1 0 3
0 a6 1
1 1 2 3 0 1
-1 -1 -3 -1 0 0 0
0 a5 1/2 -1/2 0 -5/2 1 -3/2 3/ 2
a3 1/ 2
−3
1/2 1/2 1 3/2 0 1/2
1/2 1/2 0 7/2 0 3/2 -3/2

deci max g = 3 / 2 = min f .


Pentru a putea formula duala unei probleme de minim am văzut că restricţiile
trebuie să aibă forma (24). În acest caz, restricţiile " ≥ " sunt numite concordante, iar cele
" ≤" neconcordante. Pentru problema primală de maxim, restricţiile " ≤" sunt cele
concordante iar " ≥ " cele neconcordante.
În caz că nu au această formă pot fi aduse la forma (24) după următoarele reguli:

modelul dat modelul dual


număr de variabile număr de restricţii
număr de restricţii număr de variabile
minim maxim
maxim minim
termeni liberi ai coeficienţii funcţiei
restricţiilor obiectiv
coeficienţii funcţiei termenii liberi ai
obiectiv restricţiilor
coloanele matricii liniile matricii restricţiilor
restricţiilor
restricţie concordantă variabilă nenegativă
restricţie neconcordantă variabilă nepozitivă
restricţie egalitate variabilă liberă
variabilă nenegativă restricţie concordantă
variabilă nepozitivă restricţie neconcordantă
variabilă liberă restricţie egalitate
Exemplul II.7.3.

m i nf = 3x1 + 2 x2 + x3 + x4
 2 x1 − x2 + x3 + x4 ≥ 5

 x1 + 2 x2 + x3 + 2 x4 = 1 0

 x1 + x2 + 2 x3 − x4 ≤ 1 0
 x1/2 ≥ 0, x3 ≤ 0, x4 ∈ R
Duala va fi:
m a xg = 5y1 + 1 0y2 + 1 0y3
 2 y1 + y2 + y3 ≤ 3

 − y1 + 2 y2 + y3 ≤ 2
 y1 + y2 + 2 y3 ≥ 1

 y1 + 2 y2 − y3 = 1
 y1 ≥ 0, y2 ≤ 0, y3 ∈ R

S-ar putea să vă placă și