Sunteți pe pagina 1din 14

Programarea liniar

Reoptimizare

Presupunem c am rezolvat o problem de programare liniar, cunoscnd pentru aceasta
soluia optim de baz x
B
=B
-1
b, inversa bazei B
-1
i tabelul simplex corespunztor soluiei optime.
Ne propunem s vedem, n condiiile n care se modific unele din datele problemei, ce anume din
rezolvarea fostei probleme mai poate fi folosit la rezolvarea noii probleme, n ncercarea de a
rezolva noua problem ntr-un timp mai scurt dect cel necesar rezolvrii acesteia de la zero, cu
algoritmul simplex. Acest deziderat corespunde ideii de a folosi experiena anterioar. De
asemenea, ne propunem s vedem ce influen au diferitele tipuri de modificri ale datelor
problemei asupra soluiilor, att din punct de vedere matematic ct i economic.
Datele problemei sunt constituite din:

coeficienii funciei obiectiv = componentele vectorului c
termenii liberi ai restriciilor = componentele vectorului b
coeficienii variabilelor din restricii = elementele matricii A

O modificare poate afecta toate cele trei grupe.
Vom analiza efectele modificrilor ncepnd de la cazurile cele mai simple:

Cazul 1. Dac se modific doar elementele vectorului c c

Deoarece matricea A i vectorul b rmn aceleai, avem acelai sistem de restricii i deci
aceeai mulime de soluii admisibile. Soluia optim a fostei probleme, fiind n particular soluie de
baz admisibil a sistemului de restricii, va fi soluie admisibil de baz i n noua problem.
Dispunem deci de o soluie iniial admisibil de baz i, deci, putem aplica algoritmul simplex
primal direct de la faza a doua. Se construiete tabelul simplex corespunztor soluiei, n problema
modificat:


B
c
S
c
B
c
x
B
x
B
x
B
x
S

B
-1
b


I
m

B
-1
S

B
c B
-1
b 0
j


care este de fapt fostul tabel, n care se recalculeaz
j
. Avem dou cazuri:
a) Dac toi 0, soluia este optim;
/ 1 / / / /
c a B c c z
j B j j
= =

b) Dac exist un < 0, se aplic n continuare algoritmul simplex primal, pn la gsirea
soluiei optime.
j

Exemplu: Pentru problema:


F.S.
(max) f = 3x
1
x
2
+ 2x
3

+
+
+
5 2
3
4
3 2
3 2
2 1
x x
x x
x x

x
1
, x
2
, x
3
0

(max)f = 3x
1
x
2
+2x
3
Ma
1

= + +
= + +
= + +
5 2
3
4
3 3 2
1 2 3 2
1 2 1
s x x
a s x x
s x x

x
1
, x
2
, x
3
, s
1
, s
2
, a
1
0

68
Bazele cercetrii operaionale

obinem n final urmtorul tabel simplex:

3 -1 2 0 0 0 -M
B
c

x
B
x
B
x
1
x
2
x
3
s
1
s
2
s
3
a
1
3 x
1
3 1 0 0 1 1 2 -2
2 x
3
2 0 0 1 0 1 1 -1
-1 x
2
1 0 1 0 0 -1 -2 2
12 0 0 0 3 6 10 M - 10

1. Dac noua funcie obiectiv este f = x
1
2x
2
+ 5x
3
atunci tabelul corespunztor va fi:

1 -2 5 0 0 0 -M
B
c

x
B
x
B
x
1
x
2
x
3
s
1
s
2
s
3
a
1
1 x
1
3 1 0 0 1 1 2 -2
5 x
3
2 0 0 1 0 1 1 -1
-2 x
2
1 0 1 0 0 -1 -2 2
11 0 0 0 1 8 11 M - 11

toi 0, ne aflm n cazul a) i soluia care ddea optimul fostei probleme este soluia optim i
n noua problem.
j

2. Dac noua funcie obiectiv este f = x


1
+ 3x
2
- 2x
3
atunci tabelul corespunztor va fi:

1 3 -2 0 0 0 -M
B
c

x
B
x
B
x
1
x
2
x
3
s
1
s
2
s
3
a
1
1 x
1
3 1 0 0 1 1 2 -2
-2 x
3
2 0 0 1 0 1 1 -1
3 x
2
1 0 1 0 0 -1 -2 2
2 0 0 0 1 -4 -6 M + 6

exist < 0 (de exemplu
j

4
2
=
s
), ne aflm n cazul b) i soluia care ddea optimul fostei
probleme nu este optim i n noua problem, pentru gsirea celei optime (dac exist!) trebuind s
aplicm n continuare algoritmul simplex primal.

Cazul 2 Dac se modific doar componentele vectorului b b

Deoarece matricea A rmne aceeai, fosta baz rmne baz i n noua problem. Soluia
corespunztoare va fi: iar b B x
B
=
1
j j j B j
c a B c = =
1
. n concluzie, noua soluie ar putea sau
nu s aib toate componentele pozitive (dup cum este noul b), dar sigur toi
j
rmn pozitivi
(fiind aceeai cu cei ai soluiei fostei probleme, care era optim), deci soluia este cel puin dual
admisibil de baz. Vom avea dou cazuri:
a) Dac atunci soluia este i primal admisibil, deci este soluia optim a noii
probleme;
0
B
x
b) Dac are cel puin o component negativ atunci soluia este doar dual admisibil de
baz i vom continua cu algoritmul simplex dual pentru gsirea celei optime (dac ea
exist!).
B
x

69
Programarea liniar
Exemplu Pentru problema:

F.S.
(max) f = - 4x
1
x
2
+ 2x
3


+ +
+
15 3 5
14 5 2
17 2 4
3 2 1
3 2 1
3 2 1
x x x
x x x
x x x

x
1
, x
2
, x
3
0

(max) f = - 4x
1
x
2
+ 2x
3
Ma
1

= + + +
= + + +
= + +
15 3 5
14 5 2
17 2 4
3 3 2 1
1 2 3 2 1
1 3 2 1
s x x x
a s x x x
s x x x

x
1
,x
2
, x
3
, s
1
, s
2
, s
3
, a
1
0

obinem n final urmtorul tabel simplex:

-4 -1 2 0 0 0 -M
B
c

x
B
x
B
x
1
x
2
x
3
s
1
s
2
s
3
a
1
0 s
1
22
3
11

3
11

0 1 0
3
1

0
0 s
2
11
3
11


3
22

0 0 1
3
5

-1
2 x
3
5
3
1


3
5

1 0 0
3
1

0

10
3
10

3
13

0 0 0

3
2

M

din care obinem inversa bazei B =
|
|
|
.
|

\
|


3 0 0
5 1 0
1 0 1
ca fiind B
-1
=
|
|
|
|
|
|
.
|

\
|

3
1
0 0
3
5
1 0
3
1
0 1

1. Dac noul vector al termenilor liberi, din problema la forma standard, ar fi b = (2, 5, 6)
T

atunci tabelul corespunztor ar fi:

-4 -1 2 0 0 0 -M
B
c

x
B
x
B
x
1
x
2
x
3
s
1
s
2
s
3
a
1
0 s
1
4
3
11

3
11

0 1 0
3
1

0
0 s
2
5
3
11


3
22

0 0 1
3
5

-1
2 x
3
2
3
1


3
5

1 0 0
3
1

0

4
3
10

3
13

0 0 0

3
2

M

toate componentele soluiei ar fi pozitive, ne-am afla n cazul a) i soluia gsit ar fi soluia optim
n noua problem.
2. Dac noul vector al termenilor liberi din problema la forma standard ar fi b = (5, 6, 3)
T

atunci tabelul corespunztor ar fi:

70
Bazele cercetrii operaionale
-4 -1 2 0 0 0 -M
B
c

x
B
x
B
x
1
x
2
x
3
s
1
s
2
s
3
a
1
0 s
1
6
3
11

3
11

0 1 0
3
1

0
0 s
2
-1
3
11


3
22

0 0 1
3
5

-1
2 x
3
1
3
1


3
5

1 0 0
3
1

0

2
3
10

3
13

0 0 0

3
2

M

ar exista componente ale soluiei strict negative (de exemplu x
3
= -1), ne-am afla n cazul b), soluia
nu ar fi primal admisibil i, pentru gsirea celei optime, (dac exist!) vom aplica n continuare
algoritmul simplex dual.

Cazul 3. Dac apar k variabile suplimentare, cu coeficienii corespunztori, n funcia
obiectiv i n restricii.
Aceast modificare are ca efect adugarea a k coloane la matricea A i a k elemente la
vectorul c, numrul de restricii (i deci de linii ale matricii A i de elemente ale vectorului b)
rmnnd acelai.
Deoarece, n momentul ajungerii la soluia optim, n sistem se afl doar restricii
independente ntre ele, rangul matricii este egal cu numrul de linii (care este mai mic dect
numrul de coloane) i, din acest motiv, adugarea orictor coloane nu l va modifica. Baza fostei
matrici rmne deci baz i n noua matrice, soluia x
B
= B
-1
b 0 rmne soluie de baz a noului
sistem de restricii (B i b fiind aceeai), deci este i o soluie de baz primal admisibil a noii
probleme. Tabelul corespunztor acestei baze, n noua problem, este cel anterior, la care se adaug
k coloane astfel:

pe linia variabilelor se adaug noile variabile;
pe linia coeficienilor funciei obiectiv se adaug coeficienii corespunztori noilor
variabile;
n interiorul tabelului, sub fiecare variabil nou introdus, se adaug coloana B
-1
a
k
,
unde a
k
este vectorul coloan format din coeficienii variabilei x
k
, nou introduse n
restriciile problemei;

k
, corespunztori noilor variabile, se calculeaz cu formula cunoscut:
k
= B
T
B
c
-1
a
k
-
c
k
.

Vom avea dou cazuri:

a) Dac toi
k
sunt pozitivi, soluia optim a fostei probleme este soluie optim i pentru
noua problem;
b) Dac exist un indice k, pentru care
k
< 0, atunci soluia este doar primal admisibil i
vom aplica n continuare algoritmul simplex primal, pentru gsirea soluiei optime (dac
ea exist!)





71
Programarea liniar
Exemplu Fie problema:

F.S.

(max) f = 3x
1
+ 4x
2
2x
3

+
+
+
3
5
36 7 10
3 2 1
2 1
3 2 1
x x x
x x
x x x

x
1
, x
2
, x
3
0

(max) f = 3x
1
+ 4x
2
2x
3
Ma
1

= + +
= + + +
= + +
3
5 5
36 7 10
3 3 2 1
2 3 2 1
1 1 3 2 1
s x x x
s x x x
a s x x x

x
1
,x
2
, x
3
, s
1
, s
2
, s
3
, a
1
0

pentru care obinem tabelul simplex final:

3 4 -2 0 0 0 -M
B
c

x
B
x
B
x
1
x
2
x
3
s
1
s
2
s
3
a
1
4 x
2
4 0 1 0
3
1

3
3
1

3
1


3 x
1
1 1 0 0
3
1


-2
3
1


3
1

-2 x
3
2 0 0 1 0 1 -1 0

15 0 0 0

3
1

4 2
M
3
1



de unde gsim inversa bazei B =
|
|
|
.
|

\
|

1 1 1
0 1 1
1 10 7
ca fiind B
-1
=
.
|

\
|

1 1 0
3
1
2
3
1
3
1
3
3
1
.
1. Dac introducem, n plus, variabilele x
4
, x
5
i x
6
, obinnd problema la forma standard:

(max) f = 3x
1
+ 4x
2
2x
3
+2x
4
20x
5
x
6
Ma
1

= + +
= + + + + +
= + + + +
3 2 2
5 2 3 2 5
36 3 7 10
3 6 5 4 3 2 1
2 6 5 4 3 2 1
1 1 6 5 4 3 2 1
s x x x x x x
s x x x x x x
a s x x x x x x

x
1
, x
2
, x
3
, x
4
, x
5
, x
6
, s
1
, s
2
, s
3
, a
1
0

vom obine tabelul corespunztor bazei B, n noua problem, prin:

adugarea variabilelor x
4
, x
5
, x
6
la linia variabilelor;
adugarea coeficienilor 2, -20, -1 corespunztori acestor variabile la linia coeficienilor
funciei obiectiv;
adugarea coloanelor:
a
4
=
.
|

\
|

1 1 0
3
1
2
3
1
3
1
3
3
1

,
|
|
|
.
|

\
|
2
2
1
|
|
|
.
|

\
|

4
3
5
72
Bazele cercetrii operaionale
a
5
=
.
|

\
|

1 1 0
3
1
2
3
1
3
1
3
3
1

|
|
|
.
|

\
|

2
3
1
=
|
|
|
|
|
|
.
|

\
|

1
3
19
3
28
,
a
6
=
.
|

\
|

1 1 0
3
1
2
3
1
3
1
3
3
1

.
|
|
|
.
|

\
|
2
2
1
|
|
|
.
|

\
|

4
3
5
adugm:

4
= B
T
B
c
-1
a
4
c
4
= 1

5
= B
T
B
c
-1
a
5
c
5
=
3
11


6
= B
T
B
c
-1
a
6
c
6
=
3
17


i, final, obinem tabelul:

3 4 -2 2 -20 -1 0 0 0 -M
B
c

x
B
x
B
x
1
x
2
x
3
x
4
x
5
x
6
s
1
s
2
s
3
a
1
4 x
2
4 0 1 0 5
3
28

3
14

3
1

3
3
1

3
1


3 x
1
1 1 0 0 -3
3
19

3
8


3
1
-2
3
1


3
1

-2 x
3
2 0 0 1 4 -1 3 0 1 -1 0

15 0 0 0 1
3
11

3
17

3
1

4 2 M
3
1


Se observ c toi
j
sunt pozitivi, deci soluia este optim.

2. Dac, pentru aceeai modificare, alegem coeficientul lui x
5
egal cu 10, n loc de 20, n
tabel se va modifica doar
5
, care va avea valoarea
3
19

i ne vom afla n cazul b) (deoarece


5
<
0); vom continua cutarea soluiei optime cu algoritmul simplex primal.

Cazul 4. Dac se adaug o restricie

Efectul este adugarea unei linii la matricea A i a unui element la vectorul b.
Se verific dac fosta soluie de optim verific noua restricie. Dac o verific, ea este
soluia de optim i a noii probleme. Dac nu o verific, vom cuta n continuare noua soluie de
optim (dac ea exist!).
73
Deoarece rangul matricii A era egal cu numrul de linii (care era mai mic dect numrul de
coloane), prin adugarea unei linii rangul noii matrici va fi cu 1 mai mare (dac nu s-ar ntmpla aa
Programarea liniar
ar rezulta c noua restricie este o combinaie a celor anterioare i, deci, nu are nici un efect asupra
mulimii soluiilor, putnd fi eliminat din sistem, noua problem fiind de fapt aceeai cu fosta
problem, care e deja rezolvat).
n acest caz, fosta baz nu mai este baz n noua matrice, ci doar un minor cu determinantul
diferit de zero, de dimensiune cu 1 mai mic dect rangul matricii. Pentru a obine baza noii
probleme vom borda fosta baz cu noua linie i o coloan.
Din ultimul tabel simplex al fostei probleme, putem scrie fostul sistem la forma:

x
B
+B
-1
Sx
S
= B
-1
b = x
B


de unde scoatem variabilele principale n funcie de cele secundare, le nlocuim n noua restricie i
apoi aranjm ca termenul liber b
m+1
obinut s fie pozitiv (nmulind eventual restricia cu 1).
Adugm noua restricie, sub forma obinut, la sistemul iniial, scris sub forma corespunztoare
ultimului tabel simplex. Avem trei cazuri:

a) Dac restricia este de tipul , introducem variabila de abatere s, care va avea
coeficientul +1 i baza va fi format din coloanele corespunztoare fostelor variabile
principale, plus coloana variabilei s, obinnd matricea unitate. Tabelul corespunztor n
noua problem va fi fostul tabel, la care se adaug:

o linie n plus, pe care: c
s
= 0 n coloana coeficienilor din funcia obiectiv ai
variabilelor din baza, s n coloana variabilelor bazei, b
m+1
n coloana soluiei de
baz, coeficienii noii restricii (adus la ultima form) n interiorul tabelului i 1 in
dreptul noii variabile s.
o coloan n plus corespunztoare lui s, care va fi vector unitar.

n acest caz, noii
j
vor fi fotii
j
(deoarece c
s
= 0), la care se adaug cel corespunztor
lui s (egal cu 0, deoarece s este din baz). Soluia are toate componentele pozitive i toi

j
pozitivi, deci este soluia optim cutat.
b) Dac restricia este de tipul variabila de abatere va avea coeficientul 1 i soluia
corespunztoare este doar dual admisibil (deoarece s = -b
m+1
< 0); vom continua
cutarea soluiei optime cu algoritmul simplex dual.
c) Dac restricia este cu =, se introduce variabila artificial a, cu c
a
= -M, se construiete
tabelul asociat ca la cazul a) i se obine o soluie admisibil (deoarece a = b
m+1
0), cu

j
depinznd de M (deoarece c
a
= -M). Se continu cu algoritmul simplex primal.

Exemplu Fie problema:


F.S.

(max) f = x
1
3x
2
+ 2x
3

+ +
+ +
+
18 4 3
18 5
9 2 4
3 2 1
3 2 1
3 2 1
x x x
x x x
x x x

x
1
, x
2
, x
3
0

(max) f = x
1
3x
2
+ 2x
3

= + + +
= + + +
= + +
18 4 3
18 5
9 2 4
3 3 2 1
1 2 3 2 1
1 3 2 1
s x x x
a s x x x
s x x x

x
1
, x
2
, x
3
, s
1
, s
2
, s
3
, a
1
0

pentru care obinem tabelul final:
74
Bazele cercetrii operaionale


1 -3 2 0 0 0 -M
c
B
x
B
x
B
x
1
x
2
x
3
s
1
s
2
s
3
a
1

0 s
2
54 0 11 0 2 1 3 -1
2 x
3
99 0 22 1 3 0 4 0
1 x
1
27 1 6 0 1 0 1 0

225 0 53 0 7 0 9 M

din care putem scrie sistemul de restricii sub forma:

= + + +
= + + +
= + + +
27 6
99 4 3 22
54 2 11
3 1 2 1
3 1 2 3
3 1 2 2
s s x x
s s x x
s s x s

=
=
=
3 1 2 1
3 1 2 3
3 1 2 2
6 27
4 3 22 99
2 11 54
s s x x
s s x x
s s x s

1. Dac noua restricie ar fi 2x
1
+ x
2
x
3
7 atunci soluia de optim (x
1
= 27, x
2
= 0, x
3
=
99) ar verifica noua restricie i ar fi soluie de optim i pentru noua problem.
2. Dac noua restricie ar fi 3x
1
+2x
2
+ x
3
8 ea nu ar fi verificat de fosta soluie de optim.
nlocuind n aceast restricie s
2
, x
1
i x
3
, cu expresiile obinute n sistemul de mai sus, rezult:

3(27 6x
2
s
1
s
3
) + 2x
2
+ (99 22x
2
3s
1
4s
3
) 8
-38x
2
6s
1
7s
3
-172 38x
2
+ 6s
1
+ 7s
3
172
38x
2
+ 6s
1
+ 7s
3
s = 172

i sistemul: iar n final, tabelul:

= + +
= + + +
= + + +
= + + +
172 7 6 38
27 6
99 4 3 22
54 2 11
3 1 2
3 1 2 1
3 1 2 3
3 1 2 2
s s s x
s s x x
s s x x
s s x s


1 -3 2 0 0 0 0
c
B
x
B
x
B
x
1
x
2
x
3
s
1
s
2
s
3
s
0 s
2
54 0 11 0 2 1 3 0
2 x
3
99 0 22 1 3 0 4 0
1 x
1
27 1 6 0 1 0 1 0
0 s -172 0 38 0 6 0 7 1

225 0 53 0 7 0 9 0

n care soluia de baz este dual admisibil. Se continu rezolvarea problemei cu algoritmul simplex
dual.

3. Dac noua restricie ar fi x
1
+ x
2
+ x
3
= 100 ea nu ar fi verificat de fosta soluie. Prin
nlocuirea lui x
1
i x
3
obinem:

(27 6x
2
s
1
s
3
) + x
2
+ (99 22x
2
3s
1
4s
3
) = 100
-27x
2
4s
1
5s
3
= -26 27x
2
+ 4s
1
+ 5s
3
= 26
27x
2
+ 4s
1
+ 5s
3
+ a = 26

75
Programarea liniar
rezult sistemul: iar n final, tabelul:

= + + +
= + + +
= + + +
= + + +
26 5 4 27
27 6
99 4 3 22
54 2 11
3 1 2
3 1 2 1
3 1 2 3
3 1 2 2
a s s x
s s x x
s s x x
s s x s


1 -3 2 0 0 0 -M
c
B
x
B
x
B
x
1
x
2
x
3
s
1
s
2
s
3
a
0 s
2
54 0 11 0 2 1 3 0
2 x
3
99 0 22 1 3 0 4 0
1 x
1
27 1 6 0 1 0 1 0
-M a 26 0 27 0 4 0 5 1

-26M + 225 0 -27M + 53 0 -4M + 7 0 -5M + 9 0

n care soluia de baz este primal admisibil. Se continu rezolvarea problemei cu algoritmul
simplex primal.

Cazul 5. Dac se modific coeficienii unei variabile x
j

Efectul este modificarea coloanei a
j

j
a din A i/sau a coeficientului c
j
din funcia
obiectiv. Avem dou variante:
j
c

Cazul 5.1 Coloana a
j
nu face parte din B. n acest caz fosta baz B rmne baz i n noua
problem, soluia corespunztoare este aceeai: x
B
= B
-1
b i tabelul corespunztor este fostul tabel,
n care se modific doar coloana corespunztoare variabile x
j
:

c
j
, B
j
c
-1
a
j
B
-1
a ,
j

j

j j B j
c a B c =
1

Avem dou cazuri:

Dac fosta soluie optim rmne optim i n noua problem. 0
j
Dac < 0 fosta soluie optim este doar primal admisibil i se va continua rezolvarea
problemei cu algoritmul simplex primal.
j


Exemplu Fie problema:

F.S.

(max) f = 2x
1
+3x
2
+ 4x
3

+
+
+
5 5 4
15 4 5 6
15 5 6
3 2 1
3 2 1
3 2 1
x x x
x x x
x x x

x
1
, x
2
, x
3
0

(max) f = 2x
1
+3x
2
+ 4x
3

= + +
= + +
= + +
5 5 4
15 4 5 6
15 5 6
3 3 2 1
2 3 2 1
1 1 3 2 1
s x x x
s x x x
a s x x x

x
1
, x
2
, x
3
, s
1
, s
2
, s
3
, a
1
0

Dup rezolvare, se obine tabelul simplex final de mai jos, din care se gsete inversa bazei
B =

ca fiind B
|
|
|
.
|

\
|

5 0 4
5 0 6
5 1 6
-1
=
|
|
|
|
|
.
|

\
|

5
3
5
2
0
6 5 1
2
1
2
1
0

76
Bazele cercetrii operaionale



2 3 4 0 0 0 -M
c
B
x
B
x
B
x
1
x
2
x
3
s
1
s
2
s
3
a
1

2 x
1
10 1 0
2
3
0
2
1

2
1
0
0 s
1
90 0 0 15 1 5 6 -1
3 x
2
9 0 1 1 0
5
2

5
3
0
47 0 0 2 0
5
11

5
14
M


1. Dac se modific coeficienii variabilei x
3
, problema devenind:

F.S.
(max) f = 2x
1
+3x
2
+ 2x
3

+
+
+
5 3 5 4
15 3 5 6
15 2 5 6
3 2 1
3 2 1
3 2 1
x x x
x x x
x x x

x
1
, x
2
, x
3
0

(max) f = 2x
1
+3x
2
+ 2x
3

= + +
= + +
= + +
5 3 5 4
15 3 5 6
15 2 5 6
3 3 2 1
2 3 2 1
1 1 3 2 1
s x x x
s x x x
a s x x x

x
1
, x
2
, x
3
, s
1
, s
2
, s
3
, a
1
0

noua coloan corespunztoare lui x
3
va fi a
/
3
=
|
|
|
|
|
.
|

\
|

5
3
5
2
0
6 5 1
2
1
2
1
0

=
|
|
|
.
|

\
|

3
3
2
|
|
|
|
.
|

\
|

5
3
1
0

iar
/
3
=
5
19
< 0, deci
ne aflm n cazul b) i vom continua rezolvarea problemei cu algoritmul simplex primal, de la
tabelul:


2 3 2 0 0 0 -M
c
B
x
B
x
B
x
1
x
2
x
3
s
1
s
2
s
3
a
1

2 x
1
10 1 0 0 0
2
1

2
1
0
0 s
1
90 0 0 -1 1 5 6 -1
3 x
2
9 0 1
5
3


0
5
2

5
3

0
47 0 0
5
19


0
5
11

5
14

M

2. Dac se modific coeficienii variabilei x
3
, problema devenind:


F.S.
(max) f = 2x
1
+3x
2
- 3x
3

+
+
+
5 2 5 4
15 5 5 6
15 3 5 6
3 2 1
3 2 1
3 2 1
x x x
x x x
x x x

x
1
, x
2
, x
3
0

(max) f = 2x
1
+3x
2
3x
3

= + +
= + +
= + +
5 2 5 4
15 5 5 6
15 3 5 6
3 3 2 1
2 3 2 1
1 1 3 2 1
s x x x
s x x x
a s x x x

x
1
, x
2
, x
3
, s
1
, s
2
, s
3
, a
1
0
77
Programarea liniar
noua coloan corespunztoare lui x
3
va fi a
/
3
=
|
|
|
|
|
.
|

\
|

5
3
5
2
0
6 5 1
2
1
2
1
0
=
|
|
|
.
|

\
|

2
5
3
|
|
|
|
|
.
|

\
|
5
4
16
2
3

iar
/
3
=
5
42
< 0, deci ne
aflm n cazul a) cu fosta soluie optim i pentru noua problem, tabelul final fiind:


2 3 -3 0 0 0 -M
c
B
x
B
x
B
x
1
x
2
x
3
s
1
s
2
s
3
a
1

2 x
1
10 1 0
2
3
0
2
1

2
1
0
0 s
1
90 0 0 16 1 5 6 -1
3 x
2
9 0 1
5
4
0
5
2

5
3
0
47 0 0
5
42
0
5
11

5
14
M


Cazul 5.2 Coloana a
j
face parte din baza B. n acest caz fosta baz nu mai exist n noua
matrice A. Noul minor B, obinut prin nlocuirea lui a
j
cu
j
a n B, poate fi:
neinversabil (det B = 0) caz n care trebuie cutat alt baz;
inversabil, soluia corespunztoare x
B
= (B)
-1
b putndu-se n urmtoarele situaii:
are toate componentele pozitive (x
B
0), deci este primal admisibil i putem aplica
n continuare algoritmul simplex primal;
are componente strict negative, dar are toi
j
pozitivi, deci este dual admisibil i
putem aplica n continuare algoritmul simplex dual;
are componente strict negative i exist
j
strict negativi, deci nu este nici primal nici
dual admisibil i trebuie cutat alt baz.

Se observ c exist variante cnd trebuie cutate alte baze i, chiar n cazurile cnd putem
folosi noua baz, avem de fcut calcule laborioase (inversarea lui B, calculul produselor B
-1
b i B
-
1
A i calculul noilor
j
). Din acest motiv vom aplica urmtorul procedeu (fr a mai verifica
posibilitatea existenei unui caz favorabil de mai sus):

pasul 1. Se scriu n noua problem (adus la forma canonic) toi termenii cu variabila x
j
ca
o sum de doi termeni, unul avnd coeficient fostul coeficient al variabilei x
j
iar cellalt diferena
dintre acetia:

j
c x
j
= c
j
x
j
+ (
j
c - c
j
) x
j
ij
a x
ij
= a
ij
x
j
+ (
ij
a - a
ij
) x
j


pasul 2. Se nlocuiete n toi termenii de forma (
j
c - c
j
) x
j
i (
ij
a - a
ij
) x
j
, variabila x
j
cu o
nou variabil y i se adaug la sistem restricia x
j
= y, obinndu-se o problem echivalent.

pasul 3. Pentru noua problem, se aplic procedeul de la cazul 4 pentru varianta c),
obinndu-se o soluie de baz admisibil cu care se continu cu algoritmul simplex primal.


Exemplu Dup rezolvarea problemei:
78
Bazele cercetrii operaionale

F.S.

(max) f = 2x
1
+3x
2
+ 5x
3

+ +
+ +
+ +
6 2
8 3 2
10 2 3
3 2 1
3 2 1
3 2 1
x x x
x x x
x x x

x
1
, x
2
, x
3
0

(max) f = 2x
1
+3x
2
+ 5x
3

= + + +
= + + +
= + + +
6 2
8 3 2
10 2 3
3 3 2 1
2 3 2 1
1 3 2 1
s x x x
s x x x
s x x x

x
1
, x
2
, x
3
, s
1
, s
2
, s
3
0

se obine soluia optim i tabelul pentru baza corespunztoare variabilelor (x
1
, x
3
, s
3
), n care (x
1
=
2, x
3
= 2, s
3
= 0) i tabelul:


2 3 5 0 0 0
c
B
x
B
x
B
x
1
x
2
x
3
s
1
s
2
s
3

2 x
1
2 1
7
1
0
7
3

7
2
0
5 x
3
2 0
7
5
1
7
1

7
3
0
0 s
3
0 0
7
4
0
7
5

7
1
1
14 0
7
2
0
7
1

7
11
0

B i B
-1
fiind date mai jos:
B = B
|
|
|
.
|

\
|
1 1 2
0 3 1
0 2 3
-1
=
|
|
|
|
|
|
.
|

\
|

1
7
1
7
5
0
7
3
7
1
0
7
2
7
3


Dac presupunem c se modific coeficienii variabilei x
3
, noua problem fiind:

F.S.

(max) f = 2x
1
+3x
2
+ 2x
3

+ +
+ +
+ +
6 2
8 2
10 3
3 2 1
3 2 1
3 2 1
x x x
x x x
x x x

x
1
, x
2
, x
3
0

(max) f = 2x
1
+3x
2
+ 2x
3

= + + +
= + + +
= + + +
6 2
8 2
10 3
3 3 2 1
2 3 2 1
1 3 2 1
s x x x
s x x x
s x x x

x
1
, x
2
, x
3
, s
1
, s
2
, s
3
0

deoarece x
3
face parte din baz, vom face transformarea:

F.S.
(max) f = 2x
1
+3x
2
+ 2x
3

= + + +
= + + +
= + + +
6 2
8 2
10 3
3 3 2 1
2 3 2 1
1 3 2 1
s x x x
s x x x
s x x x

x
1
, x
2
, x
3
, s
1
, s
2
, s
3
0

(max) f = 2x
1
+3x
2
+ 5x
3
- 3y

=
= + + +
= + + +
= + + +
y x
s x x x
s y x x x
s y x x x
3
3 3 2 1
2 3 2 1
1 3 2 1
6 2
8 2 3 2
10 2 3

x
1
, x
2
, x
3
, s
1
, s
2
, s
3
, y 0
79
Programarea liniar

Din primele trei ecuaii scoatem variabilele fostei baze (x
1
, x
3
, s
3
) n funcie de celelalte,
nmulind sistemul cu B
-1
. Coeficienii fostelor variabile se iau din ultimul tabel iar ai lui y se
calculeaz nmulind coloana coeficienilor lui cu B
-1
. Avem:

B
-1

=
|
|
|
.
|

\
|

0
2
1
|
|
|
|
|
|
.
|

\
|

1
7
1
7
5
0
7
3
7
1
0
7
2
7
3
=
|
|
|
.
|

\
|

0
2
1
|
|
|
|
|
|
.
|

\
|

7
3
7
5
7
1



deci sistemul va avea forma:

=
= + + +
= + +
= + +
y x
s s s y x
s s y x x
s s y x x
3
3 2 1 2
2 1 3 2
2 1 2 1
0
7
1
7
5
7
3
7
4
2
7
3
7
1
7
5
7
5
2
7
2
7
3
7
1
7
1


Din primele trei ecuaii se scot variabilele bazei n funcie de celelalte:

+ =
+ + =
+ + =
2 1 2 3
2 1 2 3
2 1 2 1
7
1
7
5
7
3
7
4
7
3
7
1
7
5
7
5
2
7
2
7
3
7
1
7
1
2
s s y x s
s s y x x
s s y x x

apoi se nlocuiesc n ultima ecuaie: y s s y x = + +
2 1 2
7
3
7
1
7
5
7
5
2 2
7
3
7
1
7
2
7
5
2 1 2
= + + s s y x
n care se adaug variabila de abatere a i se adaug la sistem. Se obine n final problema:

(max) f = 2x
1
+3x
2
+ 5x
3
- 3y

= + + +
= + + +
= + +
= + +
2
7
3
7
1
7
2
7
5
0
7
1
7
5
7
3
7
4
2
7
3
7
1
7
5
7
5
2
7
2
7
3
7
1
7
1
2 1 2
3 2 1 2
2 1 3 2
2 1 2 1
a s s y x
s s s y x
s s y x x
s s y x x


Tabelul corespunztor va fi:

80
Bazele cercetrii operaionale


2 3 5 -3 0 0 0 -M
c
B
x
B
x
B
x
1
x
2
x
3
y s
1
s
2
s
3
a
2 x
1
2 1
7
1
0
7
1

7
3

7
2
0 0
5 x
3
2 0
7
5
1
7
5

7
1

7
3
0 0
0 s
3
0 0
7
4
0
7
5

7
5

7
1
1 0
-M a 2 0
7
5
0
7
2

7
1

7
3
0 1
14-2M 0
7
2
-
7
5
M 0
7
2

7
2
M
7
1
+
7
1
M
7
11
-
7
3
M 0 0

n care soluia de baz este admisibil i vom continua rezolvarea cu algoritmul simplex primal.

Din punct de vedere economic, situaiile de mai sus pot fi foarte bine exemplificate pe cazul
unei ntreprinderi care fabric n produse folosind m materii prime i dorete gsirea acelor cantiti
ce trebuie fabricate din fiecare produs astfel nct s obin profitul total maxim.
n acest caz coeficienii problemei vor fi:

c
j
= profiturile unitare obinute prin vnzarea celor n produse.
b
i
= disponibilurile din cele m materii prime.
a
ij
= coeficienii tehnologici.

1. Modificarea coeficienilor funciei obiectiv poate nsemna fie o reevaluare a profiturilor
unitare, fie pur i simplu schimbarea obiectivului propus (de exemplu maximizarea
veniturilor sau minimizarea cheltuielilor n loc de maximizarea profitului, caz n care c
i

ar avea alte semnificaii (venit unitar, cost unitar) i deci cu totul alte valori).
2. Modificarea termenilor liberi poate nsemna modificarea posibilitilor de procurare a
materiilor prime prin pierderea unor furnizori sau realizarea de contracte cu noi
furnizori.
3. Apariia de coloane n plus nseamn lrgirea gamei de produse.
4. Apariia de noi restricii poate nseamn existena unei resurse care nu fusese luat n
considerare pn acum, deoarece limitele datorate acesteia erau suficient de largi pentru
a nu influena soluia, n urma modificrii acestor limite ele putnd modifica soluia.
5. Modificarea coloanelor poate nsemna fie schimbarea gamei sortimentale, fie schimba-
rea tehnologiei de fabricaie.
81

S-ar putea să vă placă și