Sunteți pe pagina 1din 10

Programarea liniar

Parametrizare
Sunt cazuri n care coeficienii unei probleme nu sunt cunoscui, sau nu pot fi estimai cu
exactitate, sau nu sunt constani, ei variind n funcie de unul sau mai muli parametrii, dup o lege
cunoscut, care este mai mult sau mai puin complicat, putnd lua valori ntr-o mulime oarecare,
finit sau infinit, discret sau continu, mrginit sau nemrginit. Ne-ar interesa s cunoatem,
pentru fiecare valoare posibil a coeficienilor, care este soluia optim a problemei, sau invers, pentru
fiecare soluie, care este mulimea parametrilor pentru care aceasta rmne optim.
Este evident c problema este att de complicat nct nu se poate da o unic rezolvare,
aplicabil pentru orice mulime a parametrilor i oricare ar fi legile de dependen a coeficienilor de
parametrii.
Ne propunem s facem rezolvarea doar pentru cazurile n care termenii liberi ai restriciilor
sau coeficienii funciei obiectiv variaz liniar n funcie de un singur parametru.
Cazul 1 Parametrizarea termenilor liberi ai restriciilor
Aadar termenii liberi ai restriciilor au forma:
b() = b
0
+ b
1
b
i
() = m i , 1 b b
1
i
0
i
+
unde R este parametrul considerat iar b
0
, b
1
R
m
sunt doi vectori cu componentele constante
reale. Pentru rezolvarea problemei pentru orice , vom parcurge urmtorii pai:
Pasul 1. Se rezolv problema pentru un
0
iniial; presupunem c exist cel puin un pentru
care problema are soluie (altfel am avea un caz neinteresant) i n plus putem presupune c el este
egal chiar cu 0, acest lucru putnd fi aranjat eventual prin schimbarea de variabil:
=
0
+
i scrierea lui b sub forma:
b() = (b
0
+ b
1

0
) + b
1
.
Vom gsi o soluie x
0
i baza corespunztoare B
0
.
Pasul 2. Se calculeaz soluiile de baz x
B
(), corespunztoare bazei gsite la pasul 1, pentru
variabil:
x
B
() =
( ) b B
1
0

Deoarece valorile
j
=
j j
-1
B
c a B c
T

nu depind de , ele sunt pozitive pentru orice , nu doar
pentru
0
i deci soluia x
B
() va fi optim atta timp ct are toate componentele pozitive. Acei
pentru care x
B
() 0 reprezint mulimea valorilor parametrului pentru care baza B
0
d soluia
optim.

Pasul 3. Se rezolv sistemul de inecuaii x
B
() 0, a crui soluie va fi, innd cont c toate
inecuaiile sunt liniare, un interval [ ]
0
0
,
, unde
0

poate fi i - iar
0

poate fi i + (n general,
pentru orice baz, mulimea pe care soluia este pozitiv are aceast form i deci i mulimea pe care
82
Programarea liniar
nu exist nici o baz cu soluia pozitiv va fi o reuniune de astfel de intervale, ns deschise i, cum
exist un numr finit de baze, mulimea numerelor reale va fi mprit ntr-un numr finit de
intervale, ca mai sus, pentru fiecare corespunznd o baz optim sau nici una. Se poate demonstra c
intervalele pe care nu exist soluie sunt neaprat de forma (-,a) sau (a,+)). Deoarece B
-1
este
inversabil, cel puin unul dintre
0

i
0

este finit. Fie


0

acesta.
Pentru >
0

, cel puin una din componentele soluiei de baz corespunztoare bazei B


0
va fi
strict negativ. Este clar c, pentru >
0

, trebuie cutat alt baz optim, dac aceasta exist.


Pasul 4. Relum algoritmul, pentru o valoare a lui aflat n imediata vecintate a lui
0

i
>
0

, astfel nct s ne situm n intervalul imediat urmtor intervalului [ ]


0
0
,
. Pentru gsirea bazei
corespunztoare acestuia (sau pentru aflarea faptului c nu exist nici o soluie pentru >
0

) se
aplic n continuare algoritmul simplex dual (deoarece toi
j
0).
Se obine o succesiune de valori
0

<
1

<
2

<<
k

= + i o succesiune de baze i soluii


optime asociate fiecrui interval.
Pasul 5. Relum algoritmul pentru o valoare a lui aflat n imediata vecintate a lui 0

i <
0

, astfel nct s ne situm n intervalul imediat anterior lui [ ]


0
0
, . Pentru gsirea bazei
corespunztoare acestuia (sau pentru aflarea faptului c nu exist nici o soluie pentru < 0

) se
aplic n continuare algoritmul simplex dual (deoarece toi
j
0).
Se obine o succesiune de valori
0

>
1

>
2

>>
l

= - i o succesiune de baze i soluii


optime asociate fiecrui interval.
n acest moment, cunoatem, pentru fiecare valoare posibil a parametrului , soluia optim a
problemei sau invers, pentru fiecare baz, care este mulimea parametrilor pentru care aceasta este
optim i algoritmul este terminat.
Exemplu O ntreprindere are gama sortimental format din 6 produse {P
j
/ j = 1,6} pentru
fabricarea crora folosete 3 materii prime {M
i
/ i = 1,3}. Se cunosc:
a) disponibilurile din fiecare materie prim {b
i
() / i = 1,3}, care sunt dependente liniar
de un parametru .
b) profiturile/1000 uniti vndute din fiecare produs {c
j
/ j = 1,6}.
c) coeficienii tehnologici {a
i,j
/ i = 1,3; j = 1,6} (a
i,j
= cantitatea din materia prim i
necesar fabricrii 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 + 3
M2 5 6 9 3 4 5 40 + 2
M3 7 8 10 3 2 8 60 +
profit/1000 prod. 2 3 4 1 1 2
Se dorete gsirea acelor cantiti {x
j
/ j = 1,6} ce trebuie fabricate din fiecare produs, astfel
nct s se obin 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:
83
Bazele cercetrii operaionale
F.S.
max (2x1 + 3x2 + 4x3 + x4 + x5 + 2x6)

'

+ + + + + +
+ + + + + +
+ + + + + +

60 8 2 3 10 8 7
2 40 5 4 3 9 6 5
3 20 2 2 7 5 3
6 5 4 3 2 1
6 5 4 3 2 1
6 5 4 3 2 1
x x x x x x
x x x x x x
x x x x x x
x1, x2, x3, x4, x5, x6 0

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

'

+ + + + + + +
+ + + + + + +
+ + + + + + +

60 8 2 3 10 8 7
2 40 5 4 3 9 6 5
3 20 2 2 7 5 3
3 6 5 4 3 2 1
2 6 5 4 3 2 1
1 6 5 4 3 2 1
s x x x x x x
s x x x x x x
s x x x x x x
x1, x2, x3, x4, x5, x6 0
Pasul 1. Rezolvm problema pentru = 0 i obinem baza optim:
B = (a
5
,a
6
,a
2
) =

,
_

8 8 2
6 5 4
5 2 1

soluia optim x
B
=

,
_

31
50
,
31
180
,
31
10
, inversa bazei B
-1
=

,
_




62
3
31
2
31
11
31
7
31
1
31
10
62
13
31
12
31
4

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
31
10
62
5
0
31
15
62
17
1 0
31
4

31
12
62
13

2 x6
31
180
31
14
0
31
9

31
2
0 1
31
10

31
1

31
7
3 x2
31
50
62
25
1
31
44
62
23
0 0
31
11
31
2

62
3

31
520
31
6
0
31
5
31
8
0 0
31
9
31
4
31
3
Pasul 2. Se calculeaz soluia de baz corespunztoare bazei optime pentru oarecare:
x
B
() = B
-1
b() =

,
_




62
3
31
2
31
11
31
7
31
1
31
10
62
13
31
12
31
4

,
_

+
+
+

60
2 40
3 20
=

,
_

62
55
31
50
31
25
31
180
62
11
31
10
Pasul 3. Se rezolv sistemul de inecuaii x
B
0:
x
B
0

'

+

+
0
62
55
31
50
0
31
25
31
180
0
62
11
31
10


1
]
1

5
36
,
11
20
0

=
11
20
i
0

=
5
36
84
Programarea liniar
Pasul 4. Se observ c pentru aflat n imediata vecintate a lui
0

i >
0

vom avea o
singur variabil negativ i anume x
6
. Pentru un astfel de , soluia corespunztoare bazei B este dual
admisibil i, aplicnd algoritmul simplex dual, aceasta va fi scoas din baz i nlocuit cu x
3
. Se
obin:
noua baz B = (a
5
, a
3
, a
2
) =

,
_

8 10 2
6 9 4
5 7 1
i B
-1
=

,
_




62
3
31
2
31
11
31
7
31
1
31
10
62
13
31
12
31
4
noua soluie:
x
B
() = B
-1
b() =

,
_




62
3
31
2
31
11
31
7
31
1
31
10
62
13
31
12
31
4

,
_

+
+
+

60
2 40
3 20
=

,
_

18
55
30
9
25
20
6
7
10
noul tabel simplex corespunztor 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
6
7
10
6
5
0 0
6
1
1
3
5
3
2

3
1
6
1
4 x3

9
25
20 +
9
14
0 1
9
2
0
9
31

9
10
9
1
9
7

3 x2
18
55
30
18
47
1 0
18
1
0
9
44
9
11

9
2

18
19

9
7
20 +
9
4
0 0
9
2
0
9
5
9
1
9
1
9
2
noul interval pe care este optim noua baz:

'


+

0
18
55
30
0
9
25
20
0
6
7
10


1
]
1

7
60
,
5
36

0

=
5
36
i
1

=
7
60
Relund algoritmul vom obine succesiv intervalele i soluiile urmtoare:
1.
1
]
1

11
140
,
7
60
B = (a
7
, a
3
, a
2
) x
B
=

,
_

+
+

12
11
3
35
6
5
3
10
4
7
15
85
Bazele cercetrii operaionale
2.
,
_

+ ,
11
140
B = (a
7
, a
3
, a
5
) x
B
=

,
_

+
+

2
1
11
70
11
80
2
5
11
270
Pasul 5. ncepnd napoi de la 0

=
11
20
obinem:
1.
1
]
1


11
20
, 4
B = (a
5
, a
6
, a
9
) x
B
=

,
_

3
55
3
100
3
10
3
40
3
11
3
20
2.
1
]
1

4 ,
3
20
B = (a
5
, a
8
, a
9
) x
B
=

,
_

5 20
10 40
3 20
3.
1
]
1


3
20
,
- sistemul nu are soluii admisibile.
La marginile intervalelor problema va avea cel puin dou soluii de baz i, deci, o infinitate
de soluii optime (toate combinaiile convexe dintre acestea).
n concluzie, dac:

,
_


3
20
,
disponibilul din M
1
ar fi negativ, caz fr sens economic.

1
]
1

4 ,
3
20
ntreprinderea va fabrica doar produse de tipul P
5

1
]
1


11
20
, 4
ntreprinderea va fabrica doar produse de tipul P
5
i P
6

1
]
1

5
36
,
11
20
ntreprinderea va fabrica doar produse de tipul P
5
, P
6
i P
2

1
]
1

7
60
,
5
36
ntreprinderea va fabrica doar produse de tipul P
5
, P
3
i P
2

1
]
1

11
140
,
7
60
ntreprinderea va fabrica doar produse de tipul P
3
i P
2

,
_

+ ,
11
140
ntreprinderea va fabrica doar produse de tipul P
3
i P
5
86
Programarea liniar
Cazul 2 Parametrizarea coeficienilor funciei obiectiv
Aadar, coeficienii funciei obiectiv au forma:
c() = c
0
+ c
1
c
j
() = n j , 1 c c
1
j
0
j
+
unde R este parametrul considerat iar c
0
, c
1
R
n
sunt doi vectori cu componentele constante
reale. Pentru rezolvarea problemei pentru orice , vom parcurge urmtorii pai:
Pasul1. Se rezolv problema pentru un
0
iniial; presupunem c exist cel puin un pentru care
problema are soluie (altfel am avea un caz neinteresant) i n plus putem presupune c el
este egal chiar cu 0, acest lucru putnd fi aranjat eventual prin schimbarea de variabil:
=
0
+
i scrierea lui b sub forma:
c() = (c
0
+ c
1

0
) + c
1
.
Vom gsi o soluie x
0
i baza corespunztoare B
0
.
Pasul2. Se calculeaz
j
() corespunztori bazei gsite la pasul 1, pentru variabil:

j
() = ( )
T
B
c A B
1
0

c()
Deoarece componentele soluiei de baz corespunztoare x
B
= b B
o

1
nu depind de , ele
sunt pozitive pentru orice , nu doar pentru
0
i soluia x
B
va fi optim atta timp ct toi
j
() 0.
Acei pentru care
j
() 0 reprezint mulimea valorilor parametrului pentru care baza B
0
d soluia
optim.

Pasul3. Se rezolv sistemul de inecuaii
j
() 0, a crui soluie va fi, innd cont c toate
inecuaiile sunt liniare, un interval [ ]
0
0
,
, unde
0

poate fi i - iar
0

poate fi i + (n
general, pentru orice baz, mulimea pe care
j
() 0 are aceast form i, deci, i
mulimea pe care nu exist soluie optim va fi o reuniune de astfel de intervale, ns
deschise i, cum exist un numr finit de baze, mulimea numerelor reale va fi mprit
ntr-un numr finit de intervale, pentru fiecare corespunznd o baz optim sau nici una. Se
poate demonstra c intervalele pe care nu exist soluie optim sunt neaprat de forma (-
,a) sau (a,+)). Deoarece B
-1
este inversabil, cel puin unul dintre 0

i
0

este finit.
Fie
0

acesta.
Pentru >
0

cel puin unul dintre


j
() corespunztori bazei B
0
va fi strict negativ. Este clar
c pentru >
0

trebuie cutat alt baz optim, dac aceasta exist.


Pasul4. Relum algoritmul pentru o valoare a lui aflat n imediata vecintate a lui
0

i >
0

,
astfel nct s ne situm n intervalul imediat urmtor intervalului
[ ]
0
0
,
. Pentru gsirea
bazei corespunztoare acestuia (sau pentru aflarea faptului c nu exist nici o soluie optim
pentru >
0

) se aplic n continuare algoritmul simplex primal (deoarece x


B
0).
87
Bazele cercetrii operaionale
Se obine o succesiune de valori
0

<
1

<
2

<<
k

= + i o succesiune de baze i soluii


optime asociate fiecrui interval.
Pasul5. Relum algoritmul pentru o valoare a lui aflat n imediata vecintate a lui 0

i < 0

,
astfel nct s ne situm n intervalul imediat anterior lui [ ]
0
0
,
. Pentru gsirea bazei
corespunztoare acestuia (sau pentru aflarea faptului c nu exist nici o soluie optim
pentru < 0

) se aplic n continuare algoritmul simplex primal (deoarece x


B
0).
Se obine o succesiune de valori
0

>
1

>
2

>>
l

= - i o succesiune de baze i soluii


optime asociate fiecrui interval.
n acest moment, cunoatem, pentru fiecare valoare posibil a parametrului , soluia optim a
problemei sau invers, pentru fiecare baz, care este mulimea parametrilor pentru care aceasta este
optim i algoritmul este terminat.
Exemplu Analizm cazul aceleiai ntreprinderi n cazul n care disponibilul din fiecare
materie prim rmne constant dar profiturile variaz n funcie de un parametru , 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 + 4 3 + 3 4 + 2 1 + 4 1 + 2 2 + 3
Rezolvare. Avem de rezolvat o problem de parametrizare a coeficienilor funciei obiectiv,
deci vom aplica algoritmul de mai sus.
Se scrie problema de programare asociat i se aduce la forma standard:
F.S.
max [(2+4)x1 + (3+3)x2 + (4+2)x3 +
(1+4)x4 + (1+2)x5 + (2+3)x6]

'

+ + + + +
+ + + + +
+ + + + +
60 8 2 3 10 8 7
40 5 4 3 9 6 5
20 2 2 7 5 3
6 5 4 3 2 1
6 5 4 3 2 1
6 5 4 3 2 1
x x x x x x
x x x x x x
x x x x x x
x1, x2, x3, x4, x5, x6 0

max [(2+4)x1 + (3+3)x2 + (4+2)x3 + (1+4)x4


+ (1+2)x5 + (2+3)x6]

'

+ + + + + +
+ + + + + +
+ + + + + +
60 8 2 3 10 8 7
40 5 4 3 9 6 5
20 2 2 7 5 3
3 6 5 4 3 2 1
2 6 5 4 3 2 1
1 6 5 4 3 2 1
s x x x x x x
s x x x x x x
s x x x x x x
x1, x2, x3, x4, x5, x6 0
Pasul 1. Rezolvm problema pentru = 0 i obinem baza optim:
B = (a
5
,a
6
,a
2
) =

,
_

8 8 2
6 5 4
5 2 1

soluia optim x
B
=

,
_

31
50
,
31
180
,
31
10
, inversa bazei B
-1
=

,
_




62
3
31
2
31
11
31
7
31
1
31
10
62
13
31
12
31
4

i ultimul tabel simplex:
88
Programarea liniar
2 + 4 3 + 3 4 + 2 1 + 4 1 + 2 2 + 3 0 0 0
cB xB xB x1 x2 x3 x4 x5 x6 s1 s2 s3
1 + 2 x5
31
10
62
5
0
31
15
62
17
1 0
31
4

31
12
62
13

2 + 3 x6
31
180
31
14
0
31
9

31
2
0 1
31
10

31
1

31
7
3 + 3 x2
31
50
62
25
1
31
44
62
23
0 0
31
11
31
2

62
3

31
520
31
6
0
31
5
31
8
0 0
31
9
31
4
31
3
Pasul 2. Se calculeaz
j
corespunztori bazei optime, pentru oarecare:
() = ( )
T
B
c
A B
1
0

c() =
=

,
_

+ + + ,
62
7
31
3
,
31
15
31
4
,
31
5
31
9
, 0 , 0 ,
62
157
31
8
,
31
73
31
5
, 0 ,
62
79
31
6

Pasul 3. Se rezolv sistemul de inecuaii x
B
0:
() 0

'

+
+


+

0
62
7
31
3
0
31
15
31
4
0
31
5
31
9
0
62
157
31
8
0
31
73
31
5
0
62
79
31
6


1
]
1

157
16
,
73
5
0

=
73
5
i
0
=
157
16
Pasul 4. Se observ c pentru aflat n imediata vecintate a lui
0
i >
0
vom avea un
singur
j
negativ i anume
4
. Pentru un astfel de , soluia corespunztoare bazei B este primal
admisibil i, aplicnd algoritmul simplex primal, x
4
va fi introdus n baz i nlocuit cu x
5
. Se
obin:
noua baz B = (a
4
, a
6
, a
2
) =

,
_

8 8 3
6 5 3
5 2 2
i B
-1
=

,
_


17
4
17
10
17
9
17
3
17
1
17
6
17
13
17
24
17
8
noua soluie:
89
Bazele cercetrii operaionale
x
B
= B
-1
b =

,
_


17
4
17
10
17
9
17
3
17
1
17
6
17
13
17
24
17
8

,
_

60
40
20
=

,
_

17
20
17
100
17
20
noul tabel simplex corespunztor noii baze:

2 + 4 3 + 3 4 + 2 1 + 4 1 + 2 2 + 3 0 0 0
cB xB xB x1 x2 x3 x4 x5 x6 s1 s2 s3
1 + 4 x4
17
20
17
5
0
17
30
1
17
62
0
17
8

17
24
17
13

2 + 3 x6
17
100
17
8
0
17
3
0
17
4
1
17
6

17
1
17
3
3 + 3 x2
17
20
17
5
1
17
13
0
17
23
0
17
9
17
10

17
4

17
9
17
2
0
17
116
17
5
+ 0
17
157
17
16
+ 0
17
23
17
7

17
69
17
4
+
17
31
17
5

noul interval pe care este optim noua baz:

'


+

+
+

0
17
31
17
5
0
17
69
17
4
0
17
23
17
7
0
17
157
17
16
0
17
116
17
5
0
17
9
17
2


1
]
1

31
5
,
157
16

0
=
157
16
i
1
=
31
5
Relund algoritmul vom obine succesiv intervalele i soluiile urmtoare:
1.
1
]
1

5
3
,
31
5
B = (a
4
, a
6
, a
9
) x
B
=

,
_

5
5
5
2.
,
_

+ ,
5
3
B = (a
4
, a
5
, a
9
) x
B
=

,
_

28
4
8
Pasul 5. ncepnd napoi de la 0

=
73
5
obinem:
90
Programarea liniar
3.
1
]
1


73
5
,
34
5
B = (a
3
, a
6
, a
2
) x
B
=

,
_

3
2
6
3
2
4.
1
]
1


34
5
,
17
6
B = (a
3
, a
6
, a
9
) x
B
=

,
_

17
20
17
100
17
20
5.
1
]
1


17
6
, 2
B = (a
3
, a
8
, a
9
) x
B
=

,
_

17
20
17
100
17
20
6.
[ ] 2 , B = (a
7
, a
8
, a
9
) x
B
=

,
_

0
0
0
La marginile intervalelor, problema va avea cel puin dou soluii de baz i, deci, o infinitate
de soluii optime (toate combinaiile convexe dintre acestea).
n concluzie, dac:

,
_


3
20
,
disponibilul din M
1
ar fi negativ, caz fr sens economic.

1
]
1

4 ,
3
20
ntreprinderea va fabrica doar produse de tipul P
5
.

1
]
1


11
20
, 4
ntreprinderea va fabrica doar produse de tipul P
5
i P
6
.

1
]
1

5
36
,
11
20
ntreprinderea va fabrica doar produse de tipul P
5
, P
6
i P
2
.

1
]
1

7
60
,
5
36
ntreprinderea va fabrica doar produse de tipul P
5
, P
3
i P
2
.

1
]
1

11
140
,
7
60
ntreprinderea va fabrica doar produse de tipul P
3
i P
2
.

,
_

+ ,
11
140
ntreprinderea va fabrica doar produse de tipul P
3
i P
5
.
91