You are on page 1of 174
ANTON BATATORESCU METODE DE | OPTIMIZARE LINIARA EDITURA UNIVERSITATII DIN BUCURESTI 2003 Prefata De la primele publicatii ale lui Dantzig cu privire la algoritmul simplex a trecut aproximativ o jumatate de secol. in acest interval de timp, teoria si metodele de optimizare liniar& au cunoscut o evolutie considerabil&, in prezent existénd un numéar impresionant de lucrari consacrate acestui domeniu. in aceeasi perioad& a avut loc si aparitia, iar apoi ”explozia” cal- culatoarelor electronice, care au permis implementarea algoritmilor in programe performante, capabile s& rezolve probleme economice reale. Dimensiunca din ce in ce mai mare a acestor probleme a impus ra- finarea si adaptarea variantei initiale a algoritmului simplex pentru a face fat& dificult&tilor ce se intampina la prelucrarea volumului mare de date. O directie in acest sens a constat in claborarea unor metode de gestionare judicioas& a elementelor nenule pe parcursul iteratiilor, numite metode compacte, ins& ele nu vor face obiectul de studiu al acestei cari. O alt& directic a fost de a g&si principii noi de abordare a rezolvarii problemelor, fie prin exploatarea structurii speciale in care se prezinta de regula datele in astfel de cazuri, fie prin adaptarea unor metode de optimizare neliniara. Scopul acestei carti este de a prezenta anumite aspecte din vasta problematicd a optimizarilor liniare, punandu-se accentul asupra rezul- tatelor teoretice, care justificd metodele si algoritmii ce sunt utilizati in practic’. Primul capitol este destinat teoremelor clasice ale program&rii liniare. Pe baza acestora este enuntat algoritmul simplex primal gi apoi, dupa expunerea rezultatelor de dualitate, algoritmul simplex dual. De asemenea, pentru a face o deschidere spre implementarea prac- tic a algoritmului simplex, sunt deduse formulele de schimbare a bazei prin intermediul Lemei substitutiei si se prezint&’ dou& modalitati de organizare a calculelor: tabloul simplex standard si cel revizuit. Pe de alt& parte, intr-un paragraf separat, este prezentat& adaptarea algo- ritmului simplex pentru rezolvarea mai eficient&, din punct de vedere a dimensiunii, a problemelor cu variabile marginite. Cel de-al doilea capitol prezint& cateva metode de optimizare liniar& care sunt concepute pentru rezolvarea problemelor de dimensiuni mari. Astfel de probleme au in mod necesar o structur& particular’ a res- trictiilor, in care coeficientii nenuli sunt grupati de regula in blocuri (submatrice). Structura care rezulta este de form% ” bloc-unghiular&” sau ”bloc-triunghiular&”. Metodele prezentate aici exploateaza intr-un mod ingenios acest& structur& astfel incét, in loc de a rozolva o sin- gura problema de programare liniar’, care este de dimensiune foarte mare, se rezolva un sir de probleme liniare, dar care sunt de dimensi- uni cu mult mai mici. Pentru aceasta sunt folosite doua principii de abordare. Primul este principiul de descompunerele Dantzig-Wolfe, iar al doilea, cel de relaxare si partitionare. Ceea ce trebuie subliniat este faptul c& aceste metode se bazeaz& in ultima instant& tot pe teo- remele algoritmului simlex, care prin intermediul acestor principii este adaptat s& beneficieze de structura ”in blocuri” a datelor problemei. Cele dou& exemple numerice ilustreaz’ modul de aplicare a metodelor expuse in acest capitol. in ultimele doua decenii, dup’ publicarea in 1984 a algoritmului lui Karmarkar, studiul rezolvarii problemelor de programare liniara de di- mensiuni mari s-a orientat spre investigarea unor metode alternative. Ultimul capitol este consacrat prezentarii unor astfel de metode, care isi au originea in metodele de optimizare neliniar’ si se bazeaz’% pe construirea unor siruri de puncte recurente din interiorul, respectiv exteriorul domeniului de admisibilitate. Aceste metode au o carac- teristica comuna gi anume, ele rezolvi problemele ”in timp polino- mial”, adica, efortul de calcul este marginit de valoarea unui polinom ce se calculeaz& in raport cu ”mrimea” problemei. fn cazul algorit- milor de punct interior, sirul de puncte recurente se afl& in vecinatatea unei ”traiectorii continue”, care este descris de un sistem de ecuatii diferentiale. - Cartea se adreseaz& in special studentilor care urmeaza& cursuri de optimizare matematica, dar ca poate fi utild in egal masurd si tuturor acelora care sunt confruntati in activitatea practicd cu rezolvarea unor probleme de optimizare liniar&, deoarece, prin aprofundarea teoretic&. a acestor metode, se pot intelege si interpreta mai bine rezultatcle ce se obtin prin utilizarea diferitor programe software. Bucuresti, decembrie 2002. Autorul CUPRINS 1. Programare liniar& 1.1. Notatii si propriet&ti ale sistemelor liniare Ye 1.1.1. Lema Farkas-Minkowski............ °® 1.1.2. Forme ale problemelor de programare liniarat . %.-1.1.3. Teorema fundamental& a programari liniare ¥X 1.2. ~“Teoremele algoritmului simplex i 1.2.1. Determinarea unei baze primal admi bile . 1.2.2. Formule pentru schimbarea bazei si Sresnieates Calculelor....... 266.6 cece cece cece cece eee ee eens ene ee 27° 1.3.) Adaptarea algoritmului simplex la probleme cu variabile marginite .. . 33 * 1.4.(Dualitate in programarea liniar& ..... 426 1.4.1. Reguli de asociere a problemelor duale 44 1.4.2. Teoreme de dualitate we 1.5.TAlgoritmul simplex dual... 2. Metode de descompunere .. _2.1. Introducere. > Principiul de escompunere antzig- 2.2.1. Rezultate preliminare ........ 2.2.2. Principiul de descompunere 2.2.3. Exemplu de aplicare a principiului descompunere 2.3. Metode de partitionare gi relaxare ... 2.3.1. Principiul de relaxare . 2.3.2. Algoritmul lui Ritter 2.3.3. Algoritmul lui Rosen .. : i 2.3.4. Exemplu de aplicare a algoritmului lui Rosen ee 95 3. Metode cu siruri recurente . 3.1. Introducere 3.2. Algoritmul elipsoidal -- 101 3.2.1. Probleme liniare echivalente . 3.2.2. Transformari afine si elipsoizi 3.2.3. Algoritmul elipsoidal 3.3. Algoritmul proiectiv:...... 3.3.1. Problema in forma standard Karmarkar . 3.3.2. Minimizarea pe sfer& 3.3.3. Evaluari de regularitate a domeniului de -. 122 admisibilitate ............ - 123 3.3.4. Transformiari proiective .. 129 3.3.5. O functie potential aproape invariant& 132 3.3.6. Algoritmul lui Karmarkar............. 134 3.3.7. Conversia la forma standard Karmarkar . 144 3.4, Algoritmul afin................. 146 3.4.1. Prezentarea algoritmului . 3.4.2. Teorema de convergenta . 3.5. Traiectorii continue Capitolul 1 Programare liniara 1.1. Notatii si proprietati ale sistemelor liniare Vom nota cu A € R™** © matrice cu m linii si n coloane: a1 Ae An An G22 a2n A= ee z = (aij)isigm fe : : 1kj Vin ie 1.1 Notafii si proprietati ale sistemelor liniare 3 Determinantul det M este un ”minor de ordin k” al matricei A. O matrice A € R™ are ”rangul r”, si scriem rang (A) = 1, dac&’ A are un minor nenul de ordin r, iar toti minorii lui A de ordin mai mare decat r (daca existi) sunt nuli. Evident, rang (A) < min {m,n}. Un vector v € R® este considerat ca fiind o matrice v € R®*!, adic4, avand n linii si o coloand. Din aceast& cauz& spunem c& v € R” este un vector coloand, iar in reprezentarea sa pe componente vom omite scrierea indicelui de coloana: Y v= | | =r e0)” Un In mod similar, vectorul transpus v™ € R!**, se va numi vector linie. Produsul scalar a doi vectori z € R® si y € R” este: n a-y= > ayayl-s i=1 Pe multimea vectorilor de aceeasi dimensiune vom defini urma- toarele relatii: dac& x € R® si y € R", atunci c= y = x= y; pentruoricei=1,7; oS y = 2 < y; pentruoricei=I,n. ( Notatia 1 =,n este echivalenté cu i € {1,2,...,n}. ) In particular, z > 0 inseamna z; > 0 pentru orice i = I,n, iar ”0” este vectorul cu toate componentele zero (vectorul nul), de aceeasi dimensiune ca x. Fiind data o matrice A € R™*” si un vector 6 € R™, putem con- sidera urm&torul sistem de ecuatii liniare: A-c=b (1.1.1) unde variabila vectorial’ « € R® are drept componente necunoscutele 2;,1=T,7, ale sistemului. Vom nota: Ai = (a,4i2,-*-,@in) linia ”i” a matricei A; Ai = (01j,.425)°* 5 mj)” wan coloana ”j” a matricei A. 4 Capitolul 1: Programare liniar& Astfel, sistemul de ecuatii (1.1.1) poate fi rescris in urm&toarcle forme echivalente: Ajy-c=b, t=1,m > Ala; =. jal Sistemul de ecuatii (1.1.1) are solutii dac& si numai dac& rang (A) = sau rang (4 : ») (teorema Kronecker-Capelli). Fie rang (A) = rang (42 =r. Vom numi ecuatii principale, respectiv variabile principale, acelea ale c&ror coeficienti intr& in compunerea unui minor de ordin r nenul; celelalte vor fi numite ecuatii secundare, respectiv variabile secundare. Deoarece orice vector « € R”, care satisface sistemul de ccuatii format din ecuatiile principale, satisface si ccuatiile secundare, acestca din urmé pot fi omise fara a influenta natura sistemului initial. Din aceastd cauzd, in cele ce urmeaz&, vom considera c& ecuatiile secundare sunt eliminate din sistemul (1.1.1) si deci avem rang(A)=m0 { to (1.1.4) unde A € R™*” iar b € R™. Lema 1.1 (Farkas-Minkowski) Dintre sistemele (1.1.3) gi (1.1.4), doar unul, $i numai unul poate avea solutit. Demonstratie. Vom demonstra mai intai c&% cele dou& sisteme nu pot avea simultan solutii. Dac’ presupunem prin absurd c& sistemul (1.1.3) are solutia zo € R® iar sistemul (1.1.4) are solutia uo € R”, atunci avem Zp > O si A™ - up > O. De aici rezulta ug b= ug -A-29 20 ceea ce contrazice relatia a doua a sistemului (1.1.4). Prin urmare, dac& sistemul (1.1.3) are o solutie, atunci sistemul (1.1.4) nu poate avea solutie. Raméne s& ardt&m ci, dacd sistemul (1.1.3) nu are solutie, atunci sistemul (1.1.4) are o solutie. Dou& cazuri sunt posibile. Cazul 1. Sistemul de ecuatii A. z = 6 este incompatibil. Asta inseamnd cd, dac&’ rang(A) = r, atunci rang (42) =r+l1. 8&3 consider&m sistemul de ecuatii A'-u =0 bv -u = unde constanta c < 0. Se constat& cu usurint& c&% acest sistem este compatibil: oe = rang ( ) =r +1 = rang ( i: :) 1.1 Notatii si proprietati ale sistemelor liniare i. si prin urmare, solutia acestuia este o solutie pentru (1.1.4). Cazul 2. Sistemul de ecuatii A- x = 6 este compatibil, dar nu admite o solutie z > 0. Pentru a construi o solutie a sistemului (1.1.4), vom folosi un rajionament prin inductie, dup&% numarul coloanelor lui A=(A}, A?,..., A”). Dac& matricea este format& dintr-o singur& coloan’. A!, atunci, in aceasti situatie trebuie ca b # 0 gi existé x, < 0 astfel incat Alz, = b. Se verific&% cu ugurint& c& vectorul u = —b este o solutie a lui (1.1.4): Tat = (-8)". (40) = yor u™- Al = (-6) (3) = el? > 0 (0)" b= —|[B? < 0. Fie k > 1 si presupunem ci, dac& sistemul utd k A‘z; = b mu admite solutie 2; > 0, i= 1,k, (1.1.5) i= atunci exist& un vector up € R™, astfel incat ig ALS Og Sink: uy-b < 0. Pentru cazul cnd A are k + 1 coloane, dac& ug - A*+? > 0, atunci vectorul up este o solutie a lui (1.1.4) si problema este rezolvat’. Vom presupune deci ug AM <0 si vom construi un vector % care s& verifice sisternul (1.1.4). Definim urm&torii vectori: Kos A+NAM! unde = -A 59 = TR, (116 = +24 unde w= or ger 20 t= Lk (116) Be ale b = b+ AAM unde Ayo = 0? g, (1.1.7) ug ART flere c gassuisei Sistemul }> A*y; = 6 nu admite solutie y; > 0, i = 1,k. Prin absurd, t=1 daca ar exista o solutie §; > 0, i = 1,k, atunci, din (1.1.6) gi (1.1.7) 8 Capitolul 1: Programare liniar’. putem scrie: M4 (Ai + AA) § = b+ ApAM? 1 . k Vo 4iat+ (= i=l sau, Fi — ») eo i=) Deoarece pentru orice i = 1,k avem 4; > 0 gi Ao < O, rezulta k Aw — Ao > 0, adic& sistemul (1.1.3) ar admite o solutie 1 i= nenegativa, contrar ipotezei noastre de la care am plecat. Prin urmare, folosind ipoteza de inductie (1.1.5) pentru sistemul definit de vectorii A* si b, rezult’ c& exist’ un vector & € R™, care verifica relatiile: , i=Lk, (1.1.8) (1.1.9) Din (1.1.8), pentru fiecare i = 1,k, folosind (1.1.6), avem: O0,i=LF. fn plus, avem: Bee at. Ate at. Ae ) AR = 9, “uy Ai” Folosind (1.1.9) si (1.1.7), obtinem: aT. Akt T -T a eee Ane ce tb= (2- 5-4av") “b= 1.1 Notatii si propriet&ti ale sistemelor liniare 9 = a". (: ae) =i" .b<0. “ug ABA Prin urmare, a este o solutie a sistemului (1.1.4) cand A arek+1 coloane gi lema este demonstrata. . Observatia 1.1 Sistemele (1.1.3) si (1.1.4) pot fi considerate sisteme duale in sens Farkas-Minkowski. Lema Farkas-Minkowski se poate aplica gi la alte perechi de sisteme liniare. Spre exemplu, dac& considera&m sistemul fee 220 (1.1.11) acesta este echivalent cu A-r+ly=b 220,y20 iar acestuia din urma, avand matricea (A:1), ii corespunde urm&torul sistem dual in sens Farkas-Minkowski: A’-u>0 u>0 (1.1.12) bv -u<0 “Teorema 1.2 Fie S € R™" 0 matrice antisimetrica ($ =-S"). 1 “£> 5 \ Sistemal { 7 ea are o solutie > 0 cu proprietatea: S-2+Z > 0. Demonstratie. Luam o valoare arbitrar& fixat& a indicelui i, 1 o 10 Capitolul 1: Programare liniar& Dac’ not&am cu S; linia ”2” a matricei S, atunci avem: S;-2' > 1 > 0, si deoarece componenta ”i” a solutiei z* este zi > 0, avem S;-a' +21 >0. Cazul 2. Sistemul (1.1.12) are o solutie 2*. In acest caz, vom avea: de unde deducem: S;-x* > 0 si 2} > 0, deci si in acest caz vom avea: S;-a'+2,>0. tn concluzie, pentru orice i fixat, exist% o solutie z‘ > 0 astfel incat S;-c' +c} > 0. Dac& ludm acum @ = S77, 2’, avem evident £ > 0 si S-E+2>0. a 1.1.2. Forme ale problemelor de programare liniara Problemele de programare liniar& se pot descrie in diferite forme, in functie de conditiile si scopul in care sunt folosite. Astfel, dac& ele sunt in faza de modelare matematic& a unor probleme reale, atat vari- abilele c&t gi restrictiile vor fi exprimate intr-o forma c4t mai apropi- at& de descrierea fenomenului real. Pentru elaborarea unor metode de rezolvare si a studiului teoretic, problemele de programare liniar& se prezint& intr-o form’ mai simplificat’, in care datele problemei, restrictiile si variabilele isi pierd semnificatia initial’, fiind elemente abstracte, care ins mogtenesc structura fenomenului real de la care s-a plecat. fn cele ce urmeaz’, vom prezenta cele mai importante forme ”matematice” ale acestor probleme. Trebuie subliniat faptul ci, o problem% de optimizare const& din minimizarea sau macximizarea unei anumite functii - numit& functie obiectiv - fn prezenta unor restrictii care trebuie satisficute. Deoarece inf {f (x) | € P} = —max{-f (z) |ze P}, 1.1 Notatii si propriet&gi ale sistemelor liniare ll este suficient s& studiem doar un singur tip de problema, care in cazul nostru va fi cea de minimizare. Cu ajutorul relatiei de mai sus, toate rezultatele care se obtin, se pot transpune cu usurint& si pentru problemele de maximizare. Fieae€R" si BER. Definitia 1.1 Vom spune cé o restrictie este concordanté in raport cu o problema de minimizare, daca ea este de forma a’ -z > B, gi neconcordanté dact a’ - x < fp. Vom spune cé o restrictie este concordantd in raport cu o problema de mazimizare, dacd ea este de forma a’ - x < 8, gi neconcordanté dacdé a2 > B. * Forma generala. O problema de programare liniar& in form’ general& contine toate tipurile de restrictii si variabile care pot apare in descricrea ci. Ea se enunta. astfel: inf {cf «a1 +c) «22+ >a} in raport cu Ay +21 + Ajo 22 + Aig 23 2 Ay > £1 + Ago - 22 + Agg - £3 = bz Ag © + Age - £2 + Aga - 3 < b3 1,20 z3 50 unde datele problemei sunt matricele A;; € R™*") si vectorii b; € R™, oj ER, 1 S153, 155 <3. Necunoscutele problemei sunt grupate in trei variabile vectoriale a; € R%,1 0} unde datele problemei sunt A € R™*, b € R™, c € R®. Observam c& in acest caz, toate restrictiile sunt de tip egalitate si toate componen- tele necunoscutei x sunt supuse conditiei de nenegativitate. Forma canonica. Forma canonic& a unei probleme de programare liniar& contine doar restrictii concordante gi variabile nenegative: inf {c' -c|A-x>b, z>0} iar datele problemei sunt A € R™*”, b € R™, c € R”. Forma mixta. O problema de programare liniar& in form& mixt& contine restrictii concordante gi de tip egalitate, iar variabilele sunt supuse conditiei de nenegativitate. inf { clog Daca o problema de programare liniar& este prezentat& intr-o anu- mit& forma, ea poate fi transformat& cu usurinta in oricare alt& form’ dorit&, folosind urmatoarele transformari echivalente: - Sensul unei inegalitati se schimbé’ prin inmultire cu —1. — Transformarea unei inegalit&ti intr-o ecuatie: o inegalitate de forma a’ - 2 < f este echivalent& cu ecuatia aT -2 +y = B si y > 0, unde variabila y se numeste variabild ecart (sau vari- abil& de compensare); inegalitatea a’ -z > f este echivalent& cu a’-c-y=Bsiy>0. - Transformarca unei ecuatii in inegalitati: o ecuatie aT -2 = 8 este echivalent& cu perechea de inegalitatia™-« < Bsia’-2 > fp. Ag+ % = bg Are 2 by z>o} 1.1 Notafii si propriet&{i ale sistemelor liniare 13 — O variabil& supus& conditiei « < 0 se transforma intr-o variabil’ nenegativ’ prin substitutia 2’ = —a. - O variabil& z care nu este supus& unor conditii de semn (oare- care), se transforma intr-o pereche de variabile nenegative z* > 0 gic” > 0, prin substitutia: c =at-— 27. Din cele de mai sus rezult& c& atat studiul teoretic cat si metodele de rezolvare pot fi abordate utilizind oricare dintre formele proble- melor de programare liniar& mentionate. Deoarece in tcoria sistemelor de ecuatii liniare dispunem de metode de rezolvare, vom folosi cu precadere forma standard a problemcelor de programare liniar& pentru a elaborara algoritmi. fn schimb, la studiul proprict&tilor de dualitate se va dovedi mai adecvate problemele in forma canonica&. 1.1.3. Teorema fundamental a programéari liniare Consider&im problema de programare liniar& in forma standard: inf {c'-c|A-2=6, c>0} (P) Vectorul v € R® se va numi solutie admisibil& a problemei (P), daci A-v=bsiv>0. O solutic admisibila v € R® este o solutie optima a problemei (P), daca oricare ar fi solutia admisibila y, avem: c™-0 0,i=1,k. Daca k = 0, atunci v = 0 gi evident aceasta este o solutie de baza. Fie deci k > 1. Dac& {A}, A?, oo At} sunt coloane liniar independente, atunci din nou v este o solutie de baz& si afirmatia este demonstrata. Daca {A?, A?,..., AY sunt coloane liniar dependente, atunci exist& ae k numerele y; € R, i = 1,k, nu toate nule, deci }> |y:| > 0, astfel incét i=l Le > A‘y, = 0. Vom considera vectorul y € R” format din primele k isl componente cu numerele y; si zero in rest: y = (yi, Yo, «+s Yes 0, «5 0)". Prin urmare, putem scrie: y#0, si A-y=0. (1.1.18) Pentru € R, definim vectorul (A) = v + Ay. Deoarece avem evident A-a(A)=A-(u+dy) =A-utrAA- y= A-v=), rezult4 c& x (A) este o solutie a sistemului A-z = 6 pentru orice A € R. Vom determina in continuare valorile lui \ pentru care s& fie in- deplinit& gi conditia x (A) > 0. Deoarece x; (A) = 0 pentrui =k +1,n, trebuie ca a(x) =4,+Ay,>0, pentru i=1,k. De aici rezulta —U; A > — das’ y>0, vi A < = dack y, <0. vi Prin urmare, dac& definim 7 max {= ly> o} dac& exist’ y; > 0, 00 dac& nu existé y; > 0, 1.1 Notatii si proprietiigi ale sistemelor liniare 15 ey ‘ TM min, { an lu< o} daca exist’ y; <0, =00 dac& nu exist’ y; <0, atunci, pentru A € [)’, \”] avem x(A) > 0, gi x (A) este solutie admi- sibild pentru problema (P)(Deoarece numerele y;, i = 1k, ou sunt toate nule, rezulta c& cel putin una din valorile lui 4’ sau ” este finita. Fie Ao una din valorile finite ale lui ’ sav ”. Atunci, exista un indice ip, 1 < ip < k, astfel incat v;, + Ayi, = 0. De aici rezulta c3. vectorul x (Ao) este o solutie admisibil& a problemei (P) gi are cel mult k—1 componente nenule. fn aceasta situatie, dact coloanele cores- punzdtoare sunt liniar independente, problema este rezolvata. in caz contrar, se reia rationamentul cu cele k — 1 coloane liniar dependente. Astfel, intr-un numar finit de pagi vom ajunge fie la situatia k = 0, sau vom obtine o solutie admisibila de baz) (b) Fie 0 € R® o solutie optima a problemei (P). La fel ca la punctul (a), putem considera c&% primele k componente ale lui 0 sunt neneule. Daca k = 0, atunci # = 0 este o solutie optima’ de baz’. Vom considera deci k > 1. Daca {A?, A?, ..., A*} sunt coloane liniar independente, atunci evi- dent 0 este o solutie optima de baz& gi afirmatia este demonstrata. Daca. {A}, A?,...,A*} sunt coloane liniar dependente, atunci, rationand ca la punctul (a), exist’ un vector y € R” neneul, astfel incat relatia (1.1.13) s& fie indeplinit& iar vectorul (A) = 0 + Ay s& fie o solutie admisibil& a problemei (P), pentru orice A € [)’, A"). Deoarece @ este o solutie optim’, avem cl -O0 pentru orice A€[X’,A"]. (1.1.14) Din definitia lui X’ gi X” rezults 1’ < 0 gi A” > 0. Din aceasta cauz, nu putem avea c’ - y # 0, deoarece, in caz contrar, alegand pe de semn contrar lui c™ - y, am obtine Ac" - y < 0, ceea ce este in contradictie cu relatia (1.1.14). Prin urmare, c’ - y = 0 gi deci, 16 Capitolul 1: Programare liniar& pentru orice \ € [)’,”], vectorul x (A) este o solutie optima. Ca gi in demonstatia punctului (a), dand lui Ap una din valorile finite ale lui X’ sau A”, vectorul x (Ag) este o solutie optim’ cu cel mult k — 1 componente nenule. Dac& x(q) nu este o solutie optim’ de baza, atunci, reluand rationamentul, intr-un num4&r finit de pasi vom obtine o solutie optima de baza. / in general, multimea solutiilor admisibile a problemei (P) este in- finit&, spre deosebire de cea a solutiilor admisibile de bazi, care are cel mult C™ elemente. Importanta teoremei fundamentale a programarii liniare const& in aceea c&, pentru determinarea unei solutii optime, daca ca exist’, chutarea este redus& de la o multime infinit’, la una finita, fiind suficient’ investigarea doar a solutiilor de baza. 1.2. Teoremele algoritmului simplex Rezolvarea problemelor de programare liniar& a fost dominata timp de decenii (1950-1985) de algoritmul simplex. Aceast’ metod& a fost elaborat’ de G.B. Dantzig in jurul anului 1950 si a cunoscut de-a lungul timpului o serie de imbun&t&tiri, mai ales in ceea ce priveste implementarea ei pentru rezolvarea eficient&’ a problemelor de dimen- siuni din ce in ce mai mari. in osenta sa, algoritmul simplex exploreaz& in mod sistematic mul- timea solutiilor admisibile de baza& in aga fel incAt, prin trecerea de la o solutie la alta, valoarea corespunzatoare a functiei obiectiv s& fie cel putin la fel de bun& ca cea precedents. S& consideram problema de programare liniar& inf {c'-c| A-2=b, > 0} (P) unde A € R™*", 6 € R™ sic € R”. Fard a restrange generalitatea, vom presupune rang (A) = m < n. Fie B = (A‘A®...A%) o matrice de baza& si in raport cu ea, partitionim matricea A = G 7 R). Folosind notatiile introduse la pagina 5, sistemul de ecuatii A -z = 6 se poate rescrie astfel: tg =B--b-B™.R-ap 1.2 Teoremele algoritmului simplex 17 Dac& introducem notatiile: E=B.b si Yi=B- A, 10. Definitia 1.2 Matricea de bazé B se numeste primal admisibild, dacé B-!-b> 0. Folosind relatia (1.2.1), functia obiectiv z = c™ -z se poate exprima astfel: Zz = Ch-tet ce TR=Cy- (:-y¥s) +cp-tR= JER = §-2-(G-¥!- a); JER Dac& introducem notatiile 2 = cg -Z siz; = cg-Y7,1 0, iar functia obiectiv se poate exprima conform relatiei (1.2.2), aver: z=cl-u=z-) (y-G)y>z GER . Teorema 1.5 (de optim infinit) Fie B o bazé primal admisibild. Daca existi k € R astfel incét z, — cy > 0 i Y* = B-!- A* < 0, atunci problema (P) are optimul infinit. tp (A) Demonstratie. Fie € R, \ > 0. Definim vectorul z (A) = ( rd) in felul urmator: ag(A) = £-AY* zp(d) = delet) unde ¢'*() € R°-"" este un vector unitar, avand 1 pe pozitia loc(k) a indicelui k din R. Deoarece baza B este primal admisibil’, \ > 0 si Y* < 0, rezulta evident « (A) > 0. Pe de alt& parte, avem: A-z(A) = B-ag(A)+R-ar(A)= = b-)AK+)AR = 0. Prin urmare, pentru orice 4 > 0, vectorul z (A) este o solutie admisi- bil&. ; 1.2 Teoremele algoritmului simplex 19 Valoarea corespunzatoare a functiei obiectiv este: eT 2(\) = cg-ap(A) tcp er (A) = = cp: (E—AY*) + Ace = Z—A(ze — Cu) Deoarece z, — cy > 0, rezulta: jim ce’ «2(d) = 00. . face : Observatia 1.3 fn conditiile Teoremei de optim infinit, vectorul v € R®, definit prin ug = —Y*, up = e'\), este o solutie nenuld a sis- temului omogen {A- z= 0, z > 0}. El defineste o directie (razt) de-a ‘lungul cdreia solutiile admisibile x (A) sunt nemdrginite. Deoarece el reprezintdé o muchie a domeniului de admisibilitate, vectorul v se mai numeste razdé extrema. « Lema 1.6 (Lema substitutiei) Fie B = (A A?---A™) € R™™ 0 matrice patraticd nesingulard si vectorul AF € R™, cu indicele k € {81, $0, ..., 8m} % B. Consideram matricea B= (A# ve ASHLAR ASH... Atm), obfinutad din B prin inlocuirea lui A cu A*. Notém vectorul Y¥* = BAP = (yy, ors -- aoriee Au loc urmétoarele afirmatii: (a) Conditia necesaré gi suficientd pentru ca matricea B sa fie nesin- gulard este ca elementul y-4 # 0, unde r = loc(s,) . (b) Pentru yrr #0, dacd notdm vectorul = Com meat 1 wtetia,,=tes)" Urk Yrke — Urk Uk Urk $i matricea pdtraticé E,(n) = (e'---e"1 n e+!..-e™), unde e € R™ este vectorul unitar cu 1 tn ial j, atunci B= E,(n)- Bo (1.2.4) Demonstratie. Deoarece Y* = B-1A*, rezult’ m A= BOY* =)" Atyse (1.2.5) j= 20 Capitolul 1: Programare liniar& v Pentru a demonstra necesitatea, fie B nesingular’ si presupunem prin absurd c& yr, = 0. In acest caz ins%, din (1.2.5) regulta c& coloanele lui B sunt liniar dependente, ceea ce contrazice faptul c& B este nesingulara. Deci, trebuie s& avem yh, #0) CPentru a demonstra suficienta, fie y,, 4 0 si presupuncm prin ab- surd cé B este singulara, adic& are coloanele liniar dependente. Prin ee m urmare, exist& coeficientii Aj, 7 = 1,m, nu toti nuli { D> |A,;| >0 ja astfel incat: m So Av; + APA, = 0. a=, ifr Observim ca in aceasta relatie trebuie s& avem A, # 0, deoarece, in caz contrar, obtinem o combinatie liniar&’ de coloane ale matricei B ca fiind egal& cu zero, ceea ce contrazice nesingularitatea lui B. {nlocuind pe A* din (1.2.5), obtinem: m So AS (A + Yjede) + A’ yr dr = 0, (1.2.6) j=), j#r adic& o combinatie liniar& de coloane ale matricei B, care este egala cu zero gi deci toti coeficientii trebuie s& fie nuli. Din ipotez&, y,. 4 0, iar A, # 0, din observatia facut’ mai inainte. Rezult& y,,.A, 4 0 gi astfel relatia (1.2.6) contrazice nesingularitatea lui B. Prin urmare, B trebuie s& fie nesingulara. Pentru a stabili cea de a doua afirmatie a lemei, s& observim c& pentru j #7, coloanele ”j” ale lui B coincid cu cele ale lui B. Deci, AS =B-e, pentruj ¥r. Deoarece yrx # 0, din (1.2.5) obtinem: 1 . Av = an(= at) + +AK— = Bon a > Urk Urk Prin urmare, putem scrie: B=B-E,(n) 1.2 Teoremele algoritmului simplex 21 Deoarece B si B sunt nesingulare, ele sunt inversabile si, inmultind la sténga cu B~! gi la dreapta cu B-!, rezult& relatia (1.2.4). . Observatia 1.4 Lema substitutiei este un rezultat al algebrei liniare, independent de conteztul problemelor de optimizare pe care-l studiem, avénd importanté atét teoreticd, cdt mai ales practicd, datorité for- mulei (1.2.4). Prezentarea lemei cu notatiile folosite aici are drept scop aplicarea ei in mod direct la justificarea rezultatelor pe care le vom prezenta in continuare. e Teorema 1.7 (de schimbare a bazei) Fie B o bazd primal admi- sibila. Presupunem cd existd k € R astfel tncat z,— cz > 0 $i vectorul Y* = B-!. A* are cel putin un element pozitiv. Daca alegem indicele 8, € B, cu loc(s,) =r, astfel incat Zr a Zi a ae ioe { Vie Vir > of : (1.2.7) atunci, matricea B, obtinutd din B prin tnlocuirea lui A® cu A*, este o matrice de bazt primal admisibild, pentru care avem: z=cg: Bb 0. Din Lema substitutiei rezulta ci B este o matrice nesingular’. Pentru a vedea c& ea este o matrice de baz& primal admisibila, trebuie s& verificim ca Bo .6>0. Aplicand formula (1.2.4), avem: Bo.b=E,(n)- Bo'-b=E,(n)-2= Yar yg lees eteceeenaie if a, — a, Ink: uy Yrk ye ee E Urk : Urk (1.2.8) unde pentru i # r obtinem elementul generic 2; — ae iar pen- Ink tru i =r avem elementul cai Baza B fiind primal admisibil’, avem Urk 22 Capitolul 1: Programare liniar&. ee ee . f, i &,; > 0, pentru orice i = I,m, si deci — > 0. Dacd yy, < 0, atunci rk evident 2; — vin > 0. Dac& yi, > 0, din (1.2.7) avem pias < eas si Urk Urk Yik a,— Bis, = we (2 - =) 20. k Yik — Urk in concluzie, B-' - b > 0, adic& B este baz primal admisibila. in continuare, tinand seama c& pentru k € B avem loc(k) = 1, obtinem: deci, cE: Bo .b=cq- 7 Bo .b=c,-E,(n)- == : ae =e Urk 1Cky')* : == 1 -0- Ure Tosi Yik | Ck ty Cayty Dg ee | ( i y Yrk Urk } = Des, 8i—- (= CaiYik — a) 2 = + 05,8, — 05,5, 2% = Urk ifr rk m a poe = Be (E Cai Yik — a) — = 2 (tm —) = 0. . en [rk Observatia 1.5 Precizdém faptul ca, in urma unei schimbdri de bazd, avem: B = B\ {s,} U {k} gi loc(k) =r. Teoremele prezentate mai sus justificd urm&toarea metod& de re- zolvare a problemelor de programare liniar%, metod& cunoscut& sub denumirea de ”algoritmul simplex primal”, sau pe scurt, ”algoritmul simplex”. : a 1.2. Teoremele algoritmului simplex 23 Algoritmul simplex primal. e Pasul 0. Se determin’ (dac& exist’) o baz% primal admisibila B. Se calculeaz& Bo). Pasul 1. Se calculeaz’: = Bo!.b, 2 = cg. Y = Bo!- A, z -cl=cp-¥-cl. Pasul 2. (testul de optimalitate) Dac&i z™ — c™ < 0, atunci Z este valoarea optima, iar rg = Z gi rp = 0 este solutia de baz&d optima. STOP. i Pasul 3. (testul de optim infinit) Daci exist’ k € R pentru care 2 — Cy > O si Y* < 0, atunci problema are optim infinit. STOP. Pasul 4. (schimbarea bazei) Se alege k € R cu % — cy > 0 gi se determina s, € B, cu loc(s,) =r, astfel incat: f, . E, — = min {# ww >a}. Yrk = IS#Sm | Yak Se formeaz& matricea B, care se obtine din B prin inlocuirea, coloanei A’ cu A‘, se calculeaz’ B-} cu formula (1.2.4), si cu aceasta invers& a noii matrice de baza se revine la Pasul 1. 1.2.1. Determinarea unei baze primal admisibile in prezentarea algoritmului simplex, ”Pasul 0” last deschis% pro- blema determinarii unei baze primal admisibile. Ga&sirea unei astfel de baze se poate face in mai multe moduri. Una dintre metodele cele mai naturale const& in asocierea unei ”probleme artificiale”, in aga. fel incAt, folosind algoritmul simplex pentru rezolvarea acestcia, s& obtinem fie o baz& primal admisibil& pentru (P), fie raspunsul c& problema (P) nu admite solutie, adic&, nu exist’ nici o baz& primal ad- misibil& pentru ea. Acest& metod& este numit’ *metoda celor doud faze”, deoarece, in prima faz& se rezolva problema artificiala, iar in cazul c& s-a obtinut o baz& primal admisibilé pentru (P), in cea de-a doua faz& se rezolv& problema initial& (P). S& consider’m din nou problema: inf {c’-2|A-c=6, c>0} (P) 24 Capitolul 1: Programare linjart in care, rangul matricei A nu mai este specificat si presupunem 6 > 0. Acest lucru nu restrange generalitatea, deoarece, dac& exist& o com- ponenta b; < 0, restrictia respectiva’ se poate inmulti cu —1. Acestei probleme fi asociem problema artificiala: min {e’-2*| A-r+In-2* =, 2>0, 2° > 0} (Pa) unde vectorul e € R™ are toate componentele egale cu 1, iar In este matricea unitate de ordinul m. Componentele variabilei ” artificiale” z* € R*™ le vom nota in continuarea celor lui zx, adici, 29 = (Ing, Tn42) Ata Problema artificial’ asociat& lui (P) are cAteva propriet&ti impor- tante. fn primul rand, matricea restrictiilor problemei (Pa) este (4:tm) ER™(4™) oi astfel, rang (In) =m 0. in fine, cerinja z* >"0 mm implica e -2* = } > 2n4i > 0, adic&’, problema (P,) va avea intot- dex i=l deauna un minim nencgativ. Prin urmare, pentru rezolvarea problemei (Pa), se poate aplica algo- ritmul simplex, ludnd ca baz& primal admisibild initial’ matricea In. Fie B baza optim& care se obtine la rezolvarea problemei (Pa), B multimea corespunza&toare a indicilor de baz& si vom nota cu 2, valoarea optim% (minim) a problemei (P.). Avem evident z, > 0. Propozitia 1.8 Dacd z, > 0, atunci problema initiald (P) nu are solutie. Demonstratie. Presupunem prin absurd c& (P) ar avea o solutie ad- misibil’. Atunci, in baza Teoremei fundamentale a programéarii liniare, (P) are si 0 solutie admisibila de baz&. Fie B, matricea de baz& cores- punzdtoare. Aceasta este constituit’ doar din coloane ale matricei A si evident Bz}. b > 0. Astfel, B, este o baz primal admisibila si 1.2 Teoremele algoritmului simplex 25 pentru (P,), iar solutia de baz& corespunz&toare va contine printre varibilele secundare toate componentele lui z*. Prin urmare, z* = 0, ceea ce contrazice faptul c& valoarea optim’ a lui (P,) este z. >0. = Propozitia 1.9 Dacé BN {n+1,..,.n+m} = 0, atunci z = 0 si B este o bazd primal admisibilé pentru problema initialé (P). Demonstratie. Deoarece BN {n+1,....n+m} = 0, in solutia de baz& optim’ toate componentele lui z* sunt componente secundarc, deci au valoarea egal& cu zero si evident z, = 0.-Pe de alt& parte, toate coloanele matricei de baz& B sunt formate din coloane ale lui A, gi deoarece in (Pa) avem B~!-b > 0, matricea B este o matrice de baz& primal admisibila si pentru problema (P). . Propozitia 1.10 Dacd z, = 0 gi existd n+ ip € B pentru care Yio = 0, Vj = 1,7, unde (vis)igigm = Bol. A giig = loc(n +i), 0. In cazul acesta, problema initiala (P) nu are solutie. 2. Problema (P,) are optimul z, = 0 si BN {n+1,...,n+m} =, adic&, toate variabilele artificiale au fost eliminate din baz’. In 1.2 Teoremele algoritmului simplex 27 acest caz, baza optima B a problemei (Pa) este primal admisibila pentru problema initiala (P). 3. Problema (P,) are optimul z, = 0 si BN {n+1,....n+m} ¥ 0, adic&, in baza optima sunt inc’ prezente variabile artificiale. Aces- tea pot fi climinate, conform Propozitiior 1.10 si 1.11, astfel incat, noua baz& rezultat& s& contind doar coloane ale matricei A si ast- fel, ea este primal admisibil’ pentru problema (P). 1.2.2. Formule pentru schimbarea bazei si organizarea calculelor Fiecare iteratie a algoritmului simplex este caracterizata de inversa B~! a unei baze primal admisibile. Cu ajutorul acesteia sunt calculate toate celelalte elemente necesare pentru efectuarea pasilor algoritmu- lui. Aceste elemente sunt urm&toarcle: z=B.b ul=cg- Bo}; Z=ch-E=cy- Bo -b=ul +b . aa (1.2.9) Y=B?-A; z-cl=cp-Y-cl=u'-A-c™ 2 Componentele vectorului_u se mai nui ” multiplicatori simplex” , deoarece, cu ajutorul lor se poate e cal valoarea functiei obiec- ~ tiv, corespunzatoare solutiei de baz& curente, c&t si componentele lui z—c, care, la réndul lor, se mai numesc si ” costuri reduse”. Aceasta denumire din urma provine din faptul cai c& unii autori folosesc vectorul c—z in elaborarea algoritmului simplex. Dac& testul de optimalitate, sau de optim infinit, nu este indeplinit, atunci, conform teoremei de schimbare a bazei, putem g&si o noud baz& primal admisibils B cu inversa c&reia se calculeaz’ din nou elementele de mai sus. Trecerea de la B~! la B~! se poate face cu ajutorul Lemei substitutiei: cunoscénd indicele k pentru coloana A* care intra in baz&, indicele r = loc(s,) pentru coloana A* care iese din baz4 si vectorul Y* = Bo}. A*, se formeaz&% matricea E, (7) si atunci putem folosi relatia (1.2.4). 28 Capitolul 1: Programare liniar& lsigm , atunci din m By) Dac’ notim Bo! = (8, (1.2.4) obtinem: Be pentrui=l1,m,i#r, j=1,m; Urk (1.2.10) Bi peerage De asemenca, folosind rclatia (1.2.4), putem deduce nigte formule care permit calcularea noilor valori ale elementelor din (1.2.9), cores- punzd&toare lui B, direct din cele vechi, corespunz&toare lui B. Avem: 1 ave a i,-—t, Urk 3; rk 1 : z, 0 ry a 5 Urk adic& Ei- ves pentrui #r; oe (1.2.11) z= un unde r = loc(k) pentru k € B. ke Vectorul multiplicatorilor simplex u, se calculeaz& astfel: @ seh BO = (+, 05,5¢¢° Ce) Ee (m) BO unde loc(s;) =1, 1 (4-4) - Ba Sls, L 0, pentru care yx <0, Vi =1,m, atunci poblema are optim infinit. Daca existé z, — cy > 0, pentru care avem cel putin un element Yik > 0, atunci alegem indicele r conform relatiei (1.2.7). Elementul Yrk % 0, se numeste pivot, iar linia, respectiv coloana corespunzdtoare din tabloul simplex, se va numi ” linia pivotului”, respectiv ” coloana pivotului” . Pivotul y,, joac& un rol important la calcularea elementelor unui tablou simplex nou, care va corespunde bazei primal admisibile B. Vom nota elementele acestui tablou cu tj, i = I,m¥1 si j = 0,7, unde coloana j = 0 corspunde lui Z gi Z. Elementele tabloului simplex corespunz&tor lui B le vom nota cu ¢,;. Analizind formulele de schim- bare a bazei obtinute mai sus, (1.2.11), (1.2.13), (1.2.14) gi (1.2.15), putem enunta urm&toarele reguli pentru calcularea noilor valori ale tabloului simplex, folosind pe cele vechi: 1. Linia pivotului se imparte la pivot: i= 2, vi=Ta. 2. Coloana pivotului devine un vector unitar: te=1 si t=0, Vi=T,m41,i¥¢r. 3. Restul elementelor din tablou, se calculeaz’ dupa ” regula drept- unghiulut” , adic’: 32 Capitolul 1: Programare liniar& Denumirea provine din faptul c&, fiecare element t,; formeaz’ cu pivotul y,, extremitatile unei diagonale a unui dreptungi din tabloul simplex, in timp ce elementele ,; gi tix, se afl’ pe cealalta diagonala. Tabloul simplex revizuit. Formulele de schimbare a bazei permit organizarea calculelor gi in alt mod. Deoarece se constat& cu usurinté c& toate elementele necesare in aplicarea algoritmului simplex sunt calculate cu ajutorul matricei Bo, se poate considera urm&torul tablou: zp\|z@| Bo) unde ultima coloana se completeaz& doar inainte de a efectua o schim- bare de baz&. O iteratie a algoritmului simplex const& din urma&toarele operatii: e Cu ajutorul multiplicatrilor simplex u, se calculeaz& costurile reduse: z; — cj = u'- Ai — c;, pentru j € R. Dact toate aceste valori sunt mai mici sau egale cu zero, atunci baza B este optima. STOP. e Daca testul de optimalitate nu este trecut, se alege un 2, —cx > 0. Se calculeaz’é Y* = B-}-A*. Dact avem Y* < 0, atunci problema are optim infinit. STOP. e incaz contrar, se completeazé ultima coloané a tabloului simplex revizuit cu Y* gi z. — cy. intr-o prezentare mai detaliat&’, dac& not&m elementele matricei B-! = ((,;)1 0, gi oricare ar fij € R avem 2; = 0 sau z; = B;. Observatia 1.8 Pot exista mai multe solutii de bazd extinse care s& fie asociate la aceeagi matrice de bazd B. Dac& xz € R® este o solutie de baz& extins&’ in raport cu B, vom nota: Rt R- {j¢€R| 2; =0} {GE R| 25 =B;} Teorema 1.12 (de optimalitate) Fie € R” o solutie de bazd ex- tinsd tn raport cu B. Dacd pentru orice j € R* avem z;—c; <0 gt pentru orice j € R~ avem z; —c; > 0, atunci x este o solutie optima a probleme (1.3.3). 36 Capitolul 1: Programare liniar& Demonstratie. Fie y € P o solutie admisibilé pentru (1.3.3). Avem: cy = cB b- SO (yj -ey)y. dia YS (oy > JER+ jER- > c™Bb— > (2; — ¢j) Bj = c's. jER- / in continuare vom analiza modul in care se poate schimba o solutie de baz& extins&% care nu indeplineste conditia de optimalitate. fn ra- port cu baza B, solutia general a sistemului A - z = 6 se scrie astfel: tg=2-B.R-ap unde @ = B™! .b, sau, pe componente: Is, = 2, - Sys; pentru i = loc(s;) si s; € B, JER unde matricea Y = (Yi) igigm = = B.A. Fie z € P o solutie de tara extins’ in raport cu B. Prin urmare, componentele secundare z,;, 7 € R, au una din cele doua valori ex- treme impuse variabilei, adicd 2; = 0 sau zj = f;. Dac& testul de optimalitate nu este satisficut, atunci prin modificarea valorii unei anumite variabile secundare z; putem obtine o noua solutie pentru care valoarea functiei obiectiv s&% fie mai mic& sau cel mult egald cu vechea valoare. Evident, modificarea volorii lui 2; se poate face in sens crescator, de la 0 pana la cel mult §;, dac& j € R*, sau in sens descrescitor, de la 6; pan& la cel mai putin 0, dacd j € R~. Pentru a putea considera mereu 2; = 0, indiferent de sensul de variatie pe care il poate avea variabila secundard, vom rescrie expresia solutiei de baz& extinse z € P, in raport cu B, in felul urmator: 2s, = Ei - SS was - Se wy (6 |; — ©) , 8 €B,i=loc(s;) JER GER (1.3.4) Bg, = Ei — ye Yaghy + yet Ygt3, 8 € B, i=loc (si) (1.3.5) JER* JERE 1.3 Adaptarea algoritmului simplex la probleme cu variabile m&rginite 37 unde am notat: a DE HiB;- gER- De asemenea, expresia functiei obiectiv devine: cleg=Z- So 4) aj - oy (zj — ¢j) (B; - 23) = oe fees (1.3.6) =2- SV (a -ej)aj+ So (G5) 2 JER* jER- unde am notat: z=z- > (z5 — ¢) B;- jER- Vom analiza urm&toarele dou’ cazuri posibile de inc&lcare a condi- tiilor de optimalitate. Cazul 1: exist’ k € Rt pentru care z, —c;, > 0. In aceast& situatie avem c™-a = 2Z—(zp — Ck) Lx, iar valoarea functici obiectiv se va micgora cu atét mai mult, cu cat z, primeste o valoare mai mare. Dar evident, x, nu poate depdsi limita sa superioara, adica trebuie s& tinem seama de conditia: TES By (1.3.7) Pe de alt& parte, din (1.3.5) avem: Ls, = Fi —YinTe, $1 € B, i = loc(s;) (1.3.8) gi deci, valoarea maxim& pe care o poate lua x, trebuie s& satisfaca gi conditiile de m&rginire a variabilelor din baz, adic&: OSS: —yate SB, Vi=1m. De aici rezulta: A |g Zk dac& yi >0, dac&t yx <0, 38 Capitolul 1: Programare liniar& prin urmare, : gj Ck < Py mw sain, { eta of (1.3.9) +00 dac& nu exist’ yi, > 0 : Ti Te S Pe a an { Yak a of (1.3.10) +oo dac& nu exist’ yi, < 0 Rezuménd relatiile (1.3.7), (1.3.9) gi (1.3.10), valoarea maxim& pe care o poate lua zy este: a, = min {Bg, Py, Pe} (1.3.11) Schimbarea bazei se va efectua diferentiat, in functie de minimul obtinut in (1.3.11). e Dac&t x, = 6,, atunci baza B va rémane aceeasi, iar Rj, = Ro U {k} si Rt, = Rt\ {k}. Valorile solutiei si a functici obiectiv se vor modifica astfel: nu = £-Y*A,, Fnow = 2 - (2m — Ck) By Dact x, = p, = min {= Vir > of = — atunci din (1.3.8) isism | Yyix rk rezulta c& variabila x, devine zero gi va parasi baza in favoarea lui zy. Prin urmare, Brow = B\ {s,}U {k} si RE, = R*\ {k}U {s,} si toate valorile se recalculeaz& cu formulele obignuite de schimbare a bazei din algoritmul simplex, avand pivotul Yrk- 7 Ps rca ler Dac& r, = py = min Yir <0> = , atunci isism | ix Yrk din (1.3.8) rezult% c& variabila z,, isi atinge marginea supe- rioara @, si va p&rasi baza in favoarea lui cy. Prin urmare, Brow = B\ {8-}U{K} iar Rig, = R~ U{s,} si Rt, = Rt \ {k}. Recalcularea valorilor solutiei si a functiei obiectiv se face in baza Lemei substitutiei. La aplicarea formulelor de schimbare a bazei va trebui inst ca mai intdi s&% inlocuim valoarea %, din tabloul simplex cu 2, — G,, si apoi s& efectuam calculele. 1.3. Adaptarea algoritmului simplex la probleme cu variabile marginite 39 Cazul 2: existi k € R~ pentru care z, — cy < 0. Deoarece in acest caz avem c'-z = Z+(zp — Ck) Te, valoarea functiei obiectiv va descreste dacd a, devine mai mare ca zero. Merit& s& subliniem faptul c&, de asta dat&, variatia in sens cresc&tor a lui 2, reprezint& de fapt descresterea valorii variabilei k de la marginea ei superioar’ (, spre zero, din cauza notafiei (@; — 2;) introdus& in (1.3.4). Evident, trebuie s& avem 6, — z,_ > 0, de unde rezult’ din nou conditia (1.3.7). in cazul de fata, din (1.3.5) deducem: ty = Fit Yate, 5; €B, i= loc(s:) (1.3.12) gi tindnd seama de conditiile de marginire a variabilelor din baza, obtinem: OS Fi +ynte SB, Vi=I,m, de unde rezulta: : —f; RS aa {= | va < of (1.3.13) +oo dacd nu exista yi, < 0 A 5 i a 0 RezumAnd relatiile (1.3.7), (1.3.13) si (1.3.14), valoarea maxima’ pe care o poate lua 2, este: z, = min {Be Yer Ve (1.3.15) Schimbarea bazei se va efectua diferentiat si de ast& data, in functie de minimul obtinut in (1.3.15). e Dac&t 2, = ,, atunci baza B va rdmane aceeasi, iar Rp, = R-\ {k} si Ri, = Rt U {k}. Valorile solutiei si a functiei obiectiv se vor modifica astfel: E+Y*6,, E+ (zu — Ce) By Trou Znou 40 Capitolul 1: Programare liniara —£, sea 7 atunci din © Dact ~% = y% = aia, { Vik < o} = Vik (1.3.12) rezult& c& variabila z,, devine zero si va "parasi baza in favoarea lui Te Prin urmare, Bro, = B\ {s,} U {k} iar Rioy R-\ {k} si Ri, = Rt U {s,}. Recalcularea valorilor solutiai si si a functiei obiectiv se face in baza Lemei substitutiei. La apli- carea formulelor de schimbare a bazei, va trebui ca in tabloul simplex s& inlocuim pe , cu (—2,) inainte de a efectua calculele in raport cu pivotul yx. = min of = & 1sigm Vik a din (1.3.12) regult& c& variabila x,, isi atinge marginea superioards G,, Si va parasi baza in favoarea lui zy. Prin urmare, Brow B\ {s,}U{k} si Rio, = R- U{s-} \ {k}. Recalcularea valorilor solutiei gi a functiei obiectiv se face in baza Lemei substitutiei. Aplicarea formulelor de schimbare a bazei in tabloul simplex va fi precedata ins& de inlocuirea valoarii Z. cu 6,. — Z,- r : , atunci Dack 2, = % = Se observa cu usurint& c& cele dou’ cazuri de schimbare a bazei analizate mai sus prezint& similitudini foarte mari si prin urmare, se pot trata intr-un mod unitar. Pentru aceasta, vom asocia fiectrei variabile z; un coeficient o; definit astfel: 0 dat ieB = 1 dack ie Rt -1 dact i€R7 Teorema de optimalitate se poate reformula astfel: Teorema 1.13 (de optimalitate) Conditia suficienté ca solutia de bazd extinsd x € R", én raport cu B, sd fie optima pentru problema (1.3.3) este ca, pentru orice j € R st avem o;(z;—c;) < 0. De asemenea, conditiile (1.3.9) gi (1.3.13), respectiv (1.3.10) si (1.3.14) se pot scrie unificat astfel: . og te < pi, Sign { OnYik Ze } +oo dac& nu exist’ ony > 0 1.3 Adaptarea algoritmului simplex la probleme cu variabile marginite 41 p 8 te SM i an { ORYik ; +oc dac& nu exist’ onyix < 0 gi atunci, valoarea maxima pe care o poate lua x, este data de (1.3.11) pentru ambele cazuri. In mod asem&n&tor se pot prezenta gi calculele pentru schimbarea bazei, dar ldsim acest lucru in seama cititorului. ORYik < of Exemplul 1.1 Sa considerdm urmétoarea problema: min {3x1 + £2 +23 — 44 + 1225} in raporl cu restrictiile : zy 4+ 23 — 24+ 205 =5 T2-Ig+%qt 5 =9 $i conditiile de mdrginire O 0. Prin urmare, 24 va primi valoarea: = min {Bq pp} = minfo,$,9="} = 3. pf punzatoare lui B = (A1A?) = este: 2) = 5, 2 = 9 gi in aceast& situatie, dup% ce £, sc va inlocui cu @; — 6, = —3, trans- formarea tabloului simplex se va face cu pivotul y4 = —1. Astfel, tabloul 2 — By 2 42 Capitolul 1: Programare liniart devine m[f3]-1 0-1 1 —2 t|6/1 1 0 0 3 [2 0 3 0 -1 o -1 0 1 0 1 Deoarece x; este acum o variabil& secundar&, avand valoarea egala cu marginea ei superioar’, avem x = 8, iar coeficientul 0; = —1. Baza curent& este B = (A*A?) gi in raport cu ea, solutia de bazi extins& este: z = (8,6,0,3,0). Aceasta solutic nu este optima’ deoarece avem: 03 (z3 — ¢3) = 3 > 0. Prin urmare, variabila secundar& x3 va primi valoarea : fea : 3-6 3 = min {83, 03, 3} = min {2,400 2=*} =2=f; In acest caz, baza rémane neschimbat4, iar valorile solutiei si a functiei obiectiv se modifica astfel: r= ())=(3)-009=(3)-() (8) 2 = 18 — 03 (2 — c3) By = 18 - 3-2 = 12. Deoarece 3 si-a atins marginea superioar’, 73 = —1, iar tabloul sim- plex devine: aw} 5{-l1 0 1 1 -2 w}/6]1 1 0 0 3 Rl 2 0 3 0 -1 o@ -1 0-10 1 De asta data testul de optimalitate este satisfScut (0; (z; — ¢;) < 0, Vj € R) iar solutia de baz& extins&d z = (8, 6,2,5,0) este optim’. 1.4. Dualitate in programarea liniara De foarte multe ori, abordarea unei probleme reale poate fi facut’ in mai multe moduri, fiecare dintre acestea avind drept scop rezolvarea ei cat mai eficient cu putinta. La o analiz&d mai atent& se constat& c4, desi sunt structural diferite, aceste abordari contin leg&turi profunde intre ele. Dac& indeplinesc anumite conditii, aceste probleme se numesc 1.4 Dualitate in programarea liniar& 43 duale una alteia. fn optimizarea liniar, problemele duale se bucur& de propriet4ti foarte bune in ccea ce priveste caracterizarea solutiilor si a valorii optime. Pentru exemplificare, vom enunta dou& probleme care sunt legate de acelasi gen de activitate, cunoscute sub denumirea de probleme de transport. Descrierea activit&tii. Exist’ dou& depozite, D; si D2, in care sunt depozitate 13, respectiv 17 tone de marfé ce trebuie transportat’ la trei beneficiari: By, Bo si Bs. Fiecare beneficiar solicita s& primeasca cel putin 12, 8 si respectiv 10 tone de marf&. Costul unitar de transport de la fiecare depozit la fiecare beneficiar este dat in tabelul urma&tor: B, Bo Bs 5 [2 [3 dD, D,{3 [4 [2 Problema 1. Sa se distribuie marfa din depozite la beneficiari, in aga fel incdt, costul total de transport s& fie minim. Daca notam cu 2i;,1 = 1,2, 7 = 1,2,3, cantitatea ce sc transport& de la depozitul D; la beneficiarul B;, problema se poate modela ca problema de programare liniar’ astfel: min {52 + 2t12 + 3213 + 3221 + 4022 + 2x23} 2 — Dy — 23 2 —13 22 — Loq — 223 > —17 2, +2 > 12 y+ 28 £13 + £93 > 10 zy >0,i=1,2, j=1,2,3. Evident, primele doua restrictii (care au fost inmultite cu —1) exprima’ faptul c&% marfa ce pleac&% din depozite nu poate depasi can- titatea existent’, iar urm&toarele trei, ca cerinta beneficiarilor s& fie satisfacuta. Problema 2. Un intreprinzitor cump&r& marfa din depozitul D; cu pretul unitar u,;, i = 1,2, si apoi, o revinde beneficiarului B; la pretul unitar v;, j = 1,2, 3. Conditia prin care este lasat s& fac aceast& afacere este ca diferenta dintre pretul de vanzare si cel de cump&rare 44 Capitolul 1: Programare liniar& s& nu depdseasca, in nici unul din cazuri, costul unitar de transport de la depozitul D; la beneficiarul B;. Evident, intreprinzXtorul va fi interesat s& stabileasc&’ preturile u; si vj in aga fel inct s& obtind un profit maxim. In cazul acesta, problema de programare liniar& se poate formula astfel: max {—13u, — 17ug + 12v + 8v2 + 1003} yu <5 U2 — Uy, <2 U3 -U, <3 Vy — U2 <3 U2 — Un <4 U3 — Ug <2 wu > 0, 4=1,2, v7 > 0, f =1,2,3. Problemele enuntate mai sus modeleaza de fapt aceeasi activitate, dar abordeaz& modul de rezolvare din dou& puncte de vedere diferite. Daca pentru cazul prezentat aici, se aplicd rezultatele pe care le vom studia in continuare, se constat& c& aceste probleme sunt duale una alteia si c& solutiile lor se afl& intr-o anumitd& interdependenti&. 1.4.1. Reguli de asociere a problemelor duale S& consideram urm&toarea pereche de probleme de programare liniar& in forma generala: inf {c] «2 +c] «22 +c3 - a} in raport cu Aj +2, + Aja + 22 + Aig +23 2 by Agi - 21 + Age - £2 + Ag - 23 = be (Py) Ag, ©) + Age + 2 + Aga 23 S bg 120 a3 <0 unde datele problemei sunt matricele A;; € R™™*"s gi vectorii b; € R™, 1.4 Dualitate in programarea liniar& 45 €RY%,1 03 uy 20 uz <0 Definitia 1.4 Perechea de probleme (P,) $i (Dj) se numesc probleme duale una alteia. Din cauza simetriei In care apar problemele e,) gi (D,), la prima vedere am fi tentati s& credem c& este vorba de douad probleme obis- nuite de programare liniar3, construite cu aceleasi date, dar puse in alt& ordine. Felul in care sunt asociate aceste probleme, confirma in parte accasta observatie, dar legitura dintre cle este cu mult mai profund&’. Vom descrie in continuare modul in care sunt asociate pro- blemele duale. Reguli de asociere. e Unci probleme de minimizare ii corespunde o problema de maximizare, si reciproc. © Coeficientii din functia obiectiv a unei probleme devin coeficientii termenului liber in cealalt& problema, gi reciproc. « Matricea restrictiilor dintr-o problem& este matricea transpus’ din cealalt& problema, gi reciproc. Fiecdrei restrictii dintr-o problem& ti corespunde o variabil& in cealalt& problema, gi reciproc. Relatia de asociere este urma- toarea: — unei restrictii concordante fi corespunde o variabil& nenegativa. (> 0), si reciproc; — unei restritii de tip egalitate ti corespunde o variabil& oare- care (far& conditii de semn), si reciproc; unei restrictii neconcordante fi corespunde o variabila nepozitivaé (< 0), si reciproc. 46 Capitolul 1: Programare liniar& De regul&, problema initial’ de la care se porneste, se considera a fi problema primala, iar cca care i se asociaz’, este problema duala. Se constat& cu usurint& c& aceste reguli de asociere au proprietatea c& duala problemei duale este problema primala. Dac& problema primal& este intr-una din formele particulare defi- nite la pagina 11, atunci problema duala va fi urm&toarea: { primala in forma standard: inf {c’-2|A-+2=b, c>0} problema duala: sup {87 -u| AT-u6, 2 >0} problema duala: sup {07 -u} AT-u0} inf {c™ : zx} i ‘i in raprt cu: primala in form’ mixta: Arte by z>0 Ag- t= hb?" = sup {b] -t +63 - uz} : in raprt cu: problema duala: AT uy + AT - tun So, u>o fn cazul problemelor canonice, asocierea prin dualitate pastreaz& ambele problemele in aceeasi forma, adicd, restrictiile ram4n concor- dante si variabilele nenegative. Din cauza acestei simetrii, studiul pro- priet&tilor de dualitate le vom face pe acest tip de probleme. Deoarece formele problemelor de programare liniar& sunt echivalente, toate rezul- tatele de dualitate se vor putea aplica fara dificultate in orice situatie. 1.4.2. Teoreme de dualitate Consider&im urm&toarea pereche de probleme duale: inf {c"-2|2€P} (P) sup {b"-u|ue D} (D) unde, pentru A € R™*", b € R™ sic € R®, domeniile de admisibilitate pentru fiecare problema sunt definite astfel: P = {ceER"|A-2>b, r>0} 1.4 Dualitate in programarea liniar& 47 D= {ue€R™|A™-u0} Propozitia 1.14 Daca domeniile de admisibilitate a problemelor (P) gi (D) sunt nevide, P # 0 si D # O, atunci, pentru orice x € P gi orice u € D are loc relatia: c'-2 > b"-u. Demonstratie. Pentru orice x € P gi orice u € D, avem: A-c-b>0 T u>o } ind : > [eed = 2-Auul-A-r>u"-b. . — — Observatia 1.9 fn conditiile Propozitiei 1.14, pentru orice x € P, valoarea c™ - x este o margine superioard a tuturor valorilor functiei obiectiv a problemei (D) si prin urmare, aceasta are un optim finit. Totodatd, deoarece pentru orice u € D valoarea b" - u este o margine inferioaré a problemei (P), aceasta are de asemenea un optim finit. Propozifia 1.15 Dact P 40, D0 $i existat e P , UE D astfel tinct c’ -% = b" -i, atunci, # este o solutie optimd a probleme: (P) gi i este o solutie optimd a probleme (D). Demonstratie. S& presupunem, spre exemplu, c&% nu este o solutie optima a problemei (P). Atunci, exist’ 2 € P, astfel incat c™ - rp < c™-. Dar, tinand seama de conditia din enunt, obtinem c’ -zp < b"-a, ceea ce contrazice Propozitia 1.14. Prin urmare, Z este solutie optima a problemei (P). Analog se demonstreaz& proprietatea si pentru a. = ) Teorema 1.16 (Teorema fundamental& a dualitatii) Fiind data perechea de probleme duale (P) gi (D), doar una din urmdtoarele situatii se poate realiza: 1.P 40si D FO. In cazul acesta, existd Z € P gi i € D solutii optime pentru (P), respectiv (D), astfel incat c™-@ = 8 - a. 2. P=0siD=0. 3.P #0si D =0 sau P = Osi D F O. in cazul acesta, problema care are solutii admisibile, are optimul infinit. 48 Capitolul 1: Programare liniar&. Demonstratie. S& considerim urm&toarea matrice p&tratic’ de ordinul n + m + 1: 0, -AT ¢ S= A On -b |, -cr BT 0 unde 0, si 0, sunt matrice p&tratice nule de ordinul n, respectiv m. Avem evident S = —S™ gi deci, putem aplica Teorema 1.2: exist& ZER™*™+1 z > O, astfel incat S-2 > Osi S-Z4+2 > 0. Dac&d grupam z componentele lui Z si le notim Z= | @ |, undez € R", aE R™ si r r €R, atunci avem: z>0, @>0, r>0, (1.4.1) -A’-ater > 0, (1.4.2) A-=-—br > 0, (1.4.3) —cl-f+b"-a > 0, (1.4.4) #~A'™-G+er > 0, (1.4.5) A-E+%-br > 0, (1.4.6) —c’-E+b'- a+r > 0. (1.4.7) Deoarece r > 0, putem considera doua cazuri: r > 0 sir = 0. fn cazul r > 0, puntem defini: ee se si d= ca. (1.4.8) Din (1.4.1) rezulté Z > 0 sid > 0. impartind relatiile (1.4.2) gi (1.4.3) prin r, obtinem: z= A-=>b6 gi A’-i ba si dac& imp&rtim relatia (1.4.4) prin r, obtinem cl-E | a-b<8"- Amy <0, (149) deoarece, din (1.4.2) avem A™ -% <0. Pe de alt& parte, _ = a -c2E"- Alu 20, deoarece, din (1.4.3) avem A-Z > 0. Din relatiile de mai sus obtinem: z’.c>0>4@'-b, care este in contradictie cu (1.4.7). Prin urmare, nu putem avea decat, fie P = 0 si D = @, caz in care este realizat& situatia de la punctul 2., fie doar una dintre multimile P sau D este nevid’, caz in care este realizata situatia de la punctul Pentru cazul din urm&, vom ar&ta c& problema care admite solutii are optim infinit. Dac’ presupunem, spre exemplu, cd exist’ ro € P, atunci vom considera vectorul z(A) = 29+ AB, definit pentru parametrul real \ > 0. Avem evident (A) > 0 si A-a(A)=A-%pt+AA-E>A-2Q>b. Deci, pentru orice A > 0, avem (A) € P. Dac& tinem seama de relatia (1.4.7) si de faptul c& in acest caz are loc gi (1.4.9), obtinem: cl -B 0, (c-A™-a)+@ > 0. Demonstratie. in conditiile date, ne situ&m in cazul 1. al Teo- remei fundamentale a dualitatii. Din demonstratia acesteia, rezulta c& putem construi solutiile optime Z gi @, date de (1.4.8). impartind relatiile (1.4.5) si (1.4.6) prin r > 0, obtinem conditiile din enunt. ™ @ Teorema 1.18 (Teorema slab& a ecarturilor complementare) Fier € P giue D. Vectorul x este o solute optima pentru (P) si u este o sulutie optima pentru (D), dac& gi numai dacd, sunt satisfa- cute relatiile: u’-(A-2—b) =O; T.(c-AT-u) = 0. Demonstratie. Pentru a arta ca are loc implicatia direct’, pre- supunem z si u solutii optime pentru (P), respectiv (D). Din Teorema fundamentala-a dualitatii rezult’: c™ . 2 — 6" - u = 0. Dac& in mem- brul stang ad&ugtim gi scddem u™- A-2, (= 27 - AT -u) , si regrupam termenii, T.(A-e—b)+a7 “(c- AT: u) =0. Deoarece z gi u sunt solutii admisibile pentru problemele respective, ambii termeni din suma de mai sus sunt nenegativi si deci, fiecare termen trebuie s& fie egal cu zero. Pentru a arata implicatia reciproc’, adunim membru cu membru relatiile din enunt. Obtinem c™ -z = b" -u. Deoarece r € P siue D, conditiile Propozitiei 1.15 sunt indeplinite si rezult’ c& x si uw sunt solutii optime pentru (P), respectiv (D). 7 1.5 Algoritmul simplex dual 51 Teoremele ecarturilor complementare pun in evidenta legatura dintre o percche de solutii optime gi modul in care sunt satisfacute restrictiile cuplului de probleme duale (P) gi (D). Astfel, din Teorema tare a ecarturilor complementare rezult& c&, daca la optim o restrictie este activd (adic& este satisficuta prin egalitate), atunci componenta corespunz&toare a solutiei duale este pozitivt. De asemenea, daca o componenta a solutici optime este zero, atunci restrictia corespunza- toare prin dualitate este pasivd (sau neactiva, adic&, ea este satisfacuta printr-o inegalitate stricta). Reciproc, din Teorema slab& a ecarturilor complementare rezulta c& la optim, unei componente pozitive a solutiei ti corespunde prin dualitate o restrictie activ’, iar unei restrictii pasive, o componentd nula a solutiei asociate prin dualitate. 1.5. Algoritmul simplex dual S& consideram problema de programare liniar& in forma standard si duala ei: inf {c'-2| A-r=6, c> 0} (P) sup {b" -uj AT-u0 (primal-admisibilitatea lui B) ch: B-t-A 0, Vj = 1,7, atunci problema (P) nu are solutii. 1.5 Algoritmul simplex dual 53 Demonstratie. Fie vectorul a" = cg- B™! si not&m cu B;" linia i” a matricci B-). Definim vectorul: ul (A) =a" — ABz?. unde A > 0 este un parametru real. Pentru orice j = 1,n, avem: ut (A). A? a’. Al—)Bz). Ab = = 2 Nyy 2252 65 I deoarece B este dual admisibila. De aici rezult& c& pentru orice A > 0, vectorul u (A) este o solutie admisibila pentru (D)- Valoarea functiei obiectiv corespunz&toare este: ul (A)-b=@" -b- ABS) b= 2 —da, si deoarece #; < 0, rezulta jim u™ (A)-b =o. Prin urmare, problema (D) are optim infinit si in baza Teoremei fundamentale a dualitatii, problema (P) nu are solutii. . Teorema 1.21 (de schimbare a bazei) Fie B o bazd dual admi- sibild si componentaz, < 0, pentru care existdj € R, astfel ca yp; < 0. Dact alegem indicele k € R, astfel tncat : —— i 2 Ir: 1.5.1 Urk JER { Yr3 bl 0} ; ‘ atunci, matricea B, obtinutd din B prin inlocuirea coloanei A®* cu A* (unde indicele s, € B, cu loc(s,) =r), este 0 matrice de bazd dual admisibild, pentru care avem: 2 = ch- B--b> cg Bo -b=2. Demonstratie. Din relatia (1.5.1) avem evident y,, < 0. Din Lema substitutici rezult’ cX B este o matrice nesingularX. Pentru a vedea c& ea este o matrice de baz& dual admisibild, trebuie s& verificdm c& pentru orice j, 1 < j 0, din relatia de mai sus rezult& 54 Capitolul 1: Programare liniarit evident Z; — c; < 0. Dac& y; < 0, tinand seama de (1.5.1), putem scrie: is z; 2k — Ch 4 = Urj ( i = ) <0. Yr3 Urk fn concluzie, B este baz& dual admisibil&. Ultima afirmatie a teoremei rezult& din formula (1.2.14): _ (= ce) a bz Yrk z . Observatia 1.10 Prin schimbarea de bazd, avem: B = B\ {s,}U{k} gi loc(k) =r. Algoritmul simplex dual. Pasul 0. Se determin’ (daca exist’) o baz& dual admisibil& B si se calculeaz’ B-?. Pasul 1. Se calculeaza: = Bo!-b,Z = ch, Y = B.A, zt —cl=ch-Y—-cl. Pasul 2. (testul de optimalitate) Dack > 0, atunci z cste valoarea optima, iar tg = = si rp = O este solutia de baz&t optima a problemei (P). STOP. Pasul 3. (testul de domeniu vid) Dac& exist’ 2; < 0 astfel incat yij > O pentru orice j = 1,7, atunci problema (P) nu are solutii. STOP. Pasul 4. (schimbarea bazei) Se alege Z, < 0 si din ralatia (1.5.1) se determina k € R. Se formeaz% matricea B, care se obtine din B prin inlocuirea coloanei A’ cu A* (unde indicele s, € B, iar loc(s,) = 1), se calculeazX B-} cu formula (1.2.4), si cu aceasta invers& a noii matrice de baza se revine la Pasul 1. Exist& metode pentru determinarea bazelor dual admisibile (vezi, spre exemplu, (37, p. 44]), pe care ins& nu le mai prezent&m aici. Un argument in sprijinul acestei decizii ar fi ci, in practic’, de cele mai multe ori, bazele dual admisibile se obtin in mod natural din cele 1.5 Algoritmul simplex dual 55 optime, dupa ce acestea igi pierd primal admisibilitatea in urma unor schimb&ri ce intervin fie in datele problemei, fie in structura lor. Se observ’ cu usurint& c& algoritmul simplex dual lucreaz& cu aceleagi elemente ca si cel primal. Din aceast’ cauzd, organizarea calculelor pentru aplicarea lui la rezolvarea manual& a problemelor de programare liniar&’, se poate face folosind tabloul simplex standard sau cel revizuit. Capitolul 2 Metode de descompunere 2.1. Introducere Rezolvarea problemelor de programare liniar&’ de dimensiuni mari prezint& numeroase dificult&ti din cauza prelucr&rii anevoioase a date- lor, pe de o parte, iar pe de alt& parte, din cauza acumularii erorilor de rotunjire ce se fac inevitabil pe parcursul iteratiilor algoritmului simplex. Din fericire ins’, majoritatea problemelor de acest fel au o structura special& a restrictiilor, matricea cocficientilor avand o forma *bloc-unghiulara” , ce se poate reprezenta astfel: eee dD Dy Dd, unde A; € R™*™ si Di E R™*"', 1 m) x (& ms) ; sau de a rezolva k probleme i=l eee mai mici, fiecare avand matricea de restrictii de dimensiune m,; x n,. Evident, cea de-a doua optiune este mai convenabil&, deoarece se lucreaz& cu probleme care au un volum de date mai mic. Plecand de la aceast& idee, in perioada anilor ’60-’70, s-au elaborat. 57 58 Capitolul 2: Metode de descompunere o serie de metode care abordeaz& problemele de dimensiuni mari, cu matricea restrictiilor in forma bloc-unghiular’, prin rezolvarea unei succesiuni de probleme liniare de dimensiuni cu mult mai mici. 2.2. Principiul de descompunere Dantzig- Wolfe Dantzig si Wolfe [8] au fost primii care au publicat in 1960 un algo- ritm de descompunere pentru problemele de programare liniara. Pro- cedeul devine eficient dac3 este aplicat la probleme liniare cu restrictiile in form%’ bloc-unghiular&’. Principiul de rezolvare const’ in construirea unui ” program principal” care este echivalent cu pro- blema initiala si care are un numéar de linii doar cu o unitate mai mare decét numarul restrictiilor de cuplare. Pe de alt& parte ins%, numéarul de coloane devine foarte mare, dar acestea nu trebuie tabelate de la inceput, ci se "genereazé” in momentul in care ele sunt necesare in aplicarea algoritmului simplex. O iteratie a algoritmului const& din dou& etape: in prima etap&, se rezolva un numar de subprobleme in- dependente; in a doua etapa, se rezolva’ programul principal in care se introduc rezultatele obtinute prin rezolvarea subproblemelor. 2.2.1. Rezultate preliminare Justificarea algoritmului Dantzig-Wolfe se bazeaz& pe unele notiuni si rezultate din teoria general& a analizei convexe (vezi, spre exemplu, Rockafellar [32], Karlin (18]). Fie X C R" o multime convexé. Definitia 2.1 Vom spune cx € X este un punct extrem al multimii X, daca pentru oricea € X gibe X,a#b, avemz F#ra+(1—-A)b, oricare ar fi € (0,1). Multimea punctelor extreme ale lui X 0 vom nota cu Ext (X). Observatia 2.1 Orice solutie de bazé a unei probleme de programare liniard este un punct extrem al domeniului de admisibilitate. 2.2 Principiul de descompunere Dantzig-Wolfe 59 Teorema 2.1 Dacd y ¢ X atunci existd un hiperplan care separa punctul y de multimea X. Definitia 2.2 Un “hiperplan de sprijin” a multimii convete X are proprietatea cd X se aflé de o parte a sa gi cel putin un punct al lui X este continut tn hiperplan. Teorema 2.2 Dacd X este o multime converd, atunci orice hiper- plan de sprijin la X contine un punct extrem al lui X. Definitia 2.3 Fie M CR” o multime oarecare. Acoperirea convert Co(M) a lui M este cea mai micd multime converts ce contine pe M. Teorema 2.3 Fie X C R” o multime conver si compactd. Atunci Co (Ext (X)) = X. Demonstratie. Vom ar&ta mai intai ch Co(Ext(X)) € X. Pentru orice y € Co(Ezxt(X)), exist’ puncte c' € Ext (X) astfel incat y= As’, cur; >0si SoA aL i Deoarece 2* € X gi multimea X este convexd, rezult& cd y € X. Pentru a arita c& Co(Ext(X)) 2 X, vom presupune prin absurd c& exist’ y € X, astfel ca y ¢ Co(Ext(X)). Cu alte cuvinte, y nu poate fi descris ca o combinatie convex’ de puncte extreme ale lui X. fn aceste conditii, conform Teoremei 2.1, exit% un hiperplan a" -z = b (a € R* si b € R) care separ& punctul y de multimea Co(Ezt(X)), adic’, a’-y > b gi (2.2.1) a's < 6 pentru orice s € Co(Ext(X)) (2.2.2) Deoarece X este compacta, exist bo = max{a™-2|2€X}. Prin urmare, a’ - z < bo pentru orice z € X gi deci, a’ - x = bo este un hiperplan de sprijin a lui X. in baza Teoremei 2.2, rezult& c& exist’ un punct extrem £ € Ext (X), astfel incdt a’ - Z = bo. Dar aceasta relatie este in contradictie cu (2.2.2), deoarece, din alegerea lui bo si (2.2.1), ave bp > b. . 60 Capitolul 2: Metode de descompunere Teorema 2.3 poate fi enuntata si intr-o forma diferita, care este mai adecvat& pentru aplicarea ei in elaborarea metodei de descompunere. Corolarul 2.4 Fie multimea X = {re€R"|A-c=b,2>0} nevidd gi marginitd, si fie Ext (X) = {x',1 0 gt yx al i=1 i=l Extinderea acestui rezultat la cazul in care X nu este marginita este datad de urm&toarea teorema. Teorema 2.5 Fie multimea X = {x €R"|A-r=b,2>0} 4 0. Atunci x € X, dacd gi numai dacé x poate fi scris ca 0 combinatie conveza de puncte extreme ale lui X, plus o combinatie liniard nenega- tivd de raze extreme (solutii nenule ale sistemului omogen) ale lui X, adica : z=) Az! (2.2.3) unde : SGA =1, % 20 (2.2.4) si saea eee i punct extrem i b= { 0 } dupd cum x* este { et } aluiX. (2.2.5) 2.2.2. Principiul de descompunere S& consideram pentru inceput o problem’ de programare liniar& in care restrictiile sunt grupate in dou& parti: inf cls in raport cu A-x = by (mo restrictii) D-« = b_ (mrestrictii) z>o0 2.2 Principiul de descompunere Dantzig-Wolfe 61 unde A € R™**, DE R™?, ce R®", by € R™ gi b € R™. Este evi dent c& orice problema de programare liniar& se poate scrie in aceast& forma. Vom presupune c& policdrul convex S={reR"|D-c=b, c>0} este marginit si multimea punctelor sale extreme este Ext(S)={27,1 dja’, unde Aj > Osi J7 AS = 1. (2.2.6) jal jal Problema initial’ se poate formula astfel: s& se determine x € S astfel incdt s& fic satisfacute restrictiile A -z = bo gi s& se realizeze minimul lui c" - x. Dac’ tinem seama de oe gi notém: uo ean atunci, problema initial’ se poate rescrie in functie de variabilele ; astfel: a inf S75 j=l in raport cu ‘ Said; = bo (PP) ae y= =1 Pv, > 9, l mp + 1 de puncte extreme ale multimii S. La randul lor, punctele extreme se pot obtine printr-o procedura de faz’ 1 apli- cata restrictiilor {D.z = 6, > 0}, urmatd de un numar de iteratii de schimbare a bazei, cu respectarea criteriului din algoritmul simplex. Fie B o baz& primal admisibil& a programului principal, B multimea indicilor de baz& gi u’ = y§ - B~}, vectorul multiplicatorilor simplex corespunz&tori acestei baze. Pentru a vedea dac& aceast& baz& este optima, trebuie s& calculim (f)-vem (Qa) Daca partitionam vectorul ut = (ug.ui), cu uo € R™ si uy € R, si tinem seama de notatiile (2.2.7), atunci avem: (4 )rse (ian) (AY oa = (Ae) att Prin urmare, determinarea maximului in relatia (2.2.8) se poate scrie 7 J mas {u"(9)) ~nf ag, (Ae) 2} (2.2.9) Reamintim ca 2? este un punct extrem al lui S si observim ci expresia de maximizat in (2.2.9) este liniar’ in xz’. Deoarece o solutie optim’ a unei probleme liniare, cu domeniul de admisibilitate m&rginit, este intotdeauna si un punct extrem al acestei multimi, maximizarea din (2.2.9) este echivalent’ cu subproblema max {(ug -A—c')-2|D-2=b,2>0} (2.2.10) 2.2 Principiul de descompunere Dantzig-Wolfe 63 Rezolvand aceastaé subproblema, se obfine o solutie z* pentru care valoarea maxima din relatia (2.2.8), pe care o vom nota cu A, este Baal (4) y= (Gael) atm Daca A < 0, atunci baza B este optim’ pentru programul principal si\ = Bo. > este solutia optima corespunz&toare. Solutia optima pentru problema initial& se obtine acum din relatia (2.2.6): =) de ieB : ; A-x Daca A > 0, atunci coloana care intr’ in baz& este aS = ( a ) , cu coeficientul de cost y, = c' - 2°. Efectuénd acum o operatie de schimbare a bazei in programul principal, obtinem o nou’ baz& primal admisibil& gi calculele se reiau cu testul de optimalitate a acesteia. Acest procedeu de rezolvare devine deosebit de atractiv dac& este aplicat la probleme cu o structur& bloc-unghiular& a restrictiilor, de forma urmitoare: inf {cy «x, + cp -X2-+++- +cg - x2} Ay x+ Ag: Kot +++ +Ag x~ = bo Di-x =h D2 x2 = by (PBU) Dex, = be x >0,i=T1,k, k>0. unde, pentru orice i = 1,k, avem A; € R™*™, D; € R™*™, ¢; ER™, 8; € R™ gi by ER™. Pentru problema bloc-unghiular& (PBU), subproblema (2.2.10) devine: k m{ (S-4-a) x | Dy-xi = bi, x 20TH i=l (2.2.11) 64 Capitolul 2: Metode de descompunere Deoarece in (2.2.11) functia obiectiv este aditiv separabil& in x; iar resrictiile sunt independente in raport cu x;, aceasta problema se re- duce la rezolvarea a k subprobleme independente: max { (ug - Aime?) x: | Dix =b:, x 20}, t=T,F (2.2.12) in baza principiului de descompunere Dantzig-Wolfe prezentat mai sus, putem enunta urm&torul algoritm pentru rezolvarea problemei bloc-unghiulare (PBU). Vom presupune c& avem la dispozitie o baza primal admisibili B a programului principal (PP) si multiplicatorii simplex u’ = (ug ,t1) corespunzatori. Algoritmul de descompunere Dantzig- Wolfe. Pasul 0: Se determina o baz& primal admisibila B pentru programul principal (PP) si multiplicatorii simplex u™ = (ug , us) corespun- zatori. Pasul 1: Folosind multiplicatorii simplex uo, se rezolva subproblemcle (2.2.12), obtinand solutiile X; (uo) , i = Tk. Pasul 2: Se calculeazi A= a (ug - A - cp + (uo) + Dac& A < 0, atunci solutia optim’ pentru (PBU) este =a (2.2.13) eB unde z‘ sunt punctele extreme ale multimii D, bb ( )==( | )} e219) Dr be corespunzatoare solutiilor de baz ; . STOP. Pasul 3: Dac& A > 0, se formeaz& coloana G ) = ( Tia Aim (us) ) S= (: € RUM 2.2 Principiul de descompunere Dantzig-Wolfe 65 care printr-o operatie de schimbare a bazei din algoritmul simplex va fi introdus’& intr-o nou& baz& primal admisibilé pentru (PP) si in mod corespunz&tor, se obtine un nou vector al multiplicatorilor simplex. Dup& aceasta, se revine la Pasul 1. Observatia 2.2 Daca programul principal are toate solutiile de baz nedegenerate, atunci fiecare iteratie va produce o descregtere strictdé a functiei obiectiv. Deoarece existd un numar finit de baze posibile si nici una nu se poate repeta, principiul de descompunere va determina solutia optima intr-un numar finit de iteratii. Observatia 2.3 Trebuie subliniat faptul cd solutia optimd & a pro- blemei (PBU) nu este neapdrat una dintre cele obtinute la rezolvarea subproblemelor (2.2.12). Din (2.2.18) rezultd ct & este 0 anumité combinatie convert a unui numédr de astfel de solutii. Prin urmare, programul principal nu poate obtine optimul global pur si simplu prin trimiterea "preturilor” corespunzdtoare lui up cdtre subprobleme; el trebuie s& combine solutiile subproblemelor tntr-un plan general. fn acest sens, descompunerea lui Dantzig si Wolfe nu este o "descen- tralizare” completé a procesului de luare a deciziei. Din aceasté cauzd, Dantzig (7, capitolul 23] a denumit aceasté descompunere "planificare centralizata fara informatie completa la centru”. Programul principal restrans. Principiul de descompunere Dantzig-Wolfe, in forma prezentat’ mai sus, rezolv’. probleme de optimizare doar in prima etap& (subpro- blemele (2.2.12)), in timp ce in etapa a doua, se execut& doar o sin- gurd& operatie de schimbare a bazei. Se poate da ins& o formulare mai simetric& a acestei metode, astfel ca in ambele etape s& se rezolve pro- bleme de optimizare. Pentru aceasta, in locul programului principal (PP), vom considera-un ” program principal restrans”, format doar din coloanele care formeaz’ baza curenta in (PP) gi coloana care urmeaza s& fie introdus& in noua baz&. Astfel, programul principal restrans 66 Capitolul 2: Metode de descompunere este: m inf {Sov + a} in raport cu (PPR) M20,i=Tm, AD0 unde m = mp +1, 4; sunt variabilele de baz& curente si este variabila care intr& In noua baza, avand coeficientul de cost redus ug -atu—y>0. Evident, rezolvarea acestei probleme este cchivalent& cu iteratia de schimbare a bazei prezentata in algoritmul de descompunere. Utilitatea unui program principal restrans va fi pusa in evident& in cele ce urmeaza. Variante pentru descompunerea primala. Exist& diferite moduri in care se poate descompune problema initial’, fiecare modalitate influenténd forma programului principal si a programului principal restrans. Pentru orice i = 1, k, consideram poliedrul convex S;= {2 €R™ | D,-2=b,, «> 0} (2.2.15) si not&m punctele sale extreme cu 2? € Ext (S;). Astfel, orice punct x; € S; poate fi scris sub forma unei combinatii convexe de puncte ex- treme: x; = )~ ;2?. Inlocuind in (PBU), obtinem urm&torul program 7 2.2 Principiul de descompunere Dantzig-Wolfe 67 principal: k inf Se sds 1 in raport cu k Sal dy = bo (+1) (PP+) eee Saya, i=TkE (2) unde 7; = ¢ «2? gia? = Aj: 2}. Aceast& problema difera de (PP) prin aceea c& are k linii de con- vexitate (r-2) in loc de una gi fiecare subsistem {D; - x; = b;,x; > 0}, este reprezentat separat printr-o mulfime de variabile ,; (anterior, toate subsistemele erau agregate impreund). Pentru rezolvarea problemei (PP+), s& consider&m o baza primal admisibila B de dimensiune (mo + k) x (mo + k) i fie u™ = (ug uy) multiplicatorii simplex corespunzatori, unde up € R™ este asociat restrictiilor de cuplare (1-1), iar uy = (ui, ..., ure)” € R* conditiilor de convexitate (1-2). Coeficientul de cost relativ corespunz&tor variabilei raz este : Aig = (up Ai cf) af tui Pentru i fixat, problema gisirii valorii z= max Ay este echivalent& cu rezolvarea subproblemei % = max {(uj -Ai—c/)-2| D;-2 =; > 0} zERM care este aceeagi ca in (2.2.12). Dac& max max Aj; = max {Z; + ui} < 0. leick 5 aj max {4 ai} S > atunci solutia curent& este optima. Dac& nu, coloana care intr’ in baz& este aceea care realizeaz& max {Z;+ uni} = 2%, +, >0 max {2 + uu} = 25+ ths 68 Capitolul 2: Metode de descompunere Daca @, (uo) este solutia optim’ a subproblemei s, atunci coloana care intra in baz& va fi Ass (uo) e° unde e* € R* este un vector unitar, avand pe pozitia s valoarea 1 si zcro in rest. Este posibil ca s& existe si alti indici 7, pentru care Z;+u; > 0 si in plus, dupa ce s-a obtinut noua baza ce confine coloana (2.2.16), aceste costuri reduse s& ram4n& pozitive gi in raport cu baza nou&. Acest& observatie este o motivatie puternic&’ pentru a forma un nou program principal restrans, in care s& se adauge cate o coloana a} pentru fiecare subsistem independent: eee : i=1 jeB (2.2.16) fn raport cu or Sei (PPR+) i=l jeB rw t= 1 i jeB Agz0, M20, i=1k, jeB Aceast& problema are k variabile 47, corespunz&toare restrictiilor de convexitate, gi in comparatie cu (PPR), dimensiunea bazei a crescut de la mo + 1 la mp + k. Acest inconvenient este ins&’ compensat de perspectiva de a obtine o descrestere mai mare a functiei obiectiv, in urma efectuarii mai multor iteratii simplex care se vor face la re- zolvarea lui (PPR+). Observatia 2.4 Programul principal restrins (PPR) are o singura linie de converitate, grupand tmpreund toate blocurile diagonale, spre deosebire de (PPR+) care are k linii de converitate, tratand fiecare bloc separat. Evident, alte grupdri ale acestor blocuri conduc la pro- grame principale care pot avea un numdr de linii de converitate cuprins intre 1 gi k. Considerarea unor astfel de cazuri intermediare este impus de cele mai multe ori de particularitatile problemei care urmeazé a fi rezolvatd. 2.2 Principiul de descompunere Dantzig-Wolfe 69 Observatia 2.5 Dacd ipoteza de mdrginire a poliedrelor conveze S; (definite in (2.2.15)) nu este tndeplinitd, atunci utilizarea Corolaru- lui 2.4 trebuie inlocuité cu Teorma 2.5. Razele extreme care apar in descrierea unui punct x € S; sunt solutii nenule ale sistemului omogen D;,-r=0,2>0 gi sunt in numdar finit. Dacd o subproblemda are optim infinit, algorit- mul simpler pune tn evidenté o razd extrema (vezi Observatia 1.3 de la pagina 19). Principiul de descompunere se aplicd si in acest caz, prin substituirea lui (2.2.3) in restrictiile de cuplare si functia obiec- tiv a problemei (PBU). Singura diferena tn programul principal (PP) r este inlocuirea restrictiei de converitate )> A; = 1 cu (2.2.4) gi (2.2.5), i=l scrise relativ la multimea S, care este definitdé de (2.2.14). 2.2.3. Exemplu de aplicare a principiului de descompunere Vom considera urm&toarea problema: inf {—21 — 3x9 + 2x3 + 3y, — 2yo — 4ys} in raport cu @ +2¢. 23 —2y, +3y2 —-y3 = 10 42, -2¢, —Z3 = LZ, +22 +223 =5 wo ye +3y3 = yu tye -y =2 2 20,y%20, i=1,3. Aceast& problemi are o restrictie de cuplare si dou& blocuri inde- pendente. Pentru a utiliza pe deplin programul principal restrans, vom considera dou restrictii de convexitate. Not&m: Sy Se {ze R% | 4x; — 202 — 23 = 2, 2) + 2 + 2zy = 5} {ye RS | mn — yo + 34s =0, 1 + yo — ys = 2} i 70 Capitolul 2: Metode de descompunere Fie z € S; si y € So. In baza Corolarului 2.4 putem scrie: t= Sora; si y= vs, (2.2.17) i i unde 2 € Ext(S\) si y € Ext(S), iar A; si u; sunt parametrii combinatiilor convexe respective. Grup&m coeficientii functiei obiectiv si a restrictiei de cuplare in felul urmator: q = (-1,-3,2), o =(3,-2,-4) A (1,2,-1), Az = (-2,3,—-1) Cu aceste notatii, programul principal se poate scrie astfel: ofS (ct « 2’) A+ (et ay} in raport cu : Soa =1 J 4 =l i A;20, 4,20, Vi. Va trebui mai intai s&% identific’m o baz& primal admisibil’ a progra- mului principal. Pentru aceasta, avem nevoie de trei puncte extreme ale poliedrelor S$, si 52, convenabil alese. Vom considera, spre exem- plu, z! € Ext (S;), 2! = (2,3, 0)" , obtinut prin rezolvarea sistemului ce defineste pe S,, luand pe x, Z2 variabile principale gi variabila sc- cundar& 23 = 0. Analog, determin&m pentru cel de al doilea boloc pe y! € Ext (Sp) si y? € Ext (S2), y* = (1,1,0)" si y? = (0,3,2)". Cu ajutorul acestor puncte extreme putem explicita trei coloane ale programului principal. Avem: SAr-2) A; +0 (Ary) ay = 10 2 q-a! = (-1,-3,2)- =n 0 2.2 Principiul de descompunere Dantzig-Wolfe a 2 Aya! = (1,2,-1)- (:) =8; 0 g-y =k gy = -10; Ag-y = 1; Ap y?=8 Astfel, o explicitare incomplet& a programului principal se poate scrie astfel: " inf {-111 + a, — 10 jn + S++} tn raport cu Bi tm +8, + E+ =10 A +e = Hy +H2 + =1 A320, wy 20, Vz. 8 18 Matricea B= { 1 0 0 | se dovedeste a fi o baza primal admisi- bil& pentru programul principal, iar tabloul simplex revizuit corespun- z&tor acestei baze este: OG feat 0 T 0 | 6/7 | -1/7 8/7 8/7 bo | 1/7 | 1/7 -8/7_-1/7 Multiplicatorii simplex se afl pe ultima linie a tabloului gi in notatiile noastre sunt: -11 11 18 e us, U1 7 he = Iteratia 1. Pasul 1. Rezolvim subproblemele (2.2.12): % = max{(uy-Ai-q)-2|rES}= = oe |reS, eke = max) sm — 7a2— Fal TES p= cu solutia optim’ Z (uo) = (1,0, ar. 2 = max{(ug-A2,—c7)-ylye SD} = 72 Capitolul 2: Metode de descompunere 1 19 39 ~—18 = maxy ou — 7 ¥et Tysly € Sap = 7 7 cu o solutie optima g (up) = (1,1,0)". Pasul 2. Determinim 7 max {Z; + ui} = max ese ee : desta) eee Pasul 3. Coloana care va fi introdus& in baza este: (*3)-(7] Ai ry Slt O/ (Off: by 1/7 8/7 -1/7 Efectuand operatiile de schimbare a bazci cu pivotul obtinem: M [1/3 7 1/9 1/9 -8/9 A2| 2/3 | -1/9 8/9 8/9 He Multiplicatorii simplex pentru baza curent& sunt: oe = 9 UU =o MRA Iteratia 2. Pasul 1. Rezolvim subproblemele (2.2.12): Xy max {(ug -Ai—cj)-z|zES}= max emis —ty izes to Oe oon "9 2.3 Metode de partitionare gsi relaxare 73 cu 0 solutie optima Z (uo) = (2,3,0)" : % = max{(uj-A2—c3)-yly€ D}= 1 8 50 —22 max {25 ~ Son+ Py |v So} = cu solutia optima 9 (uo) = (0, 3, rae Pasul 2. Deoarece (At uy} = ewe gts eed ee =0 eee eed cue] git ign ton at ot fam am obtinut solutia optima’. Valoarea optima a problemei initiale este cea obtinut& in ultimul tablou simplex gi este egal& cu —~) iar solutia optim’ se calculeaz& cu formulele (2.2.17): 2 1 (3) -3(3)- 0 2 zy EB = | a | =dAyc' +d’ = 3 ah i 2 9 = [| & | =my toy = | 3 Ys 1 unde parametrii combinatiilor convexe sunt solutiile optime ale programului principal. wile wie wha Rola 2.3. Metode de partitionare si relaxare in numeroase situatii, problemele de dimensiuni mari se prezint& cu o structur’& bloc diagonala in care leg&tura dintre blocuri se realizeaza atat prin restrictii de cuplare, cat si prin variabile de cuplare. S& considertim problema urmitoare, care are blocurile cuplate in ambele moduri: re inf {cy zl +ef a? +... +c, -2*+c9 -y} (2.3.1) 74 Capitolul 2: Metode de descompunere in raport cu: Aya) + Ag: 2? +...+An-2*+Go-y = bo (2.3.2) D,-a! +G,-y =h Dy- 2! +Go-y =b. tet ae (2.3.3) Dy-t* +Gy-y = dy g>0,i=1k, y>0 (2.3.4) Pentru rezolvarea acestei probleme se poate aplica principiul de descompunere Dantzig-Wolfe. Dac& problema are numai variabile de cuplare, atunci procedeul Dantzig-Wolfe poate fi aplicat dualei, care are numai restrictii de cuplare. Dac& sunt prezente atat variabile cat gi restrictii de cuplare, atunci restrictiile se pot partitiona in (2.3.2) gi (2.3.3). Restrictiile (2.3.2) vor fi folosite la programul principal, iar (2.3.3) pentru subproblem& Deoarece subproblema are form& dual-unghiular&, ea poate fi rezolvat& direct, sau prin aplicarea din nou a aloritmului Dantzig-Wolfe asupra dualei. fn consecinja, pro- blema (2.3.1)-(2.3.4) poate fi rezolvat& cu principiul de descompunere Dantzig-Wolfe, care se foloseste intr-un algoritm in care o iteratie este structurata pe trei nivele: dou nivele pentru rezolvarea subproblemei, gi al treilea nivel, pentru rezolvarea programului principal. Deoarece 0 astfel de iteratie este destul de complex’, pot apare unele dificultati cauzate in special de faptul c& metoda Dantzig-Wolfe converge deseori foarte lent. —yroblema (2.3.1)-(2.3.4) poate fi abordata si intr-un mod diferit, gi anume, prin partitionarea variabilelor in doua submultimi, variabilele de cuplare y gsi variabilele bloc x‘. Variabilele x* sunt din nou partitio- nate in multimi dependente gi independente, in raport cu matricele de baza ale blocurilor D;. Aceast& partitionare permite ca restrictiile bloc gi variabilele dependente s& fie eliminate din program, obtinandu- se o problema redusi, de dimensiuni mai mici. Astfel de metode se numesc ” de partitionare gi relaxare”. Se foloseste termenul de relaxare 2.3. Metode de partifionare si relaxare 75 deoarece, prin eliminarca variabilelor dependente, se pierde controlul asupra conditiilor de nenegativitate ale acestora. Conceptul de relaxare a restrictiilor a fost plasat de Geoffrion [12] intr-un cadru general, care permite o mai bund intelegere a aplicarii lui la aceste metode. 2.3.1. Principiul de relaxare S& consider&im problema convexé: inf {f (x) | 9:(x) < 0, i=T,m; cE SER} (P) unde f gi g; sunt functii convexe definite pe multimea convex’ S. Vom presupune c& numarul de restrictii este suficient de mare ca s& produc& dificult&ti in rezolvarea problemei si c& la optim, un numéar relativ mic de restricfii sunt active. in aceste conditii, o strategie rezonabila de rezolvare const& in relaxarea (adic&, eliminarea temporar&) a unor restrictii si considerarea unei probleme noi, format& doar cu restrictiile ramase. Daca& aceast&’ problema este neadmisibila, la fel va fi si cea initial’. Dac& accasta are o solutie optima care satisface $i restrictiile eliminate, atunci solutia va fi optima si pentru problema initial&. Dac& o parte din restrictiile relaxate nu sunt satisfacute, atunci un anumit numéar dintre acestea vor fi luate in considerare pentru a defini o noud problemd& si procedeul se repeta. Geoflrion [12] a formalizat aceasi idee dup’ cum urmeazd. Fie M = {1,2....,m}; se noteazd cu R o submultime a lui M, Rc M, gi consideram problema redus&: inf {f (z) |g: (2) <0, 1€ Rj cE S} (Pr) Presupunem c& poate fi g&sit’ o multime initial’ R astfel incat pro- blema redus& (Pr) s& aibe un infimum finit si c& acesta este atins. Algoritmul general de partitionare gi relaxare: Pasul 0: Se ia f = —o0 si se alege o multime initiala R C M astfel incat f s& fie inferior m&rginit4 in raport cu restrictiile problemei reduse (Pp). 76 Capitolul 2: Metode de descompuncre Pasul 1: Se rezolva problema (Pr). Dac& aceasta nu admite solutii, atunci evident gi problema (P) este neadmisibila. STOP. in caz contrar, se obtine o solutie optima 2*. Pasul 2: Daca g; (@”) <0, pentru i € M\R, atunci solutia 2% este optima gi pentru problema initiala (P). STOP. Pasul 3: in caz contrar, fie VC {iE M\R| gi (2*) > OF o submultime ce contine cel putin un indice al unei restrictii nesatisficute si fie U= {iE R| 9: (#”) <0}. Pasul 4: Daca f (”) = f, atunci R se inlocuieste prin R’ = RUV gi se revine la Pasul 1. Pasul 5: Dact f (a) > f, atunci R se inlocuieste prin R’ = RU V\U, f se inlocuieste cu f (2®) si se revine la Pasul 1. Acest algoritm adaug& una sau mai multe restrictii incalcate gi, daca f (=*) creste, atunci elimina acele restrictii din R care nu sunt active in ®. Faptul c& nu elimina nici o restrictie in cazul fn care f (2*) = f, garanteaz3, dup& cum vom ar&ta in continuare, c& re- zolvarea problemei (P) se termin& intr-un numar finit de itcratii. Propozitia 2.6 Fie 2 o solutie optima a problemei reduse (Pp). Dacé gi (#®) <-0 pentru orice i € M\R, atunci @* este o solutie optimd si pentru problema (P). Demonstratie. Presupunem prin absurd c&X =* nu este o solutie optima a lui (P). Fie deci = € R® astfel incat g; (Z) < 0 pentru orice ieMsi f(z) 0, putem alege Ao astfel incat: ee “ie | 9: (20) - 9% (2*) si din (2.3.6) rezulta g;(x(Ao)) < 0. Astfel, 9:((Ao)) < 0, pentru orice i € R. in concluzie, x (Ao) este o solutie admisibils pentru (Pp). Din con- vexitatea functiei f si (2.3.5), rezulta: J (2 Ao) $ Aof (to) + (1 — Ao) f (@*) < f (@*)- Aceastd relatie contrazice ins& optimalitatea lui * in problema (Pr). Deci. £® este o solutie optima a problemei (Pry). Pentru unicitate, dac& presupunem c& mai exista o solutie optima Zo a lui (Pay), adic& f (xo) = f (@") , dar to # 2”, atunci, repetand rationamentul de mai inainte, obtinem c& z(o) # Z* este o solutie optima’ a lui (Pa). ins& acest fapt contrazice unicitatea lui 2®. . 9 (Zo) >o| cL Propozitia 2.8 Dact @* si Z*' sunt solutiile optime a doud sub- probleme obtinute prin relazare, unde R’ este determinat la Pasul 4 sau 5 al algoritmului, atunci £ (8) <§ (2”). Demonstratie. Daci R’ = RU V, atunci afirmatia propozitiei este evident&. Pentru cazul R’ = RUV \U, folosind Propozitia 2.7, avem: f (é") ae f (2) < f (grrr) : ceea ce era de demonstrat. 2 Observatia 2.6 Convezitatea functiilor f si gi, precum si cea a mul- timii S, permit eliminarea restrictiilor neactive. fn absenta converi- tatit restrictiilor g;, Propozitia 2.8 rdméne adevdratdé numai dacd res- trictiile se adaugd (cazul R' = RUY), fara ca vreuna sd fie eliminatd. 2.3 Metode de partitionare gi relaxare 79 Propozitia 2.9 Algoritmul de partitionare si relazare se termind intr-un numdr finit de iteratii. Demonstratie. Deoarece multimea de indici M este finit’, ea are doar un numé&r finit de submultimi distincte. Atata timp cat valorile optime f (2*) ale subproblemelor (Pa) cresc de la o iteratie la alta, nici o submultime de indici nu se poate repeta. Deoarece in cazul cand f (@) = f (2), nici o restrictic nu se elimina gi se adaug’ cel putin una, valoarea optima’ a subproblemelor generate rim4ne constantd numai pentru un numir finit de iteratii. Astfel, algorimul se termina intr-un numéar finit de iteratii, fie la Pasul 1, fie la Pasul 2 (posibil ca R=M). : . in cele ce urmeaz’, vom aplica aceast’ metod& general de par- titionare si relaxare, la problemele liniare cu restrictiile bloc-unghiulare 2.3.2. Algoritmul lui Ritter Ritter [31] a elaborat un procedeu de partitionare pentru probleme liniare care au matricea restrictiilor in forma bloc-diagonala, blocurile fiind unite atat prin restrictii de cuplare cat si prin variabile de cu- plare. La fiecare iteratie variabilele problemei se partitioneaza in doud submultimi: o multime S; in care conditiile de nenegativitate sunt re- laxate si o multime S» in care acestea sunt impuse. fn momentul in care variabilele din S; devin nenegative, solutia curent& este optim’. Procesul iterativ porneste de la o partitie initiald care se modific% pana cAnd se gaseste o partitie optima. Problema pe care o vom studia in continuare se enunta& astfel: k a { Tait og } (2.3.7) isl in raport cu: k SoA t+ Gory i=l Dew+Gy = &, ist, (2.3.9) (2.3.8) N = 80 Capitolul 2: Metode de descompunere zi>0,i=1k, y>0. (2.3.10) Datele problemei au urmatoarele dimensiuni: Ape Reise De Race cia lk, Gi € R™™, GeER™, BER™, i=OD8. Vom presupune c& rang (D;) = mi, pentru orice i = 1,k. Aceasta ipotez& nu restrange generalitatea problemei deoarece, in cazul in care rang (D;) < mj, putem introduce variabile artificiale pentru a obtine rangul dorit. Acestor variabile li se vor atribui in functia obiectiv coeficienti de cost suficient de mari astfel inct, in cazul unei solutii optime, valoarea tuturor variabilelor artificiale s& fie zero. De asemenea, vom presupune cunoscut un vector initial y° € R™. y® > O, astfel incat, pentru orice i = Tf, sistemul Dit =b-Gi-y? s& fie compatibil. (Evident, dac&d nu exist un astfel de vector y°, atunci problema nu are solutii.) in aceste conditii, pentru fiecare 1 = 1,k, vom considera subpro- blema inf {ce} «2° | D;-c'=b;-Gi-y®, 2° > 0}. (2.3.11) Prin rezolvarea acestei subprobleme se obtine matricea de baz&é B; (care poate fi cea optim’, sau o baz& primal admisibila care indict o directie spre —oo). Astfel, coloanele matricei D; se pot partitiona in dou&: D; = (2:R) si folosind notatiile obignuite, din (2.3.9) obtinem: ap, = By! -b; — Be). Ry te, — By*-Gi-y. (2.3.12) Functia obiectiv (2.3.7) si restrictiile de cuplare (2.3.8) se pot rescrie gi ele in raport cu partitionarea respectiva: k (5, -8. + CR, PR.) +o -Y 1 i= 2.3 Metode de partitionare si relaxare 81 k Yo (Aa, 2a, + An, -tR,) + Go-y = bo #1 Dac& inlocuim pe zg, din (2.3.12) in relatiile de mai sus, obtinem problema redusi: k inf {Soren tah + i=l in raport cu k (Pr) YM an, + Moy = 8 i=l : oR, 20,i=1k, y20 unde am folosit notatiile: W = Rc, BR k aeeeceteeys est % = O- >, BG; M; = Ar,— Ag: By- Ri Mo = Go- D> Aa, Be: Gi B Il Ss | iM z & a = Numiarul restrictiilor din problema redus& (Pp) este mo, adic’ exact numarul restrictiilor de cuplare din problema initial’. Din felul in care a fost construit, sistemul de ecuatii din problema redus& (Pr) impreuna cu relatiile (2.3.12) sunt echivalente cu restrictiile (2.3.8) gi (2.3.9). Cu toate acestea, in problema redusa (Pp), variabilele zg,, i = 1,k, nu mai sunt supuse conditiilor de nenegativitate gi astfel, aceste conditii sunt relaxate. Prin urmare, multimea solutiilor admisibile ale lui (Pz) include pe cea a problemei (2.3.7)-(2.3.10) si astfel, dac& 82 Capitolul 2: Metode de descompunere problema redus& nu are solutii, atunci nici cea initial’ nu poate avea solutii. Se poate intémpla ins% ca (Pr) s& aibe optim infinit, chiar dac& problema initial are un optim finit. Pentru a preintampina o astfel de situatie, la problema redus& se adauga restrictia de marginire “tr teg-y Sh unde constanta p: > 0 are o valoare foarte mare, iar vectorii e; au toate componentele egale cu 1 si sunt de dimensiuni in concordant cu rp,. Dac& p este suficient de mare gi Ja terminarea algoritmului aceast& restrictie este activi’, atunci problema initial& va avea optimul infinit. Fie (Zp,,--.,R,,9) 0 solutie optima a problemei reduse (Pr). Din (2.3.12) obtinem: fp, = By). (b;-— Ri fp,-Gi- 9), i=1k. (2.3.13) Astfel, (Zs, ,@r,,-..,En,,Er,,9) va fi o solutie optima si pentru pro- blema initial’ ”modificat®”, in care conditiile zg, > O au fost elimi- nate. In baza Propozitiei 2.6 putem enunta urmitorul rezultat: Teorema 2.10 (de optimalitate) Dacd (p,,...,fr,,9) este o solutie optimé a probleme: reduse (Pp) si Zp, se determind din (2.3.13), atunci (Zp,,Fr,,.--,F5,,FR,,¥) este o solutie optima pentru problema (2.3.7)-(2.3.10) dacd gi numai dacd Zp, > 0 pentru orice i = Modificarea-problemei reduse. Dacd& testul de optimalitate nu este indeplinit, atunci vom putea aplica principiul de relaxare prezentat in paragraful anterior. Astfel, vom forma o problema redus& nou&, in care se va impune conditia de nenegativitate pentru unele variabile din B; cu valori negative (gi deci vor intra in (P,)), in timp ce pentru anumite variabile din R; cu valori pozitive, aceast& conditie va fi relaxat& (adicd, variabilele in cauz’ vor iegi din (Pp)). S& presupunem, dup& o eventual& reordonare a variabilelor din blocul , c& primele r > 1 componente ale lui Zg, sunt negative: (Ga);<0, j=, 2.3 Metode de partitionare gi relaxare 83 iar primele s > 0 componente ale lui Zz, sunt pozitive!: (én), >0, 9=1 8. Leg&tura dintre Zp, si Zp, este data de relatia (2.3.12) care se poate rescrie astfel: tp, +Bz*+ Ri: tp, = Br) -(b; -Gi+y) « (2.3.14) Doua cazuri sunt posibile: Cazul 1. Matricca formata din primele r linii si primele s coloane ale lui By} - R, confine cel putin un element diferit de zero. Pentru a fixa ideile, vom considera c& un astfel de elemet nenul se afl4 in pozitia (J,t), unde 1 0, este inlocuité de vari- abila (xg,), pentru care (Z,,) }; < 0. Operatia de schimare a bazei se poate efectua de mai multe ori in raport cu elementele nenule din primele r linii si s coloane ale lui By! - R;. Se obtine ast- fel, pentru fiecare bloc i, o nou’ matrice de baz4 B;. Cu ajutorul acestor matrice de baz&, se va forma o nou& problema redusa. Cazul 2. Matricea formata& din primele r linii si primele s coloane ale lui By? - R; are toate elementele egale cu zero. In acest caz nu se mai pot efectua operatii de schimbare a bazei, in schimb, la problema redus& se va ad&uga una sau mai multe restrictii care s&% impun’ conditia de nenegativitate incalcata. Astfel, dac& (Z5,); < 0, 1 < j 0, atunci aceasta poate fi climinata. Conform Propozitiei 2.7, solutia optima nu va fi afectat&é de aceasta eliminare. Cazul 4. Dac restrictia (2.3.15) este activa pentru solutia optima a problemei reduse, adica (B;"),- (0: — Fi Er, — GG) =0, iar mn vectorul linie (By ie - R; exist& un element nenul care per- mite efectuarea unei schimbari de baza astfel incat (rp,), s& fie inlocuité de o variabild (rp,), pentru care (Zp,), > 0, atunci, dupa efectuarea schimbarii de baza, restrictia va fi eliminata. Solutia optima va ramane din nou neschimbat& deoarece, prin schimbarea bazei, restrictia in cauzd este de fapt rescris& intr-o forma mai convenabila, in raport cu o variabil& care este pozitiva, si astfel, conditia aceasta poate fi suprimata. Cazul 5. Daca restrictia (2.3.15) este activ’ si toate elemente din vectorul linie (By e), - R; sunt nule, atunci aceasta va fi mentinut& in problema redus&. Din cele prezentate mai sus, pentru rezolvarea problemei (2.3.7)- (2.3.10), putem enunta urmatorul algoritm: Algoritmul lui Ritter Pasul 0. Prin rezolvarea subproblemelor (2.3.11) se determina’ ma- tricele de baz& initiale B; pentru fiecare bloc i = 1,k, si se formeaz& problema redus& (Pr). 2.3 Metode de partitionare gi relaxare 85 Pasul 1. Se rezolva problema redusa; se obtine solutia (Zp,,-..,Er,, 9) - Din relatia (2.3.13) se calculeaz& Zg,,i = 1,k. Dact Zp, > 0, pen- tru orice i = 1,k, atunci (Zg,,Zp,, -y Ep, ER,» J) este o solutie optima a problemei (2.3.7)-(2.3.10). Pasul 2. Pentru fiecare bloc in care Zg, are componcnte negative, dac& problema redus& contine restrictii suplimentare de tipul (2.3.15), atunci acestea vor fi prelucrate conform Cazurilor 3-5. Pasul 3. Pentru fiecare bloc in care Zg, are componente negative, fie se efectueaz& operatiile de schimbare a bazei corespunzdtoare Cazului 1, fie se adauga restrictii pentru impunerea unor conditii de nenegativitate din Cazul 2. Pasul 4. Cu matricele de baza si restrictiile obtinute din Pasii 2 si 3, se formeaz& o noua problema redusi gi se revine la Pasul 1. Deoarece algoritmul lui Ritter este un procedeu de partitionare gi relaxare, se pot aplica rezultatele generale cu privire la aceasta’ metoda. Astfel, in baza Propozitiei 2.8, valorile funtiei obiectiv vor fi monoton crescatoare, iar Propozitia 2.9 asigur& convergenta intr-un numar finit de iteratii a algoritmului. fn consecint’, putem enunta urmd&toarea teorema: Teorema 2.11 Dacd eliminarea conditiilor de nenegativitate asupra variabilelor pozitive din xp, se face doar dacd valoarea functiei obiectiv este strict crescdtoare, atunci algoritmul lui Ritter se termind intr-un numdr finit de iteratii, fie cu o solutie optima a problemei (2:3.7)- (2.3.10), fie se obtine o problemé redusd care nu admite solutii. 2.3.3. Algoritmul lui Rosen Metoda de relaxare si partitionare a lui Rosen [33] este o varianta a algoritmului lui Ritter, care se aplic&t la problemele de optimizare liniar& cu restrictiile bloc-unghiulare, adic&, care au matricea restricti- ilor in forma bloc-diagonala, iar blocurile sunt unite doar prin restrictii de cuplare. Evident, pot fi considerate si probleme in care legitura dintre blocuri s& fie realizat& doar prin variabile de cuplare, deoarece acestora le corespund probleme duale ce au forma descris& mai inainte. 86 Capitolul 2: Metode de descompunere Din cauza acestei forme a restrictiilor, algoritmul care se obtine are anumite avantaje, cum ar fi, de exemplu, faptul c& la problema redus& nu mai trebuie addugate restrictii suplimentare. Pe de alta parte, rezolvarea succesiv’ a problemelor reduse se poate face mai eficient, putandu-se utiliza algoritmul simplex dual, deoarece baza optima de la iteratia i, este inlocuit’ cu usurint& in iteratia i+ 1 de una dual admisibil&. Problema bloc-unghiular’ se enunt& astfel: k inf) ey «2! (2.3.16) i=] in raport cu: k SA: ‘a = by (2.3.17) t=] D-ci = b, i=Tk (2.3.18) 2i>0,i=1,k. (2.3.19) Datele problemei au urm&toarele dimensiuni: Ac € R™™, DER™™, cER™, i=Lk, & € R™, i=0,k. Vom presupune, far a influenta generalitatea problemei, c& ma- tricea restrictiilor (2.3.17)-(2.3.18) are rangul egal cu om, De aici rezult& c& rang (D;) =m, pentru orice i = 1,k. Boece iinalea unor baze initiale asociate fiecdrui bloc, se rezolv& subproblemele inf {ce} -2*|Dj-2' =), 220}, t=1k (2.3.20) Dac& una din aceste subprobleme nu are solutie, atunci nici problema (2.3.16)-(2.3.19) nu va avea solutie. In caz contrar, fie B; bazele obtinute prin rezolvarea subproblemelor (2.3.20), acestea putand fi cele optime sau cele care indic& o directie spre —oo. Cu ajutorul aces- tor baze, partition&’m coloanele matricelor D; = { B;: R) gi folosind 2.3 Metode de partitionare gi relaxare 87 notatiile obignuite, sistemele (2.3.18) se pot rescrie astfel: zp, = By)-b; — By)- R;- zp, (2.3.21) In mod similar, se partitioneaz& si functia obiectiv (2.3.16) si restric- tiile de cuplare (2.3.17): k inf > (cp, - 2p, + CR, -tR,) i=l k DY (4a, 25, + Ar, tn.) = bo i=l gi inlocuind aici pe zg, din (2.3.21), obtinem problema redusd: k inf Yat - tr, +a a1 in raport cu (Pr) k oe M;- tr, = 6B i=l tr, 20,1=1k unde am folosit notatiile: Wo OH BER a= Sa M = tn ~ Ag, Be! Re B= yo. i=1 Problema redus& (Pp) are doar mo restrictii. Deoarece restrictiile problemei reduse impreun’ cu (2.3.21) fac parte din restrictiile pro- blemei initiale, dac& (Pg) nu are solutii, atunci nici problema (2.3.16)- (2.3.19) nu va avea solutii. Exist& ins& posibilitatea ca (Pa) s& aibe optim infinit, in timp ce problema initial’ s& aibe optim finit. Pen- tru a preintampina o astfel de situatie, la problema redus& se adaugd 2.3 Metode de partitionare gi relaxare 87 notatiile obisnuite, sistemele (2.3.18) se pot rescrie astfel: ap, = By) -b; — By)- R;- rp, (2.3.21) in mod similar, se partitioneaz& si functia obiectiv (2.3.16) si restric- tiile de cuplare (2.3.17): k inf > (cB, + 2p, + Ch, -tR,) i=l k Yo (4a, 28, + An, tr.) = bo i=l + gi inlocuind aici pe zg, din (2.3.21), obtinem problema redus&: k inf Yow - tr, +a i=l in raport cu k (Pr) SoM an =8 i=l tr, 20,i=1k unde am folosit notatiile: r T i W = cece BSR k a = Soop: Beh i=] M, = An, — As, By? Ri k B = by- So An, Bet bi i=1 Problema redus& (Pp) are doar mo restrictii. Deoarece restrictiile problemei reduse impreun’ cu (2.3.21) fac parte din restrictiile pro- blemei initiale, dac& (Pz) nu are solutii, atunci nici problema (2.3.16)- (2.3.19) nu va avea solutii. Exist& ins& posibilitatea ca (Pp) s& aibe optim infinit, in timp ce problema initial’ s& aibe optim finit. Pen- tru a preintampina o astfel de situatie, la problema redus& se adaugd 88 Capitolul 2: Metode de descompunere o restrictie de marginire de forma k Yoel tr: Sz i=l unde constanta 4 > 0 are o valoare foarte mare, iar vectorii e; au toate componentele egale cu 1 gi sunt de dimensiuni in concordant& cu tr,. Dac& p este suficient de mare gi la terminarea algoritmului aceasta restrictie este activ’, atunci optimul problemei initiale va tinde spre —90. Fie (Zr,,...,r,) 0 solutie optim’ a problemei reduse (Pz). Din (2.3.21) obtinem: Gp, = By); — Bo’ Ry-Bp,, i=Dk. (2.3.22) Astfel, (2p,,Zr,,-.,E3,,Fr,) va fi o solutie optima si pentru pro- blema initiala ”modificata”, in care conditiile zz, > 0 au fost re- laxate. Tindnd seama de rezultatele antcrioare cu privire la metoda de relaxare, putem enunta urm&toarea teorema. Teorema 2.12 (de optimalitate) Dacd (Zx,,...,i-,) este o solutie optima a problemei reduse (Pp) gi Zp, se determind din (2.3.22), atunci (Zg,,ZR,,...,En,,Er,) este o solutie optima pentru problema (2.3.16)-(2.3.19) dace gi numai daca Zg, > 0 pentru orice i = 1,k. Dac& testul de optimalitate nu este indeplinit, se poate forma o noua problema redus&, in care se va impune conditia de nenegativitate pentru cel putin o variabil& din B; cu valori negative, in timp ce pentru o anumit’ variabila din R; cu valori Pozitive, aceast& conditie va fi relaxata (adic&, se va putea efectua cel putin o operatie de schimbare a bazei intre coloanele din D,). Deoarece problema. (2.3.16)-(2.3.19) nu contine variabile de cuplare, la problema redus& nu mai trebuie sa se adauge restrictii suplimentare, aga cum a fost cazul la algoritmul lui Ritter. Teorema 2.13 Fie (Zp,,...,iR,) 0 solutie optima a probleme reduse (Pp). Dacé pentru un anumit i, 1 0. Demonstratie. Pentru a simplifica scrierea pe parcursul acestei demonstratii, vom renunta la folosirea indicelui i, care indentificd blocul in care conditia de optimalitate este incalcaté. Astfel, vom considera partitionarea matricei D = (| B:R) € R™*", iar multimile de indici pentru coloanele corespunz&toare le not&m cu B si R. Conform ipotezelor de lucru, baza B este primal admisibil& pentru subproblema (2.3.20) si deci, solutia de baz& asociat& are toate com- ponentele nenegative: a > 0, unde Zg = B~- b, fiind agadar o sulutie admisibila a sistemului (eet ey zp>0, tr>0 (2.3.23) Pe de alt& parte, vectorul et ) verific&d doar sistemul de ecuatii de mai sus, dar incalc& conditia zg > 0, deoarece in ipotezele teoremei, Zg contine clemente negative. Pentru 2 € (0, 1] definim vectoul z() € R” astfel: 20)= (20) ) -a-a(@ )+a(#). Avem evident Dz (A) = 6, oricare ar fi \ € 0,1]. Deoarece zp (A) = AER > 0, pentru ca x(A) s& fie o solutie a sistemului (2.3.23), este suficient s& impunem conditia tp (A) = (1— A) te + AZg > 0,~ adic’, (Zs); (78); - (&s),’ unde Z = {i| (Zs); < 0} € {1,2,. =min{ —(8k__| _ __@s), Ao = Tin { (a), — om FiGsi=Gayt (2.3.24) pentru orice i € Z, ..,m}. Prin urmare, luand 90 Capitolul 2: Metode de descompunere avem x (Xo) > 0, si 2 (Ao) = 0. Vom nota J = {| ln); >0} ¢ {1,2,...,n—m}. Multimea J este nevid&, deoarece in caz contrar, Zz = O si atunci, din (2.3.22) rezult’ Zg = B-!-b > 0, ceea ce contrazice ipoteza cd Zg are com- ponente negative. Deoarece x (Ao) verific&d sistemul D-x = b, putem scrie B- (@p +o (@s ~ Zn) + 0), Fi (Er); = 6, e sau, inmultind la stanga cu Bo? si finand a. c& 2, (Ap) = 0, avem 7 So ai (0) e+ 0) BT: RP (Zn), = Bob, (2.3.25) iB GET unde e‘ € R™ este vectorul unitar cu 1 pe pozitia i. Rangul matricei sistemului (2.3.25) este egal cu m gi este acelasi ca cel al matricei D. Deoarece vectorii e* sunt linar independenti si sunt doar m — 1 la numéar, rezult& c& exist’ un s € J astfel incdt (B~'- R*), #0. Cu alte cuvinte, din (2.3.25) deducem c& sistemul D- 2 = } admite o solutie nenegativa chiar si in absenta coloanei B” din matricea D. in baza Teoremei fundamentale a programirii liniare, dac& x (Ao) este o solutie admisibil& pentru (2.3.23) in care coloana B” lipseste, atunci existd si o solutie admisibila de baz&. Matricea de baza& astfel obtinut& nu va contine pe B’, in schimb, va avea in componenta ei cel putin o coloan’ R*, s € J. Astfel, teorema este demonstrata. . Pentru a obtine o nou& baz4 primal admisibila B; corespunzAtoare unui bloc neoptimal 7, adic’ pentru care vectorul Zs, determinat din (2.3.22) are componente negative, este suficient s& se rezolve 0 pro- blema de tipul min {z;} tn raport cu B-ag+ SR (zr); =6 (2.3.26) GET tgp20, (tr), 20,9€F unde indicele r realizeaz% minimul din relatia (2.3.24). O matrice initiala de baz& este chiar matricea B, iar problema admite o solutie 2.3 Metode de partitionare si relaxare 91 optima in care x, este o variabilX secundar&. Prin rezolvarea problemelor de tipul (2.3.26) pentru fiecare bloc neoptimal, se obtin matricele de baz& noi B, cu ajutorul carora se determina o nou& problema redus& si procedeul se repeti. Deoarece metoda descrisé& aici foloseste tot o tehnic& de partitionare si relaxare, rezultatele generale se pot aplica si aici pentru a justifica faptul c4 problema se poate rezolva intr-un numar finit. de iteratii. Procedeul descris mai sus se poate rezuma in urm&torul algoritm: Algoritmul lui Rosen Pasul 0. Se determin’ pentru fiecare bloc i = 1, k, bazele initiale B; prin rezolvarea subproblemelor (2.3.20). Dac& una din subpro- bleme nu admite solutie, atunci nici problema (2.3.16)-(2.3.19) nu are solutie. STOP. Altfel, cu ajutorul bazelor B;, i = 1,k, se formeaz& problema redus& (Pr). Pasul 1. Se rezolv’ problema redus& (Pp). Dac& (Pp) nu are solutie, atunci nici problema (2.3.16)-(2.3.19) nu are solutie. STOP. Altfel, se obtine o solutic optima (Zr,,..., Fr.) - Pasul 2. Se calculeaz& Zg,, i = 1,k, din relatia (2.3.22). Pasul 3. Dac& ig, > 0,1 = 1,k, atunci (%g,,Zr,,...,E2,,Ez,) este o solutie optima a problemei (2.3.16)-(2.3.19). STOP. In caz contrar, pentru fiecare bloc i in care Zg, are componente negative, se determin& indicele r € Z din formula (2.3.24) gi se rezolva problema (2.3.26) corespunzatoare, obtinandu-se o nou& baz& primal admisibila B;. Pasul 4. Cuajutorul bazelor B; obtinute la pasul anterior, se formeaza © noua problema redusé& gi se revine la Pasul 1. Observatia 2.7 Exist diferite moduri in care se poate alege vari- abila asupra cdreia sé se impund conditia de nenegativitate tncdlcatd. Deoarece aceasté operatie nu conduce la mdrirea dimensiunii proble- mei reduse, devine atractivd ideea de a impune cat mai multe astfel de conditit in acelagi timp. Acest lucru se poate realiza cu ugurintd prin 92 Capitolul 2: Metode de descompunere inlocuirea functiei obiectiv din problema (2.3.26) cu nin{ >a}. Considerarea unor astfel de probleme se poate face pentru fiecare bloc neoptimal. Observatia 2.8 Dacd testul de optimalitate nu este indeplinit, tn urma operatiilor care se efectueazé asupra blocurilor neoptimale la Pasii 3 i 4 ai algoritmului, baza optimd a problemei reduse se trans- forma inir-una dual admisibild. Astfel, la iteratia urmdtoare, se poate folosi algoritmul simpler dual pentru rezolvarea problemei reduse. Pentru a justifica observatia de mai sus, s& consideram o problema cu un singur bloc: inf {e we) P2=% p> of. (2.3.27) D-z in care AE R™™*", DE R™*, iar c € R®, by CR™ sib eR”. Deoarece orice problem’ de programare liniara, care are cel putin doua restrictii, poate fi considerat& in forma de mai sus, rezult% c& algoritmul lui Rosen are un caracter general. Pe de alta parte, intr-o problema& cu mai multe blocuri, acestea sunt independente intre elc, in sensul c& orice schimbare de baz& efectuata in cadrul unui bloc nu are efect asupra celorlalte blocuri, iar in ceea ce priveste restrictiile de cuplare, schimbarile care survin aici se aplicd doar in zona care corespunde bocului respectiv. Din aceast& cauz&, analiza pe care o facem in continuare asupra problemei (2.3.27) se poate extinde fara nici o dificultate si la problemele cu mai multe blocuri. Prin partitionarea coloanelor lui D = { B: R} in raport cu o ma- trice nesingular’ B, avem zp =Bo'.b-B-R- zp (2.3.28) 2.3. Metode de partitionare si relaxare 93 si substituind pe zg in problema (2.3.27), obtinem problema redus& inf {77 - cr} +a in raport cu M-2tr=B (2.3.29) IR>O0 in care conditia zg > 0 este relaxat& si am introdus notatiile: Y= hd BR a = cy-B-b M = Ag~-Ag- B!-R B = bo—Ag- Bo -b Rezolvarea problemei reduse conduce la partitionarea coloanclor matricei M = { M,:M,), unde M, este matricea de baz& optima. Vom nota cu Ry gi R2, multimile de indici corespunzdtoare coloanelor care intr& in componenta lui M,, respectiv M2. Printr-o eventual& reordonare a coloanelor problemei (2.3.27), putem considera B = {1,2,...,.m}, Ri = {m+1,m+2,..,.m+mo} si Ry = {m+mp+1,...,n}. Tabloul simplex corespunz&tor solutiei optime a problemei (2.3.27), va avea urmatoarea structurd: TRy TR tr, |B| Imo My'- My » | 0x, wr unde 8 = My-8, v este valoarea optima a problemei reduse, Om este vectorul nul de dimensiune mo, I,,, este matricea unitate de ordinul mo, iar w" este vectorul linie constituit din costurile reduse. Deoarece M, este o baz& optim’, avem w < 0. Putem extinde acest tablou prin 94 Capitolul 2: Metode de descompunere includerea in el si a restrictiilor (2.3.28): iB TR TR Th Yr Yr, TR, |B] Omoxm Imo My! Mz v{| Of On, wr o Tg unde 6 = B-1-b si Y = B7}- R. De fapt, tabloul de mai sus reprezinta o rescriere a problemei (2.3.27) intr-o forma echivalenta. Dac& presupunem acum ci vectorul Zs = b — Yr, -B are o com- ponenta& negativa, fie aceasta (Zg), < 0, atunci, conform algoritmului lui Rosen, exist’ o component y-4 # 0 a matricei Yp, pentru care (Zr,)_ = By, > 0. Schimbarea de baz%, care se efectucaz’ pentru in- locuirea variabilei (zp,), = Imsk CU (rg), = 2, se va realiza cu pivotul y,.. Deoarece in tabloul considerat mai sus, ultimul element din coloana k € R este zero, valorile lui v si w nu se vor modifica in urma schimbarii de baz’. Astfel, noua baz% care se va obtine pentru problema redus& va ramane dual admisibil’. De asemenca, cele mg linii din tablou, corespunz&toare lui ®,, vor ramane neschimbate, cu exceptia liniei k, care va primi valorile dup’ cum urmeaza: Dp ttt Tmt t+ mek 11 mimo 0 Oar 0 B 5, (i =Yemg By re 9 ra 0 ‘Ure 0 Oe Oa 1 De aici se vede cu ugurint& c&, pentru noua problema redusa, in care vom avea Ri“ = R,\{k} U {r}, inversa matricei de baz& se obtine din cea veche astfel: (Mayet)! = Exe Mz unde E,, este o matrice p&tratic’ de ordinul mo, care difera’ de ma- tricea unitate doar prin linia k, care se inlocuieste cu linia r a matricei 2.3 Metode de partitionare si relaxare 95 Yp,-. ludnd toate elementele cu semnul schimbat 1 0 0 0 0 ee Exe = Url tt TYrk-1 —Yrk —Yrkti °° ~Yrmo 0 0 0 1 tee 0 i. Ll Indiferent de numarul de schimb&ri de variabil& care se face in- tre componentele lui zg si rp,, valorile lor corespunzitoare nu se vor schimba, deoarece acestea reprezintaé solutia unic& a sistemului de ecuatii In-tet+Yr,-tr, = 5 Ino tr. = 8 Prin urmare, noua baz& M?, care se obtine pentru problema redusa, va fi dual admisibil’, deoarece w < 0 rim4ne neschimbat si solutia corespunz&toare contine componente negative. 2.3.4. Exemplu de aplicare a algoritmului lui Rosen S& consideram urma&toarea problema: inf {—2y — 22 — 2z5 — 25 + 2g} in raport cu Z, +222 +225 +26 = 40 ry, +22 +425 +276 = 650 a, +3¢2 +23 = 30 22; +22 +24 = 20 25 +27 =10 x +2 =10 ts +26 +2zg =15 a 20,4=1,9. 96 Capitolul 2: Metode de descompunere Pasul 0. Pentru determinarca bazelor primal admisibile initiale, vom rezolva subproblemele: az, +322 +23 = 30 inf ¢ —2,—z_ | 22, +29 +z4 =20 2 20,i=1,4 care are solutia optima: 2, = 6, 29 = 8, 23 = 24 = 0, gi Zs +27 =10 A x +2 =10 inf ¢ —225 — 2g + 2g ee si 7 eas 2 >0,1=5,9 care are solutia optima: 25 = 10, r§ = 2g = 5, 7 = Fo = O. Bazele initiale vor fi: oo a=(5 care arc inversa B= 3( i . 100 100 B={011 care are inversa By’ =[{ -1 0 1 110 le Cu ajutorul matricelor de baz& B, si Bo, se fac urm&toarele sub- stitutii in functia obiectiv si in restrictiile de cuplare ale problemei initiale: (2)-(3)-(G L)(2)- 6+ bay - Say t 8 Sieg NA 8 ~ 3x + bay ts 10 1 0 v 10-27 te }={ 5 |-|{ -1 1 @. 5+27—29 2g 5 1 -1 8 5-27 +29 Se obtine astfel problema redusa: ag + degt 27 +29 =7 1 2 inf ¢ -29+ 573 + au — 27+ 329 4x3 + 2a4 + 2x7 +229 = 14 a; > 0, 1 € {3,4,7,9} 2.3 Metode de partitionare gi relaxare 97 Iteratia 1. Pasul 1. Se rezolv’ problema redus&, care are solutia optima: @7 = 7, &3 = L4 = Zo = O, iar valorarea optima este: —29 -7 = -36. Tabloul simplex corespunz&tor solutici optime este: T3427 _ Io afO]1.0 0 0 ee reo =r [s0nt=3/o Obed Pasul 2. Cu solutia problemei reduse, determindm valorile vari- abilelor substituite: (2)-(8)-@ 4)(@)-@) (=)-(2)-(4 2)0)-(8) Pasul 3. Deoarece zg = —2, solutia nu este optima. Va trebui deci s& efectuim o schimbare de baz& in blocul al doilea, inlocuindu-] pe x7, care este singura variabil& care are o valoare pozitiva, cu zg, care are o valoare negativ’. Noua baz& va corespunde variabilelor x3, 2 $i 27, deci Le Oct Oe Brew=( O10], (Beyt=[0 1 0 110 11 -1 Pasul 4. Se formeaz& o noua problema redus& corespunzitoare lui B}™, efectuand in problema initial’ substitutiile: C0. Gee) aces %2 8 ¢ -} TH 8 — 203+ $24 zs 5 ele _ 5+ 2g — 2g ze }={ 10 ]-{ 1 0 ()- 10 — 28 27 5 1 -1 _ 5—2g+29 98 Capitolul 2: Metode de descompunere Problema care se obtine este: 823 + beg — ty + 2t9 = 2 43 + 224 — 209+ dy = 4 20, 6€ (3,4,8,9} 1 2 inf ¢ -34+ Bo + 5% — Te + 229 Iteratia 2. Pasul 1. Pentru rezolvarea problemei reduse, vom scrie tabloul simplex in raport cu baza corespunzatoare lui 3 gi zg, care stim c& este dual admisibila: i324 gg Aplicand algoritmul simplex dual, zg va fi inlocuit in baz& de 9: t3 Tq Zg__Z9 a3 [0] 1 0 a) ode Onell; li 2c] [2,0 -1/f5 0 0 Acest tablou este optim, solutia fiind: 29 = 1, 23 = 24 = zg = 0, iar valoarea optim’ a problemei reduse va fi egald cu —3442 = —32. Pasul 2. Calculam valorile variabilelor substituite: ay (6 -} 3 Oye (a6 (2)=(3)-(F 4) (0) -(a) 5 5 ea : 4 gz }=|10}-] 1 0 ()- 10 £7 5 eee 6 eoarece acestea sunt toate nenegative, solutia obtinut& in aceast& interatie este optima pentru problema bloc-unghiu- lar&: 2 = 6, to = 8, 3 = 44 = 0, 5 = 5, zg = 10, 7 = 5, ag = 0. Zg = 1, cu valoarea optima: —32. Capitolul 3 Metode cu siruri recurente 3.1. Introducere Algoritmul simplex se bazeazi pe urmatoarea strategie: porneste dintr-un punct de extrem al domeniului de admisibilitate (dac& acesta exist’), alege de-a lungul unei muchii un varf adiacent cu cel anterior, astfel incdt valoarea functiei obiectiv s&-si imbundtateascd valoarca; procedcul se repet& pani cand, fie se ajunge intr-un varf optimal. fic valoarea functiei obiectiv devine nemarginit’ de-a lungul unei raze extremale a domeniului. Cu alte cuvinte, c&utarea solutiei optime se face pe frontiera domeniului de admisibilitate, dircctiile folosite fiind de-a lungul muchiilor domeniului. Aceast& strategie s-a dovedit ns& neadecvat& pentru problemele liniarc de dimensiuni mari, timpul de rezolvare devenind prohibitiv din cauza numarului mare de iteratii care creste exponential in raport cu dimensiunea problemei. Murty si Fathi [26] au prezentat variante ale algoritmului simplex care constau in alegerea succesiunii de varfuri dup& directii ce trec prin interiorul domeniului de admisibilitate sau al unei fete de dimen- siune cel putin doi. Se poate demonstra c&, in ipoteze putin restrictive, acesti algoritmi sunt finiti, iar implementarea lor se face folosind in- versa bazei curente, intocmai ca la algoritmul simplex. Experimentele de calcul au pus in evident& faptul c& timpul de rezolvare a proble- melor liniare este imbun&tatit pe aceast& cale fata de varianta clasica, dar fenomenul cresterii exponentiale a iteratiilor odat& cu cresterea dimensiunii nu este eliminat. Fenomenul acesta s-a putut constata chiar si la metodele de descom- punere sau partitionare, folosite in rezolvarea unor probleme reale. 99 100 Capitolul 3: Metode cu siruri recurente O alternativa la aceste metode a fost elaborarea unor algoritmi care s& construiasc& un gir de puncte convergent citre solutia optima, fie din ineriorul domniului de admisibilitate (metode de punct interior), fie din exteriorul acestuia (metode de punct exterior). Inspiratia pen- tru o astfel de abordare provine din optimizarea neliniar&’. Ceea ce se urméareste in mod deosebit la aceste metode este ca efortul de calcul s& nu mai aibe o crestere exponentiala in raport cu dimensiunea pro- blemei, ci s& fie "in timp polinomial” - notiune pe care o vom explica in paragraful urmator. Prin publicarea in 1979 a algoritmului elipsoidal, Hacian [16] a fost primul care a pus in evident& posibilitatea obtinerii unor metode care sunt mai eficiente in rezolvarea problemelor de dimensiuni mari decat cele bazate pe algoritmul simplex. Fiind o metoda de punct exterior, acest& inovatic in ceea ce priveste abordarea problemelor liniare, a fost primit&’ pentru inceput cu destul& retinere, deoarece viteza sa de convergenta nu a fost suficient de conving&toare. Abia dupa publicarea in 1984 a algoritmului lui Karmarkar [20], interesul pentru astfel de metodc alternative a cunoscut o dezvoltare remarcabila. Algoritmul lui Karmarkar este 0 metod& de punct interior pentru rezolvarea problemelor de programare liniar&. El necesit% cunoasterea unui ”punct initial” din interiorul domeniului de admisibilitate, pen- tru ca incep4nd cu acesta, sa se genereze un gir de puncte din interiorul domeniului de admisibilitate, cu proprietatea c& costurile lor s& con- vearg’ catre costul optimal. Exist8 doud tipuri de astfel de algoritmi: e algoritmul proiectiv, care folosegte transformari proiective pen- tru generarea sirului de puncte. Karmarkar a demonstrat ci al- goritmul este convergent gi rezolv& problema in timp -polinomial; e algoritmul afin, care foloseste transformari afine pentru gene- rarea punctelor. Pentru acesta nu s-a demonstrat c& poate s& convearg& in timp polinomial, in schimb, el prezint&é evidente avantaje pentru implementarea lui practic& si de altfel, majori- tatea consemnarilor cu privire la performantele obtinute de al- goritmii de punct interior, sunt fXcute pentru cazul afin. 3.2. Algoritmul elipsoidal 101 Pentru ambele variante exist% un cmp vectorial al solutiilor ad- misibile, care poate fi descris de ecuatii diferentiale din care se obtin traiectorii ale solutiilor admisibile in interiorul domeniului, iar toate aceste traiectorii ajung la o solutic optim’. De regula, cele doua tipuri de algoritmi genereaza puncte de-a lungul unor traiectorii diferite, dar ele au totusi in comun o traiectorie, numit’ ”traiectoria centrala”. 3.2. Algoritmul elipsoidal Primul algoritm in timp polinomial a fost claborat de matemati- cianul sovietic L.G. Hacian [16] si este 0 metod& de punct exterior. Acest algoritm nu rezolva direct o problema de programare liniara, ci un sistem de inegalit&ti echivalent cu aceasta. Deoarece conceptul principal pe care se bazeazi& este cel de ”elipsoid”, metoda mai este cunoscuta si sub denumirea de ”algoritmul elipsoidal”. Calculatorul virtual. Pentru a putea evalua cu mai mult& usurint& efortul de calcul in aplicarea algoritmului, vom considera c&% avem la dispozitie un calculator virtual, care are urm&toarele caracteristici: - toate operatiile aritmetice (+, -, *, /) sunt efectuate intr-o uni- tate de timp, indiferent de m&rimea operanzilor, iar rezultatul este obfinut exact (ftira trunchiere). De asemenea, rid&cina pa- trata se poate extrage exact gi tot intr-o unitate de timp; - se pot efectua comparatii; - nu exista limit&ri pentru reprezentarea numerelor. Evident, calculatoarele reale nu se bucur& de toate aceste propri- et&ti. Rezultatele operatiilor aritmetice sunt de cele mai multe ori trunchiate, ca de altfel si extragerea réd&cinii p&trate, care in plus, se obtine in urma unui proces iterativ ce implic& foarte multe operatii aritmetice. Ma&rimea unei probleme. Fiind data o problema de programare liniar’, vom numi m&rimea 102 Capitolul 3: Metode cu siruri recurente problemei numarul de biti necesari pentru reprezentarea binara a tuturor coeficientilor nenuli. Acest numéar fl vom nota cu L si valoarea sa este estimata prin formula: L=mon + [logy |P|] + 7 flog, n] (3.2.1) unde m gi n sunt dimensiunile problemei, iar P este produsul tuturor coeficientilor nenuli din problem&. Notatia [x] reprezint& cel mai mic lumar natural care este mai mare sau egal cu x. Rezolvarea in timp polinomial. Vom spune ci’ o problema se poate rezolva in timp polinomial, dac& exist’ un polinom p si o metod& de calcul prin care se obtinc solutia optima intr-un numar de operatii ce este marginit de valoarca p(L), unde L este m&rimea problemei. Bine-nteles, acest concept este legat de existenta calculatorului virtual. Chiar dac& un astfel de calculator nu exist& in mod real, valoarea p(Z) pune in evidenta efortul de calcul necesar pentru re- zolvarea problemei. Astfel, timpul de rezolvare a unei probleme va avea o crestere ”polinomiala in timp” in raport cu marimea L, gi nu una “exponential&” in raport cu dimensiunea ei. 3.2.1. Probleme liniare echivalente Vom considera urm&toarea problema de programare liniara: inf {c’-2|A-2=b, > 0} (PL) unde A € Z™", b € Z™, c € Z" si rang(A) = m. Cerinta ca toate datele problemei s& fie numere intregi nu constituie o restrangere a generalit&tii, deoarece, din punct de vedere practic, se lucreaz& oricum numai cu numere rationale si amplificarea acestora cu numitorul lor comun, conduce la o problema in forma de mai sus. Dac& considerSm problema dual& a lui (PL): sup {67-u| AT-u

You might also like