Sunteți pe pagina 1din 5

Str. Universităţii, nr. 1, cod poştal 410087, Oradea, jud.

Bihor, România
Telefon: Secretariat: 0259-408276, 0259-408407; Decanat: 0259-408109; Fax: 0259-408409
Web: http://steconomice.uoradea.ro; E-mail: steconomice@uoradea.ro

Proiect la disciplina
Guvernanță corporativă

Tema:

Algoritmul Simplex.
Aplicarea algoritmului simplex pentru probleme de minim

Masterand: Fatura Maria-Monica


Coordonator proiect: Conf. univ. dr. Bolos Marcel

Oradea,
2018-2019
Cuprins
Considerații generale
Forma standard
Forma tabelară
Metoda Simplex
Degenerarea și convergența algoritmului Simplex
Aplicații practice
Bibliografie

I. Considerații generale
În practică, majoritatea problemelor de programare liniară au multe variabile, fapt ce face ca
metoda soluției grafice de rezolvare să nu poată fi aplicată și în cazul problemelor de
programare liniară cu mai mult de două variabile. În acest capitol se va discuta despre
algoritmul Simplex utilizat în rezolvarea unei mare varietăți de probleme de programare
liniară. În multe aplicații industriale, algoritmul Simplex este utilizat în rezolvarea
problemelor de programare liniară cu mii de restriții și variabile.
În 1947, George Dantzig a dezvoltat o metodă eficientă pentru rezolvarea problemelor de
programare liniară, numit algoritmul simplex. Algoritmul implică o căutare prin mulțimea
soluțiilor posibile pentru găsirea soluției optime obiectivului propus. De la dezvoltarea
algoritmului simplex, programarea liniară este utilizată în toate domeniile de la industrie la
bancar, educație, forestier, petrolier conducând la rezolvarea unei mari varietăți de probleme:
stabilirea resurselor umane, operațiile sistemelor hidroenergetice, traseele mainilor de
aprovizionare,etc. Metoda lui Danzing, cu unele schimbări relativ minore, este cea mai
importantă metodă în găsirea soluțiilor problemelor de programare liniară. Aplicarea
algoritmului simplex presupune parcurgerea următoarelor etape:
• aducerea problemei la forma standard;
• transformarea formei standard în forma tabelară;
• rezolvarea problemei cu ajutorul metodei simplex.

II. Forma standard


O problemă de programare liniară se spune că este în forma standard atunci când toate
restricțiile devin ecuații și toate variabilele nenegative. O inegalitate devine egalitate prin
introducerea unei noi variabile, numit variabil de compensare, ea reprezentând valoarea
rămasă neutilizată din resursa respectivă.

III. Forma tabelară


O problemă de programare liniară este în formă tabelară atunci când toate constrângerile sunt
ecuații având partea dreaptă mai mare sau egală cu zero și atunci când în fiecare ecuație apare
o variabilă care are coeficientul egal cu +1 într-o singură ecuație și egal cu 0 în toate celelalte
ecuații. Variabila cu coeficient egal cu +1 într-o ecuație și 0 în celelalte se numește variabilă
de bază asociată ecuației. Toate celelalte variabile care nu sunt variabile de bază se numesc
variabile secundare.
În general, atunci când există mai multe variabile decât ecuații, există un număr infinit de
soluții într-un sistem de ecuații. Dar chiar dacă există o infinitate de soluții, uneori este dificil
de a găsi o singură soluție. Valoarea formei tabelare este aceea că oferă cu ușurință găsirea
unei soluții prin stabilirea valorilor variabilelor secundare la zero și a valorilor variabilelor de
bază la valoarea corespunzătoare membrului drept al ecuației. Aceste soluții se numesc soluții
fezabile de bază. Aceste soluții corespund punctelor extreme ale regiunii fezabile de bază.
O problemă în formă tabelară poate fi scrisă într-un tablou. Un tablou este acea reprezentare a
coeficienților ecuațiilor care respectă următoarele condiții:
1. Deasupra tabelului coeficienților ecuațiilor se scriu coeficienții funcției obiectiv.
Aceștia reprezintă creșterea directă pe unitate a funcției obiectiv prin creșterea fiecărei
variabile cu o unitate, neglijând efectul constrângerilor.
2. La stânga tabloului se scriu variabilele de bază corespunzătoare fiecărei ecuații și
coeficientul acesteia din funcția obiectiv.
3. La baza tabloului există două linii:
-linia zj care reprezintă descreșterea în valoare a funcției obiectiv ca urmare a creșterii
cu o unitate a variabilelor xj, descreștere datorată efectelor constrângerilor. Ea se
obține prin multiplicarea coeficienților fiecărei coloane prin coeficientul funcției
obiectiv corespunzător variabilei de bază pentru aceași ecuație și însumarea acestora.
- Linia cj-zj reprezintă linia profitului marginal sau linia evaluării nete, obinută prin
scăderea valorilor zj din cj pentru fiecare coloană.

IV. Metoda SIMPLEX


Metoda simplex este o procedură iterativă de rezolvare a problemelor de programare
liniară aduse la forma tabelară. Metoda simplex generează noi soluții fezabile de bază care
cresc valoarea funcției obiectiv (sau cel puțin o lasă neschimbată), prin generarea unor noi
forme tabelare pentru sistemul de ecuații. Atunci când nu se mai poate aduce nici o
îmbunătățire a fost atinsă soluția optimă.
În principal, metoda simplex constă din 3 etape:
1. Găsirea celei mai mari valori pozitive pentru cj - zj. Aceasta va desemna coloana
pivot. Dacă nu există o astfel de valoare, atunci soluția optimă a fost deja găsită.
2. Pentru fiecare valoare pozitivă din coloana pivot se găsește raportul: (membrul drept)/
(elementul corespunzător din coloana pivot). Raportul minim stabilește linia pivot. La
intersecția coloanei pivot cu linia pivot se găsește elementul pivot.
3. Se generează noua formă tabelară astfel:
(a) Se împarte linia pivot la elementul pivot;
(b) Pentru toate celelalte linii, se înmulțește noua linie generată la pct. (a). prin
elementul corespunzător din coloana pivot și se extrage din linia curentă.
(c) Se completează celulele tabloului și se trece la pasul 1.

Pasul 1 al metodei simplex stabilește variabila cu cea mai mare influență unitară asupra
funcției obiectiv.
Pasul al 2-lea stabilșete care variabilă devine prima zero pe măsură ce crește variabila cu
influența cea mai mare.
Pasul al 3-lea generează noul tablou cu variabila din pasul 1 înlocuind variabila stabilită la
pasul al 2-lea.
Procedura descrisă mai sus se aplică problemelor de maximizare. Pentru problemele de
minimizare putem proceda:
(1) multiplicând funcția obiectiv cu -1 i maximizând, sau
(2) schimbând pasul 1 astfel încât să se găsească cel mai negativ cj - zj și stop dacăă n-a fost
găsită o astfel de valoare.
Atunci când o problemă este scrisă direct în forma standard ea nu corespunde formei tabelare
deci pot exista unele ecuații care să aibă coeficienți = +1 într-o ecuație i egali cu 0 în celelalte.
Pentru acele ecuații care nu respectă această condiție se adaugă o variabilă artificială căreia i
se asociază coeficientul -M, unde M este gândit ca un număr foarte mare apropiat de infinit.
Apoi se trece la efectuarea pașilor metodei simplex. Datorită contribuției foarte mari per
unitate a variabilei artificiale (-M), dacă problema are un punct de optim, atunci valoarea
variabilei artificiale va fi egală cu 0.

V. Degenerarea și convergența algoritmului simplex


Teoretic, algoritmul simplex poate eșua în determinarea soluției optime. Valoarea funcției
obiectiv (z) poate să crească (sau să scadă) prin trecerea de la o soluție admisibilă de bază la
alta în cazul problemelor de maxim (sau de minim).
Un algoritm se spune că este convergent dacă după fiecare iterație valoarea funcției obiectiv
crete în cazul unei probleme de maxim sau scade în cazul unei probleme de minim. Dacă
algoritmul este convergent, se va ajunge la soluția optimă, dacă există, după un număr finit de
iterații. Convergența însă nu mai rezultă întotdeauna dacă soluția admisibilă este degenerată.

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