Sunteți pe pagina 1din 30

seminar 2 OPTIMIZAREA PROCESELOR TEHNOLOGE Programarea liniară

OPTIMIZAREA PROCESELOR TEHNOLOGICE

Seminar 2
seminar 2 OPTIMIZAREA PROCESELOR TEHNOLOGE Programarea liniară

Modelele LINIARE de OPTIMIZARE


sunt printre cele ce dețin cel mai ridicat grad de succes
privitor la aplicațiile comerciale din cadrul cercetărilor
operaționale
„Harvey WAGNER
Professor of Operation Research and Innovation Management at the University of North
Carolina„

Departamentul „Alocarea flotei„ – DELTA AIRLINES rezolvă zilnic probleme de programare


liniară ce implică, fiecare 60.000 variabile și 40.000 constrângeri
seminar 2 OPTIMIZAREA PROCESELOR TEHNOLOGE Programarea liniară

Abordarea sinoptică
Tipuri de situații identificate pentru optimizare
• Necesitatea identificării unui singur obiectiv = se rezolvă cu programare
liniară
• Necesitatea identificării a n. obiective = se rezolvă cu programarea pe
obiective
• Imposibilitate divizării produselor sau a resurselor = se rezolvă cu
programare integrală
• Necesitatea rezolvării problemei în etape = se utilizează programarea
dinamică ( rezultatele etapelor se combină )
• Alte tipuri de restricții sau condiții intervin = se utilizează programarea
nonliniară
seminar 2 OPTIMIZAREA PROCESELOR TEHNOLOGE Programarea liniară

Abordarea sinoptică

Programarea liminară (PL) = metodă de programare matematică de abordare a


optimizărilor ( suport pentru deciziile de afaceri -
cea mai bună soluție)
= model de tip cantitativ
= conține condiții de restricție
seminar 2 OPTIMIZAREA PROCESELOR TEHNOLOGE Programarea liniară

Abordarea sinoptică
Tipuri de restricții majore în PL
1) Trebuie să fie resurse limitate ( nr. de muncitori, nr. de echipamente,
cant. de bani, cant. de materie primă)

2) Trebuie să existe un obiectiv explicit (maximizare profit ori minimizare


cost, etc.)

3) Trebuie să îndeplinească condiția de liniaritate ( să poată fi exprimată


prin ecuații de gr.1)

4) Trebuie să existe condiția de omogenitate ( se vor desfășura aceleași


tipuri de elemente)

5) Trebuie să existe condiția de divizibilitate ( împărțirea în fracțiuni )


seminar 2 OPTIMIZAREA PROCESELOR TEHNOLOGE Programarea liniară

Abordarea sinoptică
Modelele de PL includ:

1. metoda GRAFICĂ de programare liniară = limitată la 2-3 variabile de

decizie

2. metoda SIMPLEX = rezolvă probleme de n. variabile sau constrângeri –

se execută cu ajutorul programelor de calculator (creat de G.B. Dantzig 1947)

3. metode cu aplicație specializată – de TRANSPORT = caz particular al

simplex, resurse limitate la destinații diferite


seminar 2 OPTIMIZAREA PROCESELOR TEHNOLOGE Programarea liniară

Abordarea sinoptică

Modelele de PL includ:

4. Metoda ALOCĂRII = caz particular al metodei de transport din

programarea liniară – n. elemente pentru n. destinații

5. Metoda KARMARKAR = caz particular al simplex din programarea liniară

cu cerințe extreme – rețele de telefonie, programarea rutele avioanelor

6. Metoda SISTEMULUI GENERAL de MODELARE ALGEBRICĂ = caz de

înțelegere și rezolvare a unui model conceput de n. autori


seminar 2 OPTIMIZAREA PROCESELOR TEHNOLOGE Programarea liniară

Metoda SIMPLEX

• Procedură algebrică - se construiesc ecuații ( vs. p. grafică)

• Se execută prin operații repetitive

• Soluția optimală se identifică progresiv/ iterații

• Rezolva probleme cu n. variabile și constrângeri


seminar 2 OPTIMIZAREA PROCESELOR TEHNOLOGE Programarea liniară

Metoda SIMPLEX

Procedura de rezolvare constă în 6 pași:


1. Formularea problemei
2. Crearea și completarea tabloului de variabile generale al
soluției
3. Determinarea variabilelor necesare unei soluții mai bune
4. Determinarea variabilelor ce trebuie înlocuite
5. Calcularea noilor valori pentru variabile
6. Revizuirea elementelor valabile
seminar 2 OPTIMIZAREA PROCESELOR TEHNOLOGE Programarea liniară

Metoda SIMPLEX

Datele problemei: Compania SPALDING fabrică crose de hochei


și seturi de șah. Fiecare crosă fabricată crește profitul
incremental cu 2¥ și fiecare set cu 4¥. Fiecare crosă necesită 4
ore de lucru la utilajul A și 2 ore la utilajul B. Fiecare set
necesită 6 ore la utilajul A, 6 ore la utilajul B și 1 oră la utilajul
C. Utilajul A, poate funcționa maxim 120 ore/zi, utilajul B, 72
ore/zi și utilajul C 10 ore/zi.
Compania dorește să-și maximizeze profitul, câte crose și câte
seturi trebuie produse / zi ?

H = nr. de crose hochei


K = nr. de seturi de șah
seminar 2 OPTIMIZAREA PROCESELOR TEHNOLOGE Programarea liniară

Metoda SIMPLEX

PAS 1: Formularea problemei referitor la funcția obiectiv și a


setului de constrângeri
• Maximizarea funcției obiectiv: max. Z = 2¥ x H + 4¥ x K
• Pentru maximizare se impun restricțiile:
1) 4H + 6K ≤ 120 (pentru utilajul A)
2) 2H + 6K ≤ 72 (pentru utilajul B)

3) 1K ≤ 10 (pentru utilajul C)
• Condiția de nonegativitate H și K ≥ 0
seminar 2 OPTIMIZAREA PROCESELOR TEHNOLOGE Programarea liniară

Metoda SIMPLEX

PAS 2. Crearea și completarea tabloului de variabile, necesită


îndeplinirea măsurilor de reglare:
a. Introducerea variabilelor posibil neutilizate sau de compensare (
evidențiază pierderile)

Fiecare ecuație pentru constrângeri necesită adăugarea de variabile


posibil neutilizate (slack).
Scopul este reprezentat de egalizarea ecuațiilor de constrângeri ( în
caz real poate fi considerată ca o resursă inactivă, nefolosită)
4H + 6K + 1S1 = 120
2H + 6K + 1S2 = 72
1K + 1S3 = 10
seminar 2 OPTIMIZAREA PROCESELOR TEHNOLOGE Programarea liniară

Metoda SIMPLEX

PAS 2. Crearea și completarea tabloului de variabile, necesită


îndeplinirea măsurilor de reglare:
b. Construirea tabelului inițial și ajustarea ecuațiilor pentru forma
standard
Variabilă
Variabilă max. Z = 2 H + 4 K + 0S1 + 0S2 + 0S3 de bază
secundară

4H + 6K + 1S1 +0S2 + 0S3 = 120


2H + 6K + 0S1 +1S2 + 0S3 = 72 (forma standard)
0H + 1K + 0S1 + 0S2 + 1S3 = 10
seminar 2 OPTIMIZAREA PROCESELOR TEHNOLOGE Programarea liniară

Metoda SIMPLEX

PAS 2. Crearea și completarea tabloului de variabile:


b. Construirea tabelului inițial
4H + 6K + 1S1 +0S2 + 0S3 = 120
2H + 6K + 0S1 +1S2 + 0S3 = 72 ( 3 ecuații cu 5 variabile => ∞ 𝑠𝑜𝑙𝑢ț𝑖𝑖)
0H + 1K + 0S1 + 0S2 + 1S3 = 10

Metoda SIMPLEX
propune alocarea de valoare 0 la oricare 2 variabile secundare
Dacă: H = 0; K = 0 => 0H + 0K + 1S1 +0S2 + 0S3 = 120 => S1 = 120
Dacă: H = 0; K = 0 => 0H + 0K + 0S1 +1S2 + 0S3 = 72 => S2 = 72
Dacă: K = 0 => 0H + 0K + 0S1 + 0S2 + 1S3 = 10 => S3 = 10
Soluția completă H=0, K=0, S1=120, S2=72, S3=10

În acest caz s-au obținut o variantă fezabilă de bază (sau pot fi


nefezabile dacă o variabilă < 0)de răspuns dar CÂT ESTE PROFITUL ?
seminar 2 OPTIMIZAREA PROCESELOR TEHNOLOGE Programarea liniară

Metoda SIMPLEX

PAS 2. Crearea și completarea tabloului de variabile:

Metoda SIMPLEX
propune alocarea de valoare 0 la oricare 2 variabile secundare prin
iterații succesive ( verificând și alte variante)
- Soluția de bază completă H=0, K=0, S1=120, S2=72, S3=10
- Prima iterație
- Până la n iterații

Mulțimea soluțiilor formează puncte de extrem numite variante


fezabile de bază in interiorul cărora avem regiunea fezabilă de
bază
seminar 2 OPTIMIZAREA PROCESELOR TEHNOLOGE Programarea liniară

Metoda SIMPLEX
PAS 2. Crearea și completarea tabloului de variabile (matricea sistemului):
Generalizarea tabelului inițial
max. Z = c1X1 + c2X2 + c3X3…..+cnXn c1 c2 c3 … cn
a11 a12 a13 a1n b1
a11+a12+a13+…+a1n = b1 a21 a22 a23 a2n b2
a21+a22+a23+…+a2n = b2 …
…. am1 am2 am3 amn bm
am1+am2+am3+…+amn = bm

cj = coeficientul funcției obiectiv pentru variabila j.


bi = valoarea pentru varianta fezabilă de bază la constrângerea i.
aij = coeficientul asociat cu variabila j pentru constrângerea i.
seminar 2 OPTIMIZAREA PROCESELOR TEHNOLOGE Programarea liniară

Metoda SIMPLEX
PAS 2. Crearea și completarea tabloului de variabile:
Coeficienții
Exemplificarea Cj și Zj funcției obiectiv

Cj Cj 2¥ 4¥ 0¥ 0¥ 0¥ max. Z = 2 H + 4 K + 0S1 + 0S2 + 0S3


coloa rând
nă baza H K S1 S2 S3 cant. Din soluția de bază:
0¥ S1 4 6 1 0 0 120 Z1 = 0x4+0x2+0x0 = 0
0¥ S2 2 6 0 1 0 72 Z2 = 0x6+0x6+0x1 = 0
0¥ S3 0 1 0 0 1 10
…..
Zj 0 0 0 0 0 0¥
Cj-Zj 2 4 0 0 0
Valoarea
funcției
Cj = indică cât se poate câștiga la o unitate, dar doar dacă este produsă (conform enunț pr.)
Zj = indică raportat la Cj cât se poate pierde la o unitate (ce profit s-ar fi pierdut/ unitate) obiectiv
Cj – Zj = reprezintă costul de oportunitate, al non-producției unei bucăți din fiecare (ce se pentru
putea produce sau cât se poate pierde la o unitate produsă); profit
Cj – Zj = dacă valoarea este pozitivă ( soluția nu este optimă), reprezintă indicație pentru o
posibilă îmbunătățire
seminar 2 OPTIMIZAREA PROCESELOR TEHNOLOGE Programarea liniară

Metoda SIMPLEX
PAS 3. Determinarea variabilelor necesare unei soluții mai bune
• Se caută în ultima linie a tabelului de variabile ( corespunzătoare var. de bază )
valori mai mari decât 0.

• Se alegea cea mai mare valoare întâlnită ( dorim maximizarea profitului)


PAS 4. Determinarea variabilelor ce trebuie înlocuite
• Valoarea aleasă corespunde produsului K ( variabilei K) și va înlocui în tabel
una din variabilele neutilizate (S1, S2, S3 ), pe care?
• Se trece la divizarea valorilor tip cantitate corespunzătoare cu valorile
coloanei K
• Se va alege variabila neutilizată corespunzătoare valorii celei mai mici
seminar 2 OPTIMIZAREA PROCESELOR TEHNOLOGE Programarea liniară

Metoda SIMPLEX
calcul Cj Cj rând 2¥ 4¥ 0¥ 0¥ 0¥
coloan bi/ai2
ă baza H K S1 S2 S3 cant
0¥ S1 4 6 1 0 0 120 120/6=20
0¥ S2 2 6 0 1 0 72 72/6=12
0¥ S3 0 1 0 0 1 10 10/1=10
Zj 0 0 0 0 0 0
Cj-Zj 2 4 0 0 0
Variabila corespunzătoare celei mai mici valori este S3 și va fi cea înlocuită (
părăsește baza), locul va fi ocupat de către K.
Conform programării liniare se numește valoarea pivot și cu galben, coloană
și rând pivot
PAS 5. Calcularea noilor valori pentru variabile
• Deoarece se introduce K, întregul rând pivot se modifică
seminar 2 OPTIMIZAREA PROCESELOR TEHNOLOGE Programarea liniară

Metoda SIMPLEX
calcul Cj Cj rând 2¥ 4¥ 0¥ 0¥ 0¥
coloan bi/ai2
ă baza H K S1 S2 S3 cant
0¥ S1 4 6 1 0 0 120 120/6=20
0¥ S2 2 6 0 1 0 72 72/6=12
0¥ S3 0 1 0 0 1 10 10/1=10
Zj 0 0 0 0 0 0
Cj-Zj 2 4 0 0 0

PAS 5. Calcularea noilor valori pentru variabile


• Deoarece se va introduce K, întregul rând pivot se modifică
• Se împarte fiecare valoare din rândul pivot la valoarea pivotului
seminar 2 OPTIMIZAREA PROCESELOR TEHNOLOGE Programarea liniară

Metoda SIMPLEX

Cj Cj rând 2¥ 4¥ 0¥ 0¥ 0¥
coloan bi/ai2
ă baza H K S1 S2 S3 cant
0¥ S1 4 6 1 0 0 120 120/6=20
0¥ S2 2 6 0 1 0 72 72/6=12
0¥ S3 0 1 0 0 1 10 10/1=10
Zj 0 0 0 0 0 0
Cj-Zj 2 4 0 0 0

PAS 6. Revizuirea elementelor valabile


4H + 6K + 1S1 +0S2 + 0S3 = 120 prima restricție cu S1
Se înlocuiesc datele în S1conform noii variabile adăugate din tabel
0H + 1K + 0S1 +0S2 + 1S3 = 10 a nu se confunda cu a 3 a restricție
K = 10 - S3
4H + 6(10-S3) + S1 = 120 = > 4H + 0K + S1 +0S2 - 6S3 = 60
seminar 2 OPTIMIZAREA PROCESELOR TEHNOLOGE Programarea liniară

Metoda SIMPLEX
S1 4H + 6K + 1S1 +0S2 + 0S3 = 120 prima restricție cu S1
Se înlocuiesc datele în S1 conform noii variabile adăugate din tabel
0H + 1K + 0S1 +0S2 + 1S3 = 10 a nu se confunda cu a 3 a restricție
K = 10 - S3
4H + 6(10-S3) + S1 = 120 = > 4H + 0K + 1S1 +0S2 - 6S3 = 60

S2 2H + 6K + 0S1 +1S2 + 0S3 = 72 a doua restricție cu S2


Se înlocuiesc datele în S2 conform noii variabile adăugate din tabel
K = 10 - S3
2H + 6(10-S3) + 0S1 +1S2 + 0S3 = 72 = > 2H + 0S1 +1S2 - 6S3 = 12

K 0H + 1K + 0S1 +0S2 + 1S3 = 10

Noile restricții se vor trece în tabel


seminar 2 OPTIMIZAREA PROCESELOR TEHNOLOGE Programarea liniară

Metoda SIMPLEX
Actualizare tabel
Cant. ce
Cj rând 2¥ 4¥ 0¥ 0¥ 0¥ pot fi
Cj
coloană H K S1 S2 S3 produse
baza cant
0¥ S1 4 0 1 0 -6 60
0¥ S2 2 0 0 1 -6 12
4¥ K 0 1 0 0 1 10
Zj 0 4 0 0 4 40¥
Cj-Zj 2 0 0 0 -4

- Soluția de bază completă H=0, K=0, S1=120, S2=72, S3=10


Valoarea
- Prima iterație completă H=0, K=10, S1=60, S2=12, S3=0 funcției
- Până la n iterații obiectiv
pentru…
Valoarea ultimului rând din tabel indică existența a cel puțin încă o
altă posibilă valoare – mai sunt valori pozitive
seminar 2 OPTIMIZAREA PROCESELOR TEHNOLOGE Programarea liniară

Metoda SIMPLEX
Cj 2¥ 4¥ 0¥ 0¥ 0¥
Cj
rând
coloa
nă H K S1 S2 S3 bi/ai2
baza cant
0¥ S1 4 0 1 0 -6 60 60/4=15
Este o valoare dar nu
0¥ S2 2 0 0 1 -6 12 12/2=6
poate fi luată în
4¥ K 0 1 0 0 1 10 10/0=∞ considerare deoarece
o „cantitate„ trebuie
Zj 0 4 0 0 4 să fi pozitivă și finită.
Cj-Zj 2 0 0 0 -4 Cj 2¥ 4¥ 0¥ 0¥ 0¥
Cj
coloan rând
ă
baza H K S1 S2 S3 cant
A doua iterație
0¥ S1 4 0 1 0 -6 60
0¥ S2 1 0 0 1/2 -3 6
4¥ K 0 1 0 0 1 10
Zj 0 4 0 0 4
Cj-Zj 2 0 0 0 -4
seminar 2 OPTIMIZAREA PROCESELOR TEHNOLOGE Programarea liniară

Metoda SIMPLEX

A doua iterație

S1 4H + 0K + 1S1 +0S2 - 6S3 = 60 prima restricție cu S1


Se înlocuiesc datele în S1conform noilor variabile adăugate din tabel
1H + 0K + 0S1 +1/2S2 - 3S3 = 6 a nu se confunda cu a 2 a restricție
H = 6 – 1/2S2 + 3S3
4(6 – 1/2S2 + 3S3) + 0K + S1 - 6S3 = 60 = > 0H + 0K + 1S1 -2S2 + 6S3 = 36

H 1H + 0K + 0S1 +1/2S2 - 3S3 = 6

K 0H + 1K + 0S1 +0S2 + 1S3 = 10 a treia restricție cu K


Se înlocuiesc datele în K conform noilor variabile adăugate din tabel
1H + 0K + 0S1 +1/2S2 - 3S3 = 6 a nu se confunda cu a 2 a restricție
H = 6 – 1/2S2 + 3S3
0H + 1K + 0S1 +0S2 + 1S3 = 10
seminar 2 OPTIMIZAREA PROCESELOR TEHNOLOGE Programarea liniară

Metoda SIMPLEX
Actualizare tabel pt. a doua iterație
Cant. ce
Cj rând 2¥ 4¥ 0¥ 0¥ 0¥ pot fi
Cj
coloană H K S1 S2 S3 produse
baza cant
0¥ S1 0 0 1 -2 6 36
2¥ H 1 0 0 1/2 -3 6
4¥ K 0 1 0 0 1 10
Zj 2 4 0 1 -2 52¥
Cj-Zj 0 0 0 -1 2

- Soluția de bază completă H=0, K=0, S1=120, S2=72, S3=10 Valoarea


- Prima iterație completă H=0, K=10, S1=60, S2=12, S3=0 funcției
- A doua iterație completă H=6, K=10, S1=36, S2=0, S3=0 obiectiv
- Până la n iterații pentru…
Valoarea ultimului rând indică existența a cel puțin încă o
altă posibilă valoare – mai sunt valori pozitive
seminar 2 OPTIMIZAREA PROCESELOR TEHNOLOGE Programarea liniară

Metoda SIMPLEX
Cj 2¥ 4¥ 0¥ 0¥ 0¥
Cj
rând
coloa
nă H K S1 S2 S3 bi/ai2
baza cant
Este cea mai mică
0¥ S1 0 0 1 -2 6 36 36/6=6 valoare dar nu poate fi
2¥ H 1 0 0 1/2 -3 6 6/-3=-2 luată în considerare
deoarece o „cantitate„
4¥ K 0 1 0 0 1 10 10/1=10 trebuie să fi pozitivă
Zj 2 4 0 1 -2
Cj-Zj 0 0 0 -1 2 Cj Cj 2¥ 4¥ 0¥ 0¥ 0¥
coloa rând
nă baza H K S1 S2 S3 cant
A treia iterație 0¥ S1 0 0 1/6 -1/3 1 6
2¥ H 1 0 0 1/2 -3 6
4¥ K 0 1 0 0 1 10
Zj 2 4 0 1 -2
Cj-Zj 0 0 0 -1 2
seminar 2 OPTIMIZAREA PROCESELOR TEHNOLOGE Programarea liniară

Metoda SIMPLEX

A treia iterație

S1 0H + 0K + 1/6S1 -1/3S2 + 1S3 = 6 prima restricție cu S1

H 1H + 0K + 0S1 +1/2S2 - 3S3 = 6 a doua restricție cu H


Se înlocuiesc datele în H conform noilor variabile adăugate din tabel
0H + 0K + 1/6S1 -1/3S2 + 1S3 = 6
S3 = 6 - 1/6S1 + 1/3S2
1H+0K+0S1+1/2S2–3(6-1/6S1+1/3S2)=6 => 1H+0K+1/2S1-1/2S2+S3= 24

K 0H + 1K + 0S1 +0S2 + 1S3 = 10 a treia restricție cu K


Se înlocuiesc datele în K conform noilor variabile adăugate din tabel
0H + 0K + 1/6S1 -1/3S2 + 1S3 = 6
S3 = 6 - 1/6S1 + 1/3S2
0H+1K+0S1+0S2+1(6-1/6S1+1/3S2)=10 => 0H+1K-1/6S1+1/3S2+S3= 4
seminar 2 OPTIMIZAREA PROCESELOR TEHNOLOGE Programarea liniară

Metoda SIMPLEX
Actualizare tabel pt. a treia iterație
Cant. ce
Cj rând 2¥ 4¥ 0¥ 0¥ 0¥ pot fi
Cj
coloană H K S1 S2 S3 produse
baza cant

0¥ S3 0 0 1/6 -1/3 1 6
2¥ H 1 0 1/2 -1/2 0 24
4¥ K 0 1 -1/6 1/3 1 4
Zj 2 4 1/3 1/3 4 64¥
Cj-Zj 0 0 -1/3 -1/3 -4

- Soluția de bază completă H=0, K=0, S1=120, S2=72, S3=10


Valoarea
- Prima iterație completă H=0, K=10, S1=60, S2=12, S3=0 funcției
- A doua iterație completă H=6, K=10, S1=36, S2=0, S3=0 obiectiv
- A treia iterație completă H=24, K=4, S1=0, S2=0, S3=6 pentru…
- Iterații până când valoarea ultimului rând indică inexistența
unei alte valori, NU mai sunt valori pozitive Valoarea optimă a producției
pentru profit maxim
seminar 2 OPTIMIZAREA PROCESELOR TEHNOLOGE Programarea liniară

Metoda SIMPLEX

ANALIZA DE SENSIBILITATE
Situația de minimizare

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