Sunteți pe pagina 1din 8

Metoda simplex

Valeriu Ungureanu, 28 martie, 2011 Metoda Simplex, numit i algoritm simplex, a fost propusa de George Bernard Dantzig n 1947. Este una dintre cele mai populare metode de rezolvare a problemelor de programare liniar. Metoda se aplic asupra problemei n forma standard, ceea ce, potrivit teoremei despre echivalena formelor, nu afecteaz universalitatea metodei. Denumirea provine de la noiunea de simplex i a fost sugerat de T.S. Motzkin. Revista Computing in Science and Engineering (vol. 2, no. 1, 2000) a inclus algoritmul n primii 10 algoritmi de top ai secolului XX. Care sunt premisele metodei? S reamintim c: domeniul X de soluii admisibile ale problemei de programare liniar este mulime poliedral cu un numr finit de vrfuri; dac problema de programare liniar are valoare finit, atunci ea se atinge i ntr-un vrf al mulimii de soluii admisibile; fiecrui vrf al mulimii poliedrale X i corespunde o soluie admisibil de baz a sistemului de restricii ale problemei iniiale; metoda Gauss-Jordan i transformrile simplex permit s se efectueze trecerea de la o soluie admisibil de baz (de la un vrf) la alt soluie admisibil de baz (la alt vrf). Rmne doar s se clarifice cum s se efectueze trecerea, ca de la o soluie la alta s creasc valoarea funciei obiectiv.

Ideea de baz a metodei simplex const n parcurgerea orientat a vrfurilor mulimii poliedrale de soluii admisibile cu scopul de a afla vrful n care valoarea funciei obiectiv este maxim. S considerm problema de programare liniar n form standard: z=z(x)= c1x1 + c2x2 + + cnxn max,_________(1) ______ai1x1 + ai2x2 + + ainxn = bi, i=1,,m,___(2) ______xj 0, j=1,,n.________________________ Metoda Gauss-Jordan. Interpretri geometrice. Aplicaii Metoda Gauss-Jordan este n primul rnd o metod de rezolvare a sistemelor de ecuaii liniare. Ea aduce printr-un numr finit de pai succesivi sistemul de rezolvat 11x1 + 12x2 + + 1jxj + i1x1 + i2x2 + + ijxj + r1x1 + r2x2 + + rjxj + m1x1 + m2x2 + + mjxj + + 1sxs+ + 1nxn = 1, + isxs+ + inxn = i, + rsxs+ + rnxn = r, + msxs+ + mnxn = m,

la o form n care fiecare ecuaie conine o variabil explicitat (de baz). Acest lucru se realizeaz selectnd o ecuaie r i n ea o variabil xs cu coeficient nenul rs 0. Ecuaia r se mparte la rs. Cu ajutorul ecuaiei obinute: r1/rsx1 + r2/rs x2 + + rj/rs xj + + rs/rs xs+ + rn/rs xn = r/rs, se elimin variabila xs din toate ecuaiile, cu excepia ecuaiei r. Se obine un sistem echivalent cu cel iniial, n care coeficienii variabilelor i termenii liberi sunt calculai conform formulelor: rj: = rj / rs, j=1,,n,_________________ r := r /rs,_________________________

ij := ij is rj/rs, i=1,,m, i r, j=1,,n, i := i is r/rs, i=1,,m, i r.________ n continuare n sistemul curent se aleg iari o ecuaie i o variabil (cu coeficient nenul), diferite de cele alese la primul pas, i se efectueaz o eliminare dup aceleai formule. Procedeul descris se repet pn cnd are loc una dintre urmtoarele 3 situaii:

1. n procesul de calcul la un anumit pas se obine o ecuaie contradictorie de forma: 0x1+

+0xn=bi 0. Ea indic c sistemul iniial este incompatibil i procesul de calcul trebuie oprit. 2. La un pas anumit o ecuaie se transform ntr-o identitate de forma: 0x1++0xn=0. Ea denot c ecuaia dat este combinaie liniar a celorlalte ecuaii ale sistemului i oate fi suprimat, iar procesul de calcul (eliminrii) continuat. 3. Toate ecuaiile sistemului au fost folosite pentru a elimina variabile (toate ecuaiile conin cte o variabil de baz) i nu sunt ecuaii contradictorii. n aa caz, sistemul iniial a fost redus la un sistem de forma (n care s-a efectuat o renumerotare de variabile, pentru simplitatea expresiilor obinute): x1_______+ 1r+1 xr+1 + + 1n xn = 1, ___x2____+ 2r+1 xr+1 + + 2n xn = 2, _______xr + rr+1 xr+1 + + rn xn = r. De unde se obine soluia general: x1 = 1 1r+1 xr+1 1n xn, x2 = 2 2r+1 xr+1 2n xn, xr = r rr+1 xr+1 rn xn, creia i corespunde soluia de baz x cu componentele de baz xi= i , i=1,, r, restul componentelor fiind nule. n afar de soluia de baz x, sistemul mai poate avea pn la C nr soluii de baz, care pot fi determinate aplicnd acelai procedeu de eliminare complet, schimbnd succesiv combinaiile de variabile de baz. Astfel metoda Gauss- Jordan permite nu numai s se afle soluia general, ci s se calculeze i toate soluiile de baz ale sistemului de ecuaii. Remarc. S reamintim c denumirea de variabil baz e legat de faptul c vectorii-coloane respective ale matricei sistemului de ecuaii formeaz baz n spaiul Rr, adic sunt liniar independeni. Termenii liberi sunt coeficienii descompunerii vectorului b n baz. O eliminare complet conduce la formarea altei baze prin nlocuirea unuia dintre vectorii de baz cu un vector liber, obinndu-se i descompunerea lui b n noua baz. Procesul de calcul n metoda Gauss-Jordan se ordoneaz cu ajutorul unor tabele speciale, numite tabele Gauss. n ele elementul rs, numit pivot, se marcheaz printr-un dreptunghi, triunghi sau cerc. Linia r e numit linie pivot, coloana s - coloan pivot, iar o transformare a tabelului conform formulelor de mai sus pivotare. n procesul de calcul se aplic aa-numita regul (mnemotehnic) a dreptunghiului care const n urmtoarele. La transformarea elementului ij (ir), elementul ij se proiecteaz imaginar pe linia pivot i coloana pivot, obinndu-se un dreptunghi cu vrfurile n ij, is, rj, rs. Elementul ij se recalculeaz scznd din elementul ij, situat n unul dintre vrfurile dreptunghiului, produsul isrj al elementelor situate n dou vrfuri opuse, mprit la pivotul rs, situat n cel de-al patrulea vrf opus. Aceeai regul se folosete i la calcularea elementelor i. n fine, poate fi expus un algoritm de rezolvare a problemei de programare liniar, derivat din metoda Gauss-Jordan, algoritm ce determin soluia optim a problemelor de programare liniar n care a priori e cunoscut c ea exist i e finit.

1. Dac valoarea optim a problemei date de programare liniar e finit, atunci se trece la
pasul 2. n caz contrar, stop. 2. k=1. Problema de programare liniar se aduce la forma standard. 3. Se determin prin metoda Gauss-Jordan o soluie de baz x1 a sistemului de ecuaii liniare; tabelul corespunztor se noteaz T1 i se salveaz; se trece la pasul 4.Dac sistemul nu are soluii de baz, atunci problema de programare liniar nu are soluii admisibile; stop. 4. Din tabelele T1, ,Tk se selecteaz un tabel i un pivot n el pentru care pivotarea d o soluie de baz xk+1 ce are o combinaie a variabilelor de baz diferit de cele ale soluiilor de baz x1,, xk; se efectueaz pivotarea; se determin xk+1; tabelul Tk+1 se salveaz; se trece la pasul 5.Dac tabelul cu caracteristicile cerute nu exist, atunci toate soluiile de baz sunt determinate i se trece la pasul 6. 5. k=k+1; se trece la pasul 4. 6. Dac printre x1, , xk nu exist soluii admisibile, atunci i problema iniial nu are soluii admisibile; stop. n caz contrar, se calculeaz valoarea funciei obiectiv pentru fiecare soluie admisibil x1, , xk i se alege ca punct de maxim soluia admisibil de baz cu cea mai mare valoare a funciei obiectiv. Remarc. Metoda Gauss-Jordan servete ca baz nu numai pentru acest algoritm, dar i pentru toate variantele cunoscute ale metodei simplex. Trecerea de la o soluie admisibil de baz la alta. Selectarea liniei pivot S presupunem c printr-o careva metod am reuit s determinm o soluie admisibil de baz a sistemului (2). n atare supoziie sistemul de ecuaii (2) poate fi explicitat n raport cu m variabile i, fr a pierde din generalitate, vom presupune c anume n raport cu primele m variabile: x1_______+ 1m+1 xm+1 + + 1n xn = 1, ___x2____+ 2m+1 xm+1 + + 2n xn = 2, _______xm + mm+1 xm+1 + + mn xn = m, care are n calitate de soluie admisibil de baz vectorul x0 = (1, 2,, m, 0,, 0)T . Trecerea de la aceast soluie admisibil de baz la alt soluie admisibil de baz e condiionat de transformarea uneia dintre variabilele libere xm+1,, xn n variabil de baz. Pentru a realiza cu succes aceast trecere, e suficient s existe un coeficient ij 0, j {m+1,, n}, i {1,, m}. Presupunem c rs 0, r {m+1,, n}, s {1,, m}. Elementul rs l vom numi pivot. O eliminare complet a variabilei xs e echivalent cu trecerea la un nou sistem, cu coeficieni i termeni liberi calculai dup formulele: rj := rj / rs j=1,, n;_________________ r :=r / rs,_________________________ ij := ij is rj / rs i=1,,m, j=1,, n, i r; i :=i r is rj / rs i=1,, m, i r.______ Pentru ca soluia de baz obinut s fie admisibil, din (4) reiese c trebuie s se verifice inegalitile: r/rs 0,________________ i r is/rs 0, i=1,,m, i r, echivalente cu: rs > 0,__________________ r/rs i/is, i= 1,, m, i r, sau cu:

rs > 0,___________________ r/rs = min{ i/is | i: is > 0}. Aadar, pivotul trebuie s fie pozitiv i raportul termenilor liberi la elementele is>0 din coloana s s fie cel mai mic anume pentru linia r, numit linie pivot. Transformrile efectuate conform formulelor de mai sus n condiiile specificate se numesc transformri simplex. Ele permit s se efectueze trecerea de la o soluie admisibil de baz (de la un vrf al mulimii poliedrale de soluii admisibile) la alta (la alt vrf) dup o regul bine cunoscut regula dreptunghiului din metoda Jordan-Gauss. Teorem. O transformare simplex a sistemului de ecuaii este echivalent cu trecerea de la o soluie admisibil de baz la o alt soluie admisibil de baz. Dac prima este degenerat, atunci se gliseaz pe aceeai soluie admisibil de baz, schimbndu-se doar unul dintre vectorii componeni ai bazei. Criteriul de selectare a coloanei pivot. Criteriul de optimalitate i cel de nemrginire Considerm c a fost gsit o soluie admisibil de baz x0 = (1, 2,, m, 0,, 0)T a problemei standard i presupunem n continuare, fr a pierde din generalitate, c ea are nenule primele m componente. n asemenea caz, sistemului iniial de ecuaii i corespunde un sistem echivalent n care sunt explicitate primele m variabile (xB + B-1 S xS = B-1b): x1_______+ 1m+1 xm+1 + + 1n xn = 1, ___x2____+ 2m+1 xm+1 + + 2n xn = 2, _______xm + mm+1 xm+1 + + mn xn = m. Soluia general a sistemului este xi = i nj=m+1 ij xj, i=1,, m, din care orice soluie particular (inclusiv i soluiile admisibile de baz) se obine atribuind valori potrivite variabilelor libere xm+a, , xn. Fie x=(x1, x2,, xn)T o careva soluie particular. Pentru ea avem urmtoarea valoare a funciei obiectiv: z(x)= c1 x1 + + cn xn = c1 (1 nj=m+1 1j xj) + + cm (m nj=m+1 mj xj)+ cm+1 xm+1 + + cn xn = mi=1 ci i nj=m+1 (mi=1 cj ij cj) xj = z(x0 ) nj=m+1 (zj cj) xj = z0 nj=m+1 (zj cj) xj, unde zj cj = mi=1 cj ij cj = (cBT B-1A)j cj este estimaie relativ sau factor relativ de cost; z0= z(x0 ) = mi=1 ci i este valoarea funciei obiectiv n punctul dat. Funcia obiectiv poate fi scris i n forma: z(x)= z(x0 ) nj=m+1 (zj cj) xj = z(x0 ) (cBT B-1A c )T x. Evident, dac zj cj >0, j=m+1,, n, atunci valoarea funciei obiectiv pentru orice alt soluie particular nu poate fi mai mare dect z(x0 ), iar dac zj cj 0, j=m,, n, i exist zj cj = 0, j m+1,, n, atunci exist o alt soluie admisibil de baz cu aceeai valoare a funciei obiectiv (la care se poate trece utiliznd transformrile simplex) i valoarea problemei se realizeaz ntr-o infinitate de puncte combinaii convexe ale soluiilor admisibile de baz optime. n baza celor expuse au loc urmtoarele teoreme. Teorem (criteriul de optimalitate). Soluia admisibil de baz este punct de maxim (de minim) dac i numai dac toate estimaiile variabilelor libere sunt nenegative (nepozitive), adic: zj cj 0 (zj cj 0), j=m+1,, n.__(3) Dac toate inegalitile n (3) sunt stricte, atunci soluia optim e unic, iar dac n (3) exist zj cj = 0, j {m+1, , n}, atunci exist o infinitate de soluii optime.

Teorem (criteriul de selectare a coloanei pivot). Dac exist zs cs <0, s {m+1, , n}, i exist r/rs = min{i/is | i: is>0}, atunci o transformare simplex cu pivotul rs va mri valoarea funciei obiectiv cu r(zscs)/rs. Teorem (criteriul de nemrginire). Dac exist zscs<0, s {m+1, , n}, i is0 pentru toi i=1,, m, atunci problema nu are valoare optim finit. n conformitate cu teorema 2, pentru a trece de la o soluie admisibil de baz la alta, se selecteaz o estimaie negativ zs cs<0, s {m+1, , n}, i se efectueaz transformrile simplex cu pivotul rs n coloana s (r linia pivot). Dac termenul liber rdin linia pivot e pozitiv, atunci se va trece la o nou soluie admisibil de baz, cu valoarea funciei obiectiv mai mare; dac termenul liber r din linia pivot e nul, atunci n urma transformrilor simplex soluia admisibil de baz rmne neschimbat, deoarece soluia e degenerat (xs devine variabil de baz, iar xr variabil liber); dac n coloana s toate elementele sunt nepozitive, adic is 0, i=1,, m}, atunci tragem concluzia c problema iniial nu are valoare optim mrginit (funcia obiectiv (2) poate crete orict de mult, deoarece n (1) variabila x s i, respectiv, variabilele de baz xi, pentru care is <0, pot crete orict de mult. Remarc. Din (2) reiese c estimaia zj cj a unei variabile libere xj , j {m+1, , n}, este egal cu valoarea cu care se schimb valoarea funciei obiectiv la creterea cu o unitate a valorii variabilei} xj ( dac zj cj e negativ, atunci valoarea funciei obiectiv crete, n caz contrar, descrete). Ordonarea calculelor. Alctuirea tabelului simplex Dac dorim s construim un algoritm care ar realiza trecerea de la un vrf al mulimii poliedrale de soluii admisibile X la alt vrf, este important ca totdeauna s fie la ndemn: coeficienii i termenii liberi ai sistemului de ecuaii explicitat corespunztor; estimaiile relative zj cj ale variabilelor.

Acest lucru poate fi asigurat reprezentnd datele n form de tabel. Fie c a fost gsit o soluie admisibil de baz a problemei standard i presupunem, fr a pierde din generalitate, c n sistemul respectiv sunt explicitate primele m variabile: x1 + 1m+1 xm+1 + + 1n xn = 1, x2 + 2m+1 xm+1 + + 2n xn = 2, xm + mm+1 xm+1 + + mn xn = m. n baza reprezentrii (2) din paragraful precedent, funcia obiectiv poate fi scris ca o ecuaie de forma: z(x)= z(x0 ) nj=m+1(zj cj) xj, care poate fi alturat la sistemul de ecuaii. Introducnd notaiile: 0j = mi=1 cj ij cj, j=1,, n, i0 = i, i=1,, m,__________ 00 = mi=1 i,___________ sistemul precedent se transform n: x1 + 1m+1 xm+1 + + 1n xn = 1, x2 + 2m+1 xm+1 + + 2n xn = 2, xm + mm+1 xm+1 + + mn xn = m, z + om+1 xm+1 + + 0nxn = 00, numit sistem lrgit.

Dac n el se efectueaz transformrile simplex cu pivotul rs (transformri ce includ i ultima ecuaie, fr cerina ca 00 s fie nenegativ), atunci elementele noului sistem pot fi calculate utiliznd bine cunoscuta regul a dreptunghiului i pentru linia alturat: 0j := oj rj 0s / rs, j=0,, n. Deci sistemul (4) conine toate datele necesare pentru alctuirea algoritmului i de aceea e important ca (4) totdeauna s fie la dispoziia utilizatorului. Din considerente de comoditate, claritate i eficien, (4) se pstreaz sub form de tabel aa-numitul tabel simplex i toate calculele se efectueaz anume n cadrul tabelelor simplex.

Observm c: ultima linie din tabel conine estimaiile variabilelor i valoarea funciei obiectiv 00 pentru soluia admisibil de baz x=(10, 20, , m0, 0, , 0)T; coloana a doua conine lista variabilelor de baz; coloana a treia conine valorile variabilelor de baz (termenii liberi ai sistemului de ecuaii); prima coloan conine coeficienii din funcia obiectiv ai variabilelor de baz.

Elementele ij, i=0,, m, j=0,,n, ale tabelului simplex le-am interpretat, pe bun dreptate, ca coeficieni i termeni liberi ai sistemului de ecuaii. Dar elementele au i alt semnificaie: dac B={A1, A2, , Am} este o baz a matricei A a sistemului de ecuaii al problemei standard, atunci elementele ij, j=1,,m, sunt coordonate ale vectorului coloan Aj, j {1, , n}, n baza B. De aceea, elementele tabelului simplex sunt notate i prin xij, i=0,, m}, j=0,, n, subnelegndu-se, n aa caz, coordonatele obinute la descompunerea coloanelor matricei sistemului de restricii (a problemei standard iniiale) n baza corespunztoare. Determinarea soluiei admisibile de baz iniiale A rmas neelucidat o singur chestiune: cum se determin soluia admisibil de baz iniial de la care i ncepe execuia algoritmul simplex? Desigur, n unele cazuri ea se obine chiar din formularea problemei. De exemplu, la cercetarea problemei canonice: c1 x1 + c2 x2 + + cnxn max,_____ ai1x1 + ai2x2 + + ainxn bi, i=1,,m, xj 0, j=1,,n,___________________ n care bi 0, i=1,,m, trecerea (prin introducerea variabilelor ecart xn+1, xn+2, , xn+m la forma standard: c1 x1 + c2 x2 + + cnxn max,__________ ai1x1 + ai2x2 + + ainxn+xn+i = bi, i=1,,m, xj 0, j=1,,n+m,_____________________ este nsoit de formarea unei baze unitare B =[n+1... n+m = [e1 ... em], creia i corespunde soluia admisibil de baz x=(0, ,0,b1, ,bm)T. Dac problema are forma standard (1)-(2) i nu conine o baz unitar, atunci pot fi ncercate metodele cunoscute de soluionare a sistemelor de ecuaii liniare, cum este metoda Gauss-Jordan. Totui rezultatul scontat totdeauna poate fi obinut prin metoda bazei artificiale, definitivat n dou variante: metoda celor dou faze i metoda coeficienilor de penalizare, ambele variante

reducnd problema determinrii soluiei admisibile de baz iniiale la o problem secundar de programare liniar. Metoda celor dou faze. n faza I, n se introduc variabilele artificiale xn+1, ,xn+m i se rezolv problema artificial: xn+11 + xn+2 + + xn+m min,_________ ai1x1 + ai2x2 + + ainxn+xn+i = bi, i=1,,m, xj 0, j=1,,n+m,_____________________ care are soluia admisibil de baz iniial x=(0, ,0,b1, ,bm)T. Dac problema secundar are valoarea optim nul, atunci soluia acestei probleme este soluie admisibil de baz iniial a problemei iniiale, soluie care poate fi utilizat mai departe n faza a II-a la aflarea soluiei optime a problemei iniiale. Dac problema secundar are soluie pozitiv, problema iniial nu are soluii admisibile. Metoda coeficienilor de penalizare Se introduc variabilele artificiale ca i n cazul precedent, i n locul problemei iniiale se rezolv: c1 x1 + c2 x2 + + cnxn Mxn+1 Mxn+m max, ai1x1 + ai2x2 + + ainxn+xn+i = bi, i=1,,m,______ xj 0, j=1,,n+m,___________________________ n care M este un numr pozitiv suficient de mare, numit coeficient de penalizare; x=(0, ,0,b1, ,bm)T este soluie admisibil de baz. Dac dup soluionarea ultimei probleme una dintre variabilele artificiale mai rmne bazic, cu valoare pozitiv, atunci problema iniial nu are soluii admisibile; n caz contrar, soluia optim pentru problema cu M este soluie optim i pentru cea iniial. Remarca 1. Ambele variante ale metodei bazei artificiale adeseori se termin nu numai cu obinerea soluiei admisibile de baz iniiale a problemei iniiale, i, n anumite situaii, i cu obinerea soluiei optime. Remarc. La soluionarea problemelor cu variabile artificiale prin algoritmul simplex e raional ca transformarea n nebazic a uneia dintre variabilele artificiale s fie nsoit de suprimarea coloanei respective a tabelului simplex. Remarc. Metoda coeficienilor de penalizare poate fi i ea divizat n dou etape, prima etap terminndu-se odat cu transformarea n nebazice a tuturor variabilelor artificiale. Remarc. Dac prin metoda bazei artificiale se determin c problema de rezolvat nu are soluii admisibile, atunci n tabelul simplex final exist cel puin o linie n care toate variabilele neartificiale au coeficieni nepozitivi. Aceasta este echivalent cu faptul c pentru problema de rezolvat prin transformri de echivalen se determin o ecuaie contradictorie n care termenul liber e pozitiv, iar coeficienii variabilelor neartificiale sunt nepozitivi. Algoritmul simplex n conformitate cu cele menionate anterior, metoda simplex este o procedur iterativ de generare a unei consecutiviti finite de soluii admisibile de baz (vrfuri ale mulimii poliedrale de soluii admisibile) x0, x1,, xk cu proprietatea c z(xi) z(xi+1), i=0,, k. Dac problema iniial are soluie optim, atunci xk i este punctul de maxim. n detaliu algoritmul simplex poate fi reprezentat astfel: 1. Problema iniial de programare liniar se aduce la forma standard (1)-(2).

2. Se determin o soluie admisibil de baz iniial. Dac ea nu exist, atunci problema dat
nu are soluii admisibile (stop). 3. Se construiete tabelul simplex iniial. 4. Dac se satisface criteriul de optimalitate (sunt nenegative toate estimaiile relative, adic 0j=zjcj0, j=1,, n), atunci soluia admisibil de baz curent este de optim (stop). 5. Se alege coloana pivot s pentru care 0s<0. 6. Se alege linia pivot r pentru care are loc: r0/rs = min{i0/is | i : is>0}. Dac toate elementele din coloana pivot sunt nepozitive, adic is0, i=1,,m, atunci problema iniial nu are soluie optim mrginit (stop). 7. Din ecuaiile 0,1,r-1,r+1, , m se elimin variabila xs prin intermediul transformrilor simplex: rj :=rj/rs, j=0,, n,__________________ ij := ij rj is/rs, i=0,, m, ir, j=0,, n, _____i se trece la pasul 4. Remarc. n 1979, Leonid Khachiyan a demonstrat c problema de programare liniar are complexitate polinomial (ca funcie de dimensiunile problemei).Teoretic, metoda simplex n cel mai ru caz poate efectua un numr exponenial de iteraii. n practic numrul de iteraii este de cele mai dese ori comparativ cu numrul de ecuaii, ceea ce explic faptul de ce metoda se folosete pe larg i n prezent la rezolvarea problemellor de programare liniar. Sursa: V. Ungureanu, Programarea Matematic, Chiinu, USM, 2001.

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