Sunteți pe pagina 1din 80

Conf.dr.ing.

Radu Ursulean

METODE DE OPTIMIZARE

Structura cursului
1 ora de curs/saptamana

2 ore lucrari

2 teme pentru acasa


Metode de optimizare #1

SCURT ISTORIC

Unde se foloseste optimizarea ?

Primele incercari: cel de-al doilea razboi

mondial Metoda simplex propusa de George Dantzig

Metode de optimizare

#1

George Dantzig (1914-2005)

Inventatorul metodei Simplex, matematicianul George Dantzig


Metode de optimizare #1

Exemple de probleme de optimizare


Cum trebuie asezate tranzistoarele pe un chip

astfel incat sa ocupe aria minima ? Unde trebuie construite 6 depozite astfel incat drumul la cele 12 magazine outlet sa fie mai scurt de 10 minute ? Cum trebuie dirijate convorbirile telefonice intre doua orase astfel incat retelele sa fie incarcate egal ?
Metode de optimizare #1

Procesul optimizarii
PROBLEMA DIN LUMEA REALA

analiza

validare analiza senzitivitatii

ALGORITM, MODEL, SOLUTIE PRACTICA

metode numerice

verificare

IMPLEMENTARE PE CALCULATOR
Metode de optimizare #1

Lumea reala e cu...probleme

Formularea problemei

Detalii (importante sau nu)


Extragerea elementelor esentiale Formularea modelului: ce este si ce nu este

important in modelarea obiectului optimizarii

Metode de optimizare

#1

Analiza problemei

Legatura dintre lumea reala si solutia propusa

Stabilirea trasaturilor esentiale


Stabilirea obiectivelor (ce anume trebuie

optimizat ?) Simpla abstractizare poate fi importanta

Metode de optimizare

#1

Model Implementare

Utilizarea metodelor numerice


Stabilirea exactitatii solutiei propuse

Metode de optimizare

#1

10

Verificare

Se testeaza daca programul (algoritmul)

realizat este adecvat aplicatiei Daca utilizati un produs software consacrat, aceasta etapa e aproape depasita !

Metode de optimizare

#1

11

Validare

Algoritm model problema initiala Analiza acuratetei solutiei Trebuie modificat modelul ? Care sunt parametrii esentiali ai problemei ?

Sunt ei confirmati de rezultatele optimizarii ?

Metode de optimizare

#1

12

Senzitivitate

O analiza a modului in care datele au anumite

efecte, dorite sau nu ! Cat de mult sunt influentate rezultatele finale de modificarile parametrilor modelului sau ale datelor de intrare

Metode de optimizare

#1

13

Ce trebuie sa stim ?

Probleme generice privind optimizarea

Algoritmii necesari rezolvarii problemelor de optimizare


Produse software dedicate optimizarii

Practica privind rezolvarea problemelor care presupun optimizari

Metode de optimizare

#1

14

Cum putem sti ?


Venind la curs Inregistrandu-va la site-ul cursului Urmarind pe internet ce se intampla la curs la

adresa www.ethgen.ee.tuiasi.ro Rezolvand temele pentru acasa Participand la laborator si rezolvand problemele propuse

Metode de optimizare

#1

15

Ce-si propune cursul

Sa va invete cum sa abordati corect o

problema de optimizare Sa va invete cum sa o formulati corect Sa va puna la indemana uneltele necesare pentru rezolvarea problemei

Metode de optimizare

#1

16

Ce contine cursul
Cum sa formulam o problema de optimizare Programare liniara Metoda simplex

Mecanismele metodei simplex


Retelele ca instrument in optimizare Analiza senzitivitatii solutiei

Metode de optimizare

#1

17

CURS 1: CUM SA FORMULAM CORECT O PROBLEMA DE OPTIMIZARE


Metode de optimizare #1

18

De la cuvinte la formule

Ne propunem sa transformam specificatiile

vorbite in formule matematice ... Si viceversa... ... Verificand modul in care aceasta traducere reflecta intentia initiala

Metode de optimizare

#1

19

Formule pentru programarea liniara

Metode de optimizare

#1

20

Formule pentru programarea liniara

Exemplul #1
Pentru fiecare unitate de FIAT ALBEA

produsa trebuie sa avem cel putin 5 unitati de FIAT PANDA


(citat dintr-un manager, inainte de intrarea in criza)

Metode de optimizare

#1

21

Formule pentru programarea liniara


Conventie: valorile variabilelor x sunt

considerate continue si pozitive x 0

Rezolvare FIAT ALBEA =x1; FIAT PANDA=x2

5X1 X2 Un raspuns gresit (uzual !) x1 5 x2 (verificati cu un exemplu numeric !


Metode de optimizare #1

22

Formule pentru programarea liniara

Exemplul #2
Un producator poate face intr-o saptamana

11 bucati din produsul x1, sau 45 din produsul x2 sau 30 din x3; ce combinatii din cele trei produse se pot produce in 10 saptamani ?

Metode de optimizare

#1

23

Formule pentru programarea liniara

Aici avem saptamani

Un raspuns rapid dar... gresit !

11x1+45x2+30x3 10
11 x1 pe saptamana ar insemna x1x1
#1

Inmultit cu x1
Metode de optimizare

24

Formule pentru programarea liniara

De unde provine greseala (cum ne dam

seama de ea) O verificare dimensionala... poate duce la solutia corecta

Metode de optimizare

#1

25

Formule pentru programarea liniara

(1/11)x1+(1/45)x2+(1/30)x3 10
Dimensiunea este saptamani deoarece 1/11 are dimensiunea x1-1saptamanisi prin inmultire cu x1 obtinem ca dimensiune saptamani

Metode de optimizare

#1

26

Formule pentru programarea liniara

Exemplul #3
...pentru fiecare 3 profesori sunt necesari 37

studenti

Metode de optimizare

#1

27

Formule pentru programarea liniara

Problema se numeste proportie fixa


Notam cu x1 profesorii si cu x2 studentii Pastram conventia privind dimensiunea

Metode de optimizare

#1

28

Formule pentru programarea liniara

Solutia este

37x1=3x2

sau, pastrand notatia anterioara, mai intuitiva


(1/3)x1=(1/37)x2
Se refera la profesori
Metode de optimizare #1

Se refera la studenti
29

Formule pentru programarea liniara

Exemplul #4
Marfurile de tipul x1 trebuie sa reprezinte cel

mult 20% din toate marfurile de tip x1,x2 si x3

Metode de optimizare

#1

30

Formule pentru programarea liniara

Acest tip de problema stabileste o limita

extrema (minim/maxim) pentru un amestec de componente.

Metode de optimizare

#1

31

Formule pentru programarea liniara

Varianta pentru sezonul actual, cel al nuntilor:

tzuica (x1) trebuie sa nu depaseasca 20% din consumul total de lichide (vin (x2), tzuica, apa minerala (x3),) pentru a nu avea neplaceri cu sotia/prietena... Dupa petrecere...

Metode de optimizare

#1

32

Formule pentru programarea liniara

Solutia abstracta... dar corecta, desigur

0,80x1 0,2x1+ 0,2x2+ 0,2x3

Metode de optimizare

#1

33

Formule pentru programarea liniara


O transcriere corecta este urmatoarea

Sau

Metode de optimizare

#1

34

Formule pentru programarea liniara


Exemplul #5
Se dau x1 kg de substanta cu concentratia 80%, x2 cu concentratia 100% si x3 cu concentratia 0%; care e combinatia posibila

astfel incat sa se obtina in final o cantitate cu concentratia de cel putin 30%


Las in seama studentilor sa scrie exemplul cu alcool !

Metode de optimizare

#1

35

Formule pentru programarea liniara


Varianta de formula pe intelesul tuturor

80x1+100x2+0x3 30(x1+x2+x3)

Cea pentru autorii de manuale care se dau destepti: (80-30)x1+(100-30)x2+(0-30)x3 0

Metode de optimizare

#1

36

Formule pentru programarea liniara


Exemplul #6
Problema proceselor cu rata de productie

sincronizata:
Sa se scrie formulele pentru enuntul:

Procesul x1 produce 16,5 unitati ale procesului x2 si 38,2 unitati ale procesului x3 pe ora
Metode de optimizare #1

37

Formule pentru programarea liniara

Raspuns :

X2=16,5x1 X3=38,2x1
Se spune ca x1 e un proces care genereaza iesiri multiple cu o rata de producere sincronizata
Metode de optimizare #1

38

Formule pentru programarea liniara cu numere intregi

Metode de optimizare

#1

39

Formule pentru programarea liniara cu numere intregi

Un astfel de tip de problema introduce

variabile de decizie de tip binar Conventie: variabilele de tip binar vor fi notate cu z Celelalte variabile sunt notate in continuare cu x

Metode de optimizare

#1

40

Formule pentru programarea liniara cu numere intregi

Interpretarea uzuala pentru o variabila binara:


1 = adevarat, da, selecteaza, executa 0 = fals, nu, elimina, nu executa

Metode de optimizare

#1

41

Formule pentru programarea liniara cu numere intregi

Vom utiliza in unele cazuri tabelul de adevar


Valorile posibile pentru z1

z3 0 z2 0 1 0 0

z1 1 0 1

Valorile posibile pentru z2


Metode de optimizare

Valorile lui z3 in urma operatiilor cu z1 si z2


#1

42

Formule pentru programarea liniara cu numere intregi

Exemplul #1
Puteti utiliza surubul z1 numai daca ati ales

in prealabil piulita z2 Corespondentele lexicale pentru variabilele binare ale problemei sunt
z1 numai daca z2

z1 este suficient pentru z2


z1 implica z2
Metode de optimizare #1

43

Formule pentru programarea liniara cu numere intregi

Tabelul de adevar este cel dat mai jos


z1 z2 z1 0 1 z2 0 1 0 1 1 1

Metode de optimizare

#1

44

Formule pentru programarea liniara cu numere intregi

Exemplul #2
z3 poate fi produs daca si numai daca masina

z1 si muncitorul z2 sunt disponibili pentru aceasta Problema de mai sus il defineste pe z3 ca z1 SI z2

Metode de optimizare

#1

45

Formule pentru programarea liniara cu numere intregi

Ultima inegalitate, z3+1 z1+z2, este necesara deoarece relatia z3=z1z2 NU este liniara !
z3 z1 z3z2 z3+1z1+z2 z1 0 1

z2 0 0 0 1 0 1

Metode de optimizare

#1

46

Formule pentru programarea liniara cu numere intregi

Exemplul #3
Proiectul z3 poate fi finantat daca si numai

daca proiectul z1 sau proiectul z2, sau ambele sunt finantate Problema de mai sus il defineste pe z3 ca z1 SAU INCLUSIV z2

Metode de optimizare

#1

47

Formule pentru programarea liniara cu numere intregi

Operatia SAU INCLUSIV traduce expresia

z3 daca si numai daca z1 sau z2 sau ambii z1 si z2

z3 z1+z2 z3z1 z3z2 z1 0 1

z2 0 0 1 1 1 1

Metode de optimizare

#1

48

Formule pentru programarea liniara cu numere intregi

Exemplul #4
Linia de ambalare z3 poate primi materie

prima fie de la z1, fie de la z2 Problema de mai sus il defineste pe z3 ca z1 SAU EXCLUSIV z2

Metode de optimizare

#1

49

Formule pentru programarea liniara cu numere intregi

Operatia SAU EXCLUSIV traduce expresia z3

daca z1 sau z2, dar nu z1 si z2 simultan


Formulele de definitie pentru variabila z3 z3 z1+z2 z3z1-z2 z3z2-z1 z32-z1-z2 z2 0 0 1 1 1 0
#1

z1
Metode de optimizare

0 1

50

Formule pentru programarea liniara cu numere intregi

Exemplul #5 Negatia
NU z
Formula 1-z Se foloseste in relatiile anterioare, daca e

cazul
Metode de optimizare #1

51

Formule pentru programarea liniara cu numere intregi

Exemplul #6
Din multimea {z1, z2,....zk} alegeti cel mult

un element Formula: z1+z2+z3+....+zk 1 Se numeste constrangere la pachet

Metode de optimizare

#1

52

Formule pentru programarea liniara cu numere intregi

Exemplul #7
Din multimea {z1, z2,....zk} alegeti exact un

element Formula: z1+z2+z3+....+zk = 1 Se numeste constrangere partajata

Metode de optimizare

#1

53

Formule pentru programarea liniara cu numere intregi

Exemplul #8
Din multimea {z1, z2,....zk} alegeti cel putin

un element Formula: z1+z2+z3+....+zk 1 Se numeste constrangere acoperitoare

Metode de optimizare

#1

54

Formule pentru programarea liniara cu numere intregi

Exemplul #9
Din multimea {z1, z2,....zk} alegeti mai mult

de trei elemente Formula: z1+z2+z3+....+zk 4 Se numeste constrangere cardinala ATENTIE ! mai mult de trei inseamna cel putin 4
Metode de optimizare #1

55

Formule pentru programarea liniara cu numere intregi

Exemplul #10
Daca se construieste un depozit (z = 1) in el se pot stoca maximum 15 tone din produsul x Daca z = 0 atunci x = 0, dar daca z = 1, atunci

x15 Formula: x 15z x este variabila dependenta z este variabila independenta; x depinde de z Se numeste constrangere cu limita superioara
Metode de optimizare #1

56

Formule pentru programarea liniara cu numere intregi

Exemplul #11
Daca se construieste un depozit (z = 1) in el

se pot stoca cel putin 56 tone dar maximum 152 tone din produsul x Daca z = 0 atunci x = 0, dar daca z = 1, atunci x[56, 152] Formula: x 152z; x 56z x este variabila semi-continua controlata de variabila binara z;
Metode de optimizare #1

57

Formule pentru programarea liniara cu numere intregi

Exemplul #12
Folositi variabilele binare z1, z2, z3 si z4 pentru a restrictiona variabila x la valori intregi in gama {5,6,...,15} Formula: x = 5+1z1+2z2+3z3+4z4

Metode de optimizare

#1

58

Formule pentru programarea liniara cu numere intregi

Formula anterioara:

x = 5+1z1+2z2+3z3+4z4 Exercitiu: aratati ca formula de mai sus este echivalenta cu x = 5+1z1+2z2+4z3+8z4 si x 15

Metode de optimizare

#1

59

Formule pentru programarea liniara cu variabile indexate

Metode de optimizare

#1

60

Formule pentru programarea liniara cu variabile indexate

Exemplul #1
Data fiind solutia (z1,z2,z3,...zn) atunci

solutia revizuita (Z1,Z2,Z3,...Zn) difera cel putin printr-o pozitie Formula:

Metode de optimizare

#1

61

Formule pentru programarea liniara cu variabile indexate

Metodele de control al indicilor:


Explicitati valoarea
Sumati dupa un indice Specificati clar dupa ce indici dintr-o anumita

multime se lucreaza

Cele trei metode sunt mutual exclusive

Metode de optimizare

#1

62

Formule pentru programarea liniara cu variabile indexate

Exemplul #2
Exemplu de control al indicilor: fie variabila numita Xi,k,m,t care reprezinta numarul de misiuni al unui avion de lupta. Indicii reprezinta
i tipul avionului k tipul tintei m tipul munitiei t timpul la care se executa misiunea
Metode de optimizare #1

63

Formule pentru programarea liniara cu variabile indexate

In decursul unei perioade de timp t, nu sunt permise mai mult de Lt misiuni de lupta Xi,k,m,t cu un avion de tip i = F18 cu munitie m=ra,

asupra tintelor de tip k=tanc

Metode de optimizare

#1

64

Formule pentru programarea liniara cu variabile indexate

Timpul Tipul tintei

Tipul avionului

Tipul armei

Metode de optimizare

#1

65

Formule pentru programarea liniara cu variabile indexate

Exemplul #3
Pentru fiecare perioada t=1,2,3... Sa se modeleze procesul de aprovizionare/consum in care in perioada t
se cumpara ct obiecte sunt consumate wt obiecte

inventarul la momentul t fiind dat de Xt la sfarsitul fiecarei perioade t; se incepe cu un inventar initial de X0 obiecte pentru t=0
Metode de optimizare #1

66

Formule pentru programarea liniara cu variabile indexate


Numarul obiectelor consumate in intervalul t

Formula :

Inventarul in intervalul t-1

Inventarul in intervalul t

Numarul obiectelor cumparate in intervalul t

Metode de optimizare

#1

67

Formule pentru programarea liniara cu variabile indexate

Aceeasi formula, scrisa recursiv:

Metode de optimizare

#1

68

Formule pentru programarea liniara cu variabile indexate

Exemplul #4
Pentru fiecare perioada t=1,2,3... incepand cu un inventar initial Xt,a si cunoscand faptul ca in perioada t
se cumpara ct obiecte;
sunt excluse din inventar wt,a obiecte;

sa se determine inventarul activ, inventarul la momentul fiecarei perioade t


Metode de optimizare #1

69

Formule pentru programarea liniara cu variabile indexate

Formula recursiva:

De remarcat faptul ca in locul constrangerilor de tip inegalitate explicite apar cele initiale !

Metode de optimizare

#1

70

Formule pentru programarea liniara cu variabile indexate

Exemplul #5
Orice nava poate sta in docul uscat doua luni

insa docul nu poate primi decat patru nave o data in fiecare luna...

Metode de optimizare

#1

71

Formule pentru programarea liniara cu variabile indexate

Consideram variabila binara zs,t cu valoarea 1 daca nava s sta in doc incepand cu perioada t pana la t+2 si 0 in rest

Metode de optimizare

#1

72

Formule pentru programarea liniara cu variabile indexate

Formula care da rezolvarea problemei

Metode de optimizare

#1

73

Formule pentru programarea liniara cu variabile indexate

O formulare echivalenta

Metode de optimizare

#1

74

Formule pentru programarea liniara cu variabile indexate

Exemplul #6
O linie de productie poate fi in functiune, in

conservare sau inchisa la inceputul fiecarei perioade t=1,2,3... Initial linia este pornita insa daca va fi oprita, ea va ramane oprita pana la sfarsitul unei perioade...

Metode de optimizare

#1

75

Formule pentru programarea liniara cu variabile indexate

Fie zm,m1,t o variabila binara cu valoarea 1 daca se trece de la starea m la inceputul perioadei t-1 la m1 la inceputul perioadei t

Metode de optimizare

#1

76

Formule pentru programarea liniara cu variabile indexate

Consrangerile problemei sunt:

Metode de optimizare

#1

77

Formule pentru programarea liniara cu variabile indexate

Exemplul #7
Scrieti conditia ca o linie de productie sa

treaca de la starea m la starea m1 la inceputul perioadei t daca era in starea m in perioada anterioara celei denumita t...

Metode de optimizare

#1

78

Formule pentru programarea liniara cu variabile indexate

Formula ceruta:

Metode de optimizare

#1

79

SFARSIT
Metode de optimizare #1

80