Documente Academic
Documente Profesional
Documente Cultură
1
Metode de rezolvare a problemelor de programare liniară:
Metoda grafică; Metoda variabilelor de ecart
În cadrul acestei lucrări, vor fi prezentate cele mai utilizate metode de rezolvare a
problemelor de programare liniară. Astfel, vom aborda întâi, în principal cu scop
didactic (pentru o mai bună înţelegere a celorlalte metode), metoda grafică. În
continuare, vom prezenta metoda variabilelor de ecart, metodă care este o consecinţă
directă a teoremelor enunţate în Seminarul nr. 2.
Aceste prime două metode de rezolvare nu pot fi aplicate cu succes în cazurile
uzuale, datorită numărului mare de restricţii m şi de variabile n întâlnite în practică. De
aceea, metodele uzuale de rezolvare a problemelor de programare liniară au ca scop
simplificarea algoritmului metodei variabilelor de ecart, prin folosirea unor metode
iterative cu reducerea numărului de încercări pentru obţinerea soluţiei optime. Cea mai
răspândită dintre aceste metode este metoda simplex, abordată în Lucrarea nr. 2.
Există multe alte metode de rezolvare a problemelor de programare liniară, unele
cu caracter general, cum ar fi utilizarea programelor duale (vezi Seminarul nr. 2) şi
altele adaptate unor probleme de structură specială, cum ar fi procedeul pas cu pas sau
metoda fluxului într-o reţea pentru problemele de transport (caz particular al
problemelor de programare liniară ce constituie obiectul lucrărilor 3 și 4). Există, de
asemenea, unele extinderi ale programării liniare, cum ar fi programarea liniară
parametrică sau cea în numere întregi. S-au dezvoltat, de asemenea, metode şi algoritmi
pentru analiza sensibilităţii şi postoptimizare, care studiază stabilitatea soluţiei optime
în cazul (frecvent întâlnit în practică) în care constantele problemei (aij, bi, cj)
înregistrează unele variaţii.
1. Metoda grafică
În cazul n = 2 (problemă de programare liniară cu numai două variabile), se poate
utiliza metoda grafică de rezolvare, care presupune reprezentarea grafică a restricţiilor
şi a condiţiilor de nenegativitate, în planul de coordonate x1 şi x2. Rezultatul unei astfel
de reprezentări este un poligon convex care poate fi, în anumite cazuri, nemărginit sau
redus la un punct sau chiar la o mulţime vidă.
Definiţie: Un poligon închis se numeşte convex dacă, o dată cu două puncte, conţine
şi segmentul care le uneşte (dacă punctele A şi B aparţin poligonului, atunci orice
punct de pe segmentul AB aparţine, de asemenea, poligonului).
Observaţie. Definiţia de mai sus se poate extinde la un poliedru convex (în spaţiul
n-dimensional) sau la o mulţime convexă în general. Poligonul convex obţinut prin
aplicrea metodei grafice este, de atfel, o reprezentare grafică a mulţimii soluţiilor
admisibile, A, definită în Seminarul nr. 2, care este o mulţime convexă.
În continuare, se reprezintă grafic şi funcţia obiectiv, F, ca o familie de drepte
paralele, iar soluţia optimală (care, intuitiv, se găseşte „undeva” pe frontiera poligonului
convex) va corespunde de regulă unui vârf al poligonului convex şi anume cel pentru
care distanţa de la dreapta corespunzătoare a familiei F la origine este maximă. Este
1
Bazele Ingineriei Sistemelor de Producție
însă posibil ca, în cazul în care o latură a poligonului convex este paralelă cu familia de
drepte corespunzătoare funcţiei F, să se obţină o infinitate de soluţii (o combinaţie
convexă de soluţii de bază) corespunzătoare mulţimii punctelor segmentului de dreaptă
ce defineşte acea latură a poligonului, definită de două soluţii de bază (vârfuri).
În cazul problemei cu n > 2 variabile (x1, ..., xn), planul x1 – x2 devine un spaţiu n-
dimensional, iar poligonul devine un poliedru convex, obţinut din intersecţia
hiperplanelor reprezentând restricţile. În acest caz, problema nu mai poate fi efectiv
rezolvată prin aplicarea metodei grafice, care însă a constituit sursa întregii teorii a
programării liniare.
Exemplul 1 (problemă de alocare a resurselor limitate). Se consideră un banc de
lucru al unui atelier de reparaţii, care execută două categorii de reparaţii. Resursele
disponibile (luate în considerare) sunt materialele şi forţa de muncă. Se notează cu x1 şi
x2 volumul (în bucăţi) al celor două categorii de reparaţii. Resursele necesare sunt
indicate în tabelul de mai jos:
Categorii de reparaţii x1 x2 Total disponibil resurse
*
Resurse materiale [kg/buc.] 3 5 15 kg
Forţa de muncă **
[ore/buc.] 6 2 24 ore
Preţ unitar de reparaţie [€/buc] 200 300 -
* consum unitar de materiale; ** consum unitar de manoperă.
A F = max. [d=975]
3
2 3x1 + 5x2 = 15
-F [d=100] B x2 = 0
O C
3 4 5 x1
Figura 1
2
Lucrarea nr. 1 – Programarea Liniară: Metode de rezolvare
x2
d2 d1 A (0, 2)
soluţie variabilă B (4/5, 18/5)d1d2
4 4
3 B x1 a C(2, 0)
5 5
18 3
2 A x2 a
5 5
d3
C
-4 -1 O 2 x1
-1
Figura 2
3
Bazele Ingineriei Sistemelor de Producție
4
Lucrarea nr. 1 – Programarea Liniară: Metode de rezolvare
OABC obţinut la rezolvarea prin metoda grafică. Aceste soluţii reprezintă deci soluţiile
de bază ale problemei. Dintre soluţiile de bază, una singură este soluţia finală
(optimală), cea care face ca funcţia obiectiv F să atingă valoarea maximă. Această
soluţie este soluţia 6 (corespunzătoare punctului B): x1opt = 3,75 buc.; x2opt = 0,75 buc.
Valoarea maximă a funcţiei obiectiv, corespunzătoare soluţiei optimale, este:
Fmax = 200 x1opt + 300 x2opt + 0x3 + 0x4 = 975 €.
Aplicaţie
Un mic atelier produce două tipuri de piese de automobil. Atelierul cumpără piese
turnate pe care le strunjeşte, le găureşte şi le şlefuieşte. Se cunosc următoarele date:
Costul pieselor turnate: A – 2 lei/buc.; B – 3 lei/buc.
Preţurile de vânzare (de piaţă) ale produselor: A – 5 lei/buc.; B – 6 lei/buc.
Cheltuielile necesare pentru o oră de utilizare a celor trei maşini:
- pentru strung: 20 lei/oră;
- pentru maşina de găurit: 14 lei/oră;
- pentru maşina de şlefuit: 17,5 lei/oră.
Capacităţile de prelucrare ale celor trei maşini, indicate în tabelul de mai jos.
Capacităţi [buc./oră] Piesa A Piesa B
a strungului 25 40
a maşinii de găurit 28 35
a maşinii de şlefuit 35 25
5
Bazele Ingineriei Sistemelor de Producție
O (0, 0)
40 A (0, 25)
B (17, 13) D1D3
30 C (25, 0)
A
20
B
10
C
O 10 20 30 40 x
D1 D2 D3
Figura 3
Soluţiile de bază obţinute sunt prezentate în tabelul de mai jos. Dintre cele 10
soluţii, 6 (menţionate ca imposibile în tabel) nu sunt admisibile, deoarece prezintă şi
valori negative ale variabilelor de bază: soluţiile 2, 3, 6, 7, 8 şi 10. Celelalte 4 soluţii
sunt soluţiile de bază admisibile (şi anume 1, 4, 5 şi 9), care corespund vârfurilor
poligonului convex OABC obţinut anterior prin metoda grafică (a se vedea fig. 3).
6
Lucrarea nr. 1 – Programarea Liniară: Metode de rezolvare
Soluţia x y u v w F Comentarii
Dintre soluţiile de bază admisibile, una singură este soluţia finală (optimă), cea
care face ca funcţia obiectiv F să-şi atingă valoarea sa maximă. Această soluţie este
soluţia 9, corespunzătoare punctului B din figura 3, deci rezultă:
xopt = 17 buc./oră ,
yopt = 13 buc./oră ,
Fmax = 38,4 lei/oră .
Bibliografie
1. Dumitrescu, A., Bazele Ingineriei Sistemelor, Editura Universităţii din
Ploieşti, 2005.
2. Dumitrescu, I., ş.a., Aplicaţii inginereşti ale calculatoarelor, Vol. 2 –
Optimizări, Editura Didactică şi Pedagogică, Bucureşti, 1976.
3. Oprişan, Gh., Simion, E., Elemente de cercetări operaţionale şi criptologie,
Editura Politehnica Press, Bucureşti, 2002.