Parametrizare

 

Sunt cazuri în care coeficienții unei probleme nu sunt cunoscuți, sau nu pot fi estimați cu exactitate, sau nu sunt constanți, ei variind în funcție de unul sau mai mulți parametrii, după o lege cunoscută, care este mai mult sau mai puțin complicată, putând lua valori într-o mulțime oarecare, finită sau infinită, discretă sau continuă, mărginită sau nemărginită. Ne-ar interesa să cunoaștem, pentru fiecare valoare posibilă a coeficienților, care este soluția optimă a problemei, sau invers, pentru fiecare soluție, care este mulțimea parametrilor pentru care aceasta rămâne optimă.

Este evident că problema este atât de complicată încât nu se poate da o unică rezolvare, aplicabilă pentru orice mulțime a parametrilor și oricare ar fi  legile de dependență a coeficienților de parametrii.

Ne propunem să facem rezolvarea doar pentru cazurile în care termenii liberi ai restricțiilor sau coeficienții funcției obiectiv variază liniar în funcție de un singur parametru.

 

 

Cazul 1 Parametrizarea termenilor liberi ai restricțiilor

 

Așadar termenii liberi ai restricțiilor au forma:

 

b(l) = b0 + b1Śl   Û   bi(l) =

 

unde l Î R este parametrul considerat iar b0, b1 Î Rm  sunt doi vectori cu componentele constante reale. Pentru rezolvarea problemei pentru orice l, vom parcurge următorii pași:

 

Pasul 1. Se rezolvă problema pentru un l0 inițial; presupunem că există cel puțin un l pentru care problema are soluție (altfel am avea un caz neinteresant) și în plus putem presupune că el este egal chiar cu 0, acest lucru putând fi aranjat eventual prin schimbarea de variabilă:

 

l = l0 + m

 

și scrierea lui b sub forma:

 

b(m) = (b0 + b1Śl0) + b1Śm.

 

Vom găsi o soluție x0 și baza corespunzătoare B0.

 

Pasul 2. Se calculează soluțiile de bază xB(l), corespunzătoare bazei găsite la pasul 1, pentru l variabil:

 

xB(l) =

 

Deoarece valorile Dj =  nu depind de l, ele sunt pozitive pentru orice l, nu doar pentru l0 și deci soluția xB(l) va fi optimă atâta timp cât are toate componentele pozitive. Acei l pentru care xB(l) ³ 0 reprezintă mulțimea valorilor parametrului pentru care baza B0 dă soluția optimă.

 

Pasul 3. Se rezolvă sistemul de inecuații xB(l) ³ 0, a cărui soluție va fi, ținând cont că toate inecuațiile sunt liniare, un interval , unde  poate fi și -¥ iar  poate fi și +¥ (în general, pentru orice bază, mulțimea pe care soluția este pozitivă are această formă și deci și mulțimea pe care nu există nici o bază cu soluția pozitivă va fi o reuniune de astfel de intervale, însă deschise și, cum există un număr finit de baze, mulțimea numerelor reale va fi împărțită într-un număr finit de intervale, ca mai sus, pentru fiecare corespunzând o bază optimă sau nici una. Se poate demonstra că intervalele pe care nu există soluție sunt neapărat de forma (-¥,a) sau (a,+¥)). Deoarece B-1 este inversabilă, cel puțin unul dintre și este finit. Fie  acesta.

Pentru l > , cel puțin una din componentele soluției de bază corespunzătoare bazei B0 va fi strict negativă. Este clar că, pentru l > , trebuie căutată altă bază optimă, dacă aceasta există.

 

Pasul 4. Reluăm algoritmul, pentru o valoare a lui l aflată în imediata vecinătate a luiși l > , astfel încât să ne situăm în intervalul imediat următor intervalului . Pentru găsirea bazei corespunzătoare acestuia (sau pentru aflarea faptului că nu există nici o soluție pentru l >) se aplică în continuare algoritmul simplex dual (deoarece toți Dj ³ 0).

Se obține o succesiune de valori <<<…<= +¥ și o succesiune de baze și soluții optime asociate fiecărui interval.

 

Pasul 5. Reluăm algoritmul pentru o valoare a lui l aflată în imediata vecinătate a lui și l <, astfel încât să ne situăm în intervalul imediat anterior lui. Pentru găsirea bazei corespunzătoare acestuia (sau pentru aflarea faptului că nu există nici o soluție pentru l <) se aplică în continuare algoritmul simplex dual (deoarece toți Dj ³ 0).

Se obține o succesiune de valori >>>…>= -¥ și o succesiune de baze și soluții optime asociate fiecărui interval.

În acest moment, cunoaștem, pentru fiecare valoare posibilă a parametrului l, soluția optimă a problemei sau invers, pentru fiecare bază, care este mulțimea parametrilor pentru care aceasta este optimă și algoritmul este terminat.

 

Exemplu O întreprindere are gama sortimentală formată din 6 produse {Pj / j = 1,6} pentru fabricarea cărora folosește 3 materii prime {Mi / i = 1,3}. Se cunosc:

a)      disponibilurile din fiecare materie primă {bi(l) / i = 1,3}, care sunt dependente liniar de un parametru l.

b)     profiturile/1000 unități vândute din fiecare produs {cj / j = 1,6}.

c)      coeficienții tehnologici {ai,j / i = 1,3; j = 1,6} (ai,j = cantitatea din materia primă i necesară fabricării a 1000 produse de tipul j)

 

toate date în tabelul de mai jos:

 

produse

mat. prime

P1

P2

P3

P4

P5

P6

Disponibil

M1

3

5

7

2

1

2

20 + 3l

M2

5

6

9

3

4

5

40 + 2l

M3

7

8

10

3

2

8

60 + l

profit/1000 prod.

2

3

4

1

1

2

 

 

Se dorește găsirea acelor cantități {xj / j = 1,6} ce trebuie fabricate din fiecare produs, astfel încât să se obțină profitul total maxim.

 

Rezolvare Avem de rezolvat o problemă de parametrizare a termenului liber, deci vom aplica algoritmul de mai sus.

Se scrie problema de programare asociată și se aduce la forma standard:

 

 

F.S.

max (2x1 + 3x2 + 4x3 + x4 + x5 + 2x6)

x1, x2, x3, x4, x5, x6 ³ 0

Û

max (2x1 + 3x2 + 4x3 + x4 + x5 + 2x6)

x1, x2, x3, x4, x5, x6 ³ 0

 

Pasul 1. Rezolvăm problema pentru l = 0 și obținem baza optimă:

B = (a5,a6,a2) =   

 

soluția optimă xB = , inversa bazei B-1 =  și ultimul tabel simplex:

 

 

 

 

2

3

4

1

1

2

0

0

0

cB

xB

xB

x1

x2

x3

x4

x5

x6

s1

s2

s3

1

x5

0

1

0

2

x6

0

0

1

3

x2

1

0

0

 

 

0

0

0

 

Pasul 2.  Se calculează soluția de bază corespunzătoare bazei optime  pentru l  oarecare:

 

xB(l) = B-1Śb(l) = Ś=

Pasul 3.  Se rezolvă sistemul de inecuații xB ³ 0:

 

xB ³ 0  Û    Þ  l Î  Þ =   și =

Pasul 4. Se observă că pentru l aflat în imediata vecinătate a luiși l > vom avea o singură variabilă negativă și anume x6. Pentru un astfel de l, soluția corespunzătoare bazei B este dual admisibilă și, aplicând algoritmul simplex dual, aceasta va fi scoasă din bază și înlocuită cu x3. Se obțin:

-       noua bază B = (a5, a3, a2) =  și B-1 =

-       noua soluție:

xB(l) = B-1Śb(l) = Ś=

 

-       noul tabel simplex corespunzător noii baze:

 

 

 

 

2

3

4

1

1

2

0

0

0

cB

xB

xB

x1

x2

x3

x4

x5

x6

s1

s2

s3

1

x5

0

0

1

4

x3

0

1

0

3

x2

1

0

0

 

 

0

0

0

 

-       noul interval pe care este optimă noua bază:

 

  Þ  l Î  Þ =   și =

 

Reluând algoritmul vom obține succesiv intervalele și soluțiile următoare:

1.      l Î   B = (a7, a3, a2)  xB =

2.      l Î   B = (a7, a3, a5)  xB =

 

Pasul 5. Începând înapoi de la =  obținem:

 

1.      l Î   B = (a5, a6, a9)  xB =

2.      l Î   B = (a5, a8, a9)  xB =

3.      l Î  - sistemul nu are soluții admisibile.

 

La marginile intervalelor problema va avea cel puțin două soluții de bază și, deci, o infinitate de soluții optime (toate combinațiile convexe dintre acestea).

 

În concluzie, dacă:

 

-       l Î  disponibilul din M1 ar fi negativ, caz fără sens economic.

-       l Î  întreprinderea va fabrica doar produse de tipul P5

-       l Î  întreprinderea va fabrica doar produse de tipul P5 și P6

-       l Î  întreprinderea va fabrica doar produse de tipul P5, P6 și P2

-       l Î  întreprinderea va fabrica doar produse de tipul P5, P3 și P2

-       l Î  întreprinderea va fabrica doar produse de tipul P3 și P2

-       l Î  întreprinderea va fabrica doar produse de tipul P3 și P5

 

 


Cazul 2 Parametrizarea coeficienților funcției obiectiv

 

Așadar, coeficienții funcției obiectiv au forma:

 

c(l) = c0 + c1Śl   Û   cj(l) =

 

unde l Î R este parametrul considerat iar c0, c1 ÎRn  sunt doi vectori cu componentele constante reale. Pentru rezolvarea problemei pentru orice l, vom parcurge următorii pași:

 

Pasul1.      Se rezolvă problema pentru un l0 inițial; presupunem că există cel puțin un l pentru care problema are soluție (altfel am avea un caz neinteresant) și în plus putem presupune că el este egal chiar cu 0, acest lucru putând fi aranjat eventual prin schimbarea de variabilă:

 

l = l0 + m

 

și scrierea lui b sub forma:

 

c(m) = (c0 + c1Śl0) + c1Śm.

 

Vom găsi o soluție x0 și baza corespunzătoare B0.

 

Pasul2.      Se calculează Dj(l) corespunzători bazei găsite la pasul 1, pentru l variabil:

 

Dj(l)  = Ś – c(l)

 

Deoarece componentele soluției de bază corespunzătoare xB =  nu depind de l, ele sunt pozitive pentru orice l, nu doar pentru l0 și soluția xB va fi optimă atâta timp cât toți Dj(l) ³ 0. Acei l pentru care Dj(l) ³ 0 reprezintă mulțimea valorilor parametrului pentru care baza B0 dă soluția optimă.

 

Pasul3.      Se rezolvă sistemul de inecuații Dj(l) ³ 0, a cărui soluție va fi, ținând cont că toate inecuațiile sunt liniare, un interval , unde  poate fi și -¥ iar  poate fi și +¥ (în general, pentru orice bază, mulțimea pe care Dj(l) ³ 0 are această formă și, deci, și mulțimea pe care nu există soluție optimă va fi o reuniune de astfel de intervale, însă deschise și, cum există un număr finit de baze, mulțimea numerelor reale va fi împărțită într-un număr finit de intervale, pentru fiecare corespunzând o bază optimă sau nici una. Se poate demonstra că intervalele pe care nu există soluție optimă sunt neapărat de forma (-¥,a) sau (a,+¥)). Deoarece B-1 este inversabilă, cel puțin unul dintre  și  este finit. Fie  acesta.

Pentru l >  cel puțin unul dintre Dj(l) corespunzători bazei B0 va fi strict negativ. Este clar că pentru l >  trebuie căutată altă bază optimă, dacă aceasta există.

 

Pasul4.      Reluăm algoritmul pentru o valoare a lui l aflată în imediata vecinătate a luiși l > , astfel încât să ne situăm în intervalul imediat următor intervalului. Pentru găsirea bazei corespunzătoare acestuia (sau pentru aflarea faptului că nu există nici o soluție optimă pentru l >) se aplică în continuare algoritmul simplex primal (deoarece xB ³ 0).

Se obține o succesiune de valori <<<…<= +¥ și o succesiune de baze și soluții optime asociate fiecărui interval.

 

Pasul5.      Reluăm algoritmul pentru o valoare a lui l aflată în imediata vecinătate a lui și l <, astfel încât să ne situăm în intervalul imediat anterior lui. Pentru găsirea bazei corespunzătoare acestuia (sau pentru aflarea faptului că nu există nici o soluție optimă pentru l < ) se aplică în continuare algoritmul simplex primal (deoarece xB ³ 0).

Se obține o succesiune de valori >>>…>= -¥ și o succesiune de baze și soluții optime asociate fiecărui interval.

În acest moment, cunoaștem, pentru fiecare valoare posibilă a parametrului l, soluția optimă a problemei sau invers, pentru fiecare bază, care este mulțimea parametrilor pentru care aceasta este optimă și algoritmul este terminat.

 

Exemplu  Analizăm cazul aceleiași întreprinderi în cazul în care disponibilul din fiecare materie primă rămâne constant dar profiturile variază în funcție de un parametru m, acestea fiind date în tabelul de mai jos:

 

produse

mat. prime

P1

P2

P3

P4

P5

P6

Disponibil

M1

3

5

7

2

1

2

20

M2

5

6

9

3

4

5

40

M3

7

8

10

3

2

8

60

profit/1000 prod.

2 + 4m

3 + 3m

4 + 2m

1 + 4m

1 + 2m

2 + 3m

 

 

Rezolvare. Avem de rezolvat o problemă de parametrizare a coeficienților funcției obiectiv, deci vom aplica algoritmul de mai sus.

Se scrie problema de programare asociată și se aduce la forma standard:

 

 

 

F.S.

max [(2+4m)x1 + (3+3m)x2 + (4+2m)x3 + (1+4m)x4 + (1+2m)x5 + (2+3m)x6]

x1, x2, x3, x4, x5, x6 ³ 0

Û

max [(2+4m)x1 + (3+3m)x2 + (4+2m)x3 + (1+4m)x4 + (1+2m)x5 + (2+3m)x6]

x1, x2, x3, x4, x5, x6 ³ 0

 

Pasul 1. Rezolvăm problema pentru m = 0 și obținem baza optimă:

 

B = (a5,a6,a2) =   

 

soluția optimă xB = , inversa bazei B-1 =  și ultimul tabel simplex:

 

 

 

 

2 + 4m

3 + 3m

4 + 2m

1 + 4m

1 + 2m

2 + 3m

0

0

0

cB

xB

xB

x1

x2

x3

x4

x5

x6

s1

s2

s3

1 + 2m

x5

0

1

0

2 + 3m

x6

0

0

1

3 + 3m

x2

1

0

0

 

 

0

0

0

 

Pasul 2.  Se calculează Dj corespunzători bazei optime,  pentru m  oarecare:

 

D(l)  = Ś – c(m) =

=

 

Pasul 3.  Se rezolvă sistemul de inecuații xB ³ 0:

 

 D(m) ³ 0  Û    Þ  m Î  Þ =   și =

 

Pasul 4.  Se observă că pentru m aflat în imediata vecinătate a lui  și m > vom avea un singur Dj negativ și anume D4. Pentru un astfel de m, soluția corespunzătoare bazei B este primal admisibilă și, aplicând algoritmul simplex primal, x4 va fi introdusă în bază și înlocuită cu x5. Se obțin:

-       noua bază B = (a4, a6, a2) =  și B-1 =

-       noua soluție:

 

xB = B-1Śb = Ś=

 

-       noul tabel simplex corespunzător noii baze:

 

 

 

 

2 + 4m

3 + 3m

4 + 2m

1 + 4m

1 + 2m

2 + 3m

0

0

0

cB

xB

xB

x1

x2

x3

x4

x5

x6

s1

s2

s3

1 + 4m

x4

0

1

0

2 + 3m

x6

0

0

1

3 + 3m

x2

1

0

0

 

 

 

0

0

0

 

-       noul interval pe care este optimă noua bază:

   Þ  m Î  Þ =   și =

Reluând algoritmul vom obține succesiv intervalele și soluțiile următoare:

 

1.      m Î   B = (a4, a6, a9)  xB =

2.      m Î   B = (a4, a5, a9)  xB =

 

Pasul 5. Începând înapoi de la =  obținem:

 

3.      l Î   B = (a3, a6, a2)  xB =

4.      l Î   B = (a3, a6, a9)  xB =

5.      l Î      B = (a3, a8, a9)  xB =

6.      l Î     B = (a7, a8, a9)  xB =

La marginile intervalelor, problema va avea cel puțin două soluții de bază și, deci, o infinitate de soluții optime (toate combinațiile convexe dintre acestea).

 

În concluzie, dacă:

 

-       l Î  disponibilul din M1 ar fi negativ, caz fără sens economic.

-       l Î  întreprinderea va fabrica doar produse de tipul P5.

-       l Î  întreprinderea va fabrica doar produse de tipul P5 și P6.

-       l Î  întreprinderea va fabrica doar produse de tipul P5, P6 și P2.

-       l Î  întreprinderea va fabrica doar produse de tipul P5, P3 și P2.

-       l Î  întreprinderea va fabrica doar produse de tipul P3 și P2.

-       l Î  întreprinderea va fabrica doar produse de tipul P3 și P5.