Technológiai folyamatok optimalizálása

Slides:



Advertisements
Hasonló előadás
Készítette: Kosztyán Zsolt Tibor
Advertisements

A Floyd-Warshall algoritmus
A backtracking nem rekurzív változata, azaz az iteratív alakja p←1; st[p] ← 0; amíg p>0 végezd el kezdet ha akkor kezdet st[p] ← ha akkor meghív kiír_vagy_elment_mátrixba_vagy_vektorba_vektor.
A Szállítási feladat megoldása
Koordináták, függvények
Nevezetes algoritmusok
Adatelemzés számítógéppel
Optimalizálás célérték kereséssel
Programozási tételek, és „négyzetes” rendezések
2005. Operációkutatás Ferenczi Zoltán. Széchenyi István Egyetem Operációkutatás eredete •második világháború alatt alakult ki •különböző szakmájú emberekből.
A lineáris programozási feladatok típusai és grafikus megoldásai
Készítette: Major Máté
MI 2003/ A következőkben más megközelítés: nem közvetlenül az eloszlásokból indulunk ki, hanem a diszkriminancia függvényeket keressük. Legegyszerűbb:
Matematika II. 3. előadás Geodézia szakmérnöki szak 2010/2011. tanév Műszaki térinformatika ágazat tavaszi félév.
Matematika II. 2. előadás Geodézia szakmérnöki szak 2012/2013. tanév Műszaki térinformatika ágazat őszi félév.
Táblázat kezelő programok
Dijkstra algoritmus Baranyás Bence. Feladat Adott egy G=(V,E) élsúlyozott, irányított vagy irányítás nélküli, negatív élsúlyokat nem tartalmazó, véges.
Operációkutatás szeptember 18 –október 2.
Metal/plastic foam projekt
Mátrix függvények Keresőfüggvények
Papp Róbert, Blaskovics Viktor, Hantos Norbert
OPERÁCIÓKUTATÁS Kalmár János, 2012 Tartalom A nulla-egy LP megoldása Hátizsák feladat.
Prím algoritmus.
WEB Technológiák ISAPI ME Általános Informatikai Tsz. dr. Kovács László.
Microsoft Excel Függvények VII..
Microsoft Excel Függvények VIII.
Függvények III Logikai függvények. Hamis A HAMIS logikai értéket adja eredményül. HAMIS( ) A függvény alkalmazása helyett egyszerűen beírhatjuk a HAMIS.
Operációkutatás eredete
Algoritmusok II. Gyakorlat 3. Feladat Pup Márton.
Függvények.
Közlekedésmodellezés Készítette: Láng Péter Konzulens: Mészáros Tamás.
Önálló laboratórium Képek szegmentálása textúra analízis segítségével
Textúra elemzés szupport vektor géppel
Táblázatkezelés.
3.2. A program készítés folyamata Adatelemzés, adatszerkezetek felépítése Típus, változó, konstans fogalma, szerepe, deklarációja.
Lineáris programozás.
Optimalizáció modell kalibrációja Adott az M modell, és p a paraméter vektora. Hogyan állítsuk be p -t hogy a modell kimenete az x bemenő adatokon a legjobban.
Matematika II. 1. előadás Geodézia szakmérnöki szak 2010/2011. tanév Kataszteri ágazat tavaszi félév.
Készítette: Hanics Anikó. Az algoritmus elve: Kezdetben legyen n db kék fa, azaz a gráf minden csúcsa egy-egy (egy pontból álló) kék fa, és legyen minden.
A KOMPLEX DÖNTÉSI MODELL MATEMATIKAI ÖSSZEFÜGGÉSRENDSZERE Hanyecz Lajos.
Algoritmizálás, adatmodellezés tanítása 8. előadás.
Készítette: Horváth Viktória
Turócziné Kiscsatári Nóra
Dr. Bánkuti Gyöngyi Klingné Takács Anna
Táblázatkezelés KÉPLETEK.
Business Mathematics A legrövidebb út.
Fontos tudnivalók A MATLAB egy fajta objektummal dolgozik (Mátrix)
A derivált alkalmazása
OPERÁCIÓKUTATÁSDUALITÁS
Operációkutatás eredete második világháború alatt alakult ki különböző szakmájú emberekből álló team: matematikus, fizikus, közgazdász, mérnök, vegyész,
Szimuláció.
1. feladat  Készíts olyan függvényt, mely paraméterül kapja két egész típusú változó címét, s hívása után a két változó értéke helyet cserél.
Készítette : Giligor Dávid Neptun : HSYGGS
OPERÁCIÓKUTATÁS TÖBBCÉLÚ PROGRAMOZÁS. Operáció kutatás Több célú programozás A * x  b C T * x = max, ahol x  0. Alap összefüggés: C T 1 * x = max C.
Matlab. M ma áű t T vL e a r l b I e b x t a en k.
Statisztikai és logikai függvények
Táblázatkezelés Képletek és függvények. Képletek A képletek olyan egyenletek, amelyek a munkalapon szereplő értékekkel számításokat hajtanak végre. A.
Technológiai folyamatok optimalizálása Ráduly Botond Mészáros Sándor MATLAB ® - Optimization Toolbox.
Technológiai folyamatok elemzése és optimalizálása Ráduly Botond Mészáros Sándor (Analiza şi optimizarea proceselor tehnologice) (Process analysis and.
TÁMOP /1-2F Informatikai gyakorlatok 11. évfolyam Alapvető programozási tételek megvalósítása Czigléczky Gábor 2009.
Szimuláció. Mi a szimuláció? A szimuláció a legáltalánosabb értelemben a megismerés egyik fajtája A megismerés a tudás megszerzése vagy annak folyamata.
Technológiai folyamatok optimalizálása Dinamikus programozás Ráduly Botond Mészáros Sándor.
Függvények használata
Genetikus algoritmusok
Technológiai folyamatok optimalizálása
Technológiai folyamatok optimalizálása
Nem módosítható keresések
DRUPAL Előadja: Nagy Nikoletta :05.
Informatikai gyakorlatok 11. évfolyam
Emlékeztető Az előző órán az adatok eloszlását Gauss-eloszlással közelítettük Célfüggvénynek a Maximum Likelihood kritériumot használtuk A paramétereket.
Előadás másolata:

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

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 (http://www.mathworks.com)

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

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 = [1 2 3 4 8 3 2 1]; 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]

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!

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ó)

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.

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.

fminbnd alkalmazás Az előbbi célfüggvény minimalizálása az fminbnd segítségével: x = fminbnd(@Fcel, -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, ...)

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 = fminbnd(@Fcel, -10, 10, options) options = optimset(‘maxiter’, 20, ’display’, ‘iter’,’tolfun’, 0.1,’tolx’, 0.1) x = fminbnd(@Fcel, -10, 10, options)

á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

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)

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) + 2000/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 = fminbnd(@Fcel_hordo, 0.0001, 5) x* = 5 Vizsgáljuk meg hány lépésből találta meg az algoritmus a minimumot!

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) + 2000/x/pi; Ez esetben x* ~ 0

grafikusan ábrázolva...

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) + 2000/x/pi', 0.0001, 5) x = fminbnd(‘-sqrt(4000*x/pi) + 2000/x/pi', 0.0001, 5)

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