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

Hasonló előadás


Az előadások a következő témára: "Technológiai folyamatok optimalizálása"— Előadás másolata:

1 Technológiai folyamatok optimalizálása
MATLAB® használata az optimalizálásban Ráduly Botond Mészáros Sándor

2 Matlab főként akadémiai körökben igen elterjedt szoftver, rugalmasságának köszönhetően nagyon sokféle feladat alkalmazására használható (pl. matematikai modellezés, számítógépes szimulációk, adatátvitel, képfeldolgozás, stb.) optimalizálási feladatok megoldására az alap Matlab függvények illetve az Optimization Toolbox révén használható. Ez utóbbi egy optimalizálásra kifejlesztett speciális függvénycsomagot tartalmazó kiegészítés, amely kiterjeszti a Matlab használhatóságát. a Matlab fejlesztője a Math Works, oldalukon megtalálható minden dokumentáció és segítőfájl, így az Optimization Toolbox leírása is (

3

4

5 Az optimalizáláshoz használható Matlab függvények
Az alap Matlab csak néhány optimalizáláshoz használható függvényt tartalmaz. Ilyenek a min, max, fminbnd, fminsearch Az egyes függvényekről a help parancs segítségével kaphatunk információt

6 min és max min – a legkisebb elemet keresi meg. Egy adott X vektor esetén min(X) a vektor legkisebb elemét fogja megtalálni. Ha X egy mátrix, akkor min(X) oszloponként keres. max – a legnagyobb elemet keresi meg. Egy adott X vektor esetén max(X) a vektor legnagyobb elemét fogja megtalálni. Ha X egy mátrix, akkor max(X ) oszloponként keres. Példa: x = [ ]; y = [6 4 5; 3 1 4] min(x) = 1 max(x) = 8 min(y) = [3 1 4] max(y) = [6 4 5] [érték, hely] = max(x)  [érték, hely] = [8 5]

7 Alkalmazási lehetőség: kimerítő minimalizálás vagy maximalizálás
Például: Minimalizáljuk az Fcél = 3·x2 + x + 2 célfüggvényt úgy, hogy -10 < x < 10 Kimerítő megoldás: kiszámoljuk a célfüggvény értékét a lehető legtöbb pontban és kiválasztjuk a legkisebb értéket: megalkotjuk az x vektort a [-10 10] tartományon (pl. x = -10: 0.1:10) kiszámoljuk Fcél-t az összes x értékre for i = 1:length(x) f(i) = 3·x(i)2 + x(i) + 2 end azonosítjuk a legkisebb értéket: [érték, pozíció] = max(f) x* = x(pozició) 200-szor számoltuk ki a célfüggvény értékét!

8 A célfüggvény felírása függvényként:
Egy új Matlab fájlba beírjuk function[f] = Fcel(x) f = 3*x^2 + x + 2; majd elmentjük Fcel.m neven. Ezutan bármikor meg lehet hívni az Fcel(x) paranccsal. Az előbbi kód a következőképpen módosulna: x = -10: 0.1:10 for i = 1:length(x) f(i) = Fcel(x(i)) end [érték, pozíció] = min(f) x* = x(pozició)

9 fminsearch Többdimenziós feltétel nélküli optimalizálási függvény (Simplex keresés) x = fminsearch(Fcel,x0,options) célfüggvény beállítások kezdeti érték Az x lokális minimumát találja meg, x0-ból kiindulva. A keresési paramétereket az Options tulajdonságvektor tartalmazza. Ezt az optimset paranccsal lehet kezelni. Ha nem állítjuk be, akkor előre beállított paraméterekkel fog folyni a keresés.

10 keresési tartomány kezdete és vége
fminbnd Feltételes nemlineáris optimalizálási függvény (aranymetszet keresés) x = fminbnd(Fcel,x1, x2,options) célfüggvény beállítások keresési tartomány kezdete és vége Az x lokális minimumát találja meg, az x1 <= X <= x2 tartományban. A keresési paramétereket az Options tulajdonságvektor tartalmazza. Ezt az optimset paranccsal lehet kezelni. Ha nem állítjuk be, akkor előre beállított paraméterekkel fog folyni a keresés.

11 fminbnd alkalmazás Az előbbi célfüggvény minimalizálása az fminbnd segítségével: x = -10, 10) Az Options struktúra változtatása: ahol a legfontosabb paraméterek: TolX – a döntési változóra megadott befejezési tolerancia (precizitás), pozitív skaláris érték TolFun – a célfüggvényre megadott tolerancia (precizitás), pozitív skaláris érték MaxIter – maximális lépésszám (pozitív egész szám) Display – a kijelzés mértéke (‘off’ | ‘iter’ | ‘notiy’ |‘final’) options = optimset(‘paraméter 1’, érték 1, ’paraméter 2’, érték 2, ...)

12 Ha például a következő paramétereket változtatjuk
majd a következő paranccsal futtatjuk a keresést akkor a minimalizálás a 10-ik lépésnél leáll és minden lépés eredménye ki lesz jelezve a Matlab parancssorban. A következő paraméterek a keresés precizitását változtatják: options = optimset(‘maxiter’, 10, ’display’, ‘iter’) x = -10, 10, options) options = optimset(‘maxiter’, 20, ’display’, ‘iter’,’tolfun’, 0.1,’tolx’, 0.1) x = -10, 10, options)

13 ár = áranyag × ρanyag × δlemez × (π × d × h + 2 × (π × d2) /4)
Tartály méretezése d A tartály legyen henger formájú, 1000 m3 térfogatú, ne legyen 5 m-nél magasabb és a felhasznált anyag ára legyen minél kisebb. h ár = áranyag × ρanyag × δlemez × (π × d × h + 2 × (π × d2) /4) konstans Feltételek: h ≤ 5 d > 0 h ×(π × d2) /4 = 1000 Fcél = d × h + d2/2

14 Fcél = d × h + d2/2 Feltételek: 0 < h ≤ 5 d > 0 h ×(π × d2) /4 = 1000 kiszámoljuk a célfüggvény értékét minden lehetséges h és d értékre (Fcél,i) ? Kifejezzük d = f(h)

15 A célfüggvény felírása függvényként:
Egy új Matlab fájlba beírjuk function[f] = Fcel_hordo(x) f = sqrt(4000*x/pi) /x/pi; majd elmentjük Fcel_hordo.m neven. Ezutan bármikor meg lehet hívni az Fcelhordo(x) paranccsal, ahol x = a henger magassága. Az optimumkeresést a következő parancsal indítjuk: x = , 5) x* = 5 Vizsgáljuk meg hány lépésből találta meg az algoritmus a minimumot!

16 maximalizáljunk: d A tartály legyen henger formájú, 1000 m3 térfogatú, ne legyen 5 m-nél magasabb és a felhasznált anyag ára legyen minél nagyobb. h Ugyanazt az eljárást alkalmazzuk, de a célfüggvény negatívjával dolgozunk: function[f] = Fcelhordo(x) f = - sqrt(4000*x/pi) /x/pi; Ez esetben x* ~ 0

17 grafikusan ábrázolva...

18 A célfüggvény lementése helyett azt beírhatjuk direkt a kereső parancsba is, szöveg formátumban (azaz aposztrofok ‘ ‘ között). x = fminbnd('sqrt(4000*x/pi) /x/pi', , 5) x = fminbnd(‘-sqrt(4000*x/pi) /x/pi', , 5)

19 fminsearch alkalmazás
Minimalizáljuk a következő célfüggvényt: Fcél = 4 ∙ x(1)2 + 2 ∙ x(2) ∙ x(1) ∙x(2) + 2 ∙ x(2) + 1; x = fminsearch(‘4 * x(1)^2 + 2 * x(2)^ * x(1) * x(2) + 2 * x(2) + 1’, x0) x0 = [1 1]


Letölteni ppt "Technológiai folyamatok optimalizálása"

Hasonló előadás


Google Hirdetések