+ All Categories
Home > Documents > MATLAB Optimization Toobox Toolbox -...

MATLAB Optimization Toobox Toolbox -...

Date post: 09-Oct-2019
Category:
Upload: others
View: 28 times
Download: 2 times
Share this document with a friend
228
Lucrarea ”Aspecte ale optimiz˘ arii proceselor din industria chimic˘ a” se adreseaz˘ a tuturor acelora ce doresc o init ¸iere rapid˘ ın optimizarea proceselor din industria chimic˘ si ˆ ın utilizarea MATLAB pentru realizarea acestui scop. Limbajul MATLAB prezint˘ a foarte multe facilit˘ at ¸i de calcul numeric ce sunt utile ˆ ın optimizare. Pe lˆ ang˘ a funct ¸iile din sistemul de baz˘ a MATLAB exist˘ a un set de funct ¸ii extinse cu utilitate deosebit˘ ın optimizare - Optimization Toobox. Aceast˘ a carte ˆ ı¸ si propune, ˆ ın special, familiarizarea cu facilit˘ at ¸ile oferite de MATLAB ¸ si Optimization Toolbox pentru optimizare, cu aplicat ¸ii ˆ ın domeniul ingineriei chimice. ˆ In primul capitol al lucr˘ arii sunt prezentate not ¸iunile teoretice legate de optimizare. ˆ In continuare lucrarea este structurat˘ a pe dou˘ a componente majore: prezentarea unor grupuri de metode ¸ si algoritmi de optimizare, structurate ˆ ın a¸ sa fel ˆ ıncˆ at s˘ a corespund˘ a tipurilor de probleme de optimizare ce ˆ ı¸ si g˘ asesc suport direct prin funct ¸iile din MATLAB ¸ si din Optimization Toolbox; prezentarea posibilit˘ at ¸ilor oferite ˆ ın optimizare de pachetul software MATLAB prin funct ¸iile sale de baz˘ si prin cele incluse ˆ ın Optimization Toolbox. Lucrarea include mai multe exemple de utilizare a metodelor de optimizare ¸ si a funct ¸iilor MATLAB. Exemple simple, numerice, sunt incluse ˆ ın cadrul capitolelor de metode de optimizare ¸ si ˆ ın capitolul de prezentare a facilit˘ at ¸ilor de optimizare ˆ ın MATLAB. ˆ In cadrul unui capitol separat sunt prezentate exemple de aplicare a metodelor ¸ si funct ¸iilor MATLAB ˆ ın ingineria chimic˘ a. Pentru a completa paleta de funct ¸ii MATLAB utile ˆ ın optimizare, ˆ ıntr-o anex˘ a a acestei lucr˘ ari sunt prezentate o serie de funct ¸ii MATLAB elaborate de autor ce reprezint˘ a implement˘ ari ale unor metode de optimizare des utilizate ˆ ın practic˘ a.
Transcript
Page 1: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

Lucrarea ”Aspecte ale optimizarii proceselor din industria chimica” seadreseaza tuturor acelora ce doresc o initiere rapida ın optimizareaproceselor din industria chimica si ın utilizarea MATLAB pentrurealizarea acestui scop.

Limbajul MATLAB prezinta foarte multe facilitati de calcul numeric cesunt utile ın optimizare. Pe langa functiile din sistemul de bazaMATLAB exista un set de functii extinse cu utilitate deosebita ınoptimizare - Optimization Toobox. Aceasta carte ısi propune, ınspecial, familiarizarea cu facilitatile oferite de MATLAB si OptimizationToolbox pentru optimizare, cu aplicatii ın domeniul ingineriei chimice.

In primul capitol al lucrarii sunt prezentate notiunile teoretice legate deoptimizare. In continuare lucrarea este structurata pe doua componentemajore:

• prezentarea unor grupuri de metode si algoritmi de optimizare,structurate ın asa fel ıncat sa corespunda tipurilor de probleme deoptimizare ce ısi gasesc suport direct prin functiile din MATLAB sidin Optimization Toolbox;

• prezentarea posibilitatilor oferite ın optimizare de pachetulsoftware MATLAB prin functiile sale de baza si prin cele incluse ınOptimization Toolbox.

Lucrarea include mai multe exemple de utilizare a metodelor deoptimizare si a functiilor MATLAB. Exemple simple, numerice, suntincluse ın cadrul capitolelor de metode de optimizare si ın capitolul deprezentare a facilitatilor de optimizare ın MATLAB. In cadrul unuicapitol separat sunt prezentate exemple de aplicare a metodelor sifunctiilor MATLAB ın ingineria chimica.

Pentru a completa paleta de functii MATLAB utile ın optimizare, ıntr-oanexa a acestei lucrari sunt prezentate o serie de functii MATLAB

elaborate de autor ce reprezinta implementari ale unor metode deoptimizare des utilizate ın practica.

Page 2: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”
Page 3: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

i

Cuprins

1 Notiuni fundamentale 1

1.1. Aplicatii ale optimizarii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2. Notiuni generale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3. Alegerea criteriului de optimizare . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.3.1. Criterii de optimizare de natura economica. . . . . . . . . . . . . . 6

1.3.2. Criterii de optimizare de natura tehnica . . . . . . . . . . . . . . . . 7

1.4. Alegerea variabilelor de decizie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.4.1. Determinarea numarului de variabilelor de decizie . . . . . . . . 8

1.5. Stabilirea restrictiilor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.6. Modelarea matematica a procesului . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.7. Functia obiectiv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.8. Alegerea metodei de optimizare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.9. Obtinerea solutiei optime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.10. Aplicarea solutiei optime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2 Modelarea matematica a proceselor 15

2.1. Modele matematice statistice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.2. Analiza de regresie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.2.1. Inventarierea variabilelor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.2.2. Obtinerea datelor experimentale . . . . . . . . . . . . . . . . . . . . . . . 18

2.2.3. Testarea datelor experimentale . . . . . . . . . . . . . . . . . . . . . . . . 21

2.2.4. Alegerea formei modelului . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.2.5. Determinarea coeficientilor modelului . . . . . . . . . . . . . . . . . . 25

2.2.6. Testarea ecuatiilor de regresie . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.3. Functii MATLAB utile ın analiza de regresie. . . . . . . . . . . . . . . . . . . . . 30

3 Metode analitice de optimizare 31

3.1. Optimizarea functiilor obiectiv fara restrictii . . . . . . . . . . . . . . . . . . 31

3.2. Optimizarea functiilor obiectiv supuse la restrictii egalitate . . . . . . 36

3.2.1. Metoda substitutiei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.2.2. Metoda multiplicatorilor lui Lagrange . . . . . . . . . . . . . . . . . . 39

Page 4: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

ii CUPRINS

3.3. Optimizarea functiilor obiectiv supuse la restrictii inegalitate . . . . 413.3.1. Metoda bazata pe ignorarea inegalitatilor . . . . . . . . . . . . . . . 423.3.2. Metoda bazata pe transformarea inegalitatilor . . . . . . . . . . . 43

4 Metode de eliminare 45

4.1. Functii unimodale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464.2. Metode ce utilizeaza valoarea derivatei functiei obiectiv . . . . . . . . . 48

4.2.1. Metoda ınjumatatirii intervalului (Bolzano) . . . . . . . . . . . . . 484.2.2. Metoda perechilor secventiale . . . . . . . . . . . . . . . . . . . . . . . . . 49

4.3. Metode ce utilizeaza valoarea functiei obiectiv . . . . . . . . . . . . . . . . . 514.3.1. Metoda seriei lui Fibonacci . . . . . . . . . . . . . . . . . . . . . . . . . . . 524.3.2. Metoda sectiunii de aur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

5 Metode de urcare-coborare 59

5.1. Metode care necesita evaluarea derivatelor . . . . . . . . . . . . . . . . . . . . 615.1.1. Metode de gradient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615.1.2. Metoda gradientului cu pas constant . . . . . . . . . . . . . . . . . . . 635.1.3. Metoda gradientului cu pas optim . . . . . . . . . . . . . . . . . . . . . 64

5.2. Metode care nu necesita evaluarea derivatelor . . . . . . . . . . . . . . . . . 665.2.1. Metoda Pattern Search. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665.2.2. Metoda Rosenbrock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695.2.3. Algoritmi pe baza de hiperpoliedre exploratoare . . . . . . . . . 71

6 Metode de programare 79

6.1. Programarea liniara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796.1.1. Rezolvare geometrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 806.1.2. Rezolvare algebrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826.1.3. Algoritmul Simplex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

6.2. Programarea neliniara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 886.2.1. Programarea patratica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

6.3. Programarea dinamica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896.3.1. Principiul de optimalitate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 906.3.2. Formularea matematica a programarii dinamice. . . . . . . . . . 94

7 Algoritmi genetici 97

8 Utilizare MATLAB ın optimizare 99

8.1. Functii MATLAB utilizate ın optimizare . . . . . . . . . . . . . . . . . . . . . . . . 1008.1.1. Setarea valorilor de control ale optimizarii . . . . . . . . . . . . . . 1008.1.2. Vectorul options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008.1.3. Optimizarea functiilor obiectiv nesupuse la restrictii . . . . . . 101

Page 5: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

CUPRINS iii

8.2. Optimization Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1058.2.1. Optimizarea functiilor obiectiv nesupuse la restrictii . . . . . . 1058.2.2. Optimizarea functiilor obiectiv supuse la restrictii . . . . . . . . 1078.2.3. Rezolvarea problemelor de programare liniara . . . . . . . . . . . 1128.2.4. Rezolvarea problemelor de programare patratica . . . . . . . . . 115

8.3. Noutati aduse de Optimization Toolbox versiunea 2. . . . . . . . . . . . . 1178.3.1. Structura options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1188.3.2. Optimizarea functiilor obiectiv nesupuse la restrictii . . . . . . 1198.3.3. Optimizarea functiilor obiectiv supuse la restrictii . . . . . . . . 1218.3.4. Programare liniara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1238.3.5. Programare patratica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

8.4. Alte functii si facilitati oferite de Optimization Toolbox . . . . . . . . . 1288.4.1. Rezolvari de ecuatii si sisteme de ecuatii neliniare . . . . . . . . 1288.4.2. Determinarea coeficientilor ecuatiilor de regresie . . . . . . . . . 132

I Anexe 143

A Functii MATLAB 145

A.1. Metode de eliminare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146A.1.1. Metoda perechilor secventiale . . . . . . . . . . . . . . . . . . . . . . . . . 146A.1.2. Metoda seriei lui Fibonacci . . . . . . . . . . . . . . . . . . . . . . . . . . . 148A.1.3. Metoda sectiunii de aur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

A.2. Metode de urcare-coborare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151A.2.1. Metoda gradientului cu pas constant . . . . . . . . . . . . . . . . . . . 151A.2.2. Metoda gradientului cu pas optim . . . . . . . . . . . . . . . . . . . . . 153A.2.3. Metoda Pattern Search. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155A.2.4. Metoda Rosenbrock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157A.2.5. Metoda poliedrului . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160A.2.6. Metoda poliedrului extensibil . . . . . . . . . . . . . . . . . . . . . . . . . 162

B Metode statistice 165

B.1. Legi de repartitie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165B.1.1. Curba normala a lui Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . 165B.1.2. Selectii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166B.1.3. Media aritmetica de selectie . . . . . . . . . . . . . . . . . . . . . . . . . . 167B.1.4. Dispersia de selectie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

B.2. Teste statistice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167B.2.1. Intervalul de ıncredere. Criteriul Student . . . . . . . . . . . . . . . 167B.2.2. Compararea a doua dispersii de selectie.

Raportul Fisher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

Page 6: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

iv CUPRINS

C Exemple 171

C.1. Analiza de regresie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171C.1.1. Dependenta tensiunii de lucru de distanta interpolara si

ıncarcarea unui reactor electrochimic . . . . . . . . . . . . . . . . . . . 171C.1.2. Stabilirea ecuatiei de transfer de caldura ıntr-un

schimbator de caldura. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174C.2. Metode analitice de optimizare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

C.2.1. Dimensionarea unui vas de stocare . . . . . . . . . . . . . . . . . . . . . 177C.2.2. Grosimea optima a izolatiei unei conducte . . . . . . . . . . . . . . 179

C.3. Metode de eliminare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182C.3.1. Temperatura optima de reactie . . . . . . . . . . . . . . . . . . . . . . . . 182C.3.2. Debitul optim de alimentare al unui reactor continuu . . . . . 185

C.4. Metode de urcare-coborare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189C.4.1. Compozitia la echilibru a unui amestec gazos . . . . . . . . . . . . 189C.4.2. Determinarea debitelor optime de gaz proaspat . . . . . . . . . . 197

C.5. Metode de programare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207C.5.1. Determinarea cailor optime de aprovizionare . . . . . . . . . . . . 207C.5.2. Planul optim de productie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210

Bibliografie 213

Indice 215

Page 7: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

v

Lista de figuri

1.1. Algoritmul rezolvarii unei probleme de optimizare. . . . . . . . . . . 5

2.1. Structura unui sistem. . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.2. Structura algoritmului analizei de regresie. . . . . . . . . . . . . . . 19

2.3. Experiment factorial complet la doua nivele. . . . . . . . . . . . . . 21

3.1. Tipuri de puncte stationare. . . . . . . . . . . . . . . . . . . . . . . 33

3.2. Pozitia punctului de extrem. . . . . . . . . . . . . . . . . . . . . . . 39

3.3. Suprafata de raspuns a functiei obiectiv. . . . . . . . . . . . . . . . 44

3.4. Cautare punct de extrem. . . . . . . . . . . . . . . . . . . . . . . . 44

4.1. Functii obiectiv unimodale pe domeniul de cautare. . . . . . . . . . 47

4.2. Reducerea intervalului de cautare. . . . . . . . . . . . . . . . . . . . 47

4.3. Estimarea derivatei. . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

4.4. Pozitionarea punctelor de cautare. . . . . . . . . . . . . . . . . . . . 53

4.5. Calcularea sectiunii de aur. . . . . . . . . . . . . . . . . . . . . . . . 56

5.1. Criteriile lui Himmelblau. . . . . . . . . . . . . . . . . . . . . . . . 60

5.2. Vectorul gradient pe suprafata de raspuns a unei functiireprezentate prin curbe de contur. . . . . . . . . . . . . . . . . . . . 62

5.3. Cautarea cu ajutorul simplexului. . . . . . . . . . . . . . . . . . . . 73

5.4. Deplasarea poliedrului de cautare pe suprafata de raspuns afunctiei obiectiv. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

6.1. Rezolvarea grafica ın programarea liniara. . . . . . . . . . . . . . . 81

6.2. Solutii posibile ın programarea liniara. . . . . . . . . . . . . . . . . 82

6.3. Structura unui sistem aciclic. . . . . . . . . . . . . . . . . . . . . . 90

6.4. Schema programarii dinamice pentru un sistem formatdin 5 etape. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

6.5. Linie tehnologica formata din 3 utilaje. . . . . . . . . . . . . . . . . 91

6.6. Costurile energiei utilizate ın cadrul instalatiei. . . . . . . . . . . . . 92

6.7. Sistem optimizat prin programare dinamica. . . . . . . . . . . . . . 94

B.1. Curba normala de distributie a lui Gauss. . . . . . . . . . . . . . . 166

Page 8: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

vi LISTA DE FIGURI

C.1. Vas de stocare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177C.2. Transferul termic prin izolatia conductei. . . . . . . . . . . . . . . . 180C.3. Reactorul de sinteza a amoniacului. . . . . . . . . . . . . . . . . . . 197C.4. Profilul optim conversie-ınaltime strat catalizator

ın reactorul de sinteza. . . . . . . . . . . . . . . . . . . . . . . . . . 206

Page 9: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

vii

Lista de tabele

4.1. Rezultatele aplicarii metodei ınjumatatirii intervalului. . . . . . . . 514.2. Valorile sirului lui Fibonacci. . . . . . . . . . . . . . . . . . . . . . . 524.3. Rezultatele aplicarii metodei serie lui Fibonacci. . . . . . . . . . . . 554.4. Rezultatele aplicarii metodei sectiunii de aur. . . . . . . . . . . . . 58

5.1. Aplicarea metodei Pattern-Search (primele 3 iteratii). . . . . . . . . 685.2. Aplicarea metodei Pattern-Search (iteratiile 4-5). . . . . . . . . . . 695.3. Schema de pozitionare a varfurilor corpului de cautare. . . . . . . . 725.4. Aplicarea metodei poliedrului - pasul 1. . . . . . . . . . . . . . . . . 765.5. Aplicarea metodei poliedrului - pasul 2. . . . . . . . . . . . . . . . . 775.6. Aplicarea metodei poliedrului - pasul 3. . . . . . . . . . . . . . . . . 77

6.1. Tabloul Simplex. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

8.1. Elementele vectorului options. . . . . . . . . . . . . . . . . . . . . 1018.2. Elementele structurii options. . . . . . . . . . . . . . . . . . . . . . 118

B.1. Valorile criteriului Student. . . . . . . . . . . . . . . . . . . . . . . 168B.2. Valorile raportului Fisher pentru nivelul de semnificatie α = 5%. . . 169B.3. Valorile raportului Fisher pentru nivelul de semnificatie α = 1%. . . 170

C.1. Tensiunea de electroliza functie de conditiile de lucru. . . . . . . . . 171C.2. Prelucrarea datelor experimentale de la electroliza. . . . . . . . . . 173C.3. Transfer termic ıntr-un schimbator de caldura . . . . . . . . . . . . 174C.4. Prelucrarea datelor experimentale de la transferul termic. . . . . . . 175C.5. Maximizarea beneficiului prin metoda sectiunii de aur. . . . . . . . 184C.6. Determinarea debitului optim de alimentare. . . . . . . . . . . . . . 188C.7. Date termodinamice ale componentelor amestecului de reactie. . . . 192C.8. Coeficientii ai,j si bi ai speciilor si compusilor din amestec. . . . . . 193C.9. Coeficientii expresiei caldurii specifice. . . . . . . . . . . . . . . . . 198C.10.Date privind aprovizionarea combinatului. . . . . . . . . . . . . . . 207C.11.Date pentru instalatia de insecticide. . . . . . . . . . . . . . . . . . 211

Page 10: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”
Page 11: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

1

Capitolul 1

Notiuni fundamentale

Industria chimica este caracterizata de diversitatea tehnologiilor si procedeelorde fabricatie precum si a aparatelor si utilajelor folosite. Marea majoritate a acestortehnologii implica consumuri ridicate de energie si materii prime. Buna functionarea acestor instalatii reprezinta un obiectiv economic deosebit de important.

Deoarece costurile implicate ın proiectarea, constructia si functionarea unei ast-fel de instalatii sunt ridicate, este importanta identificarea unor astfel de solutiide proiectare, constructie ori functionare ıncat sa asigure atingerea celor mai buneperformante posibile.

Optimizarea ınseamna identificarea ıntr-o situatie de decizie (problema)aceea decizie (solutie) care dintr-un anumit punct de vedere dinainte sta-bilit, este cea mai buna decizie (solutie) dintre toate deciziile (solutiile)posibile.

Optimizarea proceselor din industria chimica este deosebit de importanta prinprisma costurilor si implicit a beneficiilor ce se pot realiza.

Problemele de optimizare pot fi definite ca probleme de determinare a celei maimici sau a celei mai mari valori a unei functii de una sau mai multe variabile.

1.1. Aplicatii ale optimizarii

In industria chimica, optimizarea este utilizata la identificarea:

• celei mai scurte rute de transport ıntr-o problema de transport ceimplica mai multe rute posibile;

• solutiei de proiectare a unui utilaj sau a unei instalatii pentru aproduce o anumita cantitate de produs cu un cost cat mai micsau cu un beneficiu cat mai mare posibil;

Page 12: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

2 Notiuni fundamentale

• modului de operare a unui utilaj sau a unei instalatii cu unrandament maxim sau cu un cost minim cum ar fi, de exemplu,estimarea celui mai bun profil al temperaturii ıntr-un reactortubular pentru a obtine un randament maxim pentru un anumitprodus;

• unui model empiric al unui proces prin potrivirea cea mai buna aunei curbe matematice la datele obtinute experimental;

• planului optim de ıntretinere si reparatii pentru reducereacosturilor de reparatii;

• celei mai favorabile alocari a resurselor ıntre doua sau mai multeprocese cu scopul maririi eficientei;

• distributiei eficiente a facilitatilor de productie la nivelnational/mondial tinand cont de dimensiunile cererii si dedistributia resurselor existente pentru reducerea costurilor detransport;

• celor mai mai eficiente modalitati de conducerea a proceselor cuscopul reducerii costurilor de operare;

• planului strategic cel mai eficient pentru marirea partii detinutedin piata ın conditii de concurenta.

Optimizarea proceselor din industria chimica poate fi aplicata la diverse nivelede extindere, cum ar fi:

• la nivelul unui utilaj singular;

• la nivelul unei instalatii/linii de productie ce include un grupde utilaje;

• la nivelul unei ıntregi platforme chimice, nivel ce poate includemai multe instalatii.

De asemenea, asa cum s-a specificat, optimizarea poate fi aplicata ın rezolvareaproblemelor ce apar ın industria chimica legate de:

• proiectare − alegerea celei mai bune solutii de proiectare a unuiutilaj sau a unui grup de utilaje;

• exploatare − identificarea parametrilor optimi de lucru pentruun utilaj ori grup de utilaje;

• conducere − aflarea valorilor optime ale elementelor de control,implementarea unor modalitati de conducere avansata pe baza demodel (MPC, Optimal Control, . . . ).

In optimizarea proceselor din industria chimica apar anumite limitari deoarece:

Page 13: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

1.2. Notiuni generale 3

1. optimizarea sistemelor complexe nu este ıntotdeauna posibilapentru ca numarul de variabile si de restrictii ce intervin estemare iar relatiile sunt neliniare ceea ce face ca identificareasolutiei optime sa fie greu de efectuat;

2. prin marirea complexitatii sistemului supus optimizarii, cantitateanecesara de informatii de ordin fizic, mecanic, chimic, economiccreste semnificativ;

3. ın anumite situatii solutia optima gasita nu este aplicabila practicdatorita unor probleme tehnice (de exemplu: profilul optim detemperatura determinata prin optimizare nu poate fi realizat ıncadrul unui reactor datorita limitarilor sistemului de schimbtermic, ...). Chiar daca ea nu poate fi aplicata reprezinta oinformatie importanta privitor la potentialul maxim al sistemului.

1.2. Notiuni generale

Din definirea notiunii de optimizare facuta la pagina 1 rezulta imediat urmatoarele:

a) pentru optimizarea unui sistem este necesar ca problema sapermita mai multe solutii posibile, una dintre ele fiind aleasa ceamai buna din punctul de vedere al criteriului de optimizare ales.Acest lucru implica ca ın sistemul optimizat sa existe variabile(parametri) ce pot lua una din doua sau mai multe valori posibile,influentand pe aceasta cale starea sistemului si valoarea criteriuluide optimizare. Aceste variabile se numesc variabile de decizie.Numarul de variabile de decizie ıntr-o problema de optimizaredetermina dimensiunea problemei respective: o problema cu treivariabile de decizie, de exemplu, este o problema tridimensionala.

b) este necesara definirea riguroasa a unui punct de vedere din carese propune optimizarea sistemului. Acest punct de vedere trebuiesa poata lua forma unei marimi prin care se poate masuraeficienta diferitelor solutii posibile obtinute prin diferite seturi devalori date variabilelor de decizie. Acest punct de vedere carepermite prin valorile numerice pe care le poate lua, masurareaeficientei diferitelor solutii se numeste criteriu de optimizare.Criteriul de optimizare este exprimat ca o functie de variabilelede decizie, functie denumita functie obiectiv sau functie scop. Inorice problema de optimizare se cere stabilirea acelor valori (sau,ın anumite cazuri a acelor functii de o anumita variabilaindependenta) ale variabilelor de decizie care asigura, dupa caz,valoarea cea mai mare sau valoarea cea mai mica a criteriului de

Page 14: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

4 Notiuni fundamentale

optimizare. Astfel, orice problema de optimizare este deci oproblema de determinare a unui extrem, numita si problema deextremum. Notarea functiei obiectiv se face conform relatiilor:

y = fob(x)!= max sau max

xfob(x)

daca tipul de extrem cautat este un maxim, sau

y = fob(x)!= min sau min

xfob(x)

daca tipul de extrem cautat este un minim. Setul de valori alevariabilelor de decizie care asigura valoarea optima (cea mai maresau cea mai mica cu putinta) a criteriului de optimizare senumeste solutia optima sau politica optima. Valorile optime alevariabilelor de decizie vor fi notate x∗1, x

∗2, . . . , x

∗n, iar valoarea

maxima sau minima a criteriului de optimizare se va nota cu y∗.

c) Optimizarea este un caz particular al ımbunatatirii unui sistemrespectiv ımbunatatirea maxima posibila. O ımbunatatire maimica a sistemului nu poate fi numita optimizare.

Conform observatiei b), este posibil sa avem optimizarea:

- parametrilor: ıntr-un sistem cu parametri concentrati solutiaproblemei de optimizare este data de un anumit set de valori alevariabilelor de decizie.

Exemplu:

Stabilirea temperaturii optime de operare a unui reactorcontinuu cu amestecare perfecta. Solutia unei astfel deprobleme este o anumita valoare a parametruluitemperatura de operare.

- de functie: ıntr-un sistem cu parametri distribuiti solutia optimaeste data de o functie de variatie a variabilelor de decizie (ceexprima dependenta lor de timp sau spatiu).

Exemplu:

Identificarea profilului optim al temperaturii ın lungulunui reactor tubular. Solutia optima ın acest caz nu maieste o anumita valoare numerica a temperaturii ci ofunctie de coordonata axiala a reactorului.

Schema de baza a rezolvarii unei probleme de optimizare este prezentata ınfigura 1.1.

Page 15: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

1.2. Notiuni generale 5

Ale

gere

acr

iter

iulu

ide

optim

izar

eSta

bilir

eare

stri

ctiilo

rA

lege

rea

vari

abilel

orde

dec

izie

Model

area

mat

emat

ica

apro

cesu

lui

Ver

ifica

rea

model

ulu

im

atem

atic

� �� �

Scr

iere

afu

nct

iei

obie

ctiv

Ale

gere

am

etodei

de

optim

izar

e

Obtiner

easo

luti

eiop

tim

e

� �� �

Aplica

rea

solu

tiei

optim

e

� �� �

??

?

? ?

? ? ? ?

oper

atii

ceim

plica

uti

liza

rea

calc

ula

toru

lui

Fig

ura

1.1.

Alg

orit

mulre

zolv

arii

unei

pro

ble

me

de

opti

miz

are.

Page 16: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

6 Notiuni fundamentale

Conform schemei de lucru prezentate, pentru a putea ajunge la definirea ma-tematica a problemei de optimizare trebuie sa stabilim criteriul de optimizare, saalegem variabilele de decizie, sa obtinem modelul matematic al sistemului pe caredorim sa-l optimizam si sa stabilim restrictiile problemei. Aceste etape pot fi par-curse ın orice ordine dorita. Urmeaza scrierea functiei obiectiv ce este o reprezentarematematica a criteriului de optimizare ın functie de variabilele de decizie. Pe langafunctia obiectiv si restrictiile sunt definite de asemenea functie de variabilele dedecizie. Dupa aceasta etapa, ın functie de forma functiei obiectiv, tipul si formarestrictiilor si dependent de dimensionalitatea problemei se alege metoda de re-zolvare. Aplicand aceasta metoda se obtine solutia optima. Urmeaza etapa finalaa carei ındeplinire este cea mai importanta deoarece prezinta finalizarea ıntregiiactivitati, aceea de aplicare a solutiei optime obtinute.

In continuare se prezinta pe scurt fiecare etapa ın parte.

1.3. Alegerea criteriului de optimizare

Esenta optimizarii unui sistem consta ın alegerea din multimea de solutii (stari)posibile ale sistemului pe cea care este cea mai buna ın raport cu un criteriu definitinitial. Acest criteriu poarta denumirea de criteriu de optimizare. De retinut faptulca, solutia unei probleme de optimizare este dependenta de criteriul de optimizareales. Astfel daca alegem un alt criteriu de optimizare, solutia optima gasita va fidiferita.

Intr-o problema de optimizare se pot defini o multime de criterii de optimizare.Aceste criterii pot fi grupate ın doua categorii importante:

• criterii de optimizare de natura economica;

• criterii de optimizare de natura tehnica.

1.3.1. Criterii de optimizare de natura economica

Principalele criterii economice sunt urmatoarele:

- beneficiul definit ca diferenta dintre pretul de productie sicosturile de productie, toti acesti termeni fiind raportati la odurata de un an. Acest criteriu se aplica ındeosebi ın cazulsistemelor existente, la care, evident, investitia este fixata,cerandu-se maximizarea lui. In cazul particular ın care si pretulproductiei anuale este fix, maximizarea beneficiului anual revinela minimizarea costurilor anuale de productie.

- durata de recuperare a investitiei definita ca raportul dintrevaloarea investitiei si beneficiul anual, reprezinta un criteriu care

Page 17: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

1.3. Alegerea criteriului de optimizare 7

se foloseste ın faza de proiectare, adica atunci cand investitia esteınca o variabila. Se cere minimizarea acestui criteriu. O formaechivalenta acestui criteriu este raportul dintre beneficiul anual sivaloarea investitiei, raport care se cere maximizat.

- investitia totala reprezinta suma cheltuielilor ce se fac pentrucrearea de noi capacitati de productie sau pentru modernizareacelor existente. Investitia totala sau componente ale acesteia potfi utilizate drept criterii de optimizare.

Acestea pot fi:

a) volumul cheltuielilor pentru utilaje;

b) volumul cheltuielilor necesare pentru montaj;

In acest scop un element important o constituie calculul siestimarea costurilor utilajelor precum si a costurilor de montaj.

Se mai pot folosi drept criterii economice, ın functie de cazul particular conside-rat, investitia (de minimizat), cheltuielile materiale (de minimizat), costurile deexploatare (de minimizat), s.a.

1.3.2. Criterii de optimizare de natura tehnica

Criteriile tehnice sunt foarte numeroase. Astfel, de exemplu, numai pentru cazulreactorilor chimici se pot folosi urmatoarele criterii tehnice:

- volumul reactorului:

Vr!= min

- conversia reactantului:

x = 1− cR

cR0

!= max

unde: cR - concentratia finala a reactantului;cR0 - concentratia initiala a reactantului.

- masa catalizatorului:

Mcat!= min

- concentratia produsului:

cP!= max

Page 18: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

8 Notiuni fundamentale

Alegerea unui criteriu economic ori a unui criteriu tehnic este dependent descopul urmarit ın optimizarea sistemului respectiv.

Totusi criteriile economice sunt cele ce primeaza cu exceptia situatiilor ın carecriteriile tehnice sunt mai importante din motive legate de securitatea si sigurantainstalatiilor. Practic orice criteriu tehnic, cu exceptia celor amintite anterior, ısi arecorespondent ın optimizarea unui criteriu economic.

1.4. Alegerea variabilelor de decizie

In orice problema de optimizare exista una sau mai multe variabile independentece pot fi manipulate, denumite variabile de decizie. O sarcina de baza, ınainte dea ajunge la scrierea functiei obiectiv este de a determina numarul variabilelor dedecizie si de a le identifica1.

1.4.1. Determinarea numarului de variabilelor de decizie

Identificarea numarului de variabile de decizie este echivalenta cu identificarea nu-marului de grade de libertate ale problemei. Daca ın sistemul de optimizat existaun numar total de nv variabile semnificative, iar modelul matematic al sistemuluieste reprezentat de nec relatii independente, numarul de grade de libertate nl este:

nl = nv − nec (1.1)

In functie de valorile relative nv : nec pot exista urmatoarele situatii:

- nl < 0 adica nec < nv problema este ın general, gresit formulata,fiind imposibila determinarea celor nv variabile;

- nl = 0, respectiv nv = nec sistemul este complet determinat,numarul de grade de libertate ın acest caz este 0, deci nu se poateformula o problema de optimizare existand o solutie unica aproblemei;

- nl > 0 deci nec < nv, problema de optimizare poate fi formulata.

Fixand un numar de variabile egal cu numarul gradelor de libertate, sistemul devineun sistem determinat, valorile tuturor celorlalte variabile putand fi calculate dinsistemul de nec relatii ce compun modelul matematic al sistemului supus optimizarii.

Totusi, o parte din variabilele sistemului sunt fixate prin enuntul problemei deoptimizare sub forma unor constante, valori prestabilite, etc., astfel numarul devariabile de decizie va fi dat de restul gradelor de libertate.

1 ın situatii simple, variabilele de decizie pot fi stabilite intuitiv, prin simpla inventariere avariabilelor problemei

Page 19: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

1.5. Stabilirea restrictiilor 9

Ca o formula generala de calcul a numarului de variabile de decizie nD ın situatiaın care prin enuntul problemei nu se fixeaza nici una din variabilele de iesire alesistemului, putem considera:

nD =n∑

i=1

ni − nf (1.2)

unde: ni - variabilele de intrare ale sistemului;n - numarul total de variabile de intrare ale sistemului;nf - numarul de variabile de intrare fixate prin enuntul problemei.

In situatia ın care enuntul problemei de optimizare fixeaza si unele din variabileledepedente ale sistemului numarul lor trebuie contabilizat ın termenul nf .

Stabilirea variabilelor de decizie ıntr-o problema de optimizare este, ın final,totusi o problema de experienta, chiar daca exista o serie de scheme de determinarea acestora.

1.5. Stabilirea restrictiilor

In aproape orice problema de optimizare apar anumite limitari sau conditionariimpuse variabilelor de decizie (xi) sau asupra altor variabile ale sistemului. Functiilede tip egalitate sau inegalitate ce stabilesc domeniile admise pentru variabilele dedecizie poarta numele de restrictii.

Aceste restrictii provin fie din ınsasi natura fizica a variabilelor, fie din naturainterna a sistemului, fie datorita unor reglementari, cerinte sau stari de fapt externesistemului, dar pe care sistemul trebuie sa le respecte. Exemple de situatii ın careapar restrictii:

a) ın foarte multe situatii variabilele trebuie sa respecte conditia denonnegativitate, adica xi ≤ 0. Astfel de situatii indica faptul cavariabilele respective reprezinta marimi fizice ce nu pot aveadecat valori pozitive, cum ar fi: lungimi, suprafete, concentratii,volume, mase, debite, etc.

b) exista situatii ın care variabilele trebuie sa varieze doar ıntreanumite limite, adica ai ≤ xi ≤ bi: randamentele pot varia ıntre 0si 1, la fel si fractiile volumice ori masice, temperaturile deoperare sunt cuprinse ıntre o valoare limita inferioara si unasuperioara, Tmin ≤ T ≤ Tmax aceste limite fiind impuse dinmotive tehnologice ori de securitate a instalatiei;

c) restrictiile mai complexe se prezinta sub forma unor expresiicomplexe dintre variabilele sistemului:

gj(x1, x2, . . . , xn) = 0 (1.3)

Page 20: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

10 Notiuni fundamentale

origk(x1, x2, . . . , xn) ≤ 0 (1.4)

ce rezulta din ınsasi natura sistemului ori exprima anumitecerinte speciale la care este supus sistemul.

Restrictiile de forma 1.3 sunt restrictii de tip egalitate, iar cele deforma 1.4 de tip inegalitate.

Sistemul de restrictii la care sunt supuse variabilele de decizie ale sistemuluidefinesc un domeniu admisibil sau de cautare a solutiilor. Daca o restrictie estede tip egalitate, domeniul admisibil delimitat de respectiva restrictie este un dome-niu ınchis, solutia problemei putand fi si pe frontiera domeniului data de ecuatiarestrictiei. Daca restrictia este de tip inegalitate, domeniul admisibil este un dome-niu deschis, solutia problemei putand fi doar ın interiorul domeniul delimitat derespectiva restrictie.

Oricum, solutia problemei de optimizare trebuie sa respecte toate restrictiileimpuse ın cadrul problemei, adica trebuie sa fie o solutie a sistemului de restrictii.

1.6. Modelarea matematica a procesului

Etapa de modelare matematica a sistemului supus optimizarii permite identificarealegaturilor existente ıntre variabilele sistemului. Exista posibilitatea de a eliminaaceasta etapa, utilizand ın locul modelului sistemului chiar sistemul ınsusi ın cadrultehnicilor de optimizare experimentala tip EVOP - Evolutionary Operation.

Un model matematic este un sistem de ecuatii si inecuatii ce definesc interde-pendentele intrinseci ale unui sistem.

Discutam de modele:

• stationare (de regim stationar) cand ın ecuatiile modeluluivariabilele nu sunt dependente de timp;

• dinamice (de regim dinamic) cand ecuatiile modelului exprimavariatia ın timp a variabilelor sistemului.

Modelele matematice, ın functie de forma relatiilor incluse ın model, pot fi:

• liniare;

• neliniare.

Obtinerea unui model matematic al unui proces poate fi facuta prin:

- scrierea ecuatiilor de conservarea a masei, energiei, impulsului,tensiunii (ın cazul proceselor electrochimice) si a ecuatiilor cedefinesc procesele fizice si chimice ce au loc ın respectivul sistem,rezultand astfel modele matematice analitice;

Page 21: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

1.7. Functia obiectiv 11

- efectuarea de masuratori ale tuturor variabilelor procesului siidentificarea unor ecuatii ce corealeaza variabilele de intrare siiesire prin tehnici statistice astfel rezultand modele matematicestatistice sau modele matematice empirice;

- ımbinand cele doua modalitati rezultand modele matematicemixte.

Indiferent de modalitatea de elaborare a modelului matematic, trebuie sa avemın vedere ca este recomandabila realizarea unui compromis acceptabil ıntre comple-xitatea respectiv precizia modelului si usurinta de rezolvare a modelului, deoarece,ın cadrul metodelor de cautare a optimului, modelul matematic este solutionat deun numar mare de ori.

Aspecte legate de modelarea matematica ın special obtinerea modelelor mate-matice empirice sunt tratate ın capitolul 2.

1.7. Functia obiectiv

In urma parcurgerii etapelor anterioare, conform schemei de lucru din figura 1.1putem trece la scrierea functiei obiectiv sau a functiei scop.

Functia obiectiv exprima dependenta criteriului de optimizare de variabilele dedecizie, functie obtinuta pe baza ecuatiilor modelului matematic al sistemului ce seoptimizeaza:

y = fob(x1, x2, . . . , xi, . . . , xn) (1.5)

Impreuna cu sistemul de restrictii, functia obiectiv formeaza reprezentarea ana-litica a problemei de optimizare.

Unele caracteristici ale functiilor obiectiv (continuitatea/discontinuitatea, uni-modalitatea/plurimodalitatea, tipul si forma domeniului de cautare) sunt impor-tante pentru stabilirea metodei de optimizare utilizate ın etapa de identificare asolutiei optime.

Optimizarea implica gasirea, dupa caz, a maximului sau minimului functieiobiectiv pe domeniul admisibil.

Pentru simplificarea functiei obiectiv putem elimina, ın anumite situatii, termenice nu contin variabilele de decizie, ori, prin transformari ale functiei obiectiv putemobtine o forma adecvata metodei de optimizare alese. Astfel se pot elimina termeniiconstantii din sume, metoda ce nu are efect asupra solutiei optime dar modificavaloarea functiei obiectiv.

1.8. Alegerea metodei de optimizare

Etapa de alegere a metodei de optimizare implica identificarea unei metode ori teh-nici de optimizare ce poate fi aplicata cu succes tinand cont de anumite caracteristici

Page 22: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

12 Notiuni fundamentale

ale problemei de optimizare cum ar fi:

• numarul de variabile de decizie;

• forma functiei obiectiv;

• forma si numarul restrictiilor.

Metodele de optimizare sunt foarte numeroase si variate ıncercand sa raspundavarietatii si complexitatii functiilor obiectiv si a restrictiilor ce pot interveni ıntr-oproblema de optimizare.

Clasificarea acestor metode de optimizare este o sarcina dificila. Putem grupametodele de optimizare ın urmatoarele categorii:

Metodele analitice sau clasice de optimizare ce pot fi aplicate lafunctii obiectiv definite, continue si derivabile. Aceste metode suntgreu ori imposibil de aplicat pe masura ce variabilele de deciziesunt supuse la restrictii de tip egalitate ori inegalitate si crestedimensionalitatea problemei. Din acest motiv, metodele analiticese aplica doar pentru rezolvarea problemelor simple de optimizarecu numar mic de variabile de decizie;

Metodele numerice de optimizare sau metodele de cautare directasunt aplicabile pentru probleme de optimizare cu functii obiectivsi restrictii de forme complexe si cu numar mare de variabile dedecizei. Metodele din aceasta clasa se bazeaza pe experimente nu-merice planificate prin care se ınainteaza pas cu pas, prin ımbu-natatiri succesive a valorii functiei obiectiv, spre extremul cautat.Aceste metode se ımpart, ın functie de numarul de variabile dedecizie, ın metode de eliminare si metode de urcare-coborare.Metodele de eliminare sunt metode numerice pentru functii obiec-tiv de o singura variabila, iar metodele de urcare coborare suntmetode numerice pentru functii obiectiv de doua sau mai multevariabile de decizie. Modalitatea de cautare a optimului pentrumetodele numerice este asemanatoare cu deplasarea unui orb sprevarful unui munte ori adancul unei prapastii.

Metodele de programare sunt metode ce se aplica ın situatia ın carefunctia obiectiv si restrictiile prezinta anumite forme de reprezenta-re specifice. Principalele metode de programare sunt: programarealiniara, programarea dinamica, programarea patratica, etc. Astfelprogramarea liniara se aplica ın situatia ın care functia obiectiv sirestrictiile sunt expresii liniare ın raport cu variabilele de decizie.

Page 23: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

1.9. Obtinerea solutiei optime 13

1.9. Obtinerea solutiei optime

Odata ce metoda de optimizare adecvata functiei obiectiv din problema de opti-mizare a fost identificata, etapa ce urmeaza este cea de aplicare a algoritmuluirespectiv si pe aceasta cale de identificare a solutiei optime.

Daca ın situatia utilizarii unei metode analitice de optimizare, nu este necesa-ra utilizarea calculatorului, pentru toate celelalte metode de optimizare respectivpentru metodele de cautare numerica si metodele de programare calculatorul esteindispensabil.

Inca din primii ani ai aparitiei calculatoarelor, echipe de profesionisti, matema-ticieni si programatori, au dezvoltat rutine de calcul performante prin care s-auimplementat diverse metode de optimizare. Aceste rutine au devenit disponibilepentru utilizare inclusiv acelora ce nu erau matematicieni ori programatori prinformatie dar se ocupau de optimizare si aplicatii ale optimizarii ın diverse domenii.

Etapele necesare pentru utilizarea acestor rutine sunt:

• pregatirea si introducerea datelor;

• apelarea functiei de rezolvare;

• preluarea rezultatelor furnizate de functii.

Odata cu aparitia si raspandirea calculatoarelor personale, au aparut tot maimulte pachete de programe ce includeau rutine de calcul numeric. Astfel medii delucru cum sunt MATLAB, Mathematica, MathCad sau altele usureaza operatii cum arfi: rezolvarea de ecuatii si sisteme de ecuatii diferentiale sau algebrice, reprezentarigrafice 2D si 3D, . . . si nu ın ultimul rand, aplicarea metodelor de optimizare.

Astfel, ın general, obtinerea solutiei unei probleme de optimizare nu este preadificila deoarece aceste medii de lucru pun la dispozitia utilizatorului un set numerosde functii pentru rezolvarea problemelor de optimizare de orice natura ar fi ele, cuuna sau mai multe variabile de decizie, cu sau fara restrictii egalitate ori inegali-tate, . . . , singura limitare fiind puterea de calcul si marimea memoriei disponibilea calculatoarelor. Deosebita dezvoltare a hardware-ului observata ın ultimii ani,permite abordarea unor probleme de optimizare complexe (ce pot include zeci, sutechiar mii de variabile de decizie supuse la restrictii diverse) utilizand, deja, banalelecalculatoare personale.

Totusi utilizarea acestor medii de lucru implica cunoasterea modului de operarea calculatoarelor si familiarizarea cu sintaxa comenzilor si ın general cu modul delucru specific mediului de lucru utilizat.

In capitolul 8 sunt prezentate facilitatile oferite de mediul de lucru MATLAB pen-tru optimizare. Sunt prezentate principalele functii MATLAB utilizate ın optimizareımpreuna cu o scurta descriere a modului de utilizare si cu mici exemple.

Utilizarea mediilor de lucru amintite simplifica operatiile ın sensul ca interfatade lucru permite o mai mare interactivitate utilizator/calculator, existand posibili-tatea dezvoltarii facile a unor aplicatii complexe ce includ elemente de optimizare.

Page 24: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

14 Notiuni fundamentale

Astfel de aplicatii sunt cele legate de proiectarea optimala, modelarea si conducereaon-line a proceselor.

Simulatoarele de procese: Aspen PLUS, HySys, Pro-II si ChemCad contin modulede optimizare prin care se pot aborda probleme de proiectare optimala a utilajelor sigrupurilor de utilaje prin specificarea interactiva a functiei obiecitv si a restrictiilor.Prin functiile de estimare a costurilor utilajelor si a manoperei de montaj, a con-sumurilor specifice, . . . , pot fi abordate inclusiv probleme de optimizare cu functiiobiectiv de natura economica.

1.10. Aplicarea solutiei optime

Desi aceasta etapa reprezinta finalizarea optimizarii unui sistem, nu ıntotdeaunasolutia matematica gasita poate fi aplicata practic.

Atunci cand ne propunem rezolvarea unei probleme de optimizare trebuie saavem ın vedere aceasta etapa, deoarece cea mai simpla investitie este investitiade inteligenta iar optimizarea este una din aspectele cele mai profitabile sub careinteligenta se manifesta!

Chiar ın situatia ın care solutia optima nu poate fi aplicata, ea ne da informatiidespre potentialul maxim al sistemului si putem pe aceasta cale aprecia cat deaproape ori cat de departe suntem de acest caz ideal.

Page 25: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

15

Capitolul 2

Modelareamatematica a proceselor

Modelarea matematica a procesului ce urmeaza a fi supus optimizarii este oetapa importanta ın cadrul algoritmului procesului de optimizare. Modelarea ma-tematica are drept scop identificarea unor relatii matematice ce descriu procesulce urmeaza a fi optimizat. Etapa de modelare matematica a procesului nu estenecesara ın situatia ın care se face o optimizare experimentala prin modificarea dupaun anumit plan a factorilor ce influenteaza parametri sistemului ce este optimizat,cu scopul identificarii solutiei optime.

Necesitatea elaborarii unui model matematic al sistemului ın cazul rezolvarii uneiprobleme de optimizare deriva din faptul ca, indiferent de criteriul de optimizareales, expresia acesteia depinde de variabilele sistemului. Variabilele sistemului potfi grupate, din punct de vedere al problemei de optimizare, ın variabile de deciziesi variabile dependente numite si variabile de stare care ın final nu apar ın expresiafunctiei obiectiv. Eliminarea variabilelor de stare nu este posibila decat pe bazamodelului matematic al procesului, model ce reprezinta legaturile functionale dintreaceste variabile.

Un sistem este caracterizat prin marimi de intrare, marimi de stare si marimide iesire (figura 2.1). Din punct de vedere al problemei de optimizare, o parte dinmarimile de intrare sunt variabile de decizie ce sunt utilizate pentru identificareasolutiei.

S I S T E M

-x1

-x2...

-xm

Variabilede

intrare

-y1...

-yn

Variabilede

iesire

Figura 2.1. Structura unui sistem din punct devedere al modelului matematic.

Page 26: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

16 Modelarea matematica a proceselor

Modelul matematic este un sistem de ecuatii algebrice, liniare sau neliniare,ın cazul unui model matematic stationar, sau un sistem de ecuatii diferentiale sialgebrice, ın cazul unui model matematic dinamic. In cadrul modelului matematicvariabilele de iesire sunt exprimate ın functie de variabilele de intrare. Pentru caun astfel de model matematic sa poate fi utilizat ıntr-o problema de optimizare,trebuie sa fie astfel transformat ıncat toate variabilele sa poata fi exprimate ınfunctie doar de variabilele de intrare ce sunt variabile de decizie ın cadrul problemeide optimizare.

Modelul matematic al unui sistem poate fi:

• analitic - bazat pe ecuatii de conservare, legi ale proceselor fizice si chimicece au loc ın sistemul modelat, ...

• statistic - bazat exclusiv pe observatii, masuratori efectuate ın cadrul sistemu-lui modelat;

• mixt - bazat pe ecuatii de conservare (masa, energie, impuls, ...), legi aleproceselor ce au loc ın sistem, etc. impreuna cu ecuatii rezultate din corelareadatelor rezultate din masuratorile experimentale efectuate ın sistem.

Fiecare din aceste tipuri de modele matematice prezinta avantaje si dezavantajece permit utilizarea lor doar ın anumite situatii.

Modelele matematice analitice prezinta urmatoarele avantaje:

• domeniu de valabilitate extins;

• flexibilitate sporita, modelul matematic putand fi aplicat si la modelarea sis-temelor similare cu sistemul pentru care a fost initial elaborat.

Pe langa aceste avantaje importante exista si o seama de dezavantaje:

• necesita o buna cunoastere a fenomenelor si proceselor ce au loc ın cadrulsistemului modelat;

• necesita o pregatire speciala pentru scrierea unor ecuatii ce sunt specificesistemului modelat;

• modelul matematic obtinut este, ın general, complex si greu de utilizat maiales ın situatia unor aplicatii de optimizare on-line;

• necesita o etapa de validare/verificare a modelului ce implica obtinerea dedate experimentale pe sistemul modelat.

Modelele matematice statistice sunt avantajoase deoarece:

Page 27: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

2.1. Modele matematice statistice 17

• sunt simple din punct de vedere matematic, putand fi astfel folosite mai lesneinclusiv ın probleme de optimizare on-line, necesitand o putere de calcul mairedusa, respectiv timp de calcul mai mic;

• nu necesita cunostinte despre sistem, despre fenomenele si procesele ce au locın cadrul sistemului modelat;

• necesita cunoasterea unui algoritm matematic minimal, indiferent de sistemulpentru care se elaboreaza modelul matematic.

Modelele matematice statistice prezinta si o serie de dezavantaje:

• necesita un set extins de date experimentale rezultate din masuratori efectuateın sistemul pentru care se elaboreaza modelul matematic;

• modelele matematice obtinute nu sunt valabile decat pe domeniul datelor ex-perimentale utilizate ın elaborarea lor. Aplicarea acestor modele matematicepe alte sisteme, chiar similare, implica efectuarea unor noi masuratori exper-imentale ın noul sistem;

Modelele matematice mixte ıncearca sa preia avantajele existente ın cele douatipuri de modele matematice prezentate anterior. Aceste modele sunt mai simpledecat modelele analitice deoarece se bazeaza ıntr-o oarecare masura pe date dinmasuratori experimentale si sunt mai usor adaptabile la sisteme similare prin faptulca se bazeaza pe ecuatii de conservare si legi ale fenomenelor si proceselor ce au locın sistemul ce este modelat.

Modalitatea de elaborare a modelelor matematice analitice este larg cunoscuta sinu prezinta obiectul acestei lucrari. In continuare se prezinta o serie de considerentelegate de modul ın care se construiesc modelele statistice.

2.1. Modele matematice statistice

Caracteristica cea mai importanta a unui model matematic este aceea de a puteareda corect interdependenta variabilelor procesului ın domeniul dorit. Astfel, dacaun model matematic corespunde acestei cerinte este indiferent daca relatiile folositeın cadrul modelului au un substrat fizic sau sunt doar niste relatii arbitrare dar careınsa satisfac cerinta amintita anterior.

Elaborarea unui model matematic statistic implica efectuarea unor masuratoricu scopul acumularii de date experimentale suficiente pentru obtinerea unui modelutilizabil al procesului.

Datorita acestei limitari, un model matematic statistic nu poate fi obtinutın situatia ın care nu pot fi efectuate masuratori ın sistemul pe care dorim sa-lmodelam.

In general, apelam la un model statistic atunci cand:

Page 28: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

18 Modelarea matematica a proceselor

• procesul este insuficient de bine cunoscut. Acest fapt face imposibila elabo-rarea unui model analitic;

• procesul este prea complex. Modelele statistice, bazate pe date experimetalepot reda la fel de bine procesul ca si un model analitic, dar spre deosebire deacestea, pot fi mult mai simple;

Un model matematic statistic se compune dintr-un numar de ecuatii egal cunumarul de variabile dependente existente ın sistem. Fiecare din aceste ecuatiitrebuie sa exprime dependenta observata (pe baza datelor obtinute din masuratorileexperimentale efectuate ın sistemul ce se modeleaza) functie de variabilele de decizie.

Algoritmul matematic utilizat pentru determinarea acestor ecuatii poarta denu-mirea de analiza de regresie.

2.2. Analiza de regresie

Analiza de regresie reprezinta un algoritm pe baza careia se poate determina oecuatie de corelare a unui parametru (variabila dependenta ın cadrul sistemului) ınfunctie de o serie de alte variabile (variabile de decizie ın problema de optimizare).

Schema de baza a analizei de regresie este prezentata ın figura 2.2.In continuare se prezinta principalele etape ale analizei de regresie.

2.2.1. Inventarierea variabilelor

Prima etapa ın elaborarea unui model matematic statistic al unui proces este etapade inventariere a variabilelor. Analiza atenta a procesului permite obtinerea uneiliste a tuturor variabilelor semnificative.

Aceasta faza este deosebit de importanta deoarece ignorarea unei variabile sem-nificative a sistemului nu va permite elaborarea unui model corect al procesului.In schimb, variabilele nesemnificative luate ın considerea, se vor elimina ın modnatural ın cadrul analizei de regresie.

Datorita acestor observatii, este de preferat o oarecare larghete ın inventariereavariabilelor. Totusi, trebuie sa tinem neaparat cont de faptul ca volumul de muncanecesar obtinerii datelor experimentale creste exponential cu numarul de variabileconsiderate.

2.2.2. Obtinerea datelor experimentale

Obtinerea datelor experimentale reprezinta cea mai laborioasa si cea mai sensibilaparte a analizei de regresie. Cerintele impuse acestei faze a analizei de regresie sunt:

• numarul datelor experimentale trebuie sa fie suficient de mare ıncat sa permitadeterminarea tuturor coeficientilor modelului;

Page 29: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

2.2. Analiza de regresie 19

Inventariereavariabilelor

Obtinerea datelorexperimentale

Testarea datelorexperimentale

Alegerea formeimodelului

Calculareacoeficientilor modelului

Testarea adecvanteimodelului

Testarea semnificatieicoeficientilor

M O D E L M A T E M A T I C

��

��

SISTEM

CALCUL

?

?

?

-

nucorespunde

?OK

?

?

nucorespunde

� nucorespunde

?OK

-

nucorespunde

?OK

Figura 2.2. Structura algoritmului analizei de regresie.

• experimentele trebuie sa fie distribuite uniform pe ıntreg domeniul de variatiea variabilelor;

• precizia si reproductibilitatea datelor obtinute trebuie sa fie corespunzatoarecerintelor impuse modelului matematic.

Obtinerea datelor experimentale este posibila prin doua tipuri de experimente:

• programate - prin identificarea, pe baza unui anumit algoritm, a acelor combi-natii de valori ale variabilelor independente prin care se poate obtine un volummaxim de informatii despre sistem cu un volum minim de experimente.

Page 30: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

20 Modelarea matematica a proceselor

• aleatoare - prin utilizarea datelor rezultate din urmarirea curenta a sistemului;

Indiferent de modalitatea de experimentare aleasa, experimentele trebuie astfelconduse ıncat sa asigure obtinerea de informatii despre sistem pe ıntreg domeniulde functionare.

Experimente programate

Cea mai des utilizata metoda de programare a experimentelor este metoda de pro-gramare factoriala. Conform acestei metode, numarul total m de experimente este:

m = zn (2.1)

unde n este numarul de factori iar z este numarul de nivele de experimentare.Numarul de nivele de experimentare (z) necesar definirii interdependentei dintre ovariabila dependenta si o variabila independenta este egal cu numarul de coeficientidin ecuatia de regresie. In situatia unui model liniar, care este, ın general, cazulcel mai des ıntalnit, z = 2, deoarece avem doar doi coeficienti. Pentru modele maicomplexe, valoarea lui z creste.

Principiile de baza ale experimentului factorial la doua nivele (z = 2) sunt:

• acoperirea ıntregului domeniu de variatie al variabilelor independente, prinalegerea, pentru fiecare variabila a doua nivele, nivelul inferior xi,min si nivelulsuperior xi,max;

• codificarea variabilelor prin valorile −1, 0, 1 ın urma centrarii si normariifiecarei variabile ın parte, conform expresiilor:

x0i =

xi,max + xi,min

2; nivelul de baza al variabilei xi

∆xi =xi,max − xi,min

2; unitatea intervalului variabilei xi

Xi =xi − x0

i

∆xi

; valorile codificate ale variabilei xi

(2.2)

Valoarea Xi = 1 se obtine pentru xi = xi,max iar Xi = −1 pentru xi = xi,min.Matricea de programare a unui experiment factorial la doua nivele este dataın figura 2.3.

Aceasta codificare permite o simplificare substantiala a volumului de calcul a con-stantelor modelului precum si o schematizare a operatiei de programare a experi-mentelor.

Page 31: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

2.2. Analiza de regresie 21

-

X1

6X2

0

r(-1,-1)

r(+1,-1)

r(-1,+1) r(+1,+1)Numar Factori Marimea

experiment X1 X2 dependenta

1 +1 +1 Y1

2 +1 −1 Y2

3 −1 +1 Y3

4 −1 −1 Y4

Figura 2.3. Experiment factorial complet la doua nivele.

Experimente aleatoare

In cazul ın care experimentele programate nu sunt posibile datorita faptului casistemul pe care dorim sa-l modelam functioneaza dupa un plan bine stabilit cenu permite efectuarea unor experimente la valorile impuse de programare, unicaposibilitate de obtinere de date consta ın preluarea datelor din functionarea curentaa sistemului. Aceasta modalitate de experimentare poarta denumirea de experimentaleator.

Numarul de experimente necesare ın acest caz, este mult mai mare, datorita ınprincipal caracterului aleator al desfasurarii experimentelor.

O observatie importanta trebuie facuta si anume ca exista posibilitatea de a iden-tifica corelatii inexistente ıntre variabilele procesului prin considerarea ca variatiinaturale ale sistemului anumite operatii deliberate ce sunt efectuate de catre ope-ratorii umani sau de catre sistemele de conducere ale procesului.

2.2.3. Testarea datelor experimentale

Procesul de masurare este influentat de erori ce pot avea cauze multiple:

• imprecizia masuratorilor efectuate;

• aparitia unor fluctuatii ale parametrilor considerati constanti;

• influenta unor factori ce nu au fost considerati;

• subiectivitatea observatorului.

Datorita acestor motive valoarea masurata Yj a variabilei dependente ın replicaj va diferi de valoarea reala y, ce poate fi doar estimata. O imagine a ımprastieriivalorilor masurate este furnizata de curba de distributie ce reprezinta dependentafunctiei de densitate a probabilitatii de valoarea Y masurata.

Page 32: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

22 Modelarea matematica a proceselor

Acesta functie este definita prin:

PY2−Y1 =

Y2∫Y1

p(Y ) dY

PY2−Y1 fiind probabilitatea ca variabila Y sa primeasca valori ın domeniul [Y2−Y1].Prin lucrarilor unor matematicieni din sec.XVIII-XIX s-a obtinut o functie de

densitate de probabilitate ce reprezinta foarte bine ımprastierea erorilor experi-mentale. Aceasta distributie poarta denumirea de distributie normala (distributiaGauss).

Distributia normala

Functia de distributie normala este o distributie fundamentala ın statistica mate-matica si ın teoria erorilor de masura. Densitatea de probabilitate ın distributianormala este data de expresia:

p (Y ) =1

σ√

2πexp

[−(Y − µ)2

2σ2

]; −∞ < x <∞

Distributia normala este complet caracterizata prin doua marimi:

• media µ - masura a localizarii;

• dispersia(varianta) σ2 - masura a ımprastierii.

Radacina patrata a dispersiei, σ este abaterea standard.Pentru estimarea mediei µ se foloseste media aritmetica:

Y =

m∑j=1

Yj

m(2.3)

iar estimata dispersiei se calculeaza cu expresia:

σ2 =

m∑j=1

(Yj − Y )2

m− 1(2.4)

Testarea statistica a datelor experimentale se bazeaza pe presupunerea ca vari-abila dependenta y este o marime aleatoare normal distribuita a carei valoare poatefi estimata prin media aritmetica Y , iar dispersia ei nu trebuie sa depinda de lo-calizare.

Page 33: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

2.2. Analiza de regresie 23

Omogenitatea dispersiilor este testata cu testul F a lui Fisher:

F =σ2

1

σ22

unde σ21 si σ2

2 sunt dispersiile variabilei dependente ın doua zone diferite. Dacavaloarea calculata a raportului F este mai mica decat valoarea tabelata pentrunivelul de semnificatie ales, dispersiile pot fi considerate omogene.

Datele experimentale ce nu corespund conform testelor prezentate, trebuiescınlocuite prin efectuarea unor noi masuratori experimentale.

2.2.4. Alegerea formei modelului

Numarul de ecuatii independente din modelul matematic trebuie sa fie egal cunumarul de variabile dependente considerate. Astfel daca sistemul este descris deun numar de n variabile independente si contine l variabile dependente, atuncimodelul empiric al sistemului este descris de un sistem de l ecuatii:

yi = fi(x1, x2, . . . , xn) pentru i = 1, 2, . . . , l (2.5)

Forma generala a unei ecuatii de regresie este:

y = f(x1, x2, . . . , xn) (2.6)

unde x1, x2, . . . , xn reprezinta variabilele independente ın procesul studiat, iar ymarimea dependenta.

Alegerea formei ecuatiei 2.6 este o problema ın care nu se pot specifica regulistricte. Totusi, anumite elemente ce pot usura aceasta sarcina pot fi amintite:

Cazul 1. Daca relatia 2.6 contine doar o singura variabila independenta,reprezentarea grafica y = f(x1) poate sugera o anumita forma functiei f ;

Cazul 2. In cele mai multe din cazuri, o forma polinomiala permite o bunacorelare a variabilelor modelului:

y(x) = c0 + c1x1 + c2x2 + . . . + cixi + . . . + cnxn+

c11x21 + c12x1x2 + . . . + c1kx1xk + . . . + c1nx1xn+

c21x1x2 + c22x22 + . . . + c2kx2xk + . . . + c2nx2xn+

...

c111x31 + c112x

21x2 + . . .

c1111x41 + . . .

...

(2.7)

Page 34: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

24 Modelarea matematica a proceselor

Prin numarul de termeni considerati se poate identifica o expresie ce asiguracea mai buna corelare y = f(x).

O forma polinomiala rezulta si prin dezvoltarea ın serie Taylor a unei functiireale y = f(x). Prin dezvoltarea ın serie Taylor a unei functii continue sidiferentiabile y(x) ın jurul punctului de coordonate x = x0, se obtine:

y(x) = y(x0) +n∑

i=1

(δy

δxi

)x=x0

(xi − xi,0) +

+1

2

n∑i=1

n∑k=1

(δ2y

δxiδxk

)x=x0

(xi − xi,0)(xk − xk,0) + . . .

(2.8)

Prin compararea expresiilor 2.7 si 2.8, deoarece derivatele ın punctul de coor-donate x = x0 sunt constante se obtine:

c0 = y(x0)−n∑

i=1

(δy

δxi

)x0

xi,0 +1

2

n∑i=1

n∑k=1

(δ2y

δxiδxk

)x0

xi,0xk,0 − . . .

ci =

(δy

δxi

)x=x0

−n∑

k=1

(δ2y

δxiδxk

)x=x0

xk,0 + . . .

cik =

(δ2y

δxiδxk

)x=x0

+ . . .

(2.9)

Avantajul principal al formei polinomiale este liniaritatea variabilei depen-dente ın raport cu coeficientii ci, cik, . . .. Acest lucru simplifica ın mod sem-nificativ determinarea acestora.

Cazul 3. Analiza dimensionala poate fi utilizata pentru stabilirea formei re-latiei y = f(x) pentru descrierea operatiilor unitare. Conform teoremei π orelatie ıntre marimi fizice:

f(x1, x2, . . . , xi, . . . , xn) = 0

omogena din punct de vedere dimensional, poate fi exprimata printr-o relatie:

ϕ(π1, π2, . . . , πk, . . . , πm) = 0 cu m < n (2.10)

unde πk sunt produse adimensionale de forma:

πk =n∏

i=1

xαi,k

i

Astfel ecuatia 2.10 devine:m∏

k=1

παkk = c (2.11)

Page 35: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

2.2. Analiza de regresie 25

Modelul ecuatiei de regresie propuse pe aceasta cale este (presupunand cay = xn):

y = cn−1∏i=1

xβi

i (2.12)

Exponentii βi si constanta adimensionala c se determina din datele experi-mentale.

Relatia 2.12 poate fi usor liniarizata prin logaritmare, rezultand ecuatia:

log y = log c +n−1∑i=1

βi log xi

ın care avem o dependenta liniara ıntre coeficientii

c0 = log c si ci = βi pentru i = 1, ..., n− 1

si variabila dependenta modificata y′ = log y, ceea ce permite o simplificaresubstantiala a volumului de calcul coeficienti.

2.2.5. Determinarea coeficientilor modelului

Determinarea valorilor coeficientilor se face prin diferite metode, dependent denatura modelului (liniar sau neliniar ın variabile si coeficienti).

Prin substituirea ın ecuatia de regresie a seturilor de valori numerice obtinuteexperimental (Yj, x1j, x2j, . . . , xnj), rezulta un sistem de m ecuatii, unde m este nu-marul total de experimente. Coeficientii modelului de regresie reprezinta necunos-cutele sistemului care, ın acest caz, este supradeterminat. Pentru alegerea valorilorcoeficientilor care satisfac cat mai bine toate ecuatiile este necesara adoptarea unuicriteriu de optimizare ce urmeaza a fi minimizat.

Criteriul cel mai frecvent utilizat ın prelucrarea datelor experimentale cu eroarede masurare normal distribuita este suma patratelor abaterilor valorilor experimen-tale fata de valorile calculate cu ajutorul modelului de regresie. Aceasta expresieeste definita astfel:

S =m∑

j=1

(Yi − yi)2 (2.13)

unde: Yj reprezinta valorile masurate experimental pentru variabila dependenta,yj sunt valorile calculate cu modelul de regresie propus pentru aceleasi valori alevariabilelor independente x1, x2, . . . , xn.

Minimizarea acestei functii obiectiv se realizeaza printr-o metoda de optimizareadecvata.

Daca ecuatia de corelare propusa este liniara ın raport cu coeficientii modelului(model polinomial), sau aceasta expresie se poate liniariza, se apeleaza la derivarea

Page 36: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

26 Modelarea matematica a proceselor

criteriului de optimizare S ın raport cu coeficientii si se trece la rezolvarea sistemuluide ecuatii rezultat prin anularea derivatelor. Aceasta metoda este denumita metodacelor mai mici patrate si are avantajul usurintei ın rezolvare, sistemul de ecuatii fiindıntotdeauna liniar.

Metoda celor mai mici patrate

Fie un model de regresie de forma polinomiala data de expresia:

y = c0 + c1x1 + c2x2 + . . . + cnxn =n∑

i=0

cixi (2.14)

unde: y - variabila dependenta;xi - variabilele independente;ci - reprezinta coeficientii modelului de regresie;n - numarul de variabile independente din modelul de regresie ales.

In aceasta expresie s-a introdus o variabila independenta fictiva, x0 asociatatermenului liber c0. Aceasta variabila are valoarea 1 pentru toate experimenteleluate ın calcul (numar total de experimente luate ın calcul - m).

Aplicarea criteriului S duce la urmatoarea expresie:

S =m∑

i=1

(Yi − yi)2 =

m∑i=1

(Yi −

n∑j=0

cjxij

)2

(2.15)

Minimizarea acestei functii obiectiv se face utilizand ca variabile de decizie,coeficientii modelului:

minc

S =m∑

i=1

(Yi −

n∑j=0

cjxij

)2

(2.16)

Aplicand metoda descrisa anterior, prin egalarea cu zero a expresiilor rezultatedin derivarea functiei obiectiv ın raport cu variabilele de decizie, coeficientii, rezultaurmatorul sistem de ecuatii liniare:

∂S

∂c0

= −2m∑

i=1

(Yi −

n∑j=0

cjxij

)x0i =0

∂S

∂c1

= −2m∑

i=1

(Yi −

n∑j=0

cjxij

)x1i = 0

...

∂S

∂cn

= −2m∑

i=1

(Yi −

n∑j=0

cjxij

)xnj = 0

(2.17)

Page 37: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

2.2. Analiza de regresie 27

Reprezentarea acestui sistem de ecuatii, ıntr-o forma matriciala este data deurmatoarea expresie:

C(XT X

)= XT Y (2.18)

unde: X - este matricea marimilor independente; Y - vectorul marimii dependente;C - vectorul coeficientilor, conform urmatoarelor expresii matriciale:

X =

x01 x11 · · · xn1

x02 x12 · · · xn2...

...x0m x1m · · · xnm

Y =

Y1

Y2...

Ym

C =

c0

c1...cn

Solutia acestui sistem de ecuatii este data de urmatoarea expresie matriciala:

C =(XT X

)−1XT Y (2.19)

In situatia ın care datele experimentale sunt obtinute prin experimente progra-mate de genul experimentului factorial pe doua nivele, calcularea coeficientilor estemult mai simpla si se face cu ajutorul urmatoarelor relatii:

c0 =n∑

j=1

Yj si ci =

n∑j=1

Xi,jYj

n∑j=1

X2ij

(2.20)

unde i = 0, 1, 2, . . . ,m si j = 1, 2, . . . , n iar X reprezinta variabilele independentecentrate si normate (conform relatiei 2.2), iar Y variabila dependenta masurata.

2.2.6. Testarea ecuatiilor de regresie

Validarea modelului statistic obtinut se realizeaza prin compararea datelor furnizatede procesul real (date rezultate din masuratorile efectuate) cu estimarile modeluluideterminat (conform ecuatiei de regresie determinate). Aprecierea se poate face cuajutorul unor indicatori calitativi (abatere relativa, abatere maxima, . . .) sau printeste statistice.

Testele statistice includ testarea adecvantei modelului si testarea semnificatieicoeficientilor.

Testarea adecvantei modelului

Testarea adecvantei modelului se realizeaza ın mod obisnuit prin testul Fischer.Testul Fischer consta ın raportarea dispersiei datelor fata de modelul de regresie

Page 38: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

28 Modelarea matematica a proceselor

(dispersia adecvantelor, σ2ad) la dispersia datelor experimentale fata de medie (dis-

persia reproductibilitati datelor, σ2y).

F =σ2

ad

σ2y

(2.21)

Acest test este elocvent cand se dispune de un numar mare de date experimentalecu multe replicate. Valorile celor doua dispersii se estimeaza cu ajutorul relatiilor:

σ2ad =

m∑j=1

(Yj − yj)2

m−Nc

(2.22)

σ2y =

m∑i=1

σ2i νi

m∑i=1

νi

(2.23)

unde: m - numarul total de puncte experimentale;N - numarul de puncte experimentale distincte;Nc - numarul de coeficienti ai modelului;νi - numarul de grade de libertate ale datelor experimentale din

experimentul distinct i, calculate cu relatia: νi = mi − 1;mi - numarul de replicate ın punctul distinct i;σ2

i - dispersia datelor experimentale ın punctul i calculata cu rela-tia:

σ2i =

mi∑k=1

(Yki − Y i

)2νi

(2.24)

Yki - valoarea masurata a marimii dependente ın repetarea k a ex-perimentului din punctul distinct i;

Y i - valoarea experimentala medie ın punctul distinct i.

Valoarea raportului F astfel calculata trebuie sa fie supraunitara (ın caz contrarse trece la inversarea termenilor raportului). Aceasta valoare este comparata cudistributia Fischer tabelata (Anexa 2). In cazul ın care valoarea calculata a rapor-tului F nu depaseste valoarea tabelata F (ν1, ν2, 1−α), modelul poate fi consideratadecvat. Marimile ν1 si ν2 au semnificatia numarului de grade de libertate aledispersiilor numaratorului si respectiv numitorului raportului F , iar α reprezintapragul de semnificatie ales (ın mod curent 5%).

Daca testul de adecvanta nu este trecut de modelul matematic, este necesaraalegerea unei alte forme a modelului, ori, ın anumite cazuri, revenirea la primaetapa, cea de inventariere a variabilelor deoarece datorita omiterii unor variabile nuexista posibilitatea obtinerii unei corelatii acceptabile.

Page 39: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

2.2. Analiza de regresie 29

Testarea semnificatiei coeficientilor

Testarea semnificatiei coeficientilor modelului liniar determinat se realizeaza princompararea valorii absolute a coeficientilor ci cu intervalul de ıncredere calculat curelatia:

∆ci = ±t√

σ2c (2.25)

unde: t - reprezinta valorile tabelate ale distributiei Student, σ2c - dispersia coefici-

entilor calculata cu relatia:

σ2c =

σ2y

m(2.26)

σ2y - dispersia reproductibilitatii datelor experimentale; m - numarul de puncte pe

baza carora s-a calculat dispersia σ2y .

Valoarea distributiei Student, t este functie de pragul de semnificatie ales, α side numarul de grade de libertate al datelor experimentale: t(ν, 1− α).

Numarul de grade de libertate se calculeaza cu relatia:

ν =N∑

i=1

νi (2.27)

Aceasta relatie este valabila exclusiv pentru modelul de regresie liniar. Acei co-eficienti din ecuatia de regresie care prezinta o valoare absoluta mai mare decatintervalul de ıncredere ∆c nu pot fi neglijati. Coeficientii cu valoarea absoluta maimica decat ∆c pot fi eliminati din ecuatia de regresie.

In urma unei astfel de operatii forma ecuatiei de regresie este modificata si estenecesara reluarea analizei de regresie de la etapa de calcul coeficienti.

Majoritatea etapelor analizei de regresie implica un volum mare de calcul sinecesita utilizarea intensiva a calculatorului.

Pentru efectuarea calculelor exista posibilitatea de dezvoltare a unor programedar cea mai buna metoda consta ın utilizarea unor medii de lucru adecvate cum arfi: MATLAB1, MathCAD2, Mathematica2...

MATLAB este unul din cele mai performante medii de lucru utilizate ın calculnumeric si reprezentarea datelor. Structura MATLAB include un set extins de functiigenerale, plus seturi specializate de functii grupate de domenii pe utilizare ın asanumitele toolbox -uri.

1elaborat de The MathWorks, Inc.(S.U.A.), MATLAB este un mediu de lucru orientat spre pre-lucrari numerice si reprezentari de date. Este foarte raspandit mai ales ın mediul universitar

2prezinta caracteristici similare cu MATLAB

Page 40: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

30 Modelarea matematica a proceselor

2.3. Functii MATLAB utile ın analiza de regresie

Calculele numerice necesare ın analiza de regresie pot fi efectuate utilizand urma-toarele functii MATLAB, prezente ın setul general de functii:

• mean - calculeaza media aritmetica a componentelor unui vector sau matrice;

• std - calculeaza abaterea standard a componetelor unui vector sau matrice;

• var - calculeaza dispersia componentelor unui vector sau matrice;

• polyfit - calculeaza coeficientii unei regresii polinomiala;

Pe langa aceste functii, exista si alte functii ın cadrul unor toolbox -uri:

Optimization Toolbox

– lsqnonneg - calculeaza coeficientii unei ecuatii de regresie liniara cucoeficienti pozitivi fara restrictii;

– lsqlin - calculeaza coeficientii unei ecuatii de regresie liniare cu restrictiide tip egalitate si inegalitate impuse coeficientilor;

– lsqnonlin - calculeaza coeficientii unei ecuatii de regresie neliniare detip suma de patrate;

– lsqcurvefit - calculeaza coeficientii unei ecuatii de regresie neliniare curestrictii de tip egalitate si inegalitate impuse coeficientilor;

Statistical Toolbox

– fullfact, ff2n - programarea experimentelor factoriale;

– fstat - testare pe baza functiei de distributie F;

– tstat - testare pe baza criteriului Student;

– mad - calculeaza deviatia absoluta medie;

– nlinfit - calculeaza coeficientii unei regresii neliniare prin metoda celormai mici patrate.

Obs.: Functiile utile ın analiza de regresie ce fac parte din OptimizationToolbox sunt prezentate ın cadrul subcapitolului 8.4.2 de la pagina 132.

Page 41: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

31

Capitolul 3

Metode analitice de optimizare

Metodele analitice, sau metodele indirecte de optimizare ısi au originea ın lucrari-le fundamentale de calcul diferential elaborate ın secolele XVII si XVIII de Newton,Leibnitz, Fermat, s.a.. Desi utilizarea acestor metode este destul de restransa, elereprezinta un bun exemplu pentru initierea ın tehnicile de optimizare.

Metodele analitice de optimizare prezinta urmatoarele caracteristici:

• solutia optima este identificata cu precizie;

• pot fi aplicate si la problemele cu restrictii;

• functia obiectiv trebuie sa fie continua si de mai multe oriderivabila, cu cel putin o parte dintre derivate continue.

Datorita acestor caracteristici, metodele analitice de optimizare sunt aplicabiledoar la problemele cu un numar redus de variabile de decizie ın care expresiilefunctiei obiectiv si ale restrictiilor sunt matematic simple.

In continuare se prezinta metode analitice de optimizare a functiilor obiectivfara restrictii, a functiilor obiectiv supuse la restrictii egalitate si ulterior a functiilorobiectiv supuse la restrictii de tip inegalitate.

3.1. Optimizarea functiilor obiectiv fara restrictii

Fie f(x) o functie continua si derivabila pe domeniul A ≤ x ≤ B. Pentru oricepunct a din acest interval derivata de ordinul ıntai este:(

∂f

∂x

)x=a

= lim∆x→0

f (a + ∆x)− f (a)

∆x(3.1)

Daca derivatele de ordinul 2, 3, . . . , j− 1 sunt, de asemenea, functii continue pedomeniul (A, B), iar derivata de ordinul j exista ın domeniul mentionat, dezvoltarea

Page 42: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

32 Metode analitice de optimizare

functiei f(x) ın serie Taylor este data de relatia:

f (x) = f (a) + (x− a)(

∂f∂x

)x=a

+ . . .

. . . + (x−a)j−1

(j−1)!

(∂j−1f∂xj−1

)x=a

+

+ (x−a)j

j!

(∂jf∂xj

)x=b

(3.2)

unde: A ≤ 0; x ≤ B iar b se gaseste ıntre x si a. Inlocuind cu ∆x = x−a se obtine:

f (a + ∆x)− f (a) = ∆x(

∂f∂x

)x=a

+ ∆x2

2!

(∂2f∂x2

)x=a

+ . . .

. . . + ∆xj

j!

(∂jf∂xj

)x=b

(3.3)

Conditia necesara ca x = a sa fie un optim local este ca derivata de ordinul ıntai safie nula. Prin definitie, pentru un minim local x∗:

f(x∗) = f(x)

oricare ar fi x ın imediata vecinatate a lui x∗ si similar pentru un maxim local x∗:

f(x∗) = f(x) pentru x→ x∗

Pentru a satisface conditia necesara putem spune ca daca a este un minim localiar ∆x are o valoare suficient de mica astfel ıncat ∆x2 ≈ 0, ∆x3 ≈ 0, . . . ∆xj ≈ 0,relatia 3.3 se reduce la:

f (a + ∆x)− f (a) ∼= ∆x

(∂f

∂x

)x=a

iar daca(

∂f∂x

)x=a6= 0 semnul lui ∆x poate fi astfel ales ıncat

f (a + ∆x)− f (a) < 0

adica f (a + ∆x) < f (a) ceea ce contrazice faptul ca a este un minim local.Conditia de anulare a derivatei de ordinul ıntai pentru un optim local nu este

suficienta.Astfel, daca aceasta este nula, dar ∆x2 nu are o valoare neglijabila, ci doar

termenii de grad mai mare decat 2 pot fi neglijati, din relatia 3.3 rezulta:

f (a + ∆x)− f (a) =∆x2

2

(∂2f

∂x2

)x=a

(3.4)

Daca (∂2f

∂x2

)x=a

> 0

Page 43: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

3.1. Optimizarea functiilor obiectiv fara restrictii 33

rezulta f (a + ∆x) > f (a) , deci a este un minim local, iar pentru(∂2f

∂x2

)x=a

< 0

a este un maxim local. Pentru(

∂2f∂x2

)x=a

= 0,(

∂3f∂x3

)x=a

trebuie, de asemenea, sa

fie zero, astfel ∆x3 ısi va schimba semnul odata cu schimbarea semnului lui ∆x, iar

primul termen semnificativ(

∆x3

6

)·(

∂3f∂x3

)x=a

va fi incompatibil cu presupunerea ca

punctul x− a este optim local.Un punct a, pentru care(

∂f

∂x

)x=a

=

(∂2f

∂x2

)x=a

= 0 si

(∂3f

∂x3

)x=a

6= 0

va fi un punct de inflexiune si nu un optim local.

-x

6f(x)

a

f(a) r

∆x<0 ∆x>0

� -

................................

............................

.........................

.......................

.................................................................... ............... ............... . ............... ............... ............... ................

.................

....................

.......................

.........................

............................

...............................

a). punct de maxim

-x

6f(x)

a

f(a) r∆x<0 ∆x>0

� -

................................

............................

.........................

.......................

....................

.................

................ ............... ............... ............... . ............... ............... ....................................................................

.......................

.........................

............................

...............................

b). punct de minim

-x

6f(x)

a

f(a) r

∆x<0 ∆x>0

� -

.........................

......................

....................................................................... .................. ................... . ................... .................. ..................

.....................................................

......................

........................

c). punct de inflexiune

Figura 3.1. Tipuri de puncte stationare.

Punctele pentru care derivata de ordin ıntai este nula (optime locale si punctede inflexiune) poarta denumirea de puncte stationare (figura 3.1).

Generalizarea acestui rationament duce la urmatoarea regula de analiza a punc-telor stationare pentru functiile de o variabila independenta:

Daca prima derivata nenula este de ordin par, punctul stationar con-siderat va fi minim local daca valoarea derivatei respective ın acel puncteste pozitiva si maxim local daca este negativa; daca prima derivatanenula este de ordin impar, punctul stationar respectiv este un punct deinflexiune.

In mod similar pentru o functie de mai multe variabile se poate demonstra caconditia necesara si suficienta ca a sa fie un punct stationar consta ın anularea valoriituturor derivatelor partiale de ordinul ıntai ın respectivul punct, adica ∆f = 0.

Tipul de punct stationar (minim, maxim, inflexiune) corespunzator poate fistabilit ın urma determinarii semnului sumei ∆2f . Astfel, daca ∆2f < 0, punctul

Page 44: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

34 Metode analitice de optimizare

a este un maxim local, iar daca ∆2f > 0 este un minim local. De retinut ca acesteconditii sunt suficiente, dar nu absolut necesare. Demonstrarea lor impune ca celputin unul din elementele vectorului x − a sa fie nenul. Pentru cazul ∆2f = 0 (cucel putin un element nenul al vectorului x−a), stabilirea tipului de punct stationarnecesita o analiza a derivatelor de ordin superior lui 2.

Intrucat ıntr-un numar mare de cazuri nu este posibila stabilirea directa a semnu-lui lui ∆2f , se apeleaza la metoda completarii patratelor, aplicabila oricarei functiide doua variabile si tuturor functiilor patratice de n variabile. Pentru cazul uneifunctii de doua variabile ın punctul stationar de coordonate x∗1 si x∗2, ∆f(x∗1, x

∗2) = 0.

Din relatia (3.3), daca se neglijeaza termenii de ordin superior lui 2 rezulta:

f (x)− f (x∗) =1

2∆2f

Pentru ca punctul stationar considerat sa fie un maxim, este suficient, conform celorexpuse anterior, ca:

∆2f = (x1 − x∗1)2(

∂2f∂x2

1

)x=x∗

+

+2 (x1 − x∗1) (x2 − x∗2)(

∂2f∂x1∂x2

)x=x∗

+

+ (x2 − x∗2)2(

∂2f∂x2

2

)x=x∗

< 0

(3.5)

Pentru simplificarea scrierii se noteaza:(∂2f

∂x21

)x=x∗

= A,

(∂2f

∂x1∂x2

)x=x∗

= B,

(∂2f

∂x22

)x=x∗

= C

x1 − x∗1 = ∆x1 si x2 − x∗2 = ∆x2.Astfel, relatia 3.5 devine: ∆x2

1A + 2∆x1∆x2B + ∆x22C < 0.

Daca se da factor comun termenul A, se obtine:

A

(∆x2

1 + 2∆x1∆x2B

A+ ∆x2

2

C

A

)< 0

In interiorul parantezei prin adunarea si scaderea termenului ∆x22

B2

A2 se obtine unpatrat perfect:

A

(∆x2

1 + 2∆x1∆x2B

A+ ∆x2

2

B2

A2+ ∆x2

2

C

A−∆x2

2

B2

A2

)< 0

respectiv:

A

[(∆x1 + ∆x2

B

A

)2

+∆x2

2

A

(C − B2

A

)]< 0

Page 45: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

3.1. Optimizarea functiilor obiectiv fara restrictii 35

sau

A

[(∆x1 + ∆x2

B

A

)2

+∆x2

2

A2

(AC −B2

)]< 0

ceea ce este echivalent cu:

A < 0 si AC −B2 > 0 (3.6)

In mod similar, pentru un minim (∆2f > 0) rezulta:

A > 0 si AC −B2 > 0 (3.7)

Relatiile 3.6 si 3.7 sunt cunoscute sub numele de criteriile lui Lagrange.Daca se scrie matricea hessiana a functiei f(x1, x2):

H =

∂2f

∂2x1

∂2f

∂x1∂x2

∂2f

∂x1∂x2

∂2f

∂2x2

se observa corespondenta expresiilor 3.6 si 3.7 cu determinantii de ordinul 1 si 2 aiacestei matrici. Astfel daca se noteaza cu Di determinantul de ordinul i, o formulareechivalenta a criteriilor lui Lagrange va fi:

1. pentru un minim: D1 > 0 si D2 > 0

2. pentru un maxim: D1 < 0 si D2 > 0

Pentru cazul unei functii patratice de n variabile metoda completarii patratelorconduce la urmatoarele rezultate:

• un punct stationar este un minim local daca toti determinantii matricei he-ssiene sunt pozitivi:

Di > 0 pentru i = 1, 2, . . . n (3.8)

• un punct stationar este un maxim local daca determinantii de ordin impar aimatricei hessiene sunt negativi, iar cei de ordin par sunt pozitivi:

Di < 0 pentru i = 1, 3, 5, . . . Di > 0 pentru i = 2, 4, 6, . . . (3.9)

• daca nu sunt ındeplinite nici conditiile 3.8 si nici 3.9, punctul stationar studiateste un punct de inflexiune.

In concluzie, stabilirea punctelor stationare ale unei functii de n variabile implicarezolvarea unui sistem de n ecuatii, fiecare corespunzand anularii derivatelor deordinul ıntai ın raport cu variabila de decizie xi, i = 1, . . . n.

Page 46: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

36 Metode analitice de optimizare

Exemplu

Sa se rezolve urmatoarea problema de optimizare:

minx

fob = 4x21 + 2x2

2 + 4x1x2 + 2x2 + 1 (3.10)

Rezolvare

Pentru identificarea punctelor stationare se anuleaza derivatele de ordinul ıntai:∂fob

∂x1

= 8x1 + 4x2 = 0

∂fob

∂x2

= 4x2 + 4x1 + 2 = 0

(3.11)

Punctul stationar identificat este: x1 = 0,5 si x2 = -1. Determinarea tipului de ex-trem se face prin analizarea valorilor derivatelor de ordinul doi. Valorile derivatelorde ordinul doi ın punctul stationar identificat sunt:

∂2fob

∂2x1

∣∣∣∣x1=0,5; x2=−1

= 8

∂2fob

∂x1x2

∣∣∣∣x1=0,5; x2=−1

= 4

∂2fob

∂2x2

∣∣∣∣x1=0,5; x2=−1

= 4

(3.12)

Matricea hessiana a functiei obiectiv este:

H =

∂2fob

∂2x1

∂2fob

∂x1∂x2

∂2fob

∂x1∂x2

∂2fob

∂2x2

x1=0,5; x2=−1

=

(8 44 4

)(3.13)

Se observa ca determinatul de ordinul 1 este pozitiv, iar determinatul de ordinul 2este D2 = 8 · 4 - 4 · 4 = 16 > 0.

Prin urmare punctul stationar x∗1 = 0,5, x∗2 = -1 este un punct de minim. Va-loarea functiei obiectiv ın acest punct este fob(x

∗1, x

∗2) = 0.

3.2. Optimizarea functiilor obiectiv supuse la

restrictii de tip egalitate

Pentru un sistem cu n variabile independente (x1, x2, . . . , xn) supus la l restrictiide tip egalitate, formularea generala a problemei de optimizare este:

Page 47: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

3.2. Optimizarea functiilor obiectiv supuse la restrictii egalitate 37

optimx

f (x) , x ∈ En (3.14)

supus la:

gj (x) = 0 j = 1, . . . l (3.15)

unde domeniul de cautare este spatiul euclidian n-dimensional (En), iar f(x), sigj(x) sunt functii de orice forma.

In astfel de situatii exista mai multe metode de rezolvare.

3.2.1. Metoda substitutiei

Fie functia obiectiv:

y = fob(x1, x2) (3.16)

cu restrictia:

g(x1, x2) = 0 (3.17)

Daca din restrictia 3.17 explicitam una din variabile ın functie de cealalta, obtinem:

x2 = h(x1) (3.18)

Inlocuind variabila de decizie x2 din functia obiectiv (3.16) cu expresia lui din 3.18,obtinem:

y = fob (x1, h (x1)) (3.19)

Problema obtinuta (relatia 3.19) este o problema echivalenta cu cea initiala (relatiile3.16 si 3.17) ın sensul ca prezinta aceeasi solutie. Aceasta problema echivalenta, spredeosebire de cea initiala, este o problema de optimizare fara restrictii. Rezolvareaacestei probleme se face conform metodologiei expuse anterior (paragraful 3.1).Daca solutia gasita pe aceasta cale este x∗1, din relatia 3.18 calculam x∗2 si astfelobtinem solutia problemei bidimensionale initiale.

In afara de eliminarea restrictiilor, metoda de substitutie permite reducereadimensionalitatii problemei prin reducerea numarului de variabile de decizie.

In situatia ın care avem o functie obiectiv de n variabile de decizie:

y = fob(x1, x2, . . . , xn) (3.20)

supusa la sistemul de restrictii:

gi(x1, x2, . . . , xn) = 0, i = 1, 2, . . . ,m < n (3.21)

se exprima din cele m restrictii, m variabile de decizie din cele n ın functie de celen−m ramase, conform expresiilor:

Page 48: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

38 Metode analitice de optimizare

x1 = h1(xm+1, xm+2, . . . , xn)

x2 = h2(xm+1, xm+2, . . . , xn)...

xm = hm(xm+1, xm+2, . . . , xn)

(3.22)

Expresiile 3.22 se folosesc ın functia obiectiv 3.20 pentru a elimina cele m va-riabile de decizie. In urma acestor operatii se obtine o functie obiectiv nesupusala restrictii cu n − m variabile de decizie ce formeaza o problema de optimizareechivalenta cu cea initiala:

y = fob(xm+1, xm+2, . . . , xn) (3.23)

Desi pare simpla, aceasta metoda este aplicabila doar ın situatia ın care numarulde restrictii este mic datorita dificultatilor legate de deducerea expresiilor 3.22.

Exemplu

Sa se rezolve urmatoarea problema de optimizare:

minx

fob = 4x21 + 2x2

2 + 4x1x2 + 2x2 + 1 (3.24)

cu restrictia:x1 + x2 = 0 (3.25)

Rezolvare

In prima etapa, se exprima variabila x1 ın functie de x2 din restrictia 3.25:

x1 = −x2

Inlocuim ın functia obiectiv (relatia 3.24) pe x1 cu aceasta expresie si obtinem:

fob = 4 (−x2)2 + 2x2

2 + 4 (−x2) x2 + 2x2 + 1 == 2x2

2 + 2x2 + 1

Functia obiectiv obtinuta astfel nu este supusa la restrictii. Rezolvarea acestei pro-bleme se face prin anularea derivatei ın functie de variabila de decizie x2:

∂fob

∂x2

= 4x2 + 2 = 0

Testarea punctului stationar obtinut (x2 = −0,5) se face prin calcularea valoriiderivatei de ordinul doi:

∂2fob

∂2x2

∣∣∣∣x2=−0,5

= 4 ≥ 0

Page 49: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

3.2. Optimizarea functiilor obiectiv supuse la restrictii egalitate 39

Solutia x∗2 = -0,5 reprezinta un minim, deoarece derivata de ordinul doi este pozitivaın punctul stationar gasit. Pentru identificarea valorii optime a variabilei de deciziex1, se ınlocuieste valoarea optima a lui x2 ın expresia utilizata ın substitutie:

x∗1 = −x∗2 = 0,5

Astfel, solutia problemei este x∗1 = 0,5 si x∗2 = -0,5. Valoarea minima a functieiobiectiv este fob (x∗1, x

∗2) = 0,5.

3.2.2. Metoda multiplicatorilor lui Lagrange

Avand o functie obiectiv de doua variabile de decizie descrisa de expresia:

y = fob(x1, x2) (3.26)

si supusa la restrictia:

g(x1, x2) = 0 (3.27)

solutia poate fi un punct S de coordonate (x1, x2) din domeniul de cautare careverifica ecuatia de restrictie, adica numai puncte de pe curba g(x1, x2) = 0.

.................................

........................................................

............................................. ................... ................ .............. ............. ............ ........... .............

...............................

.............

.....

.............

........

........................

...........................

..............................

.

..................................................

................................................

.............................................

...........................................

........................................

......................................

...................................

................................

..............................

.............

.............

.

............

............

.

........................

........................

.......................

......................

.....................

.....................

.......................

......................... ........................... ............................. ............................... ................................. ................................... .....................................

.............................................

.................................................................................

..................................................................... .............................. ............................ .......................... ......................... ....................... ......................

.....................

...................

...................

.....................

......................

.......................

.........................

..........

..........

......

..........

..........

........

..........

..........

..........

..........

..........

..........

...

....................................

.......................................

..........................................

............................................

y=fob(x(1) )

y=fob(x(2) )

g(x1,x2)=0

t f(x∗1,x∗2)

S

6

x2

-x1

x∗1

x∗2

Figura 3.2. Pozitia punctului de extrem conform 3.26 si 3.27.

Obs.: Functia obiectiv este reprezentata prin curbede contur ce corespund valorilor x(1) si x(2).

Daca punctul S (figura 3.2) este solutia problemei de optimizare descrisa prinrelatiile 3.26 si 3.27, atunci curbele f(x1, x2) = f ∗ si g(x1, x2) = 0 sunt tangente ınpunctul S, avand aceeasi panta.

Page 50: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

40 Metode analitice de optimizare

Aceasta conditie poate fi redata prin expresia:

∂y

∂x1

∂g

∂x1

=

∂y

∂x2

∂g

∂x2

= λ (3.28)

unde λ este raportul de pante si se numeste multiplicatorul lui Lagrange. Din 3.28rezulta:

∂y

∂x1

− λ∂g

∂x1

= 0

∂y

∂x2

− λ∂g

∂x2

= 0

(3.29)

Ecuatiile 3.29 ımpreuna cu 3.27 pot fi interpretate drept conditiile necesare pentruvalorile extreme ale unei functii fara restrictii denumita functia lui Lagrange:

L(x1, x2, λ) = y(x1, x2)− λ g(x1, x2) (3.30)

In situatia unei functii obiectiv de n variabile de decizie si cu m ≤ n restrictii detip egalitate se construieste functia lui Lagrange ın felul urmator:

L(x1, x2, . . . , xn, λ1, . . . , λm) = f(x1, x2, . . . , xn)−

−λ1 g1(x1, x2, . . . , xn)−

−λ2 g2(x1, x2, . . . , xn)−...

−λm gm(x1, x2, . . . , xn)

(3.31)

Rezolvarea acestei probleme se face prin rezolvarea sistemului format din egalareacu zero a derivatelor partiale ale functiei L ın raport cu x1, x2, . . ., xn:

∂L

∂x1

= 0

∂L

∂x2

= 0

...∂L

∂xn

= 0

∂L

∂λ1

= 0

...∂L

∂λm

= 0

(3.32)

Page 51: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

3.3. Optimizarea functiilor obiectiv supuse la restrictii inegalitate 41

Exemplu

Sa se rezolve urmatoarea problema de optimizare:

minx

fob = 4x21 + 2x2

2 + 4x1x2 + 2x2 + 1 (3.33)

cu restrictia:x1 + x2 = 0 (3.34)

Rezolvare

Se formeaza functia obiectiv a lui Lagrange:

L(x1, x2, λ) = 4x21 + 2x2

2 + 4x1x2 + 2x2 + 1− λ(x1 + x2)

Pentru identificarea solutiei rezolvam urmatorul sistem de ecuatii:

∂L

∂x1

= 8x1 + 4x2 − λ = 0

∂L

∂x2

= 4x2 + 4x1 + 2− λ = 0

∂L

∂λ= x1 + x2 = 0

(3.35)

Solutia sistemului 3.35 este: x1 = 0,5, x2 = -0,5 si λ = 2.Astfel, solutia problemei este x∗1 = 0,5 si x∗2 = -0,5. Valoarea minima a functiei

obiectiv este fob (x∗1, x∗2) = 0,5.

3.3. Optimizarea functiilor obiectiv supuse la

restrictii de tip inegalitate

Pentru un proces cu n variabile independente (x1, x2, . . . , xn) supus la m restrictiide tip inegalitate, formularea generala a problemei de optimizare este:

optimx

f (x) , x ∈ En (3.36)

supus la:gj (x) ≤ 0 j = 1, . . . m (3.37)

unde domeniul de cautare este spatiul euclidian n-dimensional (En), iar f(x), sigj(x) sunt functii de orice forma.

Solutia problemei (optimul) se poate gasi fie ın interiorul domeniului admisibil,definit prin relatiile 3.37, fie pe frontiera acestui domeniu. Pentru rezolvarea acestuitip de probleme se prezinta doua modalitati de abordare.

Page 52: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

42 Metode analitice de optimizare

3.3.1. Metoda bazata pe ignorarea inegalitatilor

In cadrul acestei metode, abordarea identificarii solutiei se face ın felul urmator:

1. se trateaza functia obiectiv ca o functie fara restrictii;

2. se verifica daca punctele stationare gasite astfel sunt ın interioruldomeniului admis, respectiv daca verifica sistemul de restrictii;

3. daca acest lucru este adevarat, solutia problemei cu restrictiileinegalitate este identica cu solutia problemei fara restrictii;

4. daca acest lucru este fals, optimul cautat se poate gasi pefrontiera impusa de restrictii. Identificarea solutiei ın acest cazare loc prin impunerea respectarii la limita a inegalitatilor ce nusunt satisfacute prin transformarea lor ın restrictii egalitate. Inacest caz rezolvarea problemei se reia de la primul punct alalgoritmului, incluzand ın calcul si restrictiile egalitate obtinuteastfel.

Exemplu

Sa se rezolve urmatoarea problema de optimizare:

minx

fob = 4x21 + 2x2

2 + 4x1x2 + 2x2 + 1 (3.38)

supusa la restrictiile:x1 + x2 = 0

x1 + x2 − x1x2 ≥ 1, 5(3.39)

Rezolvare

Problema de optimizare prezinta o restrictie de tip egalitate si una de tip inegalitate.Restrictia de tip inegalitate este ignorata ın prima faza, rezolvandu-se problematinand cont doar de restrictia egalitate. Conform exemplelor anterioare, solutiaacestei probleme este x∗1 = 0,5 si x∗2 = -0,5. In faza a doua, revenim si testam datasolutia gasita respecta restrictia inegalitate, ignorata initial.

x1 + x2 − x1x2 = 0,5− 0,5− 0,5 · (−0,5) = 0,25 < 1,5

Restrictia inegalitate nu este respectata. Impunem respectarea acestei restrictii lalimita, respectiv impunem x1 + x2 − x1x2 = 1,5. Astfel, functia obiectiv 3.38 estesupusa la urmatoarele restrictii:

x1 + x2 = 0

x1 + x2 − x1x2 = 1,5(3.40)

Page 53: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

3.3. Optimizarea functiilor obiectiv supuse la restrictii inegalitate 43

Rezolvarea acestei probleme echivalente ın care avem doua restrictii de tip egalitate,implica rezolvarea sistemului de restrictii 3.40. Solutia unica gasita este x∗1 = 1,2247si x∗2 = -1,2247 reprezinta solutia problemei initiale 3.38 supusa la restrictiile 3.39.Valoarea minima a functiei obiectiv este fob(x

∗1, x

∗2) = 1,5505.

3.3.2. Metoda bazata pe transformarea inegalitatilor

In acest caz ın fiecare restrictie de tip inegalitate se introduce o variabila fictiva,non-negativa prin care restrictia de tip inegalitate devine una de tip egalitate.Modificarile efectuate asupra restrictiilor 3.37 sunt:

rj = gj (x) + x2n+j = 0 j = 1, . . . m (3.41)

Pe acesta cale, problema este transformata dintr-o problema de optimizare curestrictii de tip inegalitate, ıntr-o problema de optimizare cu restrictii de tip egali-tate. Rezolvarea unei astfel de probleme a fost tratata anterior.

Exemplu

Sa se rezolve urmatoarea problema de optimizare:

minx

fob = 4x21 + 2x2

2 + 4x1x2 + 2x2 + 1 (3.42)

supusa la restrictiile:x1 + x2 ≥ 0

x1 + 9 x2 − x1x2 ≥ 0,5(3.43)

Obs.: Reprezentarea grafica a functiei obiectiv ın jurul punctului deextrem este prezentata ın figura 3.3.

Rezolvare

Transformam restrictiile inegalitate ın restrictii de tip egalitate prin introducereaunor variabile fictive notate cu x3 si x4. Sistemul de restrictii 3.43 devine:

−x1 − x2 + x23 = 0

−x1 − 9 x2 + x1x2 + x24 =−0,5

(3.44)

Pe aceasta cale obtinem o problema echivalenta problemei initiale (ecuatiile 3.42si 3.43) ın care functia obiectiv este 3.42 si restrictiile sunt 3.44. Rezolvarea aces-tei probleme prin metoda multiplicatorilor lui Lagrange implica scrierea functiei

Page 54: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

44 Metode analitice de optimizare

obiectiv extinse:

L(x1, x2, x3, λ1, λ2) = 4x21 + 2x2

2 + 4x1x2 + 2x2 + 1−−λ1(−x1 − x2 + x2

3)−−λ2(−x1 − 9 x2 + x1x2 + x2

4 + 0,5)

(3.45)

Figura 3.3. Suprafata de raspuns afunctiei obiectiv (expresia 3.42).

Figura 3.4. Cautare punctde extrem.

Identificarea solutiei se poate face analitic prin rezolvarea sistemului format dinanularea derivatelor partiale ale functiei obiectiv ın raport cu variabilele de decizie:

∂L

∂x1

= 8x1 + 4x2 − λ1 + λ2 − λ1x2 = 0

∂L

∂x2

= 4x2 + 4x1 + 2− λ1 + λ2 − λ2x1 = 0

∂L

∂x3

=−2λ2x3 = 0

∂L

∂x4

=−2λ2x4 = 0

∂L

∂λ1

=−x1 − x2 + x23 = 0

∂L

∂λ2

=−x1 − 9 x2 + x1x2 + x24 + 0,5 = 0

(3.46)

Solutia sistemului 3.35 este: x1 = -0,062, x2 = 0,062. In figura 3.4 se observa cumsolutia problemei fara restrictii f ∗ nu mai este ın domeniul de cautare definit derestrictii, noua solutie f ∗R fiind identificata la limita domeniului de cautare.

Page 55: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

45

Capitolul 4

Metode de eliminare

In cele mai multe situatii modelul matematic al unui proces din ingineria chimicaeste neliniar, rezultand expresii matematice complexe pentru functia obiectiv sirestrictii. Astfel de probleme de optimizare nu pot fi rezolvate prin metode analiticeci necesita aplicarea unor metode numerice. Metodele numerice sau metodele directede cautare a optimului sunt caracterizate de:

• utilizarea unui plan de cautare bazat pe experimente numerice ceau loc prin alegerea convenabila a unor valori pentru variabilelede decizie si calcularea valorii functiei obiectiv;

• cautarea porneste de la o solutie initiala aproximativa aproblemei;

• utilizarea unui algoritm ce aproximeaza solutia exacta aproblemei de optimizare;

Metodele de eliminare sunt metode numerice de cautare a optimului pentrufunctii obiectiv de o singura variabila de decizie. O marea parte dintre problemele deoptimizare cu o singura variabila de decizie sunt abordabile si prin metode analiticede optimizare dar, metodele de eliminare sunt mai apreciate deoarece algoritmullor permite o transpunerea mai usoara ın programe de calculator. Pe langa acestaspect important, metodele de eliminare nu cer ca functia obiectiv sa fie continuasi derivabila pe domeniul de cautare.

Metodele de eliminare aplicate ın problemele de optimizare unidimensionalaprezinta importanta deosebita ın cadrul metodelor de optimizare multidimensionalaprin utilizarea lor ca subrutine de cautare locala a optimului.

Algoritmul general al metodelor de eliminare consta ın urmatoarele etape:

• stabilirea unui interval initial ce contine punctul de extrem si pecare functia obiectiv este unimodala (prezinta un singur extrem).Acest interval de cautare corespunde unei restrictii de forma:

a ≤ x ≤ b

Page 56: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

46 Metode de eliminare

unde a si b sunt limitele intervalului, notate prin xmin = a sixmax = b;

• reducerea intervalului initial prin eliminarea simultana sausuccesiva a unor subintervale, pentru care exista certitudinea canu contin punctul de extrem.

Obs.: Conditia necesara pentru aplicarea acestui algoritm este ca functiaobiectiv sa fie unimodala pe intervalul initial de cautare.

Daca pe un interval initial de cautare functia obiectiv este plurimodala (prezintamai multe puncte de extrem) se ımparte intervalul de cautare ın intervale pe carefunctia este unimodala.

Aplicand algoritmul descris mai ınainte, se determina pentru fiecare intervalastfel format pozitia punctului de extrem, solutia problemei initiale fiind cea maimare sau cea mai mica valoare din extremele locale gasite, ın functie de tipul deextrem cautat (minim sau maxim).

In situatia ın care functia obiectiv prezinta un singur punct de extrem, se poatereduce domeniul de variatie a variabilei de decizie prin compararea a doua sau maimulte valori ale functiei obiectiv din cadrul domeniului. Procesul de reducerea adomeniului de cautare are loc prin eliminarea acelor regiuni din domeniul de cautarece nu pot contine optimul.

4.1. Functii unimodale

Unimodalitatea unei functii pe un domeniu apare ın situatia ın care exista un sin-gur punct de extrem pe respectivul interval. Intr-o astfel de situatie, functia areo valoare monoton descrescatoare pornind de la limita inferioara a domeniului decautare pana la punctul de extrem, si o valoare monoton crescatoare catre limitasuperioara a domeniului de cautare - ın situatia unui minim al functiei, respec-tiv, functia este monoton crescatoare pornind de la limita inferioara a domeniulde cautare pana la punctul de extrem, si monoton descrescatoare pana la limitasuperioara a domeniului de cautare, ın cazul unui maxim (figura 4.1).

Daca acesta conditie este ındeplinita, exista posibilitatea de reducere a inter-valului de cautare, bazandu-ne pe valoarea functiei obiectiv ın doua puncte dinintervalul curent de cautare. In functie de valorile relative ale functiei obiectiv ıncele doua puncte si de tipul de extrem cautat, ıntotdeauna exista posibilitatea de aelimina cel putin unul din subintervalele formate pe baza imposibilitatii prezenteipunctului de extrem ın aceste zone ale intervalului de cautare (figura 4.2).

In situatia cautarii unui maxim, ın cazul A subintervalul 3 nu poate continepunctul de extrem, prin urmare acest subinterval poate fi eliminat. In cazul Bsubintervalul 1 este acela ce poate fi eliminat.

Page 57: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

4.1. Functii unimodale 47

-

x

6fx

xmin xmax

..................................

..............................

...........................

........................

............................................................................. ................. ................ ................. .................. ................... ....................

.....................

.......................

..........................

.............................

................................

...................................

......................................

x∗

f∗ t

a). maxim

-

x

6fx

xmin xmax

..................................

..............................

...........................

........................

.....................

....................

................... ................... .................. ................. ................. .......................................

...........................................

.......................

...........................

..............................

.................................

....................................

x∗

tf∗

b). minim

Figura 4.1. Functii obiectiv unimodale pe domeniul de cautare.

-

6

xmin xmax

fx

s sx1 x2

cc

1 2 3 -

6

xmin xmax

fx

s sx1 x2

cc

1 2 3

caz A caz B

Figura 4.2. Reducerea intervalului de cautare.

In situatia cautarii unui minim, ın cazul A, subintervalul 1 este cel eliminat, iarın cazul B, subintervalul 3.

Cautarea optimului se face prin doua tipuri de metode:

a). simultane - planul de cautare stabileste de la ınceput toatevalorile variabilei de decizie ın care se vor face experimentelenumerice asupra functiei obiectiv;

b). secventiale - planul de cautare este astfel ıntocmit ıncatexperimentele succesive se bazeaza pe rezultatele experimenteloranterioare, adica valorile variabilei de decizie ın experimentulj + 1 depind de rezultatele obtinute ın experimentele anterioarej, j − 1, j − 2, . . ..

Datorita eficientei superioare, metodele de cautare secventiala sunt cele maiutilizate. Din aceasta categorie de metode de eliminare se prezinta:

Page 58: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

48 Metode de eliminare

A. metode ce fac apel la valoarea derivatei functiei obiectiv pentrureducerea intervalului de cautare:

- metoda Bolzano;

- metoda perechilor secventiale;

B. metode ce folosesc valoarea functiei obiectiv pentru reducereaintervalului de cautare:

- metoda seriei lui Fibonacci ;

- metoda sectiunii de aur.

4.2. Metode de eliminare ce utilizeaza

valoarea derivatei functiei obiectiv

4.2.1. Metoda ınjumatatirii intervalului (Bolzano)

Metoda aceasta utilizeaza valorile derivatei functiei obiectiv din trei puncte din in-tervalul de cautare ce sunt amplasate la limitele intervalului si ın centrul intervaluluicurent de cautare, pentru reducerea succesiva a acestui interval pana la o valoaredorita ın jurul punctului de extrem.

Pentru aplicarea metodei, avem nevoie de:

• expresia derivatei functiei obiectiv;

• intervalul initial de cautare ∆(0) = xmax − xmin pe care functiaobiectiv este unimodala;

• precizia dorita ın identificarea extremului, ε.

Obs.: Daca pe domeniul de cautare functia obiectiv este unimodalaatunci derivatele sale la limitele intervalului de cautare, [xmin, xmax] voravea semne diferite.

Algoritmul metodei ınjumatatirii intervalului este urmatorul:

1. se amplaseaza un punct de cautare ın mijlocul intervalului curent de cautare:

x(k) =xmax − xmin

2(4.1)

2. se calculeaza valorile derivatei functiei obiectiv la limitele intervalului curentde cautare si ın punctul central al intervalului (ın punctele xmin, x(k) si xmax);

3. se elimina acel subinterval pe care derivata nu-si schimba semnul;

Page 59: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

4.2. Metode ce utilizeaza valoarea derivatei functiei obiectiv 49

4. testarea atingerii punctului de extrem cu precizia impusa, ε se face prin com-pararea marimii intervalului ramas cu precizia. Daca ∆(k) > ε, se trece lao noua eliminare, revenind la punctul 1 al algoritmului. Daca conditia ce seındeplineste este:

∆(k) ≤ ε (4.2)

atunci x(k) ± ε/2 reprezinta solutia problemei de optimizare.

Algoritmul metodei ınjumatatiri intervalului este extrem de simplu si eficient darun dezavantaj major este necesitatea ca expresia derivatei analitice a functiei obiec-tiv sa fie disponibila. Acest dezavantaj poate fi eliminat prin estimarea numerica avalorii derivatei.

4.2.2. Metoda perechilor secventiale

Aceasta metoda deriva din metoda ınjumatatirii intervalului eliminand dezavantajulnecesitatii derivarii analitice a functiei obiectiv.

.

..............................................

.............................................

..............................................

................................................

..................................................

....................................................

......................................................

........................................................

.........................................................

-

6fob

x

s s

xi xi + ε

-�δ

""

""

""

fob(xi)fob(xi + ε)

Figura 4.3. Estimarea derivatei unei functiiprin raportul diferentelor.

Derivata functiei obiectiv ın punctul xi poate fi aproximata prin raportul dife-rentelor (figura 4.3):(

dfob

dx

)xi

≈ ∆fob

∆x=

fob(xi + δ)− fob(xi)

(xi + δ)− xi

=fob(xi + δ)− fob(xi)

δ(4.3)

unde prin δ s-a notat o distanta suficient de mica ın apropierea lui xi.

Algoritmul metodei perechilor secventiale este identic cu algoritmul metodeiınjumatatirii intervalului cu exceptia faptului ca semnul derivatei este calculat pebaza relatiei 4.3.

Page 60: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

50 Metode de eliminare

Exemplu

Sa se rezolve urmatoarea problema de optimizare:

minx

fob = x2 − 6x + 8

pe intervalul de cautare (0; 5), cu precizia ε = 0,01.

Rezolvare

Expresia analitica a derivatei functiei obiectiv este:

dfob

dx= 2x− 6 (4.4)

Conform algoritmului prezentat pentru metoda Bolzano procedam ın felul urmator:

1. calculam mijlocul intervalului de cautare curent pentru pasul i = 1:

x(i) =xmax − xmin

2=

5− 0

2= 2,5

2. calculam semnul derivatei functiei scop la limitele si ın centrul intervalului:(dfob

dx

)xmin=0

= 2 xmin − 6 = 2 · 0− 6 =−6 < 0(dfob

dx

)x(i)=2,5

= 2 x(i) − 1 = 2 · 2,5− 6 =−1 < 0(dfob

dx

)xmax=5

= 2 xmax4 = 2 · 5− 6 = 4 > 0

sau prin relatia 4.3 cu δ = 0,01:(dfob

dx

)xmin=0

≈ fob(xmin + δ)− fob(xmin)

δ=

7,94− 8

0,01=−6 < 0(

dfob

dx

)x(i)=2,5

≈ fob(x(i) + δ)− fob(x

(i))

δ=−0,76− (−0,75)

0,01=−1 < 0(

dfob

dx

)xmax=5

≈ fob(xmax + δ)− fob(xmax)

δ=

3,04− 3

0,01= 4 > 0

3. se elimina subintervalul [xmin, x(i)) deoarece pe acest subinterval derivata nu-si

schimba semnul. Noul interval de cautare devine [xmin, xmax] = [2,5; 5];

Page 61: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

4.3. Metode ce utilizeaza valoarea functiei obiectiv 51

4. se verifica daca intervalul ramas este mai mic decat precizia impusa:

xmax − xmin = 5− 2,5 = 2,5 > ε

5. se trece la o noua eliminare (i = i+1 = 2) pana cand se ındeplineste conditia:

xmax − xmin ≤ ε

Eliminarile efectuate pana la ındeplinirea conditiei mentionate sunt prezentate ıntabelul 4.1.

Tabela 4.1. Rezultatele aplicarii metodei ınjumatatirii intervalului.

i xmin x(i) xmax dfob(xmin) dfob(x(i)) dfob(xmax) ∆

1 0 2,5000 5,0000 − − + 5,00002 2,5000 3,7500 5,0000 − + + 2,50003 2,5000 3,1250 3,7500 − + + 1,25004 2,5000 2,8125 3,1250 − − + 0,62505 2,8125 2,9688 3,1250 − − + 0,31256 2,9688 3,0469 3,1250 − + + 0,15637 2,9688 3,0078 3,0469 − + + 0,07818 2,9688 2,9883 3,0078 − − + 0,03919 2,9883 2,9980 3,0078 − + + 0,0195

10 2,9883 2,9932 2,9980 − + + 0,0098

Rezultatul obtinut dupa 10 eliminari este x∗ = 2,9932 ± 0,0048. Valoarea minimaa functiei obiectiv este f ∗ob = −1.

4.3. Metode de eliminare ce utilizeaza

valoarea functiei obiectiv

Nu ıntotdeauna expresia functiei obiectiv ori a derivatei acesteia este disponibilaıntr-o problema de optimizare. Sunt situatii ın care criteriul de optimizare nu poatefi exprimat analitic dar avem la dispozitie sistemul de optimizat.

In astfel de cazuri metodele seriei lui Fibonacci si sectiunii de aur permit iden-tificarea solutiei optime. Aceste doua metode sunt caracterizate de faptul ca utili-zeaza pentru optimizare doar valoarea functiei obiectiv, calculata pe baza expresieifunctiei obiectiv ori masurata direct ın proces.

Page 62: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

52 Metode de eliminare

4.3.1. Metoda seriei lui Fibonacci

Metoda seriei lui Fibonacci a fost dezvoltata de J. Kiefer (1953) si se bazeaza peun sir de numere naturale utilizat de Fibonacci (1202) pentru urmarirea ınmultiriiiepurilor.

Sirul lui Fibonacci este dat de urmatoarea ecuatie recurenta:

(Fi)0 = (Fi)1 = 1(Fi)n = (Fi)n−1 + (Fi)n−2 cu n ≥ 2

(4.5)

Expresia analitica a elementelor sirului lui Fibonacci este:

(Fi)n =1√5

(1 +√

5

2

)n+1

(1−√

5

2

)n+1 (4.6)

Termenii sirului lui Fibonacci, pana la rangul 32, sunt date ın tabelul 4.2.

Tabela 4.2. Valorile sirului lui Fibonacci.

n (Fi)n n (Fi)n n (Fi)n

0 1 11 144 22 28.6571 1 12 233 23 46.3682 2 13 377 24 75.0253 3 14 610 25 121.3934 5 15 987 26 196.4185 8 16 1.597 27 317.8116 13 17 2.584 28 514.2297 21 18 4.181 29 832.0408 34 19 6.765 30 1.346.2699 55 20 10.946 31 2.178.309

10 89 21 17.711 32 3.524.578

Pornind de la:

• expresia functiei obiectiv, sau sistemul de optimizat din care prinmasuratori se poate determina sau calcula valoarea functieiobiectiv,

• intervalul initial de cautare ∆(0),

• tipul de extrem cautat, maxim/minim,

• precizia dorita ın identificarea extremului ε,

algoritmul metodei seriei lui Fibonacci este dat de urmatoarea secventa de etape:

Page 63: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

4.3. Metode ce utilizeaza valoarea functiei obiectiv 53

1. se calculeaza numarul de eliminari teoretic necesare pentru atingerea punctu-lui de extrem conform pasilor urmatori:

a). se calculeaza numarul ajutator NA cu relatia:

NA =∆0

ε(4.7)

b). se identifica ın sirul lui Fibonacci rangul elementului ce are valoarea egalasau imediat superioara valorii lui NA. Rangul identificat pe aceasta caleeste n - numarul de eliminari succesive teoretic necesare.

2. se calculeaza un subinterval δ cu relatia:

δ(j) =(Fi)n−(j+1)

(Fi)n−(j−1)

∆(j−1) (4.8)

unde j indica numarul eliminarii, initial j = 1, iar ∆(k) este marimea inter-valului de cautare din pasul k calculata cu relatia:

∆(k) = x(k)max − x

(k)min (4.9)

3. se pozitioneaza doua puncte ın intervalul de cautare cu relatiile (figura 4.4):

x(j)1 = x

(j)min + δ(j) si x

(j)2 = x(j)

max − δ(j) (4.10)

sxminsxmax

sx

(j)1

sx(j)2

-�

-�

δ(j)

δ(j)

Figura 4.4. Pozitionarea punctelor de cautare.

4. se calculeaza pe baza expresiei functiei obiectiv sau prin experimente ın sis-temul de optimizat, valoarea functiei obiectiv ın cele doua puncte x1 si x2

5. se elimina intervalul sau intervalele pe care este imposibil sa se afle punctulde extrem, conform celor mentionate anterior

6. se testeaza atingerea preciziei dorite prin compararea numarului de eliminariefectuate cu n−1. Daca aceasta conditie nu se ındeplineste, se trece la o nouaeliminare (j = j + 1 ın relatiile 4.8, 4.9 si 4.10).

Punctele 2, . . . 5 din algoritm se reiau pana cand conditia finala se ındeplineste,respectiv numarul de eliminari efectuate este egal cu n− 1.

Solutia problemei de optimizare este:

x∗ =xmax + xmin

2± xmax − xmin

2(4.11)

Page 64: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

54 Metode de eliminare

Exemplu

Sa se rezolve urmatoarea problema de optimizare:

minx

fob = x2 − 6x + 8

pe intervalul de cautare (0; 5), cu precizia ε = 0,01.

Rezolvare

Conform algoritmului metodei seriei lui Fibonacci se efectueaza urmatoarele opera-tii:

1. se calculeaza numarul de eliminari necesare, conform relatiei 4.7:

NA =∆(0)

ε=

x(0)max − x

(0)min

ε=

5− 0

0,01= 500

2. se identifica conform tabelului 4.2 valoarea din sirul lui Fibonacci acel elementce are valoarea imediat superioara valorii NA. Acest element ((Fi)14 = 610)are rangul 14, deci numarul de eliminari succesive necesare pentru identificareapunctului de extrem cu precizia ε =0,01 este de 13.

3. se trece la prima eliminare, j = 1:

a). se calculeaza valoarea subintervalului δ(1) conform relatiei 4.8:

δ(1) =(Fi)14−(1+1)

(Fi)14−(1−1)

∆(0) =(Fi)12

(Fi)14

· 5 =233

610· 5 = 0,382 · 5 = 1,91

b). se trece la pozitionarea a doua valori x1 si x2, conform relatiilor 4.10:

x(1)1 = x

(1)min + δ(1) = 0 + 1,91 = 1,91

x(1)2 = x(1)

max − δ(1) = 5− 1,91 = 3,09

c). se calculeaza valoarea functiei obiectiv ın cele doua puncte(x

(1)1 si x

(1)2

):

fob

(x

(1)1

)= 0,1881

fob

(x

(1)2

)= −0,9919

Page 65: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

4.3. Metode ce utilizeaza valoarea functiei obiectiv 55

d). se trece la eliminarea unuia din cele trei subintervale pe baza consideren-telor amintite anterior. Subintervalul pe care ın mod cert nu se gaseste

punctul de minim este subintervalul(x

(1)min; x

(1)1

), respectiv (0; 1,91).

Intervalul ramas este (1,91; 5).

4. se verifica atingerea punctului de extrem prin compararea numarului de eli-minari efectuate cu numarul de eliminari necesare, n = 13. In acest caz setrece la o noua eliminare prin repetarea algoritmului de la punctul 3(a) cuvaloarea j = j + 1 = 2.

In tabelul 4.3 sunt prezentate rezultatele pentru urmatoarele eliminari pana la iden-tificarea punctului de minim cu precizia 0,01.

Tabela 4.3. Rezultatele aplicarii metodei serie lui Fibonacci.

j xmin x1 x2 xmax fob(x1) fob(x2) ∆

1 0 1,9098 3,0902 5,0000 0,1885 -0,9919 3,0902

2 1,9098 3,0902 3,8197 5,0000 -0,9919 -0,3282 1,9098

3 1,9098 2,6393 3,0902 3,8197 -0,8699 -0,9919 1,1803

4 2,6393 3,0902 3,3688 3,8197 -0,9919 -0,8640 0,7295

5 2,6393 2,9180 3,0902 3,3688 -0,9933 -0,9919 0,4508

6 2,6393 2,8115 2,9180 3,0902 -0,9645 -0,9933 0,2786

7 2,8115 2,9180 2,9837 3,0902 -0,9933 -0,9997 0,1722

8 2,9180 2,9837 3,0244 3,0902 -0,9997 -0,9994 0,1064

9 2,9180 2,9586 2,9837 3,0244 -0,9983 -0,9997 0,0658

10 2,9586 2,9837 2,9993 3,0244 -0,9997 -1,0000 0,0407

11 2,9837 2,9993 3,0089 3,0244 -1,0000 -0,9999 0,0251

12 2,9837 2,9933 2,9993 3,0089 -1,0000 -1,0000 0,0155

13 2,9933 2,9993 3,0029 3,0089 -1,0000 -1,0000 0,0096

Obs.: Coloanele subliniate din corpul tabelului indica intervalele de cau-tare ramase dupa eliminare. De exemplu, ın eliminarea j = 6 intervalulramas este [2,8115; 3,0902].

Intervalul ramas dupa 13 eliminari este [2,9933; 3,0029]. Solutia optima este x∗ =2,9981 ± 0,0048. Valoarea minima a functiei obiectiv este f ∗ob = −1.

Page 66: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

56 Metode de eliminare

4.3.2. Metoda sectiunii de aur

In aceasta metoda reducerea intervalului de cautare are loc prin utilizarea, asa zisei,sectiuni de aur. Sectiunea de aur este raportul cel mai placut ochiului dintre douasegmente. Acest raport magic este caracteristic lucrarilor de arta din antichitate.

A

0

B

1

M︸ ︷︷ ︸︸ ︷︷ ︸x 1− x

Figura 4.5. Calcularea sectiunii de aur.

Acest raport, reprezentat matematic pentru un segment (AB - figura 4.5) per-mite ımpartirea sa cu un punct M ın asa fel ıncat:

MB

AM=

AM

AB

Daca AB = 1 si AM = x:1− x

x=

x

1

de unde x2 + x− 1 = 0 cu solutia pozitiva x = 0,618....Ponind de la:

• expresia functiei obiectiv, sau sistemul de optimizat din care prin masuratorise poate determina sau calcula valoarea functiei obiectiv,

• intervalul initial de cautare ∆(0),

• tipul de extrem cautat, maxim/minim

• precizia dorita ın identificarea extremului ε,

algoritmul metodei sectiunii de aur este:

1. se calculeaza un subinterval δ cu relatia:

δ(j) = (1− s) ∆(j−1) (4.12)

unde s este numarul ce caracterizeaza sectiunea de aur (s = 0,618...), j indicanumarul eliminarii, initial j = 1, iar ∆(k) este marimea intervalului de cautaredin pasul k calculata cu relatia:

∆(k) = x(k)max − x

(k)min (4.13)

Page 67: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

4.3. Metode ce utilizeaza valoarea functiei obiectiv 57

2. se pozitioneaza doua puncte ın intervalul de cautare cu relatiile:

x(j)1 = x

(j)min + δ(j) si x

(j)2 = x(j)

max − δ(j) (4.14)

3. se calculeaza pe baza expresiei functiei obiectiv sau prin experimente ın sis-temul de optimizat, valoarea functiei obiectiv ın cele doua puncte x1 si x2

4. se elimina intervalul sau intervalele pe care este imposibil sa se afle punctulde extrem, conform celor mentionate anterior

5. se testeaza atingerea preciziei dorite prin compararea intervalului de cautareramas, ∆(j) = x

(j)max − x

(j)min cu precizia dorita ε. Daca ∆(j) > ε se ia o noua

eliminare (j = j + 1 ın relatiile 4.12, 4.13 si 4.14).

Punctele 1, . . . 4 din algoritm se reiau pana cand conditia finala se ındeplineste,respectiv ∆(j) ≤ ε.

Solutia problemei de optimizare este:

x∗ =xmax + xmin

2± xmax − xmin

2(4.15)

Exemplu

Sa se rezolve urmatoarea problema de optimizare:

minx

fob = x2 − 6x + 8

pe intervalul de cautare (0, 5), cu precizia ε = 0,01.

Rezolvare

Conform algoritmului metodei sectiunii de aur se efectueaza urmatoarele operatii:

1. se trece la prima eliminare, j = 1:

a). se calculeaza valoarea subintervalului δ(1) conform relatiei 4.12:

δ(1) = (1− s) ∆(0) = 0,382 · 5 = 1,91

b). se trece la pozitionarea a doua valori x1 si x2, conform relatiilor 4.14:

x(1)1 = x

(1)min + δ(1) = 0 + 1,91 = 1,91

x(1)2 = x(1)

max − δ(1) = 5− 1,91 = 3,09

Page 68: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

58 Metode de eliminare

c). se calculeaza valoarea functiei obiectiv ın cele doua puncte(x

(1)1 si x

(1)2

):

fob

(x

(1)1

)= 0,1881

fob

(x

(1)2

)= −0,9919

d). se trece la eliminarea uneia din cele trei subintervale formate. Se elimina

intervalul(x

(1)min, x

(1)1

), respectiv (0; 1,91) pe care punctul de extrem nu

se poate afla. Intervalul ramas este (1,91; 5).

2. se verifica atingerea punctului de extrem prin compararea intervalului decautare ramas ∆(1) = x

(1)max−x

(1)min = 5−1,91=3,09 cu precizia ceruta, ε =0,01.

Deoarece ∆(1) > ε se trece la o noua eliminare prin repetarea algoritmului dela punctul 1(a) cu valoarea j = j + 1 = 2.

In tabelul 4.4 sunt prezentate rezultatele pentru urmatoarele eliminari pana la iden-tificarea punctului de minim cu precizia 0,01.

Tabela 4.4. Rezultatele aplicarii metodei sectiunii de aur.

j xmin x1 x2 xmax fob(x1) fob(x2) ∆

1 0 1,9100 3,0900 5,0000 0,1881 -0,9919 3,0900

2 1,9100 3,0904 3,8196 5,0000 -0,9918 -0,3282 1,9096

3 1,9100 2,6395 3,0901 3,8196 -0,8700 -0,9919 1,1801

4 2,6395 3,0903 3,3688 3,8196 -0,9918 -0,8640 0,7293

5 2,6395 2,9181 3,0902 3,3688 -0,9933 -0,9919 0,4507

6 2,6395 2,8117 2,9180 3,0902 -0,9645 -0,9933 0,2785

7 2,8117 2,9181 2,9838 3,0902 -0,9933 -0,9997 0,1721

8 2,9181 2,9838 3,0244 3,0902 -0,9997 -0,9994 0,1064

9 2,9181 2,9587 2,9838 3,0244 -0,9983 -0,9997 0,0657

10 2,9587 2,9838 2,9993 3,0244 -0,9997 -1,0000 0,0406

11 2,9838 2,9993 3,0089 3,0244 -1,0000 -0,9999 0,0251

12 2,9838 2,9934 2,9993 3,0089 -1,0000 -1,0000 0,0155

13 2,9934 2,9993 3,0030 3,0089 -1,0000 -1,0000 0,0096

Intervalul ramas dupa 13 eliminari este [2,9934; 3,003]. Rezultatul obtinut poate fiexprimat ca fiind x∗ = 2,9982 ± 0,0048. Valoarea minima a functiei obiectiv estef ∗ob = −1.

Page 69: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

59

Capitolul 5

Metode de urcare-coborare

Metodele numerice (directe) pentru identificarea solutiei unei probleme de opti-mizare cu doua sau mai mult de doua variabile de decizie se mai numesc si metodede urcare-coborare. Aceasta denumire provine de la analogia suprafetei de raspunsa functiei obiectiv (pentru situatia ın care avem doua variabile de decizie) cu re-lieful unei regiuni terestre pe care metodele directe se pot vizualiza sub forma unordeplasari catre extrem - urcare, pentru identificarea unui maxim, coborare, pentruidentificarea unui minim.

Metodele de urcare-coborare se caracterizeaza prin faptul ca fiecare deplasareurmareste doua scopuri majore:

• obtinerea unei valori ımbunatatite a functiei obiectiv;

• obtinerea de informatii utile cu scopul de a ımbunatati evolutiaulterioara.

Aplicarea acestor metode implica specificarea urmatoarelor elemente:

• o solutie initiala oarecare - x(0) (un set initial de valori alecomponentelor vectorului de decizie);

• precizia de determinare a punctului de extrem, ε;

• tipul de extrem cautat;

Algoritmul general al metodelor din aceasta clasa este urmatorul:

1. se calculeaza valoarea functiei obiectiv ın punctul initial - corespunzator so-lutiei initiale - f

(x(k));

2. se identifica (printr-un algoritm specific fiecarei metode ın parte) o nouasolutie a problemei de optimizare, x(k+1);

3. se calculeaza valoarea functie obiectiv ın noul punct, f(x(k+1)

);

Page 70: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

60 Metode de urcare-coborare

4. se compara valoare functiei obiectiv ın punctul initial al iteratiei curent (ce esteidentic cu solutia initiala pentru prima iteratie) cu valoarea functiei obiectivcorespunzatoare noii solutii: f

(x(k+1)

): f(x(k)):

a). daca noua solutie este favorabila (corespunde unei valori mai mici afunctiei obiectiv decat valoarea functiei obiectiv ın punctul initial aliteratiei - pentru un minim, respectiv corespunde unei valori mai maria functiei obiectiv decat ın punctul initial al iteratiei cand cautam unmaxim) - punctul curent devine punctul initial pentru o noua iteratie;

b). daca noua solutie este nefavorabila - se pastreaza punctul initial curent sise determina un alt punct de cautare si se revine la punctul 3 din cadrulalgoritmului ın cadrul iteratiei curente;

5. se verifica atingerea punctului de extrem cu precizia ε, folosind criteriile luiHimmelblau: ∣∣∣∣∣f

(x(k+1)

)− f

(x(k))

f (x(k))

∣∣∣∣∣ < ε (5.1a)

∣∣∣∣x(k+1) − x(k)

x(k)

∣∣∣∣ < ε (5.1b)

Utilizarea simultana a celor doua criterii (relatiile 5.1) este strict necesara de-oarece utilizarea doar a criteriului 5.1a ar putea conduce gresite ın cazul ın caresuprafata de raspuns prezinta un profil similar cu cea prezentata ın figura 5.1.a, iarutilizarea doar a criteriului 5.1b ar conduce la o concluzie gresita ın cazul ın caresuprafata de raspuns a functiei obiectiv prezinta un profil similar cu cel prezentatın figura 5.1.b.

-

6

x(k) x(k+1) x

f(x)

s sf(x(k))

f(x(k+1)

)...........................

.........................

.......................

.....................

....................

...................

..................... ...................... ....................... ........................ ......................... . .......................... ......................... ........................ ....................... .........................................

..................

.....

......................@R

minim

BBM

maxim

-

6

x(k)x(k+1) x

f(x)

ss

f(x(k))

f(x(k+1)

)

.......................

...

.......................

........................

..........................

...........................

.............................

...............................................................

.............................

...........................

..........................

........................

.......................

.........................@R

minim

Qk

maxim

a b

Figura 5.1. Criteriile lui Himmelblau.

Page 71: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

5.1. Metode care necesita evaluarea derivatelor 61

Metodele de urcare-coborare difera prin modul ın care se identifica un nou punctde cautare (punctul 2 din algoritm).

O clasificare simpla a metodelor de urcare-coborare se poate face prin gruparealor ın doua categorii:

A. metode care necesita evaluarea derivatelor functiei obiectiv;

B. metode care nu necesita evaluarea derivatelor functiei obiectiv;

Modelele matematice ale proceselor din ingineria chimica, asa cum am aratat anteri-or, sunt caracterizate printr-o complexitate mare. Datorita acestui motiv, obtinereaanalitica a expresiei derivatelor functiei obiectiv este o sarcina, ın general, foartegrea. Astfel, metodele din prima categorie prezinta o importanta mai redusa fatade metodele din a doua categorie.

5.1. Metode care necesita evaluarea

derivatelor functiei obiectiv

Metodele din aceasta categorie sunt caracterizate de necesitatea evaluarii derivatelorfunctiei obiectiv pentru a efectua deplasarea catre extrem. Desi acest lucru este,ın cele mai multe din situatii, greu ori imposibil de obtinut, aceste metode suntimportante pentru ıntelegerea principiului metodelor de urcare-coborare.

5.1.1. Metode de gradient

Metodele de gradient sunt metode de cautare numerica a punctului de extrem cefolosesc pentru deplasare pe suprafata de raspuns a functiei obiectiv, directia vec-torului gradient.

Vectorul gradient sau gradientul unei functii f(x) ın punctul x(k) este:

5f(x(k)) =

∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣

∂f(x)

∂x1

∂f(x)

∂x2

...

∂f(x)

∂xn

∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣x=x(k)

(5.2)

Gradientul unei functii prezinta urmatoarele proprietati (vezi figura 5.2):

1. gradientul este un vector ce defineste directia cu cea mai rapidacrestere ın punctul considerat, x(k);

Page 72: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

62 Metode de urcare-coborare

2. gradientul ıntr-un punct x(k) este normal la linia de contur afunctiei f(x(k) ce trece prin punctul respectiv.

Figura 5.2. Vectorul gradient pe suprafata de raspunsa unei functii reprezentate prin curbe de contur.

Tinand cont de aceste proprietati, directia gradientului este cea mai eficienta calede urmat pentru gasirea unui extrem, sensul pozitiv pentru gasirea unui maxim, iarsensul negativ pentru gasirea unui minim.

Metodele de gradient folosesc directia vectorului gradient pentru deplasareacatre extrem.

Directia vectorului gradient este o proprietate dependenta de pozitia punctuluiın care ea se calculeaza. Metodele de gradient folosesc o succesiune de deplasari pesuprafata de raspuns a functiei obiectiv, dupa fiecare deplasare, directia vectoruluigradient este reevaluata.

Deplasarile succesive pe suprafata de raspund au loc dupa relatia:

x(k+1) = x(k) ± λ(k)d(k)

(5.3)

unde: x - vectorul de decizie;λ - pasul/deplasarea pe suprafata de raspuns a functiei

obiectiv;

d - directia de deplasare;k, k + 1 - exponent ce indica pasul/iteratia.

Page 73: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

5.1. Metode care necesita evaluarea derivatelor 63

Vectorul d - directia de deplasare, este un vector normat avand directia si sensulvectorului gradient al functiei obiectiv ın punctul curent. Acesta se calculeaza prinımpartirea vectorului gradient cu norma sa conform relatei:

d(k)

=5f(x(k))∥∥5f(x(k))

∥∥ (5.4)

unde ∥∥5f(x(k))∥∥ =

√√√√ n∑i=1

(∂f(x)

∂xi

)2

x=x(k)

(5.5)

Pentru cautarea unui maxim, deplasarile au loc ın sensul dat de vectorul d caz ıncare ın relatia 5.3 avem semnul ’+’, iar ın cazul ın care cautarea are loc pentru unminim, semnul este ’−’, deoarece deplasarile au loc ın sens opus celei indicate devectorul gradient.

Pentru alegerea pasului de deplasare λ se utilizeaza doua variante:

A. se alege initial pentru λ o valoare fixa ce poate fi ınjumatatita lanevoie pentru identificarea cu precizia dorita a punctului deextrem;

B. se calculeaza o valoare optima a pasului, λ∗ pentru fiecaredeplasare prin rezolvarea unei probleme de optimizareunidimensionala ın care λ este variabila independenta.

5.1.2. Metoda gradientului cu pas constant

Metoda gradientului ce utilizeaza prima varianta de determinare a pasului de cau-tare se numeste metoda gradientului cu pas constant.

Aplicarea acestei metode implica specificarea urmatoarelor elemente:

• o solutie initiala oarecare x(0);

• precizia de determinare a punctului de extrem, ε;

• tipul de extrem cautat, minim sau maxim;

• valoarea initiala a pasului de cautare, λ(0).

Algoritmul metodei gradientului cu pas constant este urmatorul:

1. se calculeaza valoarea functiei obiectiv ın punctul initial f(x(k)), pentru prima

cautare k = 0;

2. se determina componentele vectorului gradient al functiei obiectiv ın punctulcurent cu ajutorul relatiei 5.2;

Page 74: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

64 Metode de urcare-coborare

3. se determina directia de deplasare d(k)

cu relatia 5.4;

4. se identifica un nou punct de cautare cu ajutorul relatiei 5.3 unde vom folosi’+’ daca extremul cautat este un maxim si ’−’ daca cautam un minim;

5. se calculeaza valoarea functie obiectiv ın noul punct, f(x(k+1)

);

6. se compara valoarea functiei obiectiv ın punctul initial al iteratiei curente cuvaloarea functiei obiectiv corespunzatoare noi solutii: f

(x(k+1)

): f(x(k)):

(a) daca noua solutie este favorabila punctul curent devine punctul initialpentru o noua iteratie (k = k+1) si se continua cu punctul 2 din algoritm;

(b) daca noua solutie este nefavorabila se determina un alt punct de cautareprin pastrarea directiei de cautare dar cu ınjumatatirea pasului (λ(k) =λ(k)/2) si se revine la punctul 4 al algoritmului ın cadrul iteratiei curente;

7. se verifica atingerea punctului de extrem cu precizia ε, folosind criteriile luiHimmelblau (relatiile 5.1). Daca cele doua criterii se ındeplinesc simultan,punctul curent este solutia problemei de optimizare, x∗ = x(k)± ε. In situatiaın care criteriile lui Himmelblau nu se ındeplinesc simultan, se continua cu onoua cautare (k = k + 1), revenindu-se la punctul 2 din cadrul algoritmuluisi la pasul de cautare initial λ(k) = λ(0).

5.1.3. Metoda gradientului cu pas optim

Metoda gradientului ce utilizeaza a doua varianta de determinare a pasului de ca-utare se numeste metoda gradientului cu pas optim.

Aplicarea acestei metode implica specificarea urmatoarelor elemente:

• o solutie initiala oarecare x(0);

• precizia de determinare a punctului de extrem, ε;

• tipul de extrem cautat, minim sau maxim.

Algoritmul metodei gradientului cu pas optim este urmatorul:

1. se calculeaza valoarea functiei obiectiv ın punctul initial f(x(k)), pentru prima

cautare k = 0;

2. se determina componentele vectorului gradient al functiei obiectiv ın punctulcurent cu ajutorul relatiei 5.2;

3. se determina directia de deplasare d(k)

cu relatia 5.4;

4. se calculeaza pasul optim λ∗(k) ın urmatorul mod:

Page 75: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

5.1. Metode care necesita evaluarea derivatelor 65

(a) din relatia 5.3 se exprima punctul de cautare nou ın functie de λ(k):

x(k+1) = x(k) ± λ(k)d(k)

=

∣∣∣∣∣∣∣∣∣∣∣∣∣

x(k)1 ± λ(k)d

(k)1

x(k)2 ± λ(k)d

(k)2

...

x(k)n ± λ(k)d

(k)n

∣∣∣∣∣∣∣∣∣∣∣∣∣(5.6)

(b) prin ınlocuirea variabilelor de decizie x1, x2, . . . xn ın expresia functieiobiectiv cu relatiile obtinute prin 5.6 se obtine o functie obiectiv ın carevariabila independenta este λ(k):

fob(x(k+1)) = fob(λ

(k))

(c) se rezolva problema de optimizare unidimensionala (folosind o metodaanalitica ori o metoda numerica - de eliminare), obtinandu-se pe aceastacale λ∗(k):

optim

λ(k)

fob(λ(k)) =⇒ λ∗(k)

(d) pe baza relatiei 5.6 se identifica solutia cea mai favorabila x(k+1) pentruiteratia curenta;

5. se calculeaza valoarea functiei obiectiv ın noul punct, f(x(k+1)

);

6. se verifica atingerea punctului de extrem cu precizia ε, folosind criteriile luiHimmelblau (relatiile 5.1). Daca cele doua criterii se ındeplinesc simultan,punctul curent este solutia problemei de optimizare, x∗ = x(k)± ε. In situatiaın care criteriile lui Himmelblau nu se ındeplinesc simultan, se continua cu onoua cautare (k = k + 1), revenindu-se la punctul 2 din cadrul algoritmului.

Aplicarea practica a metodelor de gradient este posibila si ın situatiile limitativeın care nu se poate obtine expresia analitica a derivatelor prin derivarea numericaa functiei obiectiv.

Aproximarea numerica a valorii derivatelor se poate face utilizand chiar relatiade definitie a derivatelor:

δf(x(k))

δxi

≈ f(x(k)1 , . . . , x

(k)i + ε, . . . , x

(k)n )− f(x

(k)1 , . . . , x

(k)i , . . . , x

(k)n )

ε(5.7)

unde i = 1, 2, . . . , n si ε o valoare finita.

Page 76: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

66 Metode de urcare-coborare

5.2. Metode care nu necesita evaluarea

derivatelor functiei obiectiv

Metodele din acesta categorie nu necesita evaluarea derivatelor functiei obiectiv, uti-lizand doar evaluari ale functiei obiectiv ın puncte favorabil alese. In cadrul acesteicategorii exista cele mai multe si mai performante metode de urcare-coborare.

5.2.1. Metoda Pattern Search

Metoda Pattern Search utilizeaza ca principiu de cautare testarea dupa directiiparalele cu axele de coordonate. Metoda utilizeaza initial ın fiecare iteratie, o cau-tare locala urmata de o cautare extinsa (accelerata). Cautarea locala are loc cu pasulλ pe fiecare directie de cautare prin modificarea la un moment dat a valorii uneisingure variabile de decizie. Modificarea valorii variabilei de decizie are loc, initialın sens pozitiv, ulterior, daca nu apare o ımbunatatire a valorii functiei obiectivın sens negativ. Intotdeauna, valoarea cea mai favorabila a functiei obiectiv estepastrata pentru a obtine o ımbunatatire ulterioara.

Conditiile de aplicare a metodei implica specificarea urmatoarelor elemente:

• o solutie initiala oarecare x(0);

• precizia de determinare a punctului de extrem, ε;

• tipul de extrem cautat, minim sau maxim;

• pasul de cautare locala, λ(0).

Algoritmul metodei Pattern-Search este:

1. se calculeaza valoarea functiei obiectiv ın punctul initial f(x(k)), pentru prima

cautare k = 0;

2. se trece la etapa de cautare locala, de la directia de cautare 1, . . . i, . . . n ceare loc dupa urmatoarele reguli:

a). initial, cautarea are loc ın sens pozitiv:

x(k+1)i = x

(k)i + λ(k) (5.8)

b). se calculeaza valoarea functiei obiectiv ın punctul curent;

c). se compara valoare calculata a functiei obiectiv cu valoare din punctulde baza curent:

Page 77: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

5.2. Metode care nu necesita evaluarea derivatelor 67

i. daca valoarea functiei obiectiv este favorabila, se trece la urmatoareadimensiune, i = i+1 si se continua cu punctul 3 din algoritm. Dacavaloarea functiei obiectiv nu este favorabila, se face o cautare ın sensopus, cu relatia:

x(k+1)i = x

(k)i − λ(k) (5.9)

ii. se calculeaza valoarea functiei obiectiv ın punctul curent;

iii. daca valoare functiei obiectiv nu este favorabila, se pastreaza punctulde baza curent pe directia lui xi si se trece la cautarea dupa o nouadimensiune, i = i + 1;

iv. daca valoare functiei obiectiv este favorabila se adopta punctul cu-rent ca punct de baza si se trece la cautarea pe directia urmatoare.i = i + 1 pana cand i = n;

3. se trece la etapa de cautare extinsa (accelerata) prin repetarea deplasarii ob-tinute prin cautarea locala multiplicata cu un coeficient pozitiv supraunitarα (ın general α = 2 . . . 4);

a). daca cautarea extinsa se soldeaza cu un succes, aceasta etapa de cautarese repeta multiplicand pasul total efectuat ın cautarea curenta cu o va-loare pozitiva supraunitara α;

b). cautarea accelerata se repeta pana la obtinerea unui insucces, caz ın careiteratia curenta este considerata ıncheiata;

4. se trece la testarea atingerii punctului de extrem, prin utilizarea criteriilor luiHimmelblau;

a). daca conditiile lui Himmelblau nu se ındeplinesc simultan, se trece lao noua etapa de cautare prin k = k + 1 si se revine la punctul 2 dinalgoritm;

b). daca conditiile lui Himmelblau se ındeplinesc, solutia este data de:

x∗ = x∗(k) ± ε

Daca cautarea locala se termina fara nici o deplasare din punctul de baza sereduce pasului de cautare cu ajutorul relatiei:

λ =λ

2(5.10)

si se reia cautarea locala curenta.

Exemplu

Pornind din punctul x(0) = [5; 5] si cu pasul λ(0) = 1 sa se rezolve:

minx1,x2

f(x1, x2) = 4x21 + 2x2

2 + 4x21x2 + 2x2 + 1 (5.11)

Page 78: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

68 Metode de urcare-coborare

Rezolvare

Aplicand algoritmul metodei Pattern-Search, calculam valoarea functiei obiectiv ınpunctul de start: f(x(0)) = f(5, 5) = 261. Calculele efectuate ın primele 3 iteratiisunt redate ın tabelul 5.1.

Tabela 5.1. Aplicarea metodei Pattern-Search (primele 3 iteratii).

Iteratie Operatia punctul x1 x2 f(x) Observatii

0 solutia initiala x(0) 5 5 261 start

1 testare pe directia lui x1 x(1)1 6 5 325 I

4 5 305 I

testare pe directia lui x2 x(1)2 5 6 305 I

5 4 221 S

accelerare x(1)a 5 3 185 S

5 1 125 S

5 -3 53 S

5 -11 101 I

2 testare pe directia lui x1 x(2)1 6 -3 85 I

4 -3 29 S

testare pe directia lui x2 x(2)2 4 -2 37 I

4 -4 25 S

accelerare x(2)a 3 -5 17 S

1 -7 61 I

3 testare pe directia lui x1 x(3)1 4 -5 25 I

2 -5 17 I

testare pe directia lui x2 x(3)2 3 -4 13 S

accelerare x(3)a 3 -3 13 I

Obs.: Notatii efectuate: I - insucces, S - succes.

Dupa cele 3 iteratii efectuate, punctul cel mai favorabil atins este cel de coor-donate x(3) = [3;−4] unde valoarea functiei obiectiv este fob = 13. Algoritmulcontinua pana cand cautarea locala se termina cu insucces pe toate directiile decautare (tabelul 5.2).

Page 79: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

5.2. Metode care nu necesita evaluarea derivatelor 69

Tabela 5.2. Aplicarea metodei Pattern-Search (iteratiile 4-5).

Iteratia Operatia punctul x1 x2 f(x) Observatii

4 testare pe directia lui x1 x(4)1 4 -4 25 I

2 -4 9 S

testare pe directia lui x2 x(4)2 2 -3 5 S

accelerare x(4)a 1 -2 1 S

-1 0 5 I

5 testare pe directia lui x1 x(5)1 2 -2 5 I

0 -2 5 I

testare pe directia lui x2 x(5)2 1 -1 1 I

1 -3 5 I

Dupa 5 pasi, se obtin insuccese ın toate ıncercarile din cadrul cautarii locale.Algoritmul de cautare continua prin ınjumatatirea pasului de cautare. In conti-nuare, prin reduceri succesive ale pasului de cautare (ın conditiile amintite mai sus,adica ın situatia ın care cautarea locala se soldeaza cu esec) se ajunge la ındeplinireaconditiilor lui Himmelblau.

Solutia optima identificata este: x∗ =[0,5; -1] si f ∗ob = 0.

5.2.2. Metoda Rosenbrock

Metoda Rosenbrock poate fi privita ca o dezvoltare a metodei Pattern Search. Dife-renta majora fata de Pattern Search consta ın faptul ca ın loc de a efectua explorarilelocale pe directii fixe si paralele cu axele de coordonate, acestea au loc dupa un setde directii ortogonale ce se recalculeaza dupa fiecare iteratie pe baza celei maifavorabile directii de deplasare curente.

Pentru aplicarea metodei lui Rosenbrock avem nevoie de:

• un set de valori initiale ale vectorului de decizie, x(0)0 ;

• un set de n vectori unitari ortogonali ce definesc directiile initiale

de explorare, d(0)

1 , d(0)

2 , . . . , d(0)

n ;

• un vector al marimii pasilor de deplasare, λ(0)

;

• precizia dorita de identificare a solutiei, ε;

Algoritmul de minimizare al lui Rosenbrock este urmatorul:

Page 80: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

70 Metode de urcare-coborare

1. se calculeaza valoarea functiei obiectiv ın punctul de start al iteratiei, fob(x(0)0 );

2. se trece la faza de cautare locala ın care, pentru fiecare directie de cautare,i = 1, . . . , n se parcurg urmatoarele etape:

a). se calculeaza valoarea functiei obiectiv ın punctul x(k)i + λ

(k)i d

(k)

i undeinitial i = 1;

b). daca:

f(x

(k)i + λ

(k)i d

(k)

i

)< f

(x

(k)i

)pasul respectiv este considerat un succes si x

(k)i = x

(k)i + λ

(k)i d

(k)

i . Pasulpe directia respectiva este amplificat cu coeficientul pozitiv supraunitarα, λ

(k)i = α · λ(k)

i .

Daca ınsaf(x

(k)i + λ

(k)i d

(k)

i

)≥ f

(x

(k)i

)se considera pasul respectiv un insucces iar λ

(k)i = β ·λ(k)

i unde β este uncoeficient subunitar negativ;

c). pastrand ıntotdeauna cel mai bun punct atins, se continua cu urmatoareadirectie de cautare i = i+1. Dupa epuizarea directiilor de cautare, candi = n, se revine la prima directie de cautare i = 1 si se reiau cautarilelocale pana cand pe fiecare directie de cautare se obtine un succes urmatde un insucces;

3. se noteaza cu Λ(k)j suma algebrica a tuturor pasilor λ

(k)j,p , p = 1, 2, . . . , P efec-

tuati cu succes:

Λ(k)J =

P∑p=1

λ(k)j,p (5.12)

4. se verifica atingerea punctului de extrem verificand ındeplinirea criteriilor luiHimmelblau;

5. daca nu s-a atins punctul de extrem se trece la calcularea noului set al direc-tiilor de explorare pentru o noua iteratie, pentru care coordonatele punctuluide plecare sunt: x

(k+1)0 = x(k)

n .

Pentru calculul noilor directii se definesc, ın prealabil, urmatorii vectori:

A(k+1)1 = Λ

(k)1 d

(k)1 + Λ

(k)2 d

(k)2 + . . . + Λ

(k)n d

(k)n

A(k)2 = Λ

(k)2 d

(k)2 + . . . + Λ

(k)n d

(k)n

...

A(k)n = Λ

(k)n d

(k)n

(5.13)

Page 81: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

5.2. Metode care nu necesita evaluarea derivatelor 71

De remarcat ca A(k)1 reprezinta vectorul de la x

(k)0 la x

(k+1)0 , A

(k)2 de la x

(k)1 la

x(k+1)0 s.a.m.d.

Se determina prima directie de explorare pentru iteratia urmatoare d(k+1)1 ca

fiind paralela cu vectorul deplasarii totale A(k)1 efectuate ın iteratia anterioara.

d(k+1)1 =

A(k)2∥∥∥A(k)1

∥∥∥ (5.14)

Celelalte n − 1 directii sunt reciproc ortogonale cu d(k+1)1 , fiind calculate cu

ajutorul metodei lui Gram-Schmidt. Relatiile utilizate sunt:

B(k)j = A

(k)j −

j−i∑i=1

[(A

(k)j

)T

d(k+1)i

]d

(k+1)i

si

d(k+1)j =

B(k)j∥∥∥B(k)j

∥∥∥ j = 2, . . . , n (5.15)

Obs.: Iteratia initiala porneste de la directiile d(0)

i paralele cu axele decoordonate. Valori uzuale ale coeficientilor α = 3, β = −0,5.

Efectul calcularii unui nou set de directii de explorare la fiecare iteratie consta

de fapt ıntr-o rotire a sistemului anterior de directii de explorare, astfel ıncat d(k+1)

1

sa coincida cu directia unei vai, eliminandu-se efectele negative de interactiune avariabilelor (aceste efecte apar cand ın functia obiectiv exista termeni sub forma deproduse de variabilele xi).

5.2.3. Algoritmi pe baza de hiperpoliedre exploratoare

Exista o serie de metode ce se folosesc pentru identificarea punctului de extrem, deobiecte de cautare. Din acesta categorie de metode fac parte si metodele ce foloseschiperpoliedre drept obiecte de cautare.

Metoda poliedrului

Metoda poliedrului, numita si metoda Box, utilizeaza o figura geometrica regulata,numita Simplex, definita ın spatiul n-dimensional ca un corp geometric cu n + 1varfuri, avand o distanta constanta ıntre doua varfuri alaturate.

In spatiul de cautare bidimensionala (problema de optimizare cu doua variabilede decizie), obiectul de cautare, Simplex -ul se prezinta sub forma unui triunghi echi-lateral, iar ıntr-un domeniu de cautare tridimensionala (probleme cu trei variabilede decizie), obiectul de cautare este un tetraedru.

Page 82: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

72 Metode de urcare-coborare

Plasarea ın domeniul de cautare a hiperpoliedrului se face cu ajutorul a douaconstante, p si q ce sunt calculate cu expresiile:

p =a

n√

2

(n− 1 +

√n + 1

)q =

a

n√

2

(−1 +

√n + 1

) (5.16)

unde: a - dimensiunea laturii poliedrului de cautare;n - dimensiunea problemei de optimizare (numarul de variabile de

decizie).

Pozitionarea varfurilor corpului geometric de cautare se face utilizand schema dintabelul 5.3.

Tabela 5.3. Schema de pozitionare a varfurilor corpului de cautare.

Varful j x(j)1 x

(j)2 . . . x

(j)n−1 x

(j)n Observatii

0 x(0)1 x

(0)2 . . . x

(0)n−1 x

(0)n varful origine

1 x(0)1 + p x

(0)2 + q . . . x

(0)n−1 + q x

(0)n + q

2 x(0)1 + q x

(0)2 + p . . . x

(0)n−1 + q x

(0)n + q

......

.... . .

......

n− 1 x(0)1 + q x

(0)2 + q . . . x

(0)n−1 + p x

(0)n + q

n x(0)1 + q x

(0)2 + q . . . x

(0)n−1 + q x

(0)n + p

Pentru situatia ın care avem doua variabile de decizie (n = 2) avem expresiile(vezi figura 5.3.a):

p =

√3 + 1

2√

2a = 0,9657 a

q =

√3− 1

2√

2a = 0,2587 a

Algoritmul metodei poliedrului (Box) este urmatorul:

1. se pozitioneaza corpul geometric de cautare, cu varful 0 ın punctul initial alcautarii;

2. se calculeaza valorile functiei obiectiv ın cele n + 1 varfuri ale corpului decautare;

Page 83: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

5.2. Metode care nu necesita evaluarea derivatelor 73

-

6

x(0)1

x1

x(0)2

x2

s��������s

��������s@@@

@@

@

-� 0,9657 a

6

?

0,9

657

a

6

?

0,2

587

a@@

@@I

@@

@R

a

a). pozitionarea simplexului

-

6

x(R)1

x1

x(R)2

x2

s������sP1

������sP2

@@

@@

@

s

x(N)1

x(N)2

��

��

����

b). eliminarea varfului respins

Figura 5.3. Cautarea cu ajutorul simplexului.

3. se sorteaza varfurile ın ordinea valorilor functiei obiectiv, de la cea mai favo-rabila valoare la cea mai nefavorabila;

4. se identifica varful ce se elimina pe baza urmatoarelor reguli:

a). se elimina varful cel mai nefavorabil cu exceptia situatiei ın care prineliminarea acestui varf se revine ıntr-un punct deja testat;

b). ın situatia ın care situatia 4 nu este posibila, se elimina varful anteriordin lista de varfuri formata la punctul 3 din algoritm;

Obs. In nici o situatie nu se elimina varful cel mai favorabil !!!

5. algoritmul se reia pana cand pe baza regulilor prezentate, nu mai poate fiımbunatatita valoarea functiei obiectiv;

6. se testeaza atingerea punctului de extrem comparand deplasarea totala efec-tuata, considerand punctul final al deplasarii, varful curent cel mai favorabil;

7. daca conditiile lui Himmelblau nu se ındeplinesc, cautarea se reia, punctulinitial al cautarii fiind cel mai bun varf curent. Plecand de la acest punct, se re-construieste corpul geometric de cautare cu dimensiunea laturii ınjumatatite,a = a/2.

Eliminarea unui varf al corpului de cautare are loc prin oglindirea varfului e-liminat ın jurul laturii opuse a hiperpoliedrului. Acest lucru, din punct de vederematematic are loc pe baza relatiei:

x(N)i =

[2

n

(n∑

j=0

x(j)i − x

(R)i

)]− x

(R)i (5.17)

Page 84: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

74 Metode de urcare-coborare

pentru i = 1, 2, . . . , n, unde N este varful nou, R reprezinta varful respins.Pentru situatia ın care n = 2 relatia 5.17 devine:

x(N)i =

[(2∑

j=0

x(j)i − x

(R)i

)]− x

(R)i = x

(P1)i + x

(P2)i − x

(R)i

unde varfurile P1 si P2 sunt varfurile pastrate (vezi figura 5.3.b).

Metoda poliedrului extensibil

Metoda SIMPLEX (elaborat de Nelder si Mead) este o dezvoltare a metodei po-liedrului. Caracteristica principala consta ın utilizarea unui set de n + 1 puncteexploratoare, ce formeaza ın spatiul de cautare varfurile unui hiperpoliedru. Astfelpentru n = 2 hiperpoliedrul este un triunghi, pentru n = 3, un tetraedru, ...

La fiecare iteratie varful cel mai nefavorabil (ın care functia obiectiv are cea maislaba valoare) este ınlocuit cu un punct corespunzator unei valori mai avantajoasea functiei obiectiv. Inlocuirea se realizeaza prin proiectarea punctului nefavorabilprin centrul de greutate a celorlalte varfuri ale hiperpoliedrului de explorare.

Pentru iteratia k, minimizarea functiei obiectiv decurge dupa urmatorul algo-ritm:

1. se determina care din varfurile hiperpoliedrului de explorare corespunde valoriicelei mai mari si respectiv valorii celei mai mici a functiei obiectiv astfel:

f(x

(k)M

)= max

[f(x

(k)1

), f(x

(k)2

), . . . , f

(x

(k)n+1

)](5.18)

si

f(x(k)

m

)= min

[f(x

(k)1

), f(x

(k)2

), . . . , f

(x

(k)n+1

)](5.19)

2. se calculeaza coordonatele centrului de greutate xW al varfurilor hiperpolie-drului, exceptand varful x

(k)W :

x(k)W =

1

n + 1

[(n+1∑j=1

x(k)j

)− x

(k)M

](5.20)

3. se ”reflecta” punctul de coordonate x(k)M prin centrul de greutate xW , rezul-

tand:

x(k)R = x

(k)W + α

(x

(k)W − x

(k)M

)(5.21)

unde coeficientul de reflexie α > 0. Se calculeaza valoarea functiei obiectiv ın

punctul de reflexie, f(x

(k)R

).

Page 85: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

5.2. Metode care nu necesita evaluarea derivatelor 75

4. daca f(x

(k)R

)≤ f

(x

(k)m

), se trece la o extindere a reflexiei:

x(k)E = x

(k)R + γ

(x

(k)R − x

(k)W

)(5.22)

unde γ > 1 - coeficientul de extindere. In situatia ın care f(x

(k)E

)< f

(x

(k)m

),

se ınlocuieste x(k)M cu x

(k)R , dupa care se trece la iteratia urmatoare: k = k + 1.

In situatia ın care f(x

(k)R

)> f

(x

(k)m

)algoritmul continua ın urmatorul mod:

5. daca, ın afara de x(k)M exista cel putin ınca un punct x

(k)O pentru care:

f(x

(k)R

)< f

(x

(k)O

)< f

(x

(k)M

)(5.23)

se ınlocuieste x(k)M cu x

(k)R , dupa care se trece la iteratia urmatoare: k = k + 1.

6. daca ınsa un astfel de punct nu exista, se efectueaza o contractie a reflexiei:

x(k)C = x

(k)W + β

(x

(k)M − x

(k)W

)(5.24)

unde 0 < β < 1 este coeficientul de contractie. Se ınlocuieste x(k)M cu x

(k)C ,

dupa care se trece la iteratia urmatoare: k = k + 1.

7. daca reflexia a fost total nefavorabila, f(x

(k)R

)≥ f

(x

(k)M

)se efectueaza o

reducere a hiperpoliedrului de explorare conform relatiei:

x(k)j = x(k)

m + 0, 5(x

(k)j − x(k)

m

)j = 1, . . . , n + 1 (5.25)

Inainte de trecerea la o noua iteratie (revenire a pct.1 din algoritm) se efectueazatestele de stop. Un criteriu propus de Nelder si Mead consta ın satisfacerea relatiei:

1

n + 1

n+1∑j=1

√[f(x

(k)j

)− f

(x

(k)W

)]2≤ ε (5.26)

unde ε reprezinta precizia ceruta. Coeficientii α, β, γ au o influenta considerabilaasupra numarului total de evaluari ale functiei obiectiv pana la atingerea punctuluide extrem cu precizia dorita. Nelder si Mead propun urmatoarele valori: α = 1,β = 0, 5 si γ = 2.

Exemplu

Pornind din punctul x(0) = [5; 5] cu dimensiunea poliedrului de cautare de a = 1,sa se rezolve urmatoarea problema de minimizare prin metoda poliedrului:

minx1,x2

f(x1, x2) = 4x21 + 2x2

2 + 4x21x2 + 2x2 + 1 (5.27)

Page 86: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

76 Metode de urcare-coborare

Rezolvare

Aplicand algoritmul metodei poliedrului (Box) efectuam urmatoarele calcule:

1. pozitionam poliedrul de cautare ın punctul initial (p =0,9657 si q =0,2587);

2. identificam varful cel mai slab, ın acest caz este varful 1;

3. eliminam acest varf prin reflectare ın jurul laturii opuse;

4. se reia pana cand nu se mai poate avansa cu dimensiunea curenta a poliedruluide cautare;

Rezultatele pentru prima etapa de deplasare sunt prezentate ın tabelul 5.4.

Tabela 5.4. Aplicarea metodei poliedrului - pasul 1.

Varful j x(j)1 x

(j)2 f(x(j)) Observatii

0 5,0000 5,0000 261,00 varful origine1 5,9657 5,2587 334,672 5,2587 5,9657 320,213 4,2930 5,7070 249,274 4,0343 4,7413 197,055 3,3273 5,4483 188,066 3,0686 4,4826 142,837 2,3616 5,1896 136,578 2,1029 4,2239 98,349 1,3959 4,9309 94,8110 1,1372 3,9652 63,5811 0,4302 4,6722 62,7812 0,1715 3,7065 38,5413 -0,5355 4,4135 40,4714 -0,7942 3,4478 23,2415 -0,0872 2,7408 20,5716 -1,0529 2,4821 12,2617 -0,3459 1,7751 8,8718 -1,3116 1,5164 7,5519 -0,6046 0,8094 3,43 varful cel mai bun20 -1,5703 0,5507 9,11

5. se testeaza atingerea punctului de extrem prin verificarea criteriilor de stopale lui Himmelblau. Deplasarea totala efectuata ın acest pas este din punctul

Page 87: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

5.2. Metode care nu necesita evaluarea derivatelor 77

initial x(0) = [5; 5] ın punctul x(1) = [−0,6046; 0,8094]. Aceste criterii nu seındeplinesc pentru deplasarea curenta;

6. se reduce dimensiunea poliedrului de cautare la valoarea a =0,5 si se reiacautarea de la punctul x(1) = [−0,6046; 0,8094];

Rezultatele pentru a doua etapa de deplasare sunt prezentate ın tabelul 5.5.

Tabela 5.5. Aplicarea metodei poliedrului - pasul 2.

Varful j x(j)1 x

(j)2 f(x(j)) Observatii

0 -0,6046 0,8094 3,43 varful initial1 -0,1217 0,9387 4,242 -0,4752 1,2922 5,373 -0,2511 0,4559 2,124 -0,7339 0,3265 3,065 -0,3804 -0,0269 1,566 0,1024 0,1024 1,307 -0,0269 -0,3804 0,578 0,4559 -0,2511 0,999 0,3265 -0,7339 0,07 varful cel mai bun10 -0,1563 -0,8633 1,40

7. algoritmul se reia pana cand se ındeplinesc criteriile lui Himmelblau. Lafiecare reluare, daca nu se atinge punctul de extrem, se reduce dimensiuneapoliedrului de cautare.

Rezultatele pentru a treia etapa de deplasare sunt prezentate ın tabelul 5.6.

Tabela 5.6. Aplicarea metodei poliedrului - pasul 3.

Varful j x(j)1 x

(j)2 f(x(j)) Observatii

0 0,3265 -0,7339 0,077 varful initial1 0,5679 -0,6692 0,3272 0,3912 -0,4925 0,3413 0,5033 -0,9107 0,017 varful cel mai bun4 0,2618 -0,9753 0,2045 0,5679 -0,6692 0,327

Page 88: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

78 Metode de urcare-coborare

Solutia problemei de optimizare este x∗ = [0,5;−1] cu valoarea minima a functieiobiectiv f ∗ob = 0. Aceasta solutie este atinsa dupa 22 de reduceri succesive ale di-mensiunii poliedrului de cautare.

In figura 5.4 se prezinta modul ın care poliedrul de cautare se deplaseaza pesuprafata de raspuns a functiei obiectiv, redata prin curbe de contur. Prin reducerilesuccesive ale obiectului de cautare, identificarea solutiei este posibila cu preciziaceruta.

Figura 5.4. Deplasarea poliedrului de cautare pe suprafatade raspuns a functiei obiectiv.

Page 89: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

79

Capitolul 6

Metode de programare

In foarte multe situatii, forma functiei obiectiv si a restrictiilor ıntr-o problemade optimizare corespunde unei forme caracteristice. In astfel de situatii se pot aplicametode analitice de optimizare, denumite si metode de programare.

6.1. Programarea liniara

Problemele de optimizare ın care se minimizeaza functii obiectiv de forma:

minx

fob =n∑

i=1

cixi (6.1)

supusa la sistemul de restrictii:

n∑i=1

aijxi ≤ bj j = 1, 2, . . . , l (6.2)

n∑i=1

aijxi = bj j = l + 1, . . . ,m (6.3)

undexi ≥ 0 i = 1, 2, . . . , n (6.4)

sunt abordate prin programare liniara.Astfel de probleme de optimizare sunt ın general tipice sistemelor economice

cum ar fi problemele de alocare optima de resurse, optimizarea transporturilor,calcularea concentratiilor si a amestecurilor, optimizarea deciziilor, ...

In ingineria chimica astfel de probleme sunt mai rare, ın mare parte datorate fap-tului ca procesele respective nu pot fi redate prin expresii liniare. Totusi problemede optimizare cu expresii ale functiei obiectiv si ale restrictiilor de tipul aratat, apar

Page 90: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

80 Metode de programare

ın ingineria chimica ın general ın situatia ın care modelele matematice ale fenome-nelor sunt liniarizare ori rezulta din analiza de regresie ıntr-o astfel de forma. Deasemenea, sunt comune si problemele de calcul concentratii ori amestecuri, ce ınanumite situatii duc tot la probleme rezolvabile prin programare liniara.

Importanta rezolvarii problemelor de programare liniara deriva din faptul caprin aceasta metoda pot fi rezolvate probleme cu nu numar deosebit de mare devariabile si restrictii, permitand pe aceasta cale abordarea optimizari unor sistememari (grupuri de instalatii, platforme industriale, ...).

6.1.1. Rezolvare geometrica

Conform relatiei 6.1, prin derivarea functiei obiectiv ın raport cu variabilele dedecizie se obtine:

∂f

∂xi

= ci (6.5)

Se observa ca aplicarea metodelor analitice clasice nu este posibila deoarece deri-vatele nu sunt dependente de variabilele de decizie ci sunt egale cu niste constante.Pentru identificarea unei solutii ıntr-o astfel de situatie, singura posibilitate este caaceasta sa fie situata pe limita domeniului admis definit de sistemul de restrictii.Pentru a vedea daca o astfel de ipoteza se adevereste, rezolvam grafic urmatoareaproblema:

Exemplu

O firma dispune de doua tehnologii ce permit obtinerea a doua produse,P1 si P2 utilizand doua materii prime, M1 si M2. Consumurile specificedin cele doua materii prime sunt de 1 kg M1/kg P1 si 3 kg M2/kg P1,respectiv 2 kg M2/kg P1 si 1 kg M2/kg P2.

Daca beneficiile obtinute prin valorificarea produselor fabricate sunt de150 mii lei/kg P1 respectiv 100 mii lei/kg P2 sa se determine cantitatilece urmeaza a fi obtinute din cele doua produse utilizand 100 kg materieprima M1 si 150 kg materie prima M2 ın asa fel ıncat beneficiul obtinutsa fie maxim.

Rezolvare

Formularea matematica a acestei probleme de alocare optima a resurselor este datade functia obiectiv:

maxx

fob = 150 x1 + 100 x2 (6.6)

supusa la restrictiile:x1 + 2 x2 ≤ 100

3 x1 + x2 ≤ 150(6.7)

Page 91: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

6.1. Programarea liniara 81

x1, x2 ≥ 0

unde x1 si x2 reprezinta cantitatile obtinute din cele doua produse, P1 si P2.Rezolvarea geometrica, ın acest caz este posibila, fiind vorba de un domeniu de

cautare ın spatiul bidimensional. In figura 6.1 se observa ca sistemul restrictiilordelimiteaza un domeniu de cautare admis sub forma unui poligon ABCD. Functiaobiectiv este o dreapta ın spatiul bidimensional ce sufera o operatie de translatareın functie de valoarea sa.

-

6

x1

x2

0 50 100

50

100

150

JJ

JJ

JJ

JJ

JJ

JJ

JJ

JJ

JJ

JJ

JJ

JJ

JJ

JJ

JJ

JJ

x1 +

2x2 ≤

100

BB

BB

BB

BB

BB

BB

BB

BB

BB

BB

BB

BB

BB

BB

BB

BB

3x1+x

2≤150

HHHHH

HHHHHH

HHHHHHH

HHHH

fob =

15m

il.lei

f ∗ob =

9m

il.lei

BB

BB

BBB

HHHHHH

HH

�+��3

JJ

JJ

JJ

JJ

JJ

JJ

JJ

JJ

JJ

JJ

s

A D

C

B

domeniuladmis

x∗1

x∗2

Figura 6.1. Rezolvarea grafica ın programarea liniara.

Din reprezentarea grafica se observa ca solutia optima este cea data de un varfal domeniului de cautare, varful C de coordonate sunt x∗1 = 40 si x∗2 = 30. Valoareafunctiei obiectiv pentru care dreapta prin care ea este reprezentata intersecteazadomeniul de cautare este de 9 milioane lei si reprezinta beneficiul maxim realizabil.

Page 92: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

82 Metode de programare

Din acest exemplu putem observa ca exista 4 situatii posibile:

1. solutie unica - cazul cel mai dorit, identic cu cea ce se observa ınexemplul anterior (figura 6.1). In aceasta situatie exista o solutieunica ce corespunde unui varf al domeniului de cautare.

2. solutie multipla (figura 6.2.a) - apare atunci cand functia obiectivprin translatare se poate suprapune peste una din restrictii. Inaceasta situatie toate punctele de-a lungul acestei restrictii, pelimitele dictate de domeniul de cautare, vor avea ca rezultatacceasi valoare a functiile obiectiv. Toate punctele din acestdomeniu (x1, x2) vor fi solutii ale problemei de optimizare.

a. Solutie multipla

-

6

•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

aaaaaaaa

CCCCCCCCCC

CCCCCCCCCC

CCCCCCCCCC

���9

b. Solutie nemarginita

-

6

•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

����������

PPPPPPPPP

PPPPPPPPPP

����

c. Solutie imposibila

-

6

••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

������������••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••!!!!!!!!!!

•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

Figura 6.2. Solutii posibile ın programarea liniara.

3. solutie nemarginita (figura 6.2.b) - daca sistemul de restrictiiformeaza un domeniu de cautare nemarginit atunci solutieproblemei este la infinit.

4. solutie imposibila (figura 6.2.c) - daca sistemul de restrictiiformeaza un domeniu de cautare vid, problema nu are solutie.

Problemele de optimizare rezolvabile prin programare liniara sunt mult preacomplexe pentru a putea fi rezolvate geometric. Rezolvarea acestor probleme seface prin metode algebrice.

6.1.2. Rezolvare algebrica

Algoritmul algebric de rezolvare a problemelor de programare liniara include douaetape:

Pasul 1 determinarea initiala a unei solutii de baza admise;

Pasul 2 schimbarea solutiei de baza admise, cu o alta, pana ladeterminarea punctului de optim.

Page 93: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

6.1. Programarea liniara 83

Pasul 1

In cadrul acestui pas, se efectueaza urmatoarele operatii:

- aducerea problemei la forma standard.

Transformam restrictiile de tip inegalitate ın restrictii de tip egalitate conformrelatiilor:

n∑i=1

aijxi ≤ bj =⇒n∑

i=1

aijxi + xn+j = bj sau

n∑i=1

aijxi ≥ bj =⇒n∑

i=1

aijxi − xn+j = bj pentru j = 1, 2, . . . , l

(6.8)

prin adaugarea unor variabile fictive xn+1, . . . , xn+l cu respectarea conditieide nonnegativitate xn+j ≥ 0 pentru j = 1, 2, . . . , l.

In urma acestei etape obtinem o problema de optimizare ın care avem N =n + l variabile de decizie (n variabile de decizie initiale plus cele l variabilede decizie fictive adaugate pentru convertirea restrictiilor de tip inegalitate larestrictii de tip egalitate) supuse la m restrictii de tip egalitate.

- identificarea unei solutii de baza initiale.

Sistemul de restrictii include m ecuatii si N variabile. Ca urmare N−m varia-bile pot fi alese arbitrar, celelalte m variabile fiind astfel complet determinate.Daca luam cele N −m variabile egale cu zero si calculam celelalte m variabiledin sistemul de restrictii, obtinem o solutie a sistemului ce se numeste solutiede baza, ın care cele m variabile determinate constituie baza solutiei de baza,iar cele N − m variabile egale cu zero constituie non-baza solutiei de baza.Daca solutia de baza astfel determinata are elementele din baza non-negative,solutia de baza se numeste solutie de baza admisa, si pentru domeniul decautare corespunde unui varf.

Pasul 2

Pentru ımbunatatirea solutiei initiale se efectueaza urmatoarele operatii:

- rearanjarea restrictiilor si a functiei obiectiv.

Pornind de la restrictii, se exprima variabilele din non-baza solutiei de baza ınfunctie de variabilele din baza solutiei de baza. De asemenea se rearanjeazafunctia obiectiv ın asa fel ıncat sa fie exprimata doar ın functie de variabileledin baza solutie de baza.

Page 94: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

84 Metode de programare

- deplasarea ıntr-un alt varf al domeniului de cautare cu scopul de a amelioravaloarea functiei obiectiv.

Aceasta deplasare se va efectua ıntr-un varf alaturat al domeniului de cautareprin modificarea unei variabile din non-baza. Pentru alegerea variabilei ceurmeaza sa fie modificata se analizeaza expresia functiei obiectiv.

Pentru a mari valoarea functiei obiectiv, cu scopul de a maximiza valoareasa, trebuie sa crestem valoarea variabilei cu coeficient pozitiv (ın situatia ıncare avem mai multe variabile cu coeficient pozitiv, cea mai buna cale estealegerea variabilei cu coeficientul pozitiv cel mai mare).

Pentru a micsora valoarea functiei obiectiv, cu scopul de a minimiza valoareasa, trebuie sa marim valoarea variabilei cu coeficient negativ (ın situatia ıncare avem mai multe variabile cu coeficient negativ se alege aceea variabila dedecizie ce prezinta valoarea negativa cea mai mare).

Marirea valorii acestei variabile se face pana la limita la care nici una dinvariabilele din baza nu devine negativa.

Pe aceasta cale se identifica o noua solutie de baza admisa ce corespunde unuivarf alaturat varfului curent al domeniului de cautare, varf ın care avem ceamai favorabila valoare a functiei obiectiv.

Pasul 2 este reluat atat timp cat exista posibilitatea unei ımbunatatiri a valoriifunctiei obiectiv.

Acest lucru este posibil cat timp ın expresia functiei obiectiv exista variabile dedecizie cu coeficient pozitiv ın situatia cautarii unui maxim, sau cat timp existavariabile de decizie cu coeficient negativ, ın situatia cautarii unui minim.

6.1.3. Algoritmul Simplex

Algoritmul Simplex reprezinta o algoritmizare a metodei algebrice descrise anteriorpentru a putea fi utilizat pe calculator. Se porneste de la un tablou ın care suntintroduse toti coeficientii din functia obiectiv si din sistemul de restrictii, denumittablou simplex (tabelul 6.1).

Se porneste de la o solutie fesabila/admisa initiala, pentru care functia obiectivsi restrictiile sunt scrise sub forma:

−fob = −n+m∑i=1

cixi = −bm+1 (6.9)

n+m∑i=1

aijxi = bj, j = 1, . . . ,m (6.10)

Page 95: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

6.1. Programarea liniara 85

Tabela 6.1. Tabloul Simplex.

x1 x2 . . . xn xn+1 xn+1 . . . xn+l b

a1,1 a1,2 . . . a1,n 1 0 . . . 0 b1

a2,1 a2,2 . . . a2,n 0 1 . . . 0 b2...

.... . .

......

.... . .

......

al,1 al,2 . . . al,n 0 0 . . . 1 bl

al+1,1 al+1,2 . . . al+1,n 0 0 . . . 0 bl+1

al+2,1 al+2,2 . . . al+2,n 0 0 . . . 0 bl+2...

.... . .

......

.... . .

......

am,1 am,2 . . . am,n 0 0 . . . 0 bm

c1,1 c1,2 . . . c1,n 0 0 . . . 0 fob

Daca x1, x2, ..., xn sunt variabilele din non-bazei (care au valoarea zero) iarxn+1, xn+2, ..., xn+m sunt variabilele din baza (cele calculate pe baza restrictiilorın functie de variabilele din non-baza) se ıntocmeste corespunzator solutiei initialede baza (ec. 6.9 si 6.10) urmatorul tabel:

ITERATIA 0 x1 x2 . . . xn b

xn+1 a11 a12 . . . a1n b1

xn+2 a21 a22 . . . a2n b2

. . . . . . . . . . . . . . . . . .xn+m am1 am2 . . . amn bm

f −c1 −c2 . . . −cn bm+1

Trecerea de la un varf la altul al hiperpoliedrului ce delimiteaza domeniul decautare admis pana la varful ce corespunde solutiei problemei de optimizare cores-punde cu o serie de transformari ın cadrul acestui tabel de date. Pentru fiecareiteratie ın cadrul algoritmului Simplex se fac urmatoarele operatii:

1. se determina coloana corespunatoare variabilei ce va intra ın baza;

2. se determina linia corespunzatoare a variabilei ce iese din baza;

3. se interschimba poztia variabilelor respective si se recalculeazacoeficientii din tabel astfel ıncat sa corespunda noii solutii debaza.

Detailarea algoritmului este urmatoarea:

Page 96: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

86 Metode de programare

1. se va cauta ın caz de maximizare ın ultima linie a tabelului coeficientul cucea mai mare valoare negativa (ın caz de minimizare - coeficientul cu cea maimare valoare pozitiva).Coloana corespunzatoare indica variabila care va intra ın baza si se mainumeste si coloana pivot ;

2. pentru determinarea variabilei ce iese din baza se identifica pe coloana pivo-tului pozitia coeficientului pozitiv pentru care raportul dintre termenul libercorespunzator si coeficient este cel mai mic.Acest coeficient este denumit pivot. Linia corespunzatoare acestui coeficientcorespunde variabilei ce urmeaza sa iasa din baza si se mai numeste si liniapivot.

3. Conform schimbarii reciproce a pozitiei relative a celor doua variabile se vorinterschimba simbolurile lor din prima linie respectiv prima coloana a tabelu-lui.Recalcularea coeficientilor se fac pe baza urmatoarelor reguli:

• noua valoare a pivotului este 1/αpq

• noile valori ale celorlalti coeficienti de pe linia pivotului suntαpj/αpq

• noile valori ale celorlalti coeficienti de pe coloana pivotului sunt−αiq/αpq

• noile valori ale celorlalti coeficienti sunt αij − αpjαiq/αpq .(ın aceste relatii p este indicele liniei pivotului, q indicele coloanei pivo-tului, αpq valoarea pivotului, iar αij valoarea coeficientului situat pelinia i, coloana j, unde i 6= q si j 6= p ).

Repetarea acestor etape este facuta pana cand toti coeficientii de pe ultimalinie a tabelului situate pe coloanele variabilelor au acelasi semn (pozitiv pentrumaximizare, negativ pentru minimizare).

Exemplu

Sa se maximizeze functia obiectiv

fob = 2x1 + 3x2 (6.11)

supusa la restrictiile−x1 + 2x2 ≤ 6

2x1 + x2 ≤ 82x1 − x2 ≤ 4

(6.12)

si x1, x2 ≥ 0.

Page 97: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

6.1. Programarea liniara 87

Rezolvare

Prin introducerea variabilelor fictive x3, x4 si x5 se obtine:

fob = 2 x1 + 3 x2 + 0 x3 + 0 x4 + 0 x5 (6.13)

supusa la restrictiile−x1 + 2x2 + x3 = 6

2x1 + x2 + x4 = 82x1 − x2 + x5 = 4

(6.14)

si x1, x2, x3, x4 si x5 ≥ 0.Solutia de baza admisa evidenta este data de non-baza x1 = 0, x2 = 0, iar din

sistemul de restrictii rezulta valorile variabilelor din baza solutiei de baza admisex3 = 6, x4 = 8, x5 = 4.

Problema de optimizare este transpusa ın tabel, conform algoritmului Simplex,ın felul urmator:

ITERATIA 0 x1 x2 b

x3 −1 2 6x4 2 1 8x5 2 −1 4

f −2 −3 0

ITERATIA 1 x1 x3 b

x2 −12

12

3

x4 2− 1·(−1)2

= 52

−12

8− 1·62

= 5

x5 2− (−1)·(−1)2

= 32

12

4− 6·(−1)2

= 7

f −2− 32

= −72

32

0− 6·(−3)2

= 9

ITERATIA 2 x4 x3 b

x2 −12

(−2

5

)= 1

512−(−1

2

) (−1

2

)25

= 25

3 + 512

25

= 4

x152

−12

25

= −15

525

= 2

x532

(−2

5

)= −3

512− 3

2

(−1

2

)25

= 1110

7− 532

25

= 4

f −72

(−2

5

)= 7

532−(−7

2

) (−1

2

)25

= 45

9− 5(−7

2

)25

= 16

Cautarea se termina deoarece toti coeficientii variabilelor din functia obiectiv suntpozitivi. Solutia problemei este: x∗1 = 2, x∗2 = 4, x∗3 =0 si f ∗ob = 16.

Page 98: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

88 Metode de programare

6.2. Programarea neliniara

Putem considera o problema generala de forma:

minx

fob(x1, x2, . . . , xn) (6.15)

supusa la restrictiile:

hj(x1, x2, . . . , xn) ≤ 0 j = 1, 2, . . . , l

gj(x1, x2, . . . , xn) = 0 j = l + 1, . . . ,m(6.16)

unde:xi,min ≤ xi ≤ xi,max i = 1, 2, . . . , n (6.17)

si functiile f , h si g sunt neliniare ın raport cu variabilele de decizie xi. Rezolvareaunei astfel de problema se poate aborda prin programare neliniara.

Astfel de probleme apar, ın general, atunci cand procesele de optimizat suntdescrise prin modele neliniare.

Pentru ınceput se prezinta modul de rezolvare a unor forme particulare ale pro-blemei generale descrise de functia obiectiv din expresia 6.15 si sistemul de restrictiidat de ecuatiile 6.16 si 6.17.

6.2.1. Programarea patratica

Problemele de optimizare de forma:

minx

fob =n∑

i=1

cixi +1

2

n∑i=1

n∑k=1

dikxixk (6.18)

supuse la sistemul de restrictii liniare:

n∑i=1

aijxi ≤ bj j = 1, 2, . . . , l

n∑i=1

aijxi = bj j = l + 1, . . . ,m(6.19)

unde:xi ≥ 0 i = 1, 2, . . . , n (6.20)

sunt abordate prin programare patratica.Astfel de probleme apar deseori ın economie sau ın stiinta, cum ar fi cele din

domeniul investitiilor sau cele din stiinta ın care sistemul supus optimizarii poate ficel mai bine redat printr-un model cu dependenta patratica.

Pentru rezolvarea acestui tip de probleme de optimizare cel mai utilizat algoritmeste cel al lui White. In principiu, acesta metoda consta ın rezolvarea unei probleme

Page 99: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

6.3. Programarea dinamica 89

echivalente de programare liniara ce rezulta prin aplicarea conditiilor lui Kuhn siTucker asupra problemei initiale. Daca considera minimizarea functiei obiectiv de-scrise prin relatia 6.18 supusa la sistemul de m restrictii liniare date de relatiile6.19 precum si cu respectarea conditiei de nonnegativitate a variabilelor de deciziespecificate de relatia 6.20, aplicand teoremele generale ale lui Kuhn si Tucker seobtine:

n∑k=1

dikxk + ci

m∑j=1

λjaij − vi = 0 i = 1, 2, . . . , n (6.21)

n∑i=1

aijxi = bj j = 1, 2, . . . ,m (6.22)

xivi = 0 i = 1, λ, . . . , n (6.23)

λj ≥ 0 j = 1, 2, . . . ,m (6.24)

vi ≥ 0 i = 1, 2, . . . , n (6.25)

xi ≥ 0 i = 1, 2, . . . , n (6.26)

ın care λj sunt multiplicatori Lagrange asociati restrictiilor, iar v1 sunt variabile decompensare.

6.3. Programarea dinamica

In cazul ın care conducerea sau proiectarea optima a unui proces nu se limiteazala stabilirea unui set de valori optime pentru parametrii de stare, ci la stabilireaunor functii de variatie a acestor parametri, suntem pusi ın fata unei probleme deoptiune:

Care este modul ın care trebuie sa varieze parametri, astfel ıncat optimuldeterminat ın fiecare etapa de desfasurare a procesului sa ne duca la unoptim global?

Aceasta este problema proceselor cu parametri distribuiti. De exemplu:

• functionarea optima a unui reactor tubular nu ınseamna stabilirea unei singurevalori de temperatura (T ∗) ci a unei functii (T ∗(z)), astfel ıncat ın fiecaresectiune a reactorului sa avem temperatura optima potrivita acelei sectiuni.

• ıntr-o instalatie alcatuita din mai multe utilaje, s-ar putea ca optimul globalsa nu corespunda cu optimul fiecarei portiuni (utilaj) din instalatie.

In astfel de situatii, se impune alegerea unor politici optime - functie de timp saude spatiu care ia locul variabilelor independente din cazurile anterioare. Trebuie sadeterminam optimul unei functii de functii.

Page 100: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

90 Metode de programare

6.3.1. Principiul de optimalitate

Programarea dinamica se aplica ın situatiile ın care trebuie luate o serie de deciziicare trebuie sa optimizeze un sistem compus dintr-o serie de etape/portiuni dis-tincte, cu conditia ca aceste decizii luate pentru o anumita etapa sa nu afectezeetapele anterioare.

Principiul de optimalitate care sta la baza programarii dinamice este acela ca”o politica optima are proprietatea ca, oricare ar fi starea initiala si decizia initiala,deciziile ramase trebuie sa constituie o strategie optima ın raport cu starea carerezulta din prima decizie”.

Programarea dinamica presupune ca sistemul de optimizat este aciclic si poate fidefalcat ıntr-o serie de stadii sau de trepte ce se succed ın timp ori ın spatiu (figura6.3).

1 2 i n-1 n- - - . . . - - . . . - - -? ? ? ? ?

d1 d2 di dn−1 dn

x0 x1 x2 xi−1 xi xn−2 xn−1 xn

Figura 6.3. Structura unui sistem aciclic pentruaplicarea programarii dinamice.

xi pentru i = 0, . . . , n - vector de staredi pentru i = 1, . . . , n - vector de decizie.

Orice decizie luata la o treapta ori stadiu, conform structurii aciclice a sistemului,nu poate influenta decat treptele/stadiile situate la aval de ea.

Pe baza principiului optimalitatii, enuntata de R. Bellman, mersul general alprogramarii dinamice ıncepe cu optimizarea ultimei trepte/stadii.

Astfel, conform exemplului prezentat ın figura 6.4, optimizarea unui sistem aci-clic prin programare dinamica ıncepe cu optimizarea ultimului stadiu (stadiul 5)prin determinarea deciziei optime pe acest stadiu functie de vectorul de stare de laiesirea stadiului anterior. In etapa urmatoare de optimizare se considera sistemulformat din ultimele doua stadii. In aceasta subproblema de optimizare, se deter-mina decizia optima pe penultimul stadiu (stadiul 4) functie de vectorul de starede la iesirea stadiului anterior (stadiul 3).

In fine, ın ultima etapa de optimizare se trece la optimizarea ıntregului sistem(ce include cele 5 stadii) prin determinarea deciziei optime pe stadiul 1 ın functiede vectorul de stare la intrarea sistemului.

In urma optimizarii, ın functie de vectorul de intrare, se determina conform so-lutiei obtinute prin aplicarea algoritmului de optimizare, decizia optima pe stadiul1. Aceasta decizie determina vectorul de iesire de pe stadiul 1. In functie de acestvector se determina decizia de pe stadiul 2... In final se determina decizia optimape ultimul stadiu ın functie de vectorul de stare la iesirea de pe penultimul stadiu.

Page 101: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

6.3. Programarea dinamica 91

1 2 3 4 5

#"

!- - - - - -

Treapta Voptimizareaıntregului sistem

1 2 3 4 5

#"

!- - - - - -

Treapta IVoptimizareaultimelor patru etape

1 2 3 4 5

#"

!- - - - - -

Treapta IIIoptimizareaultimelor trei etape

1 2 3 4 5

#"

!- - - - - -

Treapta IIoptimizareaultimelor doua etape

1 2 3 4 5

#" !- - - - - -

Treapta Ioptimizareaultimei etape

1 2 3 4 5- - - - - -Sistemulaciclicde optimizat

Figura 6.4. Schema programarii dinamice pentruun sistem format din 5 etape.

Preıncalzitor Reactor Separator- - - -

? ? ?

Debit agentde ıncalzire

Debit agentde schimb termic

Debit abur pt.coloana de distilare

cost abur︸ ︷︷ ︸ cost apa racire︸ ︷︷ ︸ cost abur︸ ︷︷ ︸cost energie utilizata de ıntreaga instalatie︸ ︷︷ ︸

Variabile dedecizie locale

Criteriu localde optimizare

Criteriu globalde optimizare

Figura 6.5. Linie tehnologica formata din 3 utilaje.

O astfel de schema de optimizare duce la optimizarea ansamblului celor n stadiinu separat a fiecarei stadii din care se compune sistemul! Prin acesta strategie deabordare, o problema de optimizare ce poate fi descompusa ıntr-o secventa de n

Page 102: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

92 Metode de programare

stadii, fiecare stadiu avand un vector de decizie poate fi descompus ıntr-o secventade n probleme de optimizare pe fiecare problema avand de determinat un singurvector de decizie.

542

564

541

243

623

564

423

735

564

2

3

6

2

3

1

4

5

3

3

5

2

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

PreıncalzitorReactor

Separator

Figura 6.6. Costurile energieiutilizate ın cadrul instalatiei.

Pentru o mai usoara ıntelegere a principiu-lui programarii dinamice, se prezinta exemplulurmator.

Exemplu

Fie un sistem de trei utilaje ce formeaza o linietehnologica (figura 6.5).

Conform criteriului de optimizare urmarit,costurile energiei utilizate ın instalatie suntprezentate ın figura 6.6.

Obs. Pentru o mai usoara ıntelege-re a principiului optimului s-a con-siderat ca fiecare utilaj poate fi o-perat ın 3 moduri distincte la carecorespund 3 nivele de costuri cuenergia utilizata. Astfel preıncal-zitorul poate fi operat ın modurileP1, P2 si P3, reactorul ın moduri-le R1, R2 si R3, iar separatorul ınmodurile S1, S2 si S3.

Pentru un astfel de sistem, exista trei mo-dalitati de operare cu scopul obtinerii unui op-tim global:

A. Operarea fiecarui utilaj la optimul local

Acest mod de operare implica identifica-rea fiecarui optim local (cost minim deoperare al fiecarui utilaj). Modurile cuconsumuri minime de energie corespundoperarii la nivelurile P ∗=2, R∗=1 siS∗=1 cu costul total al energiei utilizatede C=5. Operarea optima a instalatieiar trebui sa includa operarea optima afiecarui utilaj ın parte, ceea ce, conform datelor existente, nu este posibila. Inconcluzie un astfel de mod de operare nu se poate obtine.

Page 103: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

6.3. Programarea dinamica 93

B. Operare cu identificarea modului optim de operare pornind de la intrare

Utilizarea acestui mod de operare pentru ıntreaga instalatie necesita identifi-carea modului de operare a fiecarui utilaj pornind de la optimizarea operariiprimului utilaj ın sensul fluxurilor. In cazul datelor de care dispunem acestmod de operare se poate face pe calea P1 −→ R2 −→ S3 ce corespunde valoriiminime a costului energiei de C=2+3+4=9.

C. Operare cu identificarea modului optim pe baza principiului optimalitatii

Acest mod de operare identifica operarea optima ıncepand de la ultimul utilajın functie de operarea utilajelor anterioare.

Astfel pentru cele 9 moduri de operare al reactorului (rezultate din combina-rea celor 3 moduri de operare ale preıncalzitorului si reactorului) identificammodurile optime de operare ale fazei de separare. De exemplu pentru modulI de operare al reactorul, separatorul trebuie sa fie operat ın modul I (costminim C=4), daca reactorul este operat ın modul II separatorul trebuie sa fieoperat ın modul II (cost minim C=3), iar daca reactorul este operat ın modulIII, separatorul trebuie sa fie operat ın modul II (cost minim C=2). . .

In etapa urmatoare de optimizare se optimizeaza complexul format din reac-tor+separator functie de modul de operare al preıncalzitorului. Astfel, dacapreıncalzitorul este operat ın modul I, reactorul trebuie sa fie operat ın modulIII deoarece astfel reactorul+preıncalzitorul prezinta un cost de operare minim(C=4+2=6). Pentru modul II de operare al preıncalzitorului, operarea op-tima a reactorului este ın modul III la care corespunde un minim al costuluienergiei (C=2+2=4).

In fine, pentru modul III de operare al preıncalzitorului, reactorul trebuie safie operat ın modul III (cost minim C=2+2=4).

In ultima etapa de minimizare, ın functie de caracteristicile materiei prime sestabileste modul optim de operare al preıncalzitorului.

Conform datelor prezentate, modul optim de operare al preıncalzitorului co-respunde modului III pentru care costul energiei utilizate ın instalatie esteminim (C=3+2+2=7). Toate celelalte moduri de operare prezinta valori maimari ale costului energiei utilizate ın proces.

Se observa ca solutia gasita prin aplicarea principiului optimalitatii (cazul C )asigura singura cale viabila de optimizare, toate celelalte moduri de identificare asolutiei optime duc ori la combinatii imposibile de moduri de operare ale utilajelor(cazul A) ori la operarea cu un cost total mai ridicat (cazul B).

Page 104: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

94 Metode de programare

6.3.2. Formularea matematica a programarii dinamice

Consideram un sistem serial prezentat ın figura 6.7 unde, ın conformitate cu prin-cipiul optimalitatii, optimizarea ıncepe de la ultimul stadiu, numerotarea stadiilors-a facut de la ultimul stadiu catre primul stadiu.

n n-1 i 2 1- - - . . . - - . . . - - -? ? ? ? ?

dn dn−1 di d2 d1

xn+1 xn xn−1 xi+1 xi x2 x1 x0

Figura 6.7. Sistem optimizat prin programare dinamica.

Se observa ca pentru fiecare stadiu i exista un vector de intrare xi+1, un vectorde iesire xi si un vector de decizie di.

Conditiile necesare pentru aplicarea principiului optimalitatii sunt:

1. existenta pentru fiecare treapta a unui model matematic care sa permita cal-cularea componentelor vectorului de iesire xi functie de vectorul de intrarexi+1 si vectorul deciziilor di:

xi = gi

(xi+1, di

)pentru i = 1, . . . , n (6.27)

2. functia obiectiv globala a sistemului fob sa poata fi descompusa ıntr-o sumade functii obiectiv locale fob,i:

fob =n∑

i−1

fob,i

(xi+1, xi, di

)pentru i = 1, . . . , n (6.28)

Daca aceste conditii sunt ındeplinite se poate trece la aplicarea programarii dina-mice pe respectivul sistem cu scopul determinarii deciziilor locale optime (d1

∗, d2

∗,

. . . ,di∗, . . . ,dn

∗) ın asa fel ıncat functia obiectiv globala fob sa prezinte un extrem.

Etapa 1

In aceasta etapa se optimizeaza sistemul format din ultimul stadiu prin determinareadeciziei locale optime d

∗1 ın functie de starea sistemului dupa deciziile luate ın sta-

diile anterioare data de vectorul x2.Functia obiectiv a acestei subprobleme de optimizare este:

Fob,1 = fob,1

(x2, x1, d1

)(6.29)

Din modelul matematic se poate exprima:

x1 = g1

(x2, d1

)(6.30)

Page 105: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

6.3. Programarea dinamica 95

astfel ıncat prin substitutie, functia obiectiv devine:

Fob,1 = fob,1

(x2, d1

)(6.31)

Utilizand o metoda de optimizare analitica ori numerica adecvata formei sub-problemei de optimizare se poate determina decizia locala optima sub forma uneifunctii de vectorul marimilor de intrare pe treapta 1:

d∗1 = h1 (x2) (6.32)

expresia valorii optime a functiei obiectiv fiind F ∗ob,1 (x2).

Etapa 2

Se optimizeaza sistemul format din ultimele doua stadii prin determinarea decizieilocale optime d

∗2 functie de starea sistemului dupa deciziile luate pe stadiile ante-

rioare. Functia obiectiv a acestei subprobleme de optimizare este:

Fob,2 = fob,2

(x3, x2, d2

)+ fob,1

(x2, x1, d1

)=

= fob,2

(x3, x2, d2

)+ Fob,1

(6.33)

Deoarece din modelul matematic al stadiului 2 se poate exprima:

x2 = g2

(x3, d2

)(6.34)

si expresia solutiei optime pentru stadiul 1 este deja determinata, rezulta:

Fob,2 = fob,2

(x3, d2

)+ F ∗

ob,1 (x3) (6.35)

Utilizand o metoda de optimizare analitica ori numerica adecvata formei sub-problemei de optimizare se poate determina decizia locala optima sub forma uneifunctii de vectorul marimilor de intrare pe treapta 2:

d∗2 = h2 (x3) (6.36)

expresia valorii optime a functiei obiectiv fiind F ∗ob,2 (x3).

Etapa i

Prin generalizare, ın cadrul acestei etape de aplicare a programarii dinamice seoptimizeaza sistemul format din ultimele i stadii prin determinarea deciziei localeoptime d

∗i functie de starea sistemului dupa deciziile luate pe stadiile anterioare dat

de vectorul xi+1.Functia obiectiv a acestei subprobleme de optimizare este:

Page 106: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

96 Metode de programare

Fob,i = fob,i

(xi+1, xi, di

)+

i−1∑j=1

fob,j

(xj, xj−1, dj

)=

= fob,i

(xi+1, xi, di

)+ Fob,i−1

(6.37)

Deoarece din modelul matematic al stadiului i se poate exprima:

xi = gi

(xi+1, di

)(6.38)

si expresia solutiei optime pentru treptele 1, . . . ,i−1 este deja determinata, rezulta:

Fob,i = fob,i

(xi+1, di

)+ F ∗

ob,i−1 (xi+1) (6.39)

Se determina, ın conditiile aratate la etapele anterioare, decizia locala optimasub forma unei functii de vectorul marimilor de intrare pe treapta i:

d∗i = hi (xi+1) (6.40)

expresia valorii optime a functiei obiectiv fiind F ∗ob,i (xi+1).

Etapa n

In final se considera ıntreg sistemul, determinand decizia locala optima d∗n ın functie

de vectorul marimilor de intrare a sistemului xn+1. Functia obiectiv pentru aceastaetapa este:

Fob,n = fob,n

(xn+1, xn, dn

)+

n−1∑j=1

fob,j

(xj, xj−1, dj

)=

= fob,n

(xn+1, xn, dn

)+ Fob,n−1

(6.41)

Deoarece din modelul matematic al stadiului n se poate exprima:

xn = gn

(xn+1, dn

)(6.42)

si expresia solutiei optime pentru treptele 1, . . . ,n−1 este deja determinata, rezulta:

Fob,n = fob,n

(xn+1, dn

)+ F ∗

ob,n−1 (xn+1) (6.43)

Se determina decizia locala optima si expresia functiei obiectiv functie de vec-torul xn+1:

d∗n = hn (xn+1) si F ∗

ob,n (xn+1) (6.44)

Deoarece vectorul marimilor de intrare xn+1 este cunoscut se pot identifica va-lorile numerice corespunzatoare ale vectorilor de decizie d

∗i pentru toate stadiile

i = 1, . . . , n.

Obs. Principiul optimalitati se poate extinde prin descompunere nu nu-mai la sistemele neramificate ci si la sisteme ramificate, de tip divergentori convergent.

Page 107: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

97

Capitolul 7

Algoritmi genetici

Algoritmi genetici se bazeaza pe utilizarea urmatoarelor principii:

• selectia se bazeaza pe similitudini cu . . .

Page 108: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”
Page 109: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

99

Capitolul 8

Utilizare MATLAB ın optimizare

Unul din cele mai utilizate software-uri ın prelucrarea numerica a datelor esteMATLAB de la firma The MathWorks, Inc. (S.U.A.).

Foarte raspandit si utilizat ındeosebi ın mediul universitar, MATLAB prezintafacilitati exceptionale de reprezentare si prelucrare a datelor sub forma de tablourimultidimensionale.

Aditional functiilor din setul de baza, exista o multitudine de toolbox 1-uri cecontin seturi de functii grupate pe un anumit domeniu de utilizare. Prin acestetoolbox -uri se extinde domeniul de utilizare a MATLAB-ului pentru:

- Statistical Toolbox - prelucrari si calcule statistice;

- Control System Toolbox - conducere procese;

- System Identification Toolbox - identificare de proces;

- Chemometrics Toolbox - chemometrie;

- Model Predictive Control Toolbox - conducere model predictiva;

- Symbolic Math Toolbox - calcul simbolic;

- Partial Differential Equation Toolbox - rezolvari de sisteme de ecuatii cuderivate partiale;

- Data Acquisition Toolbox - achizitie de date;

- Optimization Toolbox - optimizare.

Mediul de lucru MATLAB permite si sustine rezolvarea problemelor de optimizareprintr-o serie de functii ce sunt incluse ın setul de functii de baza, precum si prinutilizarea functiilor din Optimization Toolbox.

1toolbox - set specializat de functii MATLAB, livrate separat de MathWorks

Page 110: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

100 Utilizare MATLAB ın optimizare

8.1. Functii MATLAB utilizate ın optimizare

Setul de baza de functii MATLAB include un numar restrans de functii utilizabile ınrezolvarea unor probleme simple de optimizare. Aceste functii sunt:

fmin - minimizare functii obiectiv scalare

fmins - minimizare functii obiectiv multivariabile

Apelarea acestor functii este posibila prin definirea functiei obiectiv direct laapelare, ori prin definirea lor sub forma unor functii externe MATLAB (fisiere m).

Toate aceste functii realizeaza minimizare. Pentru maximizare se definesc func-tiile obiectiv ın forma -f unde f este functia obiectiv de maximizat.

8.1.1. Setarea valorilor de control ale optimizarii

Pentru buna utilizare a acestor functii, ın general este necesara specificarea unorparametri de control.

Acesti parametri de control pot fi specificati prin vectorul options. Acest vectorpoate fi citit/scris astfel ıncat valorile curente pot fi modificate, adaptand valorileimplicite la necesitatile rezolvarii problemei particulare de optimizare.

8.1.2. Vectorul options

Vectorul options contine o serie de parametri utilizati de functiile de optimizare.Daca la apelarea unei astfel de functii vectorul este gol, se va genera un set de valoriimplicite.

Daca oricare element al acestui vector este zero la acestea se aloca valorile im-plicite. Daca la apelarea functiilor de optimizare vectorul este prezent dar are unnumar mai mic de 18 elemente, elementele ramase preiau valorile implicite.

Parametri vectorului options sunt prezentati ın tabelul 8.1.De exemplu daca dorim sa modificam numarul maxim de evaluari ale functiei

obiectiv descrisa ın fisierul nFob.m de la valoarea implicita de 500 la 800, folosimurmatoarele comenzi:

options(14)=800;

fmin(’nFob’,xmin,xmax,options)

Modificarea preciziei implicite de determinare a solutiei unei probleme de opti-mizare poate fi facuta ın modul urmator:

options(2)=1e-6;

fmin(’nFob’,xmin,xmax,options)

Page 111: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

8.1. Functii MATLAB utilizate ın optimizare 101

Tabela 8.1. Elementele vectorului options.

Nr. Functie Implicit Descriere

1 afisare 0 controleaza informatiile intermediare afisateın timpul optimizarii: 0 - nu se afiseaza nimic,1 - se afiseaza valori intermediare, −1 - sesuprima afisarea mesajelor de avertizare

2 precizia lui x 1e-4 criteriul de terminare ce indica cea mai slabaprecizie ceruta pentru variabile/variabilele dedecizie

3 precizia lui f 1e-4 criteriul de terminare ce indica cea mai slabaprecizie ceruta pentru functia obiectiv

...

10 nr. evaluari f.obiectiv

valoare returnata dupa apelul unei functii deoptimizare

...

13 restrictii egali-tate

0 permite specificarea numarului de restrictii detip egalitate

14 numar maximde evaluari

100 n numarul maxim de evaluari ale functiei obiec-tiv. Acesta valoare este setata la 100 n unden este numarul de variabile de decizie. Pentrufunctii obiectiv de o singura variabila numarulmaxim de evaluari este implicit de 500.

...

8.1.3. Optimizarea functiilor obiectivnesupuse la restrictii

Cele mai simple probleme de optimizare sunt cele ın care functia obiectiv nu estesupusa la nici un fel de restrictii. Abordarea acestor probleme simple de optimizareeste posibila ın MATLAB prin utilizarea functiilor fmin si fmins.

Functia fmin

Identifica solutia unei probleme de optimizare de o singura variabila de decizie deforma:

minx

f(x)

Page 112: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

102 Utilizare MATLAB ın optimizare

unde x este variabila de decizie, supusa la restrictia xmin ≤ x ≤ xmax ın care xmin

si xmax reprezinta limitele domeniului de cautare.Modul de apelare este:

x = fmin(’nFob’,xmin,xmax)

x = fmin(’nFob’,xmin,xmax,options)

x = fmin(’nFob’,xmin,xmax,options,P1,P2,...)

[x,options] = fmin(...)

unde: x - solutia problemei;nFob - un sir de caractere ce contine numele functiei ce calcu-

leaza valoarea functiei obiectiv, sau o expresie de tip sirde caractere prin care definim functia obiectiv;

xmin - limita inferioara a domeniului de cautare;xmax - limita superioara a domeniului de cautare;options - vectorul parametrilor de control. Din cele 18 elemente,

fmin utilizeaza doar elementele 1, 2, si 14;P1,P2,... - parametri ce sunt direct transferati la functia nFob.

Exemplu

Sa se rezolve urmatoarea problema de optimizare:

minx

fob = x2 − 6x + 8

pe intervalul de cautare (0, 5).

Rezolvare

Avem doua posibilitati de rezolvare ın MATLAB:

1. Definim o functie externa MATLAB ın care scriem functia obiectiv.

function y = f(x);

y = x^2 - 6*x + 8;

Acest text este salvat ıntr-un fisier cu extensia *.m. Fie acest fisier fob.m.In continuare, de la linia de comanda MATLAB sau dintr-un script MATLAB seapeleaza functia fmins ın modul urmator:

xmin = 0; % limita inferioara de cautare

xmax = 5; % limita superioara de cautare

x = fmin(’fob’,xmin,xmax) % apelare rezolvare

Solutia obtinuta este:

Page 113: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

8.1. Functii MATLAB utilizate ın optimizare 103

x =

3

fob(x)

ans =

-1

2. Apelam functia fmins avand ca argument o expresie sir de caractere ın caredefinim functia obiectiv:

xmin = 0;

xmax = 5;

x = fmin(’x^2-6*x+8’,xmin,xmax)

Solutia gasita este identica cu cea din prima varianta de lucru.

Functia fmins

Identifica solutia unei probleme de optimizare multivariabila de forma:

minx

f(x)

unde x este vectorul de decizie. Functia fmin gaseste minimul unei functii scalarede mai multe variabile, pornind de la o estimata initiala.Modul de apelare este:

x = fmins(’nFob’,x0)

x = fmins(’nFob’,x0,options)

x = fmins(’nFob’,x0,options,[])

x = fmins(’nFob’,x0,options,[],P1,P2,...)

[x,options] = fmins(...)

unde: x - solutia problemei de minimizare;nFob - un sir de caractere ce contine numele functiei ce calcu-

leaza valoarea functiei obiectiv, sau o expresie de tip sirde caractere prin care definim functia obiectiv;

x0 - vectorul de decizie initial;options - vectorul parametrilor de control. Din cele 18 elemente,

fmins utilizeaza doar elementele 1, 2, 3, 6, 7, 9, 14, 16si 17;

[] - vector vid pastrat pentru compatibilizare cu celelaltefunctii de optimizare;

P1,P2,... - parametri ce sunt direct transferati la functia nFob.

Functia fmins utilizeaza pentru identificarea solutiei algoritmul SIMPLEX.

Page 114: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

104 Utilizare MATLAB ın optimizare

Exemplu

Sa se rezolve urmatoarea problema de optimizare:

minx

fob = 4x21 + 2x2

2 + 4x1x2 + 2x2 + 1

Rezolvare

Avem doua posibilitati de rezolvare ın MATLAB:

1. Definim o functie externa MATLAB ın care scriem functia obiectiv.

function y = f(x);

y = 4*x(1)^2 + 2*x(2)^2 + 4*x(1)*x(2) + 2*x(2) + 1;

Acest text este salvat ıntr-un fisier cu extensia *.m. Fie acest fisier fob.m.In continuare, de la linia de comanda MATLAB sau dintr-un script MATLAB seapeleaza functia fmins ın modul urmator:

x0 = [1 1]; % punctul de start al cautarii

x = fmins(’fob’, x0) % apelare rezolvare

Solutia obtinuta este:

x =

0.5000 -1.0000

fob(x)

ans =

1.4647e-009

2. Apelam functia fmins avand ca argument o expresie sir de caractere ın caredefinim functia obiectiv:

x0 = [1 1];

x = fmins(’4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1’, x0)

Solutia gasita este identica cu cea din prima varianta de lucru.

Pentru rezolvarea unor probleme mai complexe de optimizare sau a unor pro-bleme ce includ restrictii ori au anumite forme speciale se utilizeaza functiile dinOptimization Toolbox.

Page 115: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

8.2. Optimization Toolbox 105

8.2. Optimization Toolbox

Optimization Toolbox [8] se compune dintr-o serie de functii MATLAB ce realizeazaminimizarea functiilor obiectiv neliniare supuse la restrictii precum si identificareasolutiilor pentru problemele de programare liniara si programare patratica.

In Optimization Toolbox versiunea 1, aceste functii sunt:

fminu - minimizare functii obiectiv multivariabile

constr - minimizare functii obiectiv multivariabile supuse la restrictii

lp - programare liniara

qp - programare patratica

Toate functiile toolbox-ului sunt fisiere m MATLAB, ce pot fi vizualizate prin co-manda:

type nume_fisier

Se poate obtine o scurta descriere a functiilor ımpreuna cu explicarea moduluide utilizare prin:

help nume_fisier

8.2.1. Optimizarea functiilor obiectivnesupuse la restrictii

Functia fminu

Identifica solutia unei probleme de optimizare multivariabla de forma:

minx

f(x)

unde x este vectorul de decizie. Functia fminu gaseste minimul unei functii scalarede mai multe variabile, pornind de la o estimata initiala.Modul de apelare este:

x = fminu(’nFob’,x0)

x = fminu(’nFob’,x0,options)

x = fminu(’nFob’,x0,options,’nGrad’)

x = fminu(’nFob’,x0,options,’nGrad’,P1,P2,...)

[x,options] = fminu(...)

Page 116: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

106 Utilizare MATLAB ın optimizare

unde: x - solutia problemei de optimizare;nFob - un sir de caractere ce contine numele functiei m prin care

se calculeaza valoarea functiei obiectiv, sau o expresie detip sir de caractere prin care definim functia obiectiv;

x0 - vectorul de decizie initial;options - vectorul parametrilor de control. Din cele 18 elemente,

fminu utilizeaza doar elementele 1, 2, 3, 6, 7, 9, 14, 16si 17;

nGrad - un sir de caractere ce contine numele functiei m prin carese calculeaza valoarea gradientului functiei obiectiv;

P1,P2,... - parametri ce sunt direct transferati la functia nFob.

Spre deosebire de functia fmins, fminu utilizeaza pentru identificarea solutieialgoritmi ce se bazeaza pe calcularea/evaluare gradientului. Acest lucru permite cafunctia fminu sa fie mai eficienta cand numarul de variabile de decizie depasestevaloarea 2.

Exemplu

Sa se rezolve urmatoarea problema de optimizare:

minx

fob = 4x21 + 2x2

2 + 4x1x2 + 2x2 + 1

Rezolvare

Avem doua posibilitati de rezolvare ın MATLAB:

1. Definim o functie externa MATLAB ın care scriem functia obiectiv.

function y = f(x);

y = 4*x(1)^2 + 2*x(2)^2 + 4*x(1)*x(2) + 2*x(2) + 1;

Acest text este salvat ıntr-un fisier cu extensia *.m. Fie acest fisier fob.m.

Definim gradientul functiei obiectiv ın fisierul gradF.m:

function df=gradF(x);

df(1)=8*x(1) + 4*x(2);

df(2)=4*x(2) + 4*x(1) + 2;

In continuare, de la linia de comanda MATLAB sau dintr-un script MATLAB seapeleaza functia fminu ın modul urmator:

x0 = [1 1]; % punctul initial

options(2) = 1e-5; % precizia ceruta

x = fminu(’fob’, x0, options, ’gradF’) % apelare rezolvare

Page 117: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

8.2. Optimization Toolbox 107

Solutia obtinuta este:

x =

0.5000 -1.0000

fob(x)

ans =

2.1760e-014

2. Apelam functia fminu avand ca argument o expresie sir de caractere ın caredefinim functia obiectiv si gradientul functiei obiectiv:

x0 = [1 1];

options(2) = 1e-5;

x = fminu(’4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1’, x0, ...

options,’[8*x(1)+4*x(2);4*x(2)+4*x(1)+2]’)

Solutia gasita este identica cu cea din prima varianta de lucru.

8.2.2. Optimizarea functiilor obiectivsupuse la restrictii

Pentru rezolvarea problemelor de optimizare ın care apar restrictii, MATLAB pune ladispozitie functia constr din cadrul Optimization Toolbox.

Functia constr

In cele mai multe situatii, ın cadrul problemelor de optimizare, apar restrictii.Aceste restrictii pot fi de tip egalitate ori inegalitate.

O problema de optimizare de acest fel, este definita ın urmatorul mod:

minx

= f (x) (8.1)

supusa la restrictiile:

gi (x) = 0 pentru i = 1, 2, . . . , l

gi (x)≤ 0 pentru i = l + 1, . . . ,m(8.2)

unde: l - numarul de restrictii de tip egalitate;m - numarul total de restrictii, si, evidentm− l - numarul de restrictii de tip inegalitate;g - functii neliniare.

Functia constr identifica solutia unui probleme de optimizare multidimensionalade tipul definit de ecuatiile 8.1 si 8.2, pornind de la o estimata initiala a solutiei.Modul de apelare este:

Page 118: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

108 Utilizare MATLAB ın optimizare

x = constr(’nFob’,x0)

x = constr(’nFob’,x0,options)

x = constr(’nFob’,x0,options,Li,Ls)

x = constr(’nFob’,x0,options,Li,Ls,’nGrad’)

x = constr(’nFob’,x0,options,Li,Ls,’nGrad’,P1,P2,...)

[x,options] = constr(...)

[x,options,lambda] = constr(...)

unde: x - solutia problemei de minimizare;nFob - un sir de caractere ce contine numele functiei externe ın

care este descrisa functia obiectiv si restrictiile;x0 - vectorul de decizie initial;options - vectorul parametrilor de control. Din cele 18 elemente,

constr utilizeaza doar elementele 1, 2, 3, 4, 9, 13, 14,16 si 17;

Li,Ls - vectorul limitelor inferioare si superioare ale domeniuluicomponentelor vectorului de decizie (Li ≤ x ≤ Ls);

nGrad - un sir de caractere ce contine numele functiei m prin carese calculeaza valoarea gradientului functiei obiectiv;

P1,P2,... - parametri ce sunt direct transferati la functia nFob;lambda - vector ce contine multiplicatorii lui Lagrange.

Functia nFob scrisa de utilizator, trebuie sa aiba doua argumente la iesire: valoa-rea scalara a functiei obiectiv si un vector al restrictiilor ın punctul de apelare x.Daca exista restrictii de tip egalitate (l ≥ 1) atunci ele trebuiesc plasate ın primeleelemente ale vectorului restrictiilor, iar options(13) trebuie sa contina numarullor.

Forma acestei functii trebuie sa fie urmatoarea:

function [f,g]=nFob(x)

f = ... % expresia in x a functiei obiectiv

g(1) = ... % expresia restrictiilor de tip egalitate

...

g(l+1) = ... % expresia restrictiilor de tip inegalitate

...

g(n) = ...

Ca o alternativa posibila, functia obiectiv si sistemul restrictiilor pot fi definiteın functii externe MATLAB separate. Daca aceste functii sunt:

f = nFob(x)

si

Page 119: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

8.2. Optimization Toolbox 109

g = nRestrFob(x)

atunci apelarea functiei constr poate fi facuta si ın modul urmator:

constr(’f=nFob(x);g=nRestrFob(x);’,x0,options,...)

Exemplul 1

Sa se rezolve:

minx

fob = −x1x2x3 (8.3)

supusa la restrictiile:

−x1 − 2x2 − 2x3 ≤ 0

x1 + 2x2 + 2x3 ≤ 72(8.4)

pornind de la solutia initiala x = [10 10 10] cu precizia ε = 1 · 10−3.

Rezolvare

Abordarea rezolvarii acestei probleme, conform celor amintite mai sus, este posibilaın doua moduri:

Varianta A.

Pentru rezolvarea acestei probleme de optimizare parcurgem urmatoarele etape:

Pasul 1. Scriem un fisier m cu continutul:

function [f,g] = fobTest(x);

f = -x(1) * x(2) * x(3); % functia obiectiv

g(1) = -x(1) - 2*x(2) - 2*x(3); % restrictia 1

g(2) = x(1) + 2*x(2) + 2*x(3) - 72; % restrictia 2

pe care ıl salvam sub numele fobTest.m;

Pasul 2. De la linia de comanda MATLAB sau dintr-un script MATLAB apelamfunctia de optimizare constr:

x0 = [10 10 10];

x = constr(’fobTest’,x0)

Solutia obtinuta este:

Page 120: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

110 Utilizare MATLAB ın optimizare

x =

24.0000 12.0000 12.0000

[f,g]=fobTest(x)

f =

-3.4560e+003

g =

-72.0000 0.0000

Varianta B.

Parcurgem urmatoarele etape:

Pasul 1. Scriem un fisier m ın care definim functia obiectiv:

function f = fobTest(x);

f = -x(1) * x(2) * x(3); % functia obiectiv

pe care ıl salvam sub numele fobTest.m;

Pasul 2. Scriem un fisier m ın care definim cele doua restrictii:

function g = restrTest(x);

g(1) = -x(1) - 2*x(2) - 2*x(3); % restrictia 1

g(2) = x(1) + 2*x(2) + 2*x(3) - 72; % restrictia 2

pe care ıl salvam sub numele restrTest.m;

Pasul 3. De la linia de comanda MATLAB sau dintr-un script MATLAB apelamfunctia de optimizare constr:

x0 = [10 10 10];

x = constr(’f=fobTest(x);g=restrTest(x);’,x0)

Solutia obtinuta este acceasi cu cea precedenta:

x =

24.0000 12.0000 12.0000

[f,g]=fobTest(x)

f =

-3.4560e+003

g =

-72.0000 0.0000

Page 121: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

8.2. Optimization Toolbox 111

Exemplul 2

Sa se rezolve urmatoarea problema de optimizare:

minx

fob = 4x21 + 2x2

2 + 4x1x2 + 2x2 + 1 (8.5)

supusa la restrictiile:x1 + x2 = 0

x1 + x2 − x1x2 ≥ 1,5(8.6)

Rezolvare

Restrictia de tip inegalitate este adusa la forma standard de retrictie de tip ′ ≤′prin ınmultire cu −1, rezultand:

−x1 − x2 + x1x2 ≤ −1,5

Pentru rezolvarea acestei probleme de optimizare ın care apare si o restrictie de tipegalitate parcurgem urmatoarele etape:

Pasul 1. Scriem un fisier m cu continutul:

function [f,g] = fob(x);

f = 4*x(1).^2 + 2*x(2).^2 + 4*x(1)*x(2) + 2*x(2) + 1;

g(1) = x(1) + x(2);

g(2) = -x(1) - x(2) + x(1)*x(2) + 1.5;

pe care ıl salvam sub numele fob.m;

Pasul 2. De la linia de comanda MATLAB sau dintr-un script MATLAB apelamfunctia de optimizare constr:

options(13)=1; % numarul de restrictii egalitate

x0=[10 10];

x=constr(’fob’,x0,options)

Solutia obtinuta este:

x =

-1.2247 1.2247

[f,g]=fob(x)

f =

6.4495

g =

1.0e-009 *

0.1088 -0.0109

Page 122: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

112 Utilizare MATLAB ın optimizare

8.2.3. Rezolvarea problemelor deprogramare liniara

Pentru rezolvarea problemelor de programare liniara, MATLAB pune la dispozitiefunctia lp din cadrul Optimization Toolbox.

Functia lp

Probleme de programare liniara sunt definite printr-o functie obiectiv de forma:

minx

fob = cT x (8.7)

supusa la restrictiile:A · x ≤ b (8.8)

unde: x - vectorul de decizie de n componente;c - vectorul coeficientilor variabilelor de decizie din expresia functiei

obiectiv;b - vectorul termenilor liberi din restrictii;A - matricea de dimensiune mxn a coeficientilor variabilelor de decizie

ın cele m restrictii.

Obs.: Prin restrictiile 8.8 pot fi definite atat restrictii de tip egalitate cat si de tipinegalitate.

Modul de apelare este:

x = lp(c,A,b)

x = lp(c,A,b,limI)

x = lp(c,A,b,limI,limS)

x = lp(c,A,b,limI,limS,x0)

x = lp(c,A,b,limI,limS,x0,nrEgal)

x = lp(c,A,b,limI,limS,x0,nrEgal,display)

[x,lambda,eroare] = lp(...)

unde: x - solutia problemei de programare liniara;c - vectorul coeficientilor din functia obiectiv;A - matricea coeficientilor din restrictii;b - vectorul termenilor liberi din restrictii;limI - vector de dimensiunea numarului de variabile de deci-

zie prin care indicam limita inferioara a domeniului decautare a solutiei pentru fiecare ın parte;

limS - vector de dimensiunea numarului de variabile de deci-zie prin care indicam limita inferioara a domeniului decautare a solutiei pentru fiecare ın parte;

x0 - specifica o solutie initiala oarecare a problemei;nrEgal - numarul de restrictii egalitate;

Page 123: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

8.2. Optimization Toolbox 113

display - specifica modul de afisare a mesajelor de avertizare;lambda - vectorul multiplicatorilor lui Lagrange pentru solutia ga-

sita x;eroare - sir de caractere prin care se identifica conditiile de aflare

a solutiei x.

Specificarea acestor argumente se face tinand cont de urmatoarele:

c coeficientii variabilelor de decizie din functia obiectiv, specificatisub forma unui vector de tip linie;

A,b se formeaza ın asa fel ıncat primele linii sa includa coeficientii dinrestrictiile de tip egalitate, urmate mai apoi de coeficientii dinrestrictiile de tip inegalitate; matricea A este formata ın asa felıncat fiecare linie sa contina coeficientii din aceeasi restrictie ın or-dinea variabilelor de decizie; vectorul b este un vector de tip coloanaformat corespunzator ordinii restrictiilor din matricea A;

limI,limS daca dimensiunea acestor vectori este mai mica decat dimensiuneavectorului de decizie x, de exemplu avem doar k elemente, atuncinumai primele k variabile de decizie sunt limitate;

x0 daca nu specificam o solutie intiala, functia lp va pleca de la solutiatriviala zeros(size(x));

nrEgal specific printr-o valoare scalara, numarul de egalitati din sistemulde restrictii;

display variabila pentru controlul afisarii mesajelor de avertizare. Valoareaimplicita este 0 prin care se afiseaza mesajele de avertizare. Valoa-rea -1 suprima afisarea mesajelor de avertizare;

lambda are lungimea data de length(b)+length(limI)+lenght(limS) iarcomponentele sale respecta aceasta ordine, adica ıntai multiplica-torii pentru restrictii, urmat de multiplicatorii pentru limitele infe-rioare urmate de cele pentru limitele superioare. Valorile nonzeroale acestui vector indica restrictiile active, respectiv cele care seındeplinesc la limita;

eroare valoarea acestui sir de caractere indica conditiile ın care s-a identi-ficat solutia:

’infeasible’ - problema nefezabila - restrictii prea restrictive;’unbounded’ - solutie nelimitata;’dependent’ - s-au identificat restrictii dependente;’ok’ - rezolvare fara probleme.

Page 124: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

114 Utilizare MATLAB ın optimizare

Utilizarea ca argumente a unor matrice goale ın secventa de apel conduce lautilizarea variabilelor implicite. De exemplu, comanda:

lp(f,A,b,[ ],[ ],[ ],length(b))

indica faptul ca problema include numai restrictii de tip egalitate, nu are limiteinferioare sau superioare de cautare pentru variabilele de decizie si utilizeaza solutiainitiala implicita.

Exemplu

Sa se rezolve:minx

f(x) = −5x1 − 4x2 − 6x3 (8.9)

supusa la restrictiile:x1 − x2 + x3 ≤ 20

3x1 + 2x2 + 4x3 ≤ 42

3x1 + 2x2 ≤ 30

x1, x2, x3 ≥ 0

(8.10)

Rezolvare

Parcurgem urmatoarele etape:

Pasul 1. Introducem coeficientii:

c = [-5, -4, -6];

a = [1 -1 1

3 2 4

3 2 0];

b = [20; 42; 30];

Pasul 2. Apelam functia lp:

[x,lambda] = lp(c,a,b,zeros(3,1))

Solutia obtinuta este:

x =

0

15.0000

3.0000

lambda =

0

Page 125: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

8.2. Optimization Toolbox 115

1.5000

0.5000

1.0000

0

0

Elementele diferite de 0 ale vectorului lambda indica restrictiile active.Prime trei elemente ale vectorului multiplicatorilor lui Lagrange, lambda sunt

asociate celor trei restrictii de tip inegalitate. In acest caz restrictiile 2 si 3 suntactive, ın sensul ca se ındeplinesc la limita.

Ultimele trei componente ale vectorului lambda sunt asociate cu limilele infe-rioare ale domeniului de cautare a valorilor variabilelor de decizie, x. In acest cazlimita inferioara a variabilei de decizie x1 este activa.

8.2.4. Rezolvarea problemelor deprogramare patratica

Problemele de programare patratica sunt definite ın modul urmator:

minx

fob =1

2xT Hx + cT x (8.11)

supusa la restrictia:

A · x ≤ b (8.12)

unde: x - vectorul de variabilelor de decizie;H - matricea coeficientilor termenilor patratici din functia obiectiv;c - vectorul coeficientilor din functia obiectiv;A - matricea coeficientilor din restrictiile de tip inegalitate;b - vectorul termenilor liberi din restrictiile de tip inegalitate.

Aceste problemele pot fi rezolvate cu functia qp din Optimization Toolbox.

Functia qp

Modul de apelare al functiei qp este:

x = qp(H,c,A,b)

x = qp(H,c,A,b,Li,Ls)

x = qp(H,c,A,b,Li,Ls,x0)

x = qp(H,c,A,b,Li,Ls,x0,nEgal)

x = qp(H,c,A,b,Li,Ls,x0,nEgal,display)

[x,lambda,eroare] = qp(...)

Page 126: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

116 Utilizare MATLAB ın optimizare

unde: x - solutia problemei de programare patratica;H - matricea coeficientilor termenilor patratici din expresia func-

tiei obiectiv;c - vectorul coeficientilor din expresia functiei obiectiv;A, b - matricea/vectorul coeficientilor restrictiei de tip inegalitate

de forma A · x ≤ b;Li, Ls - vectorul limitelor inferioare si superioare ale domeniului

componentelor vectorului de decizie (Li ≤ x ≤ Ls);x0 - vectorul de decizie initial;nrEgal - numarul de restrictii egalitate;display - specifica modul de afisare a mesajelor de avertizare;lambda - vectorul multiplicatorilor lui Lagrange pentru solutia gasita

x;eroare - sir de caractere prin care se identifica conditiile de aflare a

solutiei x.

Exemplu

Sa se rezolve urmatoarea problema de programare patratica:

minx

f(x) = −x21 + x2

2 + 4x23 + 3x1x2 + x1x3 − 5x2x3 + 2x1 − x2 + x3 (8.13)

supusa la restrictiile:−2x1 + x2 − x3 ≤ 2

−x1 − 2x2 ≤−9

2x1 + 3x3 ≤ 3

x1, x2, x3 ≥ 0

(8.14)

Rezolvare

Functia obiectiv poate fi scrisa ın forma matriceala f(x) =1

2xT Hx + cT x unde:

H =

−2 3 13 2 −51 −5 8

, c =

2−1

1

, x =

x1

x2

x3

Pentru rezolvarea problemei, parcurgem urmatoarele etape:

Pasul 1. Introducem coeficientii:

H = [-2 3 1;3 2 -5;1 -5 8];

c = [2; -1; 1];

Page 127: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

8.3. Noutati aduse de Optimization Toolbox versiunea 2 117

A = [-2 1 -1

-1 -2 0

2 0 3];

b = [2; -9; 3];

Li = zeros(3,1);

Le = [Inf; Inf; 10];

Pasul 2. Apelam functia quadprog:

[x,lambda,eroare] = qp(H,c,A,b,Li);

Solutia obtinuta este:

x =

0.8182

4.0909

0.4545

lambda =

10.5868

8.9752

8.5289

0

0

0

eroare =

ok

Elementele diferite de 0 ale vectorului lambda indica restrictiile active. In acest caztoate cele trei restrictii inegalitate sunt restrictii active.

8.3. Noutati aduse de Optimization Toolbox

versiunea 2

Optimization Toolbox versiunea 2 este cea mai noua versiune livrata ımpreuna cuMATLAB versiunea 6. Acest toolbox introduce multiple ımbunatatiri ce au dus la unspor semnificativ de viteza de calcul. De asemenea o mare parte dintre functiilesale au fost redenumite.

Astfel:

fminbnd - minimizare functii obiectiv scalare

fminunc, fminsearch - minimizare multivariabila fara restrictii

fmincon - minimizare multivariabila cu restrictii

Page 128: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

118 Utilizare MATLAB ın optimizare

linprog - programare liniara

quadprog - programare patratica

8.3.1. Structura options

In versiunea 2 a Optimization Toolbox controlul optiunilor de optimizare este asi-gurat de structura options. Tipul de date structure a fost introdus odata cuversiunea 5 a MATLAB-ului.

Campurile structurii options sunt prezentate ın tabelul 8.2.

Tabela 8.2. Elementele structurii options.

Nume camp Descriere

Display controleaza informatiile intermediare afisate ın timpuloptimizarii: ’off’ - nu se afiseaza nimic; ’iter’ -se afiseaza informatii la fiecare iteratie; final’ - doarrezultatele finale

MaxFunEvals se poate specifica numarul maxim de evaluari ale functieiobiectiv

MaxIter se poate specifica numarul maxim de iteratii permise

TolCon se poate specifica precizia de respectare a restrictiilor

TolFun se poate specifica precizia de determinare a valoriifunctiei obiectiv

TolX se poate specifica precizia de determinare a valorii va-riabilelor de decizie

...

Campurile structurii options pot fi afisate sau scrise cu functiile optimget

respectiv optimset.Modificarea numarul maxim de iteratii admise se face prin secventa de comenzi:

options=optimset(’MaxIter’,1500);

Afisarea numarului maxim de iteratii fixat la un moment dat:

optimget(options,’MaxIter’)

ans =

1500

Page 129: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

8.3. Noutati aduse de Optimization Toolbox versiunea 2 119

Afisarea valorilor curente pentru toate campurile structurii options se face prinapelarea functiei optimset fara nici un parametru de apelare:

optimset

8.3.2. Optimizarea functiilor obiectivnesupuse la restrictii

Functia fminbnd

Identifica minimul unei functii de o singura variabila pe un interval fixat, de forma:

minx

f(x) supusa la restrictia xmin ≤ x ≤ xmax

unde x este variabila de decizie iar xmin si xmax reprezinta limitele domeniului decautare.Modul de apelare este:

x = fminbnd(’nFob’,xmin,xmax)

x = fminbnd(’nFob’,xmin,xmax,options,)

x = fminbnd(’nFob’,xmin,xmax,options,P1,P2,...)

[x,fval] = fminbnd(...)

[x,fval,exitflag] = fminbnd(...)

[x,fval,exitflag,output] = fminbnd(...)

unde: nFob - un sir de caractere ce contine numele functiei ce calcu-leaza valoarea functiei obiectiv, sau o expresie de tip sirde caractere prin care definim functia obiectiv;

xmin - limita inferioara a domeniului de cautare;xmax - limita superioara a domeniului de cautare;options - structura parametrilor de control. Functia fminbnd uti-

lizeaza urmatoarele campuri: Display, MaxFunEvals,MaxIter si TolX;

P1, P2, ... - parametri ce sunt direct transferati la functia nFob;x - solutia problemei de optimizare;fval - valoare minima a functiei obiectiv;exitflag - parametru ce indica conditiile de terminare a functiei.

Daca exitflag>0 s-a obtinut o solutie convergenta x,exitflag=0 s-a atins numarul maxim permis de iteratiiori de evaluari ale functiei obiectiv; exitflag<0 nu s-aobtinut o solutie convergenta.

output - structura a carui campuri ne dau informatii despre op-timizare.

Algoritmul functiei fminbnd se bazeaza pe metoda sectiunii de aur.

Page 130: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

120 Utilizare MATLAB ın optimizare

Functia fminunc

Identifica minimul unei functii multivariabile nesupuse la restrictii de forma:

minx

f(x)

unde x este vectorul de decizie.Functia fminunc gaseste minimul unei functii scalare de mai multe variabile,

pornind de la o estimata initiala.Modul de apelare este:

x = fminunc(’nFob’,x0)

x = fminunc(’nFob’,x0,options)

x = fminunc(’nFob’,x0,options,P1,P2,...)

[x,fval] = fminunc(...)

[x,fval,exitflag] = fminunc(...)

[x,fval,exitflag,output] = fminunc(...)

unde: nFob - un sir de caractere ce contine numele functiei ce calcu-leaza valoarea functiei obiectiv, sau o expresie de tip sirde caractere prin care definim functia obiectiv;

x0 - vectorul de decizie initial;options - structura parametrilor de control;P1, P2, ... - parametri ce sunt direct transferati la functia nFob;x - solutia problemei de optimizare;fval - valoare minima a functiei obiectiv;exitflag - parametru ce indica conditiile de terminare a functiei.

Daca exitflag>0 s-a obtinut o solutie convergenta x,exitflag=0 s-a atins numarul maxim permis de iteratiiori de evaluari ale functiei obiectiv; exitflag<0 nu s-aobtinut o solutie convergenta.

output - structura a carui campuri ne dau informatii despre op-timizare.

Functia fminsearch

Identifica minimul unei functii multivariabile nesupuse la restrictii de forma:

minx

f(x)

unde x este vectorul de decizie.Functia fminunc gaseste minimul unei functii scalare de mai multe variabile,

pornind de la o estimata initiala.Modul de apelare este:

Page 131: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

8.3. Noutati aduse de Optimization Toolbox versiunea 2 121

x = fminsearch(’nFob’,x0)

x = fminsearch(’nFob’,x0,options)

x = fminsearch(’nFob’,x0,options,P1,P2,...)

[x,fval] = fminsearch(...)

[x,fval,exitflag] = fminsearch(...)

[x,fval,exitflag,output] = fminsearch(...)

unde: nFob - un sir de caractere ce contine numele functiei ce calcu-leaza valoarea functiei obiectiv, sau o expresie de tip sirde caractere prin care definim functia obiectiv;

x0 - vectorul de decizie initial;options - structura parametrilor de control;P1, P2, ... - parametri ce sunt direct transferati la functia nFob;x - solutia problemei de optimizare;fval - valoare minima a functiei obiectiv;exitflag - parametru ce indica conditiile de terminare a functiei.

Daca exitflag>0 s-a obtinut o solutie convergenta x,exitflag=0 s-a atins numarul maxim permis de iteratiiori de evaluari ale functiei obiectiv; exitflag<0 nu s-aobtinut o solutie convergenta.

output - structura a carui campuri ne dau informatii despre op-timizare.

8.3.3. Optimizarea functiilor obiectivsupuse la restrictii

In cele mai multe situatii, ın cadrul problemelor de optimizare, apar restrictii.Aceste restrictii pot fi de tip egalitate ori inegalitate. O problema de optimizare deacest fel, este definita ın urmatorul mod:

minx

= f (x) (8.15)

supusa la restrictiile:c(x)≤ 0

ce(x) = 0

A · x≤ b

Ae · x = be

Linf ≤ x ≤ Lsup

(8.16)

unde: x - vectorul de decizie;f(x) - functia obiectiv;

Page 132: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

122 Utilizare MATLAB ın optimizare

A, Ae - matricea coeficientilor pentru coeficienti pentru restrictiilede tip inegalitate/egalitate;

b, be - vectorul termenilor liberi pentru restrictiile de tip inegali-tate/egalitate;

c, ce - functii neliniare cu rezultate de tip vector;Linf , Lsup - limitele inferioare, superioare ale variabilelor de decizie.

O astfel de problema este ın general denumita o problema de optimizare neliniaracu restrictii ori programare neliniara.

Functia fmincon

Functia fmincon identifica solutia unui probleme de optimizare multidimensionalade tipul definit de ecuatiile 8.15 si 8.16, pornind de la o estimata initiala a solutiei.Modul de apelare este:

x = fmincon(’nFob’,x0,A,b)

x = fmincon(’nFob’,x0,A,b,Ae,be)

x = fmincon(’nFob’,x0,A,b,Ae,be,Li,Ls)

x = fmincon(’nFob’,x0,A,b,Ae,be,Li,Ls,’nRn’)

x = fmincon(’nFob’,x0,A,b,Ae,be,Li,Ls,’nRn’,options)

x = fmincon(’nFob’,x0,A,b,Ae,be,Li,Ls,’nRn’,options,P1,P2,...)

[x,fval] = fmincon(...)

[x,fval,exitflag] = fmincon(...)

[x,fval,exitflag,output] = fmincon(...)

unde: nFob - un sir de caractere ce contine numele functiei ce calcu-leaza valoarea functiei obiectiv, sau o expresie de tip sirde caractere prin care definim functia obiectiv;

x0 - vectorul de decizie initial;A, b - vectorul coeficientilor restrictiei de tip inegalitate de for-

ma A · x ≤ b;Ae, be - vectorul coeficientilor restrictiei de tip egalitate de for-

ma Ae · x = be;Li, Ls - vectorul limitelor inferioare si superioare ale domeniului

componentelor vectorului de (Li ≤ x ≤ Ls);nRn - un sir de caractere ce contine numele functiei ce calcu-

leaza valoarile restrictiilor neliniare de forma c(x) ≤ 0 sice(x) = 0, Acesta functie *.m trebuie sa fie de forma:

function [c,ceq] = nRn(x);c = ... % inegalitatile neliniare;ce = ... % egalitatile neliniare;

Page 133: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

8.3. Noutati aduse de Optimization Toolbox versiunea 2 123

options - structura parametrilor de control;P1, P2, ... - parametri ce sunt direct transferati la functia nFob;x - solutia problemei de optimizare;fval - valoare minima a functiei obiectiv;exitflag - parametru ce indica conditiile de terminare a functiei.

Daca exitflag>0 s-a obtinut o solutie convergenta x,exitflag=0 s-a atins numarul maxim permis de iteratiiori de evaluari ale functiei obiectiv; exitflag<0 nu s-aobtinut o solutie convergenta;

output - structura a carui campuri ne dau informatii despre op-timizare.

Obs.: Acele argumente ce nu sunt necesare ıntr-un caz dat vor fi prezentesub forma unui vector vid, [].

8.3.4. Programare liniara

Problemele de programare liniara pot fi rezolvate cu functia linprog ce ınlocuiestefunctia lp din versiunea anterioara a Optimization Toolbox.

Probleme de programare liniara sunt definite printr-o functie obiectiv de forma:

minx

fT x (8.17)

supusa la restrictiile:A · x≤ b

Ae · x = be

Linf ≤ x ≤ Lsup

(8.18)

unde: x - vectorul de decizie;f - vectorul coeficientilor din functia obiectiv;A, Ae - matricea coeficientilor pentru coeficienti pentru restrictiile

de tip inegalitate/egalitate;b, be - vectorul termenilor liberi pentru restrictiile de tip inegali-

tate/egalitate;Linf , Lsup - limitele inferioare, superioare ale variabilelor de decizie.

In aceste expresii f , x, b, be, Li si Ls sunt vectori, iar A si Ae sunt matrice.

Functia linprog

Modul de apelare al functiei linprog este:

x = linprog(f,A,b,Ae,be)

Page 134: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

124 Utilizare MATLAB ın optimizare

x = linprog(f,A,b,Ae,be,Li,Ls)

x = linprog(f,A,b,Ae,be,Li,Ls,x0)

x = linprog(f,A,b,Ae,be,Li,Ls,x0,options)

[x,fval] = linprog(...)

[x,fval,exitflag] = linprog(...)

[x,fval,exitflag,output] = linprog(...)

[x,fval,exitflag,output,lambda] = linprog(...)

unde: x - solutia problemei de optimizare;f - vectorul coeficientilor din expresia functiei obiectiv;A, b - vectorul coeficientilor restrictiei de tip inegalitate de forma

A · x ≤ b;Ae, be - vectorul coeficientilor restrictiei de tip egalitate de forma Ae ·

x = be;Li, Ls - vectorul limitelor inferioare si superioare ale domeniului com-

ponentelor vectorului de (Li ≤ x ≤ Ls);x0 - vectorul de decizie initial;options - structura parametrilor de control;fval - valoare minima a functiei obiectiv;exitflag - parametru ce indica conditiile de terminare a functiei. Daca

exitflag>0 s-a obtinut o solutie convergenta x, exitflag=0s-a atins numarul maxim permis de iteratii ori de evaluari alefunctiei obiectiv; exitflag<0 nu s-a obtinut o solutie conver-genta;

output - structura a carui campuri ne dau informatii despre optimizare;lambda - structura ce contine multiplicatorii lui Lagrange la solutia x,

separate pe tipuri de restrictii:• lambda.lower - pentru limita inferioara, Li;• lambda.upper - pentru limita superioara, Ls;• lambda.ineqlin - pentru restrictiile inegalitate, Li;• lambda.eqlin - pentru restrictiile egalitate, Li.

Exemplu

Sa se rezolve urmatoarea problema de programare liniara:

minx

f(x) = −5x1 − 4x2 − 6x3 (8.19)

supusa la restrictiile:x1 − x2 + x3 ≤ 20

3x1 + 2x2 + 4x3 ≤ 42

3x1 + 2x2 ≤ 30

x1, x2, x3 ≥ 0

(8.20)

Page 135: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

8.3. Noutati aduse de Optimization Toolbox versiunea 2 125

Rezolvare

Parcurgem urmatoarele etape:

Pasul 1. Introducem coeficientii:

f = [-5; -4; -6];

A = [1 -1 1

3 2 4

3 2 0];

b = [20; 42; 30];

Li = zeros(3,1);

Pasul 2. Apelam functia linprog:

[x,fval,exitflag,output,lambda] = linprog(f,A,b,[],[],Li);

Solutia obtinuta este:

x =

0

15.0000

3.0000

lambda.ineqlin =

0

1.5000

0.5000

lambda.lower =

1.0000

0

0

Elementele diferite de 0 ale campurilor lambda.ineqlin si lambda.lower indicarestrictiile active.

In acest caz restrictiile 2 si 3 sunt active, ın sensul ca se ındeplinesc la limita,respectiv limita inferioara a variabilei de decizie x1 este activa.

8.3.5. Programare patratica

Probleme de programare patratica sunt definite printr-o functie obiectiv de forma:

minx

1

2xT Hx + cT x (8.21)

Page 136: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

126 Utilizare MATLAB ın optimizare

supusa la restrictiile:A · x≤ b

Ae · x = be

Linf ≤ x ≤ Lsup

(8.22)

unde: x - vectorul de decizie;H - matricea coeficientilor termenilor patratici din functia obi-

ectiv;c - vectorul coeficientilor din functia obiectiv;A, Ae - matricea coeficientilor din restrictiile de tip inegalitate/e-

galitate;b, be - vectorul termenilor liberi din restrictiile de tip inegalita-

te/egalitate;Linf , Lsup - limitele inferioare, superioare ale variabilelor de decizie.

In aceste expresii c, x, b, be, Li si Ls sunt vectori, iar H, A si Ae sunt matrice.Aceste problemele pot fi rezolvate cu functia quadprog ce ınlocuieste functia qp

din versiunea anterioara a Optimization Toolbox.

Functia quadprog

Modul de apelare al functiei quadprog este:

x = quadprog(H,c,A,b)

x = quadprog(H,c,A,b,Ae,be)

x = quadprog(H,c,A,b,Ae,be,Li,Ls)

x = quadprog(H,c,A,b,Ae,be,Li,Ls,x0)

x = quadprog(H,c,A,b,Ae,be,Li,Ls,x0,options)

[x,fval] = quadprog(...)

[x,fval,exitflag] = quadprog(...)

[x,fval,exitflag,output] = quadprog(...)

[x,fval,exitflag,output,lambda] = quadprog(...)

unde: x - solutia problemei de optimizare;H - matricea coeficientilor termenilor patratici din expresia func-

tiei obiectiv;c - vectorul coeficientilor din expresia functiei obiectiv;A, b - vectorul coeficientilor restrictiei de tip inegalitate de forma

A · x ≤ b;Ae, be - vectorul coeficientilor restrictiei de tip egalitate de forma

Ae · x = be;Li, Ls - vectorul limitelor inferioare si superioare ale domeniului

componentelor vectorului de decizie (Li ≤ x ≤ Ls);x0 - vectorul de decizie initial;

Page 137: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

8.3. Noutati aduse de Optimization Toolbox versiunea 2 127

options - structura parametrilor de control;fval - valoare minima a functiei obiectiv;exitflag - parametru ce indica conditiile de terminare a functiei.

Daca exitflag>0 s-a obtinut o solutie convergenta x,exitflag=0 s-a atins numarul maxim permis de iteratii oride evaluari ale functiei obiectiv; exitflag<0 nu s-a obtinuto solutie convergenta;

output - structura a carui campuri ne dau informatii despre opti-mizare;

lambda - structura ce contine multiplicatorii lui Lagrange la solutia x,separate pe tipuri de restrictii:• lambda.lower - pentru limita inferioara, Li;• lambda.upper - pentru limita superioara, Ls;• lambda.ineqlin - pentru restrictiile inegalitate, Li;• lambda.eqlin - pentru restrictiile egalitate, Li.

Exemplu

Sa se rezolve urmatoarea problema de programare patratica:

minx

f(x) =1

2x2

1 + x22 − x1x2 − 2x1 − 6x2 (8.23)

supusa la restrictiile:x1 + x2 ≤ 2

−x1 + 2x2 ≤ 2

2x1 + x2 ≤ 3

x1, x2 ≥ 0

(8.24)

Rezolvare

Functia obiectiv poate fi scrisa ın forma matriceala f(x) = 12xT Hx + cT x unde:

H =

1 −1

−1 2

, c =

−2

−6

, x =

x1

x2

Pentru rezolvarea problemei, parcurgem urmatoarele etape:

Pasul 1. Introducem coeficientii:

H = [1 -1;-1 2];

c = [-2; -6];

Page 138: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

128 Utilizare MATLAB ın optimizare

A = [ 1 1

-1 2

2 1];

b = [2; 2; 3];

Li = zeros(2,1);

Pasul 2. Apelam functia quadprog:

[x,fval,exitflag,output,lambda]=quadprog(H,c,A,b,[],[],Li);

Solutia obtinuta este:

x =

0.6667

1.3333

fval =

-8.2222

lambda.ineqlin =

3.1111

0.4444

0

lambda.lower =

0

0

Elementele diferite de 0 ale campurilor lambda.ineqlin si lambda.lower indicarestrictiile active.

In acest caz restrictiile 1 si 2 sunt active, ın sensul ca se ındeplinesc la limita,respectiv toate limitele inferioare sunt inactive.

8.4. Alte functii si facilitati oferite de

Optimization Toolbox

MATLAB ofera pe langa functiile specifice de optimizare incluse ın Optimization Tool-box si alte functii importante. Astfel, sunt incluse functii pentru rezolvarea de e-cuatii neliniare precum si pentru rezolvarea de sisteme de ecuatii neliniare. O altaclasa importanta de functii se refera la fitarea datelor.

8.4.1. Rezolvari de ecuatii si sisteme de ecuatii neliniare

In foarte multe situatii este necesara gasirea radacinilor unor ecuatii neliniare oria unor sisteme de ecuatii neliniare. Pentru rezolvarea unor astfel de probleme, ıncadrul Optimization Toolbox -ului exista doua functii:

Page 139: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

8.4. Alte functii si facilitati oferite de Optimization Toolbox 129

• fzero - pentru rezolvarea unei ecuatii neliniare de o singura variabila;

• fsolve - pentru rezolvarea sistemelor de ecuatii neliniare.

Functia fzero

Functia fzero permite gasirea radacinilor unei ecuatii neliniare de o singura vari-abila. Sintaxa este:

x = fzero(nFob,x0)

x = fzero(nFob,x0,options)

x = fzero(nFob,x0,options,P1,P2,...)

[x,fval] = fzero(...)

[x,fval,exitflag] = fzero(...)

[x,fval,exitflag,output] = fzero(...)

unde: x - solutia problemei de optimizare;nFob - un sir de caractere ce contine numele functiei *.m ce calcu-

leaza valoarea ecuatiei, sau o expresie de tip sir de caractereprin care definim ecuatia de rezolvat;

x0 - aproximarea initiala a radacinii ecuatei specificata subforma unui interval [x0(1) x0(2) pe care functia ısi schim-ba semnul. Daca x0 este o valoare scalara, functia fzero

va cauta sa identifice o radacina apropiata acestei valori;options - structura parametrilor de control;P1,P2,... - parametri ce sunt direct transferati la functia nFob;fval - valoare functiei obiectiv ın punctul x;exitflag - parametru ce indica conditiile de terminare a functiei.

Daca exitflag>0 s-a obtinut o solutie convergenta x,exitflag=0 s-a atins numarul maxim permis de iteratiiori de evaluari ale functiei obiectiv; exitflag<0 nu s-aobtinut o solutie convergenta;

output - structura a carui campuri ne dau informatii despre opti-mizare.

Obs.: Functia fzero permite identificarea acelor valori ale argumentuluiunei functii neliniare ce fac ca valoarea functiei sa treaca peste axa x.Acele valori ale argumentului functiei ce fac ca functia sa atinga axa xnu sunt considerate radacini!

Exemplul 1

Sa se identifice radacina reala a ecuatiei:

f(x) = x3 − 2 x− 5

Page 140: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

130 Utilizare MATLAB ın optimizare

Rezolvare

Pentru gasirea radacinii ecuatiei, parcurgem urmatoarele etape:

Pasul 1. Generam functia *.m corespunzatoare expresiei ecuatiei:

function y = f(x);

y = x.^3 - 2*x - 5;

pe care o salvam ıntr-un fisier cu extensia *.m. Fie acest fisier de nume fEc.m.

Pasul 2. Apelam functia fzero:

x = fzero(’fEc’,2)

x =

2.0946

Exemplul 2

Sa se identifice radacina reala a ecuatiei:

f(x) = 2x − x2 + 12

Rezolvare

Pentru gasirea radacinii ecuatiei, parcurgem urmatoarele etape:

Pasul 1. Generam functia *.m corespunzatoare expresiei ecuatiei:

function y=f(x)

y = 2^x - x^2 + 12;

pe care o salvam ıntr-un fisier cu extensia *.m. Fie acest fisier de numefEc2.m.

Pasul 2. Apelam functia fzero prin specificarea unei valori apropiate deradacina:

x = fzero(’fEc2’,-4)

x =

-3.4770

sau prin specificarea unui interval pe care functia ısi schimba semnul:

x = fzero(’fEc2’,[-4,1])

x =

-3.4770

Page 141: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

8.4. Alte functii si facilitati oferite de Optimization Toolbox 131

Rezolvarea este posibila si prin specificarea expresiei functiei direct ın lista de ar-gumente de apelare a functiei fzero:

x = fzero(’2^x - x^2 + 12’,-4)

x =

-3.4770

Functia fsolve

Functia fsolve rezolva sisteme de ecuatii neliniare.

Modul de apelare al functiei este:

x = fsolve(nFob,x0)

x = fsolve(nFob,x0,options)

x = fsolve(nFob,x0,options,P1,P2,...)

[x,fval] = fsolve(...)

[x,fval,exitflag] = fsolve(...)

[x,fval,exitflag,output] = fsolve(...)

unde: x - solutia problemei de optimizare;nFob - un sir de caractere ce contine numele functiei *.m ce

calculeaza valoarile ecuatiilor din sistemul de ecuatii;x0 - aproximarea initiala a vectorului solutie a sistemului de

ecuatii;options - structura parametrilor de control;P1, P2, ... - parametri ce sunt direct transferati la functia nFob;fval - valoare functiei obiectiv ın punctul x;exitflag - parametru ce indica conditiile de terminare a functiei.

Daca exitflag>0 s-a obtinut o solutie convergenta x,exitflag=0 s-a atins numarul maxim permis de iteratiiori de evaluari ale functiei obiectiv; exitflag<0 nu s-aobtinut o solutie convergenta;

output - structura a carui campuri ne dau informatii despre op-timizare.

Exemplu

Sa se rezolve urmatorul sistem de ecuatii neliniare: 2 x1 − x2 = e−x1

−x1 + 2 x2 = e−x2

(8.25)

Page 142: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

132 Utilizare MATLAB ın optimizare

Sistemul de ecuatii 8.25 este adus la forma standard: 2 x1 − x2 − e−x1 = 0

−x1 + 2 x2 − e−x2 = 0(8.26)

Fie x0 =

[−5

5

]punctul de plecare a cautarii solutie.

Rezolvare

Pentru rezolvarea sistemului de ecuatii, parcurgem urmatoarele etape:

Pasul 1. Generam functia *.m corespunzatoare sistemului de rezolvat:

function y=f(x)

y = [2*x(1) - x(2) - exp(-x(1));

-x(1) + 2*x(2) - exp(-x(2))];

pe care o salvam ıntr-un fisier cu extensia *.m. Fie acest fisier fSEc.m.

Pasul 2. Apelam functia fsolve prin specificarea solutiei aproximative:

[x,fval] = fsolve(’fSEc’,[-5; 5])

x =

0.5671

0.5671

fval =

1.0e-08 *

-0.5320

-0.5320

8.4.2. Determinarea coeficientilor ecuatiilor de regresie

In foarte multe situatii este necesara identificarea unei expresii matematice pornindde la un set de date numerice. In cadrul capitolului 2 am prezentat etapele ana-lizei de regresie prin care pornind de la date numerice se puteau obtine expresiimatematice adecvate. Una din etapele cele mai importante ın cadrul analizei deregresie o reprezinta etapa de calcul a coeficientilor.

In cadrul Optimization Toolbox exista un set de functii pentru calcularea coefi-cientilor pentru o serie de forme ale ecuatie de regresie.

Astfel avem urmatoarele functii MATLAB:

Page 143: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

8.4. Alte functii si facilitati oferite de Optimization Toolbox 133

• lsqnonneg - pentru calcularea coeficientilor unei regresii pe baza minimizariiexpresiei:

minx

1

2

∥∥∥Cx− d∥∥∥2

2supusa la x ≥ 0

unde: x - vectorul coeficientilor ecuatiei de regresie;C - matricea variabilelor independente structurate pe

seturile de date disponibile;d - vectorul termenilor liberi.

• lsqlin - pentru calcularea coeficientilor unei regresii pe baza minimizariiexpresiei:

minx

1

2

∥∥∥Cx− d∥∥∥2

2supusa la A · x ≥ b

Ae · x = beLi ≤ x ≤ Ls

unde: x - vectorul coeficientilor ecuatiei de regresie;C - matricea variabilelor independente;d - vectorul termenilor liberi;A, b - vectorul coeficientilor restrictiilor de tip inegalitate

de forma A · x ≤ b;Ae, be - vectorul coeficientilor restrictiilor de tip egalitate

de forma Ae · x = be;Li, Ls - vectorul limitelor inferioare si superioare ale do-

meniului componentelor vectorului coeficientilor(Li ≤ x ≤ Ls).

• lsqnonlin - pentru calcularea coeficientilor unei regresii pe baza minimizariiexpresiei:

minx

f(x) = f1(x)2 + f2(x)2 + f3(x)2 + · · ·+ fm(x)2 + L

unde: x - vectorul coeficientilor ecuatiei de regresie;f1, . . . - functii neliniare de x;m - numarul total de astfel de functii;L - constanta.

• lsqcurvefit - pentru calcularea coeficientilor unei regresii pe baza mini-mizarii expresiei:

minx

1

2

∥∥∥F (x, xdate)− ydate

∥∥∥2

2=

1

2

∑i

[F (x, xdate,i)− ydate,i]2

Page 144: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

134 Utilizare MATLAB ın optimizare

unde: x - vectorul coeficientilor ecuatiei de regresie;F - ecuatie de regresie aleasa;xdate - matricea/vectorul de date independente;ydate - vectorul de date dependente.

Obs.: Toate functii amintite se bazeaza ın calcularea coeficientilor prinmetoda celor mai mici patrate.

Functia lsqnonneg

Modul de apelare:

x = lsqnonneg(C,d)

x = lsqnonneg(C,d,x0)

x = lsqnonneg(C,d,x0,options)

[x,reznorm] = lsqnonneg(...)

[x,reznorm,rezidual] = lsqnonneg(...)

[x,reznorm,rezidual,exitflag] = lsqnonneg(...)

[x,reznorm,rezidual,exitflag,output] = lsqnonneg(...)

[x,reznorm,rezidual,exitflag,output,lambda] = lsqnonneg(...)

unde: x - coeficientii ecuatiei de regresie;C - matricea variabilelor independente avand dimensiunea nxm

unde n este numarul de seturi de date, iar m nr. variabileindependente;

d - vectorul termenilor liberi;x0 - solutia propusa initial cu conditia ca toate componentele sale

sa respecte conditia x0 ≥ 0. Valoarea implicita este originea;options - structura parametrilor de control;reznorm - contine suma patratelor reziduurilor la valorile x data de ex-

presia:∑

[f(x, xdate)− ydate]2;

rezidual - vector ce contine valorile reziduale calculate cu ajutorul ex-presiei: f(x, xdate)− ydate;

exitflag - parametru ce indica conditiile de terminare a functiei;output - structura a carui campuri ne dau informatii despre optimizare;lambda - vector ce contine multiplicatorii lui Lagrange.

Exemplu

Fiind date urmatoarele valori experimentale:

Page 145: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

8.4. Alte functii si facilitati oferite de Optimization Toolbox 135

set de date x1 x2 x3 y

1 3 2 2 14, 02 0 3 −1 −3, 53 −3 −5 3 9, 5

sa se identifice coeficientii ecuatiei de regresie de forma:

f(x) = c1 x1 + c2 x2 + c3 x3

cu conditia ca coeficientii c1, c2 si c3 ≥ 0.

Rezolvare

Identificarea coeficientilor implica parcurgerea urmatorilor pasi:

Pasul 1. Se introduc valorile disponibile ale variabilelor independente si alevariabilei dependente:

C = [ 3 2 2

0 3 -1

-3 -5 3];

d = [14; -3.5; 9.5];

Pasul 2. Se apeleaza functia lsqnonneg:

x0 = [1; 1; 1];

[x,reznorm] = lsqnonneg(C,d,x0);

Solutia obtinuta este:

x =

1.0000

0.5000

5.0000

reznorm =

4.9304e-030

Astfel, ecuatia de regresie cautata este:

f(x) = x1 + 0,5 x2 + 5 x3

Page 146: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

136 Utilizare MATLAB ın optimizare

Functia lsqlin

Modul de apelare:

x = lsqlin(C,d,A,b)

x = lsqlin(C,d,A,b,Ae,be)

x = lsqlin(C,d,A,b,Ae,be,Li,Ls)

x = lsqlin(C,d,A,b,Ae,be,Li,Ls,x0)

x = lsqlin(C,d,A,b,Ae,be,Li,Ls,x0,options)

[x,reznorm] = lsqlin(...)

[x,reznorm,rezidual] = lsqlin(...)

[x,reznorm,rezidual,exitflag] = lsqlin(...)

[x,reznorm,rezidual,exitflag,output] = lsqlin(...)

[x,reznorm,rezidual,exitflag,output,lambda] = lsqlin(...)

unde: x - coeficientii ecuatiei de regresie;C - matricea datelor variabilelor independente;d - vectorul datelor variabilei dependente;A,b - vectorul coeficientilor restrictiei de tip inegalitate de forma

A · x ≤ b;Ae,be - vectorul coeficientilor restrictiei de tip egalitate de forma Ae ·

x = be;Li,Ls - vectorul limitelor inferioare si superioare ale domeniului com-

ponentelor vectorului de decizie (Li ≤ x ≤ Ls);x0 - solutia propusa initial;options - structura parametrilor de control;reznorm - contine suma patratelor reziduurilor la valorile x data de ex-

presia:∑

[f(x, xdate)− ydate]2;

rezidual - vector ce contine valorile reziduale calculate cu ajutorul ex-presiei: f(x, xdate)− ydate;

exitflag - parametru ce indica conditiile de terminare a functiei. Dacaexitflag>0 s-a obtinut o solutie convergenta x, exitflag=0s-a atins numarul maxim permis de iteratii ori de evaluari alefunctiei obiectiv; exitflag<0 nu s-a obtinut o solutie conver-genta;

output - structura a carui campuri ne dau informatii despre optimizare;lambda - structura ce contine multiplicatorii lui Lagrange la solutia x,

separate pe tipuri de restrictii:• lambda.lower - pentru limita inferioara, Li;• lambda.upper - pentru limita superioara, Ls;• lambda.ineqlin - pentru restrictiile inegalitate, Li;• lambda.eqlin - pentru restrictiile egalitate, Li.

Page 147: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

8.4. Alte functii si facilitati oferite de Optimization Toolbox 137

Exemplu

Avand urmatoarele date experimentale:

set de date x1 x2 x3 y

1 3 2 2 12, 02 0 3 −1 −6, 53 −3 −5 3 14, 5

sa se identifice o ecuatie de regresie de forma:

f(x) = c1 x1 + c2 x2 + c3 x3

unde coeficientii c1, c2 si c3 trebuie sa ındeplineasca urmatoarele restrictii:

c1 + 2 c2 ≤ −1−2 c1 − 3 c2 + c3 ≤ 15

c1 + c2 − 2 c3 =−9,5c1, c2, c3 ≥ −1

c3 ≤ 5

Rezolvare

Identificarea coeficientilor ecuatiei de regresie propuse, cu respectarea restrictiilordate impune efectuarea urmatoarelor operatii:

Pasul 1. Se introduc valorile disponibile ale variabilelor independente si alevariabilei dependente:

C = [ 3 2 2

0 3 -1

-3 -5 3];

d = [12; -6.5; 14.5];

Pasul 2. Se introduc valorile corespunzatoare coeficientilor din restrictiileinegalitate:

A = [ 1 2 0

-2 -3 1];

b = [-1; 15];

Pasul 3 Se introduc valorile corespunzatoare coeficientilor din restrictia ega-litate:

Page 148: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

138 Utilizare MATLAB ın optimizare

Ae = [1 1 -2];

be = -9.5;

Pasul 4 Se introduc valorile cerute pentru limita inferioara si limita superioarade cautare a coeficientilor ecuatiei de regresie:

Li = -ones(3,1);

Ls = [Inf; Inf; 5];

Pasul 5 Se apeleaza functia lsqlin:

[x,reznorm,rezidual,exitflag,output,lambda] = ...

lsqlin(C,d,A,b,Ae,be,Li,Ls);

Solutia obtinuta este:

x =

1.0000

-1.0000

4.7500

reznorm =

6.8750

lambda.ineqlin =

8

0

lambda.eqlin =

1.7500

lambda.lower =

0

2.2500

0

lambda.upper =

0

0

0

Astfel, ecuatia de regresie cautata este:

f(x) = x1 − x2 + 4,75 x3

cu observatia ca prima restrictie inegalitate si restrictia egalitate sunt active, iar aldoilea coeficient este la limita minima admisa.

Page 149: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

8.4. Alte functii si facilitati oferite de Optimization Toolbox 139

Functia lsqnonlin

Modul de apelare:

x = lsqnonlin(nFun,x0)

x = lsqnonlin(nFun,x0,Li,Ls)

x = lsqnonlin(nFun,x0,Li,Ls,options)

x = lsqnonlin(nFun,x0,Li,Ls,options,P1,P2,...)

[x,reznorm] = lsqnonlin(...)

[x,reznorm,rezidual] = lsqnonlin(...)

[x,reznorm,rezidual,exitflag] = lsqnonlin(...)

[x,reznorm,rezidual,exitflag,output] = lsqnonlin(...)

[x,reznorm,rezidual,exitflag,output,lambda] = lsqnonlin(...)

unde: x - coeficientii ecuatiei de regresie;nFun - un sir de caractere ce contine numele functiei *.m ce calcu-

leaza valoarea ecuatiei de regresie, sau o expresie de tip sir decaractere prin care definim ecuatia de regresie;

x0 - solutia propusa initial;Li,Ls - vectorul limitelor inferioare si superioare ale domeniului com-

ponentelor vectorului de decizie (Li ≤ x ≤ Ls);options - structura parametrilor de control;P1,P2,... - parametri ce sunt direct transferati la functia nFun;reznorm - contine suma patratelor reziduurilor la valorile x data de ex-

presia:∑

[f(x, xdate)− ydate]2;

rezidual - vector ce contine valorile reziduale calculate cu ajutorul ex-presiei: f(x, xdate)− ydate;

exitflag - parametru ce indica conditiile de terminare a functiei. Dacaexitflag>0 avem o solutie convergenta x, exitflag=0 s-aatins numarul maxim permis de iteratii ori de evaluari alefunctiei obiectiv; exitflag<0 nu avem o solutie convergenta;

output - structura a carui campuri ne dau informatii despre optimizare;lambda - structura ce contine multiplicatorii lui Lagrange la solutia x,

identic cu forma din functiile prezentate anterior.

Exemplu

Sa se identifice componentele vectorului x ce minimizeaza expresia:

10∑k=1

(2 + 2k − ek x1 − ek x2

)2(8.27)

pornind de la punctul x =

[0, 3

0, 4

].

Page 150: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

140 Utilizare MATLAB ın optimizare

Rezolvare

Functia obiectiv 8.27 poate fi descompusa ıntr-o suma de patrate, fiecare termenfiind dat de functia:

fk(x) = 2 + 2k − ek x1 − ek x2

pentru k = 1 la 10.Identificarea solutie prin utilizarea functiei lsqnonlin impune efectuarea urma-

toarelor operatii:

Pasul 1. Se defineste expresia ecuatia de regresie a carei coeficienti dorim sa-iidentificam. Pentru acesta se scrie urmatoarea functie *.m:

function f = nFEg(x,xdata,ydata);

k = 1:10;

f = 2 + 2*k - exp(k*x(1)) - exp(k*x(2));

ce este salvat cu numele nEg.m.

Pasul 2. Se apeleaza functia lsqnonlin:

x0 = [0.3 0.4];

[x,reznorm] = lsqnonlin(’nEg’,x0);

Solutia obtinuta este:

x =

0.2578 0.2578

reznorm =

124.3622

Functia lsqcurvefit

Modul de apelare:

x = lsqcurvefit(nFun,x0,xdate,ydate)

x = lsqcurvefit(nFun,x0,xdate,ydate,Li,Le)

x = lsqcurvefit(nFun,x0,xdate,ydate,Li,Le,options)

x = lsqcurvefit(nFun,x0,xdate,ydate,Li,Le,options,P1,P2,...)

[x,reznorm] = lsqcurvefit(...)

[x,reznorm,rezidual] = lsqcurvefit(...)

[x,reznorm,rezidual,exitflag] = lsqcurvefit(...)

[x,reznorm,rezidual,exitflag,output] = lsqcurvefit(...)

[x,reznorm,rezidual,exitflag,output,lambda] = lsqcurvefit(...)

Page 151: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

8.4. Alte functii si facilitati oferite de Optimization Toolbox 141

unde: x - coeficientii ecuatiei de regresie;nFun - un sir de caractere ce contine numele functiei *.m ce calcu-

leaza valoarea ecuatiei de regresie, sau o expresie de tip sir decaractere prin care definim ecuatia de regresie;

x0 - solutia propusa initial;xdate - vectorul variabilelor independente date;ydate - vectorul variabilei dependente date;Li,Ls - vectorul limitelor inferioare si superioare ale domeniului com-

ponentelor vectorului de decizie (Li ≤ x ≤ Ls);options - structura parametrilor de control;P1,P2,... - parametri ce sunt direct transferati la functia nFun;reznorm - contine suma patratelor reziduurilor la valorile x data de ex-

presia:∑

[f(x, xdate)− ydate]2;

rezidual - vector ce contine valorile reziduale calculate cu ajutorul ex-presiei: f(x, xdate)− ydate;

exitflag - parametru ce indica conditiile de terminare a functiei. Dacaexitflag>0 s-a obtinut o solutie convergenta x, exitflag=0s-a atins numarul maxim permis de iteratii ori de evaluari alefunctiei obiectiv; exitflag<0 nu s-a obtinut o solutie conver-genta;

output - structura a carui campuri ne dau informatii despre optimizare;lambda - structura ce contine multiplicatorii lui Lagrange la solutia x,

separate pe tipuri de restrictii:• lambda.lower - pentru limita inferioara, Li;• lambda.upper - pentru limita superioara, Ls;• lambda.ineqlin - pentru restrictiile inegalitate, Li;• lambda.eqlin - pentru restrictiile egalitate, Li.

Exemplu

Fie urmatoarele date experimentale:

set de date x1 x2 x3 y

1 1 2 2 52 −1 4 −5 93 2 −3 5 -28,5

Se cere sa se identifice coeficientii c1, c2 si c3 din ecuatia de regresie de forma:

f(x) = c1 x1 + c2 x22 + c3 x1 x2 x3

Page 152: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

142 Utilizare MATLAB ın optimizare

Rezolvare

Pentru identificarea coeficientilor ecuatiei de regresie propuse, se efectueaza urma-toarele operatii:

Pasul 1. Mai ıntai se defineste ecuatia de regresie a carei coeficienti dorimsa-i identificam. Pentru acesta se scrie urmatoarea functie *.m:

function y=nReg(x,xdate);

y = x(1).*xdate(:,1) + ...

x(2).*xdate(:,2).^2 + ...

x(3).*xdate(:,1).*xdate(:,2).*xdate(:,3);

ce se salveaza sub numele nReg.m.

Pasul 2. Se introduc valorile disponibile ale variabilelor independente si alevariabilei dependente:

xdate = [ 1 2 2

-1 4 -5

2 -3 5];

ydate = [5; 9; -28.5];

Pasul 3. Se apeleaza functia lsqcurvefit:

[x,reznorm] = lsqcurvefit(’nReg’,[],xdate,ydate);

Solutia obtinuta este:

x =

3.0000

-0.5000

1.0000

reznorm =

6.0827e-011

Astfel, ecuatia de regresie cautata este:

f(x) = 3 x1 − 0,5 x22 + x1 x2 x3

Page 153: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

143

Partea I

Anexe

Page 154: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”
Page 155: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

145

AnexaA

Functii MATLAB

In aceasta anexa, pentru ilustrarea principalelor metode numerice de optimizaredescrise, se prezinta un set de functii MATLAB ce implementeaza algoritmul metodelorrespective. Gruparea functiilor s-a facut ın mod similar gruparii metodelor prezen-tate ın lucrare.

Modul de utilizare a acestor functii se prezinta prin rezolvarea urmatoarelordoua tipuri de probleme:

A. Problema cu o singura variabila de decizie

Sa se rezolve urmatoarea problema de optimizare:

minx

fob = x2 − 6x + 8 (A.1)

pe intervalul de cautare [0; 5], cu precizia ε = 1 · 10−5.

Rezolvare

Se scrie urmatoarea functie MATLAB:

function y = f(x);

% Exemplu de functie obiectiv cu

% o singura variabila de decizie

%

y = x.^2 - 6*x + 8;

Aceasta functie se salveaza ıntr-un fisier de nume fobA.m. In continuare seapeleaza functia cu care se rezolva problema de optimizare.

Page 156: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

146 Functii MATLAB

B. Problema cu mai multe variabile de decizie

Pornind din punctul x(0) = [5; 5] si cu pasul λ(0) = 1 sa se rezolve:

minx1,x2

f(x1, x2) = 4x21 + 2x2

2 + 4x21x2 + 2x2 + 1 (A.2)

Rezolvare

Scriem urmatoarea functie MATLAB:

function y = f(x);

% Exemplu de functie obiectiv cu

% doua variabile de decizie

%

y = 4*x(1).^2 + 2*x(2).^2 + 4*x(1)*x(2) + 2*x(2) + 1;

Functia se salveaza ıntr-un fisier de nume fobB.m. In continuare apelamfunctia de cautare a solutiei.

A.1. Metode de eliminare

A.1.1. Metoda perechilor secventiale

function X=PERSEC(f,lim,prec);

%PERSEC cautare extrem prin metoda perechilor secventiale

% X=PERSEC(’FUN’,LIM) porneste cautarea de la intervalul

% initial LIM (specificat sub forma unui vector [xmin xmax])

% si identifica extremul unei functii de o variabila descrise

% in FUN (un fisier M: FUN.M). Functia ’FUN’ trebuie sa

% returneze o valoare scalara: F=FUN(X).

%

% ------------Initializari------------------

%

xmin = lim(1);

xmax = lim(2);

if nargin < 3, prec=1e-3; end;

fac = 0.01;

% ------------Faza de calcul----------------

%

Page 157: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

A.1. Metode de eliminare 147

Dx = xmax - xmin;

dx = fac*Dx;

x2 = (xmax - xmin)/2;

dfm = deriv(f,xmin,dx);

df2 = deriv(f,x2,dx);

dfM = deriv(f,xmax,dx);

while Dx > prec

if dfm*df2>0

xmin = x2;

dfm = df2;

x2 = (xmax + xmin)/2;

Dx = xmax - xmin;

dx = fac*Dx;

df2 = deriv(f,x2,dx);

else

xmax = x2;

dfM = df2;

x2 = (xmax + xmin)/2;

Dx = xmax - xmin;

dx = fac*Dx;

df2 = deriv(f,x2,dx);

end;

end;

X = x2;

% ------------Aproximarea derivatei---------

%

function df = deriv(f,x,dx);

%DERIV aproximeaza derivata functiei pe baza raportului diferentelor

% DF=DERIV(F,X,DX) aproximeaza valoarea derivatei functiei F

% in punctul X utilizand metoda raportului diferentelor prin

% utilizarea unui punct aflat la distanta DX

%

df = (feval(f,x+dx) - feval(f,x))/dx;

Mod de utilizare:

persec(’fobA’,[0 5],1e-5)

Solutia obtinuta este:

ans =

3.0000

Page 158: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

148 Functii MATLAB

A.1.2. Metoda seriei lui Fibonacci

function X=SERFIB(f,lim,prec,extrem);

%SERFIB cautare extrem prin metoda seriei lui Fibonacci

% X=SERFIB(’FUN’,LIM,EXTREM) porneste cautarea de la intervalul

% initial LIM (specificat sub forma unui vector [xmin xmax]) si

% identifica tipul de EXTREM (specificat prin sirul ’M’ pt. maxim

% sau ’m’ pt. minim) a functiei de o variabila descrise in FUN

% (un fisier M: FUN.M). Functia ’FUN’ trebuie sa returneze o

% valoare scalara: F=FUN(X).

%

% ------------Initializari----------------

%

xmin = lim(1);

xmax = lim(2);

if nargin < 3, prec=1e-3; end;

if nargin < 4, extrem=’m’; end;

if extrem == ’M’

tip=1;

else

tip=-1;

end;

% ------------Faza de calcul----------------

%

Dx = xmax - xmin;

na = Dx/prec;

n = 0;

while na >= FIBO(n)

n = n + 1;

end;

dx = FIBO(n-2)/FIBO(n)*Dx;

x1 = xmin + dx;

x2 = xmax - dx;

f1 = feval(f,x1);

f2 = feval(f,x2);

for j=n-1:-1:2

if (tip*f1)<(tip*f2)

xmin = x1;

x1 = x2;

Dx = xmax - xmin;

Page 159: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

A.1. Metode de eliminare 149

dx = FIBO(n-2)/FIBO(n)*Dx;

x2 = xmax - dx;

f1 = f2;

f2 = feval(f,x2);

else

xmax = x2;

x2 = x1;

Dx = xmax - xmin;

dx = FIBO(n-2)/FIBO(n)*Dx;

x1 = xmin + dx;

f2 = f1;

f1 = feval(f,x1);

end;

end;

X = (xmax + xmin)/2;

% ------------Sirul lui Fibonacci--------------

%

function Y=FIBO(x);

%FIBO calculeaza elementele seriei lui Fibonacci

% Y=FIBO(X) calculeaza elementul de rangul X, utilizand

% expresia analitica a sirului lui Fibonacci

%

Y = round(1/sqrt(5)*(((1+sqrt(5))/2)^(x+1) - ...

((1-sqrt(5))/2)^(x+1)));

Mod de utilizare:

serfib(’fobA’,[0, 5], 1e-5)

Solutia obtinuta este:

ans =

3.0000

A.1.3. Metoda sectiunii de aur

function X=SAUR(f,lim,prec,extrem);

%SAUR cautare extrem prin metoda sectiunii de aur

% X=SAUR(’FUN’,LIM,EXTREM) porneste cautarea de la intervalul

% initial LIM (specificat sub forma unui vector [xmin xmax]) si

Page 160: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

150 Functii MATLAB

% identifica tipul de EXTREM (specificat prin sirul ’M’ pt. maxim

% sau ’m’ pt. minim) a functiei de o variabila descrise in FUN

% (un fisier M: FUN.M). Functia ’FUN’ trebuie sa returneze o

% valoare scalara: F=FUN(X).

%

% ------------Initializari----------------

%

xmin = lim(1);

xmax = lim(2);

if nargin < 3, prec=1e-3; end;

if nargin < 4, extrem=’m’; end;

if extrem == ’M’

tip=1;

else

tip=-1;

end;

s = 0.618;

% ------------Faza de calcul----------------

%

Dx = xmax - xmin;

dx = (1 - s)*Dx;

x1 = xmin + dx;

x2 = xmax - dx;

f1 = feval(f,x1);

f2 = feval(f,x2);

Dx = xmax - xmin;

while Dx > prec

if (tip*f1)<(tip*f2)

xmin = x1;

x1 = x2;

Dx = xmax - xmin;

dx = (1 - s)*Dx;

x2 = xmax - dx;

f1 = f2;

f2 = feval(f,x2);

else

xmax = x2;

x2 = x1;

Dx = xmax - xmin;

dx = (1 - s)*Dx;

Page 161: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

A.2. Metode de urcare-coborare 151

x1 = xmin + dx;

f2 = f1;

f1 = feval(f,x1);

end;

end;

X = (xmax + xmin)/2;

Mod de utilizare:

saur(’fobA’,[0, 5], 1e-5)

Solutia obtinuta este:

ans =

3.0000

A.2. Metode de urcare-coborare

A.2.1. Metoda gradientului cu pas constant

function X=GRADPC(f,x0,h0,prec,extrem);

%GRADPC cautare extrem prin metoda gradientului cu pas constant

% X=GRADPC(’FUN’,X0,H0,PREC,EXTREM) porneste cautarea unui optim

% de tip EXTREM de la vectorul initial X0 cu pasul initial H0 si

% identifica extremul unei functii multivariabile descrise in

% FUN (un fisier M: FUN.M). Functia ’FUN’ trebuie sa returneze

% o valoare scalara: F=FUN(X).

%

% ------------Initializari------------------

if nargin < 4, prec=1e-3; end;

if nargin < 5, extrem=’m’; end;

if extrem == ’M’

tip=1;

else

tip=-1;

end;

h = h0;

dx = 0.01*ones(size(x0))*prec;

f0 = feval(f,x0);

g0 = grad(f,x0,dx);

Page 162: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

152 Functii MATLAB

d = g0/sqrt(sum(g0.^2));

xN = x0 + tip*d*h;

fN = feval(f,xN);

HB = 0;

while ~HB

if tip*fN > tip*f0

HBf = (abs((fN-f0)/f0)) <= prec;

HBx = all((abs((xN-x0)./x0)) <= prec);

HB = HBf & HBx;

x0 = xN;

f0 = fN;

g0 = grad(f,x0,dx);

d = g0/sqrt(sum(g0.^2));

xN = x0 + tip*d*h;

fN = feval(f,xN);

h = h0;

else

h = h/2;

xN = x0 + tip*d*h;

fN = feval(f,xN);

end;

end;

X = xN;

% ---------Calcul vector gradient-----------

%

function gF = grad(f,x,dx);

%GRAD aproximeaza gradientul unei functii multivariabile

% GF=GRAD(F,X,DX) va aproxima gradientul functiei FUN

% (functia FUN.M) in punctul dat de vectorul coloana X

% utilizand raportul diferentelor la distanta data de

% vectorul coloana DX

%

vx = zeros(length(dx),length(dx));

for i=1:length(dx)

vx(i,i) = dx(i);

end;

gF = zeros(size(dx));

for i=1:length(dx)

gF(i) = (feval(f,x+vx(i,:))-feval(f,x))/dx(i);

end;

Page 163: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

A.2. Metode de urcare-coborare 153

Mod de utilizare:

gradpc(’fobB’,[5 5],1,1e-5)

Solutia obtinuta este:

ans =

0.5000 -1.0000

A.2.2. Metoda gradientului cu pas optim

function X=GRADPO(f,x0,prec,extrem);

%GRADPO cautare extrem prin metoda gradientului cu pas optim

% X=GRADPC(’FUN’,X0,PREC,EXTREM) porneste cautarea unui optim

% de tip EXTREM de la vectorul initial X0 si identifica extremul

% unei functii multivariabile descrise in FUN (un fisier M: FUN.M).

% Functia ’FUN’ trebuie sa returneze o valoare scalara: F=FUN(X).

%

% ------------Initializari------------------

%

if nargin < 3, prec=1e-3; end;

if nargin < 4, extrem=’m’; end;

if extrem == ’M’ tip=1;

else tip=-1;end;

opt(13) = 1e-3*prec;

hmax = 100;

dx = 0.01*ones(size(x0))*prec;

f0 = feval(f,x0);

g0 = grad(f,x0,dx);

d = g0/sqrt(sum(g0.^2));

h = fmin(’funcD’,0,hmax,opt,f,x0,d,tip);

xN = x0 + tip*d*h;

fN = feval(f,xN);

HB = 0;

while ~HB

if tip*fN > tip*f0

HBf = (abs((fN-f0)/f0)) <= prec;

HBx = all((abs((xN-x0)./x0)) <= prec);

HBh = h <= prec;

HB = (HBf & HBx) | HBh ;

x0 = xN;

Page 164: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

154 Functii MATLAB

f0 = fN;

g0 = grad(f,x0,dx);

d = g0/sqrt(sum(g0.^2));

h = fmin(’funcD’,-hmax,hmax,opt,f,x0,d,tip);

xN = x0 + tip*d*h;

fN = feval(f,xN);

end;

end;

X = xN;

% ---------Calcul vector gradient-----------

%

function gF = grad(f,x,dx);

%GRAD aproximeaza gradientul unei functii multivariabile

% GF=GRAD(F,X,DX) va aproxima gradientul functiei FUN

% (functia FUN.M) in punctul dat de vectorul coloana X

% utilizand raportul diferentelor la distanta data de

% vectorul coloana DX

%

vx = zeros(length(dx),length(dx));

for i=1:length(dx)

vx(i,i) = dx(i);

end;

gF = zeros(size(dx));

for i=1:length(dx)

gF(i) = (feval(f,x+vx(i,:))-feval(f,x))/dx(i);

end;

Functia funcD.m este:

function y = funcD(h,f,x0,d,tip);

%FUNCD calculaza functia obiectiv dependenta de pas

% Y=FUNC(H,F,X0,D,TIP) returneaza valoarea functiei obiectiv

% in punctul H din fisierul de nume definit in variabila sir

% de caracter F, pornind de la punctul initial X0 cu valorile

% componentelor vectorului gradient D pentru tipul de extrem

% definit prin TIP.

%

xN = x0 + tip*d*h;

y = feval(f,xN);

if tip==1

y = -y;

end;

Page 165: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

A.2. Metode de urcare-coborare 155

Mod de utilizare:

gradpo(’fobB’,[5 5],1e-5)

Solutia obtinuta este:

ans =

0.5000 -1.0000

A.2.3. Metoda Pattern Search

function X=PATTSEAR(fname,x0,h0,prec,extrem);

%PATTSEAR minimizare prin metoda Patern Search

% X=PATTSEAR(FNAME,X0,H0,PREC,EXTREM) minimizeaza functia

% multivariabila de nume FNAME.M ponind din punctul initial

% X0 cu pasul H0 cu precizia PREC.

%

% ------------Initializari----------------

%

if nargin < 2, h0=1; end;

if nargin < 3, prec=1e-3; end;

if nargin < 4, extrem=’m’; end;

if extrem == ’M’

tip=1;

else

tip=-1;

end;

beta = 3;

h = h0;

n = length(x0);

l = eye(n,n);

f0 = feval(fname,x0);

x = x0;

f = f0;

Fin = 0;

while not(Fin)

Avans = 0;

h = h0;

while not(Avans)

fn = f;

for i=1:n

Page 166: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

156 Functii MATLAB

xn = x + l(i,:)*h;

fn = feval(fname,xn);

if tip*fn>tip*f

x = xn;

f = fn;

else

xn = x - l(i,:)*h;

fn = feval(fname,xn);

if tip*fn>tip*f

x = xn;

f = fn;

end;

end;

end;

if tip*fn>tip*f0

Avans = 1;

pas = x0 - xn;

else

h = h/2;

if h<=prec

Avans = 1;

else

Avans = 0;

end;

end;

end;

Fin = h<=prec;

if not(Fin)

succes = 1;

while succes

pas = beta*pas;

xn = x + pas;

fn = feval(fname,xn);

if tip*fn>tip*f

succes = 1;

disp([x f;xn fn]);

x = xn;

f = fn;

else

succes = 0;

end;

end;

Page 167: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

A.2. Metode de urcare-coborare 157

if f0==0

HBf = (abs(f-f0)) <= prec;

else

HBf = (abs((f-f0)/f0)) <= prec;

end;

if all(x0)

HBx = all((abs((x-x0)./x0)) <= prec);

else

HBx = all((abs(x-x0)) <= prec);

end;

HB = HBf & HBx;

Fin = (h<=prec)|HB;

end;

x0 = x;

f0 = f;

end;

X = x;

Mod de utilizare:

pattsear(’fobB’,[5 5],1,1e-5,’m’)

Solutia obtinuta este:

ans =

0.5000 -1.0000

A.2.4. Metoda Rosenbrock

function X=ROSEN(fname,x0,prec,a);

%ROSEN cautare minim prin metoda Rosenbrock

% X=ROSEN(’FUN’,X0,PREC,A) porneste cautarea de la punctul initial

% X0 cu precizia PREC cu dimensiunea initiala a poliedrului A pentru

% o functie multivariabila descrisa in FUN (un fisier M: FUN.M).

% Functia ’FUN’ trebuie sa returneze o valoare scalara: F=FUN(X).

%

% -------Initializari---------------------------------

%

if nargin < 3, prec=1e-3; end;

if nargin < 4, a=1; end;

if size(x0,1)>size(x0,2)

Page 168: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

158 Functii MATLAB

x0 = x0’;

end;

if length(a)~=length(x0)

a = ones(size(x0))*a;

end;

alfa = 3;

beta = -0.5;

n = length(x0);

d = eye(n,n);

a0 = a;

x = x0;

f0 = feval(fname,x);

f = f0;

HB = 0;

cont = ones(size(x0));

succesA = zeros(size(x0));

pas = zeros(size(x0));

stop = 0;

while not(HB)

x0 = x;

f0 = f;

while sum(cont)

for i=1:n

if cont(i)

xn = x + a(i).*d(i,:);

fN = feval(fname,xn);

if fN < f

x = xn;

f = fN;

pas(i) = pas(i) + a(i);

a(i) = alfa*a(i);

succes(i) = 1;

else

a(i) = beta*a(i);

succes(i) = 0;

if abs(a(i))<prec

cont(i) = 0;

stop = 1;

break

end;

Page 169: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

A.2. Metode de urcare-coborare 159

end;

cont(i) = not((succesA(i)==1)&(succes(i)==0));

succesA(i) = succes(i);

end;

end;

end;

xF = x;

fF = f;

% -------Recalcularea directiilor de cautare----------

%

if not(stop)

for i=1:n

A(i,:) = (d(i:n,:)’*pas(i:n)’)’;

end;

mA1 = sqrt(sum(A(1,:).^2));

d(1,:) = A(1,:)/mA1;

B = zeros(size(pas));

for j=2:n

B(j,:) = A(j,:)-A(j,:)*d(1:(j-1),:)’*d(1:(j-1),:);

mB = sqrt(sum(B(j,:).^2));

d(j,:) = B(j,:)/mB;

end;

if a<prec

a = a / 10;

end;

end;

% -------Testarea atingerii punctului de extrem--------

%

HBf = (abs((fF-f0)/f0)) <= prec;

HBx = all((abs((xF-x0)./x0)) <= prec);

HB = HBf & HBx;

cont = ones(size(x0));

succesA = zeros(size(x0));

pas = zeros(size(x0));

end;

X = x;

Mod de utilizare:

Page 170: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

160 Functii MATLAB

rosen(’fobB’,[5 5],1e-5,1)

Solutia obtinuta este:

ans =

0.5000 -1.0000

A.2.5. Metoda poliedrului

function X=POLIBOX(fname,x0,a,prec);

%POLIBOX cautare minim prin metoda poliedrului

% X=POLIBOX(’FUN’,X0,A,PREC) porneste cautarea de la punctul initial

% X0 cu precizia PREC cu dimensiunea initiala a poliedrului A pentru

% o functie multivariabila descrisa in FUN (un fisier M: FUN.M).

% Functia ’FUN’ trebuie sa returneze o valoare scalara: F=FUN(X).

%

% ------------Initializari----------------

%

if nargin < 3, a=1; end;

if nargin < 4, prec=1e-3; end;

n = length(x0);

HB = 0;

while not(HB)

f0 = feval(fname,x0);

p = (n-1+sqrt(n+1))/(n*sqrt(2))*a;

q = (-1+sqrt(n+1))/(n*sqrt(2))*a;

for i=1:n

for j=1:n

if i==j

xp(i,j) = x0(j) + p;

else

xp(i,j) = x0(j) + q;

end;

end;

end;

x = [x0; xp]; xab = x;

for i=1:n

fp(i) = feval(fname,xp(i,:));

end;

f = f0;

f = [f0; fp’];

Page 171: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

A.2. Metode de urcare-coborare 161

exist = 0;

r = 0;

while not(exist)

[fm,im] = sort(f);

elim = im(length(im));

xn = 2/n*sum(x)-(1+2/n)*x(elim,:);

for i=1:n

x(elim,i) = xn(i);

end;

exist = 0;

iex = find(xab(:,1)==xn(1));

if iex

for k=1:length(iex)

exist = xab(iex(k),2)==xn(2);

if exist

break;

end;

end;

end;

if not(exist)

xab = [xab;xn];

f(elim) = feval(fname,x(elim,:));

i = i + 1;

else

r = r + 1;

if r<length(im)-1

elim=im(length(im)-r);

exist = 0;

else

xF = x(im(1),:);

fF = f(im(1));

a = a/2;

if not(any([x0 - xF]))

if a<prec

HB = 1;

end;

else

HBf = (abs((fF-f0)/f0)) <= prec;

HBx = all((abs((xF-x0)./x0)) <= prec);

HB = HBf & HBx;

x0 = xF;

f0 = fF;

Page 172: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

162 Functii MATLAB

end;

end

end;

end;

end;

X = xF;

Mod de utilizare:

polibox(’fobB’,[5 5],1,1e-5)

Solutia obtinuta este:

ans =

0.5000 -1.0000

A.2.6. Metoda poliedrului extensibil

function X=POLIBOXE(fname,x0,prec,a);

%POLIBOXE cautare minim prin metoda poliedrului extensibil

% X=POLIBOXE(’FUN’,X0,PREC,A) porneste cautarea de la punctul

% initial X0 cu precizia PREC cu dimensiunea initiala a

% poliedrului A pentru o functie multivariabila descrisa in

% FUN (un fisier M: FUN.M). Functia ’FUN’ trebuie sa returneze

% o valoare scalara: F=FUN(X).

%

% ------------Initializari----------------

%

if nargin < 3, prec=1e-3; end;

if nargin < 4, a=1; end;

alfa = 1;

beta = 0.5;

gama = 2;

n = length(x0);

stop = 0;

refac = 0;

f0 = feval(fname,x0);

p = (n-1+sqrt(n+1))/(n*sqrt(2))*a;

q = (-1+sqrt(n+1))/(n*sqrt(2))*a;

for i=1:n

Page 173: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

A.2. Metode de urcare-coborare 163

for j=1:n

if i==j

xp(i,j) = x0(j) + p;

else

xp(i,j) = x0(j) + q;

end;

end;

end;

x = [x0; xp];

for i=1:n

fp(i) = feval(fname,xp(i,:));

end;

f = f0;

f = [f0; fp’];

while not(stop)

xn = x;

[fm,im] = sort(f);

elim = im(length(im));

xW = 1/n*(sum(x)-x(elim,:));

xR = xW + alfa*(xW - x(elim,:));

fR = feval(fname,xR);

avans = fR<=f(im(1));

if avans

xE = xR + gama*(xR - xW);

fE = feval(fname,xE);

if fE<f(elim)

for i=1:n

xn(elim,i) = xE(i);

end;

fN = fE;

f(elim) = fN;

else

for i=1:n

xn(elim,i) = xR(i);

end;

fN = fR;

f(elim) = fN;

end;

else

if fR<f(im(length(im)-1));

for i=1:n

xn(elim,i) = xR(i);

Page 174: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

164 Functii MATLAB

end;

fN = fR;

f(elim) = fN;

elseif fR>f(elim)

fN = zeros(n,1);

for i=1:n+1

for j=1:n

xn(i,j) = x(im(1),j) + 0.5*(x(i,j)-x(im(1),j));

end;

fN(i) = feval(fname,xn(i,:));

end;

f = fN;

refac = 1;

else

xC = xW + beta*(x(im(length(im)),:) - xW);

fC = feval(fname,xC);

for i=1:n

xn(elim,i) = xC(i);

end;

fN = fC;

f(elim) = fN;

end;

end;

if not(refac)

stop = (1/(n+1)*sum(sqrt((f - fN).^2))) <= prec;

else

refac = 0;

end;

x = xn;

end;

X = x(im(length(im)),:);

Mod de utilizare:

poliboxe(’fobB’,[5 5],1e-5,1)

Solutia obtinuta este:

ans =

0.5000 -1.0000

Page 175: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

165

AnexaB

Metode statistice

B.1. Legi de repartitie

Prelucrarea statistica a datelor experimentale necesita cunoasterea legilor dupa caresunt repartizate aceste marimi. Probabilitatea ca variabila aleatoare continua x saia valori ın intervalul (x1, x2) poarta denumirea de lege de repartitie si se exprimaprin relatia:

F (x) =

∫ x2

x1

f(x) dx (B.1)

Legea de repartitie ce sta la baza metodelor de prelucrare a datelor de masurareeste legea normala descoperita de Gauss.

B.1.1. Curba normala a lui Gauss

Daca facem un numar infinit de determinari ale unei marimi notam valorile indi-viduale gasite cu x unde variabila x variaza continuu. Notand cu f(x) frecventavalorilor gasite (probabilitatea de aparitie) curba obtinuta are aspectul redat ınfigura B.1[11].

Suprafata de sub curba normala reprezinta suma probabilitatilor (suma frecven-telor) tuturor valorilor x si este egala cu 1.

Domeniul ∆x = ±3 σ, limitat la stanga de x = µ − 3 σ si la dreaptade x = µ + 3 σ cuprinde 99,73% din valori dintre toate valorile posibile(probabilitatea P = 99,73%). Domeniul ∆x = ±2 σ cuprinde 95,46%din toate valorile posibile, iar domeniul ∆x = ± σ cuprinde 68,26% dintoate valorile posibile. Probabilitatea de 95% corespunde domeniului∆x = ± 1, 96 σ, iar probabilitatea de 99% domeniului ∆x = ± 2, 58 σ.

Pentru un numar foarte mare de cazuri, la limita, frecventa este egala cu pro-babilitatea.

Page 176: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

166 Metode statistice

-

x

6f(x)

x = µ. ............................

.....................................................

.........................

..........................

............................

..............................

.................................

........................................................

..........................

.........................

..........................

............................

..............................

.............................................................

.........................

......................

............................................................. ........... ...........

............................

.........................

......................

...................................

................................................

σ σss ��

punct de inflexiune

Figura B.1. Curba normala de distributie a lui Gauss.

Pentru o astfel de situatie definim:

frecventa =numarul de valori x egale ıntre ele

numarul total al valorilor x

probabilitatea =numarul cazurilor favorabile

numarul total al cazurilor posibile

Expresia matematica a curbei normale a lui Gauss este:

f(x) =1

σ√

2π· e−

(x−µ)2

2σ2 (B.2)

unde: µ este media aritmetica a valorilor x si σ este abaterea standard ce se cal-culeaza cu radacina patrata a dispersiei σ2, dispersia fiind media patratelor abate-rilor tuturor valorilor x fata de µ.

Pe figura B.1 abaterea standard σ este diferenta dintre valoarea lui x corespun-zatoare inflexiunii curbei si µ.

B.1.2. Selectii

In practica nu se pot face un numar infinit de determinari. ın acest caz nu se poatecaracteriza ıntreaga populatie ci numai o selectie din ea alcatuita dintr-un numarlimitat de determinari - n.

Statistica matematica permite estimarea parametrilor ıntregii populatii (µ si σ)pe baza unei selectii, respectiv prin parametrii acesteia x si s.

Page 177: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

B.2. Teste statistice 167

B.1.3. Media aritmetica de selectie

Media aritmetica x a celor n valori ale selectiei este:

x =x1 + x2 + . . . + xi + . . . + xn

n=

∑xi

n(B.3)

B.1.4. Dispersia de selectie

Dispersia s2 este:

s2 =(x1 − µ)2 + . . . + (xi − µ)2 + . . . + (xn − µ)2

n=

∑n1 (xi − µ)2

n(B.4)

dar µ nu se cunoaste ci se estimeaza prin x. Dispersia corectata este:

s2 =(x1 − x)2 + . . . + (xi − x)2 + . . . + (xn − x)2

n− 1=

∑n1 (xi − x)2

n− 1(B.5)

abaterea standard fiind s =√

s2.In cazul ın care exista k serii de determinari, dispersia generala s2

y este:

s2y =

s21(n1 − 1) + . . . + s2

i (ni − 1) + . . . + s2k(nk − 1)

(n1 − 1) + . . . + (ni − 1) + . . . + (nk − 1)=

∑k1 s2

i νi∑k1 νi

(B.6)

unde νi = ni − 1 reprezinta gradul de libertate al seriei i de determinari,

B.2. Teste statistice

Testarea statistica a datelor experimentale consta ın comparatii statistice si sta-bilirea semnificatiei diferentelor constatate. Se compara ıntre ele medii, dispersii,abateri standard ale unei selectii sau mai multor selectii spre a vedea daca fac partedin aceeasi populatii.

B.2.1. Intervalul de ıncredere. Criteriul Student

Domeniul de ımprastire al mediilor de selectie ın jurul valorii medii µ numit siinterval de ıncredere, cu probabilitatea P este:

∆x = x− µ = ±ts√n

(B.7)

unde: s - abaterea standard de selectie, n - numarul de determinari. Distributiavariabilei aleatoare t a fost calculata sub forma de tabel de catre Student. Aceastadistributie nu depinde de σ ci exclusiv de numarul de grade de libertate ν.

Page 178: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

168 Metode statistice

In tabelul B.1 se prezinta distributia variabilei aleatoare t ın functie de nivelulde semnificatie α si numarul de grade de libertate ν = n− 1.

Nivelul de semnificatie α reprezinta diferenta dintre probabilitatea impusa (orialeasa) si probabilitatea de 100%. Astfel, unei probabilitati impuse de P = 95% ıicorespunde un nivel de semnificatie de α = 5%.

Tabela B.1. Valorile criteriului Student.

ν \ α 10% 5% 2% 1%

1 6,31 12,71 31,82 63,662 2,92 4,30 6,97 9,933 2,35 3,18 4,54 5,844 2,13 2,72 3,75 4,605 2,02 2,57 3,37 4,036 1,94 2,45 3,14 3,717 1,90 2,37 3,00 3,508 1,86 2,31 2,90 3,369 1,83 2,26 2,82 3,2510 1,81 2,29 2,76 3,1711 1,79 2,20 2,72 3,1112 1,78 2,18 2,68 3,0613 1,77 2,16 2,65 3,0114 1,76 2,15 2,62 2,9815 1,75 2,13 2,60 2,9516 1,75 2,12 2,58 2,9217 1,74 2,11 2,57 2,9018 1,73 2,10 2,55 2,8819 1,73 2,09 2,54 2,8620 1,73 2,09 2,53 2,8522 1,72 2,07 2,51 2,8124 1,71 2,06 2,50 2,8026 1,71 2,06 2,48 2,7828 1,70 2,05 2,47 2,7630 1,70 2,04 2,46 2,7540 1,68 2,02 2,42 2,7060 1,67 2,00 2,39 2,66100 1,66 1,98 2,37 2,63500 1,65 1,97 2,33 2,59∞ 1,65 1,96 2,33 2,58

Page 179: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

B.2. Teste statistice 169

B.2.2. Compararea a doua dispersii de selectie.Raportul Fisher

Compararea a doua dispersii de selectie s21 si s2

2 consta ın verificarea daca aces-tea sunt statistic distincte, adica corespund unor populatii diferite ori corespundaceleasi populatii.

Cand variabilele aleatoare din care s-au extras selectiile au distributii normalese poate aplica testul F :

F =s21

s22

(B.8)

unde s21 > s2

2. Testul F a fost propus de Snedecor pe baza repartitiei Fisher.In tabelele B.2 si B.3[17] se prezinta valorile raportului Fisher pentru pragului

de semnificatie α = 5%(P = 95%), respectiv α = 1%(P = 99%) si numarului degrade de libertate ν1 si ν2.

Tabela B.2. Valorile raportului Fisher pentru nivelul de semnificatie α = 5%.

ν2 \ ν1 1 2 3 4 5 6 7 10 12 24 ∞

1 161 200 216 225 230 234 239 242 244 249 2542 18,5 19,0 19,2 19,2 19,3 19,3 19,4 19,4 19,4 19,4 19,43 10,1 9,55 9,28 9,12 9,01 8,94 8,85 8,79 8,74 8,64 8,634 7,71 6,94 6,59 6,39 6,26 6,16 6,04 5,96 5,91 5,77 5,635 6,61 5,79 5,41 5,19 5,05 4,95 4,82 4,74 4,68 4,53 4,376 5,99 5,14 4,76 4,53 4,39 4,28 4,15 4,06 4,00 3,84 3,677 5,59 4,74 4,35 4,12 3,97 3,87 3,73 3,64 3,57 3,41 3,238 5,32 4,46 4,07 3,84 3,69 3,58 3,44 3,35 3,28 3,12 2,939 5,12 4,26 3,86 3,63 3,48 3,37 3,23 3,14 3,07 2,90 2,7110 4,96 4,10 3,71 3,48 3,33 3,22 3,07 2,98 2,91 2,74 2,5412 4,75 3,89 3,49 3,26 3,11 3,00 2,85 2,75 2,69 2,51 2,3014 4,60 3,74 3,34 3,11 2,96 2,85 2,70 2,60 2,53 2,35 2,1316 4,49 3,62 3,24 3,01 2,85 2,74 2,59 2,49 2,42 2,24 2,0120 4,35 3,49 3,10 2,87 2,71 2,60 2,45 2,35 2,28 2,08 1,8430 4,17 3,32 2,92 2,69 2,53 2,42 2,27 2,16 2,09 1,89 1,6240 4,08 3,23 2,84 2,61 2,45 2,34 2,18 2,08 2,00 1,79 1,5160 4,00 3,15 2,76 2,53 2,37 2,25 2,10 1,99 1,92 1,70 1,39100 3,94 3,09 2,70 2,46 2,31 2,19 2,03 1,93 1,85 1,63 1,28200 3,89 3,04 2,65 2,42 2,26 2,14 1,98 1,88 1,60 1,57 1,19

∞ 3,84 3,00 2,60 2,37 2,21 2,10 1,94 1,83 1,75 1,52 1,00

Page 180: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

170 Metode statistice

Tabela B.3. Valorile raportului Fisher pentru nivelul de semnificatie α = 1%.

ν2 \ ν1 1 2 3 4 5 6 7 10 12 24 ∞

1 405 500 540 563 576 586 598 606 611 623 6372 98,5 99,0 99,2 99,2 99,3 99,3 99,4 99,4 99,4 99,5 99,53 34,1 30,8 29,5 28,7 28,2 27,9 27,5 27,1 27,1 26,6 26,14 21,2 18,0 16,7 16,0 15,5 15,2 14,8 14,5 14,4 13,9 13,55 16,3 13,3 12,1 11,4 11,0 10,7 10,3 10,1 9,89 9,47 9,026 13,7 10,9 9,78 9,15 8,75 8,47 8,10 7,89 7,72 7,31 6,887 12,2 9,55 8,45 7,84 7,46 7,19 6,84 6,62 6,47 6,07 5,658 11,3 8,65 7,59 7,01 6,63 6,37 6,03 5,81 5,67 5,28 4,869 10,6 8,02 6,99 6,42 6,06 5,80 5,47 5,26 5,11 4,73 4,3110 10,0 7,56 6,55 5,99 5,64 5,39 5,06 4,85 4,71 4,33 3,9112 9,33 7,93 5,95 5,41 5,06 4,82 4,50 4,30 4,16 3,78 3,3614 8,86 6,51 5,56 5,04 4,70 4,46 4,14 3,94 3,80 3,43 3,0016 8,53 6,23 5,29 4,77 4,44 4,20 3,89 3,69 3,55 3,18 2,7520 8,10 5,85 4,94 4,43 4,10 3,87 3,56 3,37 3,23 2,86 2,4230 7,56 5,39 4,51 4,02 3,70 3,47 3,17 2,98 2,84 2,47 2,0140 7,31 5,18 4,31 3,83 3,51 3,29 2,99 2,80 2,66 2,29 1,8060 7,09 4,98 4,13 3,65 3,34 3,12 2,82 2,63 2,50 2,21 1,60100 6,90 4,82 3,98 3,51 3,21 2,99 2,69 2,50 2,37 1,98 1,43200 6,76 4,71 3,88 3,41 3,11 2,89 2,60 2,41 2,27 1,89 1,28

∞ 6,63 4,61 3,78 3,32 3,02 2,80 2,51 2,32 2,18 1,79 1,00

Obs.: F = ν1

ν2unde ν1 > ν2.

Observatie:

La testare se iau ın considerare doua nivele de semnificatie, α = 5%(caruia ıi corespunde probabilitatea de 95%) si α = 1% (caruia ıi cores-punde probabilitatea de 99%). Daca valoarea gasita prin test Fcalculat

este mai mica decat Ftabelat corespunzatore nivelului de semnificatie α= 5% cele doua dispersii nu difera semnificativ si fac parte din aceeasipopulatie. Daca Fcalculat corespunde unei valori Ftabelat ıntre nivelele desemnificatie α = 5% si α = 1% situatia este ındoielnica. In situatia ıncare Fcalculat are o valoare mai mare decat Ftabelat corespunzator niveluluide semnificatie α = 1% cele doua dispersii difera semnificativ iar celedoua selectii nu apartin aceleasi polulatii.

Page 181: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

171

AnexaC

Exemple

C.1. Analiza de regresie

C.1.1. Dependenta tensiunii de lucru de distantainterpolara si ıncarcarea unui reactor electrochimic

Modelarea matematica a dependentei tensiunii de lucru a reactorului electrochimicpentru producerea clorului prin electroliza saramurii functie de distanta interpolarasi ıncarcarea de curent este dificila de obtinut pornind de la un model analitic alprocesului.

Tabela C.1. Tensiunea de electrolizafunctie de conditiile de lucru.

nr. d, I, U , [V]

exp. [mm] [kA/m2] 1 2 3 4

1 4,5 6,0 4,11 4,13 4,13 -2 4,0 5,5 3,98 3,98 3,99 3,993 6,5 7,8 4,72 4,73 4,73 4,724 7,1 9,2 5,14 5,13 5,15 5,145 6,0 10,5 5,19 5,19 5,21 -6 6,2 8,2 4,76 4,77 4,78 -7 8,3 11,0 5,81 5,80 - -8 7,3 8,8 5,10 5,08 5,10 -

In scopul determinarii de-pendentei tensiunii de lucru, U ,de distanta interpolara, d, si deıncarcarea de curent, I, la unreactor electrochimic cu catodde mercur de tip deNora pentruelectroliza saramurii s-au efec-tuat mai multe experimente.

Rezultatele masuratorilor e-fectuate ın instalatia industri-ala sunt redate ın tabelul C.1.Pornind de la aceste masurato-ri, se cere obtinerea coeficien-tilor a, b si c ale unui modelmatematic de forma:

U = a + (b + c d) · I (C.1)

Page 182: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

172 Exemple

Rezolvare

Modelul matematic propus este un model liniar. Notand: y = U , x1 = I, x2 = d · I,c0 = a, c1 = b si c2 = c relatia ceruta:

y = c0x0 + c1x1 + c2x2 (C.2)

este de tip polinomiala de gradul I (s-a adaugat o varibila fictiva, x0, egala cuunitatea pentru fiecare set de date asociat termenului liber pentru o mai bunaomogenitate a expresiilor).

Coeficientii c0, c1 si c2 pot fi determinati prin metoda celor mai mici patrate.Pentru aceasta se formeaza matricea X a variabilelor independente si matricea Ya variabilei dependente:

X =

1 6,0 27,001 5,5 22,001 7,8 50,701 9,2 65,321 10,5 63,001 8,2 50,841 11,0 91,301 8,8 64,24

Y =

4,12333,98504,72505,14005,19674,77005,80505,0933

Utilizand relatia matriceala 2.19, coeficientii modelului sunt:

C =(XT X

)−1XT Y =

c0

c1

c2

=

3,1086

0,0784

0,0201

Modelul matematic al dependentei tensiunii de lucru functie de distanta interpolaraeste:

U = 3,1086 + (0,0784 + 0,0201 d) · ITestarea modelului obtinut se face prin testarea adecvantei modelului si prin

testarea semnificatiei coeficientilor. Pentru testarea adecvantei modelului se fac oserie de calcule ce sunt redate ın tabelul C.2 si se bazeaza pe ecuatiile 2.21÷2.27.

Dispersiei reproductibilitatii datelor experimentale, σ2y , are valoarea:

σ2y =

m∑i=1

σ2i νi

m∑i=1

νi

=3,249 · 10−3

18= 1,805 · 10−4

iar a dispersiei adecvantelor, σ2ad:

σ2ad =

m∑j=1

(Yj − yj)2

m−Nc

=2,265 · 10−3

26− 3= 0,98478 · 10−4

Page 183: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

C.1. Analiza de regresie 173

Tabela C.2. Prelucrarea datelor experimentale de la electroliza.

Exp. mi U i νi σ2i · 10−3 σ2

i νi · 10−3 Ucalc

∑(Ui − Ucalc) · 10−3

1 3 4,1233 2 0,267 0,533 4,1209 0,28502 4 3,9850 3 0,100 0,300 3,9813 0,15343 4 4,7250 3 0,100 0,300 4,7375 0,72224 4 5,1400 3 0,200 0,600 5,1406 0,20135 3 5,1967 2 0,267 0,533 5,1960 0,26806 3 4,7700 2 0,200 0,400 4,7717 0,20837 2 5,8050 1 0,050 0,050 5,8029 0,05888 3 5,0933 2 0,267 0,533 5,0875 0,3680∑

26 - 18 - 3,249 - 2,2650

Raportul Fisher ın cazul modelului determinat este:

Fcalc =σ2

y

σ2ad

=1,805 · 10−4

0,98478 · 10−4= 1,8329

Valoarea calculata a raportului Fisher se compara cu valoarea tabelata (aleasadin tabelul B.2). Pentru pragul de semnificatie α = 5 %, valoarea tabelata a rapor-tului Fisher este:

F (ν1, ν2, 1− α) = F (18, 23, 0,95) = 2,123

Deoarece Fcalc ≤ F , modelul este adecvant.Testarea semnificatiei coeficientilor se face pe baza dispersiei coeficientilor, σ2

c

calculata cu relatia:

σ2c =

σ2y

m=

1,805 · 10−4

26= 6,9423 · 10−6

Valoarea tabelata a distributiei Student (aleasa din tabelul B.1) este:

t(ν, 1− α) = t(26, 0,95) = 2,06

Intervalul de ıncredere al coeficientilor, ∆ci, are valoare:

∆ci = t√

σ2c = 2,06

√6,9423 · 10−6 = 0,0054774

Deoarece toti coeficientii modelului au valori absolute mai mari decat intervalulde ıncredere al coeficientilor, acestia sunt semnificativi.

Modelul matematic final al reactorului electrochimic este dat de relatia:

U = 3,1086 + (0,0784 + 0,0201 d) · I

Page 184: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

174 Exemple

C.1.2. Stabilirea ecuatiei de transfer de calduraıntr-un schimbator de caldura

In scopul obtinerii unui model matematic al transferului termic ıntr-un schimbatorde caldura s-au efectuat o serie de experimente (tabelul C.3).

Tabela C.3. Transfer termicıntr-un schimbator de caldura.

nr.Re

Nu

exp. 1 2 3 4

1 50 33 32 33 -2 250 57 56 56 -3 400 67 68 - -4 600 77 78 77 775 800 85 86 87 -6 1000 92 91 92 -7 1200 98 98 97 988 1400 103 102 103 1039 1600 108 107 108 10810 2000 118 117 117 117

Procesul de transfer termic poate fi de-scris de o ecuatie criteriala de forma:

Nu = a Reb (C.3)

Folosind datele experimentale disponi-bile, sa se determine valorile coeficientilora si b.

Rezolvare

Relatia de corelare propusa fiind neliniara,se impune liniarizarea ei prin logaritmare,obtinandu-se forma:

ln Nu = ln a + b ln Re (C.4)

Daca efectuam notatiile: y = ln Nu,x1 = ln Re, c0 = ln a si c1 = b si con-

sideram o variabila fictiva egala cu unitatea x0 asociata termenului liber, relatiaanterioara devine:

y = c0x0 + c1x1 (C.5)

Aceasta expresie corespunde unui model polinomial de gradul I. Coeficientii mode-lului, c0 si c1 se determina prin metoda celor mai mici patrate.

Formam cele doua matrice, matricea X a marimilor independente si matricea Ya marimii dependente pentru forma liniara din relatia C.5:

X =

1 3,91201 5,52151 5,99151 6,39691 6,68461 6,90781 7,09011 7,24421 7,37781 7,6009

Y =

3,47614,03134,21214,34704,45434,51824,58244,63234,67984,7643

Page 185: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

C.1. Analiza de regresie 175

Pentru calcularea coeficientilor formei liniare utilizam relatia 2.19:

C =(XT X

)−1XT Y =

(c0

c1

)=

(2,1165

0,3481

)Revenind la coeficientii formei neliniare (relatia C.3) obtinem a=e2,1165=8,302

si b=0,3481, expresia ce descrie transferul termic ın schimbatorul de caldura fiind:

Nu = 8,302 Re0,3481

Testarea modelului matematic obtinut se face prin cele doua teste statisticeamintite ın cadrul capitolului 2: testarea adecvantei modelului si testarea semnifi-catiei coeficientilor.

Pentru testarea adecvantei modelului calculam valoarea raportului Fisher. Cal-culul marimilor necesare ın testul Fisher sunt prezentate ın tabelul C.4.

Tabela C.4. Prelucrarea datelor experimentale de la transferul termic.

Exp. mi Nui νi σ2i σ2

i νi Nucalc

∑(Nui −Nucalc)

1 3 32,33 2 0,67 1,33 32,41 0,682 2 56,33 2 0,67 1,33 56,75 1,183 2 67,50 1 0,50 0,50 66,84 1,384 3 77,25 3 0,75 2,25 76,97 1,075 3 86,00 2 2,00 4,00 85,08 4,566 3 91,67 2 0,67 1,33 91,95 0,917 4 97,75 3 0,75 2,25 97,98 0,958 4 102,75 3 0,75 2,25 103,38 2,329 4 107,75 3 0,75 2,25 108,29 1,94

10 4 117,25 3 0,75 2,25 117,04 0,93∑34 - 24 - 19,74 - 15,92

Valoarea dispersiei reproductibilitatii datelor experimentale, σ2y , este:

σ2y =

m∑i=1

σ2i νi

m∑i=1

νi

=19,74

24= 0,8225

iar a dispersiei adecvantelor, σ2ad:

σ2ad =

m∑j=1

(Yj − yj)2

m−Nc

=15,92

34− 2= 0,4975

Page 186: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

176 Exemple

Raportul Fisher are valoarea:

Fcalc =σ2

y

σ2ad

=0,8225

0,4975= 1,6533

Valoarea calculata a distributiei Fisher se compara cu valoarea tabelata (aleasadin tabelul B.2). Pentru pragul de semnificatie α = 5 %, valoarea tabelata a distri-butiei Fisher este:

F (ν1, ν2, 1− α) = F (24, 32, 0,95) = 1,87

Deoarece Fcalc ≤ F , testul Fisher confirma adecvanta modelului obtinut.Pentru testarea semnificatiei coeficientilor calculam dispersia coeficientilor, σ2

c

cu relatia:

σ2c =

σ2y

m=

0,8225

34= 0,02419

Valoarea tabelata a distributiei Student (aleasa din tabelul B.1) este:

t(ν, 1− α) = t(24, 0,95) = 2,06

Intervalul de ıncredere al coeficientilor, ∆ci, are valoare:

∆ci = t√

σ2c = 2,06

√0,02419 = 0,3204

Deoarece toti coeficientii modelului au valori absolute mai mari decat intervalulde ıncredere al coeficientilor, acestia sunt semnificativi.

Modelul matematic final al procesului de transferul termic ın schimbatorul decaldura este dat de relatia:

Nu = 8,302 Re0,3481

Page 187: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

C.2. Metode analitice de optimizare 177

C.2. Metode analitice de optimizare

C.2.1. Dimensionarea unui vas de stocare

Sa se dimensioneze un vas de stocare de forma cilindrica cu fund si capac plan devolum VR = 1000 m3.

................................................................................................................................................................................................................................................................................................................................. ............. ............. ............... ................ ................. .................. ........................... ........................... ........................... ........................... .................. .................

............................................................................................................................................

............................

..................................... ............. ............. ............... ................ ................. .................. ........................... ........................... ........................... ........................... .................. ..............................................................................................................

..................................... . ........... .

....... .... ........... ........ ........ ......... ........ ........ ........ . ........... . ............ ........... ........ ........................... ?

6

� -d

h

Figura C.1. Vas de stocare.

Dimensionarea vasului se va executa ın asa felıncat costul materialului utilizat pentru confectio-narea vasului sa fie minim, dar cu respectarea con-ditiei de montaj ca ınaltimea vasului sa nu depa-seasca hR ≤ 5 m.

Rezolvare

Constructia unui vas de stocare se face utilizandun material ales ın functie de presiunea, tempera-tura si viteza de coroziune a fluidului stocat ın vas.Materialul de constructie se prezinta sub forma defoi de tabla caracterizate prin grosime si pret deachizitie raportat la greutate. Imbinarea foilor detabla se face, ın general prin sudura.

Pentru constructia unui astfel de vas, modelul matematic este dat de urmatorulsistem de ecuatii:

VR =πd2

R

4h (C.6)

SR = Sl + 2 Scapac = πdR h + 2πd2

R

4(C.7)

Vmat = SR δ (C.8)

mmat = Vmat ρmat (C.9)

unde: VR - volumul vasului de stocare, [m3];dR - diametrul vasului de stocare, [m];h - ınaltimea vasului, [m];SR - suprafata totala a vasului, [m2];Sl - suprafata laterala a vasului, [m2];Scapac - suprafata capacului/fundului vasului, [m2];Vmat - volumul materialului utilizat, [m3];δ - grosimea tablei, [m];mmat - masa materialului utilizat, [kg];ρmat - densitatea materialului tablei, [kg/m3];

Page 188: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

178 Exemple

Costul materialului inglobat ın constructia vasului de stocare este dat de expre-sia:

cost = pmat mmat (C.10)

unde: cost - costul materialelor de constructie al vasului de stocare;pmat - pret unitar tabla, [u.v./kg];

Utilizand expresiile ınglobate ın modelul matematic (relatiile C.6-C.9) expresiacriteriului de optimizare (relatia C.10) devine:

cost = pmat ρmat δ

(πdRh + 2

πd2R

4h

)(C.11)

In aceasta expresie δ este determinat de temperatura, presiunea si viteza de corozi-une a fluidului din vas. Fluidul ce se stocheaza ın vas este determinat ın specificatiilede proiectare ale vasului, astfel ıncat aceste caracteristici sunt predeterminate. Ast-fel δ, ρmat si pmat reprezinta niste constante ın problema de optimizare.

Eliminand aceste constante (ımpreuna cu constanta π) rezulta forma finala afunctiei obiectiv:

fob = dR h +d2

R h

2(C.12)

supusa la restrictiile:

VR =πd2

R

4h = 1000

h≤ 5

(C.13)

Efectuand notatiile x1 = dR si x2 = h forma algebrica a problemei de optimizareeste:

minx

fob = x1x2 +x2

1x2

2(C.14)

cu restrictiile:

x21 x2 =

4 · 1000

π

x2 ≤ 5

(C.15)

Problema de optimizare include doua variabile de decizie si este supusa la douarestrictii, una de tip inegalitate si una de tip egalitate.

Rezolvarea acestei probleme este posibila prin metode analitice deoarece numa-rul de variabile de devizie este mic iar forma functiei obiectiv si a restrictiilor suntsimple.

Intr-o prima faza, aplicand metoda descrisa la pagina 43, transformam restrictiainegalitate ın restrictie egalitate prin utilizarea unei variabile fictive strict pozitivenotate cu x3:

x2 + x23 = 5

Page 189: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

C.2. Metode analitice de optimizare 179

In acest mod obtinem o problema echivalenta cu problema initiala de optimizaredar ın care avem doua restrictii de tip egalitate. Pentru rezolvarea acesteia aplicammetoda multiplicatorilor lui Lagrange (descrisa la pagina 39).

Functia lui Lagrange este:

L(x1, x2, x3, λ1, λ2) = x1x2 +x2

1x2

2−λ1

(x2

1x2 −4 · 1000

π

)−λ2(x2 +x2

3−5) (C.16)

Rezolvarea acestei probleme, echivalenta cu cea initiala, se face prin anulareaderivatelor de ordinul I ın raport cu cele 5 variabile de decizie (x1, x2, x3, λ1 si λ2),obtinand sistemul:

∂L

∂x1

= x2 + x1x2 − 2λ1x1x2 = 0

∂L

∂x2

= x1 +x2

1

2− λ1x

21 − λ2 = 0

∂L

∂x3

=−2λ2x3 = 0

∂L

∂λ1

= x21x2 −

4 · 1000

π= 0

∂L

∂λ2

= x2 + x23 − 5 = 0

(C.17)

Solutia reala a sistemului de ecuatii este x1 = 15,96, x2 = 5, x3 = 0 (λ1, λ2 > 0)si corespunde unui minim al functiei obiectiv extinse a lui Lagrange.

Aceasta solutie este si solutia problemei initiale de optimizare.Revenind la notatiile facute initial, avand la baza criteriului de optimizare si

restrictiile impuse, dimensiunile optime ale vasului de stocare sunt: dR = 15,96 msi h = 5 m.

C.2.2. Grosimea optima a izolatiei unei conducte

Sa se stabileasca grosimea optima δ∗iz a unei izolatii termice din polistiren pentru oconducta de transport a aburului saturat de pabur = 5 bar cu diametrul dc=60 mmavand lungimea L=150 m ce functioneaza h=8.000 ore anual putand fi amortizataın 10 ani de functionare.

Rezolvare

Determinarea grosimii optime a izolatiei unei conducte reprezinta o problema deminimizare ce implica o functie obiectiv de forma:

minδiz

fob = Ctotal = Cinvestitie + Coperare (C.18)

Page 190: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

180 Exemple

unde termenii reprezinta cheltuieli ın unitati valorice [u.v] iar δiz reprezinta grosimeaizolatiei, [m].

Cheltuielile de investitie, Ctotal, sunt date de cota anuala de amortizare a valoriiizolatiei:

Ctotal = Viz ρiz ciz ram (C.19)

unde: Viz - volumul izolatiei, [m3];ρiz - densitatea izolatiei, [kg/m3];ciz - costul unitar al izolatiei (impreuna cu manopera de montare),

[u.v./kg];ram - rata anuala a amortizarii izolatiei.

Pentru izolarea unei conducte, volumul izolatiei utilizate este data de expresia:

Viz = πL[(rc + δiz)

2 − r2c

]= πLδiz (δiz + 2rc) (C.20)

unde: L - lungimea conductei ce se izoleaza, [m];rc - raza exterioara a conductei, [m].

.

.....................................................

..................................................

...............................................

............................................

.........................................

.....................................

..................................

..............................

........... .......

-

6t, [0C]

r, [m]

s

src rc + δiz

-� δiz

Abur Izolatie Aer

t

tamb

Figura C.2. Transferul termic prinizolatia conductei.

Cheltuielile de operare, Coperare, suntdate de valoarea pierderilor de calduraprin izolatie:

Coperare = Q cen h (C.21)

unde: Q - cantitatea de energie pier-duta prin izolatie, [W];

cen - costul unitar al energiei ter-mice, [u.v./W];

h - numarul anual de ore defunctionare a traseului izo-lat, [h/an].

Pentru cazul izolarii unei conductepentru calculul caldurii pierdute utili-zam relatia transferului de caldura prinpereti cilindrici coaxiali (figura C.2):

Q =2πL (t− tamb)

δiz

λiz riz

+1

αaer rext

(C.22)

unde: t - temperatura fluidului vehiculat prin conducta, [K];tamb - temperatura ambianta (media anuala), [K];λiz - conductivitatea termica a izolatiei, [W/(m·K)];riz - raza exterioara a conductei izolate, [m];αaer - coeficientul partial de transfer termic spre mediul ambiant,

[W/(m2·grd)];rext - raza exterioara a conductei izolate, [m].

Page 191: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

C.2. Metode analitice de optimizare 181

Termenii riz si rext sunt exprimate prin relatiile:

riz =(rc + δiz)− rc

ln

(rc + δiz

rc

) =δiz

ln

(1 +

δiz

rc

) (C.23)

rext = rc + δiz (C.24)

Functia obiectiv a problemei de optimizare, prin explicitarea cheltuielilor con-form relatiilor C.19÷C.24, devine:

minδiz

fob = πL δiz ρiz ciz ram (2rc + δiz) +2πL cen h (t− tamb)

1

λiz

ln

(1 +

δiz

rc

)+

1

αaer (rc + δiz)

(C.25)

Rezolvarea acestei probleme de optimizare este posibila prin aplicarea metodeianalitice de anulare a derivatei functiei obiectiv ın raport cu variabila de decizie δiz:

∂f

∂δiz

= 2πL ρiz ciz ram (rc + δiz)−

2πL cen h (t− tamb) (rc + δiz)

[1

λiz

− 1

αiz(rc + δiz)

](rc + δiz)

λiz

ln

(1 +

δiz

rc

)+

1

αaer

2 = 0(C.26)

Rezolvarea acestei ecuatii este posibila prin metode numerice.Se poate usor demonstra ca derivata de ordinul II este pozitiva, astfel ıncat

solutia relatiei C.26 este un punct de minim al functiei obiectiv descrisa de expresiaC.25.

Aplicatie numerica

Temperatura aburului saturat de pabur este de 158,20C. Caracteristicile materialuluiizolator folosit sunt: λiz=0,04 [W/(m·K)], ρiz=30 [kg/m3]. Se cunoaste ca: αaer=10[W/(m2·K)] iar tamb=18,90C.

Costurile energiei termice si a materialului izolator (inclusiv manopera de mon-tare) au fost considerate ca fiind: cen=2.5·103 [u.v./kW] si ciz=7,2·104 [u.v./m].

Notand cu x = rc + δiz si ınlocuind aceste valori ın ecuatia C.26 obtinem:

2,0358 · 108x +1,7505 · 108 − 4,3762 · 1010x

[25 x ln x + 70,3353 x + 0,1]2= 0 (C.27)

Rezolvarea acestei ecuatii neliniare se poate face printr-o metoda numerica. Solutiaobtinuta este x=0,336 m ce corespunde la δ∗iz=0,276 m.

Page 192: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

182 Exemple

C.3. Metode de eliminare

C.3.1. Temperatura optima de reactie

Reactiile consecutive, de ordinul I:

Ak1−−−→ B

k2−−−→ C (C.28)

au loc ıntr-un reactor cu amestecare perfecta de volum V . Produsul valoros esteB ce poate fi valorificat cu un beneficiu de b [u.v.]/kmol. Compusul A poate firecuperat la valoarea a [u.v.]/kmol, iar compusul C se valorifica cu c [u.v.]/kmol.

Sa se determine temperatura optima de reactie TR ce asigura maximizarea bene-ficiului ın situatia unui debit de alimentare reactant FR, tinand cont ca temperaturade reactie poate varia doar ıntre limitele TR,min ≤ TR ≤ TR,max.

Rezolvare

Maximizarea beneficiului obtinut ın acest reactor corespunde unei probleme de op-timizare ın care functia obiectiv este:

maxTR

fob = a cA FR + b cB FR + c cC FR (C.29)

unde: cA, cB si cC sunt concentratiile molare ale compusilor A, B si C ın fluxul deiesire din reactor FR.

Pentru a explicita termenii din functia obiectiv ın functie de variabila de decizieTR trebuie sa scriem modelul matematic al sistemului.

Pentru aceasta scriem ecuatiile de bilant de masa pentru cei trei compusi:

- pentru compusul A:

cA,0 FR − cA FR + rA VR = 0 (C.30)

- pentru compusul B:

cB,0 FR − cB FR + rB VR = 0 (C.31)

- pentru compusul C:−cC FR + rC VR = 0 (C.32)

Vitezele de reactie rA, rB si rC sunt date de expresiile:

rA =−k1cA = −k1,0 e−E1/(R TR)cA

rB = k1cA − k2cB = k1,0 e−E1/(R TR)cA − k2,0 e−E2/(R TR)cB

rC = k2cB = k2,0 e−E2/(R TR)cB

(C.33)

Page 193: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

C.3. Metode de eliminare 183

Din ecuatiile C.30÷C.33 putem exprima concentratiile compusilor A, B si C dinfluxul de iesire FR:

cA =cA,0

1 + τk1,0 e−E1/(R TR)(C.34)

cB =cB,0

1 + τk2,0 e−E2/(R TR)+

τk1,0 e−E1/(R TR)cA,0

(1 + τk1,0 e−E1/(R TR)) (1 + τk2,0 e−E2/(R TR))(C.35)

cC =τk2,0 e−E2/(R TR)cB,0

1 + τk2,0 e−E2/(R TR)+

τ 2k1,0 e−E1/(R TR) k2,0 e−E2/(R TR)cA,0

(1 + τk1,0 e−E1/(R TR)) (1 + τk2,0 e−E2/(R TR))(C.36)

unde τ este timpul de stationare.Inlocuind aceste expresii ın functia obiectiv, obtinem:

maxTR

fob = a cA FR + b cB FR + c cC FR =

=a FR cA,0

1 + τk1,0 e−E1/(R TR)+ b FR

[cB,0

1 + τk2,0 e−E2/(R TR)+

+τk1,0 e−E1/(R TR)cA,0

(1 + τk1,0 e−E1/(R TR)) (1 + τk2,0 e−E2/(R TR))

]+

+ c FR

[τk2,0 e−E2/(R TR)cB,0

1 + τk2,0 e−E2/(R TR)+

+τ 2k1,0 e−E1/(R TR) k2,0 e−E2/(R TR)cA,0

(1 + τk1,0 e−E1/(R TR)) (1 + τk2,0 e−E2/(R TR))

](C.37)

Functia obiectiv obtinuta este dependenta de o singura variabila de decizie. Pentrurezolvare apelam la o metoda numerica de optimizare deoarece expresia functieiobiectiv este destul de complexa si din acest motiv greu derivabila analitic.

Aplicatia numerica

Se dau urmatoarele valori numerice:

VR = 10 m3 FR = 0,15 m3/s;

TR,min = 600C; TR,max = 900C;

cA,0 = 10 kmol/m3; cB,0 = 0,01 kmol/m3;

k1,0 = 6·107 s−1; k2,0 = 8·1012 s−1;

E1

R= 7.500 K;

E2

R= 12.000 K;

a = 2.000 [u.v.]/kmol; b = 34.000 [u.v.]/kmol;

c = 80 [u.v.]/kmol.

Page 194: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

184 Exemple

Inlocuind aceste valori ın expresia functiei obiectiv C.37, obtinem:

maxTR

fob =3000

1 + 4 · 109 e−7500/TR+

51 + 6,4 · 1013 e−12000/TR

1 + 5,33 · 1014 e−12000/TR+

+2, 04 · 1014 e−7500/TR + 2,56 · 1026 e−19500/TR

(1 + 4 · 109 e−7500/TR)(1 + 5,33 · 1014 e−12000/TR)

(C.38)

Identificarea solutiei problemei de optimizare s-a facut prin aplicarea algoritmu-lui metodei sectiunii de aur pornind de la intervalul de cautare TR ∈[333K, 363K].Pentru o precizie de cautare de ε ≤ 1 · 10−3 rezultatele obtinute sunt prezentate ıntabelul C.5.

Tabela C.5. Maximizarea beneficiului prin metoda sectiunii de aur.

j xmin x1 x2 xmax fob(x1) fob(x2) ∆

1 333,000 344,460 351,540 363,000 22624,082 20431,999 30,000

2 333,000 340,082 344,460 351,540 22439,943 22624,082 18,540

3 340,082 344,460 347,163 351,540 22624,082 22136,664 11,457

4 340,082 342,787 344,460 347,163 22693,617 22624,082 7,080

5 340,082 341,754 342,787 344,460 22648,899 22693,617 4,377

6 341,754 342,787 343,426 344,460 22693,617 22687,966 2,705

7 341,754 342,393 342,787 343,426 22684,343 22693,617 1,671

8 342,393 342,787 343,031 343,426 22693,617 22694,494 1,033

9 342,787 343,031 343,182 343,426 22694,494 22693,164 0,639

10 342,787 342,938 343,031 343,182 22694,602 22694,494 0,395

11 342,787 342,880 342,938 343,031 22694,395 22694,602 0,244

12 342,880 342,938 342,974 343,031 22694,602 22694,626 0,151

13 342,938 342,974 342,996 343,031 22694,626 22694,600 0,093

...23 342,966 342,966 342,966 342,967 22694,627 22694,627 7,5·10−4

Obs.: Coloanele subliniate din corpul tabelului indica intervalele de cautare ramase dupaeliminare. De exemplu, ın eliminarea j = 7 intervalul ramas este [342,393; 343,426].

Solutia problemei de optimizare este: T ∗R = 342,9665K ± 7,5 · 10−4K, adica

T ∗R '69,80C.

Page 195: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

C.3. Metode de eliminare 185

C.3.2. Debitul optim de alimentare al unui reactor continuu

Se considera reactia reversibila de ordinul I:

Ak1−−−→←−−−k2

B (C.39)

ce are loc ıntr-un reactor continuu operat ın conditii izoterme la temperatura TR.Reactia are loc ıntr-un reactor de volum V prevazut cu un sistem de agitare

precum si cu o manta de racire. Amestecul de reactie evacuat din reactor estesupus unui proces de separare a componentului B, considerat component valoros.Reactantul A nereactionat este recirculat.

Se cere determinarea debitului optim de alimentare cu materia prima F ∗R, avand

concentratia cA,0 ın asa fel ıncat beneficiul obtinut sa fie maxim.

Rezolvare

Beneficiul poate fi exprimat ca o diferenta dintre venitul realizat prin valorificareaprodusului B si totalul cheltuielilor necesare pentru producerea sa.

Totalul costurilor pentru obtinerea produsului B este dat de expresia:

COST = Cmp + Cop + Csep (C.40)

unde: Cmp - costul materiei prime;Cop - costurile de operare ale instalatiei;Csep - costurile de separare ale produsului B.

Pentru exprimarea acestor costuri este necesara obtinerea unui model matematic alreactorului. Reactorul poate fi modelat ca un reactor cu amestecare perfecta.

Ecuatiile de bilant pot fi scrise pentru cele doua componente:

- pentru componenta A:

cA,0 FR − cA FR + rA VR = 0 (C.41)

- pentru componenta B:−cB FR + rB VR = 0 (C.42)

unde: FR - debitul de alimentare al reactorului, [m3/s];cA,0 - concentratia initiala a componentului A, [kmol/m3];cA, cB - concentratiile componentelor A si B la evacuarea din

reactor, [kmol/m3];VR - volumul reactorului, [m3];rA, rB - vitezele de reactie pentru componentele A si B,

[kmol/s], date de expresiile:

Page 196: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

186 Exemple

rA =−k1 cA + k2 cB = −k1,0 e−E1/(R TR)cA + k2,0 e−E2/(R TR)cB

rB = k1 cA − k2 cB = k1,0 e−E1/(R TR)cA − k2,0 e−E2/(R TR)cB

(C.43)

Costurile din relatia C.40 sunt exprimate prin urmatoarele ecuatii:

• costul materiei prime:Cmp = a FR cB (C.44)

unde: a - reprezinta costul unitar al materiei prime A, [u.v./kmol].

Aceasta parte a costurilor totale include doar cheltuielile proportionale cucantitatea de A reactionat, ıntrucat partea nereactionata este reutilizata dupafaza de separare.

• costurile de operare ale instalatiei:

Cop = b + c FR (C.45)

unde: b - include componentele de cost ce sunt independente deintensitatea operarii instalatiei, cum ar fi: cheltuielile cuforta de munca, pt. amestecare, etc., ın [u.v./s] ;

c - include acele elemente de cost ce sunt dependente deintensitatea de operare a instalatiei, cum ar fi: chel-tuielile cu agentul termic, cheltuielile de vehiculare afluidelor, cheltuielile de reparatii, amortizarea, etc., ın[u.v./m3];

• costul separarii compusului valoros:

Csep = d + e FR + f cB (C.46)

unde: d - reprezinta componentele de cost ce sunt independentede cantitatea si calitatea amestecului supus separarii, ın[u.v./s];

e - reprezinta acele componente de cost ce depind de debitulde amestec separat, ın [u.v./m3];

f - reprezinta componentele de cost ce depind de concen-tratia compusului B ın amestecul supus separarii, ın[u.v./(kmol·s/m3)].

Veniturile realizate sunt date de valorificarea produsului B:

VENIT = g FR cB (C.47)

Page 197: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

C.3. Metode de eliminare 187

unde: g - reprezinta costul unitar al produsului B, ın [u.v./kmol].

Beneficiul realizat este dat de expresia:

BEN = VENIT− COST == g FR cB − [(a FR cB) + (b + c FR) + (d + e FR + f cB)] =

=−(b + d)− (c + e)FR − fcB + (g − a)FR cB

(C.48)

Variabila de decizie ın aceasta problema este debitul de alimentare al reactoruluiFR, astfel toate elementele din ecuatia C.48 trebuie sa fie exprimate ın functiede aceasta variabila. Pentru aceasta trebuie sa exprimam cB functie de FR. Dinmodelul matematic al reactorului rezulta:

cB =cA,0 k1 FR VR

(FR + k1 VR)(FR + k2 VR)− k1k2V 2R

(C.49)

In urma acestor considerente, functia obiectiv este:

maxFR

fob =−(b + d)− (c + e)FR +[(g − a)FR − f ] cA,0 k1 FR VR

(FR + k1 VR)(FR + k2 VR)− k1k2V 2R

(C.50)

Pentru rezolvarea acestei probleme apelam la o metoda de eliminare. Pentru acea-sta, alegem un domeniu de cautare de forma FR,min ≤ FR ≤ FR,max si precizia dedeterminare a extremului, ε.

Aplicatie numerica

Se dau urmatoarele valori numerice:

VR = 10 m3 TR = 700C;

k1,0 = 6·108 s−1; k2,0 = 4·1012 s−1;

E1

R= 9.500 K;

E2

R= 14.500 K;

cA,0 = 1 kmol/m3; a = 2 [u.v./kmol];

b = 0,2 [u.v]; c = 0,3 [u.v./(m3/s)];

d = 0,2 [u.v]; e = 0,1 [u.v./(m3/s)];

f = 0,1 [u.v./(kmol/m3)]; g = 90 [u.v./kmol];

FR,min = 0,01 [m3/s]; FR,max = 0,2 [m3/s];

ε = 1·10−2.

Page 198: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

188 Exemple

Inlocuind aceste valori ın expresia functiei obiectiv, obtinem:

maxFR

fob =−0,4− 0,4 FR +0,5 FR − 5,68 · 10−4

FR + 0,0057(C.51)

Rezolvarea acestei probleme se face prin metoda perechilor secventiali pornind dela domeniul de cautare FR ∈[0,01; 0,2]m3/s. Pentru precizia de cautare cerutarezultatele obtinute sunt prezentate ın tabelul C.3.2.

Tabela C.6. Determinarea debitului optim de alimentare.

i FR,min F(i)R FR,max f ′ob(FR,min) f ′ob(F

(i)R ) f ′ob(FR,max) ∆

1 10,000 95,000 200,000 + − − 190,002 10,000 52,500 95,000 + − + 85,003 52,500 73,750 95,000 + + + 42,504 73,750 84,375 95,000 + + + 21,255 84,375 89,687 95,000 + − + 10,626 84,375 87,031 89,687 + − + 5,317 84,375 85,703 87,031 + + + 2,658 85,703 86,367 87,031 + + + 1,329 86,367 86,699 87,031 + + + 0,66

10 86,699 86,865 87,031 + − + 0,3311 86,699 86,782 86,865 + − + 0,1612 86,699 86,740 86,782 + − + 8,30·10−2

13 86,699 86,719 86,740 + + + 4,15·10−2

14 86,719 86,730 86,740 + + + 2,07·10−2

15 86,730 86,735 86,740 + + + 1,03·10−2

16 86,735 86,738 86,740 + + + 5,01·10−3

Solutia obtinuta este F ∗R=86,738 l/s.

Aceasta solutie corespunde unui beneficiu maxim de BEN∗= 0,028328 [u.v./s].

Page 199: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

C.4. Metode de urcare-coborare 189

C.4. Metode de urcare-coborare

C.4.1. Compozitia la echilibru a unui amestec gazos

In procedeul de obtinere a H2SO4 prin procedeul de contact amestecul de gaze ceintra ın reactorul ce lucreaza la temperatura de 5000C si presiunea de 1 atm. arecompozitia:

SO2 7,8 [%]v,

O2 10,8 [%]v,

N2 81,4 [%]v.

Sa se calculeze compozitia gazelor care ies din reactor prin metoda minimizariientalpiei libere.

Rezolvare

Compozitia la echilibru a unui amestec de N componenti ın faza gazoasa la tem-peratura T si presiunea P poate fi determinata prin minimizarea entalpiei libere aamestecului. Dependenta de presiune a entalpiei libere pentru specia i se calculeazacu relatia:

∆GT,i = ∆G0T,i +

P∫p0=1

V dp (C.52)

unde: ∆GT,i - entalpia libera a speciei i la temperatura T si presiunea P ;∆G0

T,i - entalpia libera a speciei i la temperatura T si presiunea stan-dard p0;

V - volumul.

Considerand specia chimica i gaz ideal, stiind ca pentru un mol p V = R T , relatiaanterioara devine:

∆GT,i = ∆G0T,i +

P∫p=1

RTdp

p= ∆G0

T,i + RT ln P (C.53)

Entalpia libera a unui amestec gazos de N componenti la temperatura T si presiuneaP se calculeaza cu relatia:

∆GT,am =N∑

i=1

ni ∆GT,i (C.54)

unde ni reprezinta numarul de moli din specia i.

Page 200: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

190 Exemple

Aplicand ipoteza gazelor ideale, prin substitutia expresiei C.53 ın C.54 obtinem:

∆GT,am =N∑

i=1

ni

(∆G0

T,i + RT ln pi

)(C.55)

unde pi reprezinta presiunea partiala a speciei i.Inlocuind:

pi = yi P =ni

N∑i=1

ni

P (C.56)

unde yi este fractia molara a speciei i, obtinem:

∆GT,am =N∑

i=1

ni

[∆G0

T,i + RT ln (yi P )]

(C.57)

Prin ımpartirea la termenul RT obtinem:

∆GT,am

RT=

N∑i=1

ni

[∆G0

T,i

RT+ ln P + ln (yi P )

](C.58)

Determinarea compozitiei de echilibru implica minimizarea functiei obiectiv:

minni

fob =N∑

i=1

ni

[∆G0

T,i

RT+ ln P + ln

ni∑Ni=1 ni

](C.59)

cu respectarea restrictiilor date de legea conservarii masei:

N∑i=1

ai,j ni = bj unde j = 1, . . . ,M (C.60)

unde: ai,j - reprezinta numarul de atomi ai elementului j continuti de specia i;bj - reprezinta masa atomica totala initiala din amestec a elementului j;M - numarul total de specii atomice diferite.

Solutia trebuie sa contina doar elemente pozitive, adica:

ni ≥ 0 pentru i = 1, 2, . . . , N

Entalpia libera a componentului i se calculeaza pe baza entalpiei si entropiei curelatia:

∆G0T,i = ∆H0

T,i + T ∆S0T,i (C.61)

Page 201: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

C.4. Metode de urcare-coborare 191

Dependenta cu temperatura a entalpiei si entropiei componentului i este datade relatiile:

∆H0T,i = ∆H0

T0,i +

T∫T0

cp,i dT (C.62)

∆S0T,i = ∆S0

T0,i +

T∫T0

cp,i

TdT (C.63)

unde ∆H0T0,i si ∆S0

T0,i sunt valorile ın conditii standard.Caldura specifica cp,i a componentului i se exprima cu ajutorul relatiei de core-

lare de forma:cp,i = αi + βi T +

γi

T 2(C.64)

unde αi, βi si γi sunt constante specifice componentului i.Prin substituirea relatiilor C.62, C.63 si C.64, ın urma integrarii, din relatia

C.61 rezulta:

∆G0T,i = ∆H0

T0,i + T

(∆S0

T0,i + αi lnT

T0

)+ (αi − βiT ) (T − T0) +

+βi

2(T − T0)

2 − γi

2

[1

T − T0

+T

(T − T0)2

] (C.65)

Aplicatie numerica

Reactiile pe care le consideram a avea loc ın reactor sunt:

SO2 +1

2O2−→←− SO3 (C.66)

1

2N2 +

1

2O2−→←− NO (C.67)

Calcularea compozitiei la echilibru a amestecului se bazeaza pe datele termodi-namice ale componentelor, date care sunt prezentate ın tabelul C.7.

Conform relatiei C.65 entalpia libera a componentelor este:

∆G0T,O2

= 0 + T

(205,03 + 31,46 ln

T

T0

)+ (31,46− 3,39 · 10−3T ) ∆T +

+3,39 · 10−3

2∆2T +

3,77 · 105

2

(1

∆T+

T

∆2T

)= 195.749,52

(C.68)

∆G0T,N2

= 0 + T

(191,50 + 27,87 ln

T

T0

)+ (27,87− 4,27 · 10−3T ) ∆T +

+4,27 · 10−3

2∆2T = 180.716,58

(C.69)

Page 202: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

192 Exemple

Tabela C.7. Date termodinamice alecomponentelor amestecului de reactie.

Componenta∆H0

298 ∆S0298

cp, [J/(mol·K)]

[J/mol] [J/(mol·K)] α β · 103 γ · 10−5

O2 0 205,03 31,46 3,39 -3,77N2 0 191,50 27,87 4,27 -SO2 -296.900 248,11 42,55 12,55 5,65SO3 -395.200 256,23 57,32 26,86 -13,05NO 90.370 210,62 29,58 3,85 -0,59

∆G0T,SO2

=−296900 + T

(248,11 + 42,55 ln

T

T0

)+

+(42,55− 12,55 · 10−3T ) ∆T +12,55 · 10−3

2∆2T −

−5,65 · 105

2

(1

∆T+

T

∆2T

)= −56.740,60

(C.70)

∆G0T,SO3

=−395200 + T

(256,23 + 57,32 ln

T

T0

)+

+(57,32− 26,86 · 10−3T ) ∆T +26,86 · 10−3

2∆2T +

+13,05 · 105

2

(1

∆T+

T

∆2T

)= −134.505,29

(C.71)

∆G0T,NO = 90370 + T

(210,62 + 29,58 ln

T

T0

)+

+(29,58− 3,85 · 10−3T ) ∆T +3,85 · 10−3

2∆2T +

+0,59 · 105

2

(1

∆T+

T

∆2T

)= 288.045,37

(C.72)

unde T = 500 + 273 = 773K si ∆T = T - T0 = 773 - 298 = 475K.

Page 203: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

C.4. Metode de urcare-coborare 193

In aceste conditii functia obiectiv devine:

minnO2 , nN2 ,

nSO2 , nSO3 ,nNO

[nO2

(195.749,52

RT+ ln P + ln

nO2∑ni

)+

+nN2

(180.716,58

RT+ ln P + ln

nN2∑ni

)+

+nSO2

(-56.740,60

RT+ ln P + ln

nSO2∑ni

)+

+nSO3

(-134.505,29

RT+ ln P + ln

nSO3∑ni

)+

+ nNO

(288.045,37

RT+ ln P + ln

nNO∑ni

)]

(C.73)

unde: ∑ni = nO2 + nN2 + nSO2 + nSO3 + nNO

Tabela C.8. Coeficientiiai,j si bi ai speciilor si

compusilor din amestec.

HHHHHHj

iO N S

O2 2 0 0N2 0 2 0SO2 2 0 1SO3 3 0 1NO 1 1 0

bj 0,372 1,628 0,078

Restrictiile la care este supusa aceasta functieobiectiv sunt date de ecuatiile de bilant de masapentru oxigen, azot si sulf. Aceste relatii sunt iden-tificate pe baza coeficientilor ai,j si bj prezentate ıntabelul C.8:

2 nO2 + 2 nSO2 + 3 nSO3 + nNO = 0,3722 nN2 + nNO = 1,628nSO2 + nSO3 = 0,078

(C.74)

Problema de optimizare este supusa la 3 restric-tii si are un numar de 5 variabile de decizie. Putemsa exprimam din sistemul de restrictii 3 variabilede decizie ın functie de celelalte doua, prin acestaputem reduce dimensionalitatea problemei de la 5variabile de decize la doua. Fie aceste doua varia-bile de decizie nNO si nSO3 .

Expresiile de substitutie pentru nN2 , nSO2 si nO2 sunt:

nN2 = 0,814− 0,5 nNO

nSO2 = 0,078− nSO3

nO2 = 0,108− 0,5 nSO3 − 0,5 nN2

(C.75)

Page 204: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

194 Exemple

Rezolvarea acestei probleme s-a facut utilizand functia fmins din MATLAB prinscrierea unei functii externe ce calculeaza valoarea entalpiei libere a amestecului degaze ın conditiile prezentate ın problema. Functia este:

function y = AmGazR(x);

% Calculeaza valoarea entalpiei libere a

% amestecului de gaze la T=500 grd.C si P=1 atm.

%

% stabilirea constantelor

T = 500 + 273; % [K]

T0 = 298; % [K]

DT = T - T0; % [K]

P = 1; % [atm]

R = 8.314; % [J/(mol K)]

% identificarea variabilelor de decizie

nSO3 = x(1);

nNO = x(2);

% fixarea restrictiilor

nSO2 = 0.078 - nSO3;

nO2 = 0.108 - 0.5*nSO3 - 0.5*nNO;

nN2 = 0.814 - 0.5*nNO;

% calcularea entalpiei libere a componentilor

G_O2 = 0 + T*(205.03 + 31.46*log(T/T0)) + ...

(31.46 - 3.39e-3*T)*DT + 3.39e-3/2*DT^2 + ...

3.77e-5/2*(1/DT + T/DT^2);

G_N2 = 0 + T*(191.5 + 27.87*log(T/T0)) + ...

(27.87 - 4.27e-3*T)*DT + 4.27e-3/2*DT^2;

G_SO2 = -296900 + T*(248.11 + 42.55*log(T/T0)) + ...

(42.55 - 12.55e-3*T)*DT + 12.55e-3/2*DT^2 - ...

5.65e-5/2*(1/DT + T/DT^2);

G_SO3 = -395200 + T*(256.23 + 57.32*log(T/T0)) + ...

(57.32 - 26.86e-3*T)*DT + 26.86e-3/2*DT^2 + ...

13.05e-5/2*(1/DT + T/DT^2);

G_NO = 90370 + T*(210.62 + 29.58*log(T/T0)) + ...

Page 205: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

C.4. Metode de urcare-coborare 195

(29.58 - 3.85e-3*T)*DT + 3.85e-3/2*DT^2 + ...

0.59e-5/2*(1/DT + T/DT^2);

% numarul total de moli

nT = nO2 + nN2 + nSO2 + nSO3 + nNO;

% calcularea elementelor din functia obiectiv

% cu impunerea domeniului de cautare >= 0

if nO2 <= 0

y1 = 1e10;

else

y1 = nO2*(G_O2/(R*T) + log(P) + log(nO2/nT));

end;

if nN2 <= 0

y2 = 1e10;

else

y2 = nN2*(G_N2/(R*T) + log(P) + log(nN2/nT));

end;

if nSO2 <= 0

y3 = 1e10;

else

y3 = nSO2*(G_SO2/(R*T) + log(P) + log(nSO2/nT));

end;

if nSO3 <= 0

y4 = 1e10;

else

y4 = nSO3*(G_SO3/(R*T) + log(P) + log(nSO3/nT));

end;

if nNO <= 0

y5 = 1e10;

else

y5 = nNO*(G_NO/(R*T) + log(P) + log(nNO/nT));

end;

% calcularea valorii functiei obiectiv

y = y1 + y2 + y3 + y4 + y5;

Minimizarea acestei functii obiectiv s-a facut prin urmatorul program MATLAB:

Page 206: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

196 Exemple

%PROGRAM pt. calcularea compozitiei

% la echilibru a amestecului

% gazos de reactie

%

% setare valori pt. vectorul OPTIONS

OPTIONS(2) = 1e-20; % precizia determinare x

OPTIONS(3) = 1e-20; % precizia determinare f(x)

OPTIONS(14) = 1000; % numar maxim iteratii

% apelarea functiei fmins

c = fmins(’AmGazR’,[1e-3 1e-3],OPTIONS);

% identificarea solutiei obtinute

nSO3 = c(1);

nNO = c(2);

nSO2 = 0.078 - nSO3;

nO2 = 0.108 - 0.5*nSO3 - 0.5*nNO;

nN2 = 0.814 - 0.5*nNO;

% calcularea compozitiei de echilibru

nT = nO2+nN2+nSO2+nSO3+nNO;

cO2 = nO2/nT;

cSO2 = nSO2/nT;

cSO3 = nSO3/nT;

cNO = nNO/nT;

cN2 = nN2/nT;

% afisarea solutiei optime

disp([cO2 cSO2 cSO3 cNO cN2]’);

Solutia identificata pe aceasta cale este data de urmatoarea compozitie a ames-tecului de gaze la iesirea din reactor:

SO2 4,263 · 10−11 [%]v,

O2 7,180 [%]v,

N2 84,703 [%]v,

SO3 8,116 [%]v,

NO 4,433 · 10−6 [%]v.

(C.76)

Page 207: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

C.4. Metode de urcare-coborare 197

C.4.2. Determinarea debitelor optime de gaz proaspat

CATALIZATOR

& %

' $

6

6

Gazproaspatpentruracire

Gazproaspatpentru

alimentare

Debit total gaz proaspat

Figura C.3. Reactorul de sintezaa amoniacului.

Sinteza amoniacului la presiune medie are locıntr-un reactor catalitic multistrat cu raciredirecta a gazului de sinteza cu gaz proaspatintrodus ıntre straturi.

Sa se calculeze distributia debitelor degaz proaspat la alimentarea reactorului si laracirea directa dintre straturile de catalizatorastfel ıncat ın conditiile de lucru date sa seobtina conversia maxima a reactantilor.

Rezolvare

Procesul de sinteza a amoniacului are loc dupareactia:

1

2N2 +

3

2H2−→←− NH3 (C.77)

utilizand catalizatori pe baza de fier.Modelul matematic al reactorului de sinte-

za a amoniacului s-a dezvoltat tinand cont deurmatoarele ipoteze simplificatoare:

• reactorul functioneaza adiabatic;

• curgerea gazelor prin stratul decatalizator se aproximeaza prin modelul de curgere cu deplasare;

• se neglijeaza pierderile de presiune pe stratul catalitic.

Ecuatiile modelului matematic, ın conditiile simplificatoare amintite sunt:

dz=

S

F 0N2

vR (C.78)

dT

dz=

S ∆HR

cp F 0vR (C.79)

unde: ξ - conversia;T - temperatura;S - sectiunea transversala a reactorului;vR - viteza de reactie;F 0

N2- debit molar de azot ın fluxul de gaz de sinteza la alimentareareactorului;

F 0 - debit molar de gaz de sinteza la alimentarea reactorului;∆HR - entalpia reactiei;

Page 208: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

198 Exemple

cp - caldura specifica a gazului de sinteza;z - coordonata pe ınaltimea stratului de catalizator.

Procesul complex de sinteza, pe baza datelor din literatura, este cel mai binedescris de modelul Tempkin-Pıjev prin care viteza de reactie este data de expresia:

vR =k2√p

[y∗2NH3

y∗3H2y∗N2

·yN2

√y3

H2

yNH3

−yNH3√

y3H2

](C.80)

unde: y∗i reprezinta fractiile molare la echilibru iar yi fractiile molare momentane alecompusilor, p presiunea de lucru si k2 constanta vitezei de reactie dat de expresia:

k2 = k450

723,16√

0,753

273,15 εe

1

723.15−

1

T

A

R

(C.81)

unde: A, k450 si ε sunt constante caracteristice catalizatorului utilizat.Entalpia reactiei se calculeaza cu relatia empirica propusa de Gillespie si Beattie:

∆HR = 9157,09 + p

(0,54526 +

840,609

T+

4,59734 · 108

T 3

)+

+ 5,34685 T + 2,525 · 10−4 T 2 − 1,69167 · 10−6 T 3

(C.82)

Tabela C.9. Coeficientii expresieicaldurii specifice.

Component a b · 103 c · 106

N2 6,76 0,60 0,13H2 6,85 0,28 0,22

NH3 6,70 6,30 -CH4 5,90 9,60 -Ar 4,98 - -

Caldura specifica a gazului de sin-teza se calculeaza prin relatia:

cp =∑

i

cp,i yi (C.83)

unde cp,i sunt caldurile specifice alecomponentelor gazului de sinteza cal-culate cu o relatie de forma:

cp = a + b T + c T 2 (C.84)

unde coeficientii a, b si c ai polinomu-lui sunt prezentate ın tabelul C.9.

Conversia de echilibru se calculeaza pe baza expresiei constantei de echilibru areactiei:

Ky =y∗NH3√y∗N2

y∗3H2

= pKa

(C.85)

unde constantele Ka si Kγ se calculeaza cu relatiile:

lg Ka = 2,6899− 2,691122 lg T − 5,519265 · 10−5 T+

+ 1,848863 · 10−7 T 2 +2001,6

T

(C.86)

Page 209: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

C.4. Metode de urcare-coborare 199

Kγ =γ∗NH3√γ∗N2

γ∗3H2

(C.87)

Coeficientii de fugacitate sunt calculati cu formulele:

γN2 = 0,9431737 + 0,3101804 · 10−3 T + 0,295896 · 10−3 p−

− 0,2707279 · 10−6 T 2 + 0,4775207 · 10−6 p2(C.88)

ln γH2 =

{p e

(0,541− 3,8402

8√

T)− p2 e

(−15,98− 0,136

√T)

+

+ 300 e(-5,941− 0,011901 T )[e(−300 p) − 1

]} (C.89)

γNH3 = 0,1438996 + 0,2028538 · 10−2 T − 0,4487672 · 10−3 p−

− 0,1142945 · 10−5 T 2 + 0,2761212 · 10−6 p2(C.90)

Concentratiile de echilibru se exprima prin relatiile:

y∗H2=

3F 0N(1− ξe)

2F 0N(2− ξe) + (Fa,i − Fr,i)(y0

NH3+ y0

CH4+ y0

Ar)(C.91)

y∗N2=

F 0N(1− ξe)

2F 0N(2− ξe) + (Fa,i − Fr,i)(y0

NH3+ y0

CH4+ y0

Ar)(C.92)

y∗NH3=

2F 0Nξe + y0

NH3(Fa,i − Fr,i)

2F 0N(2− ξe) + (Fa,i − Fr,i)(y0

NH3+ y0

CH4+ y0

Ar)(C.93)

unde: ξe - conversia la echilibru;i - numarul stratului de catalizator, i = 1, . . . , 4;Fa,i - debitul de gaz de sinteza la alimentarea stratului i, Fa,1 = F 0;Fr,i - debitul de gaz de sinteza proaspat pentru racirea amestecului

de reactie la iesirea de pe stratul i;y0

i - concentratiile initiale ale componentilor din gazul de sinteza.

Prin ınlocuirea ın relatia C.85 a concentratiilor la echilibru date de relatiileC.91÷C.93 se obtine o ecuatie de gradul II pentru calcularea conversiei la echilibru:

a ξ2e − 2b ξe + c = 0 (C.94)

unde:a = 4 + 31,5Ky (C.95)

Page 210: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

200 Exemple

b = 4 + 31,5Ky +(Fa,i + Fr,i)(y

0CH4

+ y0Ar)

F 0N2

(C.96)

c = 31,5Ky − y0NH3

(Fa,i + Fr,i)[4 + (Fa,i + Fr,i)(y0NH3

+ y0CH4

+ y0Ar)]

F 0N2

(C.97)

Concentratiile curente ale componentilor si debitul de gaz de sinteza se recalcu-leaza pe baza bilantului de masa, tinand cont de conversia curenta ξ.

s = 1− y0N2

ξ

Fi = sFi

yN2 =y0

N2(1− ξ)

s

yH2 =y0

H2− 3y0

N2ξ

s

yNH3 =y0

NH3+ 2y0

N2ξ

s

yCH4 =y0

CH4

s

yAr =y0

Ar

s

(C.98)

unde s reprezinta efectul de volum al reactiei.

Racirea directa a amestecului de reactie cu gaz proaspat are loc ıntre straturilede catalizator si are ca efect reducerea temperaturii si conversiei. Noile valori pentruξ si T se calculeaza pe baza bilantului de masa si energie scrise pentru faza de a-mestecare:

ξi =ξi−1Fa,i

Fa,i +i∑

j=1

Fr,i

(C.99)

Ti =Fa,icp,iTi + Fr,ic

0pT

0

(Fa,i + Fr,i)cp

(C.100)

Calcularea variatiei conversie ξ si a temperaturii T pe ınaltimea stratului decatalizator se face rezolvand sistemul de ecuatii diferentiale C.78-C.79 ımpreuna cusistemul de ecuatii algebrice neliniare C.80÷C.100.

Solutionarea modelului matematic se face prin utilizarea unei metode numerice.

Optimizarea functionarii reactorului de sinteza, conform enuntului, implica ma-ximizarea conversiei finale a reactantilor, variabilele de decizie fiind F 0 si Fr,i cu

Page 211: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

C.4. Metode de urcare-coborare 201

respectarea conditiei:

F 0 +3∑

i=1

Fr,i = F

unde F este debitul total de gaz de sinteza.

Aplicatie numerica

Sa se maximizeze conversia unui reactor de sinteza a amoniacului ce lucreaza lapresiunea p = 150 atm., avand 4 straturi de catalizator si diametrul de D = 2,5 m.Inaltimea celor 4 straturi de catalizator este: 0,6 m, 0,85 m, 0,8 m si 1 m.

Caracteristicile catalizatorului sunt: A=45 [kcal/mol], fractia de goluri ε=0,35si k450=26·10−3 [mol· at.0,5/(m3·h)].

Gazul de sinteza are debitul total de F=3.000 [kmol/h] si alimenteaza reactorulde sinteza la temperatura de T=4130C.

Compozitia initiala a gazului de sinteza este: yH2=63,3 [%]v, yN2=21,1 [%]v,yNH3=2,1 [%]v, yCH4=10,5 [%]v si yAr=3 [%]v.

Simularea comportarii unui strat de catalizator din reactorului de sinteza s-aacris urmatoarea functie MATLAB (salvata ıntr-un fisier cu numele ’sint.m’):

function [y,F,yf] = f(z,x,FLAG,Fs,y0,P);

% Modelul matematic al stratului de catalizator

% din reactorului de sinteza a amoniacului

%

% caracteristici reactor

D = 2.5;

p = 150;

S = pi*D^2/4;

T = x(1);

c = x(2);

Fa = Fs(1);

F0 = Fs(2);

% caracteristici catalizator

k450 = 26;

fgol = 0.35;

a = 45e3;

R = 1.987;

% compozitie gaz de sinteza

y0H2 = y0(1);

y0N2 = y0(2);

Page 212: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

202 Exemple

y0NH3 = y0(3);

y0CH4 = y0(4);

y0Ar = y0(5);

s = 1 - y0N2*c;

F = Fa*s;

yN2 = y0N2*(1-c)/s;

yH2 = (y0H2-3*c*y0N2)/s;

yNH3 = (y0NH3 + 2*c*y0N2)/s;

yCH4 = y0CH4/s;

yAr = y0Ar/s;

FN = Fa*y0N2;

yC = [yH2 yN2 yNH3 yCH4 yAr];

cp = [6.85 0.28e-3 0.22e-6;

6.76 0.60e-3 0.13e-6;

6.70 6.30e-3 0;

5.90 9.60e-3 0;

4.98 0 0];

cpGS = (cp*[1;T;T.^2])’*yC’;

DHr = 9157.09+5.34685*T+2.525e-4*T.^2 - ...

1.69167e-6*T.^3 + ...

(0.54526+840.609/T+4.59734e8/T.^3)*p;

k2 = k450*0.75^1.5/(273*fgol)* ...

723.16*exp(a/R*(1/723.15 - 1/T));

fN2 = 0.9431737+0.3101804e-3*T + ...

0.295896e-3*p-0.2707279e-6*T.^2 + ...

0.4775207e-6*p.^2;

fH2 = exp(p*exp(0.541-3.8402*T.^0.125) - ...

exp(-15.98-0.136*T.^0.5)*p.^2 + ...

300*exp(-5.941-0.011901*T) * ...

(1-exp(-300*p)));

fNH3 = 0.1438996+0.2028538e-2*T-0.4487672e-3*p - ...

0.1142945e-5*T.^2 + 0.2761216e-6*p.^2;

K_f = fNH3/(fN2.^0.5*fH2^1.5);

K_a = 10^(2.689-2.691122*log10(T)-5.519265e-5*T + ...

Page 213: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

C.4. Metode de urcare-coborare 203

1.848863e-7*T.^2 + 2001.6/T);

K_y = p*K_a/K_f;

A = 3^1.5*K_y+4;

B = 3^1.5*K_y+4+(F0+P)*(y0CH4+y0Ar)/FN;

C = 3^1.5*K_y-y0NH3/FN*(F0+P)*(4 + ...

(F0+P)/FN*(y0NH3+y0CH4+y0Ar));

% conversia de echilibru

ce = min(roots([A -2*B C]));

d = 2*FN*(2-ce) + (F0+P)*(y0NH3 + y0CH4 + y0Ar);

yeH2 = 3*FN*(1-ce)/d;

yeN2 = FN*(1-ce)/d;

yeNH3 = (2*ce*FN + y0NH3*(F0+P))/d;

% viteza de reactie

vr = k2*p^(-0.5)*(yeNH3^2/(yeH2^3*yeN2)* ...

yN2*yH2^1.5/yNH3-yNH3/yH2^1.5);

% variatia temperaturii si conversiei

% pe inaltimea stratului de catalizator

dc = S*vr/FN;

dT = S*DHr*vr/(F0*cpGS);

y = [dT;dc];

yf = [yH2 yN2 yNH3 yCH4 yAr];

Functia obiectiv a fost definita cu ajutorul urmatoarei functii MATLAB:

function [y,yF,F] = f(x,gr);

% Calculul conversiei reactorului de sinteza

% a amoniacului functie de debitele de

% gaz proaspat de la alimentare reactor

% si racire dintre straturile de catalizator

%

if nargin < 2, gr=0; end;

T0 = 413+273;

c0 = 0;

Page 214: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

204 Exemple

% debitul total de gaz de sinteza

Fmax = 3000;

% inaltimea straturilor de catalizator

H = [0.600 0.850 0.800 1.000]’;

% debitele de gaz proaspat pentru racire

P = [0 x(1:3) 0];

% debit alimentare

F0 = Fmax-sum(P);

Fa = F0;

% verificare solutie

if ((any([F0 x]<0))|(any([F0 x]<(0.08*Fmax))))

y = 0;

return;

end;

% compozitia initiala

% H2 N2 NH3 CH4 Ar

y0 = [0.633 0.211 0.021 0.105 0.03];

ya = y0;

cp = [6.85 0.28e-3 0.22e-6;

6.76 0.60e-3 0.13e-6;

6.70 6.30e-3 0;

5.90 9.60e-3 0;

4.98 0 0];

cp0GS = (cp*[1;T0;T0.^2])’*y0’;

Temp = [];

conv = [];

hcat = [];

hint = 0;

FinTP = Fa;

for i=1:length(H)

P1 = [FinTP F0];

P2 = ya;

P3 = P(i+1);

% rezolvare model strat de catalizator

options = odeset(’RelTol’,1e-4,’AbsTol’,[1e-4 1e-4]);

Page 215: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

C.4. Metode de urcare-coborare 205

[h,d]=ode23(’sint’,[0 H(i)],[T0 c0],options,P1,P2,P3);

if gr

figure;plot(h,d(:,1),’*r’);grid

figure;plot(h,d(:,2),’*b’);grid

end;

Temp = [Temp d(:,1)’];

conv = [conv d(:,2)’];

hcat = [hcat hint+h’];

hint = sum(H(1:i));

T = (d(length(d),1));

c = (d(length(d),2));

s = 1 - ya(2)*c;

F = FinTP*s;

yN2 = ya(2)*(1-c)/s;

yH2 = (ya(1)-3*c*ya(2))/s;

yNH3 = (ya(3)+2*c*ya(2))/s;

yCH4 = ya(4)/s;

yAr = ya(5)/s;

yF = [yH2 yN2 yNH3 yCH4 yAr];

cpFGS = (cp*[1;T;T.^2])’*yF’;

% recalculare parametrii dupa racire

if i<length(H)

FinT = Fa+sum(P(1:i));

FinTP = Fa+sum(P(1:i+1));

c0 = (FinT*ya(2)-F*yF(2))/(FinTP*ya(2));

F0 = F + P(i+1);

y0 = ((ya*P(i+1))+(yF*F))./F0;

T0 = (F*cpFGS*T + P(i+1)*cp0GS*T0)/(F0*cpFGS);

end;

end;

if gr

figure;plot(hcat,Temp,’*g’);grid

figure;plot(hcat,conv,’*c’);grid

figure;plot(Temp,conv,’*m’);grid

end;

y = -c;

Obs. Din motive tehnologice, s-a impus ca nici un debit de gaz proaspatsa nu fie mai mic de 8 % din debitul total de gaz de sinteza.

Page 216: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

206 Exemple

Identificarea debitelor optime de gaz proaspat de sinteza se poate face prin utilizareaunei functii MATLAB din Optimization Toolbox, cum ar fi fmins:

Apelul acestei functii are loc astfel:

Fopt=fmins(’resint’,[800 800 800]);

Solutia obtinuta este:

Fopt =

710.8196

1809.1779

240.0025

240.0000

Debitele optime determinate pe acesta cale sunt:

• debitul optim de alimentare al reactorului: F 0=710,8 [kmol/h];

• debitele optime de racire dintre straturile de catalizator sunt: Fr,1=1809,2[kmol/h], Fr,2=240 [kmol/h] si Fr,3=240 [kmol/h];

• conversia maxima obtinuta pe acesta cale este: ξ=21,53 %.

Variatia optima a converisiei ın lungul reactorului este prezentata ın figura C.4.

Figura C.4. Profilul optim conversie-ınaltime strat catalizatorın reactorul de sinteza.

Page 217: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

C.5. Metode de programare 207

C.5. Metode de programare

C.5.1. Determinarea cailor optime de aprovizionare

Un combinat chimic dispune de 3 sectii S1, S2 si S3. Materia prima necesara func-tionarii celor trei sectii poate fi obtinuta de la doi furnizori F1 si F2. Cheltuielile detransport, cantitatile disponibile si necesarul de materie prima sunt prezentate ıntabelul C.10.

Tabela C.10. Date privind aprovizionarea combinatului.

Cheltuieli de transportF1 F2

Necesar[u.v./t] [t]

S1 20 30 60S2 30 35 15S3 20 25 30

Disponibil, [t] 70 40

Obs.: Valorile de cost sunt exprimate ın unitati valorice, u.v..

Sa se determine planul optim de aprovizionare, ın asa fel ıncat sa avem cheltuieliminime de transport.

Rezolvare

Modelul matematic al procesului de optimizat include urmatoarele ecuatii:

m1,1 + m1,2 + m1,3 = MF1

m2,1 + m2,2 + m2,3 = MF2

20 m1,1 + 30 m1,2 + 20 m1,3 = C1

30 m2,1 + 35 m2,2 + 25 m2,3 = C2

m1,1 + m2,1 = MS1

m1,2 + m2,2 = MS2

m1,3 + m2,3 = MS3

unde: mi,j - cantitatile de materia prima transportata de la furnizorul i lasectia j, [t];

MFi- cantitatea totala transportata de la furnizorul i, [t];

Ci - costul aprovizionarii de la furnizorul i, [u.v.];

Page 218: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

208 Exemple

MSi- cantitatea totala cu care s-a aprovizionat sectia i, [t].

Din lista de variabile utilizate ın modelul matematic al sistemului de optimizat,alegem cantitatile cu care se aprovizioneaza de la furnizori sectiile combinatului,adica variabilele mi,j, ca variabile de decizie.

Facand notatiile, x1 = m1,1, x2 = m1,2, x3 = m1,3, x4 = m2,1, x5 = m2,2 six6 = m2,3, functia obiectiv devine:

minx

fob = 20 x1 + 30 x2 + 20 x3 + 30 x4 + 35 x5 + 25 x6 (C.101)

fiind supusa la restrictiile:x1 + x2 + x3 ≤ 70

x4 + x5 + x6 ≤ 40

x1 + x4 = 60

x2 + x5 = 15

x3 + x6 = 30

(C.102)

x1, x2, x3, x4, x5, x6 ≥ 0

Problema este rezolvabila prin programare liniara si are un numar de 6 variabilede decizie si 5 restrictii, 2 de tip inegalitate si 3 de tip egalitate.

Restrictiile de tip inegalitate se transfoma ın restrictii egalitate prin adaugareaunor variabile fictive, notate cu x7 si x8. Sistemul de restrictii devine:

x1 + x2 + x3 + x7 = 70

x4 + x5 + x6 + x8 = 40

x1 + x4 = 60

x2 + x5 = 15

x3 + x6 = 30

(C.103)

x1, x2, x3, x4, x5, x6, x7, x8 ≥ 0

Identificarea unei solutii initiale fesabile se poate face prin studierea atenta asistemului de restrictii. Obtinerea unei solutii admise se face prin anularea unuinumar de variabile egal cu diferenta dintre numarul total de variabile de decizie sinumarul restrictiilor.

Pentru problema de fata numarul variabilelor anulate trebuie sa fie 8 - 5 = 3.Cea mai defavorabila solutie este cea ın care cantitatea cea mai mare de materie

prima se va cumpara de la furnizorul cu costul de transport cel mai defavorabil.Aceasta situatie corespunde solutiei obtinute prin anularea variabilelor x5, x6 six8 si corespunde unei solutii de baza admise. Aceste variabile formeaza non-bazasolutiei de baza. Toate celelalte variabile, precum si functia obiectiv trebuie sa fieexprimate functie de aceste variabile.

Page 219: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

C.5. Metode de programare 209

Prin substitutie se obtine urmatoarea forma a problemei de optimizare:

minx

fob = 2650− 5 x5 − 5 x6 − 10 x8 (C.104)

x1 = 20 + x5 + x6 + x8

x2 = 15− x5

x3 = 30− x6

x4 = 40− x5 − x6 − x8

x7 = 5− x8

(C.105)

Pentru ımbunatatirea solutiei curente (corespunzatoare unui cost total de trans-port de 2650 u.v.) se poate actiona asupra oricarei variabile din non-baza, toateavand coeficienti negativi. Alegem sa actionam asupra variabilei x8, aceasta avandcoeficientul negativ cel mai mare ın valoare absoluta.

Limita pana la care putem mari valoarea variabilei x8 este 5, valoare la carevariabile x5 devine 0. Astfel, configuratia noi solutii de baza admise este: x5, x6 six7 formeaza non-baza solutiei de baza iar restul formeaza baza solutiei de baza.

Exprimam variabilele din baza precum si functia obiectiv ın functie de variabileledin non-baza:

minx

fob = 2600− 5 x5 − 5 x6 + 10 x7 (C.106)

x1 = 25 + x5 + x6 − x7

x2 = 15− x5

x3 = 30− x6

x4 = 35− x5 − x6 + x7

x8 = 5− x7

(C.107)

O reducerea a valorii functiei obiectiv este posibila prin marirea valorii variabileix5. Urmand acelasi algoritm, noua solutie de baza curpinde variabilele x4, x6 si x7

ın non-baza. Expresiile celorlalte variabile de decizie si a functiei obiectiv devin:

minx

fob = 2525 + 5 x2 − 5 x6 + 10 x7 (C.108)

x1 = 40− x2 + x6 − x7

x3 = 30− x6

x4 = 20 + x2 − x6 + x7

x5 = 15− x2

x8 = 5− x7

(C.109)

Singura posibilitate de reducere ın continuare a valorii functiei obiectiv este prinmarirea valorii variabilei x6. Solutia identificata pe aceasta cale include variabilele

Page 220: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

210 Exemple

x2, x4 si x7 ın non-baza. Sistemul devine:

minx

fob = 2425 + 5 x4 + 5 x7 (C.110)

x1 = 60− x4

x3 = 10− x2 + x4 − x7

x5 = 15− x2

x6 = 20 + x2 − x4 + x7

x8 = 5− x7

(C.111)

Aceasta solutie este solutia finala a problemei de optimizare deoarece, conformexpresiei curente a functiei obiectiv, nu mai exista nici o posibilitate de reducere avalorii sale.

Solutia problemei de optimizare este:

x1 = 60

x2 = 0

x3 = 10

x4 = 0

x5 = 15

x6 = 20

x7 = 0

x8 = 5

cu valoarea minima a costurilor de transport de 2425 u.v..

C.5.2. Planul optim de productie

Intr-o instalatie ce produce insecticide, ın nomenclatorul de fabricatie exista la unmoment dat doua produse, P1 si P2. Fiecare din aceste produse ınglobeaza douamaterii prime M1, M2 si M3.

Cunoscand datele din tabelul C.11, sa se determine planul optim de productie,astfel ıncat beneficiul realizat sa fie maxim.

Rezolvare

Modelul matematic al sistemului de optimizat include urmatoarele ecuatii:

c1,1 m1 + c1,2 m2 = MM1

c2,1 m1 + c2,2 m2 = MM2

c3,1 m1 + c3,2 m2 = MM3

b1 m1 + b2 m2 = B

Page 221: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

C.5. Metode de programare 211

Tabela C.11. Date pentru instalatia de insecticide.

Consum specificP1 P2

Disponibil[kg/t] [t]

M1 200 400 20M2 600 300 40M3 200 300 30

Beneficiul, [u.v./t] 8 6

Obs.: Valorile de beneficiu sunt exprimate ın unitati valorice, u.v..

unde: mi - cantitatile de produs i obtinute, [t];ci,j - consumul specific de materie prima i necesara la fabricarea

produsului j, [t/t];MMi

- cantitatea de materie prima i consumata, [t];bi - beneficiul realizat prin valorificarea produsului i, [u.v./t];B - beneficiul total, [u.v.].

Alegem cantitatile m1 si m2 de produse fabricate ca variabile de decizie.Notand x1 = m1 si x2 = m1 functia obiectiv a problemei de optimizare este:

maxx

fob = 8 x1 + 6 x2 (C.112)

fiind supusa la urmatoarele restrictii:

0,2 x1 + 0,4 x2 ≤ 20

0,6 x1 + 0,3 x2 ≤ 40

0,2 x1 + 0,3 x2 ≤ 30

(C.113)

x1, x2 ≥ 0

Problema este rezolvabila prin programare liniara si are un numar de 2 variabilede decizie si 2 restrictii de tip inegalitate.

Transformam restrictiile de tip inegalitate ın restrictii egalitate prin introducereaunor variabile fictive:

0,2 x1 + 0,4 x2 + x3 = 20

0,6 x1 + 0,3 x2 + x4 = 40

0,2 x1 + 0,3 x2 + x5 = 30

(C.114)

x1, x2, x3, x4, x5 ≥ 0

Facand un scurt inventar constatam ca avem 5 variabile de decizie si 2 restrictii.Prin urmare, pentru obtinerea unei solutii de baza admise, anulam 5 - 3 = 2 variabile

Page 222: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

212 Exemple

de decizie. O solutia de baza admisa implicita este cea obtinuta prin anularea va-riabilelor x1 si x2.

Pentru aceasta solutie de baza admisa formam tabloul Simplex:

Iter.0 x1 x2 b

x3 0,2 0,4 20x4 0,6 0,3 40x5 0,2 0,3 30

fob -8 -6 0

Obs.: Linia si coloana evidentiatareprezinta linia si coloana pivotului

Aplicand algoritmul Simplex prezentat ın capitolul 6 la pagina 84 efectuam ur-matoarele etape de calcul:

Iter.1 x4 x2 b

x3 −0,20,6

=-0,333 0,4-0,2·0,30,6

=0,3 20-0,2·400,6

=6,666

x11

0,6=1,666 0,3

0,6=0,5 40

0,6=66,666

x5 −0,20,6

=-0,333 0,3-0,2·0,30,6

=0,2 30-0,2·400,6

=16,666

fob −−80,6

=13,333 -6-0,3·(−8)0,6

=-2 0- (−8)·400,6

=533,333

Iter.2 x4 x3 b

x2-0,333

0,3=-1,11 1

0,3=3,333 6,666

0,3=22,22

x1 1,666- -0,33·0,50,3

=2,22 -0,50,3

=-1,666 66,666-6,66·0,50,3

=55,555

x5 -0,333- -0,33·0,20,3

=-0,11 -0,20,3

=-0,666 16,666-6,66·0,20,3

=12,22

fob 13,333- (-0,33)·(−2)0,3

=11,11 -−20,3

=6,66 533,333-−2·6,660,3

=577,77

O ımbunatatire ulteriora a solutiei curente nu mai este posibila deoarece toticoeficientii functiei obiectiv din tabel sunt negativi. Astfel solutia problemei deoptimizare este:

x1 = 55,55

x2 = 22,22

x3 = 0

x4 = 0

x5 = 12,22

cu valoarea maxima a beneficiului de 577,777 u.v..

Page 223: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

213

Bibliografie

[1] Curievici I., Optimizari ın industria chimica, Ed. Didactica si Pedagogica,Bucuresti, 1980

[2] Smigelschi O., Woinaroschy A., Optimizarea proceselor ın industria chimica,Ed. Tehnica, Bucuresti, 1978

[3] Adler Y.P., Markova E.V., Granovsky Y.V., The design of experiments to findoptimal conditions, Mir Publishers, Moskow, 1975

[4] Ion, I.D., Zidaroiu C., Popoviciu N., Elemente de algebra si programare liniara,Ed. Didactica si Pedagogica, Bucuresti, 1972

[5] Ionescu V., Popeea C., Optimizarea sistemelor, Ed. Didactica si Pedagogica,Bucuresti, 1981

[6] Gheorghiu M., Filip P., Aplicatiile calculatoarelor ın chimie, Ed. Stiintifica,Bucuresti, 1973

[7] Mihoc Gh., Stefanescu A., Programarea matematica, Ed. Didactica si Peda-gogica, Bucuresti, 1973

[8] * * *, Optimization Toolbox. User’s Guide. Version 1, The MathWorks, Inc.,1996

[9] * * *, Optimization Toolbox. User’s Guide. Version 2, The MathWorks, Inc.,2001

[10] Dumitrescu I., Florovici M., Marinoiu V., Macri I., Locovei I., Aplicatii in-gineresti ale calculatoarelor. Optimizari, Ed. Didactica si Pedagogica, Bu-curesti, 1976

[11] Ceausescu D., Metode statistice expeditive ın chimia analitica, Ed. Miron,Timisoara, 1992

[12] Ancau M., Nistor L., Tehnici numerice de optimizare ın proiectarea asistata decalculator, Ed. Tehnica, Bucuresti, 1996

[13] Woinaroschy A., Mihai M., Isopescu R., Optimizarea proceselor din industriachimica, Ed. Tehnica, 1990

Page 224: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

214 BIBLIOGRAFIE

[14] Liteanu C., Rıca I., Optimizarea proceselor analitice, Ed. Academiei R.S.R.,1985

[15] Box G.E.P., Draper N.R., Evolutionary operation, John Wiley&Sons, Inc.,New-York, 1969

[16] Valeanu I., Hıncu M., Elemente de statistica generala, Editura Litera, Bu-curesti, 1990

[17] Tiron M., Prelucrarea statistica si informationala a datelor de masurare, Edi-tura Tehnica, Bucuresti, 1976

Page 225: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

215

Glosar

algoritmgenetic, 97

algoritmulmetodei gradientului cu

pas optim, 64metodei gradientului cu

pas constant, 63metodelor de eliminare, 45metodelor de urcare-coborare, 59Simplex, 84

analiza de regresie, 18

Bolzanometoda ∼, 48

Boxmetoda ∼, 71

constr, 105, 107criteriul lui Himmelblau, 60curba normala a lui Gauss, 165

dinamicprogramarea ∼a, 89

eliminaremetode de ∼, 45

Fibonaccisirul lui ∼, 52metoda seriei lui ∼, 52

Fisherraportul ∼, 169

fmin, 100, 101fminbnd, 117, 119fmincon, 117, 122fmins, 100, 103fminsearch, 117, 120fminu, 105

fminunc, 117, 120fsolve, 131functii unimodale, 46fzero, 129

Gausscurba normala a lui ∼, 165

gradientmetoda ∼ului cu pas constant, 63metoda ∼ului cu pas optim, 64metode de ∼, 61

Himmelblaucriteriul lui ∼, 60

linprog, 118, 123lp, 105, 112lsqcurvefit, 140lsqlin, 136lsqnonlin, 139lsqnonneg, 134

MATLAB, 99, 145functii ∼constr, 107fmin, 101fminbnd, 119fmincon, 122fmins, 103fminsearch, 120fminu, 105fminunc, 120fsolve, 131fzero, 129linprog, 123lp, 112lsqcurvefit, 140

Page 226: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

216 GLOSAR

lsqlin, 136lsqnonlin, 139lsqnonneg, 134qp, 115quadprog, 126

program ∼ pentrumetoda gradientului cu

pas constant, 151metoda gradientului cu

pas optim, 153metoda Pattern Search, 155metoda perechilor

secventiale, 146metoda poliedrului, 160metoda poliedrului

extensibil, 162metoda Rosenbrock, 157metoda sectiunii de aur, 149metoda seriei lui Fibonacci, 148

metodaBolzano, 48Box, 71celor mai mici patrate, 26gradientului cu pas constant, 63gradientului cu pas constant

program MATLAB, 151gradientului cu pas optim, 64gradientului cu pas optim

program MATLAB, 153ınjumatatirii intervalului, 48Pattern Search, 66

program MATLAB, 155perechilor secventiale, 49

program MATLAB, 146poliedrului, 71

program MATLAB, 160poliedrului extensibil, 74

program MATLAB, 162Rosenbrock

program MATLAB, 157sectiunii de aur, 56

program MATLAB, 149

seriei lui Fibonacci, 52program MATLAB, 148

Simplex, 74metode

analitice de optimizare, 31de eliminare, 45de gradient, 61de programare, 79de urcare-coborare, 59numerice multidimensionale, 59

neliniarprogramarea ∼a, 88

optimget, 118optimizarea

functiilor obiectiv fararestrictii, 31

functiilor supuse la restrictiiegalitate, 36

functiilor supuse la restrictiiinegalitate, 41

Optimization Toolboxversiunea 1, 105versiunea 2, 117

optimset, 118options

structura ∼, 118vectorul ∼, 100

Pattern Searchmetoda ∼, 66

poliedrumetoda ∼lui, 71metoda ∼lui extensibil, 74

principiul de optimalitate, 90programarea

dinamica, 89liniara, 79neliniara, 88patratica, 88

qp, 105, 115

Page 227: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

GLOSAR 217

quadprog, 118, 126

raport∼ul Fisher, 169

regresieanaliza de ∼, 18determinarea coeficientilor de ∼,

132

sectiunea de aur, 56Simplex

algoritmul ∼ (programare liniara),84

metoda ∼ (poliedrului extensibil),74

Studentcriteriul lui ∼, 167

sirul lui Fibonacci, 52

test∼area adecvantei modelului, 27∼area semnificatiei coeficientilor,

29

Page 228: MATLAB Optimization Toobox Toolbox - emte.siculorum.romeszarossandor/OptimalizalasSegedlet/Arpi's... · Lucrarea ”Aspecte ale optimiz˘arii proceselor din industria chimic˘a”

Recommended