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 2
SCURT ISTORIC
Unde se foloseste
optimizarea ?

 Primele incercari: cel de-al doilea razboi


mondial
 Metoda simplex propusa de George Dantzig

Metode de optimizare #1 4
George Dantzig (1914-2005)

Inventatorul metodei Simplex, matematicianul George Dantzig


Metode de optimizare #1 5
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 6
Procesul optimizarii
PROBLEMA DIN LUMEA REALA

analiza validare
analiza senzitivitatii

ALGORITM, MODEL, SOLUTIE PRACTICA

metode
verificare
numerice

IMPLEMENTARE PE CALCULATOR

Metode de optimizare #1 7
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 8
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 9
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

5·X1  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 !


11·x1+45·x2+30·x3  10
11 x1 pe
saptamana

ar insemna
Inmultit cu x1 x1·x1

Metode de optimizare #1 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-1·saptamani”si 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
37·x1=3·x2

sau, pastrand notatia anterioara, mai intuitiva

(1/3)·x1=(1/37)·x2
Se refera la
profesori Se refera la studenti
Metode de optimizare #1 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,80·x1  0,2·x1+ 0,2·x2+ 0,2·x3

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

80·x1+100·x2+0·x3  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,5·x1
X3=38,2·x1

 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 z1
0 1
z2 0 0 0
1 0 1

Valorile lui z3 in urma


Valorile posibile pentru z2 operatiilor cu z1 si z2

Metode de optimizare #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

z2
z1  z2
0 1
0 1 1
z1
1 0 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=z1·z2 NU este
liniara !

z3  z1 z2
z3z2 0 1
z3+1z1+z2
0 0 0
z1
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 z2
z3z1 0 1
z3z2
0 0 1
z1
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 z2
z3z1-z2
z3z2-z1 0 1
z32-z1-z2
0 0 1
z1
1 1 0

Metode de optimizare #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
x15”
 Formula: x  15·z
 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  152·z; x  56·z
 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+1·z1+2·z2+3·z3+4·z4

Metode de optimizare #1 58
Formule pentru programarea liniara cu numere intregi

 Formula anterioara:
x = 5+1·z1+2·z2+3·z3+4·z4
 Exercitiu: aratati ca formula de mai sus este
echivalenta cu
x = 5+1·z1+2·z2+4·z3+8·z4 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
 Formula : Inventarul in consumate
intervalul t-1 in intervalul t

Numarul
Inventarul in
obiectelor
intervalul t
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

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