Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Technológiai folyamatok optimalizálása Ráduly Botond Mészáros Sándor MATLAB ® - Optimization Toolbox.

Hasonló előadás


Az előadások a következő témára: "Technológiai folyamatok optimalizálása Ráduly Botond Mészáros Sándor MATLAB ® - Optimization Toolbox."— Előadás másolata:

1 Technológiai folyamatok optimalizálása Ráduly Botond Mészáros Sándor MATLAB ® - Optimization Toolbox

2 Optimalizálás eszköztár egy függvényhalmaz, amely különböző optimalizálási feladatok megoldását teszi lehetővé. könnyen használható algoritmusokat tartalmaz feltétel nélküli nemlineáris minimalizálás feltételes nemlineáris minimalizálás lineáris programozás kvadratikus programozás lineáris regresszió stb. típusú feladatokhoz

3 fminunc Feltétel nélküli többváltozós nemlineáris optimalizálási függvény x = fminunc(F cel,x 0,options) célfüggvény kezdeti érték beállítások Az x lokális minimumát találja meg, x 0 -ból kiindulva. A keresési paramétereket az Options tulajdonságvektor tartalmazza. Ezt az optimset paranccsal lehet kezelni. pl. F cel = x 1 2 + x 2 2 x 1,0 = 1 x 2,0 = 1

4 x = fminunc(' x(1)^2 + x(2)^2 ', x0) Az előbbi feladat Matlab szabályok szerint felírva: x0 = [1 1] clear all x = -1:0.05:1; y = -1:0.05:1; for i = 1:length(x) for j = 1:length(y) F(i,j)= (x(i)^2 + y(j)^2)/2; end surf(x,y,F)...és a megoldás: x 1 * = -0.2735 ·10 -8 x 2 * = -0.2735 ·10 -8 Grafikusan a következő módon ábrázolhatjuk:

5 Az F cel = x 1 2 + x 2 2 ábrázolása a [-1 1] intervallumon. A minimum 0-ban van, tehát x * = [0 0] (ehhez képest az fminunc algoritmus egy közelítő x* = [ 0.0000000027 0.0000000027] megoldást talált)

6 A keresési paramétereket az optimset paranccsal lehet beállítani. Információkat az alkalmazott algoritmusról, a lépések számáról [x,fval,exitflag,output] = fminunc(' x(1)^2 + x(2)^2 ', x0) Az output mező fontosabb tulajdonságai: iterations – az elvégzett lépések száma funcCount – a célfüggvény kiszámításának száma algorithm – a használt optimalizálási algoritmus Az alkalmazott algoritmusról megvalósítását a type paranccsal lehet megnézni

7 fmincon Feltételes többváltozós nemlineáris optimalizálási függvény (nemlineáris programozás) Az x minimumát találja meg, x 0 -ból kiindulva. A keresési paramétereket az Options tulajdonságvektor tartalmazza. Ezt az optimset paranccsal lehet kezelni. x = fmincon(F cel,x 0,A,B,C,D,AH,FH, NLF, options) célfüggvény kezdeti megoldás egyenlőtlenség feltétel: A·x ≤ B egyenlőség feltétel: C·x = D alsó és felső határ: AH ≤ x ≤ FH nemlineáris feltétel

8 Feladat: minimalizáljuk az Fcel = - x 1 · x 2 ·x 3 célfüggvényt az x 0 = [10 10 10] kezdeti megoldásból kiindulva úgy, hogy teljesüljenek a következő feltételek: -x 1 - 2· x 2 - 2·x 3 ≤ 0 x 1 + 2· x 2 + 2·x 3 ≤ 72 Megoldás: 1.az egyenlőtlenséget A·x ≤ B formára hozzuk

9 2.Meghatározzuk a kezdeti megoldást: x0 = [10 10 10] [x,fval,exitflag,output] = fmincon(' -x(1) * x(2) * x(3)', x0, A, B) a megoldás: x = [24.0000 12.0000 12.0000] fval =-3.4560e+003 output = iterations: 11 funcCount: 64 stepsize: 1 algorithm: 'medium-scale: SQP, Quasi-Newton, line-search' 3.Beírjuk az optimalizálási parancsot:

10 linprog lineáris programozási algoritmus x = linprog(F cel, A,B,C,D, AH,FH, x 0, options) célfüggvény együtthatói kezdeti megoldás egyenlőtlenség feltétel: A·x ≤ B Az x minimumát találja meg, x 0 -ból kiindulva. Ha valamelyik input ismeretlen, [ ] helyettesíti. A további keresési paramétereket az Options tulajdonságvektor tartalmazza. Ezt az optimset paranccsal lehet kezelni. egyenlőség feltétel: C·x = D alsó és felső határ: AH ≤ x ≤ FH

11 Feladat: minimalizáljuk az F cél = - 5·x 1 -4·x 2 -6·x 3 célfüggvényt úgy, hogy teljesüljenek a következő feltételek: x 1 - x 2 + x 3 ≤ 20 3· x 1 + 2· x 2 + 4·x 3 ≤ 42 3· x 1 + 2· x 2 ≤ 30 0 ≤ x 1, 0 ≤ x 2 0 ≤ x 3 Megoldás: 1.írjuk az együtthatókat mátrix formába f = [-5; -4; -6] A = [1 -1 1 3 2 4 3 2 0] B = [20; 42; 30] AH = [0; 0; 0]

12 3.Beírjuk az optimalizálási parancsot: [x,fval,exitflag,output] = linprog(f,A,B,[],[],AH); Megoldás: x * = [ 0.0000 15.0000 3.0000] F cél * = -78.0000

13 Feladat: a lehető legtöbb szendvics készítése véges mennyiségű alapanyagból. Adott: 120 dkg vaj 100 dkg sonka 200 dkg sajt 20 db keménytojás korlátlan mennyiségű kenyér Szendvicstípusok és szükséges alapanyagok: AlapanyagNormál szendvicsSajtos szendvics vaj 32 sonka 31 sajt 25 tojás 1/41/2 „Szendvics” feladat

14 Feltételek: x 1 >= 0; x 2 ≥ 0(negatív mennyiség) 3·x 1 + 2·x 2 ≤ 120(vaj) 3·x 1 + x 2 ≤ 100(sonka) 2·x 1 + 5·x 2 ≤ 200(sajt) 1/4·x 1 + 1/2·x 2 ≤ 20(tojás) 1. A feladat matematikai megfogalmazása: Legyen a normál szendvicsek száma x 1, a sajtos szendvicsek száma x 2 A maximalizálandó célfüggvény: F cél = x 1 + x 2 F cél = - (x 1 + x 2 ) 2. A feladat típusának meghatározása, megoldási algoritmus választása: - a célfüggvény és a feltételek lineáris összefüggések lineáris programozás

15 A feladat felírása Matlab szabályok szerint: B = [120; 100; 200; 20] AH = [0 0] A = [3 2; 3 1; 2 5; 0.25 0.5] f = [-1 -1] [X,FVAL,EXITFLAG,OUTPUT] = linprog(f,A,B,[],[],AH) A lineáris programozási parancs: A megoldás: x * = [20 30], F cél * = 50

16 quadprog kvadratikus programozási algoritmus x = quadprog(H, F, A, B, C, D, AH, FH, x 0, options) célfüggvény együtthatói kezdeti megoldás egyenlőtlenség feltétel: A·x ≤ B egyenlőség feltétel: C·x = D alsó és felső határ: AH ≤ x ≤ FH négyzetes együtthatók

17 Feladat: Egy cégnek három részlege van (R1, R2, R3) és alapanyaggal két beszállító (B1,B2) látja el. A szállítási költségek, a rendelkezésre álló illetve a szükséges alapanyag-mennyiség az alábbi táblázatban láthatóak: Szállítási költség (RON/t) B1B2Szükséges mennyiség (t) R1 203060 R2 303515 R3 202530 Rendelkezésre áll (t) 7040 Szállítás optimalizálása MB1 = m 1,1 + m 1,2 + m 1,3 (B1 által szállított anyagmennyiség, t) MB2 = m 2,1 + m 2,2 + m 2,3 (B2 által szállított anyagmennyiség, t) C1 = 20·m 1,1 + 30·m 1,2 + 20·m 1,3 (a teljes szállítási költség B1-től, RON) C2 = 30·m 2,1 + 35·m 2,2 + 25·m 2,3 (a teljes szállítási költség B1-től, RON)

18 MR1 = m 1,1 + m 2,1 (az R1-hez szállított anyagmennyiség, t) MR2 = m 1,2 + m 2,2 (az R2-hez szállított anyagmennyiség, t) MR3 = m 1,3 + m 2,3 (az R2-hez szállított anyagmennyiség, t) A minimalizálandó célfüggvény: F cél = C 1 + C 2 Ha m 1,1 = x 1, m 1,2 = x 2, m 1,3 = x 3, m 2,1 = x 4, m 2,2 = x 5 és m 2,3 = x 6, akkor F cél = 20 · x 1 + 30 · x 2 + 20 · x 3 + 30 · x 4 + 35 · x 5 + 25 · x 6 Feltételek: x 1 + x 2 + x 3 ≤ 70 x 4 + x 5 + x 6 ≤ 40 x 1 + x 4 = 60 x 2 + x 5 = 15 x 3 + x 6 = 30 x 1, x 2, x 3, x 4, x 5, x 6 ≥ 0

19 f=[20 30 20 30 35 25] A=[1 1 1 0 0 0; 0 0 0 1 1 1] B=[70; 40] C=[1 0 0 1 0 0; 0 1 0 0 1 0; 0 0 1 0 0 1] D=[60; 15; 30] lineáris összefüggések  linprog [X,FVAL,EXITFLAG,OUTPUT] = linprog(f,A,B,C,D,AH)


Letölteni ppt "Technológiai folyamatok optimalizálása Ráduly Botond Mészáros Sándor MATLAB ® - Optimization Toolbox."

Hasonló előadás


Google Hirdetések