Sunteți pe pagina 1din 8

TEMA III

OPTIMIZAREA PROCESELOR ECONOMICE


UTILIZÂND PROGRAMAREA LINIARĂ

CURS 8. Fundamentele teoretice ale metodei simplex

1 Baze şi soluţii de bază ale unui program liniar în formă standard


2 Importanţa conceptului de soluţie admisibilă de bază

1 Baze şi soluţii de bază ale unui program liniar în formă standard

Considerăm un program liniar (P) în formă standard cu m restricţii şi n variabile şi în care funcţia
obiectiv se maximizează:

1
 n
(max) f  c1 x1  c2 x2   cn xn  (max) f   c j x j
a x  a x   a x  b  j 1
 11 1 12 2 (max) f  cx
 n
1n n 1

( P )  a21 x1  a22 x2   a2 n xn  b2    aij x j  bi i  1, , m   Ax  b
  j 1  x0
  x j  0 j  1, , n 
 am1 x1  am 2 x2   amn xn  bm 

(1)

cu notaţiile matriciale:

 a11 a12  a1n   b1   x1 


a a 22  a 2 n  b  x 
A   21 b 2 x   2
      
     
a m1 am2  am n  bm   xn 

c  c1 c2  cn 

A se va numi matricea tehnologică a programului (P); coloanele ei vor fi notate cu A1 , A2 ,..., An.
b este vectorul termenilor liberi iar c este vectorul coeficienţilor funcţiei obiectiv sau vectorul
costurilor.

Fie:

A = x  R Ax  b , x  0 
n

mulţimea soluţiilor admisibile ale programului (P).


A rezolva programul (P) înseamnă a determina x* A cu proprietatea:

f ( x  )  max{ f ( x) , x  A }
Reformulăm programul (P) în următorii termeni:
Fiind dat sistemul de ecuaţii liniare:

2
 Ax b

 cx  f  0
(2)

în n + 1 variabile x  ( x1 , x2 ,, xn ) şi f ; să se determine soluţia


( x  , f  ) în care

x   0 şi f * este maxim.
În continuare vom presupune că:

Rang A = m  n
(3)

Definiţie. Se numeşte bază a programului (P) orice submatrice patrată inversabilă de ordinul m,
extrasă din matricea tehnologică A.
Conform ipotezei (3), (P) are cel puţin o bază şi numărul acestora este finit, nedepăşind
n!
C nm  .
m!( n  m)!
 
Fixăm o bază B. Notăm cu I mulţimea indicilor coloanelor din B astfel că B  Ai iI . Fie J
mulţimea indicilor coloanelor matricii A care nu sunt în B; aceste coloane formează submatricea
 
S  A j jJ . Evident, I  m şi J  n  m . Pentru matricea tehnologică A a rezultat partiţionarea:

A  B , S  .
Baza fixată induce şi partiţionările:

 
x B 
x   S  cu x B   xi  x S   x j 
x     iI    jJ

c  cB  
c S cu c B   ci  iI 
cS   c j   jJ

3
Ai , i  I care formează baza B şi variabilele xi , i  I care formează vectorul x se
B
Coloanele
vor numi coloane bazice respectiv variabile bazice. Coloanele A j , j  J şi variabilele
x j , j  J se vor zice nebazice.
Deoarece matricea B este inversabilă sistemul:

Ax  b  Bx B  Sx S  b

poate fi rezolvat în raport cu xB :


x B  Sx S  b cu S  B 1 S şi b  B 1b
ceea ce va permite eliminarea variabilelor bazice din expresia funcţiei obiectiv:

f  cx  c B x B  c S x S  c B (b  S x S )  c S x S  f  c x S
unde:

f  c B b  c B B 1b

c  c B S  c S  c B B 1 S  c S .

Astfel, sistemul (2) este adus la forma echivalentă:

 B  xi   aij x j  bi i  I
x  Sx S  b  jJ
  
f  cx S  f f  cjxj  f
  jJ
(4)

4
în care:

 
S  aij iI , jJ
, b  bi  
, c   cj   jJ
   iI

Din definiţiile matriciale f  c B b şi c  c B S  c S rezultă relaţiile:


f   ci bi
iI
(5)

c j   ci aij  c j jJ
iI
(6)

Valorile c j , j  J se numesc costuri reduse.


Sistemul (4) se numeşte forma explicită a programului (P) – rescris în formatul (2) – în raport cu
baza (fixată) B.
Luând în (4) x  0  x j  0 j  J obţinem următoarea soluţie a sistemului original de
S

restricţii Ax  b :
x B  b 
x( B)   S   xi  bi , i  I ; x j  0 , j  J
 x  0
(7)

x(B) se numeşte soluţia asociată bazei B. Valoarea funcţiei obiectiv în soluţia x(B) este
f ( x( B))  f .
Definitie. Soluţia x(B) se zice nedegenerată dacă toate valorile bi , i  I ale variabilelor bazice sunt
nenule. Dacă unele componente bi sunt nule, vom spune că x(B) este o soluţie degenerată.

Definitie. O soluţie x a programului (P) se va numi soluţie de bază dacă x este asociată unei baze a
programului.

5
Criteriul de recunoaştere a soluţiilor de bază : Soluţia x  ( x1 ,, xn ) a programului în formă
standard (P) este o soluţie de bază dacă şi numai dacă coloanele Aj, corespunzătoare componentelor
xj nenule, sunt liniar independente.
Într-adevăr, dacă este aşa, atunci x nu poate avea mai mult de m componente nenule, m fiind numărul
restricţiilor din (P).Dacă numărul acestor componente este exact m, coloanele corespunzătoare
formează o bază B a programului (P) şi x  x(B) .Dacă numărul componentelor nenule este  m,
coloanele corespunzătoare pot fi completate până la o bază în mai multe moduri astfel că x va fi
asociată la mai multe baze.
Prin urmare, este posibil ca două baze diferite B şi B’ să aibă o aceeaşi soluţie asociată
x  x( B)  x( B) şi dacă este aşa, atunci soluţia comună asociată x este degenerată.
Din cele discutate rezultă că numărul soluţiilor de bază ale programului (P) este finit nedepăşind
numărul bazelor.
Definitie. Baza B şi soluţia asociată x(B) se vor numi admisibile dacă valorile variabilelor bazice
din soluţie sunt nenegative: bi  0 , i  I .
Deoarece numărul bazelor programului (P) este finit, urmează că programul (P) are un număr
finit de baze şi de soluţii de bază admisibile.
Pentru comoditatea calculelor este util să înscriem constantele formei explicite (4) într-un tabel numit
tabelul simplex asociat bazei B, cu formatul:

.... ci .... .... cj ....

CB VB VVB ...... xi , i  I ...... ...... xj, jJ ......


. . . : .
. . . 0 .
. . . : .

ci xi bi ..... 1 ...... ...... aij .....


. . . :
.
. . . 0
.
. . . :

f f ...... * ...... ...... cj ......

Tabelul 3.1
OBSERVATII :

- un tabel simplex conţine constantele formei explicite a unui program liniar în formă
standard în raport cu o anumită bază;
- baza se recunoaşte prin variabilele bazice asociate , listate în coloana VB;
- tabelul pune în evidenţă soluţia de bază asociată bazei considerate: valorile variabilelor
bazice sunt listate în coloana VVB; prin definiţie, variabilele nebazice – cele care nu apar în
coloana VB – au valoarea zero;

6
- conform relaţiei (5), valoarea funcţiei obiectiv în soluţia de bază afişată în tabel este
produsul scalar al coloanelor CB şi VVB;
- costurile reduse sunt valori numerice asociate variabilelor nebazice; conform relaţiei (6) un
cost redus c j se obţine efectuând produsul scalar al coloanelor CB şi „xj” din care se scade
costul cj scris deasupra tabelului simplex. Am putea extinde definiţia (6) a costurilor reduse şi
la variabilele bazice, dar rezultatul este întotdeauna acelaşi: ci  ci  ci  0 . În tabelul
simplex, „costurile reduse” corespunzătoare variabilelor bazice sunt reprezentate prin*.

2 Importanţa conceptului de soluţie admisibilă de bază


Se demonstrează următoarele rezultate:

Teorema 1 Dacă programul în formă standard (P) este compatibil (adică are soluţii
admisibile) atunci are şi soluţii admisibile de bază.

Teorema 2 (teorema centrală a programării liniare) Dacă programul în formă standard (P)
are soluţii optime, cel puţin una dintre ele este o soluţie admisibilă de bază.

Importanţa acestei teoreme este covârşitoare: în baza ei, problema determinării unei soluţii optime a
programului – în formă standard – (P) din mulţimea infinită a tuturor soluţiilor admisibile s-a redus la
căutarea acesteia în mulţimea finită a soluţiilor admisibile de bază.

Ar rezulta un procedeu naiv de rezolvare a programului (P):

- se generează toate bazele programului (P);


- pentru fiecare bază generată se calculează soluţia de bază asociată;
- se elimină soluţiile de bază neadmisibile;
- dintre cele rămase se reţine aceea care maximizează valoarea funcţiei obiectiv.

Este clar că procedura descrisă este finită dar are serioase neajunsuri:

- din start trebuie luate în considerare toate cele C nm submatrici patrate de ordinul m care pot fi
extrase din matricea tehnologică A. Testarea inversabilităţii unei asemenea submatrici B
precum şi calculul soluţiei x(B) asociate – în caz că B este inversabilă – pot fi făcute simultan.
Numai că, numărul C nm poate fi excesiv de mare, chiar şi pentru valori moderate ale lui m şi n.
De exemplu, pentru un program liniar în formă standard cu 10 restricţii şi 20 variabile,
10
C20  184756 şi prin urmare vom avea de cercetat 184756 matrici patrate de ordinul 10.
- se poate întâmpla ca după terminarea acestor calcule să nu găsim nici o bază admisibilă, lucru
posibil dacă (P) este un program incompatibil;

7
- presupunând că am găsit şi baze admisibile şi că am identificat soluţia de bază care
maximizează funcţia obiectiv, nu suntem siguri că aceasta ar fi şi soluţia optimă căutată
deoarece s-ar putea ca programul (P) să aibe optim infinit.

Această abordare naivă are o alternativă care, din fericire, s-a dovedit a fi deosebit de eficientă
în rezolvarea programelor liniare. Este vorba de metoda simplex elaborată de matematicianul american
GEORGE B. DANTZIG în 1947.