Cercet¼ari operaţionale B¼arb¼acioru Iuliana Carmen CURSUL 9
Cursul 9
Cuprins Programare liniar¼a 5.1 Modelul matematic al unei probleme de programare liniar¼a.................... 5. Forme de prezentare a modelului matematic............. 5.3 Clasi carea soluţiilor unei probleme de programare liniar¼a. Propriet¼aţi.................... 5.4 Metode pentru obţinerea unui program de baz¼a şi a unei baze ortonormate............................... 5.5 Algoritmul simplex........................... 5.6 Metode pentru obţinerea unui program de baz¼a iniţial....... 5. Dualitatea în programarea liniar¼a................... 6 Index 14 3
Cursul 9 4
Capitolul Programare liniar¼a.1 Modelul matematic al unei probleme de programare liniar¼a. Forme de prezentare a modelului matematic.3 Clasi carea soluţiilor unei probleme de programare liniar¼a. Propriet¼aţi.4 Metode pentru obţinerea unui program de baz¼a şi a unei baze ortonormate.5 Algoritmul simplex.6 Metode pentru obţinerea unui program de baz¼a iniţial 5
Cursul 9. Dualitatea în programarea liniar¼a Fiec¼arei probleme de programare liniar¼a de nit¼a în paragraful precedent îi corespunde o nou¼a problem¼a de programare liniar¼a denumit¼a duala acesteia. Putem deci vorbi de existenţa unui cuplu, primal-dual de probleme de programare liniar¼a care se poate utiliza în modelarea matematic¼a a fenomenelor economice. Am v¼azut c¼a algoritmul simplex se poate aplica doar pe forma standard a unei probleme de programare liniar¼a. Deoarece orice form¼a canonic¼a poate adus¼a la forma standard, teoria dualit¼aţii o vom expune în continuare pentru forme canonice datorit¼a simetriei şi datorit¼a faptului ( c¼a de asemenea, orice egalitate A X B A X = B se poate scrie sub forma echivalent¼a A X B Duala unei probleme de programare liniar¼a se scrie în felul urm¼ator: 1. Fiec¼arei restricţii ale problemei primale i se ataşaz¼a o variabil¼a y i, deci în problema dual¼a variabilele vor y 1 ; y ; :::; y m ;. Coe cienţii funcţiei obiectiv din problema primal¼a devin termenii liberi ai sistemului de restricţii în problema dual¼a iar termenii liberi din problema primal¼a devin coe cienţii funcţiei obiectiv în problema dual¼a; 3. Duala unei probleme de maxim va o problem¼a de minim şi invers; 4. Coe cienţii unei variabile x j devin coe cienţi ai unei restricţii în problema dual¼a, ec¼arei variabile x j din problema primal¼a corespunzându-i o restricţie din problema dual¼a. Din acest motiv, problema dual¼a va avea n restricţii iar coe cienţii acestora formeaz¼a matricea A t ; 5. Variabilelor nenegative din problema primal¼a le corespund inegalit¼aţi concordante în problema dual¼a; 6. Domeniul de variaţie al variabilelor y i ; i = 1; m se stabileşte pe baza corespondenţei dintre restricţia R i din problema primal¼a şi variabila dual¼a y i ce i se ataşeaz¼a. Acest lucru înseamn¼a c¼a restricţiilor concordante la corespund variabile nenegative y i 0, celor neconcordante variabile negative y i 0 iar restricţiilor scrise sub form¼a de egalit¼aţi le corespund variabile duale ce nu sunt supuse restricţiilor de semn. Schematic, cele spuse mai sus se pot prezenta astfel: 6
Cercet¼ari Operaţionale B¼arb¼acioru Iuliana Carmen Problema primal¼a P max [f (X)] = n c j x j 8 np I. a hj x j b h ; h I 1 np >< II. a kj x j b k ; k I np 6 III. a lj x j = b l ; l I 3 4 >: x j 0; j = 1; n P min [f (X)] = n c j x j 8 np I 0. a hj x j b h ; h I 1 >< np II 0. a kj x j b k ; k I np 6 >: III 0. a lj x j = b l ; l I 3 4 x j 0; j = 1; n unde I 1 [ I [ I 3 = f1; ; :::; mg: Tabelul.1 Problema dual¼a P min [g (Y )] = m b i y i i=1 mp a ij y i c i ; j = 1; n i=1 y h 0; h I 1 6 4 y k 0; k I y l R; l I 3 P max [g (Y )] = m b i y i i=1 mp a ij y i c i ; j = 1; n i=1 y h 0; h I 1 6 4 y k 0; k I y l R; l I 3 Propoziţia..1 Dac¼a problema dual¼a admite un program atunci: f (X) g (Y ) Demonstraţie: S¼a consider¼am cuplul max [f (X)] = C t X 6 4 A X B X 0 6 4 min [g (Y )] = B t Y A t Y C Y 0 (.1) care rezult¼a din forma canonic¼a a problemei 1 din tabelul.1. Înmulţim AX B cu Y t la stânga şi A t Y C cu X t la stânga. Obţinem: Y t A X Y t B (.) X t A t Y X t C
Cursul 9 Dar Y t A X t = X t A t Y Y t B = Y t B t = B t Y X t C t = X t C t t = C X Avem deci: f (X) = C t X = X t C t X t A t Y t = Y t A X Y t B = B t Y = g (Y ) adic¼a f (X) g (Y ). Propoziţia.. Dac¼a problema primal¼a admite un program optim atunci şi problema dual¼a va avea un program Y 0 dat de relaţia: Y t 0 = C t b b 1 Demonstraţie: Fie cuplul din relaţia (.1). Consider¼am c¼a problema primal¼a este nedegenerat¼a şi are program nit, adic¼a are un program de baz¼a optim care cuprinde exact m componente nenule ale variabilelor. Presupunem, pentru exempli care, c¼a primele m variabile au valori diferite de zero în programul de baz¼a optim al problemei primale, deci ele vor satisface sistemul: A X 0 B; X 0 = x 0 1; x 0 ; :::; x 0 m; 0; :::; 0 t Acesta este echivalent cu sistemul: 8 a 11 x 0 1 >< + a 1x 0 + ::: + a 1mx 0 m b 1 a 1 x 0 1 + a x 0 + ::: + a mx 0 m b ::::::::::::::::::::::::::::::::::::::::::::::::::::: >: a m1 x 0 1 + a mx 0 + ::: + a mmx 0 m b m (.3) Dac¼a not¼am cu b matricea format¼a din componentele vectorilor coloan¼a ai matricei A : a 1 ; a ; :::; a m, atunci sistemul (.3) este echivalent cu: b X 0 B 8
Cercet¼ari Operaţionale B¼arb¼acioru Iuliana Carmen Condiţia de program optim este dat¼a de relaţia: 0 1 c j z j 0, z j c j 0, B @ z j c j z c :::::: C A 0, Ct b b 1 A C t 0 (.4) z m c m unde b 1 A reprezint¼a matricea coe cienţilor tabelului simplex nal iar Cb t vectorul linie al coe cienţilor variabilelor care formeaz¼a baza optim¼a. Vom demonstra c¼a şi problema dual¼a are un program corespunz¼ator bazei b. Presupunem în acest scop c¼a vectorul Y0 t = y0 1 ; y0 ; :::; m y0 se determin¼a din relaţia: Y0 t = Cb t b 1 (.5) Introducem (.5) în (.4) şi obţinem Y0 t A Ct 0 de unde rezult¼a c¼a Y0 t A C t, A t Y0 t C. Deoarece vectorul Y 0 satisface condiţiile problemei duale rezult¼a c¼a el reprezint¼a un program pentru aceasta. Teorema..3 (Teorema dualit¼aţii) Într-un cuplu de probeme primal¼a-dual¼a poate ap¼area una din urm¼atoarele situaţii: a. Una din probleme are program nit, atunci şi cealalt¼a problem¼a are program iar valorile extreme ale funcţiilor obiectiv sunt egale; b. Una din probleme are optim in nit şi cealalt¼a problem¼a nu are soluţie; c. Nici una dintre probleme nu are soluţie. Demonstraţie: Vom demonstra teorema pentru cuplul din relaţia (.1) a) Pentru a demonstra prima a rmaţie a teoremei dualit¼aţii, în cazul cuplului ales, trebuie s¼a ar¼at¼am c¼a: 1. Dac¼a probema primal¼a admite un program nit, probema dual¼a admite şi ea un program;. Maximul funcţiei obiectiv al probemei primale este egal cu minimul funcţiei obiectiv al probemei duale. Conform propriet¼aţii.. vectorul Y t 0 = C t b b 1 satisface condiţiile problemei duale, deci reprezint¼a o soluţie pentru aceasta. O baz¼a b a probemei primale se numeşte dual realizabil¼a dac¼a vectorul Yb t = Ct b b 1 este o soluţie a probemei duale, deci dac¼a A t Yb t C. 9
Cursul 9 R¼amâne s¼a demonstr¼am c¼a Y 0 este soluţia optim¼a a probemei duale. Pentru aceasta vom considera Y un vector oarecare din R m care satisface restricţiile A t Y t C şi Y 0 şi e X R n, oarecare, ce satisface condiţiile: A X B şi X 0 Înmulţim la dreapta cu X sistemul Y t A C t şi obţinem: Y t A X C t X = f(x) (.6) Sistemul (.6) este satisf¼acut şi de A X = B deoarece B este limita maxim¼a, deci: Y t B C t X Înlocuind vectorul X cu vectorul soluţiei optime X 0 al problemei iniţiale rezult¼a: Y t B C t b X0 = max [f (X)] (.) ceea ce înseamn¼a c¼a valoarea funcţiei obiectiv a problemei duale g (Y ) = Y t B, corespunz¼atoare oric¼arei soluţii a sistemului s¼au de inecuaţii este cel puţin egal¼a cu valoarea maxim¼a a funcţiei obiectiv a problemei primale. Dac¼a în relaţia (.) înlocuim vectorul Y t cu Y0 t ajungem la expresia: Y t 0 B C t b b 1 B C t b X0 = max [f (X)] de unde, ţinând cont c¼a b 1 B = X 0 rezult¼a: Y t 0 B = C t b X0 (.8) Prin urmare, Y0 t este soluţia optim¼a a problemei duale, iar valoarea funcţiei obiectiv corespunz¼atoare acestei soluţii este dat¼a de relaţia (.8), deci putem scrie: min g (Y ) = max [f (X)] b) Se poate demonstra cu uşurinţ¼a c¼a dac¼a funcţia obiectiv a problemei primale este in nit¼a, adic¼a: max [f (X)] = 1 atunci problema dual¼a nu are soluţie, în acest caz relaţia (.) devenind: Y t B C t b X0 = max [f (X)] = 1 (.9) Aceasta înseamn¼a c¼a orice soluţie Y a sistemului A t Y C trebuie s¼a corespund¼a unei valori a funcţiei obiectiv g (Y ) cel puţin egal¼a cu 1. Întrucât relaţia (.9) nu are sens rezult¼a c¼a problema dual¼a nu are soluţie. c) Este evident din a) şi b). 10
Cercet¼ari Operaţionale B¼arb¼acioru Iuliana Carmen Observaţia..4 Tabelul simplex nal corespunz¼ator problemei primale conţine atât soluţia optim¼a a problemei primale cât şi a problemei duale. Soluţia problemei primale X 0 se obţine pe coloana vectorului x E, iar soluţia problemei duale Y0 t = Ct b b 1 se obţine pe linia lui z j, la intersecţia cu coloanele vectorilor care au format baza iniţial¼a. Teorema..5 (Teorema ecarturilor complementare) Condiţia necesar¼a şi su cient¼a pentru ca un cuplu de soluţii admisibile de baz¼a X 0 şi Y 0 s¼a e optim este ca soluţiile s¼a veri ce simultan condiţiile: y 0 i " c j # np a ij x 0 j b i = 0; i = 1; m (.10) mp yi 0 a ij x 0j = 0; j = 1; n i=1 Aceste condiţii se scriu sub form¼a matriceal¼a astfel: Y t 0 A X 0 B = 0 (C t 0 Y t 0 A) X0 = 0 (.11) Din relaţiile (.10) se pot trage urm¼atoarele concluzii: 1. Dac¼a yi 0 > 0 atunci np a ij x 0 j = b i, adic¼a variabila dual¼a corespunz¼atoare unei resurse utilizate în întregime are o valoare pozitiv¼a; P. Dac¼a n a ij x 0 j < b i atunci yi 0 = 0, adic¼a dac¼a resursa i nu este utilizat¼a în întregime y 0 i = 0 ; 3. Dac¼a x 0 j > 0 atunci P m yi 0a ij = c j, adic¼a dac¼a costul unitar al activit¼aţii c j, i=1 obţinut prin evaluarea consumurilor speci ce a ij cu ajutorul componentelor soluţiei optime a problemei duale este egal cu coe cientul c j din funcţia obiectiv atunci componentele x 0 j > 0 ; P 4. Dac¼a m yi 0 a ij > c j atunci x 0 j = 0, adic¼a dac¼a costul unitar este mai mare i=1 decât c j atunci nu este e cient s¼a includem în programul optim activitatea j, ca urmare x 0 j = 0. 11
Cursul 9 Exemplul..6 O societate economic¼a ce fabric¼a produsele P 1 ; P ; P 3 utilizeaz¼a pentru producerea lor trei resurse: forţa de munc¼a, mijloacele de munc¼a şi materii prime. În tabelul de mai jos se dau consumurile speci ce şi cantit¼aţile disponibile de resurse precum şi preţurile de vânzare ale produselor. Tabelul. Disponibil ResursenUtiliz¼ari P 1 P P 3 (unit¼aţi zice) Forţa de munc¼a 3 9 1 45 Mijloace de munc¼a Materii prime 6 15 3 1 3 6 Preţ de vânzare (unit¼aţi monetare) 9 6 1 - Soluţie: Modelul matematic pe baza c¼aruia se stabileşte programul optim de producţie având drept criteriu de e cienţ¼a valoarea maxim¼a a producţiei va avea forma: max 8 [f (X)] = 9x 1 + 6x + 1x 3 >< 3x 1 + 9x + 1x 3 45 6x 1 + 15x + 3x 3 30 >: 1x 1 + 3x + 6x 3 5 x 1 ; x ; x 3 0 Problema dual¼a a acestei probleme de programare liniar¼a va : 30 5 min 8 [g (Y )] = 45y 1 + 30y + 5y 3 >< 3y 1 + 6y + 1y 3 9 9y 1 + 15y + 3y 3 6 >: 1y 1 + 3y + 6y 3 1 y 1 ; y ; y 3 0 Soluţia optim¼a a problemei primale este prezentat¼a în tabelul simplex nal.3. Dup¼a cum s-a ar¼atat, prin rezolvarea uneia dintre problemele cuplului primal¼adual¼a, se obţin soluţiile ambelor probleme. În cazul exemplului de mai înainte soluţia optim¼a a problemei duale se citeşte pe linia z j la intersecţia cu coloanele vectorilor e 1 ; e ; e 3 care au format baza iniţial¼a, deci: y 0 1 = 5 ; y0 = 8 ; y0 3 = 0: 1
Cercet¼ari Operaţionale B¼arb¼acioru Iuliana Carmen Este uşor de veri cat c¼a Y t 0 = Ct b b 1. Coord: bazei Baza E x E 9 x 1 # 6 1 # x x 3 Tabelul.3 0 0 0 e 1 e e 3 0 e 1 45 3 9 1 1 0 0 0 e 30 6 15 3 0 1 0 0 e 3 5 1 3 6 0 0 1 Z j 0 0 0 0 0 0 0 c j z j 9 6 1 0 0 0 15 1 3 1 1 x 3 1 0 0 4 4 4 1 1 5 51 1 0 e 4 0 1 0 4 4 4 105 1 3 1 0 e 3 0 0 1 Z j 45 3 9 1 1 0 0 c j z j 6 3 0-1 0 0 0 1 1 1 1 x 3 0 1 0 1 5 1 1 4 9 x 1 1 0 0 1 1 0 e 3 15 0-0 0-1 465 165 5 8 Z j 9 1 0 13 5 8 c j z j 0 0 0 Pe baza rezultatelor obţinute se veri c¼a imediat c¼a: max [f (X)] = min [g (Y )] max [f (X)] = 9 5 0 + 6 0 + 1 = 465 min [g (Y )] = 45 5 + 30 8 465 + 5 0 = 13
Exemplul.. Duala problemei: Cursul 9 max [f (X)] = x 1 + 3x + 4x 8 3 x 1 + x + x 3 6 >< x 1 + 3x + x 3 = 8 x 1 + x + 4x 3 10 6 >: 4 x 3 1 x 1 0; x 0; x 3 oarecare va : min 8 [g (Y )] = 6y 1 + 8y + 10y 3 + y 4 >< y 1 + y + y 3 y 1 + 3y + y 3 3 6 >: 4 y 1 + y + 4y 3 + y 4 4 y 1 0; y oarecare, y 3 0; y 4 0 Analizând modelul de mai sus se constat¼a c¼a variabila y 1 0 deoarece în problema primal¼a prima restricţie este concordant¼a, y oarecare deoarece în problema primal¼a a doua restricţie este o ecuaţie, y 3 0; y 4 0 deoarece în problema primal¼a restricţiile trei şi patru sunt neconcordante. 14
Index Baza dual realizabila, 9 Problema duala, 6 15