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

Abordarea sinoptică

Tipuri de restricții majore în PL

Programarea liniară

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)

seminar 2

OPTIMIZAREA PROCESELOR TEHNOLOGE

Abordarea sinoptică

Modelele de PL includ:

Programarea liniară

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

Abordarea sinoptică

Modelele de PL includ:

Programarea liniară

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

Metoda SIMPLEX

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

Programarea liniară

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

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)

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 + 1S 1 =

120

2H + 6K + 1S 2 =

72

1K + 1S 3 =

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ă de bază
Variabilă
de bază
Variabilă secundară
Variabilă
secundară

max. Z = 2 H + 4 K + 0S 1 + 0S 2 + 0S 3

4H + 6K

2H + 6K + 0S

0H + 1K + 0S 1 + 0S 2 + 1S 3 =

+ 1S 1 +0S 2 + 0S 3 = 120

1

+1S 2 + 0S 3 =

72

10

(forma standard)

seminar 2

OPTIMIZAREA PROCESELOR TEHNOLOGE

Programarea liniară

Metoda SIMPLEX

PAS 2. Crearea și completarea tabloului de variabile:

b. Construirea tabelului inițial

4H +

6K + 1S 1 +0S 2 + 0S 3 = 120

2H + 6K + 0S 1 +1S 2 + 0S 3 =

72

( 3 ecuații cu 5 variabile => ∞ ț)

0H + 1K + 0S 1 + 0S 2 + 1S 3 =

10

Metoda SIMPLEX propune alocarea de valoare 0 la oricare 2 variabile secundare

Dacă: H = 0; K = 0

=>

0H + 0K + 1S 1 +0S 2 + 0S 3 = 120 => S 1 = 120

Dacă: H = 0; K = 0

=>

0H + 0K + 0S 1 +1S 2 + 0S 3 =

72 => S 2 =

72

Dacă:

K = 0

=>

0H + 0K + 0S 1 + 0S 2 + 1S 3 =

10 =>

S 3 =

10

Soluția completă H=0, K=0, S 1 =120, S 2 =72, S 3 =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, S 1 =120, S 2 =72, S 3 =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 = c 1 X 1 + c 2 X 2 + c 3 X 3

+c

n X n

a 11 +a 12 +a 13 +…+a 1n = b 1 a 21 +a 22 +a 23 +…+a 2n = b 2 …. a m1 +a m2 +a m3 +…+a mn = b m

c

1

c

2

c

3

c

n

 

a 11

a 12

a 13

 

a 1n

b

1

a 21

a 22

a 23

 

a 2n

b

2

         

a

m1

a m2

a m3

 

a mn

b

m

c j = coeficientul funcției obiectiv pentru variabila j.

b i = valoarea pentru varianta fezabilă de bază la constrângerea i.

a ij = 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 C 2¥ 4¥ 0¥ 0¥ 0¥ C j
Coeficienții
Exemplificarea Cj și Zj
funcției obiectiv
C
C j
j
coloa
rând
H
K
baza
S 1
S 2
S 3
cant.
S
4
6
1
0
0
120
1
S
2
6
0
1
0
72
2
S
0
1
0
0
1
10
3
0
0
0
0
0 0¥
Z j
C j -Z j
2
4
0
0
0

max. Z = 2 H + 4 K + 0S 1 + 0S 2 + 0S 3

Din soluția de bază:

Z1 = 0x4+0x2+0x0 = 0

Z2 = 0x6+0x6+0x1 = 0

Valoarea funcției obiectiv pentru profit
Valoarea
funcției
obiectiv
pentru
profit

C j = indică cât se poate câștiga la o unitate, dar doar dacă este produsă (conform enunț pr.) Z j = indică raportat la C j cât se poate pierde la o unitate (ce profit s-ar fi pierdut/ unitate) C j Z j = reprezintă costul de oportunitate, al non-producției unei bucăți din fiecare (ce se putea produce sau cât se poate pierde la o unitate produsă); C j Z j = 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

C

j

C j rând

2¥

4¥

0¥

0¥

0¥

   

coloan

         

b

i /a i2

ă

baza

H

K

S

1

S

2

S

3

cant

 
 

0¥

S

1

4

6

1

0

0

120

120/6=20

 

0¥

S

2

2

6

0

1

0

72

72/6=12

 

0¥

S

3

0

1
1

0

0

1

10

10/1=10

 

Z

j

0

0

0

0

0

0

 
 

C

j -Z j

2

4

0

0

0

   

Variabila corespunzătoare celei mai mici valori este S 3 și va fi cea înlocuită ( părăsește baza), locul va fi ocupat de către K.

Conform programării liniare și rând pivot

PAS 5. Calcularea noilor valori pentru variabile

rând pivot PAS 5. Calcularea noilor valori pentru variabile se numește valoarea pivot și cu galben,

se numește valoarea pivot și cu galben, coloană

Deoarece se introduce K, întregul rând pivot se modifică

seminar 2

calcul

OPTIMIZAREA PROCESELOR TEHNOLOGE

Programarea liniară

Metoda SIMPLEX

C

j

C j rând

2¥

4¥

0¥

0¥

0¥

   

coloan

         

b

i /a i2

ă

baza

H

K

S

1

S

2

S

3

cant

 
 

0¥

S

1

4

6

1

0

0

120

120/6=20

 

0¥

S

2

2

6

0

1

0

72

72/6=12

 

0¥

S

3

0

1
1

0

0

1

10

10/1=10

 

Z

j

0

0

0

0

0

0

 
 

C

j -Z j

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

C 2¥ 4¥ 0¥ 0¥ 0¥ C j rând j b coloan i /a i2
C
C j rând
j
b
coloan
i /a i2
H
K
S
S
S
ă
baza
1
2
3
cant
S
4
6
1
0
0
120
120/6=20
1
S
2
6
0
1
0
72
72/6=12
2
S
0
1
0
0
1
10
10/1=10
3
Z
0
0
0
0
0
0
j
C
2
4
0
0
0
j -Z j
4H + 6K + 1S 1 +0S 2 + 0S 3 = 120
prima restricție cu S 1
Se înlocuiesc datele în S 1 conform noii variabile adăugate din tabel
a nu se confunda cu a 3 a restricție

0H + 1K + 0S 1 +0S 2 + 1S 3 = 10 K = 10 - S 3 4H + 6(10-S 3 ) + S 1 = 120

= >

4H + 0K + S 1 +0S 2 - 6S 3 = 60

PAS 6. Revizuirea elementelor valabile

seminar 2

S

1

OPTIMIZAREA PROCESELOR TEHNOLOGE

Programarea liniară

Metoda SIMPLEX

4H + 6K + 1S 1 +0S 2 + 0S 3 = 120

Se înlocuiesc datele în S 1 conform noii variabile adăugate din tabel

0H + 1K + 0S 1 +0S 2 + 1S 3 = 10

K = 10 - S 3

4H + 6(10-S 3 ) + S 1 = 120

prima restricție cu S 1

a nu se confunda cu a 3 a restricție

= >

4H + 0K + 1S 1 +0S 2 - 6S 3 = 60

S

2

2H + 6K + 0S 1 +1S 2 + 0S 3 = 72

Se înlocuiesc datele în S 2 conform noii variabile adăugate din tabel

K = 10 - S 3

2H + 6(10-S 3 ) + 0S 1 +1S 2 + 0S 3 = 72

a doua restricție cu S 2

= >

2H + 0S 1 +1S 2 - 6S 3 = 12

K 0H + 1K + 0S 1 +0S 2 + 1S 3 = 10

Noile restricții se vor trece în tabel

seminar 2

OPTIMIZAREA PROCESELOR TEHNOLOGE

Programarea liniară

Metoda SIMPLEX

Actualizare tabel Cant. ce 2¥ 4¥ 0¥ 0¥ 0¥ C C j rând pot fi
Actualizare tabel
Cant. ce
C
C j rând
pot fi
j
coloană
produse
H
K
S
S
S
baza
1
2
3
cant
S
4
0
1
0
-6
60
1
S
2
0
0
1
-6
12
2
K
0
1
0
0
1
10
Z
0
4
0
0
4
40¥
j
C
2
0
0
0
-4
j -Z j
-
Soluția de bază completă H=0, K=0, S 1 =120, S 2 =72, S 3 =10
Valoarea
-
Prima iterație completă
H=0, K=10, S 1 =60, S 2 =12, S 3 =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 C 2¥ 4¥ 0¥ 0¥ 0¥ C j j rând coloa b H
Metoda SIMPLEX
C
C
j
j
rând
coloa
b
H
K
S
S
S
i /a i2
1
2
3
baza
cant
S
4
0
1
0
-6
60
60/4=15
1
Este o valoare dar nu
S
2
0
0
1
-6
12
12/2=6
2
K
0
1
0
0
1
10
10/0=∞
Z
0
4
0
0
4
poate fi luată în
considerare deoarece
o „cantitate„ trebuie
să fi pozitivă și finită.
j
C
2
0
0
0
-4
j -Z j
C
C
j
j
rând
coloan
baza
H
K
S
S
S
ă
1
2
3
cant
A doua iterație
S
4
0
1
0
-6
60
1
S
1
0
0
1/2
-3
6
2
K
0
1
0
0
1
10
Z
0
4
0
0
4
j
C
2
0
0
0
-4
j -Z j

seminar 2

OPTIMIZAREA PROCESELOR TEHNOLOGE

Programarea liniară

Metoda SIMPLEX

A doua iterație

S 1

4H + 0K + 1S 1 +0S 2 - 6S 3 = 60

prima restricție cu S 1

Se înlocuiesc datele în S 1 conform noilor variabile adăugate din tabel

1H + 0K + 0S 1 +1/2S 2 - 3S 3 = 6

H = 6 1/2S 2 + 3S 3 4(6 1/2S 2 + 3S 3 ) + 0K + S 1 - 6S 3 = 60

a nu se confunda cu a 2 a restricție

= >

0H + 0K + 1S 1 -2S 2 + 6S 3 = 36

H 1H + 0K + 0S 1 +1/2S 2 - 3S 3 = 6

K 0H + 1K + 0S 1 +0S 2 + 1S 3 = 10

a treia restricție cu K

Se înlocuiesc datele în K conform noilor variabile adăugate din tabel

1H + 0K + 0S 1 +1/2S 2 - 3S 3 = 6 H = 6 1/2S 2 + 3S 3 0H + 1K + 0S 1 +0S 2 + 1S 3 = 10

a nu se confunda cu a 2 a restricție

seminar 2

OPTIMIZAREA PROCESELOR TEHNOLOGE

Programarea liniară

Metoda SIMPLEX

Actualizare tabel pt. a doua iterație Cant. ce 2¥ 4¥ 0¥ 0¥ 0¥ C C
Actualizare tabel pt. a doua iterație
Cant. ce
C
C j rând
pot fi
j
coloană
produse
H
K
S
S
S
baza
1
2
3
cant
S
0
0
1
-2
6
36
1
H
1
0
0
1/2
-3
6
K
0
1
0
0
1
10
Z
2
4
0
1
-2
52¥
j
C
0
0
0
-1
2
j -Z j
-
Soluția de bază completă
H=0, K=0, S 1 =120, S 2 =72, S 3 =10
H=0, K=10, S 1 =60, S 2 =12, S 3 =0
H=6, K=10, S 1 =36, S 2 =0, S 3 =0
Valoarea
- Prima iterație
completă
funcției
obiectiv
- A doua iterație completă
pentru…
- Până la n iterații

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

C 2¥ 4¥ 0¥ 0¥ 0¥ C j j rând coloa b H K S
C
C
j
j
rând
coloa
b
H
K
S
S
S
i /a i2
1
2
3
baza
cant
S
0
0
1
-2
6
36
36/6=6
1
H
1
0
0
1/2
-3
6
6/-3=-2
K
0
1
0
0
1
10
10/1=10
Este cea mai mică
valoare dar nu poate fi
luată în considerare
deoarece o „cantitate„
trebuie să fi pozitivă
Z
2
4
0
1
-2
j
C
0
0
0
-1
2
j -Z j
C
C
j
j
coloa
rând
baza
H
K
S
S
S
1
2
3
cant
A treia iterație
S
0
0
1/6
-1/3
1
6
1
H
1
0
0
1/2
-3
6
K
0
1
0
0
1
10
Z
2
4
0
1
-2
j
C
0
0
0
-1
2
j -Z j

seminar 2

OPTIMIZAREA PROCESELOR TEHNOLOGE

Metoda SIMPLEX

A treia iterație

S 1

0H + 0K + 1/6S 1 -1/3S 2 + 1S 3 = 6

prima restricție cu S 1

Programarea liniară

H 1H + 0K + 0S 1 +1/2S 2 - 3S 3 = 6 a doua restricție cu H Se înlocuiesc datele în H conform noilor variabile adăugate din tabel 0H + 0K + 1/6S 1 -1/3S 2 + 1S 3 = 6 S 3 = 6 - 1/6S 1 + 1/3S 2 1H+0K+0S 1 +1/2S 2 3(6-1/6S 1 +1/3S 2 )=6 => 1H+0K+1/2S 1 -1/2S 2 +S 3 = 24

K 0H + 1K + 0S 1 +0S 2 + 1S 3 = 10

a treia restricție cu K

Se înlocuiesc datele în K conform noilor variabile adăugate din tabel 0H + 0K + 1/6S 1 -1/3S 2 + 1S 3 = 6 S 3 = 6 - 1/6S 1 + 1/3S 2 0H+1K+0S 1 +0S 2 +1(6-1/6S 1 +1/3S 2 )=10 => 0H+1K-1/6S 1 +1/3S 2 +S 3 = 4

seminar 2

OPTIMIZAREA PROCESELOR TEHNOLOGE

Programarea liniară

Metoda SIMPLEX

Actualizare tabel pt. a treia iterație

Cant. ce
Cant. ce
2¥ 4¥ 0¥ 0¥ 0¥ C j rând pot fi C j coloană produse H
C j rând
pot fi
C j
coloană
produse
H
K
baza
S 1
S 2
S 3
cant
S
0
0
1/6
-1/3
1
6
3
H
1
0
1/2
-1/2
0
24
K
0
1
-1/6
1/3
1
4
2
4
1/3
1/3
4
64¥
Z j
C j -Z j
0
0
-1/3
-1/3
- 4
Valoarea
completă
H=0, K=0, S 1 =120, S 2 =72, S 3 =10
H=0, K=10, S 1 =60, S 2 =12, S 3 =0
H=6, K=10, S 1 =36, S 2 =0, S 3 =0
H=24, K=4, S 1 =0, S 2 =0, S 3 =6
funcției
obiectiv
pentru…
Valoarea optimă a producției
pentru profit maxim

- Soluția de bază completă

- Prima iterație

- A doua iterație completă

- A treia iterație completă

- Iterații până când valoarea ultimului rând indică inexistența

unei alte valori, NU mai sunt valori pozitive

seminar 2

OPTIMIZAREA PROCESELOR TEHNOLOGE

Metoda SIMPLEX

ANALIZA DE SENSIBILITATE Situația de minimizare

Programarea liniară