Sunteți pe pagina 1din 6

CURSUL 2

Teorema fundamental a a optimiz arii liniare


Algoritmul simplex primal
Optimizarea liniar a este un instrument puternic de rezolvare a unor prob-
leme reale din cele mai diverse domenii. Cresterea puterii de calcul si a capac-
it atii de memorare a calculatoarelor i-a ncurajat pe analisti s a descrie ct mai
detaliat fenomenele studiate, obtinnd modele matematice de dimensiuni foarte
mari.
Metoda simplex, propus a de Dantzig a constituit metoda de baz a pentru
rezolvarea problemelor de optimizare liniar a, pn a n 1984 cnd a ap arut o nou a
directie de cercetare: metodele de punct interior s-au dovedit a mai eciente
pentru rezolvarea problemelor de mari dimensiuni si au fost aplicate cu succes
si n rezolvarea problemelor de optimizare neliniar a. Algoritmul lui Narendra
Karmarkar a determinat o revolutie n domeniul program arii matematice.
Consider am forma standard a problemei de optimizare liniar a:
(1)
_
_
_
inf(c
T
x)
Ax = b
x _ 0
Multimea
P = x +
n
=Ax = b; x _ 0
se numeste mul timea programelor sau solu tiilor admisibile. P este o multime
convex a. ntr-adev ar dac a P = O sau card(P) = 1 este evident. Altfel, e
x
1
; x
2
P; x
1
,= x
2
:Atunci
x = x
1
+ (1 ) x
2
P; unde [0; 1] ; deoarece x _ 0 si
Ax = Ax
1
+ (1 ) Ax
2
= b + (1 ) b = b.
O solutie admisibil a x

P este solu tie optima a problemei (1) dac a este


punct de minim global al functiei obiectiv z = c
T
x pe multimea programelor P
adic a
c
T
x

_ c
T
x; (\) x P:
Fie sistemul de m ecuatii liniare cu n necunoscute
(2) Ax = b
unde A M
mn
; b +
m
; x +
n
:
Presupunem rang(A) = m _ n: Dac a m = n sistemul (2) are solutia unic a
x = A
1
b;
iar dac a m < n sistemul are o innitate de solutii.
Fie B o matrice p atrat a format a cu m coloane liniar-independente ale ma-
tricii A, numit a baza: B =
_
a
j1
:::a
jm
_
:
Not am E = j
1
; :::; j
m
si x
B
= (x
j1
:::x
jm
) :
1
Matricea format a cu coloanele lui A care nu sunt n B va notat a cu R iar
= 1; :::; n E:
Not am cu x
R
vectorul format cu componentele lui x care nu se a a n x
B
:
Componentele lui x
B
se numesc variabile de baza iar componentele lui x
R
vari-
abile secundare. Sistemul (2) devine Bx
B
+ Rx
R
= b de unde se obtine forma
explicita:
(3) x
B
= B
1
b B
1
Rx
R
:
O solutie x +
n
a sistemului (2) se numeste solu tie de baza, dac a pentru
componentele sale diferite de zero corespund coloane liniar independente ale lui
A. Deoarece rang (A) = m < n;cel mult m componente ale unei solutii de
baz a pot nenule. Dac a solutia de baz a are exact m componente nenule, ea se
numeste nedegenerata, n caz contrar - degenerata.
O solutie de baz a se poate obtine din (3) dac a anul am variabilele secundare:
(4)
_
x
B
= B
1
b
x
R
= 0 :
Aceast a solutie de baz a corespunde bazei B format a cu m coloane linear inde-
pendente ale lui A.
Se asociaz a n acest mod la ecare baz a o solutie de baz a.
Teorema fundamental a a optimiz arii liniare (Kantorovici)
a) Daca problema de optimizare liniara (1) are o solu tie, atunci are o solu tie
de baza.
b) Daca problema de optimizare (1) are o solu tie optima, atunci are o solu tie
de baza optima.

Teorema ne permite sa cautam solu tia optima numai printre solu tiile de baza
care sunt n numar nit. Cu cele n coloane ale matricii A se pot forma C
m
n
matrici de ordin m, deci putem avea cel mult C
m
n
solu tii de baza.
Teorema 1
Solu tiile admisibile de baza ale unei probleme de optimizare
liniara - si numai acestea - reprezinta vrfurile mul timii convexe a tuturor
solu tiilor admisibile.
In concluzie, daca mul timea solu tiilor admisibile nu este vida, ea este con-
vexa si poate marginita sau nemarginita.
Daca mul timea solu tiilor admisibile nu este vida atunci valoarea optima a func tiei
2
obiectiv poate nita sau innita. Daca este nita, atunci o solu tie optima ex-
ista ntr-un punct de extrem.
Algoritmul simplex primal
Pentru rezolvarea problemelor de optimizare liniar a s-a impus algoritmul
simplex datorat lui G.B. Dantzig. Metoda permite explorarea sistematic a a
multimii programelor (solutiilor admisibile) prin trecerea de la o solutie de baz a
la o alt a solutie de baz a vecin a care este cel putin la fel de bun a ca solutia
precedent a. Metoda furnizeaz a de asemenea criterii pentru punerea n evident a
a faptului c a problema are optim innit precum si a cazului n care multimea
solutiilor este vid a.
Fie B = (a
j1
:::a
jm
) o baz a Consider am forma explicit a a sistemului Ax = b :
(6) x
B
= B
1
b B
1
Rx
R
:
unde R este matricea format a cu coloanele lui A care nu sunt n B:
Fie E = j
1
; :::; j
m
si =1; :::; n E:
Dac a not am B
1
b = x
B
si B
1
a
j
= y
B
j
; 1 _ j _ n; (6) devine:
(7) x
B
= x
B

j2R
y
B
j
x
j
;
iar pe componente:
(8) x
B
i
= x
B
i

j2R
y
B
ij
x
j
; i E:
Solutia de baz a corespunz atoare bazei B este dat a de:
(9)
_
x
B
= x
B
x
R
= 0:
Aceast a solutie de baz a este un program dac a
(10) B
1
b _ 0:
O baz a B care veric a (10) se numeste baza primal admisibila.
Functia obiectiv se poate scrie tinnd seama de (6):
z = c
T
B
x
B
+ c
T
R
x
R
= c
T
B
B
1
b
_
c
T
B
B
1
R c
T
R
_
x
R
unde c
B
si c
R
sunt vectori coloan a avnd componentele c
i
; i E
si respectiv c
i
; i :
3
Not am cu
z
B
= c
T
B
x
B
; z
B
j
= c
T
B
y
B
j
; 1 _ j _ n:
Observ am c a z
B
reprezint a valoarea functiei obiectiv pentru solutia de baz a
x
B
= x
B
; x
R
= 0:
Cu notatiile de mai sus functia z devine:
(11) z = z
B

j2R
_
z
B
j
c
j
_
x
j
Teorema 2.
Fie B o baza primal admisibila. Daca
(12) z
B
j
c
j
_ 0; (\) j ;
atunci programul de baza (9) este o solu tie optima a problemei de programare
liniara (1).
Demonstratie. Fie x un program arbitrar al problemei (1). Valoarea functiei
obiectiv z = c
T
x pentru acest program este exprimat a de relatia (11). Tinnd
seama de (12) rezult a z > z
B
:
Relatiile (12) reprezint a testul de optimalitate.
Teorema 3
Fie B o baza primal admisibila. Daca exista k astfel nct sa avem:
z
B
k
c
k
> 0
si
y
B
k
_ 0;
atunci problema (1) are optim innit.
Teorema 4
Fie B o baza primal admisibila. Daca exista k astfel nct sa avem :
z
B
k
c
k
> 0
si
y
B
k
0
si daca r E se determina din condi tia :
4
(13) min
i=y
B
ik
>0
_
x
B
i
y
B
ik
_
=
x
B
r
y
B
rk
;
atunci matricea

B ob tinuta din B prin nlocuirea coloanei a
r
cu coloana a
k
este o baza primal admisibila, iar programul x
e
B
este cel pu tin la fel de bun ca
programul x
B
adica z
e
B
_ z
B
.
Relatia (13) este criteriul de ie sire din baza.
Algoritmul simplex.
Pasul 0. Se determin a o baz a primal admisibil a B, se calculeaz a
x
B
,z
B
; y
B
j
; z
B
j
c
j
; 1 _ j _ n si se trece la pasul 1.
Pasul 1. Dac a z
B
j
c
j
_ 0 pentru orice j ; STOP: x
B
= x
B
; x
R
= 0
este program optim. Dac a exist a j pentru care z
B
j
c
j
> 0; se determin a
multimea
+
=
_
j =z
B
j
c
j
> 0
_
si se trece la pasul 2.
Pasul 2. Dac a exist a j
+
astfel nct s a avem y
B
j
_ 0; STOP:
problema are optim innit.
Dac a pentru orice j
+
avem y
B
j
0; determin am k
+
folosind criteriul
de intrare n baza:
(14) max
j2R+
_
z
B
j
c
j
_
= z
B
k
c
k
si apoi indicele r E cu criteriul de iesire din baz a (13) si se trece la pasul 3.
Pasul 3. Se consider a baza

B obtinut a din B prin nlocuirea coloanei a
r
cu
coloana a
k
; se calculeaz a x
e
B
; z
e
B
; y
e
B
j
; z
e
B
j
c
j
; 1 _ j _ n si se trece la pasul 1,
nlocuind B cu

B:
In cazul unei probleme de maximizare, numai pasii 1 si 2 ai algoritmului
trebuie modicati:
Pasul 1
0
: Dac a z
B
j
c
j
_ 0 pentru orice j (criteriul de optimalitate
pentru problema de maxim), STOP; x
B
= x
B
; x
R
= 0 este program optim.
Altfel se determin a multimea

=
_
z =z
B
j
c
j
< 0
_
si se trece la pasul
2
0
.
Pasul 2
0
: Dac a exist a j

astfel nct y
B
j
_ 0; STOP; problema are
optim innit. Altfel, se determin a indicele k

folosind criteriul de intrare


n baz a:
(15) min
j2R
_
z
B
j
c
j
_
= z
B
k
c
k
si r E folosind criteriul de iesire din baz a (13) si se trece la pasul 3.
Observa tii
5
1. Criteriile de intrare n baz a (14) respectiv (15) asigur a o convergent a mai
rapid a a algoritmului. Intr-adev ar din (11) se vede c a valoarea functiei obiectiv
scade , respectiv creste cu o cantitate ct mai mare n valoare absolut a.
2. Pentru j E avem
y
B
j
= B
1
a
j
= e
j
= (0:::
j
1:::0)
T
:
Aceasta rezult a din faptul c a B = (:::a
j
...) si B
1
B = (e
1
:::e
j
:::e
m
):
3. Pentru j E;
z
B
j
= c
T
B
y
B
j
= c
T
B
e
j
= c
j
Rezult a
z
B
j
c
j
= 0; (\) j E:
6

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