Documente Academic
Documente Profesional
Documente Cultură
Algoritmul simplex
Cele dou teoreme realizeaz efectiv trecerea ctre o problem rezolvabil pe
calculator. ntr-adevr, deoarece o baz este un minor de ordinul m al matricii A i unei
baze i corespunde o unic soluie de baz rezult c sunt cel mult C m
n soluii de baz,
adic un numr finit. n acest moment s-ar prea c nu avem dect s lsm calculatorul
s calculeze toate soluiile de baz i valorile funciei obiectiv n cele admisibile gsind-o
prin comparare pe cea care d minimul sau maximul funciei printre acestea. Totui,
aceast variant se dovedete nepractic la o analiz mai atent, innd cont de
urmtoarele observaii:
1. faptul c numrul soluiilor de baz este finit ne asigur doar c problema se
va termina cndva, ceea ce, din punct de vedere economic, este evident
nemulumitor. Noi dorim ca problema s fie rezolvat n timp util, adic
repede. Rezolvnd problema ca mai sus vom avea, pentru o problem cu 50
20
variabile i 20 restricii, de calculat, listat i comparat C 50
soluii de baz,
adic n jur de 1020. Presupunnd c suntem dotai cu un supercalculator care
ar termina un miliard de baze pe secund, rezolvarea ar dura 3000 ani. De
altfel, o problem ca cea de sus este foarte mic n comparaie cu problemele
"serioase" ce au peste 1000 de variabile i 100 de restricii. n plus, un
calculator ca cel de sus nu exist nc, deci n nici un caz nu e disponibil
ntreprinderilor obinuite.
2. Cu algoritmul de mai sus vom gsi cea mai bun soluie dintre soluiile
admisibile de baz, fr ns s tim dac problema admite, de fapt, optim (ar
putea s aib optim infinit).
3. Nu vom ti dac un minor de mm este baz dect dup ce-i vom calcula
determinantul i nu vom ti dac soluia de baz corespunztoare este
admisibil dect dup ce o vom calcula.
4. Soluia optim, odat gsit, nu va fi recunoscut ca atare dect dup ce vom
calcula toate celelalte soluii de baz, chiar dac ea a aprut chiar la nceputul
calculelor.
n concluzie, pentru a fi eficient, un algoritm ar trebui s aib urmtoarele
proprieti:
a) s dispun de un criteriu de recunoatere a faptului c problema nu are soluii
admisibile;
b) s dispun de un criteriu de recunoatere a faptului c problema are optim
infinit;
c) s dispun de un criteriu de recunoatere dac o soluie este optim sau nu;
d) s treac de la o soluie de baz admisibil la una cel puin la fel de bun (o
soluie x este mai bun dect o soluie y dac f(x) > f(y) ntr-o problem de
maxim i f(x) < f(y) ntr-o problem de minim;
e) s treac de la o soluie la cea mai bun dintre soluiile cel puin la fel de bune
posibile ca succesoare;
f) s nu revin la o soluie deja analizat;
3
1
x 4 20x 5 x 6 6x 7
4
2
1
x 4 8x 5 x 6 9x 7 0
4
1
1
x 4 12x 5 x 6 3x 7 0
2
2
x6
1
x i 0, i 1,...,7
max f
x1
x2
x3
7
,
4
3
,0,0,1,0,1,0).
4
Aceast situaie este ngrijortoare nu att din considerente practice imediate (nc
nu a fost gsit o problem din practic la care s apar acest fenomen, toate exemplele
existente fiind artificial construite, ca i cel de mai sus) ct din faptul c un algoritm
implementat pe calculator s-ar putea s fie pus n faa unei astfel de probleme, situaie n
care n-am putea rezolva problema nici pe calculator, nici manual, ea fiind prea mare.
Situaia a fost depit prin diferite tehnici suplimentare adugate celei de trecere la o
soluie cel puin la fel de bun (insuficient, cum s-a vzut), cea mai cunoscut fiind cea
care folosete ordonarea lexicografic a soluiilor, care va fi prezentat i n aceast
carte.
n fine, referitor la condiia g), a durat mult timp pn s-a demonstrat c
algoritmul, sub aceast form, nu este n timp polinomial, un exemplu fiind clasa de
probleme de mai jos, gsit de Klee i Minty n 1972, n care algoritmul trebuie s
analizeze 2n baze (n = numrul de necunoscute) pn la gsirea celei optime.
max f
10
n- j
xj
j1
10 i - j x j x i 100 i -1 i 1,..., n
j1
x j 0 j 1,..., n
i -1
j 1
a x
j 1
ij j
bi , 1 i m, bi 0
x j 0, 1 i n
i un program de baz
x m 1
c1
X p ; X s ; Cp ;
xm
xn
cm
min f X
B X p
cm1
cn
Cs
CT
C sT X
p X p
N Xs L
X 0
E X
B 1 N X
B 1 L
vom avea:
z ij
ij
problema devine:
c
i 1
xi
j m 1
xi
x j xi
ij
X
f X
B 1 NX
C Tp X p
CsT
Xs
C Tp
NX s CsT X s
NX
C Tp
de unde
i atunci
X CsT C Tp B 1 N X s
sau explicit:
fX
ci xi
i 1
Notnd:
c x
i 1
j m 1
cj
c
i 1
z ij x j
i i
c z
Z si
i 1
i ij
Z j , m 1 j n avem
c
n
j m 1
Observm c Z f X si Z Cp B L.
Acum putem asocia problemei PL- min urmtorul tabel:
Cp
vector
ii
bazei
Cj Z j
c1
a1
c2
a2
cn
an
z11
z12
zm1
zm2
...
z1ncomponente
le bazice ale
...
zmmlui X
.............................
............
f X
c j Z j 0 m 1 j n atunci X
Demonstraie:Avem:
n
cj Zj x j f X
f X f X
j m1
optim.
finit.
Demonstraie: Fie:
x t ,
xi
xi
X x1 , x 2 ,..., x n
unde:
zit ; 1 i m
m 1 j n, j t
Astfel avem
x j 0 1 j n.
Pentru 1 i m avem:
n
j 1
x j 0;
ij x j
a
j 1
ij x j
j m 1
n
a x
ij
j 1
z jt a it
(folosind (9))
aij x j
z jh x h
aij z jt ait
j 1
h m1
j 1
m
m
m
n
aij x j
aij
z jh x h a it ait
aij x j
h m1
j 1
j 1
j 1
m
ij x j
a
j 1
ij x j
h m1 j 1
ij z jh x h
a
j 1
ij x j
h m1
f X
j 1
c j x j
j m1
j 1
Zj x j
j 1
h m1
j 1 h m1
j 1
c x c
j
a
j 1
ij z jt
a it
ij z jh x h
a
j 1
ij x j
Deci
x j a ij
j m1
ij z jh
aij x j
j 1
x a
x h aih (renot m pe h cu j)
ij x j
a
j 1
ij x j
bi
Zt
x s
min
/ 1 i m, z it 0
z st
z it
x s
z it , 1 i m,i s
x x
z
st
x s' 0
'
i
x ' xs 0
t
z st
'
x j 0, m 1 j n, j t
xi xs
i innd seama de (14) nseamn c xi' este produs de dou numere
z
it zst
nenegative).
T
Deci X ' x1' , x2' ,..., xn' este o soluie de baz. Valoarea funciei obiectiv pentru X '
este:
xi' zit
c j Z j x 'j f X ct Z t x t' f X .
f X ' f X
j m1
xs
min
/ 1 i m, zit 0 .
-Pasul 3 : Se alege s, astfel nct
zst
zit
s
Vectorul a va iei din baz. Elementul zst devine pivot. Se construiete un nou tabel
simplex folosind regula dreptunghiului:
a) se mparte linia pivotului la pivot.
b) n coloana pivotului, elementele zsj cu j t se nlocuiesc cu 0
zit zsj
c) elementele zij , cu i s, j t se nlocuiesc cu z 'ij zij
.
zst
Se obine un alt program de baz X ' cu baza B' i o nou valoare a funciei obiectiv.
Se revine la pasul 2 cu B B' i X X '
-Pasul 40 .Concluzie: PL - min nu are optim finit I algoritmul se oprete.
-Pasul 5 .Concluzie: PL - min are optim X iar valoarea minim f X ". STOP.
Exemplul . Fie problema:
x j 0 j 12, ,. . ,5
2 x 1 x 2 x 3 3x 4 x 5 4
Alegem
X 1,2,0,0,0
. Avem:
3
2
1
5
3
a1 ; a 2 ; a 3 ; a 4 ; a 5
2
1
1
3
1
B a1 , a 2
procedeaz
astfel:
coordonatele
lui
3
1
2
a 1a 2 a ,
3 2 1 3 1 2 2 1
ceea ce ne d
1 2
2 1 1 2 1 2 1
, respectiv
. Pentru a afla
punem
1 1, 2 1 . Deci n baza B,
1
1
4
5
. Analog se gsesc: a B , a B
1
1
3
a B3
a1
a2
1
-1
7
a2
9 2 1
a 3 a 4 a5
1
3
1
2
0
1 -1
1
0
0
11 -10 19
-15
Deci a 5 intr n baz, a 2 iese din baz, z25 - pivot. Se execut pivotajul i obinem:
cj Z j
5
1
a1
a5
5/ 3
2/3
5 / 3
0
0
0
2 / 3
X '
f X ' 9
cj Z j
1/ 2
1 / 2
1
0
-5
a4
a
cj Z j
am
0,0,0,5 / 4,1 / 4 T
observaia c
3/ 4
1 / 4
1/ 4
1/ 4
15/4 25/4
0 0
11 / 4
c j Z j 0 1 j 5. Deci
obinut
cu min f =
17/2
0 5/ 4
1 1/ 4
11
4
programul
optim
este
max f min f
c x
j
, R ,
j 1
c
j 1
jxj.