Documente Academic
Documente Profesional
Documente Cultură
⎧n
⎪∑ aij x j ≥ bi , i = 1, m1 , m1 ∈ N
⎪ j =1
⎪⎪ n
I.1.1 ⎨∑ aij x j = bi , i = m1 + 1, m2 , m1 ≤ m2 ∈ N .
⎪ j =1
⎪n
⎪∑ aij x j ≤ bi , i = m2 + 1, m, m2 ≤ m ∈ N
⎪⎩ j =1
n
Observaţie: ∑a ij x j ≤ (≥ )bi , pentru un i fixat, reprezintă un hiperplan cu
j =1
n
frontiera d i : ∑ aij x j = bi . Dacă i ia toate valorile posibile, se obţine un
j =1
I.1.2 x j ≥ 0 , ∀j ∈ 1, n .
Analiza economico-matematică a unor modele liniare
n n
I.1.3 [max] f = ∑ c j x j sau [min] f = ∑ c j x j .
j =1 j =1
⎛ a1 j ⎞
⎜ ⎟
⎜ ... ⎟
α i = (ai1 ... aij ... ain ) ∀i ∈ 1, m , şi coloanele a j = ⎜ aij ⎟ ∀j ∈ 1, n ;
⎜ ⎟
⎜ ... ⎟
⎜a ⎟
⎝ mj ⎠
⎛ x1 ⎞ ⎛ b1 ⎞
⎜ ⎟ ⎜ ⎟
⎜ ... ⎟ ⎜ ... ⎟
X = ⎜ x j ⎟ ; b = ⎜ b j ⎟ ; c = (c1 ... c j ... c n ) ; J = {1,..., n} , I = {1,..., m}.
⎜ ⎟ ⎜ ⎟
⎜ ... ⎟ ⎜ ... ⎟
⎜x ⎟ ⎜b ⎟
⎝ n⎠ ⎝ m⎠
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale
⎧α i X ≥ bi , i = 1, m1
⎪⎪
I.1.1' ⎨α i X = bi , i = m1 + 1, m2 ,
⎪
⎪⎩α i X ≤ bi , i = m2 + 1, m
I.1.2' X ≥ 0,
I.1.3' [opt ] f = cX .
Forma mixtă
⎧α i X ≥ bi , i ∈ I 1 ⊂ I
⎨
⎩α i X = bi , i ∈ I \ I 1
X ≥0
[opt ] f = cX
Optim
maxim minim
Restricţie
≤ Concordantă. Nonconcordantă.
≥ Nonconcordantă. Concordantă.
⎧α X ≤ bi
(O2) α i X = bi , i ∈ I ⇔ ⎨ i ;
⎩α i X ≥ bi
(O3) α i X ≤ bi , i ∈ I → α i X + x n +i = bi ;
α i X ≥ bi , i ∈ I → α i X − x n +i = bi ,
( )
Considerăm B = a j1 ,..., a jk ,..., a jm , unde a j1 ,..., a jk ,..., a jm sunt m
vectori liniar independenţi, j k ∈ J , k ∈ 1, m . Atunci x j1 ,..., x jk ,...x jm sunt
variabilele bazice şi rangA=m. Variabilele x j , j ∈ J \ { j1 ,..., j m } se vor
numi variabile nebazice, relativ la baza B; numărul lor este (n − m ) .
D 4 Vom numi SAB (soluţie admisibilă de bază) corespunzătoare bazei
( )
B = a j1 ,..., a jk ,..., a jm un ansamblu de valori ale variabilelor x1 ,...., x n care
îndeplinesc condiţiile:
- AX = b şi X ≥ 0 .
Analiza economico-matematică a unor modele liniare
(
- Valorile variabilelor bazice sunt pozitive x jk ≥ 0, ∀k ∈ 1, m şi ale celor)
nebazice sunt nule (x j = 0, ∀j ∈ J \ { j1 ,..., j m }) .
Dacă SAB conţine exact m = rangA componente strict pozitive,
atunci ea se numeşte nedegenerată, iar în caz contrar, se numeşte soluţie
degenerată.
⎛XB⎞
Sistemul de restricţii AX = b admite scrierea: (B R )⎜⎜ R ⎟⎟ = b ,
⎝X ⎠
echivalentă cu forma canonică a sistemului de
−1 −1
restricţii: X = B ⋅ b − B ⋅ R ⋅ X , din care rezultă o soluţie admisibilă de
B R
bază:
⎧⎪ X B = B −1 ⋅ b not
⎨ R , dacă B −1 ⋅ b = X B ≥ 0 .
⎪⎩ X = 0
( )
Teorema 3: Dacă sistemul de vectori a j1 ...a jm este liniar independent în
spaţiul bunurilor Rm şi a j1 x j1 + ... + a jm x jm = b , atunci
(
X = 0...x j1 ...x jm ...0 )
T
este punct de extrem (vârf) al poliedrului convex χ.
Reciproca este de asemenea adevărată.
n
Teorema 4: O funcţie liniară f ( X ) = ∑ c j x j , unde X ∈ χ , convexă, îşi
j =1
atinge valoarea optimă, dacă aceasta există, într-un punct de extrem (vârf) al
mulţimii χ.
2 a) Problema duală
n • max( f ) ui ≥ 0
∑a
j =1
ij x j ≤ bi ⇒
• min( f ) ui ≤ 0
n
∑a
j =1
lj x j = bl ul ∈ R
n • max( f ) up ≤ 0
∑a
j =1
pj x j ≥ bp ⇒
• min( f ) up ≥ 0
Analiza economico-matematică a unor modele liniare
[max] f = 15 x1 + 20 x 2 + 18 x3
conc
3 x1 + 2 x 2 + 1x3 ≤ 820 → u1 ≥ 0
[max] f
nonc
7 x1 + 1x 2 + 11x3 ≥ 400 → u 2 ≤ 0
[max] f
eg.
20 x1 + 17 x2 + 3 x3 = 680 → u3 ∈ R
[max] f
Determinate de condiţiile
impuse asupra variabilelor
primalei şi de tipul de optim
al dualei.
[max] f = cX [min]g = Ub
(P.P.) {AX≤b şi (P.D.) {UA ≥ c
X ≥0 U ≥0
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale
Problema primală
Variabile x1 ≥ 0 x2 ≥ 0 … xn ≥ 0 Relaţii Disponibi
l
u1 ≥ 0 a11 a12 … a1n ≤ b1
u2 ≥ 0 a 21 a 22 … a2n ≤ b2
Problema … … … … … … …
duală um ≥ 0 a m1 am2 … a mn ≤ bm
Relaţii ≥ ≥ … ≥ ↓
[min]g
Venituri c1 c2 … cn → [max
unitare
Teorema 3: Fiind dat un cuplu de probleme duale, una şi numai una din
următoarele afirmaţii este adevărată:
i) Cele două probleme au soluţii admisibile. În acest caz, ele admit şi
soluţii optime finite şi valorile optime ale funcţiilor obiectiv coincid.
ii) Una din probleme are soluţii admisibile, cealaltă nu. În acest caz,
prima are optim nemărginit, iar duala sa nu are soluţii.
iii) Nici una din probleme nu are soluţii.
Analiza economico-matematică a unor modele liniare
I.3.1 [min ] f = 40 x1 + 45 x 2
[min ] f = 40 x1 + 45 x2
⎧ x1 x 2
⎪ 3 + 2 ≤ 40
⎪⎪
I.3.2 ⎨ x1 + x 2 ≤ 100 , cu forma standard
⎪ x1 ≥ 30
⎪
⎪⎩ x 2 ≥ 20
⎧2 x1 + 3 x 2 + x3 = 240
⎪ x + x + x = 100
⎪ 1 2 4
⎨
⎪ x1 − x5 = 30
⎪⎩ x 2 − x6 = 20
x2
B
F
( D0 ) G E C
(d 4 )
20 A
D
x1
O 30 100 120
(d1 )
(d 3 ) (d 2 )
S I {(x1 , x2 ) x1 ≥ 0, x2 ≥ 0} ,
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale
[min] f = 40 x1 + 45 x 2
⎧ x1 x2
⎪ 3 + 2 ≤ 40
⎪⎪
⎨ x1 + x2 ≤ 100
⎪40 ≤ x1 ≤ 55
⎪
⎪⎩50 ≤ x2 ≤ 60
x j ≥ 0, j = 1,2
Conform restricţiilor problemei mulţimea χ este nevidă şi mărginită.
În următoarea figură este reprezentată această mulţime şi (D0 ) : 40 x1 + 45 x 2 = 0
x2
100
Figura I.3.2
80
60
50
B' (d 4 )
A' C'
C
( D0 ) (d 3 )
O 40 55 100 120
x1
(d1 )
(d 2 )
Analiza economico-matematică a unor modele liniare
x j ≥ 0, j = 1,2 x j ≥ 0, j = 1,5
Pentru a rezolva geometric problema, reprezentăm în spaţiul x1Ox 2
mulţimea soluţiilor admisibile χ:
x2
660
Figura I.3.3
300
225
A B
( D0 )
C
T.I.3.3
Vâr Coordonate SAB Valorile funcţiei
f economice
O x1 = 0 x1 = 0 x3 = 45
x5 = 66 0
x2 = 0 x2 = 0 x4 = 75
A x1 = 0 x1 = 0 x3 = 0
x5 = 43,5 12150
x 2 = 225 x 2 = 225 x 4 = 18,75
B x1 = 750 / 7 x1 = 750 / 7 x3 = 0 109800
x5 = 117 / 7 = 15685,7
x 2 = 1200 / 7 x 2 = 1200 / 7 x 4 = 0 7
[max] f
C x1 = 200 x1 = 200 x3 = 13
x5 = 0 15240
x 2 = 60 x 2 = 60 x4 = 0
⎡ 750 ⎤
x1 = ⎢ = 107
⎣ 7 ⎥⎦
şi f = 15654 .
⎡1200 ⎤
x2 = ⎢ = 171
⎣ 7 ⎥⎦
[max] f = 60 x1 + 54 x 2
⎧0,1x1 + 0,2 x 2 ≤ 65
⎪
I.3.4 ⎨0,3 x1 + 0,25 x 2 ≤ 100
⎪0,3 x + 0,1x ≤ 66
⎩ 1 2
x j ≥ 0, j = 1,2
x2
660
Figura I. 1.3.4
400
325
A
B
( D0 ) C
(d )
'
1
D
220
(d ) x1
O 333,3 '
650
2
(d 3 )
660
Figura I.3.5
400
325
200 A D
170 B C
x2
700
Figura I.3.6
300
B E
275 A
C
1100
D 500
O 420
(d1 ) (d3 ) (d 2 ) x1
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale
Tabelul sinteză
Valorile funcţiei
Vârf Coordonate SAB
economice
x1 = 0 x1 = 0 x3 = 2100
O ; ; x5 = 1500 0
x2 = 0 x 2 = 0 x 4 = 550
x1 = 0 x1 = 0 x3 = 1275
A ; ; x5 = 125 5500
x 2 = 275 x 2 = 275 x 4 = 0
x1 = 500 / 7 x1 = 500 / 7 x3 = 6800 / 7 43500
; ; x5 = 600 ≈ 6214,28
B
x 2 = 1800 / 7 x 2 = 1800 / 7 x 4 = 0 7
x1 = 375 x1 = 375 x3 = 0
C ; ; x5 = 0 7125
x 2 = 75 x 2 = 75 x 4 = 425 / 2 [max] f
x1 = 420 x1 = 420 x3 = 0
D ; ; x5 = 240 6300
x2 = 0 x2 = 0 x 4 = 340
T.1.3.7
Consumuri specifice Venituri
Produse
M1 M2 unitare
P1 2u.c1 4 u.c 3 u.m.
Soluţie:
• Modelul matematic
Venituri Venit
aşteptate total
SECŢIE
2 u.c M 1 , 4 u.c M 2 3x1
x1 produse P1
⇒ [max] f = 3 x1 + 5 x 2
5 u.c M 1 , 1 u.c M 2 5x 2
x 2 produse P2
⎧2 x1 + 5 x 2 ≤ 16
⎨
⎩4 x1 + x 2 ≤ 11
x j ≥ 0, j = 1,2
1
Unităţi convenţionale = u.c.
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale
[max] f = 3 x1 + 5 x 2
⎧2 x1 + 5 x 2 + x3 = 16
• Forma standard: ⎨ .
⎩4 x1 + x 2 + x 4 = 11
x j ≥ 0, j = 1,4
• Mulţimea soluţiilor admisibile corespunzătoare modelului elaborat:
x2
11
Figura I.3.7
(d 2 )
16/5 A
B
(d1 ) x1
C
O 11/4 9
• Tabelul sinteză:
2 x1 + 5 x 2 ≤ 16 u1 ≥ 0
4 x1 + 1x 2 ≤ 11 u2 ≥ 0
x1 ≥ 0 2u1 + 4u 2 ≥ 3
x2 ≥ 0 5u1 + u 2 ≥ 5
Soluţia grafică a dualei rezultă din figura următoare, în care χ este
nevidă, convexă şi nemărginită.
x2
Figura I.3.8
D
5
(d 2 )
(d1 )
3/4
E
O 1 F x1
3/2
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale
[max] f = 3 x1 + 5 x 2
⎧2 x1 + 5 x 2 ≤ 16 + 1
⎨ ,
⎩4 x1 + x 2 ≤ 11
x j ≥ 0, j = 1,2
[max] f = 3 x1 + 5 x 2
⎧2 x1 + 5 x 2 + x3 = 16 + 1
⎨
⎩4 x1 + x 2 + x 4 = 11
x j ≥ 0, j = 1,4
• Mulţimea soluţiilor admisibile este OA 1 B 1 C şi este reprezentată
mai jos:
x2
11
Figura I.3.9.
(d 2 )
A1
3,4
B1
(d1 )
8,5
O C 11/4 x1
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale
• Tabelul sinteză:
x 2 = 23 / 9 x 2 = 23 / 9 x 4 = 0 [max] f = 19,1(1)
x1 = 11 / 4 x1 = 11 / 4 x3 = 23 / 2 55/4=13,75
C
x2 = 0 x2 = 0 x4 = 0
⎛ 172 109 17 ⎞
Un calcul simplu şi anume o diferenţă ⎜ − = ⎟ ne permite
⎝ 9 6 8⎠
să tragem o concluzie care este adevărată în general, nu numai în acest caz
particular: "dacă decidentul măreşte disponibilul din resursa 1 cu o unitate,
valoarea implicită a acelei unităţi este egală cu creşterea corespunzătoare a
valorii optimale a venitului total". Această creştere corespunde valorii
optime a variabilei dualei modelului iniţial, care a fost corespondenta
17
restricţiei cu disponibilul modificat, şianume u1* = .
19
Am stabilit că o unitate de materie primă M 1 participă cu
17/8=2,125 unităţi monetare la venitul total. Se poate mări acest disponibil
oricât de mult şi venitul să crească continuu? Pentru a afla răspunsul, se va
exprima disponibilul din b1 ca o funcţie liniară de parametru α ∈ R + :
[max] f = 3 x1 + 5 x 2
⎧2 x1 + 5 x 2 ≤ 16 + α
⎨ , α ∈ R *+
⎩4 x1 + x 2 ≤ 11
x j ≥ 0, j = 1,2
Analiza economico-matematică a unor modele liniare
x2
Figura I.3.10
11
(d )
1
4
(d ) 3
1
A1
B1
16/5 (d )1
2
A B
(d )
1
1
C x1
O 11/4 8
9
(d 2 ) Figura I.3.11
7
17/3
A
( D0 )
B
(d1 )
C 17/2
O 6 7 x1
(d 3 )
Analiza economico-matematică a unor modele liniare
⎧1 1
⎪ 50 x1 + 25 x 2 ≤ 20 ⇔ x1 + 2 x 2 ≤ 1000
⎪
⎪ x1 ≤ 400
⎪
⎨ x 2 ≤ 500
⎪3 x + 2 x ≤ 1500
⎪ 1 2
⎪ 25
⎪⎩ x 2 ≥ 100 ( x1 + x 2 ) ⇔ − x1 + 3 x 2 ≥ 0
x j ≥ 0, j = 1,2
Deoarece un termen liber are valoare zero, pot exista soluţii
admisibile degenerate.
• Forma standard:
[max] f = 125 x1 + 117 x 2
⎧ x1 + 2 x 2 + x3 = 1000
⎪ x + x = 400
⎪⎪ 1 4
⎨ x 2 + x5 = 500
⎪3 x + 2 x + x = 1500
⎪ 1 2 6
⎪⎩− x1 + 3 x 2 − x7 = 0
x j ≥ 0, j = 1,7
• Reprezentarea grafică a mulţimii χ:
(d1 ) : x1 + 2 x2 = 1000
(d 2 ) : x1 = 400
(d 3 ) : x2 = 500
(d 4 ) : 3x1 + 2 x 2 = 1500
(d 5 ) : − x1 + 3x 2 = 0
(D0 ) : 125 x1 + 117 x2 = 0
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale
x2
Figura I.3.12
750
(d 2 )
(d 3 )
500 A
( D0 )
C
(d1 )
(d 5 ) D
• Tabelul sinteză:
Soluţie:
• Forma standard:
[max] f = c1 x1 + 2 x2
⎧ x1 + 2 x2 + x3 = 6
⎨ .
⎩ x1 + x2 + x4 = 5
x j ≥ 0, j = 1,4
• Reprezentarea grafică a mulţimii soluţiilor admisibile :
(d1 ) : x1 + 2 x2 = 6
(d 2 ) : x1 + x 2 = 5
x2
Figura I.3.13
A
3
O C 6 x1
d1
d2
● Tabelul sinteză:
Vârf Coordonate SAB f (SAB )
A x1 = 0 x1 = 0 x3 = 0 6
x2 = 3 x2 = 3 x4 = 2
B x1 = 4 x1 = 4 x3 = 0 4c1 + 2
x2 = 1 x2 = 1 x4 = 0
C x1 = 5 x1 = 5 x3 = 1 5c1
x2 = 0 x2 = 0 x4 = 0
Analiza economico-matematică a unor modele liniare
⎛ 1 ⎞ ⎛ 1 ⎞
⎛ x2 ⎞ ⎜ 2 0 ⎟⎛ 6 ⎞ ⎜
2
0 ⎟⎛1 1 ⎞⎛ x ⎞
⎜⎜ ⎟⎟ = ⎜ ⎟⎜⎜ ⎟⎟ − ⎜ ⎟⎜⎜ ⎟⎟⎜⎜ 1 ⎟⎟
⎝ x 4 ⎠ ⎜⎜ − 1 5
1 ⎟⎟⎝ ⎠ ⎜⎜ −
1
1 ⎟⎟⎝ 1 0 ⎠⎝ x3 ⎠
⎝ 2 ⎠ ⎝ 2 ⎠
adică,
⎛ 1 1 ⎞
⎛ x2 ⎞ ⎛ 3 ⎞ ⎜ 2 ⎟
2 ⎟⎛⎜ x1 ⎞⎟ .
⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ − ⎜
⎝ x4 ⎠ ⎝ 2 ⎠ ⎜⎜ − 1 1 ⎜ ⎟
− ⎟⎟⎝ x3 ⎠
⎝ 2 2⎠
Dacă x1 = 0 , x2 = 3 , x3 = 0 şi x 4 = 2 se obţine soluţia admisibilă de
bază corespunzătoare vârfului A. Baza (a 2 a 4 ) este optimală dacă
⎧6 ≥ 4c1 + 2
[max] f = f ( A) = 6 şi ⎨ ⇔ c1 ≤ 1 .
⎩6 ≥ 5c1
Din considerente economice, c1 poate reprezenta un profit unitar, aşadar,
c1 ∈ (0,1]
Problema duală se scrie conform regulilor cunoscute şi rezultă:
[min ]g = 6u1 + 5u2
⎧u1 + u2 ≥ c1
⎨
⎩2u1 + u2 ≥ 2
ui ≥ 0 , i = 1,2
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale
u i ≥ 0 , i = 1,2 u i ≥ 0 , i = 1,5
Figura I.3.14
x2
3 D
2
E
O 1 F x1
d1
d3
d2
⎛ 0⎞
⎜ ⎟
⎜3⎟
X S . A.B = ⎜ ⎟ soluţie optimă pentru c1 = 1
A
0
⎜ ⎟
A ⇔ ⎜ 2⎟
⎝ ⎠
[max] f = f ( A) = 6
U SD. A.B = (0 2 2 1 0 ) f ( A) ≤ g (D )
D ⇔
g (D ) = 15
f ( A ) ≤ g (E )
U SE. A.B = (1 / 4 3 / 2 3 / 4 0 0 )
E ⇔
g (E ) = 9
f ( A) ≤ g ( F )
F ⇔ U SF. A.B = (1 0 0 0 3)
g (F ) = 6
Problema 3 a) Să se rezolve:
[opt ] f = 5 x1 + 6 x 2
⎧ 2 x1 + 7 x 2 ≥ 4
⎪ 3x + x ≥ 2
⎪⎪ 1 2
⎨ 5 x1 + 3 x 2 ≤ 15 .
⎪ 2 x − x ≥ −2
⎪ 1 2
⎪⎩− x1 + 2 x 2 ≥ −2
x1 , x 2 ≥ 0
Soluţie:
• Se aduce problema la forma în care termenii liberi sunt toţi pozitivi:
[opt ] f = 5 x1 + 6 x 2 [opt ] f = 5 x1 + 6 x 2
⎧ 2 x1 + 7 x 2 ≥ 4 ⎧ 2 x1 + 7 x 2 − x3 = 4
⎪ 3x + x ≥ 2 ⎪ 3x + x − x = 2
⎪⎪ 1 2 ⎪⎪ 1 2 4
⎪⎩ x1 − 2 x 2 ≤ 2 ⎪⎩ x1 − 2 x 2 + x7 = 2
x1 , x 2 ≥ 0 x j ≥ 0, ∀j = 1,7
Analiza economico-matematică a unor modele liniare
x2
Figura I.3.15
5
(d 4 )
C
B1
(d 2 )
B2
2 B
B3 B4 (d 5 )
A
7
4 D
E x1
-1 O 2 2 3
3
(d1 )
-1
(d 3 )
χ I = {B, B1 , B 2 , B 3 , B 4 , E},
care nu este convexă. În acest caz simplu, soluţia optimă se stabileşte prin
investigarea tuturor punctelor mulţimii soluţiilor admisibile, după cum
urmează:
x2
5
Submulţimea convexă (CC 1 C 2 )
(d 4 )
eliminată de x 2 ≤ 3
C
(d 6 ) Figura I.3.16
3
C1 C2
B 2
(d 5 )
A
D
7/4
2 x1
-1 3 3
O 2 E (d1 )
-1 (d 2 ) (d 3 )
Forma generală a problemei de programare liniară. Definiţii şi proprietăţi fundamentale
x2
(d 4 )
C
Submulţimea convexă (AA 1 E )
(d 2 ) eliminată de x1 + 2 x 2 ≥ 2
(d 6 ) (d 5 )
1 D
A1
A x1
O E
(d1 )
(d 3 )
Analiza economico-matematică a unor modele liniare
Valoarea
Vârf Coordonate funcţiei Valori optime Observaţii
obiectiv
x1 = 10 / 19
A 98 / 19 ⇒ [min] f = 98 / 19 Se menţine faţă
x 2 = 8 / 19 de modelul
x1* = 10 / 19 iniţial.
x1 = 0
B 12 x 2* = 8 / 19
x2 = 2
x1 = 1 / 2
C1 41 / 2
x2 = 3
⇒ [max] f = 24 Valoarea
x1 = 6 / 5 maximă pe noul
C2 24 x1* = 6 / 5 domeniu este
x2 = 3 mai mică.
x 2* = 3
x1 = 36 / 13
D 210 / 13
x 2 = 5 / 13
x1 = 2
E 10
x2 = 0
x1 = 2 / 5 ⇒ [min] f = 34 / 5 Valoarea
A1 34 / 5 minimă creşte
x2 = 4 / 5 x1* = 2 / 5 faţă de modelul
iniţial.
x1 = 0 x 2* = 4 / 5
B 12
x2 = 2
x1 = 9 / 11 ⇒ [max] f = 285 / 11 Valoarea
C 285 / 11 maximă se
x 2 = 40 / 11 x1* = 9 / 11 menţine faţă de
x1 = 36 / 13 x 2* = 40 / 11
modelul iniţial.
D 210 / 13
x 2 = 5 / 13
x1 = 2
E 10
x2 = 0
(P) X ≥0
[max] f ( x) = CX
Analiza economico-matematică a unor modele liniare
(B ) ⋅ b = (X ) (X )
not
= ( x1 , x 2 , ...., xm )
1 −1 B1 B1 T
≥ 0 . Elementele vectorului sunt
valorile variabilelor bazice, deci, componentele nenegative ale vectorului
X1.
Observaţia 2: Relaţia
II.1.4 f j − c j ≤ 0 , ∀j ∈ J
este criteriu de optimalitate dacă se cere minimizarea funcţiei liniare f.
Observaţia 3: f s − c s = 0 , ∀s ∈ J B , unde J B reprezintă mulţimea indicilor
variabilelor bazice.
f j −cj = 0, f j − c j ≤ 0 , ∀j ∈ {1,.., n}
∃l ∈ J − J B a.î.
∀j ∈ J B şi
[min] f l − cl > 0 şi
f j −cj < 0, ∃k ∈ J − J B a.î.
f k − ck = 0 y sl ≤ 0 , ∀s ∈ J B
∀j ∈ J − J B
Modelul matematic.
Forma standard
AX = b , X ≥ 0 , [max] f ( X ) = cX
rangAm×n = m < n , b ≥ 0 , ∃bk > 0 , k ∈ 1, m
Se generează o SAB
X (1) → B = (a1 ...a m ) şi R = (a m +1 ...a n ) ⇒
⎛ x B = B −1b = x B ⎞
X (1) = ⎜⎜ ⎟ , J B = {1,..., m}
⎟
⎝ x =0
R
⎠
Metode simplex pentru modele liniare
Calculează:
⎧ 0 , pentru ∀a j vector bazic
−1 ⎪
• f j − c j = c ⋅ B ⋅ a j − c j care este ⎨≥ 0 , pentru a j vector nebazic, sau
B
NU
(1)
Analiza economico-matematică a unor modele liniare
(1)
NU
Se aplică:
• criteriul de intrare în bază (C.I.B): min {f j − c j } = f r − c r ;
f j −c j <0
⎧x ⎫ x
• criteriul de eliminare din bază (C.E.B): min ⎨ s ⎬ = k raport unic.
y sr > o y y kr
s∈I ⎩ sr ⎭
Observaţii:
- a k va fi eliminat de a r ;
- y kr > 0 este pivotul iteraţiei;
- dacă raportul nu este unic determinat, se lucrează cu problema perturbată sau se aplică
metoda lexicografică pentru a stabili ce vector va fi eliminat.
Se trece la
( 2)
X SAB , unde ( ) (
f X (1) ≤ f X ( 2 ) )
(a1 ...a k −1 a k a k +1 ...a m ) → (a1 ...a k −1 a r a k +1 ...a m )
(
⇒ J B := J B \ {k} U {r} )
Se calculează componentele vectorilor în noua bază:
x k y k1 y
1) Elementele din linia pivotului, linia k: , ,...., kn ;
y kr y kr y kr
2) Vectorii care se menţin în bază îşi menţin componentele; dacă ar a luat locul lui ak ,
atunci, în noua bază, ar va avea componentele lui ak ;
3) Pentru orice altă componentă care nu a fost calculată la 1) sau 2), se aplică una dintre
formulele:
x i ⋅ y kr − x k ⋅ y ir
x i := , pentru i ∈ J B \ {r}
y kr
y ij ⋅ y kr − y kj ⋅ y ir
y ij := , pentru j∈J
y kr
Metode simplex pentru modele liniare
Observaţia 5:
• numărul soluţiilor admisibile de bază este cel mult C nm ;
• trecerea de la o iteraţie la alta presupune trecerea de la o SAB la o altă
soluţie admisibilă de bază, cel puţin la fel de bună în sensul dat de optimul
funcţiei; rezultă că după un număr finit de paşi acest procedeu iterativ se
opreşte dacă nu apare fenomenul de ciclare.
Etapa 0:
Se consideră un model simplificat al unui proces de fabricare a trei
produse, prin utilizarea limitată a trei resurse:
[max] f = 20 x1 + 16 x2 + 17 x3
⎧ x1 + 2 x2 ≤ 680
⎪
⎨2 x1 + x2 + 4 x3 ≤ 800 ,
⎪2 x + 2 x + x ≤ 900
⎩ 1 2 3
x j ≥ 0, ∀j = 1,3
cu forma standard:
[max] f = 20 x1 + 16 x2 + 17 x3 + 0 x4 + 0 x5 + 0 x6
⎧ x1 + 2 x2 + x4 = 680
⎪
II.1.6 ⎨2 x1 + x2 + 4 x3 + x5 = 800 .
⎪2 x + 2 x + x + x = 900
⎩ 1 2 3 6
x j ≥ 0, ∀j = 1,6
⎡1 2 0 1 0 0⎤
A = ⎢⎢2 1 4 0 1 0⎥⎥
şi rangA = 3 < 6.
⎢⎣2 2 1 0 0 1⎥⎦
a1 a 2 a3 a 4 a5 a 6
Metode simplex pentru modele liniare
⎛ x4 ⎞ ⎛ x1 ⎞
⎜ ⎟ ⎜ ⎟
unitate a4 , a5 şi a6 . Aşadar, X B1
= ⎜ x5 ⎟ , X R1
= ⎜ x2 ⎟ , de unde rezultă
⎜x ⎟ ⎜x ⎟
⎝ 6⎠ ⎝ 3⎠
explicitarea sistemului în raport cu baza B1 :
⎡1 0 0⎤ ⎛ x 4 ⎞ ⎛ 680 ⎞ ⎡1 2 0⎤ ⎛ x1 ⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
II.1.7 ⎢⎢0 1 0⎥⎥ ⋅ ⎜ x 5 ⎟ = ⎜ 800 ⎟ − ⎢⎢2 1 4⎥⎥ ⋅ ⎜ x 2 ⎟
⎢⎣0 0 1⎥⎦ ⎜⎝ x 6 ⎟⎠ ⎜⎝ 900 ⎟⎠ ⎢⎣2 2 1 ⎥⎦ ⎜⎝ x 3 ⎟⎠
⎛ 680 ⎞ ⎛0⎞
⎜ ⎟ not B ⎜ ⎟
⎜ 800 ⎟ = X şi X = ⎜ 0 ⎟ , sau
R
⎜ 900 ⎟ ⎜0⎟
⎝ ⎠ ⎝ ⎠
X SAB = (0 0 0 680 800 900 ) .
T
Pasul 2
⎛ 680 ⎞
⎜ ⎟
f0 = f (X ) = c ⋅ X
1 B B
= (c 4 c5 c6 ) ⋅ X B
= (0 0 0 ) ⋅ ⎜ 800 ⎟ = 0 ;
⎜ 900 ⎟
⎝ ⎠
⎛1⎞
⎜ ⎟
f1 = c ⋅ I
B −1
3 ⋅ a1 = (0 0 0 ) ⋅ I 3 ⋅ ⎜ 2 ⎟ = 0 ,
⎜ 2⎟
⎝ ⎠
⎛ 2⎞
⎜ ⎟
f2 = c ⋅ I
B −1
3 ⋅ a 2 = (0 0 0 ) ⋅ I 3 ⋅ ⎜ 1 ⎟ = 0 ;
⎜ 2⎟
⎝ ⎠
⎛0⎞
⎜ ⎟
f3 = c ⋅ I
B −1
3 ⋅ a3 = (0 0 0 ) ⋅ I 3 ⋅ ⎜ 4 ⎟ = 0 ,
⎜1⎟
⎝ ⎠
⎛1⎞
⎜ ⎟
f4 = c ⋅ I
B −1
3 ⋅ a 4 = (0 0 0 ) ⋅ I 3 ⋅ ⎜ 0 ⎟ = 0 ;
⎜0⎟
⎝ ⎠
⎛0⎞
⎜ ⎟
f5 = c ⋅ I
B −1
3 ⋅ a5 = (0 0 0 ) ⋅ I 3 ⋅ ⎜ 1 ⎟ = 0 ,
⎜0⎟
⎝ ⎠
⎛0⎞
⎜ ⎟
f6 = c ⋅ I
B −1
3 ⋅ a 6 = (0 0 0 ) ⋅ I 3 ⋅ ⎜ 0 ⎟ = 0 .
⎜1⎟
⎝ ⎠
T. II.1.1
cj → 20 16 17 0 0 0
cB B XB a1 a2 a3 a4 a5 a6 ρ
0 a4 680 1 2 0 1 0 0 680/1
0 a5 800 2 1 4 0 1 0 800/2 (minim)
0 a6 900 2 2 1 0 0 1 900/2
fj 0 0 0 0 0 0 0
f j −cj -20 -16 -17 Ø Ø Ø
NU Pasul 4
STOP.
DA [max] f = +∞
∃l ∈ J − J astfel încât f l − cl < 0 şi y sl ≤ 0 , ∀s ∈ J ?
B B
NU Pasul 5
C.I.B ⎯[max] { }
⎯⎯f → minB f j − c j f j − c j < 0 = f l − cl ⇒ al va intra în
j∈J − J
bază.
[max ] f ⎧x ⎫ ⎧b ⎫ b
C.E.B → ρ = minB ⎨ s y sl > 0⎬ = minB ⎨ s a sl > 0⎬ = k , pentru X 1,
[min ] f s∈J
⎩ y sl ⎭ s∈J ⎩ a sl ⎭ a kl
xk
sau, în general, ρ = , de unde rezultă că a k va fi eliminat, iar y kl devine
y kl
pivotul iteraţiei. Se va presupune că pivotul este unic, ceea ce este
echivalent cu a spune că noua SAB are m componente strict pozitive.
Operaţia 1: { }
min f j − c j f j − c j < 0 = min{− 20, - 16, - 17} = −20 = f1 − c1 ,
j =1, 2 , 3
c
B
B X
B
a1 . a k −1 ak a k +1 . am a m +1 . aj . al . an ρ
. . 0 0 . 0 0
b ⋅a −b ⋅a a a ij ⋅ a kl − a kj ⋅ a il
1 kl k 1l 1l
c1 a1 −
a a
kl kl a kl
. . . . . . . . B .
. . . ∀j ∈ J − J 2
.
. . 1 0 . 0 0
b ⋅a −b ⋅a a
k +1 k − 1l k − 1l
c k −1 a k −1 kl k
−
a a
kl kl
. . . 0 . . . . . 1 .
b 1 a a
cl al k km + 1 kn
a a a
kl a
kl kl kl
. . 0 1 . 0 0
b ⋅a −b ⋅a a
k +1 k + 1l k + 1l
c k +1 a k +1 kl k
−
a a
kl kl
. . . . . . . . .
. . .
.
. . 0 . 0 . 1 0
b ⋅a −b ⋅a
m kl k ml
cm am
a
kl
fj f1
. . fk
. . fm fl fn
f0
. 0 fk − c
0 . . . . .
fj − f1 − fm − f m +1 − fl − fn −
k
c c c c c c
j 1 m m +1 l n
Metode simplex pentru modele liniare
680 ⋅ 2 − 800 ⋅1
= 280
2
XB
900 ⋅ 2 − 800 ⋅ 2
= 100
2
1 2
2 ⋅ 2 − 1⋅1
y12 :=
• prima componentă 2
1
2
a2
• a treia componentă 2 ⋅ 2 − 2 ⋅1
2 1 y 32 :=
2
2 2
Analiza economico-matematică a unor modele liniare
T.II.1.3
cj → 20 16 17 0 0 0
cB B
XB a1 a 2 a3 a 4 a5 a6 ρ
fj 8000 20 10 40 0 10 0
f j −cj Ø -6 23 Ø 10 Ø ≥ 0 ? NU
Citirea soluţiei:
x5 0
x6 0
[max] f = x1 + 2 x2 + 2 x3 + x4
⎧ 1
⎪ x1 − x3 + x4 = 1
⎨ 2
⎪⎩ x2 + x3 − x4 = 1
x j ≥ 0 , j = 1,4
Analiza economico-matematică a unor modele liniare
⎡1 0⎤ ⎛ x1 ⎞ ⎡− 1 1 / 2⎤ ⎛ x3 ⎞ ⎛1⎞
⎢0 1⎥ ⋅ ⎜⎜ x ⎟⎟ + ⎢ 1 − 1 ⎥ ⋅ ⎜⎜ x ⎟⎟ = ⎜⎜1⎟⎟ ,
⎣ ⎦ ⎝ 2⎠ ⎣ ⎦ ⎝ 4⎠ ⎝ ⎠
cj → 1 2 2 1
cB B
XB a1 a2 a3 a4 ρ
1 a1 1 1 0 -1 1/2 1/(1/2)
2 a2 1 0 1 1 -1 -
fj 3 1 2 1 -3/2
1 a4 2 2 0 -2 1 -
2 a2 3 2 1 -1 0 -
fj 8 6 2 -4 1
⎧ y = −2 < 0 Th .3
f 3 − c 3 < 0 şi ⎨ 13 ⇒ STOP: [max] f = +∞
⎩ y 23 = −1 < 0
[max] f = 1 ⋅ x1 + 2 x 2 + 2 x3 + 1 ⋅ x 4 [min]g = u1 + u 2
⎧ 1
⎪1 ⋅ x1 + 0 ⋅ x2 + (− 1) ⋅ x3 + ⋅ x4 = 1 u1 ∈ R
⎨ 2 u2 ∈ R
⎪⎩0 ⋅ x1 + 1 ⋅ x2 + 1 ⋅ x3 + (−1) ⋅ x4 = 1
u1 + 0 ⋅ u 2 ≥ 1
x1 ≥ 0 1⋅ u2 ≥ 2
x2 ≥ 0
x3 ≥ 0
(− 1) ⋅ u1 + u 2 ≥ 2
1
x4 ≥ 0 ⋅ u1 − u 2 ≥ 1
2
u2 d 1 : u1 = 1
d 2 : u2 = 2
1
d 4 : u2 = u1 − 1
2
O u1
d 3 : u 2 = u1 + 2
Analiza economico-matematică a unor modele liniare
⎧ AX = b
⎪
II.2.1 ⎨ X ≥ 0 şi rang Am× n = m < n , b ≥ 0 , ∃k ∈ I a.î. bk ≥ 0 .
⎪[max] f ( X ) = cX
⎩
⎧ AX + I m X a = b
⎪
II.2.2 ⎨ X ≥ 0, X a ≥ 0 ,
⎪[max] f = CX − αX
⎩ a
(
unde α >> 0 , I m este matricea unitate de ordin m, X a = x na+1 ...x na+ m )
T
este
⎧ X =0
X SAB ⎨ .
⎩X a = b
[max] f = 3 x1 + 2 x2 + 4 x3
⎧ x1 + 4 x2 + 3 x3 = 6 ⎡1 4 3⎤ ⎛ 6⎞
⎨ , unde A = ⎢ ⎥ , b = ⎜⎜ ⎟⎟ , rangA=2<3.
⎩ 2 x1 + x2 + x3 = 4 ⎣2 1 1⎦ ⎝ 4⎠
x j ≥ 0 , j ∈1,3 a1 a2 a3
Analiza economico-matematică a unor modele liniare
⎡1 0⎤
Se constată că baza B = ⎢ ⎥ nu poate fi formată cu ajutorul unor vectori
⎣0 1 ⎦
din A, motiv pentru care se trece la forma extinsă:
x j ≥ 0 , j ∈1,5
⎡1 4 3 1 0 ⎤
A=⎢ ⎥ , apare baza B = (a 4 a5 ) , care permite scrierea
⎣2 1 1 0 1⎦
soluţiei de start a1 a 2 a 3 a 4 a 5 pentru problema extinsă: x1 = x2 = x3 = 0 ,
x4a = 6 , x5a = 4 şi f va fi (−6α − 4α ) < 0 .
cj → 3 2 4 −α −α
c
B
B X
B a1 a2 a3 a4 a5 ρ
−α a4 6 1 4 3 1 0 6/4
−α a5 4 2 1 1 0 1 4/1
fj − 10α − 3α − 5α − 4α −α −α
≥ 0 ∀j ?
fj −cj − 3α − 3 − 5α − 2 − 4α − 4 Ø Ø
NU
2 a2 3/2 1/4 1 3/4 1/4 0 6
−α a5 5/2 5/4 0 1/4 -1/4 1 2
fj − 5α / 2 + 3 1 / 2 − 5α / 4 2 3/ 2 −α / 4 1/ 2 + α / 4 −α
≥ 0 ∀j ?
fj −cj − 5 / 2 − 5α / 4 Ø − 5 / 2 − 5α / 4 1 / 2 + 5α / 2 Ø
NU
2 a2 1 0 1 7/10 3/10 -1/5 10/7
3 a1 2 1 0 1/5 -1/5 4/5 10
fj 8 3 2 2 0 2
≥ 0 ∀j ?
fj −cj Ø Ø -2 α 2 +α
NU
4 a3 10/7 0 10/7 1 3/7 -2/7
3 a1 12/7 1 -2/7 0 -2/7 6/7
−cj 6/7 +α 10 / 7 + α
≥ 0 ⇒ DA
fj Ø 20/7 Ø
STOP
Metode simplex pentru modele liniare
• Exemplificarea observaţiei 2:
Iteraţia 1 C.I.B: min{− 3α − 3, − 5α − 2, - 4α - 4} = − 5α − 2 = f 2 − c2 sau
min{-3, -5, -4}=-5 ⇒ a 2 eliminat.
[min] f = 5 x1 + x2 + 2 x3 [min] f = 5 x1 + x2 + 2 x3
⎧ x1 + 2 x2 + x3 ≥ 6 ⎧ x1 + 2 x2 + x3 − x4 = 6
⎪ ⎪
⎨ 3x2 + 4 x3 = 20 ⇒ forma standard ⎨ 3x2 + 4 x3 = 20 .
⎪ x + 2 x ≥ 18 ⎪ x + 2 x − x = 18
⎩ 2 3 ⎩ 2 3 5
x j ≥ 0, j = 1,3 x j ≥ 0, j = 1,5
Analiza economico-matematică a unor modele liniare
⎡1 2 1 − 1 0 ⎤
⎛6⎞ ⎡1 0 0 ⎤
A = ⎢⎢0 3 4 0 0 ⎥⎥ ⎜ ⎟
, rang A=3< 5, b = ⎜ 20 ⎟ > 0 , B3 = ⎢⎢0 1 0⎥⎥ nu
⎢⎣0 1 2 0 − 1⎥⎦ ⎜ 18 ⎟
⎝ ⎠ ⎢⎣0 0 1⎥⎦
a1 a 2 a3 a 4 a5
poate fi
formată numai cu coloane din A, dar a1 ∈ B3 .
Etapa 1:
Forma extinsă:
[min] f = 5 x1 + x2 + 2 x3 + αx4a + αx7a ; α >> 0.
⎧ x1 + 2 x 2 + x 3 − x 4 = 6 ⎡1 2 1 −1 0 0⎤
0
⎪
⎨ 3 x 2 + 4 x 3 + x 6 = 20 A = ⎢⎢0 3 4 0 0 1 0⎥⎥
a
⎪ x + 2 x − x + x a = 18 , ⇒
⎩ 2 3 5 7 ⎢⎣0 1 2 0 − 1 0 1⎥⎦
x j ≥ 0, j = 1,7 a1 a 2 a3 a 4 a5 a6 a7
⎛ x1 ⎞ ⎛ 6 ⎞
⎜ ⎟ ⎜ ⎟
X = ⎜ x6 ⎟ = ⎜ 20 ⎟
B
⎜ x ⎟ ⎜ 18 ⎟
⎝ 7⎠ ⎝ ⎠
B = (a1 a6 a7 ) ⇒ X SAB
⎛ x2 ⎞ ⎛ 0 ⎞
⎜ ⎟ ⎜ ⎟
⎜ x3 ⎟ ⎜ 0 ⎟
XR = ⎜ x4 ⎟ = ⎜ ⎟
⎜ ⎟ ⎜0⎟
⎜⎜ x 5 ⎟⎟ ⎜ 0 ⎟
⎝ ⎠ ⎝ ⎠
Metode simplex pentru modele liniare
Tabelul simplex:
cj → 5 1 2 0 0 α α
c
B B B a1 a2 a3 a4 a5 a6 a7 ρ
X
5 a1 6 1 2 1 -1 0 0 0 6/1
α a4 20 0 3 4 0 0 1 0 20/4 (min)
α a7 18 0 1 2 0 -1 0 1 18/2
fj 30 + 38α 5 4α + 10 6α + 5 -5 −α α α [min] f
fj −cj Ø 4α + 9 6α + 3 -3 −α Ø Ø ≤ 0 ∀j ? NU
5 a1 1 1 5/4 0 -1 0 -1/4 0
2 a3 5 0 3/4 1 0 0 1/4 0
α a7 8 0 -1/2 0 0 -1 -1/2 1
31 / 4 − α / 2 [min] f
fj 15 + 8α 5 2 -5 −α − 3/ 4 −α / 2 α
−cj 27 / 4 − α / 2
−α
− 3 / 4 − 3α / 2 ≤ 0 ∀j ? DA
fj Ø Ø -5 Ø
⇒ STOP
unde xn+i este variabila artificială adăugată numai părţii stângi a restricţiei i
STOP
II.2.1 nu are soluţii
Metode simplex pentru modele liniare
[min] f = 50 x1 + 25 x2 + 30 x3
⎧ x1 + 2 x2 + 3 x3 ≥ 8
⎨ , cu forma standard
⎩3 x1 + 4 x2 + x3 ≥ 9
x j ≥ 0, j = 1,3
[min] f = 50 x1 + 25 x2 + 30 x3
⎧ x1 + 2 x2 + 3x3 − x4 = 8
⎨ .
⎩3 x1 + 4 x2 + x3 − x5 = 9
x j ≥ 0, j = 1,5
⎡1 2 3 − 1 0 ⎤
A=⎢ ⎥ ⎛8⎞
⎣3 4 1 0 − 1⎦ , b = ⎜⎜ ⎟⎟ , rangA=2<5. Întrucât matricea A nu
⎝9⎠
a1 a 2 a3 a 4 a5
conţine 2 vectori unitari care să formeze baza unitate în R 2 , vom aplica
metoda celor două faze.
Analiza economico-matematică a unor modele liniare
[min]W = x6 + x7
⎡1 2 3 − 1 0 1 0⎤
⎧ x1 + 2 x2 + 3 x3 − x4 + x6 = 8 A=⎢ ⎥
⎨ , ⎣3 4 1 0 − 1 0 1⎦ . Deoarece
⎩3x1 + 4 x2 + x3 − x5 + x7 = 9
a1 a2 a3 a4 a5 a6 a7
x j ≥ 0, j = 1,7
⎛1 0⎞
B = (a 6 a 7 ) = ⎜⎜ X SAB : X = 0, X a = (8 9 ) . Se aplică
T
⎟⎟ , rezultă
⎝0 1⎠
algoritmul simplex-primal:
cj → 0 0 0 0 0 1 1
B B B ρ
c X a1 a2 a3 a4 a5 a6 a7
1 a6 8 1 2 3 -1 0 1 0 8/2
1 a7 9 3 4 1 0 -1 0 1 8/4
fj 17 4 6 4 -1 -1 1 1
fj −cj 4 6 4 -1 -1 Ø Ø
≤ 0 ∀j = 1, 7 ? NU.
fj 0 0 0 0 0 0
fj −cj 0 Ø Ø 0 0 ≤ 0 ∀j = 1, 7 ? DA ⇒ STOP.
cj →
50 25 30 0 0
B
c B B a3 a5
X a1 a2 a4
T
⎛ 19 7 ⎞
Problema admite soluţia optimă finită X SAB = ⎜ 0 0 0⎟ ,
⎝ 10 5 ⎠
cu [min]f=89,5.
Vom continua studiul modelului matematic prin scrierea dualei:
[max]g = 8u1 + 9u 2
[min] f = 50 x1 + 25 x2 + 30 x3
⎧ u1 + 3u 2 ≤ 50
⎧ x1 + 2 x2 + 3 x3 ≥ 8 → u1 ⎪
⎨ , pentru care duala este ⎨2u1 + 4u 2 ≤ 25 .
⎩3 x1 + 4 x2 + x3 ≥ 9 → u 2 ⎪ 3u + u ≤ 30
⎩ 1 2
x j ≥ 0, j = 1,3
u i ≥ 0, i = 1,2
Analiza economico-matematică a unor modele liniare
cj → 8 9 0 0 0
c
B B X
B a1 a2 a3 a4 a5 ρ
0 a3 50 1 3 1 0 0 50/3
0 a4 25 2 4 0 1 0 25/4
0 a5 30 3 1 0 0 1 30/1
fj 0 0 0 0 0 0
fj −cj -8 -9 Ø Ø Ø ≥ 0 ∀j = 1, 5 ?
0 a3 125/4 -1/2 0 1 3/4 0
9 a2 25/4 1/2 1 0 1/4 0 25/2
0 a3 26 0 0 1 -4/5 1/5
9 a2 3/2 0 1 0 3/10 -1/5
8 a1 19/2 1 0 0 -1/10 2/5
fj 89,5 8 9 0 19/10 7/5
[max] f = x1 + 4 x 2 [max] f = x1 + 4 x 2
⎧ − 2 x1 + x 2 ≤ 1 ⎧ − 2 x1 + x 2 + x3 = 1
⎪ − 2 x + 5x ≥ 5 ⎪ − 2x + 5x − x = 5
⎪ 1 2 ⎪ 1 2 4
⎨ , cu forma standard ⎨ .
⎪ 2 x1 + 3 x 2 ≤ 6 ⎪ 2 x1 + 3 x 2 + x 5 = 6
⎪⎩− 14 x1 + 11x 2 ≤ 14 ⎪⎩− 14 x1 + 11x 2 + x6 = 14
x j ≥ 0, ∀j = 1,2 x j ≥ 0, ∀j = 1,6
x2 d1
2
d2
B
C
1
A
-5/2
-1/2 O 3 x1
d3
⎛3 7⎞
Valoarea maximă este atinsă în B⎜ , ⎟ , prin care trec trei drepte
⎝8 4⎠
care definesc mulţimea convexă (simplexul) a soluţiilor admisibile. Dacă
înlocuim soluţia optimă în forma standard, se obţine un program optim
3 * 7 *
degenerat: x1* = , x 2 = , x3 = 0 , x 4* = 3 , x5* = 0 , x6* = 0 .
8 4
Observaţie: Şi prin A trec trei drepte, d1 , d 2 şi x1 = 0 , deci, prin înlocuirea
coordonatelor sale în forma standard, se obţine o SAB degenerată.
Să presupunem că unei probleme de programare liniară degenerată i
se caută soluţia optimă aplicând metoda simplex, şi, la o anumită iteraţie,
Metode simplex pentru modele liniare
a) Metoda lexicografică
Presupunem că la iteraţia p ∈ N * , vectorul al , l ∈ J , trebuie să intre
în bază, toate componentele sale y sl , s ∈ I , sunt strict pozitive şi
⎧ xs ⎫ xk x
ρ k = ρ r = min ⎨ ⎬= = r .
s| y > 0
sl
⎩ y sl ⎭ y kl y rl
Se pune întrebarea: care din cei doi vectori va fi eliminat, a k sau a r ?
T.II.3.1
cj c1 cl cn
cB B XB a1 … al … an ρ
c1 a1 x1 y1l x1 / y11
… … … …
ck ak xk y kl xk / y kl
… … … … min
cr ar xr y rl xr / y rl
… … … …
cm am xm y ml xm / y ml
fj
f j −cj
xk y k1 y k 2 y y y
, , ,..., kl −1 , kl ,...., kn ;
y kl y kl y kl y kl y kl y kl
x r y r1 y r 2 y y y
, , ,..., rl −1 , rl ,...., rn .
y rl y rl y rl y rl y rl y rl
Pasul 2 DA Se trece la
Operaţia 1 Se compară rapoartele Operaţia 2.
din a doua coloană: NU
y k 1 y r1
= ?
y kl y rl
STOP. Pivotul iteraţiei va fi numitorul
raportului minim. Va fi eliminat
din bază vectorul situat în linia pivotului.
Operaţia 2: k := k + 1 ⇒ Operaţia 1.
Fie problema:
[min] f ( X ) = 3 x1 + 2 x2 + 4 x3 + 2 x4 + 3 x5
⎧ x + 2 x2 + x3 + x 4 = 10
II.3.2 ⎨ 1 .
⎩2 x1 + 3 x 2 + x3 + x5 = 15
x j ≥ 0 , j = 1,5
⎡1 2 1 1 0 ⎤
După scrierea matricii A = ⎢ ⎥ , rangA=2<5, ne este sugerată
⎣2 3 1 0 1⎦
soluţia de
a1 a 2 a3 a 4 a5
X SAB = (0 0 0 10 15) .
T
start pentru algoritmul simplex-primal,
Completând primul tabel, se va observa în formula criteriului de eliminare
din bază că minimul nu este unic. Într-adevăr,
cj 3 2 4 2 3
cB B XB a1 a2 a3 a4 a5 ρ
2 a4 10 1 2 1 1 0 10/2
3 a5 15 2 3 1 0 1 15/3
fj 65 8 13 5 2 3 [min ] f
f j −cj 5 11 1 Ø Ø ≤ 0 ∀j = 1,5 ? NU
10 15
bază. Dar, = . Aşadar, care vector va fi eliminat?
2 3
10 1 2 1 1 0 10 15
Pasul 1 , , , , , Pasul 2 O1: =
2 2 2 2 2 2 2 3
1 2
O2: < ⇒ se elimină vectorul a 4 .
15 2 3 1 0 1 2 3
, , , , ,
3 3 3 3 3 3 Pivotul iteraţiei este 2.
Analiza economico-matematică a unor modele liniare
cj 3 2 4 2 3
c B
B X B a1 a2 a3 a4 a5
2 a4 5 1/2 1 1/2 1/2 0
3 a5 0 1/2 0 -1 -3 1
fj 10 2 2 -1 -5 2
f j −cj
-1 Ø -5 -7 Ø ≤ 0 ∀j = 1,5 ⇒ STOP
b) Metoda perturbaţiilor
Vom exemplifica această metodă pe modelul precedent.
Pasul 1 Fie ε ∈ (0,1) arbitrar de mic. Se va trece de la II.3.2, la o problemă
perturbată, de forma:
n
[max] f = ∑ c j x j
j =1
n n n
II.3.3 ∑ a j x j + ∑ε ja j = b + ∑ε ja j
j =1 j =1 j =1
x j ≥ 0, j = 1, n
Dacă soluţia admisibilă de bază corespunde bazei formată din primii
m vectori, atunci restricţiile din II.3.3 se mai pot scrie:
∑ (x )
m n
II.3.4
s =1
s + ε s as + ∑ε
j = m +1
j
a j = b(ε ) ,
n
unde b(ε ) = b + ∑ ε j a j .
j =1
Metode simplex pentru modele liniare
b a1 a2 a3 a4 a5
⎛ n
⎞
⎜ x s + ε s + ∑ ε j y sk ⎟
ρ = min ⎜⎜ j = m +1 ⎟
⎟.
s| y sk >0 y sk
⎜⎜ ⎟⎟
⎝ ⎠
În particular:
⎛ 10 + ε 4 + ε + 2ε 2 + ε 3 15 + ε 5 + 2ε + 3ε 2 + ε 3 ⎞
ρ = min⎜⎜ , ⎟⎟ =
⎝ 2 3 ⎠
⎛ ε ε3 ε4 2ε ε3 ε5 ⎞
= min⎜⎜ 5 + + ε 2 + + ,5 + + ε 2 + + ⎟⎟
⎝ 2 2 2 3 3 3⎠
ε ε3 ε4 2ε ε3 ε5
Pentru ε suficient de mic, 5 + +ε 2 + + < 5+ +ε2 + + ⇒
2 2 2 3 3 3
a 4 va fi eliminat.
Observaţia 1: Metodele au fost date în cazul în care raportul minim este
realizat pentru doi indici s ∈ I , dar se pot aplica şi în situaţia în care se pot
elimina mai mult de doi vectori din bază.
Analiza economico-matematică a unor modele liniare
⎨− 3 x1 + x 2 + x3 + x6 = 0 .
⎪7 x − 3 x − 3 x + x = 0
⎪ 1 2 3 7
⎪⎩ x1 − x 2 + x3 + x8 = 0
x j ≥ 0, ∀j = 1,8
Metode simplex pentru modele liniare
cj 4 5 3 0 0 0 0 0
cB B XB a1 a2 a3 a4 a5 a6 a7 a8 ρ
0 a4 100 1 0 0 1 0 0 0 0 -
0 a5 90 0 1 0 0 1 0 0 0 90
0 a6 0 -3 1 1 0 0 1 0 0 0
0 a7 0 7 -3 -3 0 0 0 1 0 -
0 a8 0 1 -1 1 0 0 0 0 -1 -
fj 0 0 0 0 0 0 0 0 0
f j −cj
-4 -5 -3 Ø Ø Ø Ø Ø
0 a4 100 1 0 0 1 0 0 0 0 100
0 a5 90 3 0 -1 0 1 -1 0 0 30
5 a2 0 -3 1 1 0 0 1 0 0 -
0 a7 0 -2 0 0 0 0 3 1 0 -
0 a8 0 -2 0 2 0 0 1 0 1 -
fj 0 -15 5 5 0 0 5 0 0
fj −c
-19 Ø 2 Ø Ø 5 Ø Ø
5 a2 90 0 1 0 0 1 0 0 0 -
0 a7 90 0 0 0 0 1 5/2 1 1/2 36
3 a3 45 0 0 1 0 1/2 1/4 0 3/4 180
fj 765 4 5 3 0 17/2 -1/4 0 13/4
f j −cj
Ø Ø Ø Ø 17/2 -1/4 Ø 13/4
cj 4 5 3 0 0 0 0 0
cB B XB a1 a2 a3 a4 a5 a6 a7 a8
0 a4 46 0 0 0 1 -3/5 0 -1/10 -3/10
5 a2 90 0 1 0 0 1 0 0 0
0 a6 36 0 0 0 0 2/5 1 2/5 1/5
3 a3 36 0 0 1 0 2/5 0 -1/10 7/10
f j −cj
Ø Ø Ø Ø 43/5 Ø 1/10 33/10
c) Ciclare
Dacă valoarea funcţiei scop nu se modifică pe parcursul câtorva
iteraţii succesive, este posibil să apară fenomenul de ciclare, adică să se
revină la una dintre soluţiile admisibile de bază prin care s-a trecut deja.
Metode simplex pentru modele liniare
3 1
[min] f = − x 4 + 20 x 5 − x 6 + 6 x 7
4 2
⎧ 1
⎪ x1 + 4 x 4 − 8 x 5 − x 6 + 9 x 7 = 0
⎪
⎨ x + 1 x − 12 x − 1 x + 3x = 0 .
⎪ 2 2 4 5
2
6 7
⎪x + x = 1
⎩ 3 6
x j ≥ 0 , j = 1,6
cj 0 0 0 -3/4 20 -1/2 6
cB B XB a1 a2 a3 a4 a5 a6 a7 ρ
0 a1 0 1 0 0 1/4 -8 -1 9 0
0 a2 0 0 1 0 1/2 -12 -1/2 3 0
0 a3 1 0 0 1 0 0 1 0 -
fj 0 0 0 0 0 0 0 0
f j −cj Ø Ø Ø 3/4 -20 1/2 -6
Analiza economico-matematică a unor modele liniare
cj 0 0 0 -3/4 20 -1/2 6
c B
B XB a1 a2 a3 a4 a5 a6 a7 ρ
-3/4 a4 0 4 0 0 1 -32 -4 36 -
0 a2 0 -2 1 0 0 4 3/2 -15 0
0 a3 1 0 0 1 0 0 1 0 -
fj 0 -3 0 0 -3/4 24 3 -27
f j −cj
-3 Ø Ø Ø 4 7/2 -33
cj 0 0 0 -3/4 20 -1/2 6
c B
B X B a1 a2 a3 a4 a5 a6 a7 ρ
-3/4 a4 0 -12 8 0 1 0 8 -84 0
-
20 a5 0 -1/2 1/4 0 0 1 3/8 0
15/4
0 a3 1 0 0 1 0 0 1 0 1
fj 0 -1 -1 0 -3/4 20 3/2 -12
f j −cj
-1 -1 Ø Ø Ø 2 -18
cj 0 0 0 -3/4 20 -1/2 6
c B
B XB a1 a2 a3 a4 a5 a6 a7 ρ
-1/2 a6 0 -3/2 1 0 1/8 0 1 -21/2 -
20 a5 0 1/16 -1/8 0 -3/64 1 0 3/16 0
0 a3 1 3/2 -1 1 -1/8 0 0 21/2 2/21
fj 0 2 -3 0 -1 20 -1/2 9
f j −cj 2 -3 Ø -1/4 Ø Ø 3
Metode simplex pentru modele liniare
cj 0 0 0 -3/4 20 -1/2 6
c B
B XB a1 a2 a3 a4 a5 a6 a7 ρ
-1/2 a6 0 2 -6 0 -5/2 56 1 0 0
6 a7 0 1/3 -2/3 0 -1/4 16/3 0 1 0
0 a3 1 -2 6 1 5/2 -56 0 0 -
fj 0 1 -1 0 -1/4 4 -1/2 6
f j −cj 1 -1 Ø 1/2 -16 Ø Ø
cj 0 0 0 -3/4 20 -1/2 6
c B
B X B a1 a2 a3 a4 a5 a6 a7 ρ
0 a1 0 1 -3 0 -5/4 28 1/2 0 -
6 a7 0 0 1/3 0 1/6 -4 -1/6 1 0
0 a3 1 0 0 1 0 0 1 0 1
fj 0 0 2 0 1 -24 -1 6
f j −cj Ø 2 Ø 7/4 -44 -1/2 Ø
cj 0 0 0 -3/4 20 -1/2 6
cB B XB a1 a2 a3 a4 a5 a6 a7 ρ
0 a1 0 1 0 0 1/4 -8 -1 9 4
0 a2 0 0 1 0 1/2 -12 -1/2 3 0
0 a3 1 0 0 1 0 0 1 0 -
fj 0 0 0 0 0 0 0 0
f j −cj Ø Ø Ø 3/4 -20 1/2 -6
soluţia optimă, evitând în acest fel ciclarea, aşa cum se vede din
următoarele două iteraţii:
cj 0 0 0 -3/4 20 -1/2 6
cB B XB a1 a2 a3 a4 a5 a6 a7 ρ
0 a1 0 1 -1/2 0 0 -2 -3/4 15/2 -
-3/4 a4 0 0 2 0 1 -24 -1 6 -
0 a3 1 0 0 1 0 0 1 0 1
fj 0 0 -3/2 0 -3/4 18 3/4 -9/2
f j −cj
Ø -3/2 Ø Ø -2 5/4 -21/2
cj 0 0 0 -3/4 20 -1/2 6
c B
B X B a1 a2 a3 a4 a5 a6 a7
0 a1 3/4 1 -1/2 3/4 0 -2 0 15/2
-3/4 a4 1 0 2 1 1 -24 0 6
-1/2 a6 1 0 0 1 0 0 1 0
fj -5/4 0 -3/2 -5/4 -3/4 18 -1/2 -9/2
f j −cj
Ø -3/2 -5/4 Ø -2 Ø -21/2
min f ( x) = cX
II.4.1 {AX = b ,
X ≥0
1 Schema logică
S.II.4.1
NU
⎛ f B
−c ⎞
Se completează ultima coloană din tabel cu vectorul B1−1 a 1k = ⎜⎜ B k k
⎟.
⎝ k
y = B −1
a k ⎟⎠
DA STOP
y kB ≤ 0 ? Problema are optim ( − ∞ ).
NU
xiB x rB
Se alege r după regula: min = .
B
i| yik y ikB y rkB
r k
Se înlocuieşte coloana a cu coloana a , şi se formează noua bază primal
~ ~ ~ ~
admisibilă, B1 . Se calculează B1−1b1 , u B , B1−1 a 1j .
Analiza economico-matematică a unor modele liniare
Pas 1 Se calculează f jB − c j = u B a j − c j , ∀j ∈ R .
xiB x rB
Pas 3 Alegem r după regula: min = B . Se înlocuieşte coloana a r cu
B
i| yik y B y rk
ik
~
coloana a k , şi se formează noua bază primal admisibilă, B1 . Se revine la
Pasul 1.
Să rezolvăm cu algoritmul simplex revizuit următoarea problemă de
programare liniară:
[min] f = −2 x1 − x 2
⎧ x1 − x 2 ≤ 4
⎪
⎨3 x1 − x 2 ≤ 18 .
⎪− x + 2 x ≤ 6
⎩ 1 2
x i ≥ 0 , ∀i = 1,2
Metode simplex pentru modele liniare
x4 0 0 1 0 18
x5 0 0 0 1 6
Analiza economico-matematică a unor modele liniare
⎛− c j ⎞
Pentru ∀j ∈ R , calculăm f jB − c j = (1 u B )⎜⎜ ⎟ . În cazul nostru,
⎟
⎝ aj ⎠
R = {1,2} . Aşadar, pentru j = 1 avem:
⎛2⎞
⎜ ⎟ ⎛1⎞
B ⎛
− c1 ⎞ ⎜1⎟ ⎜ ⎟
f 1B (
− c1 = 1 u ⎜⎜) ⎟⎟ = (1 0 0 0)⎜ ⎟ = 2 > 0 , B a1 = ⎜ 3 ⎟ ,
−1
⎝ a1 ⎠ 3
⎜ ⎟ ⎜ − 1⎟
⎜ − 1⎟ ⎝ ⎠
⎝ ⎠
iar pentru j = 2 ,
⎛1⎞
⎜ ⎟ ⎛ − 1⎞
B ⎛
− c2 ⎞ ⎜ − 1⎟ ⎜ ⎟
f 2B ( )
− c 2 = 1 u ⎜⎜ ⎟⎟ = (1 0 0 0 )⎜ ⎟ = 1 > 0 , B a 2 = ⎜ − 1⎟ .
−1
−1
⎝ a2 ⎠ ⎜ ⎟ ⎜ 2⎟
⎜ 2⎟ ⎝ ⎠
⎝ ⎠
x4 0 0 1 0 18 3
x5 0 0 0 1 6 -1
⎧ 4 18 ⎫ 4
Deoarece min ⎨ , ⎬ = , variabila x 3 va ieşi din bază. Pivotul
⎩1 3 ⎭ 1
este, desigur, valoarea aflată în căsuţa colorată, adică 1. Tabelul simplex
revizuit următor se obţine din cel precedent, după aceleaşi reguli care se
aplică tabelului simplex obişnuit.
Metode simplex pentru modele liniare
Variabilele de bază ~ ~ ~
B1−1 B1−1b1 B1−1 a12
*
x 0 1 -2 0 0 -8 3
x1 0 1 0 0 4 -1
x4 0 -3 1 0 6 2
x5 0 1 0 1 10 1
⎛1⎞
⎜ ⎟
~
f 2B (B ⎛
~
− c 2 = 1 u ⎜⎜
− c2 ⎞
) ⎜ − 1⎟
⎟⎟ = (1 − 2 0 0 )⎜ ⎟ = 3 > 0 (soluţia curentă
−1
⎝ a2 ⎠ ⎜ ⎟
⎜2⎟
⎝ ⎠
nu este optimă).
⎛ 1 0 0 ⎞⎛ − 1⎞ ⎛ − 1⎞
~ −1 ⎜ ⎟⎜ ⎟ ⎜ ⎟
B a 2 = ⎜ − 3 1 0 ⎟⎜ − 1⎟ = ⎜ 2 ⎟ (rezultă de aici că nu avem optim
⎜ 1 0 1 ⎟⎜ 2 ⎟ ⎜ 1 ⎟
⎝ ⎠⎝ ⎠ ⎝ ⎠
infinit),
⎛ 0⎞
⎜ ⎟
~
f 3B (B ⎛
~
− c 3 = 1 u ⎜⎜ )
− c3 ⎞ ⎜1⎟
⎟⎟ = (1 − 2 0 0 )⎜ ⎟ = −2 < 0 .
⎝ a3 ⎠ 0
⎜ ⎟
⎜ 0⎟
⎝ ⎠
~
~
Următorul tabel simplex revizuit, unde baza este acum notată B1 :
Variabilele de bază ~
~ ~
~ ~
~
B1−1 B1−1b1 B1−1 a13 **
x0 1 5/2 -3/2 0 -17 5/2
x1 0 -1/2 1/2 0 7 -1/2
⎛ 0⎞
⎜ ⎟
~
⎜1⎟
− c 3 = (1 5 / 2 − 3 / 2 0)⎜ ⎟ = 5 / 2 > 0 (soluţia curentă nu este
~
f 3B
0
⎜ ⎟
⎜ 0⎟
⎝ ⎠
optimă).
⎛ − 1 / 2 1 / 2 0 ⎞⎛ 1 ⎞ ⎛ − 1 / 2 ⎞
~
~ −1 ⎜ ⎟⎜ ⎟ ⎜ ⎟
B a 3 = ⎜ − 3 / 2 1 / 2 0 ⎟⎜ 0 ⎟ = ⎜ − 3 / 2 ⎟ (rezultă de aici că nu avem
⎜ 5 / 2 − 1 / 2 1 ⎟⎜ 0 ⎟ ⎜ 5 / 2 ⎟
⎝ ⎠⎝ ⎠ ⎝ ⎠
optim infinit),
⎛0⎞
⎜ ⎟
~
⎜0⎟
f 4 − c4 = (1 5 / 2 − 3 / 2 0)⎜ ⎟ = −3 / 2 < 0 .
~
B
1
⎜ ⎟
⎜0⎟
⎝ ⎠
Se observă imediat că singura variabilă care poate ieşi din bază este
x5 . Pivotul este 5/2. La această iteraţie baza curentă este notată prin B̂1 .
Metode simplex pentru modele liniare
⎛0⎞
⎜ ⎟
⎜0⎟
− c 4 = (1 0 − 1 − 1)⎜ ⎟ = −1 < 0 şi
ˆ
Cum f 4B
1
⎜ ⎟
⎜0⎟
⎝ ⎠
⎛ 0⎞
⎜ ⎟
⎜ 0⎟
− c5 = (1 0 − 1 − 1)⎜ ⎟ = −1 < 0 , rezultă că soluţia curentă,
ˆ
f 5B
0
⎜ ⎟
⎜1⎟
⎝ ⎠
x = (42 / 5 36 / 5 14 / 5 0 0) este optimă, unică şi nedegenerată.
T
f j − c j = c B B −1 a j − c j ≥ 0 , ∀j = 1, n
NU
∀j = 1, n ⇒
Analiza economico-matematică a unor modele liniare
x j ≥ 0, j = 1,3
Soluţie:
● Se schimbă sensul primelor două restricţii:
[min] f = 6 x1 + 5 x 2 + 6 x3
⎧ 4 x1 − x 2 − x3 ≤ −2
⎪
⎨− 2 x1 + x 2 − x3 ≤ −6
⎪ − x + x − 2x ≤ 3
⎩ 1 2 3
x j ≥ 0, j = 1,3
xi ≥ 0, ∀i ∈ 1,6
⎛ 4 −1 −1 1 0 0⎞
⎜ ⎟
După scrierea matricii A = ⎜ − 2 1 − 1 0 1 0 ⎟ , rangA=3<6,
⎜ −1 1 − 2 0 0 1⎟
⎝ ⎠
se constată că bazei (a 4 a5 a 6 ) îi corespunde o soluţie bazică
X = (0 0 0 − 2 − 6 3) , care nu respectă condiţia de nenegativitate.
T
Analiza economico-matematică a unor modele liniare
cj →
6 5 6 0 0 0
cB B XB a1 a2 a3 a4 a5 a6
0 a4 -2 4 -1 -1 1 0 0
0 a5 -6 -2 1 -1 0 1 0
0 a6 3 -1 1 -2 0 0 1
fj 0 0 0 0 0 0 0
f j −cj Ø
-6 5 -6 Ø Ø ≤ 0 ∀j = 1,6 ? DA
j = 1,6 în noua
bază (a 4 a1 a 6 ) şi a diferenţelor f j − c j , j = 1,6 .
Metode simplex pentru modele liniare
cj → 6 5 6 0 0 0
c B
a1 a2 a3 a4 a5 a6
B XB
0 a4 -14 0 1 -3 1 2 0
6 a1 3 1 -1/2 1/2 0 1/2 0
0 a6 6 0 1/2 -3/2 0 -1/2 1
fj 18 6 -3 3 0 -3 0
f j −cj Ø
Ø -8 -3 Ø -3
≤ 0 ∀j = 1,6 ? DA
cj →
6 5 6 0 0 0
a1 a2 a3 a4 a5 a6
cB B XB
6 a3 14/3 0 -1/3 1 -1/3 -2/3 0
6 a1 2/3 1 -1/3 0 1/6 -1/6 0
0 a6 13 0 0 0 -1/2 -3/2 1
fj 32 6 -4 6 -1 -5 0
f j −cj Ø
≤ 0 ∀j = 1,6 ?
Ø -9 Ø -1 -5
DA
Analiza economico-matematică a unor modele liniare
[max] f = 3 x1 + 2 x 2 + 6 x3
⎧ x1 + 3x 2 + 4 x3 ≤ 105
⎪
Exemplul 2 Se consideră programul liniar: ⎨ 2 x1 + 5 x 2 + x3 ≤ 70 .
⎪4 x + x + 2 x ≤ 175
⎩ 1 2 3
x j ≥ 0, ∀j ∈ 1,3
[max] f = 3 x1 + 2 x 2 + 6 x3
⎧ x1 + 3 x 2 + 4 x3 + x 4 = 105
⎪
⎨ 2 x1 + 5 x 2 + x3 + x5 = 70 .
⎪4 x + x + 2 x + x = 175
⎩ 1 2 3 6
x j ≥ 0, ∀j ∈ 1,6
Metode simplex pentru modele liniare
cj → 3 2 6 0 0 0
cB B XB x1 x2 x3 x4 x5 x6
0 x4 105 1 3 4 1 0 0
0 x5 70 2 5 1 0 1 0
0 x6 175 4 1 2 0 0 1
fj 0 0 0 0 0 0 0
f j −cj -3 -2 -6 Ø Ø Ø ≥ 0 ∀j = 1,6 ?
1/4 0 NU
6 x3 105/4 1/4 3/4 1 0
0 x5 175/4 7/4 17/4 0 -1/4 1 0
0 x6 490/4 7/2 -1/2 0 -1/2 0 1
fj 315/2 3/2 9/2 6 3/2 0 0
f j −cj ≥ 0 ∀j = 1,6 ?
-3/2 5/2 Ø 3/2 Ø Ø
NU
≥ 0 ∀j = 1,6 ?
Se observă că f j − c j ≥ 0 , ∀j = 1,6 , deci programul
DA liniar admite
● Se construieşte duala:
x j ≥ 0, ∀j ∈ 1,6 u i ≥ 0, ∀i ∈ 1,3
u i ≥ 0, ∀i ∈ 1,6
u i ≥ 0, ∀i ∈ 1,6
Metode simplex pentru modele liniare
cj → 105 70 175 0 0 0
c B
B X B u1 u2 u3 u4 u5 u6
0 u4 -3 -1 -2 -4 1 0 0
0 u5 -2 -3 -5 -1 0 1 0
0 u6 -6 -4 -1 -2 0 0 1
fj 0 0 0 0 0 0 0
f j −cj -105 -70 -175 Ø Ø Ø ≤ 0 ∀j = 1,6
Se verifică uşor că
⎛ − 4 / 7 0 1 / 7 ⎞ ⎛ − 25 ⎞ ⎛ x1* ⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
(70 0 15)⎜ − 17 / 7 1 − 1 / 7 ⎟ = ⎜ 0 ⎟ = −⎜ x2* ⎟ .
⎜ 1/ 7 0 − 2 / 7 ⎟⎠ ⎜⎝ − 20 ⎟⎠ ⎜ x* ⎟
⎝ ⎝ 3⎠
Analiza economico-matematică a unor modele liniare
[min] f = 3 x1 + 5 x 2 + 4 x3
⎧2 x + x 2 ≥ 12
Problema 1 Se consideră modelul liniar: ⎨ 1 .
⎩ x1 + 2 x 2 + x3 ≥ 20
x j ≥ 0, ∀j = 1,3
a) Să se genereze, dacă este posibil, SAB sau/şi SDR prin explicitarea
sistemului de restricţii în raport cu bazele (a1 , a 2 ) şi (a 2 , a3 ) .
b) Să se scrie duala sa. Admite soluţie optimă finită? Justificaţi răspunsul.
c) Ce legătură există între SAB generată la punctul a) şi problema duală?
d) Să se rezolve problema dată cu ajutorul algoritmului simplex-dual.
Soluţie:
[min] f = 3 x1 + 5 x 2 + 4 x3
⎧2 x1 + x 2 − x 4 = 12
a) • Forma standard: ⎨ .
⎩ x1 + 2 x 2 + x3 − x5 = 20
x j ≥ 0, ∀j = 1,5
⎛2 1 0 −1 0 ⎞
• Matricea sistemului de restricţii: A = ⎜⎜ ⎟⎟ .
⎝ 1 2 1 0 − 1⎠
⎛ 12 ⎞
• Vectorul termenilor liberi: b = ⎜⎜ ⎟⎟ .
⎝ 20 ⎠
Metode simplex pentru modele liniare
⎝ x2 ⎠ ⎜x ⎟
⎝ 5⎠
restricţii scris sub forma canonică relativ la B este
⎛ x3 ⎞
⎛ 2 1 ⎞ ⎛ x1 ⎞ ⎛ 0 − 1 0 ⎞ ⎜ ⎟ ⎛ 12 ⎞
II.6.1 ⎜⎜ ⎟⎟ ⋅ ⎜⎜ ⎟⎟ + ⎜⎜ ⎟⎟ ⋅ ⎜ x 4 ⎟ = ⎜⎜ ⎟⎟ .
⎝ 1 2 ⎠ ⎝ x 2 ⎠ ⎝ 1 0 − 1⎠ ⎜ x ⎟ ⎝ 20 ⎠
⎝ 5⎠
⎛ 2 1⎞
⎜ − ⎟
Prin înmulţirea relaţiei II.6.1 cu B −1 =⎜ 3 3 ⎟ , obţinem:
⎜− 1 2 ⎟
⎜ ⎟
⎝ 3 3 ⎠
⎛ x3 ⎞
⎛ 1 0 ⎞ ⎛ x1 ⎞ ⎛ 2 / 3 − 1 / 3 ⎞ ⎛ 0 − 1 0 ⎞ ⎜ ⎟ ⎛ 2 / 3 − 1 / 3 ⎞ ⎛ 12 ⎞
⎜⎜ ⎟⎟ ⋅ ⎜⎜ ⎟⎟ + ⎜⎜ ⎟⎟ ⋅ ⎜⎜ ⎟⎟ ⋅ ⎜ x 4 ⎟ = ⎜⎜ ⎟⎟ ⋅ ⎜⎜ ⎟⎟
⎝ 0 1 ⎠ ⎝ x 2 ⎠ ⎝ − 1 / 3 2 / 3 ⎠ ⎝ 1 0 − 1⎠ ⎜ x ⎟ ⎝ − 1 / 3 2 / 3 ⎠ ⎝ 20 ⎠
⎝ 5⎠
, sau
⎛ x3 ⎞
⎛ x1 ⎞ ⎛ − 1 / 3 2 / 3 1 / 3 ⎞ ⎜ ⎟ ⎛ 4 / 3 ⎞
⎜⎜ ⎟⎟ + ⎜⎜ ⎟⎟ ⋅ ⎜ x 4 ⎟ = ⎜⎜ ⎟⎟ .
⎝ x 2 ⎠ ⎝ 2 / 3 1 / 3 − 2 / 3 ⎠ ⎜ x ⎟ ⎝ 28 / 3 ⎠
⎝ 5⎠
⎛ 4/3 ⎞
Deoarece B −1b = ⎜⎜ ⎟⎟ > 0 se poate construi o soluţie admisibilă
⎝ 28 / 3 ⎠
4 28
de bază, şi anume x1 = , x2 = , x3 = x 4 = x5 = 0 , pentru care valoarea
3 3
152
funcţiei obiectiv va fi .
3
Analiza economico-matematică a unor modele liniare
⎛ x1 ⎞
⎛ x 2 ⎞ ⎛ 1 0 ⎞ ⎛ 2 − 1 0 ⎞ ⎜ ⎟ ⎛ 1 0 ⎞ ⎛ 12 ⎞
⎜⎜ ⎟⎟ + ⎜⎜ ⎟⎟ ⋅ ⎜⎜ ⎟⎟ ⋅ ⎜ x 4 ⎟ = ⎜⎜ ⎟⎟ ⋅ ⎜⎜ ⎟⎟ .
⎝ x3 ⎠ ⎝ − 2 1 ⎠ ⎝ 1 0 − 1⎠ ⎜ x ⎟ ⎝ − 2 1 ⎠ ⎝ 20 ⎠
⎝ 5⎠
⎛ x1 ⎞
⎛ x 2 ⎞ ⎛ 2 − 1 0 ⎞ ⎜ ⎟ ⎛ 12 ⎞ ⎧2 x + x 2 − x 4 = 12
⎜⎜ ⎟⎟ + ⎜⎜ ⎟⎟ ⋅ ⎜ x 4 ⎟ = ⎜⎜ ⎟⎟ sau ⎨ 1 .
⎝ x3 ⎠ ⎝ − 3 2 − 1⎠ ⎜ x ⎟ ⎝ − 4 ⎠ ⎩− 3 x1 + x3 + 2 x 4 − x5 = −4
⎝ 5⎠
⎛ 12 ⎞
Se observă că B −1b = ⎜⎜ ⎟⎟ nu are toate componentele pozitive.
⎝ − 4⎠
Dacă se vor anula variabilele nebazice x1 = x 4 = x5 = 0 şi cele bazice vor
lua valorile x 2 = 12 , x3 = −4 , se va obţine o soluţie a problemei care are
două componente nenule (rangA=2) şi vectorii ataşaţi variabilelor bazice
sunt liniar independenţi ( a 2 şi a3 formează baza). În aceste condiţii,
vectorul X 1 = (0 12 − 4 0 0 )
T
nu poate fi SAB, dar ar fi dual
Metode simplex pentru modele liniare
cj → 3 5 4 0 0
cB B XB a1 a2 a3 a4 a5
5 a2 12 2 1 0 -1 0
3 a3 -4 -3 0 1 2 -1
fj 48 1 5 3 1 -3
f j −cj -2 0 0 1 -3
cj 3 5 4 0 0
cB B XB a1 a2 a3 a4 a5
0 a4 -12 -2 -1 0 1 0
0 a5 -20 -1 -2 -1 0 1
fj 0 0 0 0 0 0
f j −cj -3 -5 -4 0 0
5 a4 -2 -3/2 0 1/2 1 -1/2
3 a2 10 1/2 1 1/2 0 -1/2
x j ≥ 0, ∀j ∈ 1,2
⎧ x + x2 = 4
d 2 I d 3 = {C} , prin rezolvarea sistemelor de ecuaţii ⎨ 1 ,
⎩− 2 x1 + x 2 = 3
⎧ x1 + x 2 = 4 ⎧− 2 x1 + x 2 = 3
⎨ şi ⎨ , găsim coordonatele punctelor A, B şi C, şi
⎩3 x1 + x 2 = 5 ⎩ 3 x1 + x 2 = 5
⎛ 1 11 ⎞ ⎛1 7⎞ ⎛ 2 19 ⎞
anume: A⎜ , ⎟ , B⎜ , ⎟ şi C ⎜ , ⎟ . Astfel, porţiunea haşurată din
⎝3 3 ⎠ ⎝2 2⎠ ⎝5 5 ⎠
grafic reprezintă mulţimea soluţiilor admisibile. Se ştie faptul că soluţia
optimă se găseşte într-unul din vârfurile mulţimii soluţiilor admisibile.
⎛ 2 19 ⎞
Astfel, este foarte uşor de realizat faptul că C ⎜ , ⎟ reprezintă punctul de
⎝5 5 ⎠
minim. Valoarea funcţiei obiectiv în acest punct, valoarea minimă a funcţiei,
2 19 67
este 5 ⋅ + 3⋅ = .
5 5 5
x2
d2
C
A
B
d1
x1
O
d3
Analiza economico-matematică a unor modele liniare
Soluţie analitică: Vom utiliza algoritmul simplex dual (punctul a)), apoi
algoritmul simplex primal (punctul b)).
[min] f = 5 x1 + 3 x 2
⎧ x1 + x 2 − x3 = 4
⎪
⎨− 2 x1 + x 2 − x 4 = 3 .
⎪ 3x + x − x = 5
⎩ 1 2 5
x j ≥ 0, ∀j ∈ 1,5
a) Pentru a aplica algoritmul simplex dual, vom înmulţi mai întâi fiecare
[min] f = 5 x1 + 3 x 2
⎧ − x1 − x 2 + x3 = −4 ⎛ −1 −1 1 0 0⎞
⎪ ⎜ ⎟
restricţie cu (− 1) : ⎨ 2 x1 − x 2 + x 4 = −3 , cu A = ⎜ 2 − 1 0 1 0 ⎟ .
⎪− 3 x − x + x = −5 ⎜ − 3 −1 0 0 1⎟
⎩ 1 2 5 ⎝ ⎠
x j ≥ 0, ∀j ∈ 1,5
cj 5 3 0 0 0
cB B XB a1 a2 a3 a4 a5
0 a3 -4 -1 -1 1 0 0
0 a4 -3 2 -1 0 1 0
0 a5 -5 -3 -1 0 0 1
0 0 0 0 0 0
≤ 0 ∀j ?
fj
DA ⇒ SDR
f j −cj -5 -3 Ø Ø Ø
0 a3 -7/3 0 -2/3 1 0 -1/3
0 a4 -19/3 0 -5/3 0 1 2/3
5 a1 5/3 1 1/3 0 0 -1/3
25/3 5 5/3 0 6 -1/3
≤ 0 ∀j ?
fj
DA ⇒ SDR
f j −cj Ø -4/3 Ø Ø -1/3
0 a3 1/5 0 0 1 -2/5 -3/5
3 a2 19/5 0 1 0 -3/5 -2/5
5 a1 2/5 1 0 0 -1/5 -1/5
x j ≥ 0, ∀j ∈ 1,8
cj 5 3 0 0 0 α α α
B a1 a2 a3 a4 a5 a6 a 7 a8
cB XB
α a6 4 1 1 -1 0 0 1 0 0
α a7 3 -2 1 0 -1 0 0 1 0
α a8 5 3 1 0 0 -1 0 0 1
fj 14 α 2α 3α -α -α -α α α α
f j −cj 2 α -5 3 α -3 -α -α -α Ø Ø Ø
α a6 1 3 0 -1 1 0 -1 0
3 a2 3 -2 1 0 -1 0 0 0
α a8 2 5 0 0 1 -1 0 1
fj 3 α +9 8α 3 -α -α -α α α
f j −cj 8 α -5 Ø -α -α -α Ø Ø
Prin rezolvarea acestui model liniar prin cei doi algoritmi am vrut să
evidenţiem, încă o dată, comportarea duală a acestora în ceea ce priveşte
atingerea minimului funcţiei f :
f 01 = 14α
Algoritmul
simplex primal f 02 = 3α + 9
f 03 = (58 + α ) / 3
[min] f = 67 / 5
Algoritmul
simplex dual f 02 = 25 / 3
f 01 = 0
III. ANALIZA ECONOMICO-MATEMATICĂ
A PROBLEMELOR AFLATE ÎN DUALITATE
⎧u1 + 2u 2 + 5u 3 ≥ 20
⎪
III.1.5 ⎨ 2u1 + u 2 + 4u 3 ≥ 10
⎪ 4u + 2u ≥ 12
⎩ 2 3
III.1.6 u i ≥ 0, ∀i = 1,3
Analiza economico-matematică a problemelor aflate în dualitate
cB B XB a1 a2 a3 a4 a5 a6 ρ
0 a4 680 1 2 1 1 0 0 680
0 a5 800 2 1 4 0 1 0 400
fj 0 0 0 0 0 0 0
deoarece va provoca cea mai mare creştere a funcţiei economice venit total,
şi anume:
900
= 0+ ⋅ c1 = 3600
5
⎛1⎞
⎜ ⎟
Conform consumurilor specifice ⎜ 2 ⎟ din cele trei resurse disponibile
⎜5⎟
⎝ ⎠
în cantităţi egale cu 680, 800, respectiv 900, numărul maxim de produse P1
care pot fi fabricate este 180; resursa R3 este prima resursă care se consumă
prin introducerea lui P1 în programul de fabricaţie.
T.III.1.2
c j → 20 10 12 0 0 0 Criterii
cB B XB a1 a2 a3 a4 a5 a6 ρ
0 a4 500 0 6/5 -2/5 1 0 -1/5 -
fj 3600 20 16 8 0 0 4
f j −cj Ø 6 -4 Ø Ø 4 ≥ 0 ∀j ? NU
0 a4 555 0 9/8 0 1 1/8 -1/4
440
= 3600 + ⋅ 4 = 4150 .
16 / 5
⎧u1 + 2u 2 + 5u 3 − u 4 = 20
⎪
Forma standard a problemei duale este ⎨ 2u1 + u 2 + 4u 3 − u 5 = 10 . Înlocuim
⎪ 4u + 2u − u = 12
⎩ 2 3 6
⎧ 5 35
⎪ 2 + 2 − u 4 = 20
⎪⎪ 5 21 *
⎨ + 14 − u 5 = 10 , de unde rezultă u 4 = 0 , u 5 = , u6 = 0 .
* *
⎪4 4
⎪ 5 + 7 − u 6 = 12
⎪⎩
Aşadar, (u*
1 u 2* u 3* f 4 − c4 f 5 − c5 f 6 − c6 ) este soluţia
optimă pentru forma standard a dualei problemei analizate.
unică:
a j = y1 j a1 + y 2 j a 2 + ... + y mj a m , pentru j ∉ {1,.., m} ,
care poate fi scrisă pe componente astfel:
⎛ y1 j ⎞
⎜ ⎟
f j − c j = c B ( B −1 ⋅ a j ) − c j = c B ⎜ ... ⎟ − c j = (c1 y1 j + ... + c m y mj ) − c j .
⎜y ⎟
⎝ mj ⎠
Interpretarea economică:
−1
• B ⋅ a j reprezintă scrierea lui a j în baza B (vezi III.1.8).
Analiza economico-matematică a unor modele liniare
xl
Se spune că [− ρ l ( f k − c k )] = − ( f k − c k ) reprezintă creşterea lui f prin
y lk
trecerea la noua soluţie admisibilă de bază.
Analiza economico-matematică a problemelor aflate în dualitate
xk(i+1)
∑a
j =1
ij x j ≤ bi , ∀i ∈ 1, m ,
adică,
∀i ∈ 1, m .
Desigur, condiţia de nenegativitate este de asemenea impusă:
x j ≥ 0 , ∀j ∈ 1, n .
Analiza economico-matematică a problemelor aflate în dualitate
∑a u
i =1
ij i ≥ cj , ∀j ∈ 1, n ,
ceea ce înseamnă
u i ≥ 0 , ∀i ∈ 1, m .
Măsurat în
Venit total optim măsurat kg, m2, lăzi, × u i
în unităţi monetare etc.
III.2.7 b i := bi + 1 ,
Obţinem
m
III.2.8 b1u1* + ... + (bi + 1)u i* + ... + bm u m* = ∑ bi u i* + u i* = [max ] f + u i* .
i =1
[max] f = cX [min ]g = ub
x u
{AX≤b şi {uA ≥ c .
X ≥0 u≥0
⎛ n ⎞
III.2.11 u i* ⎜⎜ ∑ aij x *j − bi ⎟⎟ = 0 , i = 1, m .
⎝ j =1 ⎠
n
Cazul 1 u i* > 0 ⇒ ∑a
j =1
ij x *j − bi = 0 ⇒ Dacă prin programul optim resursa
x j ≥ 0, ∀j ∈ 1,3 u i ≥ 0, ∀i ∈ 1,3
⎛ 250 ⎞
⎜ ⎟
⎜ 150 ⎟
⎜ 0 ⎟
• admit soluţii optime finite X * = ⎜ ⎟ , respectiv U * = (3 5 4 ) ;
⎜ 0 ⎟
⎜ 0 ⎟
⎜ ⎟
⎜ 250 ⎟
⎝ ⎠
• [max] f = [min]g = 6600 .
Analiza economico-matematică a unor modele liniare
• primala a fost rezolvată prin algoritmul simplex primal. Din tabelul final
⎛ 3 / 8 − 1/ 8 0⎞
−1
⎜ ⎟
am extras baza optimă: (a 2 a1 a6 ) , B = ⎜ − 1 / 8 3 / 8 0 ⎟ şi
⎜ − 5 / 8 − 1/ 8 1 ⎟
⎝ ⎠
f j − c j = (0 0 5 3 5 0) .
nu este complet utilizată, preţul său umbră este nul. Pentru i = 3 , din
III.2.11, rezultă:
⎛ m
⎞
III.2.12 x *j ⎜ c j − ∑ aij u i* ⎟ = 0 , j = 1, n ,
⎝ i =1 ⎠
care va fi analizat în două circumstanţe.
m
Cazul 3 x *j > 0 ⇒ c j = ∑ aij u i* , cu interpretarea: este rentabilă
i =1
Pentru j = 1 , se observă că
m
Cazul 4 ∑a u
i =1
ij
*
i ≠ c j ⇒ x *j = 0 ⇒ fabricarea lui Pj nu este
Să reţinem:
Problema primală Problema duală
* n
x Pj
∑a u
nivelul activităţii
j
ij
*
i ≥ c j . Criterii de optimalitate pentru
(număr de produse Pj ) j =1
primală cu factori de cost relativ.
m *
u Ri , privit ca rata cu
∑a
- preţul umbră ataşat lui
ij x *j ≤ bi - cât va fi consumat din Ri i
*
i =1 care f ( X ) poate să crească sau să descrească la
prin programul optim) o creştere cu o unitate a respectivei resurse.
( )
⎧u1* x1* + 2 x 2* − 680 = 0
⎪ * *
(
⎪u 2 2 x1 + x 2 + 4 x3 − 800 = 0
* *
)
⎪ 3 1 (
⎪u * 5 x * + 4 x * + 2 x * − 900 = 0
2 3 )
⎨
[ (
* * *
)]
⎪ 20 − u1 + 2u 2 + 5u 3 ⋅ x1 = 0
*
⎪
[ ( 1 2 3 )]
⎪ 10 − 2u * + u * + 4u * ⋅ x * = 0
2
[ ( )]
⎪⎩ 12 − 4u 2 + 2u 3 ⋅ x3 = 0
* * *
- În penultima relaţie,
( ) ⎛ 5 7 ⎞
10 − 2u1* + u2* + 4u3* ≠ 0 ⎜ 2 ⋅ 0 + + 4 ⋅ > 10 = c 2 ⎟ ⇒ x 2* = 0 .
4 2
⎝ ⎠
Produsul de tip 2 nu intră în programul optim de fabricaţie, deoarece
valoarea timpilor de prelucrare la cele trei secţii a unui produs de tipul 2,
calculată pe baza preţurilor interne optime, depăşeşte profitul său unitar.
- Din antepenultima şi ultima relaţie rezultă că este rentabilă
⎡ 275 ⎤
prelucrarea a 125 produse de tipul 1 şi a ⎢ ⎥ produse de tipul 2, pentru
⎣ 2 ⎦
că valorile timpilor de prelucrare obţinute prin evaluarea acestora cu
ajutorul preţurilor interne nu depăşesc profiturile.
Analiza economico-matematică a problemelor aflate în dualitate
[min] f = 2 x1 + 20 x 2 + 3 x 3 + 11 x 4 + 12 x 5
⎧ x + x 3 + x 4 + 2 x 5 ≥ 700 → u1
(P.P) ⎨ 1
⎩ x 2 + x 4 + x 5 ≥ 400 → u2
x j ≥ 0, ∀j ∈ 1,5
care are duala
⎪⎩2u1 + u 2 ≤ 12 → x5
u1 , u 2 ≥ 0
Analiza economico-matematică a unor modele liniare
⎧ x1 + x3 + x 4 + 2 x5 − x 6 = 700
⎨ ,
⎩ x 2 + x 4 + x5 − x 7 = 400
⎛1 0 1 1 2 −1 0 ⎞ ⎛ 700 ⎞
astfel că A = ⎜⎜ ⎟⎟ , cu rangA=2, b = ⎜⎜ ⎟⎟ şi
⎝ 0 1 0 1 1 0 − 1⎠ ⎝ 400 ⎠
c = (2 20 3 11 12 0 0 ) .
1
Problema cere minimizarea formei liniare f, şi cum f ( X SAB ) este
2 1
mai apropiată de [min]f decât f ( X SAB ) , X SAB va fi soluţia de start.
Se aplică algoritmul simplex primal.
Analiza economico-matematică a problemelor aflate în dualitate
cj 2 20 3 11 12 0 0
cB B xB a1 a2 a3 a4 a5 a6 a7 ρ
2 a1 700 1 0 1 1 2 -1 0 700/2 (min)
20 a2 400 0 1 0 1 1 0 -1 400/1
fj 9400 2 20 2 22 24 -2 -20
f j −cj Ø Ø -1 11 12 -2 -20
cj 2 20 3 11 12 0 0
cB B xB a1 a2 a3 a4 a5 a6 a7 ρ
12 a5 350 1/2 0 1/2 1/2 1 -1/2 0 350/(1/2)
20 a2 50 -1/2 1 -1/2 1/2 0 1/2 -1 50/(1/2) (min)
fj 5200 -4 20 -4 16 12 4 -20
f j −cj -6 Ø -7 5 Ø 4 -20
12 a5 300 1 -1 1 0 1 -1 1
11 a4 100 -1 2 -1 1 0 1 -2
fj 4700 1 10 1 11 12 -1 -10
[min]f=4700.
Analiza economico-matematică a unor modele liniare
d2
d1
D
C
Figura III.3.1
O A u1
d4 d3
Analiza economico-matematică a problemelor aflate în dualitate
⎧ u1 = 2
⎨ .
⎩2u1 + u 2 = 12
⎧ u1 = 2
⎨
⎩u 2 = 20
⎧ u 2 = 20
j = 2, f 2 = 20 ⇒ Pasul 2 ⎨ .
⎩2u1 + u 2 = 12
⎧2u + u 2 = 12
Sistemul saturat al bazei optime (a5 a 4 ) va fi ⎨ 1 .
⎩ u1 + u 2 = 11
Se observă că soluţia acestui sistem este soluţia optimă a dualei.
( )
⎧ X B * = B −1b
⎪
⎪
( )
*
IV.2.2 ⎨ X R = 0 ,
⎪ B bază optimală
⎪⎩
T.IV.2.1
cj c1 K c j K c n
cB B X
B
a1 K a j K a n
−1
cj aj B ⋅b B −1 ⋅ a j , j = 1, n
fj CB ⋅ X
B
C B ⋅ B −1 ⋅ a j , j = 1, n [max ] f
f j −cj C B ⋅ B −1 ⋅ a j − c j ≥ 0, (∀) j = 1, n
Analiza economico-matematică a unor modele liniare
cB B XB a1 K a j K a n
?
~ ? ?
fj
~ ~ ?
f j −cj
Pasul 1
Se identifică baza iniţială şi se citeşte B −1 .
Se scrie c~ = (c + ∆c )
j j .j∈ N
Postoptimizare în programarea liniară
Pasul 2
Se citeşte baza optimală B pentru modelul iniţial (vezi tabelul IV.2.1).
Dacă a j este nebazic, j ∈ J \ J B , (a j ∉ B ) , se calculează
~ ~ ~ B −1
f j − c j = c B a j − c~j .
Se verifică dacă sunt îndeplinite condiţiile de optimalitate după
modificarea lui c :
~
Pentru [max ] f ⇒ f j − c~ j ≥ 0, (∀) j = 1, n ?
- Dacă NU ⇒ Pasul 3.
- Dacă DA ⇒ STOP. Soluţia optimă a problemei iniţiale este
optimă şi pentru problema postoptimizată şi
( )
[max] ~f = c~X * = (c + ∆c)X * = cB + ∆cB X B = cB X B + ∆cB X B = [max] f + ∆cB X B
Pasul 3
Exemplificare
Modelul matematic:
[min ] f = 250 x1 + 200 x2 + 300 x3
⎧ x1 + 2 x3 ≥ 4
⎪
IV.2.6 ⎨ x1 + x 2 ≥ 6
⎪x + 2x ≤ 8
⎩ 1 2
x j ≥ 0, j = 1,2,3,
a fost rezolvat prin algoritmul simplex-primal. Generarea unei soluţii
admisibile s-a realizat prin metoda bazei artificiale. S-a constatat că
programul liniar admite soluţie optimă finită, unic determinată şi
degenerată, care poate fi citită din următorul tabel:
T.IV.2.3
cj 250 200 300 0 0 0 α >> 0 α >> 0
cB B X B a1 a2 a3 a 4 a5 a 6 a7 a8
250 a1 4 1 0 2 -1 0 0 1 0
200 a2 2 0 1 -2 1 -1 0 -1 1
0 a6 0 0 0 2 -1 2 1 1 -2
~
fj 1400 250 200 100 -50 -200 0 50 200 [min ] f
~ ~
f j − cj Ø Ø -200 -50 -200 Ø 50 − α 200 − α ≤ 0, (∀) j = 1,8
Acest tabel a fost obţinut după 2 iteraţii, baza iniţială fiind formată
din (a 7 , a8 , a 6 ) , unde a 7 şi a8 sunt vectori artificiali. Valorile optimale
sunt:
* * * * *
X * : x1 = 4, x 2∗ = 2, x3 = x 4 = x5 = 0, x 6 = 0
şi [min ] f = 1400 .
Se va studia natura soluţiei X * în cazul în care coeficienţii funcţiei
obiectiv se modifică astfel:
c~1 = 200, c~2 = 220, c~3 = 250,
sau
c~ = (250 − 50, 200 + 20, 300 − 50 ) = (c + ∆c ) .
Deseori paşii 1 şi 2 nu sunt parcurşi explicit, ci se extinde tabelul
simplex optim al problemei iniţiale cu:
♦ linie c~j , deasupra liniei c j ;
Postoptimizare în programarea liniară
♦ o coloană c~ B în stânga;
~ ~
♦ două linii f j şi f j − c~ j în continuarea tabelului (aceste două linii se
vor completa după scrierea lui c~ , j = 1, n şi c~ B ).
j
c~ B c
B
B X B a1 a2 a3 a4 a5 a6 ρ
200 250 a1 4 1 0 2 -1 0 0 _
250 200 a2 2 0 1 -2 1 -1 0 21
0 0 a6 0 0 0 2 -1 2 1 _
~
fj 1300 200 250 -100 50 -250 0 [min ] f
~ ~
f j − cj Ø Ø -350 50 -250 Ø
≤ 0, (∀) j = 1,6 ?
NU ⇒ Pasul 3
continuă cu alg. simplex-
primal
200 a1 6 1 1 0 0 -1 0
0 a4 2 0 1 -2 1 -1 0
0 a6 2 0 0 0 0 1 1
~
fj 1200 200 200 0 0 -200 0 [min ] f
~ ~
f j − cj Ø -50 0 Ø -200 Ø
≤ 0, (∀) j = 1,6 ?
DA ⇒ STOP
Analiza economico-matematică a unor modele liniare
~
Spre deosebire de X * , X * este nedegenerată. Verificăm dacă:
~
[max] ~f = [max] f + c B X B . Într-adevăr,
1400 + (−50 0 0)(4 2 0) T = 1400 − 200 = 1200 .
T. IV.3.1
cj c1 K c j K c n
B ~ a1 K a j K a n
cB XB
~
B−1 ⋅ b
fj ~
CB ⋅ X B
f j −cj
~
Pentru X B este verificat criteriul de optimalitate, deci pentru a-i
asigura optimalitatea mai trebuie să impunem condiţia de non-negativitate a
~
componentelor sale: X ≥ 0 ?
Dacă DA, atunci STOP. Noile valori optime ale variabilelor bazice
~ ~
sunt respectiv egale cu x1 , K , x m , iar valoarea funcţiei scop este dată de
relaţia IV.3.2.
Dacă NU, se trece la Pasul 3.
~
Pasul 3 Rezultă că (∃) s ∈ J B astfel încât x s < 0 . Cum criteriul de
optimalitate se menţine, rezultă că s-a generat o soluţie dual realizabilă
pentru problema postoptimizată. Se aplică algoritmul simplex-dual cu
~
soluţia de start : X B = X B , X R = 0.
[max] f = 3 x1 + 2 x 2 + 2 x3
⎧3 x1 + 2 x 2 + 2 x3 ≤ 5600
⎪
IV.3.3 ⎨2 x1 + x 2 + 2 x3 ≤ 4000 .
⎪5 x + 3 x + 2 x ≥ 7500
⎩ 1 2 3
x j ≥ 0, j = 1,2,3.
Postoptimizare în programarea liniară
T. IV.3.2
cj 3 2 2 0 0 0 −α
cB B XB a1 a2 a3 a4 a5 a6 a7
2 a2 1900 2 1 0 -1 0 -1 1
0 a5 300 1 0 0 -2 1 -1 1
fj 5600 3 2 2 1 0 0 0
f j −cj 0 Ø Ø 1 Ø 0 α >0
Soluţia optimă
* * * * * *
X * : x1 = 0, x 2 = 1900, x3 = 900, x 4 = 0, x5 = 300, x 6 = 0 , nu este unic
determinată, deoarece în linia f j − c j apar diferenţe egale cu zero ce
corespund vectorilor nebazici a1 şi a 6 . Variabilele x 4 , x5, x6 sunt variabile
de compensare. În soluţia optimă x5 ia valoarea 300, ceea ce ar însemna că
300 unităţi din resursa R2 cu disponibilul 4000 nu sunt utilizate. Se va
simula o modificare a termenului liber b prin micşorarea disponibilului din
a doua resursă limitată:
~
δ b = (0 − 300 0) T ⇒ b = (5600 3700 7500) T .
Pasul 1
• Baza iniţială este (a 4 , a 5 , a 7 ) . Se va lucra cu forma extinsă,
deoarece prin aducere la forma standard apar numai vectorii unitate
a 4 şi a5 .
⎛ −1 0 1 ⎞
⎜ 3 ⎟
−1
• B =⎜ 0 − 1⎟ .
⎜⎜ 2 ⎟⎟
⎝− 2 1 1 ⎠
Analiza economico-matematică a unor modele liniare
Pasul 2
~B
X = B −1 ⋅ (5600 3700 7500) T = (1900 900 0) T ≥ 0 → STOP.
~ ~
f 0 = c B X B = (2 2 0) ⋅ (1900 900 0) T = 5600 = f 0 .
Se observă că modificarea lui b lasă neschimbată structura programului de
fabricaţie, dar consumă integral resursa R2 .
Se va exemplifica şi cazul în care trebuie parcurs şi Pasul 3, luând
~
b = (6000 3700 8000)T = (5600 4000 7500)T + (400 − 300 500)T = b + δ b
.
Pasul 2'
~B
x = B −1 ⋅ (6000 3700 8000) T = (2000 1000 − 300) T ≥ 0 ? ⇒ NU.
Pasul 3'
Primul tabel simplex-dual al problemei modificate va diferi de
tabelul simplex optimal al problemei iniţiale prin componentele lui X B ,
valoarea lui f 0 şi prin faptul că nu conţine vectori artificiali. Există o regulă
generală care spune că în tabelul simplex al problemei postoptimale nu
trebuie reţinuţi vectorii artificiali, ca urmare rezultă:
T. IV. 3.3
cj 3 2 2 0 0 0
cB B XB a1 a2 a3 a4 a5 a6
2 a2 2000 2 1 0 -1 0 -1
0 a5 -300 1 0 0 -2 1 -1
fj 6000 3 2 2 1 0 0 [max ] f
f j −cj 0 Ø Ø 1 Ø 0 ≥ 0, (∀) j = 1,6 ? DA
(vezi observaţia 1)
Postoptimizare în programarea liniară
cB B XB a1 a2 a3 a4 a5 a6
2 a2 2300 1 1 0 1 -1 0
0 a6 300 -1 0 0 2 -1 1
fj 6000 3 2 2 1 0 0 [max ] f
f j −cj 0 Ø Ø 1 0 Ø
≥ 0, (∀) j = 1,6 ? DA
⇒STOP
XB ≥0
⎧ 0 1 ⎫ 0
min ⎨ , ⎬= ⇒ (− 1) pivot ,
⎩ −1 − 2 ⎭ −1
* * * * * *
X * : x1 = 0, x 2 = 2300, x3 = 700, x 4 = 0, x5 = 0, x6 = 300
şi
*
f 0 = 6000 .
bi bi
[min ] f
n
∑a
j =1
ij x j ≥ bi
∑a
j =1
ij x j ≤ bi
[max ] f
n
∑a
j =1
ij x j ≥ bi
∑a
j =1
ij x j ≤ bi
Valoare iniţială
⎛1900⎞ x2
⎛ 5600 ⎞ B
⎜ ⎟
⎜ ⎟ X = ⎜ 900 ⎟ x3 f * = 5600
b = ⎜ 4000 ⎟ ⎜ 300 ⎟ x
⎜ 7500 ⎟ ⎝ ⎠ 5
⎝ ⎠
b1 := b1 + 1
⎛ 1899 ⎞ x2 Restricţie b1 ↑ 1u.resursă
⎛ 5601 ⎞ ~B ⎜ ⎟
~ ⎜ ⎟ X = ⎜1803/ 2⎟ x3 f = 5601 concordantă
f ↑ 1 = u1* u.
b = ⎜ 4000 ⎟ ⎜ 298 ⎟ x
⎜ 7500 ⎟ ⎝ ⎠ 5 ≤
m
⎝ ⎠
b1 ↑αu1*
⇒
α ∈R+*,u1* > 0
f ↑ αu1* dacă
b1 := b1 + αu *
1
⎛ 1900−αu1* ⎞
α ∈ R+∗ ⎜ ⎟
f = 5600 + αu1* Restricţie
0 ≤ αu1* ≤ 150
⎜ 900+ 3 αu* ⎟ ≥ 0
⎜ 2
1⎟
cu condiţia concordantă din punct de
⎛5600+ αu1* ⎞ ⎜ 300− 2αu* ⎟
~ ⎜ ⎟ ⎝ 1 ⎠
0 ≤ αu1* ≤ 150 ≤ vedere
b = ⎜ 4000 ⎟
⎜⎜
7500 ⎟
⎟ ⇒αu1* ∈ [0,150] matematic. În
⎝ ⎠ realitate acest
interval este
impus de
tehnologia
produselor.
Valorile
Concluzii
Valorile ~ funcţiei scop
~
X B = B −1b ~
vectorului b f ( X B ) = cB X B Tipul
∆bi , ∆f
restricţiei
b3 ↑ 100 u.res
b3 := b3 + 100 Restricţie ursă
⎛ 2000 ⎞ x2
⎛ 5600 ⎞ ⎜ ⎟ f = 5600 neconcordan f îşi menţine
~ ⎜ ⎟ ⎜ 800 ⎟ x3
b = ⎜ 4000 ⎟ ⎜ 400 ⎟ x tă valoarea
⎜ 7600 ⎟ ⎝ ⎠ 5
⎝ ⎠ ≥ deoarece
u 3* = 0
x j ≥ 0∀j = 1,3
Din tabelul T.IV.2.3. reţinem următoarele elemente:
● Baza optimă: B = (a1 a2 a 6 ) în raport cu care:
⎛1 0 0⎞
−1
⎜ ⎟
● B = ⎜ −1 1 0⎟ ;
⎜ 1 − 2 1⎟
⎝ ⎠
Postoptimizare în programarea liniară
⎛ 4⎞
⎜ ⎟
X B
= ⎜ 2⎟ ;
⎜ 0⎟
⎝ ⎠
soluţia optimă a dualei: U * = (50 200 0 ) ;
[min] f = f * = 1400 .
b1 =b1 + 2 = 6
⎛ 6 ⎞ x1 Restricţie
⎛ 6⎞ ⎜ ⎟ ~ ∆b1 = 2 , b1 ↑
~ ⎜ ⎟ ⎜ 0 ⎟ x2 f = 1500 concordantă
b = ⎜ 6⎟ ⎜ 2⎟ x ≥ ∆f = 100 > 0 , f ↑
⎜8⎟ ⎝ ⎠ 6
⎝ ⎠
b2 =b2 −1 = 5
⎛ 4 ⎞ x1 Restricţie
⎛ 4⎞ ⎜ ⎟ ~ ∆b2 = −1 , b2 ↓
~ ⎜ ⎟ ⎜ 1 ⎟ x2 f = 1200 concordantă
b = ⎜5⎟ ⎜ 2⎟ x ≥ ∆f = −200 < 0 , f ↓
⎜8⎟ ⎝ ⎠ 6
⎝ ⎠
b3 =b3 + 2 =10
⎛ 4 ⎞ x1 Restricţie
∆b3 = 2 , b3 ↑
⎛ 4⎞ ⎜ ⎟ ~
~ ⎜ ⎟ ⎜ 2 ⎟ x2 f = 1400 neconcordantă
b =⎜ 6 ⎟ ⎜ 2⎟ x ≤ ∆f = 0 deoarece u 3* = 0
⎜10⎟ ⎝ ⎠ 6
⎝ ⎠
b3 =b3 −1=7
⎛ 4 ⎞ x1 Restricţie
⎛ 4⎞ ⎜ ⎟
~ ⎜ ⎟ ⎜ 2 ⎟ x2 neconcordantă SDR
b = ⎜ 6⎟ ⎜ − 1⎟ x ≤
⎜7⎟ ⎝ ⎠ 6
⎝ ⎠
Analiza economico-matematică a unor modele liniare
X ≥0 ;
n
[max] f = ∑ ck xk + c j x j ,
k =1
k≠ j
X ≥0 ;
n
[max] f = ∑ ck xk + c~j x j .
k =1
k≠ j
Postoptimizare în programarea liniară
T IV.4.1
cj c1 KKKK c j −1 c~ j c j +1 KKKK c n
cB B XB a1 KKKK a j −1 a~ j a j +1 KKKK a n
?
fj ?
j∈J \ JB.
~ ~
Se calculează f j − c~j : f j − c~ j = c B ⋅ a~ j − c~ j .
B
~
Pasul 2 Pentru [max ] f , f j − c~ j ≥ 0 ?
y sj ≤ 0, (∀)s ∈ {1, K, n} ?
Pasul 3 ~
♦ Dacă DA, atunci STOP, problema modificată admite optim
infinit, [max ] f = +∞ .
♦ Dacă NU, se trece la Pasul 4.
Pasul 4
X * nu este soluţie optimă pentru problema postoptimizată.
~
Deoarece f j − c~ j < 0 , nu se mai verifică criteriul de optimalitate, ca
cB B XB a1 KKKK a j −1 a~ j a j +1 KKKK a n
B −1b B −1 ⋅ a~ j
fj ~
fj
f j −cj ~ ~
f j − cj < 0
⎛ −1 0 1 ⎞
⎜ 3 ⎟
0 − 1⎟ ⇒ a~1 = B −1 ⋅ (2 2 3) T = (1 0 1) T .
B
Pasul 1 B −1 =⎜
⎜⎜ 2 ⎟⎟
⎝− 2 1 1 ⎠
⎛1⎞
~ ~ B ~ B ~ ⎜ ⎟
f 1 − c1 = c ⋅ a1 − c1 = (2 2 0) ⋅ ⎜ 0 ⎟ − 3,5 = −1,5 < 0 .
⎜1⎟
⎝ ⎠
~ ~
Pasul 2 f 1 − c1 ≥ 0 ? NU. Atunci, se trece la următorul pas.
T. IV.4.3
cj 3,5 2 2 0 0 0
cB B XB a~1 a2 a3 a4 a5 a6 ρ
2 a2 1900 1 1 0 -1 0 -1 1900/1
2 a3 900 0 0 1 3/2 0 1 _
0 ← a5 300 1 0 0 -2 1 -1 300/1
fj 5600 2 2 2 1 0 0 [max]f
f j −cj -1,5 Ø Ø 1 Ø 0 ≥ 0, (∀) j = 1,6 ? NU
Analiza economico-matematică a unor modele liniare
cj 3,5 2 2 0 0 0
cB B XB a~1 a2 a3 a4 a5 a6 ρ
2 a2 1600 0 1 0 1 -1 0 1600/1
3,5 a1 300 1 0 0 -2 1 -1 _
0 a6 900 0 0 1 3/2 0 1
şi
⎧(a1 K a j −1 a~ j a j +1 K a n ) X = b
⎪
⎨X ≥ 0 .
⎪[opt ] f ( X ) = cX .
⎩
⎛3 2 2 1 0 0⎞ ⎛1⎞
⎜ ⎟ ~ ⎜ ⎟
A = ⎜2 1 2 0 1 0 ⎟ , a2 = ⎜ 1 ⎟
⎜5 3 2 0 0 − 1⎟⎠ ⎜ 2⎟ .
⎝ ⎝ ⎠
a1 a 2 a3 a 4 a5 a 6
⎛1⎞ ⎛1 3 0⎞
~ ⎜ ⎟ ⎜ ⎟ ~
a 2 = ⎜ 1 ⎟, B = ⎜ 1 2 1 ⎟ , det B ≠ 0 ⇒ ∃B −1 .
⎜ 2⎟ ⎜ 2 2 0⎟
⎝ ⎠ ⎝ ⎠
Pasul 1
În tabelul simplex optimal al problemei rezolvate, se citesc:
• B −1 ;
• baza optimă B şi se notează cu k locul vectorului modificat în
această bază .
Pasul 2
Se află componentele vectorului modificat în baza B :
a~ = B −1 ⋅ a~ = ( ~
y K~
y K~
B
j j 1j y )T .
kj mj
Pasul 3
Se construieşte vectorul
⎛−~ −~ −~ −~
T
y1 j y k −1 j 1 y k +1 j y mj ⎞
η k = ⎜⎜ ~ ~ ~ ~ ~
⎟ .
⎝ y kj y kj y kj y kj y kj ⎟⎠
Pasul 4
~
Fie I m matricea unitate de ordinul m . Prin E m vom înţelege
matricea ce diferă de I m numai prin coloana k şi anume:
~
I m = (e1 K ek K em ) ⇒ E m = (e1 K ek −1 η k ek +1 K em ) .
~ ~
Se calculează: B −1 = E m ⋅ B −1 .
Pasul 5
Se reconstituie iteraţia problemei postoptimizate, în care apare baza
optimă a problemei iniţiale:
T.IV.4.4
cj c1 KKKKK ck KKKKKcn
B ~ a1 KKKKK ak KKKKK an
cB XB
ci1 ai1
M M
c~j a~ j ~
B −1 ⋅ b B −1 ⋅ ak , k = 1, j − 1 B −1 ⋅ a~ j B −1 ⋅ ak , k = j + 1, n
M M
cim aim
~ ~ ~
fj f0 f j , j = 1, n
~ ~ ~ ~
f j −cj f j − c j , j = 1, n
Analiza economico-matematică a unor modele liniare
≥0 S1 S2
STOP. Problema modificată S-a obţinut o soluţie
~B admisibilă de bază; se
admite S.O. finită. X sunt
continuă cu simplex-primal.
valorile optime ale
variabilelor bazice;
[max] ~f = ~
f0 .
(∃)~x s B < 0, s ∈ J B S3 S4
Se continuă rezolvarea Se reia rezolvarea de la
problemei cu algoritmul iteraţia i + 1, i ∈ Ν \ {1} ;
*
respectivei iteraţii.
Exemplificare
Pentru aflarea soluţiei optime a programului liniar:
[max] f = 4 x1 + 6 x 2 + 20 x3 + 17 x 4
⎧ x1 + x3 + 2 x 4 ≤ 100
⎨
⎩ x 2 + 2 x3 + x 4 ≤ 40
x j ≥ 0, j = 1,4.
cB B X
B
a1 a2 a3 a4 a5 a6
4 a1 20 1 -2 -3 0 1 -2
17 a4 40 0 1 2 1 0 1
fj 760 4 9 22 17 4 9 [max]f
f j −cj Ø 3 2 Ø 4 9
≥ 0, (∀) j = 1,6
⎛1 − 2⎞
B −1 = ⎜⎜ ⎟⎟ .
⎝0 1 ⎠
[max] f = 4 x1 + 6 x 2 + 20 x3 + 18 x 4
⎧ x1 + x3 + 1,5 x 4 ≤ 100
⎨
⎩ x 2 + 2 x3 + 1,5 x 4 ≤ 40
x j ≥ 0, j = 1,4.
admite soluţie optimă finită. În continuare se va aplica procedeul descris:
⎛1 − 2⎞
Pasul 1 B −1 = ⎜⎜ ⎟⎟, B = (a1 a4 ) → k = 2 .
⎝0 1 ⎠
⎛1,5 ⎞ ⎛ 1 − 2 ⎞⎛1,5 ⎞ ⎛ − 1,5 ⎞
a~4 = B −1 ⋅ ⎜⎜ ⎟⎟ = ⎜⎜
B
Pasul 2 ⎟⎟⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟; a doua
⎝1,5 ⎠ ⎝ 0 1 ⎠⎝1,5 ⎠ ⎝ 1,5 ⎠
componentă ( k = 2 ) este diferită de 0.
⎛ − 1,5 / 1,5 ⎞ ⎛ 1 ⎞
Pasul 3 η k = 2 = ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ .
⎝ 1 / 1,5 ⎠ ⎝ 2 / 3 ⎠
~ ⎛1 1 ⎞ ⎛1 − 2⎞ ⎛1 −1 ⎞
Pasul 4 B −1 = ⎜⎜ ⎟⎟ ⋅ ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ .
⎝ 0 2 / 3⎠ ⎝ 0 1 ⎠ ⎝ 0 2 / 3⎠
Pasul 5 Se reconstituie tabelul cu baza (a1 a4 ) .
~ ~ ⎛100 ⎞ ⎛ 60 ⎞
X B = B −1 ⋅ ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟;
⎝ 40 ⎠ ⎝ 80 / 3 ⎠
Postoptimizare în programarea liniară
~ ⎛ 0 ⎞ ⎛ − 1 ⎞ ~ B ~ −1 ⎛ 1 ⎞ ⎛ − 1 ⎞
a~2 = B −1 ⋅ ⎜⎜ ⎟⎟ = ⎜⎜
B
⎟⎟; a3 = B ⋅ ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟;
⎝1⎠ ⎝3 / 2⎠ ⎝ 2 ⎠ ⎝ 4 / 3⎠
~ ⎛1⎞ ⎛1⎞ B ~ ⎛0⎞ ⎛ −1 ⎞
a~5 = B −1 ⋅ ⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟; a~6 = B −1 ⋅ ⎜⎜ ⎟⎟ = ⎜⎜
B
⎟⎟;
⎝ 0⎠ ⎝ 0⎠ ⎝ 1 ⎠ ⎝ 2 / 3⎠
T IV.4.7
cj 4 6 20 18 0 0
~ B a3 a5 a6
cB XB a1 a2 a4
4 a1 60 1 -1 -1 0 1 -1
~
fj 720 4 8 20 18 4 8 [max]f
~ ~
f j −cj Ø 2 0 Ø 4 8 ≥ 0, (∀) j = 1,6
Deoarece:
B
● X > 0;
~ ~
● f j − c~ j ≥ 0, (∀) j = 1,6 şi f j − c~ j = 0 pentru a j bazic,
problema postoptimizată are soluţia optimă finită şi nedegenerată:
60
, x3 = x 2* = x5 = x6 = 0 şi [max ] f = 720.
* * * * *
x1 = 60, x 4 =
3
Se observă o creştere cu mai mult de 50% a valorii funcţiei scop.
[max] f = cX
Analiza economico-matematică a unor modele liniare
⎧⎪
⎨ xi +
⎪⎩
∑y B
ij x j = xi , ∀i ∈ J B
j∈J − J
x j ≥ 0, ∀j = 1, n
⎛ b1 ⎞
⎜ ⎟
⎜M ⎟
⎜b ⎟
~ ~
unde A ∈ M m + k ,n (R ), b = ⎜ ⎟ sunt elemente cunoscute şi obţinute prin
m
⎜ bm +1 ⎟
⎜ ⎟
⎜M ⎟
⎜b ⎟
⎝ m+k ⎠
bordarea lui A şi, respectiv, b, cu k linii.
Schema de postoptimizare este următoarea:
Pasul 1
Cele k restricţii suplimentare se transformă în egalităţi prin
adăugarea a k variabile de ecart x n +i , i = m + 1, m + k ; acestea devin
n
∑a
j =1
ij x j + x n +i = bi , i = m + 1, m + k şi deci problema postoptimizată poate fi
scrisă acum:
n
[max] f = ∑ ci xi
i =1
⎧ xi + ∑ y ij x j = xi , ∀i ∈ J B
⎪⎪ j∈J − J B
⎨n .
⎪∑ y ij x j + x n +i = bi , i ∈ m + 1, m + k
⎪⎩ j =1
x j ≥ 0, j = 1, n
Pasul 2
Se elimină variabilele bazice din cele k restricţii noi:
∑y
B
xi = ij x j + x n +i , i = m + 1, m + k .
j∈J S
Pasul 3
B
Dacă xi ≥ 0, ∀i = m + 1, m + k , atunci s-a obţinut soluţia optimă a
problemei postoptimizate. În caz contrar, soluţia obţinută nu e admisibilă
Analiza economico-matematică a unor modele liniare
T. IV.5.1
cj 3 2 2 0 0 0
cB B XB a1 a2 a3 a4 a5 a6
2 a2 1900 2 1 0 -1 0 -1
0 a5 300 1 0 0 -2 1 -1
fj 5600 3 2 2 1 0 0
f j −cj 0 Ø Ø 1 Ø Ø
Pasul 1
IV.5.2 x3 − x8 = 1000 ⇔ − x3 + x8 = −1000 .
Pasul 2
Din T.IV.5.1, se citeşte linia vectorului bazic a3
1 3
IV.5.3 − x1 + x3 + x4 + x6 = 900 .
2 2
Postoptimizare în programarea liniară
Pasul 3
~
Soluţia corespunzătoare bazei B obţinută din baza optimă B prin
⎛ 0⎞
⎜ ⎟
adăugarea vectorului coloană a8 = ⎜ 0 ⎟ este dual admisibilă ( x8 = −100 < 0 )
0
⎜ 1⎟
⎝ ⎠
şi deci vom continua cu aplicarea algoritmului simplex dual până la
obţinerea soluţiei optime, pentru problema extinsă cu restricţia x3 ≥ 1000 .
T. IV.5.2
cj 3 2 2 0 0 0 0
cB B XB a1 a2 a3 a4 a5 a6 a8
2 a2 1900 2 1 0 -1 0 -1 0
0 a5 300 1 0 0 -2 1 -1 0
fj 5600 3 2 2 1 0 0 0 [max ] f
f j −cj 0 Ø Ø 1 Ø 0 Ø ≥ 0∀j
2 a2 1500 0 1 0 5 0 3 4
2 a3 1000 0 0 1 0 0 0 -2
0 a5 100 0 0 0 1 1 1 2
3 a1 200 1 0 0 -3 0 -2 -2
fj 5600 3 2 2 1 0 0 2
f j −cj Ø Ø Ø 1 Ø 0 2
Analiza economico-matematică a unor modele liniare
⎧ n
IV.6.1 ⎨∑ ai xi = b
⎩ i =1
x j ≥ 0, j = 1, n
⎧ n+k
⎪max f = ∑ ci xi
⎪ i =1
⎪ n+k
IV.6.2 ⎨∑ ai xi = b ,
⎪ i =1
⎪ x ≥ 0, j = 1, n + k ,
⎪ j
⎩
coloană a n +1 ,K , a n + k , k ∈ N ∗ .
c B a nB+i − c n +i ≥ 0, ∀i = 1, k ?
- Dacă DA, atunci (X * , 0 R k ) ∈ R n + k este soluţie optimă pentru
IV.6.2.
Analiza economico-matematică a unor modele liniare
{
- Dacă NU, atunci fie I 0 = i ∈ 1, k f n +i − c n +i < 0 }.
Alegem i0 ∈ I 0 astfel încât f n +i 0 − c n +i0 = min ( f n +i − c n + i ) , şi
i∈I 0
vectorul a n +i0 intră în bază dacă are cel puţin o componentă strict pozitivă; în
caz contrar, modelul extins are optim infinit.
Exemplificare
Ca exemplu, vom considera programul liniar de stabilire a planului
optim de producţie IV.3.3, analizat în secţiunea 3. Să presupunem că firma
îşi propune lansarea în fabricaţie a unui nou produs pentru care vectorul
⎛1`⎞
⎜ ⎟
tehnologic este a8 = ⎜ 2 ⎟ . Se pune întrebarea: care ar trebui să fie profitul
⎜1⎟
⎝ ⎠
unitar obţinut din vânzarea acestui produs astfel încât acesta să intre în
programul optim de fabricaţie?
Pasul 1
⎛ −1 0 1 ⎞ ⎛ −1 0 1 ⎞ ⎛1⎞ ⎛ 0 ⎞
−1
⎜ ⎟ B −1
⎜ ⎟⎜ ⎟ ⎜ ⎟
B = ⎜ 3 / 2 0 − 1⎟ , a8 = B a8 = ⎜ 3 / 2 0 − 1⎟ ⎜ 2 ⎟ = ⎜1 / 2 ⎟ .
⎜ −2 1 1 ⎟ ⎜ − 2 1 1 ⎟ ⎜1⎟ ⎜ 1 ⎟
⎝ ⎠ ⎝ ⎠⎝ ⎠ ⎝ ⎠
Pasul 2
⎛ 0 ⎞
⎜ ⎟
f8 − c8 = c B a8 − c8 ≤ 0 ⇔ (2 2 0)⎜1/ 2⎟ − c8 ≤ 0 ⇔ 1 − c8 ≤ 0 ⇔ c8 ≥ 1,
B −1
⎜ 1 ⎟
⎝ ⎠
Postoptimizare în programarea liniară
deci profitul unitar obţinut din vânzarea noului produs trebuie să fie cel
puţin 1 u.m. pentru ca acesta să facă parte din structura planului optim de
fabricaţie.
În continuare analizăm cazul c8 = 2 şi, ca urmare, f 8 − c8 = −1 < 0 .
T.IV.6.1
cj 3 2 2 0 0 0 2
cB B XB a1 a2 a3 a4 a5 a6 a8 ρ
2 a2 1900 2 1 0 -1 0 -1 0 -
0 a5 300 1 0 0 -2 1 -1 1 300
fj 5600 3 2 2 1 0 0 1 [max] f
f j −cj 0 Ø Ø 1 Ø 0 -1 ≥ 0 ∀j? NU
2 a2 1900 2 1 0 -1 0 -1 0 -
2 a8 300 1 0 0 -2 1 -1 1 -
fj 5900 4 2 2 -1 1 -1 0 [max] f
f j −cj 1 Ø Ø -1 1 -1 Ø ≥ 0 ∀j? NU
P1 P2 P3 Disponibil
U1 2 2 1 2200
U2 1 1 0 1200
U3 1 1 1 2000
U4 1 2 1 1600
V.U. 3 4 2
U1 U2 U3 U4 V.U.
P4 1 0 2 1 5
P5 2 1 2 1 3
Soluţie:
a) Dacă se va nota cu x j numărul produselor de tip Pj din planul de
fabricaţie a periodei T1 ,cu datele din tabelul se obţine programul liniar:
⎧[max] f = 3 x1 + 4 x 2 + 2 x3
⎪
⎪ 2 x1 + 2 x 2 + x3 = 2200
⎪⎪ x1 + x 2 ≤ 1200
⎨ .
⎪ x1 + x 2 + x3 ≤ 2000
⎪ x + 2 x + x ≤ 1600
⎪ 1 2 3
⎪⎩ x j ≥ 0, ∀j = 1,6
⎧[max] f = 3 x1 + 4 x 2 + 2 x3
⎪
⎪ 2 x1 + 2 x 2 + x3 = 2200
⎪⎪ x + x + x = 1200
1 2 4
⎨ .
⎪ 1x + x 2 + x 3 + x5 = 2000
⎪ x + 2 x + x + x = 1600
⎪ 1 2 3 6
⎪⎩ x j ≥ 0, ∀j = 1,6
Postoptimizare în programarea liniară
⎛2 2 1 0 0 0⎞ ⎛ 2200 ⎞
⎜ ⎟ ⎜ ⎟
⎜1 1 0 1 0 0⎟ ⎜ 1200 ⎟
Rezultă: A4×6 =⎜ , rangA=4<6, b = ⎜ > 0.
1 1 1 0 1 0⎟ 2000 ⎟
⎜ ⎟ ⎜ ⎟
⎜1 2 1 0 0 1 ⎟⎠ ⎜ 1600 ⎟
⎝ ⎝ ⎠
⎧[max] f = 3 x1 + 4 x 2 + 2 x3 − αx7
⎪
⎪ 2 x1 + 2 x 2 + x3 + x7 = 2200
⎪⎪ x1 + x 2 + x 4 = 1200
⎨
⎪ x1 + x 2 + x3 + x5 = 2000
⎪ x + 2 x + x + x = 1600
⎪ 1 2 3 6
⎪⎩ x j ≥ 0, ∀j = 1,7
T.IV.7.1
cj → 3 4 2 0 0 0 −α
c B B X B
a1 a2 a3 a4 a5 a6 a7
fj
f j −cj
Analiza economico-matematică a unor modele liniare
⎛ 2⎞ ⎛1⎞ ⎛ 2⎞ ⎛ 0⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟
−1 −1 ⎜ 1 ⎟ ⎜0⎟ −1 ⎜ 1 ⎟ ⎜ 0⎟
a1 = B ⋅ a1 = B ⋅ ⎜ ⎟ = ⎜ ⎟
B
, a2 = B ⋅ ⎜ ⎟ = ⎜ ⎟
B
,
1 0 1 0
⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ 1⎟ ⎜0⎟ ⎜ 2⎟ ⎜1⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠
⎛1⎞ ⎛ 0 ⎞
⎜ ⎟ ⎜ ⎟
−1 ⎜ 0 ⎟ ⎜ − 1 / 2⎟
a3 = B ⋅ ⎜ ⎟ = ⎜
B
.
1 1/ 2 ⎟
⎜ ⎟ ⎜ ⎟
⎜1⎟ ⎜ 1 / 2 ⎟
⎝ ⎠ ⎝ ⎠
⎛ 2200 ⎞ ⎛ 600 ⎞
⎜ ⎟ ⎜ ⎟
−1 −1 ⎜ 1200 ⎟ ⎜ 100 ⎟
XB =B b=B ⎜ = .
2000 ⎟ ⎜ 900 ⎟
⎜ ⎟ ⎜ ⎟
⎜ 1600 ⎟ ⎜ 500 ⎟
⎝ ⎠ ⎝ ⎠
Se calculează f j şi f j − c j , j = 1,K ,7 .
Înlocuind aceste date în T.IV.7.1 se obţine tabelul optimal al modelului
considerat:
T.IV.7.2
cj → 3 4 2 0 0 0 −α
c B B X B
a1 a2 a3 a4 a5 a6 a7
3 a1 600 1 0 0 0 0 -1 1
0 a4 100 0 0 -1/2 1 0 0 -1/2
0 a5 900 0 0 1/2 0 1 0 -1/2
4 a2 500 0 1 1/2 0 0 1 -1/2
fj 3800 3 4 2 0 0 1 1
f j −cj Ø Ø 0 Ø Ø 1 1+ α
Postoptimizare în programarea liniară
cj → 3 4 2 0 0 0
cB B X B
a1 a2 a3 a4 a5 a6
3 a1 600 1 0 0 0 0 -1
0 a4 600 0 1 0 1 0 1
0 a5 400 0 -1 0 0 1 -1
2 a3 1000 0 2 1 0 0 2
fj 3800 3 4 2 0 0 1
f j −cj Ø 0 Ø Ø Ø 1
⎧ max f = 3 x1 + 4 x 2 + 2 x3 + 5 x8 + 3 x9
⎪
⎪ 2 x1 + 2 x 2 + x3 + x8 + 2 x9 = 2200
⎪⎪ x + x + x + 0 ⋅ x + 1 ⋅ x = 1200
⎨
1 2 4 8 9
.
⎪ x1 + x 2 + x 3 + x 5 + 2 x 8 + 2 x 9 = 2000
⎪ x + 2 x + x + x + x + x = 1600
⎪ 1 2 3 6 8 9
⎩⎪ x j ≥ 0 , ∀ j = 1 ,9
Postoptimizare în programarea liniară
Pasul 1
Se citeşte B −1 din ultimul tabel simplex al problemei rezolvate (în
cazul studiat, ea a fost dată la punctul b):
⎛ 1 0 0 − 1⎞
⎜ ⎟
⎜ − 1/ 2 1 0 0⎟
B −1 =⎜ .
− 1/ 2 0 1 0⎟
⎜ ⎟
⎜ − 1/ 2 0 0 1 ⎟⎠
⎝
Se citeşte baza optimă din T.IV.7.2: B = (a1 a4 a5 a2 ) .
Pasul 2
⎛1⎞ ⎛ 2⎞
⎜ ⎟ ⎜ ⎟
⎜ 0⎟ ⎜1⎟
Se scriu vectorii a8 = ⎜ ⎟ şi a 9 = ⎜ ⎟ în baza optimă:
2 2
⎜ ⎟ ⎜ ⎟
⎜1⎟ ⎜1⎟
⎝ ⎠ ⎝ ⎠
⎛ 0 ⎞ ⎛1⎞
⎜ ⎟ ⎜ ⎟
−1 ⎜ − 1/ 2⎟ −1 ⎜0⎟
a 8 = B ⋅ a8 = ⎜
B
⎟ şi a9 = B ⋅ a9 = ⎜ ⎟ .
B
3/ 2 1
⎜ ⎟ ⎜ ⎟
⎜ 1/ 2 ⎟ ⎜0⎟
⎝ ⎠ ⎝ ⎠
Pasul 3
Se calculează f 8 − c8 şi f 9 − c9 :
⎛ 0 ⎞
⎜ ⎟
⎜ − 1/ 2 ⎟
f 8 − c8 = c ⋅ B ⋅ a8 − c8 = c ⋅ a8 − c8 = (3 0 0 4) ⋅ ⎜
B −1 B B
− 5 = −3 ,
3/ 2 ⎟
⎜ ⎟
⎜ 1/ 2 ⎟
⎝ ⎠
Analiza economico-matematică a unor modele liniare
⎛1⎞
⎜ ⎟
⎜0⎟
f 9 − c9 = c ⋅ B ⋅ a9 − c9 = c ⋅ a9 − c0 = (3 0 0 4 ) ⋅ ⎜ ⎟ − 3 = 0 .
B −1 B B
1
⎜ ⎟
⎜0⎟
⎝ ⎠
Se verifică acum dacă f j − c j ≥ 0 , ∀j ∈ {8,9} . Deoarece
f 8 − c8 < 0 , se trece la Pasul 4.
Pasul 4
Se observă că vectorul a8B , cu diferenţa f 8 − c8 < 0 , are cel puţin o
componentă strict pozitivă. În acest caz, trecem la Pasul 5. Dacă toate
componentele vectorului ar fi fost negative, problema ar fi avut optim
infinit.
Pasul 5
Se construieşte tabelul simplex al problemei postoptimizate
corespunzător bazei optime a problemei iniţiale. În acest scop, T.IV.7.3 se
extinde cu două coloane, a8 şi a9 , în care se trec rezultatele de la paşii
2 şi 3. Coloana vectorului artificial a 7 va fi neglijată.
cj 3 4 2 0 0 0 5 3
cB B XB a1 a2 a3 a4 a5 a6 a8 a9 ρ
3 a1 600 1 0 0 0 0 -1 0 1 -
0 a4 100 0 0 -1/2 1 0 0 -1/2 0 -
0 a5 900 0 0 1/2 0 1 0 3/2 1 600
4 a2 500 0 1 1/2 0 0 1 1/2 0 1000
fj 3800 3 4 2 0 0 1 2 3
max :≥ 0 ? NU
f j −cj Ø Ø 0 Ø Ø 1 -3 0
Postoptimizare în programarea liniară
cj 3 4 2 0 0 0 5 3
c B
B XB a1 a2 a3 a4 a5 a6 a8 a9
3 a1 600 1 0 0 0 0 -1 0 1
0 a4 400 0 0 -1/3 1 1/3 0 0 1/3
5 a8 600 0 0 1/3 0 2/3 0 1 2/3
4 a2 200 0 1 1/3 0 -1/3 1 0 -1/3
fj 5300 3 4 3 0 2 1 5 5
f j −cj Ø Ø 1 Ø 2 1 Ø 2
x9* = 0
Analiza economico-matematică a unor modele liniare
⎛ − 1⎞
⎜ ⎟
~ ~ ~B B ~ ⎜0⎟
f 6 − c6 = c ⋅ a 6 − c6 = (2.5 0 0 3) ⋅ ⎜ ⎟ − 0 = −2.5 + 3 = 0.5 > 0 .
0
⎜ ⎟
⎜1⎟
⎝ ⎠
Observaţie: Vectorii a3B şi a6B se citesc din T.IV.7.2, tabel care conţine şi
baza optimă citită la pasul 1.
~
Diferenţa f 3 − c~3 fiind strict negativă, se trece la Pasul 3. Are sens
această trecere deoarece a3B are cel puţin o componentă strict pozitivă.
Pasul 3
Se stabileşte soluţia optimă, dacă există, a problemei posoptimizate
aplicând algoritmul simplex primal, cu X 1* soluţie de start. În T.IV.7.2 se
modifică c, c B , f j şi f j − c j pentru a j nebazici, apoi se aplică algoritmul
simplex-primal:
c~j 2.5 3 2 0 0 0
c B B X B a1 a2 a3 a4 a5 a6 ρ
2.5 a1 600 1 0 0 0 0 -1 -
0 a4 100 0 0 -1/2 1 0 0 -
0 a5 900 0 0 1/2 0 1 0 1800
3 a2 500 0 1 1/2 0 0 1 1000
~
fj 3000 2.5 3 3/2 0 0 0.5
~ ~
f j − cj Ø Ø -0.5 Ø Ø 0.5
2.5 a1 600 1 0 0 0 0 -1
0 a4 600 0 1 0 1 0 1
0 a5 400 0 -1 0 0 1 -1
2 a3 1000 0 2 1 0 0 2
~
fj 3500 2.5 4 2 0 0 1.5 [max]f
~ ~ ~ ~ ∀j ∈ 1,6
f j − cj Ø 1 Ø Ø Ø 1.5 f j −cj ≥ 0
⇒ STOP
Analiza economico-matematică a unor modele liniare
Pasul 1
⎛ 1 ⎞
⎜ ⎟
~ ⎜ 0.5 ⎟
● Se scrie vectorul cu componentele modificate: a 2 = ⎜ ⎟ .
1
⎜ ⎟
⎜ 2 ⎟
⎝ ⎠
⎛ 1 0 0 − 1⎞
⎜ ⎟
⎜ − 1/ 2 1 0 0⎟
● Se citeşte B −1 =⎜ .
− 1/ 2 0 1 0⎟
⎜ ⎟
⎜ − 1/ 2 0 0 1 ⎟⎠
⎝
Pasul 3
Se construieşte vectorul η k ale cărui componente se găsesc în
următoarele relaţii, cu componentele vectorului modificat în baza B:
1 1 2
η kj = ⇒ η 24 = = ,
y kj 3/ 2 3
y ij −1 2 0 1/ 2 1
η ij = − ⇒ η 21 = − = , η 22 = − = 0 , η 23 = − =− .
y kj 3/ 2 3 3/ 2 3/ 2 3
⎛ 2/3 ⎞
⎜ ⎟
⎜ 0 ⎟
Aşadar, η k = ⎜ , pentru k=4.
− 1 / 3⎟
⎜ ⎟
⎜ 2/3 ⎟
⎝ ⎠
Pasul 4
~ ~ ~
Se calculează B −1 = E m ⋅ B −1 , unde E m este matricea unitate de
ordinul m, în care coloanele j ∈ {1,.., m} − {k} sunt vectorii unitari, iar
coloana k este chiar vectorul η k .
⎛1 0 0 2/3 ⎞ ⎛ 1 0 0 − 1⎞ ⎛ 2 / 3 0 0 1/ 3 ⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
~ ⎜0 1 0 0 ⎟ ⎜ − 1/ 2 1 0 0 ⎟ ⎜ − 1/ 2 1 0 0 ⎟
B −1 =⎜ ⋅ = .
0 0 1 − 1/ 3⎟ ⎜ − 1 / 2 0 1 0 ⎟ ⎜ − 1/ 3 0 1 − 1/ 3⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜0 0 0 2 / 3 ⎟⎠ ⎜⎝ − 1 / 2 0 0 1 ⎟⎠ ⎜⎝ − 1 / 3 0 0 2 / 3 ⎟⎠
⎝
Analiza economico-matematică a unor modele liniare
Pasul 5
Se calculează componentele vectorilor nebazici în baza B cu a 2
modificat, precum şi f j şi f j − c j , ∀j ∈ 1,6 .
⎛ 2200 ⎞ ⎛ 2800 / 3 ⎞ ⎛ 1 ⎞ ⎛ 1/ 3 ⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟
~ B ~ −1 ~ −1 ⎜ 1200 ⎟ ⎜ 2300 ⎟ ~ B ~ −1 ⎜ 0 ⎟ ⎜ − 1 / 2 ⎟
X = B ⋅b = B ⋅⎜ = , a3 = B ⋅ ⎜ ⎟ = ⎜ ,
2000 ⎟ ⎜ 2200 / 3 ⎟ 1 1/ 3 ⎟
⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ 1600 ⎟ ⎜ 400 / 3 ⎟ ⎜ 1 ⎟ ⎜ 1/ 3 ⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠
⎛ 0⎞ ⎛ 1/ 3 ⎞
⎜ ⎟ ⎜ ⎟
~ ~ −1 ⎜ 0 ⎟ ⎜ 0 ⎟
a6 = B ⋅ ⎜ ⎟ = ⎜
B
.
0 − 1/ 3⎟
⎜ ⎟ ⎜ ⎟
⎜1⎟ ⎜ 2 / 3 ⎟
⎝ ⎠ ⎝ ⎠
cj → 3 4 2 0 0 0
cB B XB a1 a2 a3 a4 a5 a6
3 a1 2800/3 1 0 1/3 0 0 -1/3
0 a4 2300 0 0 -1/2 1 0 0
0 a5 2200/3 0 0 1/3 0 1 -1/3
4 a2 1000/3 0 1 1/3 0 0 2/3
fj 12400/3 3 4 7/3 0 0 5/3
f j −cj Ø Ø 1/3 Ø Ø 5/3
Postoptimizare în programarea liniară
⎛ 1 −1 ⎞
pentru care B −1 = ⎜⎜ ⎟⎟ , unde B reprezintă baza optimală.
⎝ − 1/ 5 2 / 5⎠
a) Identificaţi soluţia optimă folosind informaţiile date.
b) Scrieţi problema duală.
c) Identificaţi soluţia optimă a dualei. Verificaţi această soluţie
rezolvând grafic problema duală.
d) Presupunând că problema originară este modificată astfel:
[max] f = x1 + 3x 2 + 4 x3
⎧2 x1 + 2 x 2 + 5 x3 ≤ 25
IV.7.2 ⎨
⎩ x1 + 3x 2 + 5 x3 ≤ 20
x j ≥ 0, ∀j = 1,3
utilizaţi teoria dualităţii pentru a decide dacă soluţia precedentă rămâne
optimă.
e) Utilizând informaţiile furnizate, găsiţi coeficienţii lui x 2 din tabelul
optimal al problemei de la punctul d).
Analiza economico-matematică a unor modele liniare
Soluţie:
a) Forma standard a problemei ce trebuie rezolvată este
[max] f = x1 + x 2 + 4 x3
⎧2 x1 + 3x 2 + 5 x3 + x 4 = 25
⎨ .
⎩ x1 + 4 x 2 + 5 x3 + x5 = 20
x j ≥ 0, ∀j = 1,5
Postoptimizare în programarea liniară
⎛ 2 3 5 1 0⎞
⎜ ⎟
Matricea coeficienţilor tehnologici: ⎜⎝ 1 4 5 0 1 ⎟⎠ .
a1 a 2 a3 a 4 a5
Baza iniţială: (a 4 , a5 ) .
⎛ 1 −1 ⎞
B −1 = ⎜⎜ ⎟⎟ .
⎝ − 1/ 5 2 / 5⎠
Tabelul optimal:
T.IV.7.1
cj 1 1 4 0 0
cB B XB a1 a2 a3 a4 a5
1 a1 5 1 -1 0 1 -1
4 a3 3 0 1 1 -1/5 2/5
~
fj 17 1 3 4 1/5 3/5 [max] f
~ ~
f j − cj Ø 2 Ø 1/5 3/5 ≥ 0 ∀j? DA ⇒ STOP
u i ≥ 0∀i ∈ 1,2
c) Soluţia optimă a dualei se calculează cu formula: u * = c B B −1 , unde
⎛ 1 −1 ⎞
B −1 = ⎜⎜ ⎟⎟ şi c B = (1 4 ) .
⎝ − 1/ 5 2 / 5⎠
⎛ 1 −1 ⎞
Deci, u * = c B B −1 = (1 4 )⎜⎜ ⎟⎟ = (1 / 5 3 / 5) . Conform
⎝ − 1/ 5 2 / 5⎠
teoremei
fundamentale a dualităţii, valoarea minimă a funcţiei obiectiv este:
[min]g = [max] f = 17 .
Problema duală poate fi rezolvată utilizând metoda grafică, fiind o
problemă cu numai două variabile principale. Verificarea soluţiei prin
această metodă va fi un exerciţiu uşor pentru cititor.
u i ≥ 0∀i ∈ 1,2
Postoptimizare în programarea liniară
d1
d2 u1
A(0,1)
d3
4/5
B(3/2,0)
u2
O
1/2 4/5
cj → 1 3 4 0 0
B
cB B X a1 a2 a3 a4 a5
1 a1 5 1 -1 0 1 -1
4 a3 3 0 1 1 − 1/ 5 2/5
fj 17 1 3 4 1/5 3/5 [max] f
f j − cj ≥ 0, ∀j = 1,5 ⇒ STOP
Ø 0 Ø 1/5 3/5
⎛ 1 − 1 ⎞⎛ 2 ⎞ ⎛ − 1 ⎞
Se calculează: a~2B = B −1 a 2' = ⎜⎜ ⎟⎟⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ . Se observă că are o
⎝ − 1 / 5 2 / 5 ⎠⎝ 3 ⎠ ⎝ 4 / 5 ⎠
componentă strict pozitivă
~ ~ ⎛ −1 ⎞
f 2 − c3 = (1 4)⎜⎜ ⎟⎟ − 3 = −4 / 5 < 0 .
⎝ 4 / 5⎠
Postoptimizare în programarea liniară
cj → 1 3 4 0 0
cB B X
B
a1 a~2' a3 a4 a5
1 a1 5 1 -1 0 1 -1
4 a3 3 0 4/5 1 − 1/ 5 2/5
fj 17 1 11/5 4 1/5 3/5
f j −cj Ø -4/5 Ø 1/5 3/5
S-au obţinut:
* * *
soluţia optimă de bază: x1' = 35 / 4, x 2' = 15 / 4, x3' = 0 cu
*
f ' = 20 .
forma explicită a sistemului de restricţii în raport cu (a1 , a 2 ) :
⎛ 35 / 4 ⎞ ⎛ 1 ⎞ ⎛0⎞ ⎛5 / 4⎞ ⎛ 3/ 4 ⎞ ⎛ − 1/ 2⎞
⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ x1 + ⎜⎜ ⎟⎟ x 2 + ⎜⎜ ⎟⎟ x3 + ⎜⎜ ⎟⎟ x 4 + ⎜⎜ ⎟⎟ x5 .
⎝ 15 / 4 ⎠ ⎝ 0 ⎠ ⎝1⎠ ⎝5 / 4⎠ ⎝ − 1/ 4⎠ ⎝ 1/ 2 ⎠
cj → 1 3 4 0 0
c B
B X
B
a1 a~2' a3 a4 a5
0 a4 35/3 4/3 0 5/3 1 -2/3
3 a2 20/3 1/3 1 5/3 0 1/3
fj 20 1 3 5 0 1
f j −cj 0 Ø 1 Ø 1
Analiza economico-matematică a unor modele liniare
⎛ 1 −1 ⎞
g) Se cunoaşte că B −1 = ⎜⎜ ⎟⎟ . Utilizând procedura de reoptimizare
⎝ − 1/ 5 2 / 5⎠
în cazul modificării sistemului de restricţii prin adăugarea unei coloane
în matricea A, obţinem:
⎛ 1 − 1 ⎞⎛ 3 ⎞ ⎛ 1 ⎞
auB = B −1 au = ⎜⎜ ⎟⎟⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟ şi
⎝ − 1 / 5 2 / 5 ⎠⎝ 2 ⎠ ⎝1 / 5 ⎠
⎛ 1 ⎞
f 6 − c6 = c B B −1 a 6 − c6 = (1 4)⎜⎜ ⎟⎟ − 2 =
⎝1 / 5 ⎠
= −1 / 5 < 0 , ceea ce arată că baza B = (a1 a3 ) nu este optimă pentru
problema IV.7.3. Pentru determinarea soluţiei sale optime, se utilizează în
continuare algoritmul simplex primal. Soluţia optimă se obţine într-o
singură iteraţie, după cum rezultă din tabelul următor:
cj → 1 1 4 0 0 2
cB B X
B
a1 a2 a3 a4 a5 a6
1 a1 5 1 -1 0 1 -1 1
4 a3 3 0 1 1 −1 / 5 2/5 1/5
2 a6 5 1 -1 0 1 -1 1
cj → 1+ λ 1+ 4λ 4 + 2λ 0 0
cB B X
B
a1 a2 a3 a4 a5
1+ λ a1 5 1 -1 0 1 -1
4 + 2λ a3 3 0 1 1 − 1/ 5 2/5
fj 17 + 11λ 1+ λ 3+ λ 4 + 2λ 1/5+3/5 λ 3 / 5 − 1 / 5λ
f j −cj Ø 2 − 3λ Ø 1/5+3/5 λ 3 / 5 − 1 / 5λ
Exprimarea grafică
Notaţii Semnificaţii
a legăturilor
Di , i ∈ M = {1,..., m} Depozitul i
C j , j ∈ N = {1,..., n} Consumatorul j
bj
ai , i ∈ M Cantitatea de marfă disponibilă în Di
a Vectorul disponibilului ai
bj , j ∈ N Cantitatea de marfă solicitată de C j
b Vectorul solicitărilor sau necesarului x ij Cj
(i, j ) , i ∈ M , j ∈ N Ruta fixată pentru aprovizionarea lui
j∈N
C j de la Di
Di c ij
c ij , i ∈ M , j ∈ N Cost unitar de transport pe
ruta (i, j ) i∈M
( )ij∈∈MN
C = cij Matricea costurilor unitare
Modelul matematic
Cantitatea expediată de Di , i ∈ M , n
V.1.4
Oferta este egală cu cererea. m n
∑ a = ∑b
i =1
i
j =1
j
V.1.5
Analita economico-matematică a unor modele liniare
∑x i =1
ij = bj , j ∈ N
Coloanele:
1 2 ... n n + 1 ... 2n ... mn
Problema de transport
x
⎨ 11 + x 21 = 40
⎪ x + x = 30
⎪ 12 22
⎪⎩ x13 + x 23 = 30
xij ≥ 0, ∀i = 1,2, j = 1,3
unde xij reprezintă procentul din marfă, transportată pe ruta (Di , C j ) .
Analita economico-matematică a unor modele liniare
v
80
d3 d1
d4
50 d2
30 B A
C
O
40 u
Vârf (u , v ) f (u , v )
A (40,30) 830
B (20,30) 790
C (40,10) 690 min
Problema de transport
x11* = 40 C1
D1 x12 = 10
*
x13* = 30
C2
x21 = 0
*
x = 20
*
22
D2
x23 = 0
*
n ai ⋅ b j 1 n
V.1.1' ∑ j =1 D
=
D
⋅ ai ⋅ ∑ b j = ai , i ∈1, m
j =1
n ai ⋅ b j 1 m
V.1.2' ∑ j =1 D
=
D
⋅ b j ⋅ ∑ ai = b j , j ∈1, n .
i =1
Propoziţia 2 rangA=m+n-1.
Matricea A a sistemului V.1.1 - V.1.2 are m+n linii şi m ⋅ n coloane,
fiecare din acestea având două elemente egale cu 1 şi restul egale cu 0.
rangA ≤ min(m + n, m ⋅ n) = m + n < m ⋅ n , m, n ∈ N − {0,1,2}
⎧n
⎪∑ xij = ai , ∀i = 1, m
⎪ j =1
⎨m
⎪ x = b , ∀j = 1, n
⎪⎩∑i =1
ij j
xij ≥ 0 , ∀i, j
m n
[max]g = ∑ ai u i + ∑ b j v j
i =1 j =1
{u i + v j ≤ cij , ∀i = 1, m , ∀j = 1, n
u i , v j ∈ R , ∀i = 1, m , ∀j = 1, n
atunci ele sunt optime dacă şi numai dacă:
[ ]
V.1.6 xij* cij − (u i* + v *j ) = 0 , ∀i = 1, m , j = 1, n .
n
V.1.7 ∑x
j =1
*
ij − ai = 0 , ∀i = 1, m .
m
V.1.8 ∑x
i =1
*
ij − b j = 0 , ∀j = 1, n .
( )
Teorema 2: Dacă xij* , i = 1, m , j = 1, n , este soluţie optimă a problemei de
transport echilibrate, atunci ea rămâne optimă şi pentru problema în care
costurile de transport cij cresc sau descresc cu u i unităţi pe linia i şi v j
unităţi pe coloana j, i = 1, m , j = 1, n .
Etapa 2
Pasul 1 Testarea optimalităţii soluţiei iniţiale X 1 :
• Se scrie sistemul u i + v j = cij pentru toate variabilele bazice xij .
• Se calculează ∆ ij = cij − (u i + v j ) pentru toate variabilele xij nebazice.
∆ ij ≥ 0 , ∀xij variabilă nebazică ? DA → STOP.
NU → Pasul 2.
Pasul 2 Se îmbunătăţeşte soluţia testată (X k ) trecând la un alt
program de transport admisibil ( X k +1 ) cel puţin la fel de bun în sensul
f ( X k ) ≥ f ( X k +1 ) .
{ }
Criteriul de intrare în bază: dacă ∆ kr = min ∆ ij ∆ ij < 0 , atunci x kr va intra
în bază. Planul de transport se îmbunătăţeşte prin micşorarea costului total
dacă se va folosi ruta (k , r ) .
Se va atribui variabilei x kr o valoare pozitivă notată θ .
f ( X k ) = f ( X k +1 ) + θ ⋅ ∆ kr ⎫
⎪
θ ≥0 ⎬ ⇒ f ( X k +1 ) ≤ f ( X k ) .
∆ kr < 0 ⎪
⎭
START
Numărul
NU Aplică procedeul
rutelor utilizate prin
de perturbare.
X 1 este (m+n-1).
DA
STOP
Analita economico-matematică a unor modele liniare
D1 5 7 11 4
400t
x11 x12 x13 x14
D2 10 9 5 6
250t
x21 x22 x23 x24
D3 7 8 8 9
300t
x31 x32 x33 x34
Necesar 200t 270t 330t 150t 950t
Metoda diagonalei
Această metodă propusă de Dantzig este deosebit de uşoară, dar
acest avantaj este de cele mai multe ori anulat de faptul că repartizarea
mărfii stocate, disponibile, se face fără a se ţine seama de costurile unitare
de transport.
Iteraţia 1: Se începe construirea unei soluţii iniţiale, atribuind variabilei x11
cea mai mare valoare permisă de restricţii. Dar x11 apare în prima şi în a
patra restricţie, deci, x11 =min(400, 200)=200= b1 . Dacă x11 =200, atunci a
Analita economico-matematică a unor modele liniare
⎢ 21 J = {1,..., n} = N .
⎢ ... ⎥
⎢ ⎥
⎣ x m1 = ? x m 2 = ? ... x mn = ?⎦
⇓
m
∑x
i=2
i1 = b1 − a1
cu i = 2, m
n
⎡ x11 = a1 = b x12 = 0 ... x1n = 0 ⎤ ⇒ ∑ x1 j = a1 = b1 Se actualizează mulţimile
⎢ x =0 x 22 = ? ... ... ⎥⎥ j =2 I şi J :
⎢ 21 I = {2,..., m},
⎢ ... ⎥
⎢ ⎥ J = {2,..., n}.
⎣ x m1 = 0 x m 2 = ? ... x mn = ?⎦
⇓
m
∑x
i =1
i1 = b1
Problema de transport
n
⎡ x11 = b1 x12 = ? ... x1n = ? ⎤ ⇒ ∑ x1 j = a1 − b1 Se actualizează
⎢x =0 x 22 = ? ... x 2 n = ? ⎥⎥ j =2 mulţimile indicilor:
⎢ 21 I = {1,..., m},
⎢ ... ⎥ J = {2,..., n}.
⎢ ⎥
⎣ x m1 = 0 x m 2 = ? ... x mn = ?⎦
⇓
m
∑x
i =1
i1 = b1
C1 C2 C3 C4 Disponibil
D1 5 7 11 4
200 400 → 200
D2 10 9 5 6
0 250
D3 7 8 8 9
0 300
Necesar 200 ↓ 270 330 150
950
0
C1 C2 C3 C4 Disponibil
D1 200 200 0 0 400 → 200 → 0
D2 0 70 180 0 250 → 180 → 0
D3 0 0 150 150 300 → 150 → 0
200 ↓ 270 ↓ 330 ↓ 150 ↓
Necesar 0 70 ↓ 150 ↓ 0 950
0 0
Să exemplificăm:
Iteraţia 1: j := 1 ⇒ min{ci1 } = min{5,10,7} = 5 = c11 ⇒ x11 va fi variabilă
i =1, m
Iteraţia 2: b1 = 0 ? ⎯DA
⎯→ j := 2
⎯⎯→
NU
j := 1 ; dar se va considera min{ci1 }.
i ≠1
Avem j=2 ,
min{c i 2 } = min{7,9,8} = 7 = c12 ⇒ x12 = min{a1 , b2 } = 200 = a1 ⇒
i =1, 3
Iteraţia 4: b2 = 0 ? ⎯⎯→
DA
j := 3 , min{ci 3 } = min{c 23 , c33 } = 5 = c 23 ⇒
i ≠1
⇒ a 3 := 230 − 80 = 150 .
⎯→ j := 4 , min {c i 4 } = c 34 ⇒
Iteraţia 6: b3 = 0 ? ⎯ DA
i∉{1, 2}
C1 C2 C3 C4 Disponibil
D1 5 7 11 4
400 → 200 → 0
200 200 0 0
D2 10 9 5 6
250 → 0
0 0 250 0
D3 7 8 8 9
300 → 230 → 150 → 0
0 70 80 150
Necesar 200 ↓ 270 330 150
0 ↓ ↓ ↓
70 80 0
950
↓ ↓
0 0
Iteraţia 1:
a) Se află cel mai mic element al liniei i ∈ {1,..., m} , min{cij } = cik , apoi se
j =1, n
b) Se află cel mai mic element al coloanei j ∈ {1,..., n} , min{cij } = cil , apoi
i =1, m
c) Se alege max ⎧⎨max (α i1 ), max (β 1j )⎫⎬ pentru a fixa linia sau coloana în care
⎩ i =i , m j =1, n ⎭
se va situa variabila bazică. Valoarea se va stabili în funcţie de relaţia
dintre disponibil şi necesar, conform celor trei situaţii descrise la metoda
diagonalei.
La următorii paşi se repetă acest raţionament cu ai , i = 1, m , b j ,
j = 1, n , I şi J actualizaţi.
C1 C2 C3 C4 Disponibil α1
D1 5 7 11 4 400 |4-5|
D2 10 9 5 6 250 |5-6|
0 0 250 0
D3 7 8 8 9 300 |7-8|
Maxim
Observaţie: I:={1,3} are următoarea semnificaţie: prin repartizarea unei
cantităţi de marfă de 250t centrului C3 , depozitul D2 şi-a epuizat stocul, ca
atare nu mai poate aproviziona alte centre şi atunci va fi eliminat din
calculele următoare.
C1 C2 C3 C4 Disponibil α1 α2 α3 α4 α5
D1 5 7 11 4 400 250 50 0 |4-5| |4-5| |5-7| |4-5| Fără sens
200 50 0 150
D2 10 9 5 6 250 0 |5-6|
0 0 250 0
D3 7 8 8 9 300 220 0 |7-8| |7-8| |7-8| |7-8| Fără sens
0 220 80 0
N 200 270 330 150 950
0 220 80 0 Max iteraţia 4
0 0
β1 |5-7| |7-8| |5-8|* |4-6|
β2 |5-7| |7-8| |8-11| |4-9|
Max iteraţia 2
β 3 |5-7| |7-8| |8-11|
Max iteraţia 3
β4 |5-7| |7-8|
β5 |7-8| Max iteraţia 5 (unică)
Problema de transport
Iteraţia 2:
I = {1,3} , J = {1,2,3,4}
α 12 = α 11 şi α 32 = α 31 .
Acest lucru se întâmplă ori de câte ori la pasul precedent a fost
epuizat un disponibil. I are doar două elemente, deci:
β12 =| c11 − c31 |=| 5 − 7 | ; β 22 =| c12 − c32 |=| 7 − 8 | ; β 32 =| c13 − c33 |=| 8 − 11 | ;
β 42 =| c14 − c34 |=| 4 − 9 | ; max(α 12 ,α 22 , β12 , β 22 , β 32 , β 42 ,) = β 42 ⇒ se alege cel
mai mic cost din coloana 4; c14 = 4 . Se atribuie variabilei cu aceeaşi indici
valoarea maximă compatibilă cu restricţiile corespunzătoare depozitului D1
şi centrului C 4 : x14 = max(400,150) = 150 = b4 . În acest caz a fost satisfăcut
necesarul centrului C 4 ⇒ x34 = 0 ( x 24 = 0 se ştie de la pasul precedent),
J := {1,2,3,4} − {4} şi a1 := 400 − 150 = 250 , etc.
Calculele implicate de aplicarea metodei sunt sistematizate în tabelul
precedent.
Observaţia 1: La iteraţia 4 există mai multe diferenţe maxime: α14 = β14 . În
asemenea cazuri se recomandă alegerea diferenţei maxime ce corespunde
costului de transport minim şi dacă acestea sunt egale, atunci se preferă
diferenţa maximală care implică repartizarea cantităţii celei mai mari. În
cazul studiat coincideau şi costurile minime şi cantităţile ce urmau să fie
repartizate , şi atunci este indiferent ce diferenţă maximă se alege.
Observaţia 2: La iteraţia 5, J = {2} şi I = {1,3} , deci, diferenţele α 5 nu au
sens.
Observaţia 3: După parcurgerea iteraţiilor 1,…,5, I = {3} şi J = {2} , deci
este imposibil să mai calculăm vreo diferenţă. Astfel, se atribuie variabilei
x32 valoarea maximă compatibilă cu restricţiile 3 şi m+2=3+2, adică
x 32 = 220 .
Analita economico-matematică a unor modele liniare
C1 C2 C3 C4 Disponibil
D1 5 7 11 4
400
200 200
D2 10 9 5 6
250
250
D3 7 8 8 9
300
70 80 150
Necesar 200 270 330 150 950
x14 = θ
C1 C2 C3 C4 Disponibil
C1 C2 C3 C4 Disponibil
• matricea diferenţelor: (∆ ij ) , i = 1, m , j = 1, n .
7 8 8 9 u3 = 1 6 8 8 5 1 Ø Ø 4
200 C1
D1 50
150 C2
D2 250
C3
220
D3 80 C4
D1 5 7 11 4 u1 = 0 5 7 7 4 Ø Ø 4 Ø
200 50 150 400
D2 10 9 5 6 u 2 = −2 3 5 5 2 7 4 Ø 4
250 250
D3 6 8 8 9 u3 = 1 6 8 8 5 0 Ø Ø 4
220 80 300
N 200 270 330 150 950
∆ ij ≥ 0 ∀i, j ⇒ STOP
C1 C2 C3 C4
D1 200 - θ 50 + θ 150 θ = min( 200,30) =
D2 250 = 30 ⇒
D3 +θ 270 30 - θ
T.V.2.2
C1 C2 C3 C4 Disponibil
D1 5 8 12 6 450
D2 10 7 11 4 820
D3 8 9 9 10 530
Necesar 300 700 200 600 1800
ai ⋅ b j
• Modelul admite totdeauna soluţia xij = m
, i ∈ 1, m , j ∈ 1, n , deci,
∑a
i =1
i
X1 C1 C2 C3 C4 Disponibil
X2 C1 C2 C3 C4 Disponibil
D1 5 8 12 6 450
0
D2 10 7 11 4 820-600=220
600
D3 8 9 9 10 530
0
Necesar 300 700 200 600 1800
X2 C1 C2 C3 C4 Disponibil
D1 5 8 12 6
300 150 0 0 450 → 150 → 0
D2 10 7 11 4
0 220 0 600 820 → 220 → 0
D3 8 9 9 10
0 330 200 0 530 → 200 → 0
Necesar 300 ↓ 700 ↓ 200 ↓ 600 ↓ 1800
0 480 ↓ 0 0
330 ↓
0
Analita economico-matematică a unor modele liniare
C1 C2 C3 C4 α (1)
D
D1 5 8 12 6 6-5=1
450
D2 10 7 11 4
3
600 820
D3 8 9 9 10 1
530
300 700 200 600 1800
N
β (1) 3 1 2 2
C1 C2 C3 α ( 2)
D
D1 5 8 12 3
300 450
D2 10 7 11 3
220
D3 8 9 9 1
530
300 700 200
N
β ( 2) 3 1 2
C2 C3 α ( 3)
D
D1 8 12 4
150
D2 7 11
4
220 220
D3 9 9 0
530
700 200
N
β ( 3) 1 2
C2 C3 α ( 3)
D
D1 8 12
150 4
150
D3 9 9 530 0
480 200
N
β ( 3) 1 3
Analita economico-matematică a unor modele liniare
C2 C3
D
D3 9 9 530
330 200
330 200
N
X3 C1 C2 C3 C4
D
D1 300 150 450
D2 220 600 820
D3 330 200 530
300 700 200 600
N
C1 C2 C3 C4
D
D1 5 8 12 6 450
300 150
D2 10 7 11 4 820
550 200 70
D3 8 9 9 10 530
θ 530
300 700 200 600 1800
N
xij ≥ 0 , ∀i, j .
200- θ 70+ θ
θ 530- θ
C1 C2 C3 C4
D1 5 8 12 6
300 150
D2 10 7 11 4
550 270
D3 8 9 9 10
200 330
Problema de transport
5 8 12 6
300 150- θ θ
10 7 11 4
550+ θ 200 70- θ
8 9 9 6
530
cij v1 v2 v3 v4 ∆ ij = c ij − c ij
=4 =7 = 11 =4
u1 = 1 5 8 12 5 Ø Ø 0 1
u2 = 0 4 7 11 4 6 Ø Ø Ø
u3 = 6 10 13 17 10 -2 -4 -8 Ø
X 1'
300 150 300 150
550 200- θ 70+ θ 550 270
+θ 530- θ 200 330
cij v1 v2 v3 v4
=5 =8 =4 =5 ∆ ij = c ij − c ij
u1 = 0 5 8 4 5 Ø Ø 8 1
300 150
u 2 = −1 4 7 3 4 6 Ø 8 Ø 550- θ
270+ θ
u3 = 5 10 13 9 10 -2 -4 Ø Ø
+θ 200 330- θ
θ = min(550, 330) =
∆ ij ≥ 0, ∀i, j ? NU ⇒ = 330 ⇒
⇒ se alege min(∆ ij ) = ∆ 32 ⇒ C.I.B C.E.B se elimină din bază x34 .
Noua soluţie va fi:
⇒ x32 = θ va intra în noua bază
X 1''
300 150
220 600
330 200
Problema de transport
''
Testăm acum optimalitatea soluţiei X 1 :
v4 = −3
c ij v1 = −3 v2 = 0 v3 = 0 ∆ ij = c ij − c ij
u1 = 8 5 8 8 5 Ø Ø 4 1
u2 = 7 4 7 7 4 6 Ø 4 Ø
u3 = 9 6 9 9 6 2 Ø Ø 4
C1
300×5
D1
150×8
C2 min f = 11410
220×7
D2
600×4
C3
330×9
200×9
D3
C4
Analita economico-matematică a unor modele liniare
X1 C1 C2 C3 C4 Disponibil
D1 5 8 12 6
301 150 451
D2 10 7 11 4
220 600 820
D3 8 9 9 10
480 50 530
Necesar 301 700 200 600 1800
vj 5 12 12 9 ∆ ij = c ij − c ij
ui cij
0 5 12 12 9 Ø -4 Ø -3 301 +θ 150- θ
-5 0 7 7 4 10 Ø 4 Ø 220 600
-3 2 9 9 6 6 Ø Ø 4 480- θ 50+ θ
min(−4,−3) = −4 = ∆ 12 θ = 150
Rezultă
X2 vj 5 8 8 5 ∆ ij = cij − c ij
ui cij
301 150 0 5 8 8 5 Ø Ø 4 1
220 600 -1 4 7 7 4 6 Ø 4 Ø
330 200 1 6 9 9 6 2 Ø Ø 4
∆ ij ≥ 0 , ∀i = 1,3 , j = 1,4
⇒ STOP
Problema de transport
Costul total este de 11415, soluţia optimă fiind prezentată grafic mai jos.
451
301× 5
D1 C1 301
150 × 8
700
820
220 × 7 C2
D2
600 × 4
200
530
330 × 9 C3
D3
200 × 9
600
C4
C1 C2 C3 C4 D
D1 3 4 6 5 200
D2 6 4 4 5 200
D3 20 5 9 9 250
C1 C2 C3 C4 D
D1 3 4 6 5
100 100 200
D2 6 4 4 5
200 200
D3 20 5 9 9
250 250
N 100 100 200 250 650
O2 : min (c 2 j ) = 4 = c 23 ;
j∉{1, 2}
⎡100 100 0 0 ⎤
⎢
Soluţia iniţială ⎢ 0 0 200 0 ⎥⎥ utilizează 4 rute; altfel spus,
⎢⎣ 0 0 0 250⎥⎦
prin aplicarea metodei s-au găsit numai 4 variabile bazice cu valori strict
pozitive. Se spune că s-a obţinut o soluţie degenerată.
Analita economico-matematică a unor modele liniare
X1 C1 C2 C3 C4 D
D1 3 4 6 5
100 100 ε ε 200 + 2ε
D2 6 4 4 5
200 200
D3 20 5 9 9
250 250
N 100 100 200 + ε 250 + ε 650 + 2ε
X1 vj 3 4 6 5 ∆ ij = cij − cij
u i cij
100 100- θ ε +θ
3 4 6 5 0 3 4 6 5 Ø Ø Ø Ø
100 100 ε ε ε
6 4 4 5 -2 1 2 4 3 5 2 Ø 2
200
200
20 5 9 9 4 7 8 10 9 13 -3 -1 Ø +θ 250- θ
250
min(100,250)=100
min ∆ ij = ∆ 32 = −3
∆ ij < 0 ⇒ x12 eliminat din bază
⇒ x32 intră în noua bază
Analita economico-matematică a unor modele liniare
X2 vj 3 1 6 5 ∆ ij = cij − cij
u i cij
3 4 6 5 0 3 1 6 5 Ø 3 Ø Ø 100+ ε + θ
ε 100 ε -θ
100 100+ ε
6 4 4 5 -2 1 -1 4 3 5 5 Ø 2
200
200
20 5 9 9 4 7 5 10 9 13 Ø -1 Ø θ
100 150- θ
100 150
În final, găsim:
u i cij
3 4 6 5 -4 3 1 5 5 Ø 3 1 Ø 100+2
100 100+2 ε
100
ε
6 4 4 5 -5 2 0 4 4 4 4 Ø 1
200
200
20 5 9 9 0 7 5 9 9 13 Ø Ø Ø
100 ε 150- ε
100 ε 150- ε
∆ ij ≥ 0 ∀i, j
⇒ Soluţie optimă unică.
şi ∆ kp > 0 ∀x kp
nebazică
Problema de transport
⎡100 0 0 100 + 2ε ⎤
⎢
Xε = ⎢ 0
*
0 200 0 ⎥⎥
⎢⎣ 0 100 ε 150 − ε ⎥⎦
C1
100 × 3
C3
100 × 5
D3 150 × 9
C4
Analita economico-matematică a unor modele liniare
Observaţie:
X1 C1 C2 C3 D
D1 5 4 0
600 100 700
D2 9 3 0
300 300
D3 2 4 0
300 200 500
N 600 700 200 1500
X1 vj 1 0 -4 ∆ ij = cij − cij
u i cij
5 4 0 4 5 4 0 Ø Ø 0 600- θ 100+ θ
600 100
9 3 0 3 4 3 -1 5 Ø 1
300
300
2 4 0 4 5 4 0 -3 Ø Ø +θ 300- θ 200
300 200
min ∆ ij = ∆ 31 = −3 min(600,300)=300
∆ ij < 0
min ∆ ij = ∆ 13 = −3 min(300,200)=200
∆ ij < 0
⇒ x 33 eliminat din bază
⇒ x13 intră în noua bază
Analita economico-matematică a unor modele liniare
Iteraţia 3:
X3 vj 5 4 0 ∆ ij = c ij − c ij
Soluţia optimă
ui cij
5 4 0 0 5 4 0 Ø Ø Ø
100 400 200
100 400 200
9 3 0 -1 4 3 -1 5 Ø 1
300
300
2 4 0 -3 2 1 -3 Ø 3 3
500
500
x11 = 100
*
D1 C1 : x11* + x31
*
= 600 unităţi
x12 = 400
*
de marfă primită.
x13 = 200
*
x 22 = 300
*
D2 C 2 : x12* + x22
*
= 700 unităţi
de marfă primită.
x 31 = 500
*
Problema 3.2.2.
Etapa 1: Epuizarea cu prioritate a stocului din D3 se face prin
blocarea rutei (3,3). După introducerea consumatorului fictiv C 3 şi blocarea
rutei (3,3) - prin repartizarea unui cost mare ( c 33 = 20 ) pe această
rută - soluţia admisibilă de bază iniţială a fost găsită folosindu-se metoda
elementului minim pe coloană:
X1 C1 C2 C3 D
D1 5 4 0
100 400 200 700
D2 9 3 0
300 300
D3 2 4 20
500 500
N 600 700 200 1500
X1 vj 5 4 0 ∆ ij = cij − c ij
Soluţia optimă
ui cij
5 4 0 0 5 4 0 Ø Ø Ø
100 400 200
100 400 200
9 3 0 -1 4 3 -1 5 Ø 1
300
300
2 4 0 -3 2 1 -3 Ø 3 3
500
500
∆ ij ≥ 0 , ∀i, j
Soluţie optimă
∆ kp > 0 , ∀xkp nebazică ⇒ unic determinată.
Analita economico-matematică a unor modele liniare
Problema 3.2.3
Etapa 1: După introducerea sursei fictive D3 , soluţia admisibilă de
bază iniţială a fost găsită aplicând metoda colţului de nord-vest.
X1 C1 C2 C3 D
D1 3 2 4
320 320
D2 2 4 1
200 100 300
D3 0 0 0
80 200 280
N 520 180 200 900
X1 vj 2 4 4 ∆ ij = cij − c ij
ui cij
3 2 4 -1 3 3 3 Ø -1 1
320
320
2 4 1 0 2 4 4 Ø Ø -3
200 100- θ +θ
200 100
2 0 0 -4 -2 0 0 2 Ø Ø 80+ θ
80 200 200- θ
min(100,200)=100
min ∆ ij = ∆ 23 = −3 ⇒ x 22 eliminat din bază
∆ ij < 0
X2 vj 2 1 1 ∆ ij = cij − c ij
ui cij
3 2 4 0 3 2 2 Ø 0 2
320
320
2 4 1 0 2 1 1 Ø 3 Ø 200- θ 100+ θ
200 100
0 0 0 -1 1 0 0 -1 Ø Ø +θ 180 100- θ
180 100
min(200,100)=100
min ∆ ij = ∆ 31 = −1
∆ ij < 0 ⇒ x 33 eliminat din bază
⇒ x 31 intră în noua bază
X3 vj 0 0 -1 ∆ ij = c ij − cij
ui cij
3 2 4 3 3 3 2 Ø -1 2 320- θ +θ
320
2 4 1 2 2 2 1 Ø 2 Ø
100 200
100 200
0 0 0 0 0 0 -1 Ø Ø 1 100+ θ 180- θ
100 180
min(320,180)=180
⇒ x 32 eliminat din bază
min ∆ ij = ∆ 12 = −1
∆ ij < 0
X4 vj 0 -1 -1 ∆ ij = cij − c ij
Soluţia optimă
ui cij
3 2 4 3 3 2 2 Ø Ø 2
140 180
140 180
2 4 1 2 2 1 1 Ø 3 Ø
100 200
100 200
0 0 0 0 0 -1 -1 Ø 1 1
280
280
x11 = 140
*
de marfă primită.
x 31 = 280 deficit
*
x 21 = 100
*
D2 x 23 = 200
*
C 2 : x12* = 180 unităţi de marfă primită.
x 31 = 280
*
D3
C3 : x 23* = 200 unităţi
ficti
v de marfă primită.
[min] f = 1180 u.m.
Problema de transport
Problema 3.2.4.
Etapa 1: Sevirea cu prioritate a centrului C 2 este echivalentă, aşa
cum am mai spus, cu blocarea rutei (3,2). După introducerea depozitului
fictiv D3 şi blocarea rutei (3,2) - prin repartizarea unui cost mare ( c 32 = 10 )
pe această rută - soluţia admisibilă de bază iniţială a fost găsită folosindu-se
metoda elementului minim pe linie:
X1 C1 C2 C3 D
D1 3 2 4
140 180 320
D2 2 4 1
100 200 300
D3 0 10 0
280 280
N 520 180 200 900
X1 vj 0 -1 -1 ∆ ij = cij − c ij
Soluţia optimă
ui cij
3 2 4 3 3 2 2 Ø Ø 2
140 180
140 180
2 4 1 2 2 1 1 Ø 3 Ø
100 200
100 200
0 10 0 0 0 -1 -1 Ø 11 1
280
280
C1 C2 C3 C4 D
D1 9 10 9 16
100
D2 12 9 16 8
120
D3 15 8 13 11
150
N 80 90 100 80
Etapa 1: Soluţia admisibilă de bază iniţială a fost stabilită prin metoda lui
Vogel:
X1 C1 C2 C3 C4 C5 D
α (1) α ( 2 ) α (3) α ( 4 ) α (5)
D1 9 10 9 16 0 9* 0
80 20100
D2 12 9 16 8 0 8 1 1 4* 4*
40 80 120
D3 15 8 13 11 0 8 3 3* 2 2
40 90 20 150
N 80 90 100 80 20 370
β (1) 3 1 4* 3 0
β ( 2) 3 1 4* 3
β ( 3) 3 1 3 3
β ( 4) 3 3 3
β ( 5) 3 3
Problema de transport
80 20
40 80
TESTARE
40 90 20
vj 15 8 13 11 4 ∆ ij = c ij − c ij
u i cij
-4 11 4 9 7 0 -2 6 Ø 9 Ø
-3 12 5 10 8 1 Ø 4 6 Ø -1
0 15 8 13 11 4 Ø Ø Ø 0 -4
min ∆ ij = ∆ 35 = −4
∆ ij < 0
80+ θ
20- θ θ = min( x15 , x33 ) = min (20,20) =
= 20 = x33 ,
40 80 deoarece c33 = max (c15 , c33 ) .
20- θ
40 90 +θ
100 0
40 80
TESTARE
40 90 20
vj 15 8 9 11 0 ∆ ij = c ij − c ij
u i cij
0 15 8 9 11 0 -6 2 Ø 5 Ø
-3 12 5 6 8 -3 Ø 4 10 Ø 3
0 15 8 9 11 0 Ø Ø 4 0 Ø
min ∆ ij = ∆ 11 = −6
∆ ij < 0
θ
100 0- θ θ =min(0,40)=0.
⇒ x15 eliminat
40 80 din bază.
40- θ 90 20+ θ
0 100
40 80
40 90 20
vj 15 8 15 11 0 ∆ ij = cij − c ij
u i cij
-6 9 2 9 5 -6 Ø 8 Ø 11 6
-3 12 5 12 8 -3 Ø 4 4 Ø 3
0 15 8 15 11 0 Ø Ø -2 0 Ø
min ∆ ij = ∆ 33 = −2
∆ ij < 0
⇒ x 33 intră în noua
Analita economico-matematică a unor modele liniare
0+ θ
100- θ θ =min(100,40)=40.
⇒ x 31 eliminat din bază.
40 80
40- θ 90 +θ 20
Iteraţia 4:
40 60
40 80
TESTARE
90 40 20
vj 13 8 13 9 0 ∆ ij = c ij − c ij
u i cij
-4 9 4 9 5 -4 Ø 6 Ø 11 4
-1 12 7 12 8 -1 Ø 2 4 Ø 1
0 13 8 13 9 0 2 Ø Ø 2 Ø
∆ ij ≥ 0 , ∀i, j
⇒ soluţia găsită este optimă.
Problema de transport
C1
x11 = 40
*
D1
x13 = 60
*
C2
x 21 = 40
*
D2 x 24 = 80
*
C3
x 32 = 90
* Costul total este
de 3260u.m.
x 33 = 40
*
C4
D3
x 35 = 20 ,
*
C1 C2 C3 D
D1 3 2 1
30 190
220
D2 2 1
300
300
D3 1 3 5
180
180
D4 2 4 3
40 160
200
N 520 190 190 900
C1 C2 C3 D
D1 220 ε 220+ ε
D2 300 300
D3 180 180
D4 10 190 200
N 520 190+ ε 190 900+ ε
3 2 1
ε
u1 = 2 3 2 1 Ø Ø 0 220- θ ε +θ
220
2 4 1 u2 = 1 2 1 0 Ø 3 1 300
300
1 3 5 u3 = 3 4 3 2 -3 Ø 3 +θ 180- θ
180
2 4 3 u4 = 4 -3
5 4 3 Ø Ø 10 190
10 190
min(10,40)=10
min ∆ ij = −3 = ∆ 41 ⇒ x 42 eliminată
∆ ij < 0
din bază.
⇒ x 41 intră în bază.
Problema de transport
min(30,190)=30
min ∆ ij = −1 = ∆ 13 ⇒ x11 eliminată
∆ ij < 0
din bază.
⇒ x13 intră în bază.
min(300,160)=160
min ∆ ij = −2 = ∆ 23
∆ ij < 0 ⇒ x 43 eliminată din
⇒ x 23 intră în bază. bază.
Analita economico-matematică a unor modele liniare
2 4 1 u2 = 2
140 160 2 4 3 Ø 2 Ø
1 3 5 u3 = 1
180 1 3 2 Ø 2 5
2 4 3 u4 = 2
200 2 4 3 Ø 2 2
D1
C1
x12 = 190
*
x13 = 30
*
x 21 = 140
*
D2
C2
x 23 = 160
*
D3 C3
x 31 = 180
*
x 41 = 200
*
D4
Problema de transport
min(190,300,160)=160
⇒ x42 eliminată din
min ∆ ij = −2 = ∆ 23
∆ ij < 0 bază.
⇒ x 23 intră în bază.
Modelul matematic
Pi x ik
ai Dk
c ik dk
m1
V.4.1 ∑x
k =1
ik = ai , i ∈ M
m
V.4.2 ∑x i =1
ik = dk , k ∈ M1
Dk y kj Cj
dk
p kj
bj
n
V.4.3 ∑y j =1
kj = dk , k ∈ M1
m1
V.4.4 ∑y
k =1
kj = bj , j ∈ N
V.4.5 x ik ≥ 0 , y kj ≥ 0 , i ∈ M , k ∈ M 1 , j ∈ N
m m1 m1 n
V.4.6 [min] f = ∑∑ cik x ik + ∑∑ p kj y kj
i =1 k =1 k =1 j =1
Analita economico-matematică a unor modele liniare
m m1 n
V.4.7 ai ≥ 0 , dk ≥ 0 , bj ≥ 0 ; ∑a = ∑d
i =1
i
k =1
k = ∑bj ,
j =1
i∈M ,
k ∈ M1, j ∈ N .
(PB1) (PB2)
m1 n
∑x ik = ai , i ∈ M ∑y
j =1
kj = dk , k ∈ M1
k =1
m m1
∑ xik = d k , k ∈ M 1
i =1
∑y kj = bj , j ∈ N
k =1
x ik ≥ 0 , i ∈ M , k ∈ M 1 y kj ≥ 0 , k ∈ M 1 , j ∈ N
m m1 m1 n
[min] f 1 = ∑∑ c ik x ik [min] f 2 = ∑∑ p kj y kj
i =1 k =1 k =1 j =1
ai ≥ 0 , d k ≥ 0 dk ≥ 0 , bj ≥ 0
m m1
∑ ai = ∑ d k
m1 n
i =1 k =1
∑d
k =1
k = ∑bj
j =1
Problema de transport
c 4 k = 0 şi p k 5 = 0 , k ∈1,4 .
Analita economico-matematică a unor modele liniare
T.V.4.2
T.V.4.1
D1 D2 D3 D4 C1 C 2 C 3 C 4 C 5f
D
A
D1 4 1 1 3 0
P1 9 4 7 8
26
9 25 34 26
P2 3 6 11 3 D2 6 2 1 4 0
15 15 9
9
P3 8 5 9 7
D3 3 5 5 1 0
3 48 51 12 23 2
P4 0
f 0 0 0 37
8 12 20 D4 4 3 2 3 0
26 9 37 48120 4 16 28
48
D N 12 30 25 23 30 120
[min] f1 = 616
C1
D1 [min] f 2 = 138
P1 Rute fictive folosite
9 26
în variantele optime:
25 (P4 , D1 )
C2 (P , D ) , (D , C )
4 3 3 5
15
P2 D2 (D , C )
4 5
9 4
3 C3
16
12
P3 48
D3
23
8 C4
12
P4 D4 2
28 C5
fictiv
fictiv
Problema de transport
D3 2
•C 5 30=2+28
28
D4
Pi Cj
T.V.4.3 T.V.4.4
P1 P2 P3 P4 f D C1 C2 C3 C 4 C 5f
D1 15 3 8 26 26
D2 9 9 9
D3 25 12 37 12 23 2
Dk
D4 48 48 4 16 28
A → 34 15 51 20 B→ 12 30 25 23 30
Pi Cj
T.V.4.5 T.V.4.6
P1 P2 P3 P4 f D C1 C 2 C 3 C 4 C 5f
D1 15 3+ θ 8- θ 26 26
D2 9 9 9
25 12 37 ~ 23 ~
Dk D3 12- θ 2+ θ
48- θ θ 48 ~ 4 16 ~
D4 θ 28- θ
A → 34 15 51 20 B → 12 30 25 23 30
Aprovizionarea se face de
la D3 , care primeşte în ~ ~
12- θ 23 2+ θ
realitate numai 25t. ~ ~
θ 28- θ
~
θ = 12
Problema de transport
P1 x13* = 25 P1 D3
D3 ⇒ ~
*
x 34 = 40 x 34* = 40 − 8
P3 P3 D4
D4 ⇒
Pentru evitarea imobilizărilor de fonduri fixe, pierderea valorii
mărfii prin depozitarea sau folosirea neraţională a mijloacelor de transport,
se recomandă următoarele politici în alte două cazuri de excepţie:
m m1 n
• ∑ ai = ∑ d j > ∑ bk → Deoarece se cere mai puţin decât se oferă,
i =1 j =1 k =1
m n
diferenţa ∑ a − ∑b
i =1
i
k =1
k nu va fi expediată spre centrele intermediare.
Analita economico-matematică a unor modele liniare
m m1 n
• ∑ ai = ∑ d j < ∑ bk → Se recomandă satisfacerea cu priorităţi a cererilor
i =1 j =1 k =1
Semnificaţie Notaţie
Modelul matematic
Pj
Ui
wij , cij
ai bj
xij
4 3
V.5.4 [min] f = ∑∑ cij xij .
i =1 j =1
U1 U2 U3 bi - producţia planificată
5 6 1.5
P1 20 80 40
600
1.2 20 1.3
P2 14900
80 20 50
3 2 1.2
P3 11600
32 160 50
1.3 2 0.35
P4 64 200 200
100000
a j - timpul disponibil
180 540 360
(în ore)
U1 U2 U3 bi
5 6 1.5
P1 600 → 0
20 0 80 0 40 6000
1.2 20 1.3
P2 14900 → 500 → 0
80 14400 20 0 50 500
3 2 1.2
P3 11600 → 1600 → 0
32 0 160 1600 50 10000
1.3 2 0.35
P4 100000 → 0
64 0 200 100000 200 0
540 ↓ 360 ↓
aj 180 ↓
0 530 ↓ 200 ↓
30 0
Problema de transport
vj
Să vedem dacă această soluţie este optimă. Sistemul u i + = cij
wij
pentru indicii bazici este:
v3 v v
u1 + = 1,5 , u 2 + 1 = 1,2 , u 2 + 3 = 1,3 ,
40 80 50
v2 v v
u3 + = 2 , u 4 + 2 = 2 , u 4 + 3 = 0,35 ,
160 50 200
⎛ 3,9 0,375 0 ⎞
⎜ ⎟
⎜ 0 2.2 0 ⎟ soluţia optimă este cea
⎜ 3,0875 ≥0 ⇒
0 1,2625 ⎟ prezentată în T.V.5.1.
⎜ ⎟
⎜ 1,075 0 0 ⎟⎠
⎝
6. Probleme de repartiţie
Modelul matematic
● z ij reprezintă repartizarea posibilităţii i pentru necesitatea j;
i, j ∈{1,..., n} . Această variabilă este de tip Boole:
⎧1 , daca i este alocat lui j
z ij = ⎨
⎩ 0 , in rest
● cij este coeficientul de eficienţă asociat alocării (i, j ) .
Analita economico-matematică a unor modele liniare
n
V.6.2 ∑z
j =1
ij = 1 , i = 1, n ,
{α i + β j ≤ cij , i, j ∈1, n
α i , β j ∈ R , i, j ∈1, n
Se preferă abordarea acestui tip de problemă prin teoria grafurilor,
datorită procedeelor relativ simple şi elegante de găsire a soluţiei optime.
v(W ) = ∑ v(x , y ) .
(xi , y j )∈W
i j
5
D1 C1
4
D2 C2
7
D3 C3
8
D4 C4
6
D5 C5
Modelarea matematică
Model primal
Model dual
[min] f = 5 z11 + 5 z12 + 9 z13 + ... + 6 z 55 5 5
z ij ∈ {0,1} , i ∈ 1, n, j ∈ 1, n
Problema de transport
M = (m
~ )
~ ~
ij i , j =1, n , în care mij = mij − α i , pentru ∀i, j ∈ {1,..., n} .
~ −β .
notată M , de element general mijR = m
R
ij j
Analita economico-matematică a unor modele liniare
Pasul 1 Pasul 2
α1 = 3 ⎛2 2 6 5 0⎞ β1 = 0 ⎛2 2 6 4 0⎞
⎜ ⎟ ⎜ ⎟
α2 = 4 ⎜2 0 3 5 2⎟ β2 = 0
~ ⎜2 0 3 4 2⎟
α3 = 3 ⇒ M = ⎜ 2 0 0 4 1⎟ β3 = 0 ⇒ M R = ⎜ 2 0 1⎟
⎜ ⎟ ⎜
0 3
⎟
α4 = 3 ⎜0 4 5 1 5⎟ β4 = 1 ⎜0 4 5 0 5⎟
⎜ ⎟ ⎜ ⎟
α5 = 2 ⎝6 0 4 4 4⎠ β5 = 0 ⎝6 0 4 3 4⎠
α1 = 3 β1 = 0 ⇒ α1 + β1 = 3 < 5 = c11
α2 = 4 β 2 = 0 ⇒ α 1 + β 2 = 3 < 5 = c12
α3 = 3 β 3 = 0 ⇒ α1 + β 3 = 3 < 9 = c13
α4 = 3 β 4 = 1 ⇒ α1 + β 4 = 4 < 8 = c14
α5 = 3 β 5 = 0 ⇒ α1 + β 5 = 3 = c15 *
Problema de transport
Când ∑α + ∑ β
i j este maximală, atunci relaţia se verifică cu
egalitate.
β j = min (mij − α i ) ˝.
i
⎛2 2 6 4 0⎞ 0
m15R = 0 încadrat
⎜ ⎟ 1 linia 1:
⎜2 0 3 4 2⎟ 0
2 linia 2:
R
m22 = 0 încadrat ⇒ m32R = m52R = 0 barat
M = ⎜2
R
0 0 3 1⎟ 0
⎜ ⎟ 3 linia 3: m33R = 0 încadrat
⎜0 4 5 0 5⎟ 0
⎜6
R
m41 = 0 încadrat ⇒ m44
R
= 0 barat
0 4 3 4 ⎟⎠
4 linia 4:
⎝
*
⎛2 2 6 4 0⎞ (a) se va marca linia 5;
⎜ ⎟ (b) se va marca coloana 2 (zero barat din
⎜2 0 3 4 2⎟ *
linia 5, marcată, se află în coloana 2);
M = ⎜2
R
0 0 3 1⎟ (c) coloana 2, marcată, conţine un zero
⎜ ⎟
încadrat în linia 2 ⇒ linia 2 va fi
⎜0 4 5 0 5⎟
⎜6 marcată.
⎝ 0 4 3 4 ⎟⎠ *
Aici,
T1 : {
D1 = m21
R R
, m23 R
, m24 R
, m25 , m51R , m53R , m54R , m55R ;}
ε 1 = min (mijR ) = 2 = m21 = m25 ;
mijR ∈D1
{
T2 : D2 = m11R , m13R , m14R , m15R , m22
R
, m31R , m33R , m34R , m35R , m41
R R
, m43 R
, m44 R
, m45 }
, m52R ;
T3: D3 = {m R
12
R
}
, m32R , m42 .
⎛2 4 6 4 0⎞
⎜ ⎟
⎜0 0 1 2 0⎟
După efectuarea calculelor, se obţine: M = ⎜ 2
R1
2 0 3 1⎟ .
⎜ ⎟
⎜0 6 5 0 5⎟
⎜4 0 2 1 2 ⎟⎠
⎝
∑α i + ∑ β j + ε1 = 16 + 2 .
i =1 j =1
D1 3 C1
6
D2 C2
3
D3 C3
4
D4 C4
2
D5 C5
( )
iar valoarea sa v W * = 18 reprezintă distanţa minimă necesară mijloacelor
de transport pentru a aproviziona cele cinci centre consumatoare. Dacă
aprovizionarea se face cu o singură cursă, aceasta este distanţa totală
minimă, iar dacă sunt necesare mai multe, atunci ea se va amplifica cu
numărul curselor.
Analita economico-matematică a unor modele liniare
Se scrie matricea M.
R
Se calculează matricea redusă M şi marginea inferioară a funcţiei f.
Se aplică procedeul
NU de marcare a liniilor
Există? şi coloanelor; se
stabileşte acoperirea
minimală a matricei
reduse.
DA
STOP
Se modifică matricea.
Problema de transport
Pasul 2 Din fiecare coloană a matricii C ' se scade cel mai mic
element al său şi se obtine astfel matricea redusă, notată C R :
( )
C R = cijR i , j =1, n
, unde cijR = c'ij − min c'ij .
i
Problema de transport
Mj M1 M2 M3 M4 M 5 M 6 αi
Li
L1 6 7 4 2 5 4 2 α i = min{cij }
j
C 7 1 2 6 3 4 1
L2
L3 4 5 2 7 6 8 2
L4 4 5 6 3 8 7 3
L5 5 5 3 7 5 2 2
L6 6 4 4 3 6 5 3
6
∑αi =1
i 13
M j M1 M 2 M 3 M 4 M5 M6 6
Li
∑β
j =1
j
L1 4 5 2 0 3 2
C' L2 8 0 1 5 2 3
L3 2 3 0 5 4 6
L4 1 2 3 0 5 4
L5 3 3 1 5 3 0
L6 3 1 1 0 3 2
β j = min{c'ij } βj 1 0 0 0 2 0 3
i
M j M1 M 2 M3 M4 M5 M6
Li
L1 3 5 2 0 1 2
L2 7 0 1 5 0 3
CR
L3 1 3 0 5 2 6
L4 0 2 3 0 3 4
L5 2 3 1 5 1 0
L6 2 1 1 0 1 2
Analita economico-matematică a unor modele liniare
E → ω (E ) = 16
Figura V.6.1
Etapa 3: Fiecărui element nul cijR din matricea redusă i se asociază numărul
θ ij definit ca suma dintre cel mai mic element al liniei i fără cijR şi cel mai
mic element al coloanei j fără cijR :
încât cuplajul maxim care nu conţine arcul (Lk , M j ) are valoarea cea mai
mare.
În cazul nostru,
θ 14 = min{c1Rl } + min{c kR4 } = 1 + 0 , θ 41 = min{c 4Rl } + min{c kR1 } = 0 + 1 ,
l≠4 k ≠1 l ≠1 k ≠4
max{θ ij } = max{θ 14 ,θ 22 ,θ 25 ,θ 33 ,θ 41 ,θ 44 ,θ 56 ,θ 64 } = 3 = θ 56 .
i, j
Problema de transport
Etapa 4: Prin ramificare, din nodul E vor porni două arce cu nodurile
finale notate E kl şi E kl . Nodului E kl îi corespund cuplajele maxime ce nu
conţin arcul (Lk , M l ) . Marginea sa inferioară va fi notată ω (E kl ) , şi se află
astfel:
ω (E kl ) = ω (E ) + θ kl
M1 M2 M3 M4 M5
E56
ω (E56 ) = 16 + 3 = 19 L1 3 5 2 0 1
L2 5 0 1 5 0
E
ω (E ) = 16 E56 L3 1 3 0 5 2
L4 0 2 3 0 3
L6 2 1 1 0 1
Figura V.6.2
Etapa 6:
a) Dacă matricea aflată la pasul 5 conţine cel puţin un zero pe linie şi
coloană, se trece la pasul b); dacă nu, se reduce matricea găsită după
procedeul de la pasul 1, apoi se trece la b).
Analita economico-matematică a unor modele liniare
şi β ' j , j ≠ l , sunt cele mai mici elemente din liniile, respectiv coloanele
matricei de la etapa 5.
În situaţia de faţă, se observă că ∑α '
i ≠5
i = 0 şi ∑β'
j ≠6
j = 0 , deci
element zero pe limie şi coloană; în caz contrar se reduce, după care se trece
la etapa 3.
Etapa 4:
( )
E56 ω E56 = 19
( )
E33 ω E33 = 16 + θ 33 = 18
E
ω (E ) = 16 Figura V.6.3
T. V.6.1
M1 M2 M4 M5
L1 3 5 0 1
L2 5 0 5 0
L4 0 2 0 3
L6 2 1 0 1
Etapa 4:
( )
E56 ω E56 = 19 E33 ω (E33 ) = 18 ( )
E41 ω E41 = 18
E
E56 E33
ω (E56 ) = 16 ω (E33 ) = 16 E56
ω (E56 ) = 16
Figura V.6.4
M2 M4 M5
L1 5 0 1
L2 0 5 0
L6 1 0 1
Etapa 8: min{ω (E 41 ), ω (E 41 )} = ω (E 41 ) = 16 .
Etapa 4:
E
E56 E33 E56 E22
ω (E56 ) = 16 ω (E33 ) = 16 ω (E56 ) = 16 ω (E22 )
M4 M5
L1 0 1
L6 0 1
M4 M5
L1 0 0
L6 0 0
Problema de transport
Se revine la
Etapa 3: θ 14 = 0 , θ 15 = 0 , θ 64 = 0 , θ 65 = 0 ⇒
⇒ min{c14 , c15 , c64 , c65 } = min{2,5,3,6} = 2 = c14
Nodul E 22 va fi nod iniţial al acelor cu nodurile finale E14 şi E14 .
Etapa 4:
E
ω (E ) = 16 E56 E33 E56 E22 E14
ω (E56 ) = 16 ω (E33 ) = 16 ω (E56 ) = 16 ω (E22 ) = 17
Analiza economico-matematică a unor modele liniare
M5
L6 0
ω (E 65 ) = ω (E14 ) + 0 = 17
L1 M1
2
2 + 1 + 2 + 4 + 2 + 6 = ω (E65 ) = 17
L2 1 M2
L3 2 M3
4
L4 M4
M5
L5 2
M6
L6 6
Problema de transport
⎛ ⎞
b j = min⎜ tij − min tij ⎟
i ⎝ j ⎠
(2) n n
ω (E ) = ∑ a + ∑b
i =1
i
j =1
j
θ kl = max θ ij
(6)
T1'' are câte un (8)
DA
zero pe fiecare ω (Ekl ) = ω (E )
linie şi coloană?
(7) DA
n × n = 1× 1?
NU
După proc. (1) se formează noi
zerouri
∑ ∑
ω (Ekl ) = ω (E ) + ai + b j
i j ω (Ekl ) < ω (Ekl )
NU
DA
(3)
tij'' = +∞ ⇒ se
formează noi
zerouri
STOP
Analiza economico-matematică a unor modele liniare
Oj O1 O2 O3 O4 O5 O6
Mi
M1 ∞ 4 7 2 6 3
M2 1 3 5 8 5 ∞
M3 6 ∞ 8 5 ∞ 7
M4 5 7 3 ∞ 4 5
M5 4 ∞ 9 7 4 4
M6 3 4 9 3 ∞ 5
Etapa 1: Vom căuta să obţinem pe fiecare linie şi coloană cel puţin un zero.
Pentru aceasta, evidenţiem din elementele fiecărei linii, respectiv coloane,
elementul minim corespunzător. Scăzând elementul minim al liniei întâi din
toate elementele liniei întâi, ş.a.m.d până la linia şase, se obţine din matricea
T următoarea matrice:
Pasul 1
α1 = 2 ⎛∞ 2 5 0 4 1 ⎞
⎜ ⎟
α2 =1 ⎜ 0 2 4 7 4 ∞⎟
α3 = 5 ~ ⎜ 1 ∞ 3 0 ∞ 2 ⎟⎟
T =⎜
α4 = 3 ⎜2 4 0 ∞ 1 2⎟
⎜0 ∞ 5 3 0 0⎟
α5 = 4 ⎜ ⎟
α6 = 3 ⎜0 1 6 0 ∞ 2⎟
⎝ ⎠
*
⎛ ∞ 1 5 0 4 1 ⎞*
⎜ ⎟
⎜ 0 1 4 7 4 ∞⎟
⎜ 1 ∞ 3 0 ∞ 2 ⎟*
⎜ ⎟
⎜2 3 0 ∞ 1 2⎟
⎜0 ∞ 5 3 0 0⎟
⎜ ⎟
⎜0 0 6 0 ∞ 2⎟
⎝ ⎠
⎛∞ 0 4 0 3 0 ⎞
⎜ ⎟
⎜ 0 1 4 8 4 ∞⎟
⎜0 ∞ 2 0 ∞ 1⎟
⎜ ⎟
⎜2 3 0 ∞ 1 2⎟
⎜0 ∞ 5 4 0 0⎟
⎜ ⎟
⎜0 0 6 1 ∞ 2⎟
⎝ ⎠
Analiza economico-matematică a unor modele liniare
⎛∞ 0 4 0 3 0 ⎞
⎜ ⎟
⎜ 0 1 4 8 4 ∞⎟
⎜0 ∞ 2 0 ∞ 1⎟
⎜ ⎟
⎜2 3 0 ∞ 1 2⎟
⎜0 ∞ 5 4 0 0⎟
⎜ ⎟
⎜0 0 6 1 ∞ 2⎟
⎝ ⎠
E → ω (E ) = 19
Rezultă că max{θ 14 ,θ 21 ,θ 34 ,θ 43 ,θ 51 ,θ 55 ,θ 56 ,θ 61 ,θ 62 ,θ 63 } = θ 43 = 4 .
Analiza economico-matematică a unor modele liniare
E 43
ω (E43 ) = 23
E
ω (E ) = 19 E 43
ω (E43 ) = 19
⎛∞ 1 5 0 4 1⎞
⎜ ⎟
⎜0 1 4 7 4 8⎟
⎜1 ∞ 3 0 ∞ 2⎟
⎜ ⎟
⎜2 3 0 ∞ 1 2⎟
⎜0 ∞ 5 3 0 0 ⎟⎟
⎜
⎜0 0 6 0 ∞ 2 ⎟⎠
⎝
⎛∞ 1 5 0 4 1⎞
⎜ ⎟
⎜0 1 4 7 4 8⎟
⎜1 ∞ 3 0 ∞ 2⎟
⎜ ⎟
⎜2 3 0 ∞ 1 2⎟
⎜0 ∞ 5 3 0 0 ⎟⎟
⎜
⎜0 0 6 0 ∞ 2 ⎟⎠
⎝
⎛∞ 1 5 0 4 0⎞
⎜ ⎟
⎜0 1 4 7 4 7⎟
⎜1 ∞ 3 0 ∞ 1⎟
⎜ ⎟.
⎜2 3 0 ∞ 1 2⎟
⎜0 ∞ 5 3 0 0 ⎟⎟
⎜
⎜0 0 6 0 ∞ 1 ⎠⎟
⎝
Analiza economico-matematică a unor modele liniare
Din matricea
⎛∞ 1 5 0 4 0⎞
⎜ ⎟
⎜0 1 4 7 4 7⎟
⎜1 ∞ 3 0 ∞ 1⎟
⎜ ⎟
⎜2 3 0 ∞ 1 2⎟
⎜0 ∞ 5 3 0 0 ⎟⎟
⎜
⎜0 0 6 0 ∞ 1 ⎟⎠
⎝
Rezultă matricea
⎛∞ 1 5 0 4 0⎞
⎜ ⎟
⎜0 1 4 7 4 7⎟
⎜1 ∞ 3 0 ∞ 1⎟
⎜ ⎟
⎜2 3 0 ∞ 1 2⎟
⎜0 ∞ 5 3 0 0 ⎟⎟
⎜
⎜0 0 6 0 ∞ 1 ⎟⎠
⎝
Calculăm iarăşi
θ 34 = ∞ , θ 62 = ∞ , θ 64 = 0 + 0 = 0 .
ω (E34 ) = ω (E21 ) + θ 34 = ∞ ,
ω (E34 ) = ω (E21 ) + ω (E34 ) = 20 ,
Analiza economico-matematică a unor modele liniare
E43
ω (E43 ) = 23 E55
E16
E21
ω (E16 ) = 21
E34
ω (E55 ) = 23 ω (E21 ) = 21 ω (E ) = 23
(23) 34
(23) (23) (23)
(23)
E62
ω (E62 ) = 20
E E43 E16 E21
E55 E34
ω (E ) = 19 ω (E43 ) = 19 ω (E ) = 20 ω (E16 ) = 20 ω (E21 ) = 20 ω (E34 ) = 20
55
[min] f = 3 x1 + 2 x 2 + 4 x3 + 2 x 4 + 3 x5
⎧ x1 + 2 x 2 + x3 + x 4 = 10
⎨ .
⎩2 x1 + 3 x 2 + x 4 + x5 = 15
x j ≥ 0, ∀j ∈ 1,5
2. Pentru problema
[min] f = 50 x1 + 25 x 2 + 30 x3
⎧ x1 + 2 x 2 + 3 x3 ≥ 8
⎨ ,
⎩3 x1 + 4 x 2 + x3 ≥ 9
x j ≥ 0, ∀j ∈ 1,3
se cer:
a) Să se scrie duala problemei date.
b) Să se determine soluţia optimă a primalei, aplicând algoritmul simplex
dual.
Analiza economico-matematică a unor modele liniare
3. Se dau:
⎡1 2 0 ⎤ ⎛ 680 ⎞
⎢ ⎥ ⎜ ⎟
[max] f = 20 x1 + 16 x 2 + 17 x3 , A = ⎢2 1 4⎥ , b = ⎜ 800 ⎟ ,
⎢⎣2 2 1 ⎥⎦ ⎜ 900 ⎟
⎝ ⎠
⎛1 1 − 3 / 2⎞
−1
⎜ ⎟
B = ⎜ 0 1 − 1/ 2 ⎟ .
⎜0 −1 1 ⎟⎠
⎝
a) Matricea B −1 este inversa bazei optimale pentru programul liniar scris
sub formă canonică, ce utilizează elementele date şi corespunde unui
program de fabricaţie sub aspectul profitului aşteptat. Determinaţi acest
program.
b) Să se scrie dualul programului de la a) şi să se afle soluţia sa optimă. Să
se interpreteze economic, folosind teoremele dualităţii.
[max] f ( x1 , x 2 ) = 12 x1 + 15 x 2
⎧4 x1 + 3 x 2 ≤ 1200
⎪
4. În modelul liniar ⎨ x1 + 2 x 2 ≤ 500 , semnificaţiile
⎪ 3 x + 2 x ≤ 900
⎩ 1 2
x j ≥ 0, ∀j ∈ 1,2
Probleme propuse
Se cer:
5. (Problemă de amestec)
O uzină trebuie să producă un aliaj care să conţină 45% plumb şi
55% zinc. Pentru aceasta, uzina poate să cumpere aliajele A, B, C şi D, ale
căror compoziţii şi preţuri sunt cele din tabelul de mai jos. Cât trebuie să se
cumpere din fiecare aliaj A, B, C, D, astfel încât costul unitar de obţinere a
aliajului dorit să fie minim?
Analiza economico-matematică a unor modele liniare
Aliajul care
Aliaje A B C D
trebuie obţinut
% plumb 20 30 10 60 45
% zinc 80 70 90 40 55
Preţul de cost
6 4 8 3 minim
pe un kg
7. Fie problema
[max] f ( x1 , x 2 ) = 12 x1 + 15 x 2
⎧ x1 + x3 ≤ 500
⎪ x + x + 2 x ≤ 800
⎪ 1 2 3
⎨
⎪ 2 x 2 + x3 ≤ 400
⎪⎩2 x1 + x3 ≥ 600
x j ≥ 0, ∀j ∈ 1,3
8. Se dă:
[max] f ( x1 , x 2 ) = x1 + 2 x 2 + 2 x3 + 4 x 4 + x5
⎧ x1 + x 2 + 2 x3 + x5 ≤ 4000
⎪
⎨ x1 + x3 + x 4 + x5 = 6000
⎪ x + 2 x + x + 2 x ≤ 8000
⎩ 1 2 4 5
x j ≥ 0, ∀j ∈ 1,5
Analiza economico-matematică a unor modele liniare
x j ≥ 0, ∀j ∈ 1,3
W PR PV
CI
A B A B A B
Strunjire 25 40 20
Găurire 28 35 2 3 14 5 6
Şlefuire 35 25 17,5
Notaţii:
- W: productivitatea maşinilor (bucată/h);
- PR: preţ ($);
- CI: cheltuieli pentru întreţinerea maşinilor ($/h);
- PV: preţ de vânzare ($).
Se cer:
a) Ce combinaţie a celor două produse va asigura beneficiul maxim?
(presupunem că poate fi vândută orice cantitate di piesele A şi B).
b) Cu cât va creşte beneficiul dacă timpul de folosire a strungului creşte cu
o unitate?
Sortiment S1 S2 Capacitate
Maşină disponibilă
M1 1 4 16
M2 2 1 8
M3 1 1 5
Beneficiu unitar 7 4
Analiza economico-matematică a unor modele liniare
Utilajul este compus din două subansamble de tip A2 şi câte unul de tip A1
şi A3 .
Se cer:
a) Care este structura optimă a planului de producţie corespunzător valorii
maxime a acestuia?
b) Care este structura optimă a producţiei, dacă preţurile de producţie sunt
20, 50, 70.
Să se scrie duala problemei rezolvate la punctul a). Care este soluţia sa
optimă? Interpretarea economică a rezultatelor.
Probleme propuse
Consumuri specifice
P1 P2 P3
M1 1 3 4
M2 2 5 1
M3 4 1 2
Beneficiu unitar
30 20 60
(u.m.)
Denumire
Nr. produs
PV C W S a' v P = Pv − C q
(mii lei/ (mii lei/ (mii lei/ (mii lei/
($/ (mii lei/
crt. (motoare (bucată)
bucată) bucată) bucată) bucată) bucată) bucată)
electrice)
1 2600CP 950 800 800 5000 1000 150 x1
2 3100CP 1150 1000 1000 5500 1100 150 x2
3 3900CP 1300 1100 1200 5250 1150 200 x3
4 4500CP 1350 1200 1300 4750 1200 150 x4
unde:
- C: costul unitar;
- Pv : preţul de vânzare unitar;
- P: profitul unitar;
- S: investiţia specifică;
- a ' v : aportul valutar unitar;
- Q: producţia valorică; Q = q ⋅ Pv ;
Q q ⋅ Pv P
- W= = ⇒ N = v ⋅q .
N N W
P1 P2 P3
T 2 1 5
F1 6 5 3
F2 5 5 4
Analiza economico-matematică a unor modele liniare
[min] f = x1 + x 2 + 3 x3 + 4 x 4 + 2 x5 + 5 x6
⎧ x1 + 2 x 2 + 3x3 + x 4 = 400
⎪
⎨2 x1 + x 2 + x3 + x5 = 200
⎪3x + 4 x + 2 x + x = 1000
⎩ 1 2 3 6
x j ≥ 0, ∀j ∈ 1,6
Secţia 3
Secţia 1 Secţia 2 4
Produsul A
3 2 Secţia 4
C1 C2 C3 C4 C5 D
D1 6 6 10 5 4 200
D2 10 4 6 7 8 800
D3 6 5 3 2 5 400
D4 5 7 7 4 6 600
N 500 200 400 500 400
Analiza economico-matematică a unor modele liniare
S1 S2 S3
5 4 6
U1 14
7 6 10
3 2 3
U2 24
15 10 15
10 7 9
U3 50
20 15 22
30 28 49
Beneficiar
FRB OLTENI SUCEAVA IAŞI Disponibil
Furnizor
SIRIA 20.000 30.000 30.000 20.000 100.000
EGIPT 30.000 10.000 10.000 50.000 100.000
CHINA 30.000 40.000 100.000 30.000 200.000
CONGO 20.000 20.000 60.000 0 100.000
Necesar 100.000 100.000 200.000 100.000
Probleme propuse
P1 P2 P3 P4 D
D1 2 4 3 2 500
D2 6 5 5 6 400
D3 6 3 1 4 350
N 500 200 300 400 *
Se cer:
P1 P2 P3 P4 D
D1 2 4 3 2 500
D2 6 5 5 6 400
D3 6 3 1 4 350
N 1250
500 200 300 400 1400
Analiza economico-matematică a unor modele liniare
Se cer:
a) soluţia optimă;
b) soluţia optimă dacă P3 trebuie să primească întreaga cantitate solicitată;
c) soluţia optimă în ipoteza că ruta (D2 , P2 ) nu poate fi folosită în perioada
considerată.
C1 C2 C3 C4 Disponibil
D1 10 20 20 11 15
D2 15 7 9 20 25
D3 12 14 13 18 30
Necesar 5 20 15 30