Problema duală

 

 

Problema duală este o problemă de programare liniară. Existența ei presupune existența unei alte probleme de programare liniară numită problema primală, împreună cu care formează cuplul primal㠖 duală. Pentru a vedea cum arată problema duală trebuie să cunoaștem cum arată problema primală și care este legătura dintre ele.

A cunoaște cum arată problema primală înseamnă a ști:

 

1.      Dacă problema este de maxim sau de minim;

 

2.      Care sunt necunoscutele problemei, adică vectorul variabilelor:

 

xT = (x1,x2, … ,xn)

 

3.      Care sunt coeficienții funcției obiectiv, adică elementele vectorului: 

 

cT = (c1,c2, … ,cn)

 

4.      Care sunt termenii liberi ai restricțiilor, adică elementele vectorului:

 

bT = (b1,b2, … ,bm)

 

5.      Care sunt coeficienții combinației liniare din fiecare restricție, adică elementele matricei:

 

A =

 

6.      Care este natura fiecărei restricții, adică dacă:

 

ai1x1 + ai2x2 + … + ainxn ³ bi   sau   ai1x1 + ai2x2 + … + ainxn £ bi   sau   ai1x1 + ai2x2 + … + ainxn = bi

 

7.      Care este restricția de semn a fiecărei variabile, adică dacă:

 

xj ³ 0   sau   xj £ 0   sau   xj – oarecare

 

Problema duală se construiește folosind elementele problemei primale și o serie de reguli, câte una pentru fiecare din cele șase componente ale unei probleme de programare liniară, listate mai sus.

În acest scop vom nota elementele problemei duale cu:

 

-                    uT = vectorul variabilelor problemei duale;

-                    = vectorul coeficienților funcției obiectiv ai problemei duale;

-                    = vectorul termenilor liberi ai restricțiilor din problema duală;

-                    AD = matricea coeficienților combinațiilor liniare din restricțiile problemei duale;

 

și vom introduce noțiunile de restricție concordantă și restricție neconcordantă:

 

-                    O restricție se numește concordantă dacă:

 

-           Este de tipul:     ai1x1 + ai2x2 + … + ainxn ³ bi  într-o problemă de minim sau

-           Este de tipul:     ai1x1 + ai2x2 + … + ainxn £ bi  într-o problemă de maxim.

 

-           O restricție se numește neconcordantă dacă:

 

-           Este de tipul:     ai1x1 + ai2x2 + … + ainxn ³ bi  într-o problemă de maxim sau

-           Este de tipul:     ai1x1 + ai2x2 + … + ainxn £ bi  într-o problemă de minim.

 

-       O restricție de tipul: ai1x1 + ai2x2 + … + ainxn = bi  nu este nici concordantă nici neconcordantă.

 

În aceste condiții, problema duală va avea componentele:

 

-       Duala va fi o problemă de minim dacă primala este de maxim și reciproc;

-       uT = (u1, u2, … um), deci duala va avea m variabile, număr egal cu numărul de restricții al primalei, fiecare variabilă ui fiind asociată unei restricții i a primalei;

-       = bT, deci coeficienții funcției obiectiv a dualei sunt termenii liberi ai restricțiilor primalei;

-       = cT, deci termenii liberi din restricțiile dualei sunt coeficienții funcției obiectiv a primalei.

-       AD = AT, deci restricțiile dualei se obțin înmulțind fiecare coloană a matricei primalei cu vectorul variabilelor dualei. În acest mod și variabilelor primalei li se asociază câte o restricție a dualei;

-       restricția j a dualei va fi:

§         concordantă                        dacă xj ³ 0

§         neconcordantă                    dacă xj £ 0

§         egalitate                              dacă xj oarecare

-       variabila ui va fi:

§         ui ³ 0                      dacă restricția corespunzătoare din primală este concordantă

§         ui £ 0                      dacă restricția corespunzătoare din primală este neconcordantă

§         ui oarecare              dacă restricția corespunzătoare din primală este egalitate

 

Din cele de mai sus se observă că, pentru a scrie restricția j a dualei, avem nevoie de:

 

-       coloana coeficienților corespunzători variabilei j din matricea problemei primale pentru a scrie termenul stâng al restricției:

 

a1ju1 + a2ju2 + … + amjum

 

-       restricția de semn a variabilei j pentru a stabili natura restricției;

-       coeficientul lui xj din funcția obiectiv a primalei, care va fi termenul liber al restricției;

 

Pentru o cât mai bună ilustrare a modului în care se găsește duala unei probleme vom da câteva exemple.


 

Exemplul 1. Ne propunem construim duala problemei următoare:

 

(max) f = 2x1 – 5x2 + 4x3

x1 £ 0, x2 oarecare, x3 ³ 0

 

Conform regulilor de mai sus vom avea:

 

-       duala este de minim deoarece primala este de maxim;

-       variabilele dualei vor fi:

 

u1         corespunzătoare restricției:        x1 – x2 + 4x3 ³ 7

u2         corespunzătoare restricției:        x2 – 5x1 + 3x3 = 6

u3         corespunzătoare restricției:        x1 + 2x3 £ 3

u4         corespunzătoare restricției:        –x3 + 2x1 - 5x2 ³ 8

 

-       funcția obiectiv a dualei va fi produsul dintre termenii liberi ai restricțiilor primalei cu variabilele corespunzătoare din duală:    g = 7u1 + 6u2 + 3u3 + 8u4

-       duala va avea 3 restricții, câte variabile are primala, ele obținându-se astfel:

 

prima restricție (asociată variabilei x1)

§       termenul stâng al restricției  se obține înmulțind coeficienții variabilei x1 din cele 4 restricții ale primalei cu variabilele corespunzătoare acestora din duală:

 

u1 –5u2 + u3 + 2u4

 

§       termenul liber al restricției va fi coeficientul lui x1 din funcția obiectiv a primalei, adică b1 = c1 = 2

§       deoarece variabila corespunzătoare acestei restricții, x1, este negativă, restricția va fi neconcordantă și deoarece duala este problemă de minim rezultă că va fi cu £.

 

În concluzie, prima restricție va fi: u1 –5u2 + u3 + 2u4 £ 2

 

a doua restricție (asociată variabilei x2)

§       termenul stâng al restricției  se obține înmulțind coeficienții variabilei x2 din cele 4 restricții ale primalei cu variabilele corespunzătoare acestora din duală:

 

-u1 + u2 - 5u4

 

§       termenul liber al restricției va fi coeficientul lui x2 din funcția obiectiv a primalei, adică b2 = c2 = -5

§       deoarece variabila corespunzătoare acestei restricții, x2, este oarecare, restricția va fi o egalitate.

 

În concluzie, a doua restricție va fi: -u1 + u2 - 5u4 = -5

 

a treia restricție (asociată variabilei x3)

§       termenul stâng al restricției  se obține înmulțind coeficienții variabilei x3 din cele 4 restricții ale primalei cu variabilele corespunzătoare acestora din duală:

 

4u1 +3u2 + 2u3 - u4

 

§       termenul liber al restricției va fi coeficientul lui x3 din fiuncția obiectiv a primalei, adică b3 = c3 = 4

§       deoarece variabila corespunzătoare acestei restricții, x3, este pozitivă, restricția va fi concordantă și deoarece duala este problemă de minim rezultă că va fi cu ³ .

 

În concluzie, a treia restricție va fi: 4u1 + 3u2 + 2u3 - u4 ³ 4

 

-       restricțiile de semn ale variabilelor dualei vor fi:

 

§       u1 £ 0, deoarece restricția corespunzătoare este neconcordantă;

§       u2 oarecare, deoarece restricția corespunzătoare este egalitate;

§       u3 ³ 0, deoarece restricția corespunzătoare este concordantă;

§       u4 £ 0, deoarece restricția corespunzătoare este neconcordantă.

 

În final, problema duală este:

 

(min) g = 7u1 + 6u2 + 3u3 + 8u4

u1 £ 0, u2 oarecare, u3 ³ 0, u4 ³ 0

 

Exemplul 2. Considerăm o unitate economică care fabrică produsele P1, P2 și P3. Pentru obținerea lor se utilizează trei resurse: forța de muncă, mijloacele de muncă și materii prime. În tabelul de mai jos se dau consumurile specifice și cantitățile disponibile din cele trei resurse, precum și prețurile de vânzare ale celor trei produse.

 

Produse

Resurse

P1

P2

P3

Disponibil

(unități fizice)

Forța de muncă

1

3

4

15

Mijloace de muncă

2

5

1

10

Materii prime

4

1

2

25

Preț de vânzare

(unități monetare)

3

2

6

_

 

Dorim să producem acele cantități xi din fiecare produs pentru care:

 

1.      se utilizează în întregime forța de muncă;

2.      se produce cel puțin o unitate din produsul de tipul P2;

3.      se obține valoarea maximă a vânzărilor.

 

Modelul matematic pe baza căruia se stabilește programul optim de producție are forma:

 


(max) f = 3x1 + 2x2 + 6x3

xj ³ 0  (j = 1,2,3)

 

Duala sa va fi:

 

(min) g = 15u1 + 10u2 + 25u3 + u4

u1 oarecare, u2 ³ 0, u3 ³ 0, u4 £ 0

 

Se remarcă faptul că, într-o problemă economică, nenegativitatea variabilelor primalei (xj³0) impune ca în duală toate restricțiile să fie concordante.

 

Exemplul 3.

 


Primala

 

(min) f = 4x1 + 3x2

x1, x2 ³ 0

 

Duala

 

(max) g = 56u1 + 43u2 + 31u3 + 20u4 + 30u5 + 41u6 + 65u7

uI ³ 0  (i = 1,7)

 

 

Corespondența care există între problema primală și problema duală, atât sub aspect matematic, cât și economic, va fi lămurită de observațiile și teoremele de mai jos:

 

Lema 1. Duala problemei duale este problema primală.

 

Demonstrația acestei leme este ușoară, făcându-se pe baza simetriilor care se observă în construcția dualei și va fi lăsată în seama cititorului, semnificația ei fiind că operația de trecere la duală este o operație involutivă (adică e o transformare f cu proprietatea: (f ○ f )(x) = x) și, deci, perechea primală-duală formează un cuplu în care fiecare este duala celeilalte. Din această cauză vom vorbi de cuplul primală-duală fără a mai specifica expres care este primala și care duala.

 

Observația 1. Dacă o problemă este la forma canonică atunci și duala sa este o problemă la forma canonică.

 

Observația 2. Dacă o problemă este la forma standard atunci duala sa nu este la forma standard.

Lema 2. Dacă P1 și P2 sunt două probleme de programare liniară echivalente atunci și dualele lor sunt de asemenea echivalente. Vom înțelege, în această afirmație, prin probleme echivalente, două probleme care se pot obține una din cealaltă prin transformări elementare. Aceste transformări realizează un izomorfism între mulțimile soluțiilor celor două probleme și un homeomorfism între funcțiile lor obiectiv.

 

Teorema fundamentală a dualității.

 

Rezolvarea celor două probleme din cuplul primală-duală poate duce doar la unul din următoarele trei rezultate:

 

-        Dacă una din cele două probleme are soluție optimă finită atunci și cealaltă are soluție optimă finită și valorile funcțiilor obiectiv corespunzătoare celor două soluții sunt egale;

-        Dacă una din cele două probleme are optim infinit atunci cealaltă nu are soluții admisibile.

-        Dacă una din cele două probleme nu are soluții admisibile atunci cealaltă are optim infinit sau nu are soluții admisibile.

 

Rezolvare.  Presupunem că cele două probleme au fost aduse la forma canonică:

 

Primala

 

(max) cTx

Ax £ b

x ³ 0

Duala

 

(min) bTu

ATu ³ c

u ³ 0

 

Această presupunere nu va afecta rezultatul, deoarece, dacă nu erau deja așa, noile probleme sunt echivalente cu cele inițiale. În continuare, pentru rezolvarea acestei teoreme demonstrăm următoarea lemă:

 

Lema 3. Dacă există soluții admisibile pentru fiecare problemă atunci pentru orice x soluție admisibilă a primalei și orice u soluție admisibilă a dualei avem:

 

cTx £ bTu

 

Demonstrație: Avem:

ATu ³ c  Û  (ATu)T ³ cT   Û   uTA ³ cT

De asemenea:

Obținem:

 

Pentru a demonstra teorema, presupunem că am rezolvat una din cele două probleme, aceasta fiind considerată ca fiind primala. Avem trei variante:

 

1.    Problema are optim finit. Fie în acest caz fie xB o soluție de bază a primalei sub forma standard, care dă optimul problemei, adică cTxB = . Toți Dj corespunzători acestei baze vor fi pozitivi și ținând cont de expresia lui Dj, rezultă:

 

B-1A ³ cT Û  AT(B-1)T ³ c

 

relație care spune că vectorul cu m componente u* = (B-1)T este o soluție de bază admisibilă a problemei duale (primala fiind la forma standard, variabilele dualei pot avea orice semn).

Avem, conform lemei 3: cTxB £ uTb pentru orice soluție admisibilă a problemei duale. Pe de altă parte cTxB = cTB-1b = (u*)Tb de unde rezultă că pentru orice soluție admisibilă a problemei duale se verifică:

(u*)Tb £ uTb

 

care este echivalent cu faptul că u* este soluția de optim a dualei și că f(xB) = g(u*).

 

2.    Problema are optim infinit. În acest caz, dacă duala ar avea soluții admisibile u, g(u) ar fi un majorant pentru mulțimea {f(x)/ x admisibilă}, în contradicție cu ipoteza de optim infinit.

 

3.    Problema nu are soluții. În acest caz, dacă duala ar avea optim finit ar rezulta, conform celor arătate în varianta 1, că primala are optim finit, în contradicție cu ipoteza.

 

În concluzie, deoarece cele trei variante acoperă toate situațiile posibile, toate ducând la unul din rezultatele afirmate ca posibile în teoremă și ținând cont de faptul că nu a avut importanță care problemă a fost aleasă spre rezolvare, teorema este demonstrată.

 

 

Teorema ecarturilor complementare.

 

Fie x* = și u* =două soluții admisibile ale primalei, respectiv dualei, scrise sub forma canonică. Atunci ele sunt soluții optime ale celor două probleme dacă și numai dacă verifică sistemul:

 

  sau, matricial 

 

Demonstrație.

 

“Þ”  Presupunem că x* și u* sunt soluțiile optime ale celor două probleme. Atunci:

 

 (u*)T(b – Ax*) ³ 0

(( u*)TA - c)(x*) ³ 0                                                                      Þ

cum (u*)Tb = cx* (conform teoremei fundamentale) Þ

Þ (u*)T(b – Ax*) + (( u*)TA - c)(x*) = (u*)Tb – (u*)T Ax* + ( u*)TA x* - cx* = 0

 

 

Þ  (u*)T(b – Ax*) = (( u*)TA - c)(x*) = 0

 

“Ü”

Dacă (u*)T(b – Ax*) = (( u*)TA - c)(x*) = 0  Þ (u*)T(b – Ax*) + (( u*)TA - c)(x*) = 0 Þ (u*)Tb = cx* Þ ( conform teoremei fundamentale) x* și u* sunt soluțiile optime ale celor două probleme.

 

Teorema ecarturilor complementare dă o caracterizare pentru optimalitatea soluțiilor primalei și dualei, dacă ele există. Sistemul din teoremă se obține aplicând metoda multiplicatorilor lui Lagrange pentru extreme cu legături, în cazul particular al unei probleme de programare liniară.

Această teoremă nu reprezintă o modalitate practică de a rezolva cele două probleme decât în anumite cazuri simple, rezolvarea sistemului fiind mai grea, în cazul problemelor liniare, decât rezolvarea cu algoritmul simplex al fiecărei probleme, dar, pe baza ei, se poate găsi soluția uneia din probleme dacă se cunoaște soluția celeilalte sau se poate verifica dacă o soluție a unei probleme este optimă, introducând-o în sistem, găsind celelalte necunoscute și verificând că ele formează o soluție admisibilă a dualei.

 

Observația 3. Demonstrarea teoremei fundamentale s-a făcut găsind efectiv soluția optimă a dualei, considerându-se că primala a fost rezolvată cu algoritmul simplex. Ea este B-1 și, pentru găsirea practică a acesteia, trebuie cunoscută B-1. Matricea B-1 nu apare explicit în rezolvarea problemei cu algoritmul simplex, dar se poate demonstra că este formată din coloanele din tabelul simplex al soluției optime corespunzătoare pozițiilor care formau baza soluției inițiale. B-1 reprezintă chiar zj corespunzătoare acestor coloane din ultimul tabel, deci putem formula rezultatul:

 

“soluția dualei este formată din valorile zj ale tabelului soluției optime, corespunzăoare vectorilor coloană ai bazei inițiale”

 

Introducerea dualității este motivată din mai multe puncte de vedere:

 

1. Teoretic.  Una din problemele centrale ale programării matematice este caracterizarea situațiilor în care există optimul unei probleme și găsirea unor metode prin care să recunoaștem optimalitatea unei soluții. Teorema fundamentală a dualității și teorema ecarturilor complementare reprezintă rezultate chiar în acest sens, în care se folosește dualitatea.

 

2. Practic.  Rezultatele obținute mai sus conturează faptul că putem rezolva o problemă rezolvând problema duală a acesteia sau cunoscând soluția dualei. În unele cazuri, rezolvarea dualei este mult mai ușoară decât rezolvarea primalei, de exemplu când numărul de restricții al primalei este mai mare decât numărul de variabile al acesteia sau când primala necesită mai multe variabile suplimentare decât duala. Astfel, pentru exemplul 3 de mai sus, rezolvarea primalei duce la opt iterații cu tabele cu 7 linii și 16 coloane, iar rezolvarea dualei la 5 tabele cu 2 linii și 9 coloane. În alte cazuri, soluțiile dualei sunt deja cunoscute, găsirea soluțiilor primalei revenind la a rezolva sistemul din teorema ecarturilor complementare, după ce au fost înlocuite soluțiile celei duale.

 

3. Economic. În cele mai multe probleme economice, a căror rezolvare se face printr-un model de programare liniară, soluția dualei aduce o serie de informații suplimentare despre problema studiată. Semnificația economică a soluției dualei depinde de specificul problemei și trebuie găsită de la caz la caz. Expunem în continuare interpretarea economică a variabilelor și soluțiilor dualei în cazul unei probleme de producție.

 

În paragrafele precedente s-a demonstrat că, prin rezolvarea unei probleme de programare liniară, se obține atât soluția optimă a problemei inițiale cât și a problemei duale. Corespondența dintre problema inițială și duală se reflectă în conținutul economic al parametrilor incluși în soluția problemei duale. Semnificația economică a indicatorilor ui este determinată de natura problemei economice și de tipul restricțiilor problemei primale.

Într‑o problemă sub formă canonică, în care se cere maximizarea funcției obiectiv, restricțiile pot fi interpretate ca inecuații ce se referă la resurse și, de aceea, interpretarea variabilelor ui este mai simplă.

Vom analiza modelul de programare liniară al problemelor de mai jos:

 

Exemplul 1:  O unitate economică fabrică produsele P1, P2 și P3 utilizând trei resurse: forța de muncă, mijloace de muncă și materii prime. Consumurile specifice, cantitățile disponibile din fiecare resursă și prețurile de vânzare ale produselor sunt date în tabelul de mai jos:

 

Produse

Resurse

P1

P2

P3

Disponibil

(unități fizice)

Forța de muncă

1

3

4

15

Mijloace de muncă

2

5

1

10

Materii prime

4

1

2

25

Preț de vânzare

(unități monetare)

3

2

6

-

 

Modelul matematic pe baza căruia se stabilește programul optim de producție, având drept criteriu de eficiență valoarea maximă a producției, are forma:

 

(max) f = 3Śx1 + 2Śx2 + 6Śx3

x1, x2, x3 ³ 0

 

Utilizând regulile de trecere la duală, rezultă următoarea problemă duală:

 

(min) g = 15Śu1 + 10Śu2 + 25Śu3

u1, u2, u3 ³ 0

 

După rezolvarea cu algoritmul simplex se obține soluția optimă a celor două probleme în ultimul tabel simplex, dat în continuare:


 

 

 

 

3

2

6

0

0

0

cB

xB

xB

x1

x2

x3

s1

s2

s3

6

x3

0

1

0

3

x1

1

0

0

0

x6

0

-9

0

0

-2

1

zj

-

3

6

0

Dj

-

-

0

0

0

 

 

Exemplul 2: Activitatea unei întreprinderi industriale se concretizează în fabricarea produselor omogene P1, P2, P3 și P4, ale căror costuri unitare de producție sunt: c1 = 4, c2 = 3, c3 = 7 respectiv c4 = 2 unități monetare. Pentru desfășurarea procesului de producție este necesar ca din produsul P1 să se asigure un stoc de cel puțin 5 unități și, în plus, câte cel puțin 2 unități pentru fiecare piesă P3 (produsul P1 intră în componența produsului P3). În anul de bază, volumul producției realizate de întreprindere a fost de 20 unități. În urma analizei desfacerilor s-a ajuns la concluzia că cererea este în creștere. De asemenea, întreprinderea își propune ca în perioada de plan să obțină un beneficiu total cel puțin egal cu cel din perioada de bază, care a fost de 100 u.m.. Beneficiul unitar corespunzător celor 4 produse s-a estimat a fi de 2, 5, 8 respectiv 3 u.m..

Modelul matematic corespunzător problemei primale și respectiv problemei duale are forma:

 

 

Primală

Duală

 

(min) f = 4Śx1 + 3Śx2 + 7Śx3 + 2Śx4

 

în condițiile

 

x1, x2, x3, x4 ³ 0

 

 

(max) g = 5x1 + 20x2 + 100x3

 

în condițiile

 

u1 oarecare, u2,u3  ³ 0  și u4 £ 0

 

 

 

Exemplul 3: Considerăm problema dată în exemplul 1 căreia îi atașăm două modificări:

 

1.      forța de muncă trebuie folosită în întregime;

2.      volumul producției planificate al produsului P­2 trebuie să fie cel puțin egal cu o unitate fizică;

 

Cuplul de probleme primală-duală va avea forma:


 

Primală

Duală

 

(max) f = 3Śx1 + 2Śx2 + 6Śx3

x1, x2, x3 ³ 0

 

 

(min) g = 15Śu1 + 10Śu2 + 25Śu3 + u4

u1 oarecare, u2, u3 ³ 0, u4 £ 0

 

 

Se constată ca, în funcția obiectiv a problemei duale, apar cantitățile disponibile din cele trei resurse, înmulțite cu mărimile u1, u2, și respectiv u3. Întrucât resursele reprezintă valori de întrebuințare diferite, cantitățile bi nu se pot însuma decât dacă indicatorii ui evaluează resursele în aceeași  unitate de măsură. După cum se vede din aceste model, valoarea indicatorilor ui depinde de cantitatea de resurse disponibile, de structura consumurilor directe din resursa respectivă și de structura matematică a modelului.

Conform teoremei ecarturilor complementare, resurselor utilizate în întregime le corespund evaluări ui strict pozitive, iar resurselor excedentare le corespund indicatori ui = 0. Un produs Pj va apărea în soluția optimă, (xj > 0) numai atunci când costul său unitar de producție, obținut prin evaluarea  resurselor consumate cu ajutorul indicatorilor ui, nu depășește prețul unitar de producție cj, adică atunci când:

 

= cj        (R)

 

Ideea enunțată mai sus se confirmă și în cazul exemplelor analizate. Astfel, în exemplul 1, produsul P2 nu apare în soluția optimă (x2 = 0) deoarece costul său de producție depășește prețul unitar de realizare:

 

a12Śu1 + a22Śu2 +  a32Śu3 > c2

 

adică:  3Ś + 5Ś + 1Ś0 = 8,1 > 2.

 

Celelalte două produse intră în programul optim, întrucât este satisfăcută relația (R). Deci, fabricarea unui produs care nu figurează în programul optim este neeficientă din punctul de vedere al folosirii resurselor.

Prin urmare, pentru o problemă de programare liniară scrisă sub forma canonica, în care se urmărește maximizarea funcției f (x), mărimea ui re­prezintă valoarea ultimei unități folosite în producție din resursa Ri.

Având în vedere că max[f(x)] = min [g(u)], rezultă că, dacă, cantitatea disponibilă din resursa Ri crește cu o unitate, atunci valoarea funcției obiectiv crește cu ui, deci ui măsoară creșterea valorii funcției obiectiv determinată de creșterea cu o unitate a cantității disponibile bi.

Aceste evaluări obținute dintr‑un program optim au fost denumite în literatura de specialitate "prețuri umbră" sau "evaluări obiectiv determinate".

Prețul umbră ui arată cu cât se modifică funcția obiectiv a problemei duale[1], atunci când termenul liber al restricției Ri se "relaxează" cu o unitate. A "relaxa" are semnificația de a spori cantitatea disponibilă bi a unei resurse deficitare sau, pentru restricțiile de tip calitativ cu limită inferioară impusă (³ bi), de a reduce nivelul termenului liber bi. Este evident că, dacă o resursă nu este utilizată în întregime pentru satisfacerea programului optimal xB (< bi), atunci ui = 0 iar funcția obiectiv nu este afectată de sporirea[2] cantității disponibile bi. În cazul restricțiilor de tip calitativ, acestea nu constituie un "loc îngust" pentru programul optimal xB dacă și numai dacă > bi, ca urmare ui = 0 iar funcția obiectiv nu este influențată de reducerea2 nivelului pentru indicatorul bi.

Pentru o problemă scrisă sub formă canonică, în care se cere minimizarea funcției f(x), restricțiile se referă, așa cum s-a arătat, la caracteristici economice cărora li se impun limite inferioare sau la indicatori calitativi cu limită inferioară stabilită; în acest caz prețul umbră ui măsoară creșterea costului total al producției, a cheltuielilor de muncă, a cheltuielilor cu fondurile fixe etc., determinată de creșterea cu o unitate a componentei bi a vectorului termenilor liberi. Astfel, daca la exemplul 2 planul de producție prevede o creștere a volumului producției de la 20 unități la 21 unități, atunci costul total al producției va crește cu u2 unități.

În cazul problemelor de programare liniară care conțin restricții neconcordante și egalități, la interpretarea preturilor umbră trebuie să se țină seama de natura economică a funcției obiectiv și de semnul variabilei ui. Pentru a elucida acest aspect, ne vom referi la modelul matematic ce rezultă din exemplul 3.

Soluțiile optimale ale problemei primale și duale sunt:

 

xB = (x1, x2, x3, x4, x5, x6) =  (8/7, 1, 19/7, 0, 14, 0)

 

uB = (u1, u2, u3, u4) = (9/7, 6/7, 0, – 43/7).

 

Se constată imediat că valoarea funcției obiectiv f(xB) = g(uB) = 152/7 este mai mică decât cea obținută prin rezolvarea modelului din exemplul 1, cu Df(x) = 195/7 – 152/7 = 43/7 unități monetare[3]. Această diferență apare datorită introducerii restricției x2 > 1, al cărei preț umbră este u4 = – 43/7. Prin urmare variabila u4 arată cu cât scade valoarea funcției obiectiv f(x) atunci când nivelul minim impus variabilei x2 este mai mare cu o unitate.

În sfârșit variabila u1 = 9/7, care este atașată unei restricții sub formă de egalitate, arată că sporirea cu o unitate a nivelului forței de muncă disponibile conduce la creșterea valorii producției cu 9/7 unități monetare.

Rezultă că prețurile umbră aduc informații suplimentare pentru analiza eficienței economice a resurselor și a diferiților indicatori economici sau tehnici care apar în restricțiile unei probleme de programare liniară. Pe baza lor se pot fundamenta deciziile privind alocarea judicioasă a resurselor, se pot stabili măsuri de stimulare a consumului rațional al resurselor, se determină cât mai corect nivelul minim și maxim al diferiților indicatori tehnici și economici de care depinde structura planului optim.

Soluția optimă obținută prin utilizarea datelor inițiale poate constitui un punct de plecare pentru analiza economică privind alocarea eficientă a resurselor. Vom ilustra acest aspect folosind modelul matematic elaborat în cadrul exemplului 1.

În tabelul de mai jos se dau soluțiile optime ale cuplului primală-duală, pentru diferite valori ale primei resurse (b2 = 10, b3 = 25).

 

 

Cantitatea disponibilă din prima resursă (b­1)

Variabile

15

16

26

36

40

41

u4

x1

3

25/7

3

24/7

3

2

3

4/7

3

0

3

0

u5

x2

57/7

0

57/7

0

57/7

0

57/7

0

57/7

0

30

0

u6

x3

6

20/7

6

22/7

6

6

6

62/7

6

10

6

10

u1

x4

9/7

0

9/7

0

9/7

0

9/7

0

9/7

0

0

1

u2

x5

6/7

0

6/7

0

6/7

0

6/7

0

6/7

0

6

0

u3

x6

0

5

0

5

0

5

0

5

0

5

0

5

f(x)

195/7

204/7

42

55

60

60

 

Se observă că între anumite limite de variație ale primei resurse, prețurile umbră au aceeași valoare. Pentru valori mai mari decât 40 unități, prețurile umbră au o altă valoare, deoarece, în acest caz, prima resursă și a treia devin excedentare. Valoarea funcției de eficiență va crește cu  u1ŚDb1, unde Db1 reprezintă sporul disponibilului din prima resursă. Pentru b1 > 40 prețul umbră al resursei a doua este u2 = 6, deci valoarea funcției eficiență va crește cu 6 unități, atunci când b2 crește cu o unitate. Aste informații sunt utile pentru fundamentarea planului de producție aprovizionare cu diverse resurse.

La interpretarea influenței pe care variația cantității disponibile bi o are asupra prețurilor umbră, trebuie să se țină seama că bi este o variabilă continuă. Din această cauză ui se definește astfel:[4]

ui =

 

            Este clar că ui va avea o altă valoare când bi crește (scade) peste o anumită limită (de exemplu bi > 40).

După cum s‑a arătat mai înainte, în cadrul algoritmului simplex se stabilește activitatea cea mai eficientă ak, prin folosirea criteriului de in­trare:

 

DZk = min (zj – cj) la problemele de maxim

 

DZk = max (zj – j) la. problemele de minim

 

Având în vedere relația formulele de calcul ale lui DZ și uB, rezultă că:

 

zj =  =   j Î JS

unde yij reprezintă elementele coloanei j din tabelul simplex corespunzător unei soluții de bază. În cea de a doua sumă a relației precedente se evaluează coeficienții consumurilor directe, corespunzători activității aj, prin prețurile umbră atașate celor m restricții și, de aceea, mărimea rezultată poate fi interpretată ca un preț umbră al produsului sau activității j. Trebuie precizat că, pentru fiecare bază, vom dispune de un vector u = (u1, u2, ... , um) care se referă la fluxurile intrări ‑ ieșiri corespunzătoare soluției de bază. De aceea, evaluările privind eficiența economică a activităților aj (j Î JS = indicii variabilelor secundare), făcute cu ajutorul indicatorilor ui, sunt valabile numai pentru baza considerată.

Concluziile obținute pe baza analizei corespondenței biunivoce dintre problema primală și cea duală ne permit să înțelegem sensul economic al criteriului de intrare în bază.

Pentru problemele în care se cere maximizarea funcției f(x), indicatorii zj reprezintă costul unitar de fabricație al produsului j, rezultat din evaluarea coeficienților aij prin prețurile umbră atașate restricții1or. Rezultă că, prin calcularea diferenței Dj, se compară acest cost unitar cu coeficientul cj (preț unitar, beneficiu unitar etc.) din funcția obiectiv. Dacă există diferențe negative (Dj < 0) înseamnă că, la activitățile respective, prețul umbră al produsului j (costul unitar de fabricație exprimat în indicatori ui) este mai mic decât venitul realizat și de aceea activitatea aj este eficientă. Așa se explică faptul că va intra în bază vectorul ak ce corespunde diferenței Dzj minime. În momentul în care toate diferențele sunt pozitive (Dzj ³ 0) rezultă că nu mai există activități eficiente și prin urmare soluția de bază analizată este optimă.

În cazul problemelor de minim, indicatorii zj se pot interpreta ca venituri, exprimate în prețurile umbră ale restricțiilor, ce se obțin prin realizarea unei unități din produsul j. Prin urmare, dacă există diferențe pozitive (Dzj > 0), activitățile aj corespunzătoare sunt eficiente, deoarece se realizează un venit unitar mai mare decât costul unitar de fabricație (zj > cj). De aceea, va intra în bază activitatea ak, corespunzătoare diferenței maxime, iar soluția de bază se consideră optimă atunci când toate diferențele Dzj sunt nepozitive (Dzj £ 0).

 

 

 

 



[1] Dar și a problemei primale, întrucât f(x) și g(u) sunt legate prin teorema dualității

[2] Variația termenului liber bi trebuie interpretată ca o modificare Dbi, în condițiile în care celelalte restricții nu se modifică. Vezi exemplul 1.

[3]  Reamintim că exemplul 3 s‑a obținut din exemplul 1 ca urmare a unor transformări. Precizăm că, în soluțiile optime ale ambelor modele, prima restricție se verifică cu egalitate. De aceea, diferența dintre cele două soluții este determinată numai de restricția x2 > 1.

 

[4] F este o funcție de tip Lagrange, obținută din problema standard de programare­ liniară astfel:         

 

F = f(x) + uiŚRi (x)

 

unde Ri(x) reprezintă restricțiile problemei de programare liniară iar ui, 1 £ i £ m sunt multiplicatorii lui Lagrange.