Documente Academic
Documente Profesional
Documente Cultură
(P)
X 0
[max] f ( x) = CX
( )
b B1
(X )
B1
= ( x1 , x 2 , ...., xm )
(B )
1 1
b = (X )
not
B1
0 . Elementele vectorului
( )
RX R , unde
T
sunt
II.1.1
f 1 c1 =
min { f j c j | f j c j < 0 }
jJ J B
i
II.1.2
xk
= min s y sj > 0 .
y kl s J B y sj
f j c j 0 , j J .
II.1.4
f j c j 0 , j J
variabilelor bazice.
Corolar: Soluia optim X * este unic determinat dac
II.1.5
nebazic).
Teorema 3: Testul de optim infinit
f j cj > 0,
j J J
f j cj = 0,
B
[max]
j J
f j cj = 0,
B
[min]
j J B
f j cj < 0,
j J J
f j c j 0 , j {1,.., n}
i
k J J B a..
f k ck = 0
f j c j 0 , j {1,.., n}
i
k J J B a..
f k ck = 0
Optim infinit
l J J B a..
f l cl < 0 i
y sl 0 , s J B
l J J B a..
f l cl > 0 i
y sl 0 , s J B
Se genereaz o SAB
x =0
Calculeaz:
1
B
f j c j = c B a j c j care este 0 , pentru a j vector nebazic, sau
0 , pentru a vector nebazic
j
B
1
f0 = c B b
fj cj 0
DA
j = 1, n
B 1 b
f 0 = [max] f ; X =
NU
() vector nebazic cu
componentele negative i diferena
strict negativ?
( l J
i
\ J B a.. f l cl < 0
y sl 0 , s I
(1)
DA
STOP.
Problema admite
optim nemrginit
(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
min s = k
y sr > o y
y kr
sI sr
raport unic.
Observaii:
-
a k va fi eliminat de a r ;
y kr > 0 este pivotul iteraiei;
- 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 )
J B := J B \ {k} U {r}
Se calculeaz componentele vectorilor n noua baz:
1) Elementele din linia pivotului, linia k:
x k y k1
y
,
,...., kn
y kr y kr
y kr
ar
ar
ak ,
ak ;
3) Pentru orice alt component care nu a fost calculat la 1) sau 2), se aplic una dintre
formulele:
x i :=
y ij :=
x i y kr x k y ir
,
y kr
y ij y kr y kj y ir
y kr
pentru
i J B \ {r}
, pentru
jJ
Observaia 5:
care
xk
( f r cr ) .
y kr
Etapa 0:
2 x1 + x2 + 4 x3 800
2 x + 2 x + x 900
2
3
1
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
2 x1 + x2 + 4 x3 + x5 = 800
2 x + 2 x + x + x = 900
2
3
6
1
II.1.6
x j 0, j = 1,6
Etapa 1: Generarea unei soluii admisibile de start.
Pasul 1 Se scrie matricea A i se verific apoi condiia
rangA36 = 3 < 6 :
1
A = 2
2
a1
2 0 1 0 0
1 4 0 1 0
i rangA = 3 < 6.
2 1 0 0 1
a 2 a3 a 4 a5 a 6
a5
unitate a4 , a5 i a6 . Aadar, X
B1
x4
= x5 ,
x
6
R1
x1
= x2 , de unde rezult
x
3
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
Se stabilete SAB de start:
0
680
not B
R
800 = X i X = 0 , sau
0
900
Pasul 2
f0 = f (X ) = c X
1
= (c 4
c5
c6 ) X
1
3
1
a1 = (0 0 0 ) I 3 2 = 0 ,
2
f2 = c I
1
3
2
a 2 = (0 0 0 ) I 3 1 = 0 ;
2
f3 = c I
1
3
0
a3 = (0 0 0 ) I 3 4 = 0 ,
1
f4 = c I
1
3
1
a 4 = (0 0 0 ) I 3 0 = 0 ;
0
f5 = c I
1
3
0
a5 = (0 0 0 ) I 3 1 = 0 ,
0
f6 = c I
1
3
0
a 6 = (0 0 0 ) I 3 0 = 0 .
1
f1 = c I
B
680
= (0 0 0 ) 800 = 0 ;
900
T. II.1.1
cj
20
16
17
a1
a2
a3
a4
a5
a6
1
2
2
1
0
4
1
0
0
1
0
0
680/1
800/2 (minim)
900/2
cB
0
0
a4
a5
XB
680
800
a6
900
fj
f j cj
DA
f j c j 0 , j = 1, n ?
NU
Pasul 4
j = 1,2,3 i
f j cj = 0 ,
[max] f = +
NU
Pasul 5
a2
a3 ) cu toate
( ) ( )
C.I.B [max]
f minB f j c j f j c j < 0 = f l cl al va intra n
jJ J
baz.
Operaia 2: Se aplic criteriul de eliminare din baz:
[max ] f
b
b
x
C.E.B = minB s y sl > 0 = minB s a sl > 0 = k ,
[min ] f
sJ
a kl
sJ a sl
y sl
pentru
X 1,
xk
, de unde rezult c a k va fi eliminat, iar y kl devine
y kl
sau, n general, =
j =1, 2 , 3
,
,
=
=
2
2
2
a 21
1
a11 a 21 a33
a 2 va fi eliminat i a 21 = 2 este pivotul iteraiei, pe care l vom colora n
tabel.
al
800 2 1 4 0 1 0
, , , , , , .
2 2 2 2 2 2 2
T.II.1.2
cj
c
X
b a
c1
a1
kl
c1
b a
k
k +1
a k 1
b a
kl
a k 1
a
1l
a
kl
k 1l
a
kl
.
.
.
cm
am
k +1
b a
kl
k + 1l
kl
cj
cl
aj
al
cn
an
a kl
B
j J J 2
k 1l
a
kl
a ij a kl a kj a il
al
a k +1
a m +1
a k +1
1l
c k +1
am
ak
a1
kl
cl
.
.
c k +1
.
b
c k 1
c m +1
ck
cm
c k 1
kl
.
.
.
kl
. .
km + 1
a
kl
kn
a
kl
k + 1l
a
kl
.
b a
m
kl
b a
k
ml
a
kl
fj
f1
f0
fj
f1
c
j
fk
fk c
fl
fm
fm
f m +1
m +1
fl
c
fn
fn
c
680 2 800 1
= 280
2
XB
900 2 800 2
= 100
2
prima component
y12 :=
2 2 11
2
y 32 :=
2 2 2 1
2
1
2
a2
a treia component
2
2
1
2
T.II.1.3
Iteraia 2
cj
20
XB
a1 a 2
a3
a 4 a5
a6
17
cB
a4
280
3/2
-2
-1/2
20
a1
a6
400
1/2
1/2
280/3/
2
400/2
100
-3
-1
100/2
8000
20
10
40
10
-6
23
10
130
5/2
-3/2
350
7/2
-1/2
100
-3
-1
8600
20
16
22
fj
f j cj
0
20
16
Iteraia 3
16
a4
a1
a2
fj
f j cj
0 ? NU
0 ? DA STOP
Citirea soluiei:
Baza optim
Variabile bazice
Valori optimale
a4
a1
a2
x4
x1
x2
130
Variabile nebazice
x3
x5
x6
350
100
Valori optimale
0
0
0
rangA=3.
[max] f = 8600 = f 0 n ultimul tabel, numit i tabel optimal.
Modelul liniar cu optim nemrginit
x1 x3 + x4 = 1
2
x2 + x3 x4 = 1
x j 0 , j = 1,4
Deoarece
1 0
B=
= (a1
0 1
1 0 1 1 / 2
A=
0 1 1 1 ,
a1 a 2 a3
a4
rang
A=2<4
1 0 x1 1 1 / 2 x3 1
0 1 x + 1 1 x = 1 ,
2
4
evideniaz o SAB de start, i anume, X SAB = (1 1 0 0 ) .
T
cB
a1
a2
fj
cj
XB
a1
a2
a3
a4
-1
1/2
1/(1/2)
-1
-3/2
-1
-5/2
-2
-1
-4
-6
f j cj
1
2
a4
a2
fj
f j cj
0 ? NU; Th.3?
NU
0 ? NU; Th.3? DA
Th.1
x4 = 1
1 x1 + 0 x2 + ( 1) x3 +
2
0 x1 + 1 x2 + 1 x3 + (1) x4 = 1
x1 0
x2 0
x3 0
x4 0
u2
[min]g = u1 + u 2
u1 R
u2 R
u1 + 0 u 2 1
1 u2 2
( 1) u1 + u 2 2
1
u1 u 2 1
2
d 1 : u1 = 1
d 2 : u2 = 2
d 4 : u2 =
O
d 3 : u 2 = u1 + 2
1
u1 1
2
u1
II.2.1 X 0
i rang Am n = m < n , b 0 , k I a.. bk 0 .
[max] f ( X ) = cX
II.2.2 X 0, X a 0
,
[max] f = CX X
a
este
2 x1 + x2 + x3 = 4
x j 0 , j 1,3
1 4 3
6
, unde A =
, b = , rangA=2<3.
2 1 1
4
a1
a2
a3
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:
[max] f = 3 x1 + 2 x2 + 4 x3 ( x4a + x5a )
x1 + 4 x2 + 3 x3 + x4a = 6
a
2 x1 + x2 + x3 + x5 = 4
>> 0
noua
matrice
x j 0 , j 1,5
1 4 3 1 0
A=
, apare baza B = (a 4
2 1 1 0 1
atunci ele vor fi penalizate cu coeficieni foarte mari: xna+1 + ... + xna+ m , cu
(CX X a ) ,
anumit iteraie exist ( f j c j )( ) < 0 pentru cel puin doi indici. Va intra
n noua baz vectorul al dac ( f l cl )( ) va avea cel mai mic coeficient
negativ (respectiv, pentru [min] f , cel mai mare coeficient pozitiv).
a1
a2
a3
a4
a5
a4
6/4
a5
4/1
fj
10
3 3
5 2
4 4
1/4
3/4
1/4
5/4
1/4
-1/4
3/ 2 / 4
1/ 2 + / 4
5 / 2 5 / 4 1 / 2 + 5 / 2
fj
cj
a2
3/2
a5
5/2
fj
fj
5 / 2 + 3 1 / 2 5 / 4
cj
5 / 2 5 / 4
0 j ?
NU
0 j ?
NU
a2
7/10
3/10
-1/5
10/7
a1
1/5
-1/5
4/5
10
fj
-2
2 +
fj
cj
a3
10/7
10/7
3/7
-2/7
a1
12/7
-2/7
-2/7
6/7
fj
76/7
24/7
24
6/7
10/7
20/7
6/7 +
10 / 7 +
fj
cj
0 j ?
NU
0 DA
STOP
Exemplificarea observaiei 2:
Iteraia
C.I.B:
min{ 3 3, 5 2, - 4 - 4} = 5 2 = f 2
c2
sau
12
problema iniial admite soluia optim finit X * =
7
[max] f =
10
76
.
7
3x2 + 4 x3 = 20
x + 2 x 18
3
2
x j 0, j = 1,3
[min] f = 5 x1 + x2 + 2 x3
x1 + 2 x2 + x3 x4 = 6
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
a
A = 0
3 x 2 + 4 x 3 + x 6 = 20
,
x + 2 x x + x a = 18
0
3
5
7
2
a1
x j 0, j = 1,7
2 1 1
0 0
3 4 0 0 1 0
1 2 0 1 0 1
a 2 a3 a 4 a5 a6 a7
0
x1 6
X = x6 = 20
x 18
7
B
B = (a1
a6
a7 ) X SAB
XR
x2 0
x3 0
= x4 =
0
x 5 0
Tabelul simplex:
cj
a1
a2
a3
a4
a5
a6
a7
a1
-1
6/1
a4
20
20/4 (min)
a7
18
-1
18/2
fj
30 + 38
4 + 10
6 + 5
-5
[min] f
4 + 9
6 + 3
-3
fj
cj
a1
5/4
-1
-1/4
a3
3/4
1/4
a7
-1/2
-1
-1/2
fj
15 + 8
-5
3/ 4 / 2
-5
fj
cj
31 / 4 / 2
27 / 4 / 2
3 / 4 3 / 2
0 j ?
NU
[min] f
0 j ?
STOP
DA
Faza 1: Scopul acestei etape este de a obine, dac este posibil, o SAB de
start pentru II.2.1, aplicnd algoritmul simplex-primal problemei auxiliare:
II.2.3 A X + B (x n +1 ...xn +i ...x n + m ) = (b1 ...bm ) ,
T
unde xn+i este variabila artificial adugat numai prii stngi a restriciei i
, i = 1, m , iar B este matricea unitate de ordinul m=rangA.
II.2.4 X 0 , X a 0 ,
m
II.2.5 [min]W = xn +i .
i =1
Admitem c aceasta are soluie optim finit, deci exist o SAB care
verific criteriul de optimalitate: w j c j 0 , j = 1, n + m .
Atunci,
min W = 0
NU
STOP
II.2.1 nu are soluii
Faza 2: Se revine la
AX = b
DA
X 0
[max] f ( X ) = CX
Se trece la rezolvarea ei
prin metoda simplex
primal cu SAB de start
dat de soluia optim a
problemei auxiliare, dup
ce au fost eliminate
variabilele artificiale.
3 x1 + 4 x2 + x3 9
, cu forma standard
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
3x1 + 4 x2 + x3 x5 + x7 = 9
1 2 3 1 0 1 0
A=
3 4 1 0 1 0 1 . Deoarece
a1 a2 a3
x j 0, j = 1,7
B = (a 6
1 0
, rezult
a 7 ) =
0 1
a4
a5
a6 a7
X SAB : X = 0, X a = (8 9 ) . Se aplic
T
algoritmul simplex-primal:
0
a1
a2
a3
a4
a5
a6
a7
-1
8/2
-1
8/4
17
-1
-1
-1
-1
7/2
-1/2
5/2
-1
1/2
7/5
9/4
3/4
1/4
-1/4
7/2
-1/2
5/2
-1
1/2
-1/2
5/2
-1
1/2
7/5
-1/5
-2/5
1/5
19/10
4/5
1/10
-3/10
cj
c
a6
a7
fj
fj
a2
fj
fj
cj
a3
a2
fj
fj
cj
a6
cj
0 j = 1, 7 ? NU.
0 j = 1, 7 ? NU.
0 j = 1, 7 ? DA STOP.
3 x1 + 4 x2 + x3 x5 = 9
cu
X SAB
x j 0, j = 1,5
x1 0
x2 19 / 10
= x3 = 7 / 5
x4 0
x
5 0
obinut prin
50
25
30
a1
a2
a3
a4
a5
a3
7/5
-1/5
-2/5
1/5
a2
19/10
4/5
1/10
-3/10
fj
89,5
14
25
30
-9,5
-1,5
-36
-9,5
-1,5
fj
cj
0 j = 1,5 ? DA
19
7
5
STOP
T
0 0 ,
cu [min]f=89,5.
Vom continua studiul modelului matematic prin scrierea dualei:
[min] f = 50 x1 + 25 x2 + 30 x3
x1 + 2 x2 + 3 x3 8 u1
3 x1 + 4 x2 + x3 9 u 2
x j 0, j = 1,3
[max]g = 8u1 + 9u 2
u1 + 3u 2 50
1
u1 + 3u 2 + u3 = 50
A = 2
2u1 + 4u 2 + u 4 = 25 ,
3
3u + u + u = 30
5
1 2
a1
ui 0, i = 1,5
1 0 0
B = 0 1 0 = (a3
0 0 1
a4
3 1 0 0
50
4 0 1 0
, rang A=3<5, b = 25 > 0 ,
1 0 0 1
30
a 2 a3 a 4 a5
a5 ) , X SAB = (0 0 50 25 30 ) .
T
a1
a2
a3
a4
a5
a3
50
50/3
a4
25
25/4
a5
30
30/1
fj
-8
-9
fj
cj
0 j = 1, 5 ?
a3
125/4
-1/2
3/4
a2
25/4
1/2
1/4
25/2
a5
95/4
5/2
-1/4
19/2
fj
175/4
9/2
9/4
-7/2
9/4
fj
cj
a3
26
-4/5
1/5
a2
3/2
3/10
-1/5
a1
19/2
-1/10
2/5
fj
89,5
19/10
7/5
19/10
7/5
fj
cj
0 j = 1,5 ? DA
STOP
(a1
a 2 ... a m1
(a1
b)
a2
... a m )
este
baz
Rm ,
dar
(a1
a2
... a m ) :
[max] f = x1 + 4 x 2
2 x1 + x 2 1
2 x + 5x 5
1
2
, cu forma standard
x
+
x
2
3
1
2 6
14 x1 + 11x 2 14
2 x1 + x 2 + x3 = 1
2x + 5x x = 5
1
2
4
.
2
x
3
x
x
+
+
1
2
5 = 6
14 x1 + 11x 2 + x6 = 14
x j 0, j = 1,2
x j 0, j = 1,6
x2
d1
d2
2
B
1
C
A
-5/2
-1/2
d3
x1
3 7
Valoarea maxim este atins n B , , prin care trec trei drepte
8 4
care definesc mulimea convex (simplexul) a soluiilor admisibile. Dac
nlocuim soluia optim n forma standard, se obine un program optim
degenerat: x1* =
3 * 7 *
, x 2 = , x3 = 0 , x 4* = 3 , x5* = 0 , x6* = 0 .
8
4
a) Metoda lexicografic
Presupunem c la iteraia 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
= r .
=
y rl
y sl y kl
k = r = min
s| y > 0
sl
cB
c1
ck
cr
cm
cj
c1
cl
XB
a1
al
cn
an
a1
x1
y1l
x1 / y11
ak
xk
y kl
xk / y kl
ar
xr
y rl
xr / y rl
am
xm
y ml
xm / y ml
fj
f j cj
min
Pasul 2
Operaia 1 Se compar rapoartele
din a doua coloan:
y k 1 y r1
=
?
y kl
y rl
DA
Se trece la
Operaia 2.
NU
Operaia 2: k := k + 1 Operaia 1.
Dup cel mult n operaii se poate stabili vectorul care trebuie
eliminat.
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
soluia de
a1 a 2 a3 a 4 a5
start
pentru
algoritmul
simplex-primal,
X SAB = (0 0 0 10 15) .
T
cj
cB
XB
a1
a2
a3
a4
a5
a4
10
10/2
a5
15
15/3
fj
65
13
[min ] f
11
0 j = 1,5 ? NU
f j cj
baz. Dar,
Pasul 1
10 15
= . Aadar, care vector va fi eliminat?
2
3
10 1 2 1 1 0
, , , , ,
2 2 2 2 2 2
15 2 3 1 0 1
, , , , ,
3 3 3 3 3 3
10 15
=
2
3
1 2
se elimin vectorul a 4 .
O2: <
2 3
Pivotul iteraiei este 2.
Pasul 2 O1:
cj
c
2
3
a1
a2
a3
a4
a5
a4
a5
1/2
1/2
1/2
1/2
-1
-3
fj
10
-1
-5
-1
-5
-7
f j cj
0 j = 1,5 STOP
b) Metoda perturbaiilor
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
II.3.3
j =1
j =1
j =1
a j x j + ja j = b + ja j
x j 0, j = 1, n
II.3.4
(x
m
s =1
+ s as +
j = m +1
unde b( ) = b + j a j .
j =1
a j = b( ) ,
b( ) = + 1 + 2 + 3 + 4 + 5 =
2
3
5
15
2
3
1
0
1 15 + 2 + 3 + +
a1
a3
a2
a5
a4
x s + s + j y sk
j = m +1
= min
s| y sk >0
y sk
n particular:
10 + 4 + + 2 2 + 3 15 + 5 + 2 + 3 2 + 3
=
,
2
3
= min
2
3 4
3 5
= min 5 + + 2 + + ,5 +
+ 2 + +
2
2
2
3
3
3
+ 2 +
3
2
4
2
< 5+
3 5
2
+2 + +
3
3
3
a 4 va fi eliminat.
cB
XB
a1
a2
a3
a4
a5
a6
a7
a8
100
a4
a5
90
90
a6
-3
a7
-3
-3
-1
a8
-1
fj
-4
-5
-3
f j cj
0
0
5
0
0
a4
a5
100
100
90
-1
-1
30
a2
a7
-3
4
5
0
0
a8
-2
fj
-15
-19
70
1/3
-1/3
1/3
210
30
-1/3
1/3
-1/3
90
7/3
45
a4
a1
a2
a7
60
-2/3
2/3
a8
60
4/3
2/3
1/3
fj
570
40
50
-4/3
19/3
-4/3
-13/3
19/3
-4/3
55
-1/2
1/4
-1/4
220
45
1/2
-1/4
1/4
f j cj
0
fj c
0
-2
a4
a1
90
a2
a7
90
5/2
1/2
36
a3
45
1/2
1/4
3/4
180
13/4
fj
17/2
-1/4
17/2
-1/4
13/4
cj
a7
a8
765
f j cj
cB
XB
a1
a2
a3
a4
a5
a6
a4
a1
a2
a6
46
-3/5
54
3/5
90
36
2/5
2/5
1/5
4
5
0
3
-1/10 -3/10
1/10 3/10
a3
36
2/5
-1/10 7/10
fj
774
43/5
1/10 33/10
43/5
1/10 33/10
f j cj
reprezenta
c) Ciclare
Dac valoarea funciei scop nu se modific pe parcursul ctorva
iteraii succesive, este posibil s apar fenomenul de ciclare, adic s se
revin la una dintre soluiile admisibile de baz prin care s-a trecut deja.
3
1
x 4 + 20 x 5 x 6 + 6 x 7
4
2
x1 + 4 x 4 8 x 5 x 6 + 9 x 7 = 0
x + 1 x 12 x 1 x + 3x = 0 .
5
6
7
2 2 4
2
x + x = 1
6
3
x j 0 , j = 1,6
Prezentm n continuare rezultatele sub form de tabel a apte
iteraii. Se va observa c primul tabel coincide cu ultimul.
cj
-3/4
20
-1/2
cB
XB
a1
a2
a3
a4
a5
a6
a7
a1
a2
a3
1/4
-8
-1
1/2
-12
-1/2
fj
3/4
-20
1/2
-6
0
0
f j cj
-3/4
0
0
cj
-3/4
20
-1/2
XB
a1
a2
a3
a4
a5
a6
a7
a4
a2
a3
-32
-4
36
-2
3/2
-15
fj
-3
-3/4
24
-27
-3
7/2
-33
-3/4
20
-1/2
a1
a2
a3
a4
a5
a6
a7
-84
15/4
f j cj
cj
-3/4
a4
-12
20
a5
-1/2
1/4
3/8
a3
fj
-1
-1
-3/4
20
3/2
-12
-1
-1
-18
f j cj
0
1
cj
-3/4
20
-1/2
XB
a1
a2
a3
a4
a5
a6
a7
-1/2
a6
-3/2
1/8
-21/2
20
a5
1/16
-1/8
-3/64
3/16
a3
3/2
-1
-1/8
21/2 2/21
fj
-3
-1
20
-1/2
-3
-1/4
f j cj
cj
-3/4
20
-1/2
XB
a1
a2
a3
a4
a5
a6
a7
-1/2
a6
-6
-5/2
56
a7
1/3
-2/3
-1/4
16/3
a3
-2
5/2
-56
fj
-1
-1/4
-1/2
-1
1/2
-16
-3/4
20
-1/2
a1
a2
a3
a4
a5
a6
a7
f j cj
cj
X
0
-3
-5/4
28
1/2
a1
a7
1/3
1/6
-4
-1/6
a3
fj
-24
-1
7/4
-44
-1/2
f j cj
cj
-3/4
20
-1/2
cB
XB
a1
a2
a3
a4
a5
a6
a7
a1
a2
a3
1/4
-8
-1
1/2
-12
-1/2
fj
3/4
-20
1/2
-6
0
0
f j cj
-3/4
20
-1/2
cB
XB
a1
a2
a3
a4
a5
a6
a7
a1
a4
a3
-1/2
-2
-3/4
15/2
-24
-1
fj
-3/2
-3/4
18
3/4
-9/2
-3/2
-2
5/4
-21/2
-3/4
0
f j cj
cj
0
-3/4
-1/2
-3/4
20
-1/2
a1
a2
a3
a4
a5
a6
a7
a1
a4
a6
3/4
-1/2
3/4
-2
15/2
-24
fj
-5/4
-3/2
-5/4
-3/4
18
-1/2
-9/2
-3/2
-5/4
-2
-21/2
f j cj
II.4.1
{AX = b
X 0
cR
,
R
Dac
1 c
este baz primal admisibil pentru II.4.2. Este uor de
B1 =
0
B
1 u B
, unde u B = c B B 1 .
verificat c B11 =
1
0 B
Tabelul simplex revizuit va avea urmtoarea form:
Variabilele de baz
x0
B11
1
u B = c B B 1
B11b1
f
B11 a 1k *
f kB c k
0
XB
B 1
XB
y kB = B 1 a k
* Ultima coloan va aprea n momentul cnd se trece la mbuntirea
soluiei curente.
Datele iniiale:
AX = b , X 0 , [max] f (x ) = cX
rangAmn = m n , b R m , c R n
Se determin o baz primal admisibil pentru problema
II.4.1 i se calculeaz apoi B1 , B11b1 , u B , B11 a 1j
Schema logic
S.II.4.1
B
j
c j 0 DA
B 1b
.
f 0 = [min] f ; X B =
j = 1, n
NU
max
( f jB c j ) = f kB c k > 0 .
B
f j c j >0
k
.
Se completeaz ultima coloan din tabel cu vectorul B11 a 1k = B k
1
y
B
a k
=
k
y kB 0 ?
STOP
Problema are optim ( ).
DA
NU
xiB x rB
=
.
y ikB y rkB
Pas 1 Se calculeaz f jB c j = u B a j c j , j R .
Dac f jB c j 0 , j {1,.., n} B = R soluie optim.
Dac nu, se trece la Pasul 2.
Pasul 1.
S rezolvm cu algoritmul simplex revizuit urmtoarea problem de
programare liniar:
[min] f = 2 x1 x 2
x1 x 2 4
3 x1 x 2 18
x + 2 x 6
2
1
x i 0 , i = 1,2
primul
rnd,
aducem,
problema
la
forma
standard:
[min] f = 2 x1 x 2
x1 x 2 + x 3 = 4
1 1 1 0 0
1
x i 0 , i = 1,5
B = I3 = a3
a4
[min]g = x 0
x 0 (2 x1 x 2 ) = 0
x x + x = 4
1
2
3
.
3 x1 x 2 + x 4 = 18
x1 + 2 x 2 + x5 = 6
x i 0 , i = 1,5
1 2 1 0
0 1 1 1
Aadar, A1 =
0 3 1 0
0 1 2 0
0 0
0 0 1 cR
=
1 0 0 R
0 1
0
4
c
0
, b1 = = .
8
b
B
16
B
1 c B
Observaie: Dup reordonare putem obine chiar A1 =
B
0
cR
.
R
Variabilele de baz
x0
x3
x4
x5
B11b1
18
c j
. n cazul nostru,
Pentru j R , calculm f jB c j = (1 u B )
aj
f 1B
2
1
c1
1
B
1
= (1 0 0 0) = 2 > 0 , B a1 = 3 ,
c1 = 1 u
3
a1
1
1
iar pentru j = 2 ,
f 2B
1
1
c2
1
B
1
= (1 0 0 0 ) = 1 > 0 , B a 2 = 1 .
c 2 = 1 u
1
a2
2
2
Variabilele de baz
B11b1
B11 a11
x0
x3
x4
x5
18
-1
4 18 4
Deoarece min , = , variabila x 3 va iei din baz. Pivotul
1 3 1
este, desigur, valoarea aflat n csua colorat, adic 1. Tabelul simplex
revizuit urmtor se obine din cel precedent, dup aceleai reguli care se
aplic tabelului simplex obinuit.
Variabilele de baz
~
B11b1
~
B11 a12
*
-2
x
0
1
0
x1
0
-3
1
x4
0
1
0
x5
* Ultima coloan se va completa ulterior.
f 2B
-8
-1
10
1
~
c2
1
B
= (1 2 0 0 ) = 3 > 0 (soluia curent
c 2 = 1 u
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),
f 3B
0
~
c3
1
B
= (1 2 0 0 ) = 2 < 0 .
c 3 = 1 u
0
a3
0
~
~
Urmtorul tabel simplex revizuit, unde baza este acum notat B1 :
Variabilele de baz
1
5/2
-3/2
x0
0
-1/2
1/2
x1
0
-3/2
1/2
x2
0
5/2
-1/2
x5
** Ultima coloan se va completa ulterior.
~
~
f 3B
~
~
B11b1
~
~
B11 a13 **
-17
5/2
-1/2
-3/2
5/2
~
~
B11
0
1
c 3 = (1 5 / 2 3 / 2 0) = 5 / 2 > 0 (soluia curent nu este
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
B
f 4 c4 = (1 5 / 2 3 / 2 0) = 3 / 2 < 0 .
1
0
B11
Variabilele de baz
x0
x1
x2
x3
Cum f 4B
f 5B
B11b1
-1
-1
-24
2/5
1/5
42/5
1/5
3/5
36/5
-1/5
2/5
14/5
0
0
c 4 = (1 0 1 1) = 1 < 0 i
1
0
0
0
c5 = (1 0 1 1) = 1 < 0 , rezult c soluia curent,
0
1
infomaii stocate.
Datele reinute la o iteraie sunt suficiente pentru a obine toate
programare liniar o soluie de baz care are cel puin o component strict
negativ i care verific criteriul de optimalitate al modelului liniar.
Algoritmul simplex-dual este o procedur de explorare orientat a
soluiilor dual-admisibile pn la obinerea soluiei optime sau pn la
evidenierea faptului c problema nu admite soluii. Aplicarea sa presupune
cunoaterea unei soluii dual-realizabile (sau dual-admisibile) dar nu i
admisibile, deoarece, dac toate variabilele ar avea valori pozitive, cum este
verificat criteriul de optimalitate, ar rezulta c soluia este optim. n
general, stabilirea unei soluii dual-admisibile este greu de realizat, motiv
pentru care acest algoritm se aplic atunci cnd o soluie dual realizabil se
poate stabili cu un volum mic de calcule, cnd restriciile sunt cu precdere
de forma , sau cnd aceasta se obine prin modificarea unor
caracteristici numerice din model. Acest algoritm poate fi privit ca dualul
algoritmului simplex-primal, deoarece reflect aplicarea acestuia la
problema dual.
Pentru algoritmul simplex dual, valorile funciei scop descresc cnd
aceasta se cere maximizat i cresc cnd se cere minimizat, pn cnd este
atins valoarea optim, dac programul liniar admite soluie optim finit.
[max] f
f j c j = c B B 1 a j c j 0 , j = 1, n
x k < 0 a.
DA
y kj 0 , j = 1, n
STOP
Problema
este fr
soluii.
NU
Alege xl = min{x s } (C.E.B);
s| x s < 0
al ;
f j c j
f k ck
= min
j | ylj < 0
y lk
y lj
nlocuiete vectorul a l cu a k ;
Alege
(C.I.B);
Se formeaz B1
B1
optim finit.
2.
cu algoritmul simplex-primal.
3. Exist cel puin o variabil bazic cu valoare strict negativ i f j c j 0 ,
j = 1, n
X B = B 1 b 0 ;
X SAB :
X R = 0;
f s c s = 0 , x s
Obs:
variabil
f j c j 0 j
[min]) programul
optim finit.
STOP
a k
f k ck < 0
nebazic
b) Dac
[max]),
respectiv
y sk 0 ,
program
cu
nemrginit.
are
soluie
pentru
(pt. [min])
(pt.
[min]) i
X 0 programul
liniar are soluie optim finit.
b) Dac
xs < 0 , s J B
[min])
funcia
(pt. [max]),
care
f k ck > 0
f k ck < 0
f j c j 0 j
respectiv
y sj 0 ,
obiectiv
Dac pt. [max]
Pt. [max]:
a..
f j c j 0 j
(pt. a) Dac
y sk 0 , s (pt.
s (pt.
(pt. [max]),
f j c j 0 j
respectiv
x s < 0 , s J
f j c j 0 j
f j c j 0 j
bazic
a) Dac
X SDR : X B = B 1 b ; X R = 0
y sk > 0
pt.
f j cj 0 ,
f j cj 0 ,
[min]
respectiv
j ,
xs < 0 , s J B ,
atunci se continu
pentru cel puin o valoare s J . Se cu simplex dual, deoarece s-a generat o
Algoritmul
continu cu simplex primal.
SDR.
se continu
Pt. [min]: f k c k > 0 i y sk > 0 Dac pt. [max] f k c k < 0 , respectiv
dac
B
sJ B .
Se pt. [min]
i
f k ck > 0 ,
cu
xs 0 , s J B ,
ak nebazic,
atunci
se
ylk > 0
a)
b)
ylk < 0
C.I.B.
C.E.B.
a)
b)
C.E.B
C.I.B.
Pentru a nelege mai bine modul de aplicare a algoritmului simplexdual, precum i diferenele fa de aplicarea algoritmului simplex-primal,
vom da cteva exemple numerice.
2 x1 x2 + x3 6
x + x 2 x 3
2
3
1
x j 0, j = 1,3
Soluie:
Se schimb sensul primelor dou restricii:
[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
Se aduce problema la forma standard
[min] f = 6 x1 + 5 x 2 + 6 x3
4 x1 x 2 x3 + x 4 = 2
2 x1 + x 2 x3 + x5 = 6 .
x + x 2x + x = 3
1
2
3
6
xi 0, i 1,6
4 1 1 1 0 0
cB
XB
a1
a2
a3
a4
a5
a6
-2
-1
-1
a4
a5
-6
-2
-1
a6
-1
-2
fj
-6
-6
f j cj
0 j = 1,6 ? DA
Criteriul
de
intrare
f c
f c3
6 6 6
min 1 1 , 3
,
= min
=
y 23
2 1 2
y 21
baz
(C.I.B):
a1 va fi al doilea
a1
a 6 ) i a diferenelor f j c j , j = 1,6 .
0
6
0
cj
XB
a1
a2
a3
a4
a5
a6
a4
a1
a6
-14
-3
-1/2
1/2
1/2
1/2
-3/2
-1/2
fj
18
-3
-3
-8
-3
-3
f j cj
0 j = 1,6 ? DA
a1
a2
a3
a4
a5
a6
cB
XB
a3
14/3
-1/3
-1/3
-2/3
a1
a6
2/3
-1/3
1/6
-1/6
13
-1/2
-3/2
fj
32
-4
-1
-5
-9
-1
-5
f j cj
0 j = 1,6 ?
DA
se
0
14
3
oprete.
Problema
admite
soluia
optim
finit
0 0 13 cu [min] f = 32 .
x j 0, j 1,3
Aflati soluia optim. S se scrie duala programului liniar dat. S se
afle soluia sa optim X aplicnd algoritmul simplex dual.
Soluie:
2 x1 + 5 x 2 + x3 + x5 = 70 .
4 x + x + 2 x + x = 175
2
3
6
1
x j 0, j 1,6
cB
XB
x1
x2
x3
x4
x5
x6
105
x4
x5
70
x6
175
fj
-3
-2
-6
f j cj
6
x3
105/4
1/4
3/4
1/4
0 j = 1,6 ?
NU
0
x5
175/4
7/4
17/4
-1/4
x6
490/4
7/2
-1/2
-1/2
fj
315/2
3/2
9/2
3/2
-3/2
5/2
3/2
2/7
-1/7
-1/7
4/7
-2
f j cj
6
3
0
x3
20
1/7
x1
x6
25
35
-9
fj
195
58/7
9/7
6/7
43/7
9/7
6/7
f j cj
17/7
0 j = 1,6 ?
NU
0 j = 1,6 ?
DA
Se observ c f j c j 0 , j = 1,6 , deci programul
liniar admite
de B = (a3
a 6 ) , a crei invers
a1
B
2 / 7 1 / 7 0
= 1 / 7 4 / 7 0
0
2 1
x1 + 3 x 2 + 4 x3 105 u1
u1 + 2u 2 + 4u 3 3
2 x1 + 5 x 2 + x3 70 u 2 3u1 + 5u 2 + u 3 2
4 x + x + 2 x 175 u
4u + u + 2u 6
2
3
3
2
3
1
1
x j 0, j 1,6
u i 0, i 1,3
3u1 + 5u 2 + u 3 u 5 = 2
4u + u + 2u u = 6
2
3
6
1
u i 0, i 1,6
rezult c matricea A conine matricea unitate, din R 3 , cu semn schimbat,
ca urmare toate restrictiile dualei vor fi nmulite cu ( 1) :
[min]g = 105u1 + 70u 2 + 175u 3
u1 2u 2 4u 3 + u 4 = 3
3u1 5u 2 u 3 + u 5 = 2
4u u 2u + u = 6
1
2
3
6
u i 0, i 1,6
0
0
0
105
70
175
u1
u2
u3
u4
u5
u6
-3
-1
-2
-4
-2
-3
-5
-1
u4
u5
u6
-6
-4
-1
-2
fj
-105
-70
-175
0 j = 1,6
-7/4
-7/2
-1/4
-1/2
-3/4
-1/4
f j cj
0
0
105
u4
u5
u1
fj
-3/2
5/2
0
105
u2
u5
u1
fj
-17/4
3/2
1/4
1/2
315/2
105
105/4
105/2
-105/4
-175/4 -243/4
-105/4 0 j = 1,6
-4/7
1/7
-8
-17/7
-1/7
-2/7
f j cj
70
6/7
43/7
9/7
1/7
195
105
70
140
-25
-20
-210
-25
-20 0 j = 1,6
f j cj
6
7
43
0 .
7
Se verific uor c
x1*
4 / 7 0 1 / 7 25
x j 0, j = 1,3
a) S se genereze, dac este posibil, SAB sau/i SDR prin explicitarea
sistemului de restricii n raport cu bazele (a1 , a 2 ) i (a 2 , a3 ) .
b) S se scrie duala sa. Admite soluie optim finit? Justificai rspunsul.
c) Ce legtur exist ntre SAB generat la punctul a) i problema dual?
d) S se rezolve problema dat cu ajutorul algoritmului simplex-dual.
Soluie:
[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 restricii: A =
1 2 1 0 1
12
Vectorul termenilor liberi: b = .
20
x3
x1
R
= , X = x 4 . Sistemul de
x2
x
5
1
2
3 , obinem:
= 3
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
> 0 se poate construi o soluie admisibil
Deoarece B 1b =
28 / 3
de baz, i anume x1 =
funciei obiectiv va fi
4
28
, x2 =
, x3 = x 4 = x5 = 0 , pentru care valoarea
3
3
152
.
3
+
x 4 = ,
2 1 x3 1 0 1 x 20
5
x1
2 x + x 2 x 4 = 12
x 2 2 1 0 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 obine o soluie a problemei care are
dou componente nenule (rangA=2) i vectorii ataai variabilelor bazice
sunt liniar independeni ( a 2 i a3 formeaz baza). n aceste condiii,
vectorul X 1 = (0 12 4 0 0 )
cB
XB
a1
a2
a3
a4
a5
a2
a3
12
-1
-4
-3
-1
fj
48
-3
-2
-3
f j cj
nu este
soluie dual realizabil, este doar soluie pentru modelul scris sub forma
standard.
2
Observaie: n tabel, vectorul trecut n coloana lui a1 reprezint
3
scrierea
acestuia
baza
(a 2 a3 ) .
ntr-adevr,
2
1
0 2
.
a1 = = 2a 2 3a3 = 2 3 =
1
2
1 4 3
b) Construim acum duala problemei din enun.
[min] f = 3 x1 + 5 x 2 + 4 x3
2 x1 + x 2 12
x1 + 2 x 2 + x3 20
x j 0, j = 1,3
2u1 + u 2 3
u1 , u 2 0
u1
a 2 ) . Atunci
1
f1 = c B B 1 a1 = (3 5) = 3 ,
0
0
f 2 = c B B 1 a 2 = (3 5) = 5 .
1
n problema dual, acestei baze i corespunde un sistem de restricii saturate,
i anume, restriciile cu termenii liberi 3 i 5:
2u1 + u 2 = 3
u1 + 2u 2 = 5
u1 = 3
.
7
u 2 =
3
x1 2 x 2 x3 + x5 = 20
apoi se va scrie sistemul sub forma matriceal:
x1
2 1 0 1 0 x 4 12
x 2 +
=
.
1 2 1 x 0 1 x5 20
3
Vectorul
X1
de componente
x1 = x 2 = x3 = 0 ,
x 4 = 12
bazei B = (a 4
a5 ) .
cB
XB
a1
a2
a3
a4
a5
a4
a5
-12
-2
-1
-20
-1
-2
-1
fj
-3
-5
-4
-2
-3/2
1/2
-1/2
10
1/2
1/2
-1/2
50
5/2
5/2
-5/2
-1/2
-3/2
-5/2
4/3
-1/3
-2/3
1/3
28/3
2/3
1/3
-2/3
152/3
7/3
-1/3
-7/3
-5/3
-1/3
-17/3
f j cj
5
3
a4
a2
fj
f j cj
5
3
a1
a2
fj
f j cj
1/ 2
=
.
3/ 2
2 x1 + x 2 3
3x + x 5
2
1
x j 0, j 1,2
Soluia grafic: n primul rnd vom reprezenta grafic mulimea
include
originea.
Dac
notm
d1 I d 2 = {A} ,
d 1 I d 3 = {B}
x + x2 = 4
d 2 I d 3 = {C} , prin rezolvarea sistemelor de ecuaii 1
,
2 x1 + x 2 = 3
x1 + x 2 = 4
2 x1 + x 2 = 3
i
, gsim coordonatele punctelor A, B i C, i
3 x1 + x 2 = 5
3 x1 + x 2 = 5
1 11
2 19
1 7
anume: A , , B , i C , . Astfel, poriunea haurat din
2 2
3 3
5 5
grafic reprezint mulimea soluiilor admisibile. Se tie faptul c soluia
optim se gsete ntr-unul din vrfurile mulimii soluiilor admisibile.
2 19
Astfel, este foarte uor de realizat faptul c C , reprezint punctul de
5 5
minim. Valoarea funciei obiectiv n acest punct, valoarea minim a funciei,
este 5
2
19 67
+ 3 =
.
5
5
5
x2
d2
C
A
B
d1
x1
O
d3
2 x1 + x 2 x 4 = 3 .
3x + x x = 5
2
5
1
x j 0, j 1,5
a) Pentru a aplica algoritmul simplex dual, vom nmuli mai nti fiecare
[min] f = 5 x1 + 3 x 2
x1 x 2 + x3 = 4
1 1 1 0 0
restricie 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
Baza de start pentru algoritmul simplex dual trebuie s fie dual
admisibil. O astfel de baz este format din vectorii a3 , a 4 , a5 .
Cunoscnd toate aceste date, putem trece la aplicarea algoritmului
menionat anterior:
cj
cB
XB
a1
a2
a3
a4
a5
a3
-4
-1
-1
a4
a5
-3
-1
-5
-3
-1
fj
-5
-3
f j cj
0
a3
-7/3
-2/3
-1/3
a4
a1
fj
-19/3
-5/3
2/3
5/3
1/3
-1/3
25/3
5/3
-1/3
-4/3
-1/3
f j cj
0
a3
1/5
-2/5
-3/5
a2
a1
fj
19/5
-3/5
-2/5
2/5
-1/5
-1/5
67/5
-4/5
-1/5
-4/5
-11/5
f j cj
a2
0 j ?
DA SDR
0 j ?
DA SDR
0 j ?
DA soluie optim
modelul studiat. Din tabelul optimal obinem cel puin dou informaii:
funcia de eficien are valoarea minim
67
;
5
2
19
1
, x 2* =
, x3* = , x 4* = 0 ,
5
5
5
x5* = 0 .
b) S relum modelul de la forma standard, deoarece aceast form ne
sugereaz folosirea metodei bazei artificiale (sau metoda celor dou
faze), n cazul n care se impune rezolvarea prin algoritmul simplex
primal.
[min] f = 5 x1 + 3 x 2 + x6 + x7 + x8
x1 + x 2 x3 + x6 = 4
x j 0, j 1,8
cB
cj
XB
a1
a2
a3
a4
a5
a6
a 7 a8
a6
-1
a7
-2
-1
a8
-1
14
2 -5
3 -3
fj
f j cj
a6
-1
-1
a2
a8
-2
-1
-1
3 +9
8 -5
1/3
-1/3
1/3
11/3
-2/3
-1/3
1/3
5/3
-2/3
-1
(58+ )/3
fj
f j cj
5
3
a1
a2
a8
fj
f j cj
5
3
0
a1
a2
a3
2/5
1/5
-1/5
19/5
-3/5
-2/5
1/5
-2/5
-3/5
fj
67/5
-4/5
-11/5
-4/5
-11/5
f j cj
Prin rezolvarea acestui model liniar prin cei doi algoritmi am vrut s
evideniem, nc o dat, comportarea dual a acestora n ceea ce privete
atingerea minimului funciei 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