Számítógépes szimuláció fizikai és műszaki alkalmazásai habilitációs tézisfüzet Dr. Horváth András Széchenyi István Egyetem Gépészmérnöki, Informatikai és Villamosmérnöki Kar Fizika és Kémia Tanszék 2015. szeptember 15.
Széchenyi István Egyetem Multidiszciplináris Műszaki Tudományi Doktori Iskola
Tartalomjegyzék 1. Bevezetés
2
2. Áramlástani szimulációk 2.1. Bevezetés . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. A véges térfogatok módszere . . . . . . . . . . . . . . . . . 2.3. Saját kutatási eredmények összefoglalása . . . . . . . . . . 2.3.1. Lokális időlépés-választási stratégia . . . . . . . . . 2.3.2. Nem-ideális állapotegyenletek . . . . . . . . . . . . 2.3.3. Transzlációt végző határfelületek hatékony kezelése 2.4. Tézisek és kapcsolódó publikációk . . . . . . . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
4 4 5 6 6 7 7 9
3. Genetikus optimalizálás 3.1. Bevezetés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. A genetikus optimalizációról . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3. Saját kutatási eredmények összefoglalása . . . . . . . . . . . . . . . . . . . . . . 3.3.1. Áramlástani alakoptimalizálás heterogén számítógép-fürtön . . . . . . . . 3.3.2. A Master-Slave párhuzamosítás hibatűrésének vizsgálata . . . . . . . . . 3.3.3. Alacsony szabadsági fokú autó deformációs modell paramétereinek keresése 3.4. Tézisek és kapcsolódó publikációk . . . . . . . . . . . . . . . . . . . . . . . . . .
10 10 10 11 11 12 13 13
4. Digitális képfeldolgozás és gépi látás 4.1. Bevezetés . . . . . . . . . . . . . . . 4.1.1. Vetítés az érzékelőhálóra . . . 4.1.2. Fotopigment-szint számítás . . 4.1.3. Mezopos látás szimulálása . . 4.1.4. Tervezett felhasználás . . . . 4.2. Tézisek és kapcsolódó publikációk . .
15 15 15 15 16 16 16
. . . . . .
5. Irodalomjegyzék
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
17
1
1. Bevezetés Habilitációs dolgozatomban az 1999-ben történt fokozatszerzésem utáni kutatási tevékenységem jelentősebb eredményeit foglalom össze. A címszavakat nézve szerteágazónak tűnhet kutatási tevékenységem, de mégis van egy közös nevező: a fizikai rendszerek számítógépes szimulációja. Ez egy tipikus interdiszciplináris terület: csak fizikai vagy csak programozási tudással nem lehet jó szimulációs programot fejleszteni. A területet ennek megfelelően a két oldalról érkező szakemberek művelik: jellemzően fizikusok és mérnökök, akik informatikai tudást is szereztek, vagy matematikusok, informatikusok, akik később ismerkedtek meg a fizikai, műszaki alapokkal. Ahogy az az interdiszciplináris területeknél gyakran előfordul, így itt is mindkét oldal nyer az együttműködésből: a problémák újfajta eljárások kifejlesztését motiválják, a szimulációk viszont segítenek megérteni az összetett rendszerek viselkedését. A területnek, még ha más és más problémakörre alkalmazzák, létezik egy sajátos eszközkészlete, egy közös tudása, és ez az, ami összeköti az általam vizsgált tudományos és műszaki témákat. Előzmények Kutatási témáim mindig is számítógépes szimulációhoz kapcsolódtak. Kandidátusi disszertációmat a csillagközi anyag áramlástani modellezéséből, molekulafelhők és lökéshullámok kapcsolatának vizsgálatából írtam. Ennek során saját, illetve más asztrofizikusokkal közösen fejlesztett áramlástani szoftvert használtam, de szükségesnek bizonyult képfeldolgozási problémákkal is foglalkozni, hogy a modellezés eredményeit és a megfigyelési eredményeket összehasonlítsam. Fokozatszerzésem után az asztrofizikai szimulációkról mérnöki alkalmazások felé mozdulva fordultam, mert ez illeszkedett bele munkahelyi szakmai környezetembe. A korábban szerzett tapasztalat itt is hasznosult, mert a fizikai rendszerek számítógépes szimulációja más területek problémáinak megoldására is hasonló eszközöket használ. Áramlástani szimulációk (2. fejezet) A műszaki jellegű kutatások során először egy C nyelven megírt, teljesen saját áramlástani program fejlesztésébe fogtam. Ez a fejlesztés egyrészt egy konkrét ipari projekt céljait szolgálta (SZIF-Rába Motor Gyártó KFT, Diesel-motor fejlesztési projekt, vezető: Dr. Molnárka Győző), másrészt ez egyben egy olyan alapkutatás is volt, melynek során a gázáramlási módszerek tanulmányozásához szükséges, saját fejlesztésű, tehát korlátozások nélkül módosítható szimulációs kódot állítottunk elő. A program belső munkaneve „ARMO” („ÁRamlástani MOdellező”)) volt és fejlesztését Dr. Horváth Zoltánnal közösen végeztük. Ennek során ő elsősorban a matematikai modell felállításával, a megfelelő megoldási módszer kiválasztásával és az ahhoz kapcsolódó részletes számításokkal foglalkozott, míg én egyrészt a speciális fizikai ismereteket (pl. a nem-ideális gázok viselkedésének leírását) adtam hozzá az alapokhoz, másrészt a program tervezését és kódolását szinte 100%-ban elvégeztem. A később ismertetettek szerint ez nemcsak programfejlesztői tevékenységet jelentett, hanem a program hatékonyságát szignifikánsan megnövelő algoritmus-módosításokat is. Az ARMO-ban szerzett tapasztalatok és fejlesztett módszerek később más ipari modellezési feladat alapjául, nagyfeszültségű árammegszakító numerikus modellezésénél (SZE – Ganz Transelektro RT.) is szolgáltak, amit már nagyobb csapatban végeztünk. (A végső program 4 fejlesztő kódsoraiból állt.) A munka titoktartási feltételei miatt erről csak kisebb, általánosabb összefoglaló jelent meg nyilvánosan. Kiemelt publikációk: [1], [2], [3]. Genetikus optimalizálás (3. fejezet) Az áramlástani szimulációk során sok kapcsolódó probléma merült fel. Így jutottam el az optimumszámítás területéhez. Először a korábban említett Diesel-motor szívócsatorna tulajdonságainak javítását kezdtük el kutatni kis alakváltozások, deformációk alkalmazásával. Ezt először „kézi módszerrel”, azaz fizikai megfontolások alapján, de az emberi megérzésre alapoz2
va történő háló-deformációval végeztünk el. Kézenfekvő volt, hogy a kutatás folytatásaként egy optimumszámítási problémává alakítsuk a feladatot, azaz a deformációk ideális mértékét valamilyen algoritmussal határozzuk meg. A probléma sajátosságai (hasonlóan sok, a szakirodalomban publikált esethez) a genetikus algoritmusok alkalmazásához vezettek, méghozzá sok számítógépet felhasználó párhuzamos környezetben. Speciális körülmény volt, hogy a rendelkezésre álló gépek sebessége eltért egymástól, nem is volt mind megbízható, így nem lehetett feltételezni, hogy mindig mindegyik működni fog és mindig lesz köztük hálózati kapcsolat. Végül is egy, kb. 30, különböző hardverű számítógépéből kialakított fürtön futó programot fejlesztettünk, melynek segítségével az emberi megérzésen alapuló, „kézi” módszernél több mint kétszer nagyobb javulást tudtunk elérni a kritikus paraméterekben. Az előálló program egy speciális, robusztus módszert használt a hibatűrés elérésére: Nem Master-Slave architektúrában történtek a számítások, hanem szigetszerű rendszerben, és bármelyik gépen elindítható ágensprogramok végezték a szigeteken belüli és azok közti kommunikációt. A munka elméleti részében Dr. Horváth Zoltán működött közre, a számítógép-fürt telepítését, az ezen működő elosztott optimalizációs program tervezését, kódolását és tesztelését én végeztem. E kutatás során több probléma merült fel a párhuzamosítás kapcsán, pl. az, hogyan érdemes azt az esetet kezelni, amikor a számítógép-fürt valamelyik elemétől nem kapunk egy elvárható időkorláton belül választ. Ebből kiindulva a téma módszeres kutatását kezdtük meg Hatwágner Ferenc Miklóssal, akinek ez lett doktori disszertációjának témája. Témavezetőként e közös munkáknak legtöbb ötletét én vetettem fel, az elméleti alapok tisztázását végeztem, míg doktoranduszom a módszerek fejlesztéséhez járult hozzá ötletekkel és a kódolási részt teljesen ő végezte. Hatwágner Ferenc Miklós a témából sikeresen megvédte disszertációját 2012-ben. Kiemelt publikációk: [4], [5], [6], [7], [8], [9] Digitális képfeldolgozás és számítógépes látás (4. fejezet) Mint fentebb említettem, már kandidátusi kutatásaim során kapcsolatba kerültem a számítógépes grafika, a digitális képfeldolgozás témakörével. Az műszaki áramlástani szimulációk során ezt a tudást az eredmények vizualizálásában kamatoztattam, de bizonyos alkalmazások felvetették önálló képfeldolgozási munkák elvégzését is. Így készítettünk szennyvíztelep számára mikroszkópos videofelvételeket elemző programot, és egy aktívan folyó kutatásban vezető szerepet játszok, mely kolonoszkópiás képek számítógépes diagnosztizálását tűzte ki célul. Ezek azonban nem kifejezetten szimulációs jellegűek, ezért e habilitációs dolgozatba nem lennének szervesen beilleszthetőek. Beletartozik viszont a dolgozat témájába a „RetModel” nevű retina-szimulációs program fejlesztése. A retina folyamatainak részletes követése tipikus számítógépes modellezési feladat: 105 –106 nagyságrendű érzékelő mindegyikére kell a biofizikai folyamatokat leíró differenciálegyenleteket megoldani, az érzékelők közti részre interpolálni és az eredményt lehetőleg valós időben megjeleníteni. Ezen a munkán Dömötör Gábor doktoranduszommal dolgozunk. A módszer fizikai és matematikai alapjainak felírását nagyrészt én végzem, míg doktoranduszom főként az informatikai kérdésekkel, a hatékony megvalósítással és kódolással foglalkozik. Retina-modellünk tudomásunk szerint a legrészletesebb a maga műfajában. Jelenleg a modell gyakorlati alkalmazásain dolgozunk. Kiemelt publikáció: [10]
3
2. Áramlástani szimulációk 2.1. Bevezetés Az áramlástani szimulációk (Computational Fluid Dynamics, CFD) a számítógépes modellezés egy speciális csoportját alkotják. Kutatómunkám során elsősorban összenyomható közegek (gázok) áramlásának vizsgálatával foglalkoztam. Terjedelmi okokból itt csak néhány alapegyenletet írunk fel, mely a legegyszerűbb gázáramlási modellre, az Euler-egyenletre vonatkozik. A sokféle jelölés közül a konzervatív változókkal történő felírást választjuk, mert ez illeszkedik a kutatásaimban használt véges térfogatok módszeréhez. Jellemezzük a közeget az u a konzervatív állapotjelzőket tartalmazó állapotvektorral, melynek elemei a tömegsűrűség (%), lendületsűrűség-vektor komponensei (%vi ), és az energiasűrűség (e), az áramlási tartomány pedig legyen Ω ⊂ IR3 . Ekkor u fluxusvektora az alábbi f vektor lesz: Ω × [0, tmax ] → IR5 fi : IR5 → IR5 T %vi , (%vi v + pei )T , vi (e + p) , i ∈ {1, 2, 3}.
u = (%, %vT , e)T : f = (f1 , f2 , f3 )T , fi (u) =
(1) (2) (3)
Itt ei az i. koordinátatengely irányába mutató egységvektor, v a 3 komponensű sebességvektor, p pedig a közeg nyomása. Ezekkel a jelölésekkel az Euler-egyenlet, ami a súrlódásmentes gázok mozgását írja le: ∂ u + divf (u) = 0. ∂t
(4)
Feltételezhetjük, hogy a kezdő állapotot ismerjük: u(., 0) = u0 .
(5)
A matematikai modell teljességéhez még peremfeltételek is tartoznak, melyeket itt terjedelmi okokból nem részleteznénk. Fontossága miatt kiemeljük viszont az állapotegyenlet, ami a legegyszerűbb esetben, az ideális gázoknál az alábbi alakú: 1 (e − v2 /2), (6) p=% 1− γ ahol γ = cp /cv a specifikus fajhőhányados. Még ezen egyszerű modellben is speciális hatások lépnek fel, melyek a szimuláció és az alkalmazások szempontjából fontosak. Ezek közül kettőt emelünk ki: • Lökéshullámok. Az összenyomható közegekben még folytonos kezdeti feltételek esetén is előfordul, hogy egy idő után a megoldás bizonyos változókban szakadásos lesz. • A közeg speciális állapotegyenlete. A gázok állapotjelzői (nyomás, sűrűség, hőmérséklet, . . . ) közti kapcsolatok, az un. „állapotegyenletek” első közelítésben jól leírhatók egyszerű formulákkal, pl. az ideális gázok állapotegyenletével. Gyakran kiderül azonban, hogy az ilyen közelítés mérhető pontatlanságokra vezet. A pontos állapotegyenletek figyelembe vétele bonyolítja a modellezés matematikai részét is, de a hatékony implementációt is nehezíti, ha egyszerű formulák kiértékelése helyett interpolációs táblázatokban kell keresni. 4
2.2. A véges térfogatok módszere Kutatásaim során a saját fejlesztésű áramlástani kódok mindegyike a véges térfogatok módszerét (Finite Volume Method, FVM) használta. E módszer alapötlete a következő: • Az áramlási tartományt valamilyen módon cellákra osztjuk fel (síkban pl. háromszögekre, térben pl. tetraéderekre); • a közeget olyan „konzervatív változókkal” jellemezzük, melyek zárt tartományon vett térfogati integráljára megmaradási törvény teljesül (sűrűség, lendületsűrűség, energiasűrűség); • a konzervatív változók cellánkénti értékeinek időbeli változását a cellahatárokon átadott tömeg, lendület, stb. fluxusainak számításával követjük. A véges térfogatok módszere (a kerekítési hibákat leszámítva) garantálja a konzervatív változókra vonatkozó megmaradási törvények teljesülését. Ez nagy előny a többi módszercsaládhoz képest, mert hiába közelíti egy más jellegű módszer lokálisan jól mondjuk a sűrűség-eloszlást, ha egy zárt tartályban a szimuláció során nőni kezd az össztömeg, az teljesen meghamisíthatja a modellezés eredményét. Vezessük be a következő jelöléseket: • Tj , j = 1, 2, . . . , Nc a tartomány cellákra való felosztása. S Természetes követelmény: j=1,..,Nc Tj = Ω, és a cellák csak felületükön érintkezhetnek. • Sjl : a j. és az l. cella közös határfelülete. • njl : a határfelület normálvektora. • gjl : a j. és az l. cella közti áramlást jellemző fluxusvektor. • cjl : a cellahatáron jellemző maximális információáramlási sebesség. • L(j): a j. cellával szomszédos cellák indexeinek listája. Jelölje továbbá a szokásoknak megfelelően |Tj | a j. cella térfogatát, |Sjl | pedig a megfelelő határfelület területét. Ezekkel a jelölésekkel egy FVM-szimuláció egy fix rácson az 1. ábrán található pszeudokóddal írható le. t=0 Ciklus j = 1, ..., Nc -re uj = u0j
// kezdőértékek
Ciklus amíg (t < tmax ) τ =∞ Ciklus j = 1, ..., Nc -re Qj = 0 Ciklus j = 1, ..., Nc -re Ciklus l ∈ L(j)-re cjl = cjl (uj , ul ) kiszámítása qjl = gjl (uj , ul , njl ) kiszámítása Qj = Qj + qjl τjl = CF L · |Tj |/(|Sjl |cjl ) τ = min(τ, τjl ) t=t+τ Ciklus j = 1, ..., Nc -re uj = uj − τ · Qj /|Tj |
// változások gyűjtése // végig a cellákon // végig a szomszédokon // nagy műveletidő! // fluxus hatása a cellára // helyi max. időlépés
// változók frissítése
1. ábra. Egy FVM áramlástani szimuláció vázának pszeudo-kódja
5
2.3. Saját kutatási eredmények összefoglalása 2.3.1. Lokális időlépés-választási stratégia Az egyik fő lassító tényező az összenyomható közegek időfüggő áramlástani szimulációjában a CFL-kritérium: stabil módszerek esetén az időlépés a cellaméret/hangsebesség nagyságrendjébe kell essen. Sok esetben a rácsméret erősen változik a tartományon belül, ami azt jelenti, hogy a kis cellaméretű részek miatt csak kis időlépés lesz megengedhető az egész tartományon. Erre dolgoztam ki és implementáltam egy lokális időlépés-választási stratégiát, melyet [1] ismertet részletesen. A módszer alapgondolata, hogy az időigényes fluxusszámítási lépést nem ismételjük meg minden iterációs lépésben azokon a környékeken, ahol a lokálisan megengedhető τjl sokkal nagyobb, mint az ezek minimumából adódó globális τ érték. Az alapötlet az, hogy amikor a cellahatárokon kiszámítjuk a fluxusokat, laponként eltároljuk őket és ezek „szavatossági idejét” is. A szavatossági idő a fluxus kiszámolásakor a fenti τjl érték, de minden időlépésben csökkentjük τ -val és új fluxusszámítást csak akkor kezdeményezünk, ha ez negatívvá válna. Az áttekintést megkönnyítő pszeudokód megtalálható a 2. ábrán. t=0 nsteps = 0 Ciklus j = 1, ..., Nc -re uj = u0j
// kezdőértékek
Ciklus j = 1, ..., Nc -re Ciklus l ∈ L(j)-re cjl = cjl (uj , ul ) kiszámítása ∗ = g (u , u , n ) kiszámítása gjl jl j l jl τjl∗ = CF L · |Tj |/(|Sjl |cjl )
// inicializálás az össze cellára // ... az összes lapjukra // fluxusok: csak eltároljuk // szavatossági idő: tárolás
Ciklus amíg (t < tmax ) τ = min{min τjl , tmax − t} j,l
Ciklus j = 1, ..., Nc -re Ciklus l ∈ L(j)-re ∗ /|T | uj = uj − τ · gjl j ∗ ∗ τjl = τjl − τ Ha (τjl∗ < τ *0.05) vagy (nsteps mod 10 = 0) cjl = cjl (uj , ul ) τjl∗ = CF L · |Tj |/(|Sjl |cjl ) ∗ = g (u , u , n ) gjl jl j l jl t=t+τ nsteps = nsteps + 1
// // // // // //
végig a cellákon végig a szomszédokon állapotjelző frissítés csökken a szavatossági idő lejárt a fluxus szavatossága? újraszámolunk mindent
2. ábra. Lokális időlépési stratégiát alkalmazó FVM módszer pszeudokódja A módszer hozadéka, hogy a számítási ciklus legidőigényesebb részét kitevő fluxusszámítást ne kelljen a nagy cellák környékén feleslegesen sokszor újra és újra számolni. Mivel ez a fluxusszámítás teszi ki a futásidő jelentős részét (tipikus esetben mérések szerint 60–80%-át), ezért ez jelentős sebesség-növekedést jelent. Pl. a [1] cikkben ismertetett Diesel-motor szívócsatorna szimuláció esetén kb. 2-szeres (esetfüggően 1,8–2,5-szeres) sebességnövekedést mértünk. Az eredményeket [1]-ben publikáltuk. Az itteni vizsgálatban két fontos paraméter megállapítása volt a cél: az állandó nyomáskülönbség mellett mérhető tömegáram, és a hengerbe jutó szám perdületét jellemző dimenziótlan perdületi szám. (A motor hatékony működéséhez rögzített feltételek mellett minél nagyobb tömegáram szükséges a beszívási fázisban. A hengerbe 6
bejutó levegő esetén létezik egy optimális mértéke annak, mennyire forogjon, hogy megfelelően segítse a keverék-képződést, azaz a perdületi számot egy mérnöki gyakorlatból jövő, optimálisnak tekintett értéken kell tartani.) A számolt tömegáramot és perdületi számot laboratóriumi mérésekkel is sikerült összevetni: a végső módszer egy kb. 140 000 tetraédert tartalmazó rácson 1-2% pontosságig visszaadta ezeket, ami nagy megerősítése volt áramlástani szimulációnk korrekt voltának. 2.3.2. Nem-ideális állapotegyenletek Az áramlástani szimulációkban a gázok állapotegyenletét sokszor közelítik az ideális gáz állapotegyenletével. Ez egy kényelmes, matematikailag jól kezelhető eset, hisz pl. a belső energiasűrűséggel egyenesen arányos a nyomás és a hőmérséklet. (Lásd (6) egyenlet.) Ilyen esetben az elméleti számítások (pl. a Riemann-probléma megoldása) is relatíve egyszerűek, de a programozást is megkönnyíti, hogy egyszerű egyenleteink vannak. A valóságban azonban az ideális állapotegyenletektől való eltérés sokszor nem hanyagolható el, mert lényeges nemlinearitások vannak az állapotváltozók közti összefüggésekben. Jellemzően ezek akkor válnak jelentőssé, ha széles hőmérséklet-tartományban kell dolgoznunk. A [2] és [3] publikációban megmutattuk, hogy a Riemann-probléma olyan nemideális állapotegyenletekre is megoldható, melyeket mérési adatokból nyert táblázatokból származtatunk. E megoldás segítségével olyan fluxusszámítási módszert adtunk meg, mely általánosan használható, ha a gáz relatív molekulatömege konstans, de a belső energiasűrűsége nem lineárisan, hanem táblázatban adott módon függ a hőmérséklettől. Ebben az esetben az állapot- és a fluxusvektor is módosul, de a legnagyobb változás az állapotegyenletben van: K X %m , p = RT Wm m=1
(7)
ahol R az univerzális gázállandó, T az abszolút hőmérséklet. Az u állapotvektorból T meghatározására az alábbi egyenletet kell megoldani T -re: e=
K X
%m Im (T ),
(8)
m=1
ahol Im (T ) az m. komponens specifikus belső energiasűrűsége. A gáz nem-ideális dinamikája ezekben az Im (T ) függvényekben van elrejtve: ideális gázra ezek lineáris függvények, valós gázokra ezek interpolációs táblázatokba foglalt mérési adatokból határozhatók meg. Az elméleti módszer megadásán kívül levegőre, Diesel-üzemanyag-gőzre és ezek kétfázisú keverékére is alkalmaztuk az eljárást és sikeresen használtuk azt Diesel-motorban lezajló beszívási és keverék-képződési folyamatainak modellezésénél. Az eljárást sikeresen alkalmaztuk bonyolultabb esetben is, egy nagyfeszültségű megszakítóban történő folyamatok szimulálásáról szóló ipari projektben, amikor is az SF6 gáz viselkedésének 200 és 60 000 K közti pontos leírása volt a cél. Ez az eset annyival bonyolultabb volt a levegő-üzemanyag keverék eseténél, hogy itt már az ionizáció és disszociáció miatt a Wm relatív molekulatömeg hőmérséklet- és sűrűségfüggését is figyelembe kellett venni. 2.3.3. Transzlációt végző határfelületek hatékony kezelése Mint fentebb leírtuk, a mozgó szilárd felületek körüli áramlás leírása több nehézséget támaszt: a térbeli diszkretizáción alapuló módszerek, így az általunk használt FVM is igényli, hogy a diszkretizációs hálót folytonosan a felületekhez igazítsuk, ami egyrészt azt jelenti, hogy a 7
felülethez illeszkedő és belső cellahatárok közt is lesznek mozgóak, másrészt ha az áramlási tartomány jelentős torzuláson megy át, akkor a kezdeti diszkretizációs háló folytonos torzítása elfajuló cellákhoz vezet, ezért ennek elkerülésére néha növelni vagy csökkenteni kell a cellák számát, azaz új rácsra kell áttérni. E problémák leküzdésére olyan eljárást fejlesztettünk és implementáltunk, mely transzlációt végző felületdarabok esetén • a problémához illeszkedő, nem elfajuló, réteges tetraéder-hálót generál, mely kiterjed a teljes tartományra ahol a mozgó felület valamely állapotában gáz lehet, • a mozgó felület mögött (azaz a szilárd anyaggal kitöltött részeken) a cellákat inaktívvá tesszük, a felülethez közeli réteg határpontjait a felülethez igazítja, • a felületdarab mozgásakor csak a vele érintkező cellaréteget kell torzítani, • ha a torzuló réteg nagyon lapossá válik, akkor az inaktívvá lesz téve és a következő réteg széle lesz a felülethez igazítva, • ha a torzuló réteg nagyon elnyúlna, akkor a következő, jelenleg inaktív réteg lesz aktivizálva ráigazítva a mozgó felülethez a cellahatárokat. Ezt a folyamatot mutatja be a 3. ábra. deformáció
csettintés
deformáció
deformáció
gáz aktív cellák szilárd inaktív cellák mozgó felület
interpolációs blokk
3. ábra. A mozgó felületek kezelésére alkalmazott „csettintéses” módszer vázlata 2D metszetben. Természetesen az új réteg aktiválásakor vagy a régi passziválásakor a felület közeli néhány rétegben a konzervatív változókat át kell számolni az új cellafelosztásnak megfelelően. Ha megfelelő időlépés-választással biztosítjuk, hogy mindig pontosan 1,5-szeresre nyúlt cellarétegekről kelljen egy eredetei és egy 0,5-szörös méretű cellarétegre áttérni, akkor ezen interpoláció mindig rögzített konfigurációjú cella-blokkok közt következik be, így ennek paraméterei előre kiszámolhatók. Az általunk választott réteges tetraéder-hálózatok esetén mozgó felület belsejénél ez mindig ugyanolyan blokkok közti átszámolást jelent 3 és 6 tetraéder közt (1. típus), míg a felület pereménél (2. típus) 8 féle eset léphet fel, melyek mindegyike 9 tetraéderről 9 másikra történő interpolációt jelent. Az összes ilyen esetet végigszámolva sikerült jól működő, kis számításigényű módszert találni az ilyen esetek kezelésére. A kifejlesztett eljárás a gyakorlati esetek igen nagy részében, pl. szelepek és dugattyúk mozgása esetén alkalmazható és segítségével a mozgó részek hatása csak azok közvetlen közelében okoz extra számítási szükségletet. A csettintéses eljárás biztosítja, hogy a cellák nagy része rögzített, így csak egy kisebb részük esetén kell a mozgó cellahatárok és a néha szükséges csettintés miatt extra számításokat végezni. Egy mozgó szelepes tesztfeladat esetén végzett teszt-futtatás során megmértük, hogy mennyi időt tölt a program a számítások bizonyos csoportjaival. Kiderült, hogy a mozgó rács kezelése 20%-nál kevesebb részt vesz el a számításokból, ami igen jó arány és semmiképp nem lenne tartható, ha általános hálók újragenerálásával és köztük való interpolációval dolgoznánk. 8
deformáció
csettintés
1. típusú intepoláció
deformáció
2. típusú intepoláció
4. ábra. A „csettintéses” módszer vázlata 2D metszetben, amikor a mozgó felület nem tölti ki a teljes keresztmetszetet. A módszer leírása megtalálható [2] és [3]-ban. Itt a csettintéses eljárás ötlete, a módosított fluxusszámítás társszerzőm munkája, a speciális rácsgeneráló eljárás elve közös munkánk, a teljes implementáció és a konzervatív interpolációs módszer kifejlesztése az én részem volt. A módszert sikeresen alkalmaztuk olyan feladatok esetén, melyek 4-5 mozgó alkatrészt (szelepet, dugattyút tartalmaztak) és ezek egy része görbült volt. Egy nagyfeszültségű megszakító modellezése során is használtuk az itt ismertetett technikákat. Az áramlástani egyenletek itt még az elektromos ív kezelésével, azaz elektromos és mágneses térre, valamint ezek közegre vonatkozó hatására vonatkozó számításokkal is ki voltak egészítve.
2.4. Tézisek és kapcsolódó publikációk 1.1. tézis: A fentebb ismertetett lokális időlépés-választási stratégia az FVM áramlástani módszerek esetén a pontosság megtartása mellett szignifikáns futásidő-csökkenést okoz, ha a rácsméret nagymértékben eltér a tartomány egyes részein. ([1]) 1.2. tézis: A dolgozatban vázlatosan ismertetett módon hatékonyan lehet a nem-ideális, többkomponensű gázáramlási problémákra alkalmazni a véges térfogatok módszerét. ([2], [3]) 1.3. tézis: A dolgozatban ismertetett rácsgenerálási, rácsdeformálási és átstrukturálási algoritmus alkalmas arra, hogy a rögzített falú megoldáshoz képest igen csekély plusz számítási idő és memóriafelhasználás mellett kezelje a transzlációt végző és fix felületekkel körülhatárolt térrészekben kialakuló gázáramlási problémákat a megmaradási törvények figyelembe vételével. ([2], [3])
9
3. Genetikus optimalizálás 3.1. Bevezetés A gyakorlati problémák sokszor vezetnek olyan optimalizációs feladathoz, melyben a célfüggvény (aminek a szélsőértékét keressük): • értéke egy adott pontban csak egy komplex szimuláció lefuttatásával határozható meg, • sok helyi szélsőértékkel rendelkezik, • deriváltja nem állítható elő. Ilyen pl. a 2. fejezetben említett probléma: egy Diesel-motor szívócsatornájának fontos tulajdonsága, hogy adott nyomáskülönbség mellett a legnagyobb tömegáramot biztosítsa a beszíváshoz, miközben egy előírt mértékű perdületet ad a hengerbe jutó levegőnek. Egy módosított alak esetén a tömegáram és a perdületet jellemző mennyiség meghatározásához egy teljes áramlástani modellt kell lefuttatni egy 100 000-nél több elemű rácson, ami több órás kiértékelési időt jelentett azokon a számítógépeken, melyek akkoriban rendelkezésünkre álltak. A sok lokális szélsőérték oka, hogy az alakban történő lokális deformációk nem monoton változást idéznek elő a tömegáramban és a perdületi számban, de több deformáció egymásra hatása igen elbonyolítja a helyzetet: lehet, hogy egy módosítás a szelepek közelében és egy másik a bevezető szakaszban kis javulást okoz, ha külön-külön alkalmazzuk őket, de együttes hatásuk már ront a paramétereken, mert a bevezető szakaszban végzett módosítás miatt az áramlás egész másképp érkezik a szelepekhez.
3.2. A genetikus optimalizációról A genetikus/evolúciós optimalizációs módszereknek számtalan változata létezik. Közös bennük az, hogy a biológiai evolúcióból merített ötlet nyomán nem egyetlen, közelítő megoldást próbálnak javítani, hanem lehetséges megoldások egész „populációját” kezelik. A populáció új generációjának létrehozásakor egy genetikus algoritmus először meghatározza az egyedek „rátermettségét” („fitness”) az optimalizáció célfüggvénye alapján, majd a populáció következő generációját úgy állítja elő, hogy a rátermettebbek módosított változatai, kombinációi nagyobb eséllyel kapjanak helyet benne. Ezt újra és újra megismételve a későbbi populációk egyre rátermettebb egyedeket fognak tartalmazni, így remélhetően egyre jobban megközelítik a valódi, keresett optimumot. Vizsgáljuk az olyan eseteket, amikor a célfüggvény valós értékű N valós változójú függvény, melynek a maximumát keressük. (Ilyenek merültek fel áramlástani és egyéb kutatásaink során.) f : IRN → IR
(9)
Keressük azt az x0 ∈ X ⊂ IRN vektort, melyre igaz, hogy f (x0 ) ≥ f (x), minden x ∈ X
esetén.!!!!
(10)
Itt X jelöli a „keresési teret”, azaz azt a paraméterhalmazt, melyben az optimumkeresés folyik. (10) több megoldással is rendelkezhet. Ebben az esetben az ilyen x0 értékek bármelyike ugyanolyan jó, hisz f épp az adott megoldás jóságát méri. Az evolúciós/genetikus szóhasználatban az ilyen N valós változós optimalizációnál „egyed”nek vagy „génlánc”-nak hívjuk az N dimenziós vektorokat, és ezek Np elemű halmazát „populáció”-nak nevezzük. Jelöljük a popolációbeli egyedek listáját P-vel jelöljük: P = [x1 , x2 , . . . , xNp ]. A génláncokon végzett genetikus operátorok, azaz azok a műveletek, melyeket a kiválasztott egyedeken elvégzünk: keresztezés, mutáció, lineárkombináció. 10
1. P feltöltése véletlenszerű elemekkel 2. P 0 legyen üres lista 3. Kiértékelés: F = [f (x1 ), . . . , xNp ] meghatározása. 4. F rendezése 5. F legjobb Ne egyedének átmásolása P 0 -be. 6. Rátermettségek kiszámítása: R = [1/1, 1/2, 1/3, . . . , 1/Np ] 7. Rátermettségi érték korrekciója (niching). 8. Keresztezés: R[i]-vel arányos valószínűséggel 2 elem kiválasztása 9. Ha P 0 elemszáma kisebb, mint Np , akkor vissza 8.-ra. 10. P 0 minden elemét pm < 1 valószínűséggel mutációnak alávetni. 11. P 0 eleminek P-be másolása. 12. Ha nem kell kilépni: vissza 2.-re.
// új generáció // futási idő 99%-a // elitista lépés
és keresztezése: eredmény P 0 -be.
5. ábra. Egy tipikus genetikus optimalizáció menete. Az általunk vizsgált problémáknál a kiértékelési lépés igényli a legtöbb CPU időt, mert ez az áramlástani modellek futtatását jelenti.
3.3. Saját kutatási eredmények összefoglalása 3.3.1. Áramlástani alakoptimalizálás heterogén számítógép-fürtön Áramlástani alakoptimalizációs problémánk esetén ez az egyszerű M-S párhuzamosítás nem tűnt célszerűnek, legfőképp azért, mert a futtatásra nem egy megbízható, nagy kapacitású számítógép állt rendelkezésünkre, hanem kb. 30 személyi számítógép, melyek az Egyetem épületének különböző helyiségeiben voltak elszórva és teljesítményük is eltért egymástól. Emiatt a következő problémák lépnének fel egy M-S párhuzamosítás esetén: • A kiértékelések időigénye eltérő. • A rendelkezésre álló gépek és a köztük levő hálózati kapcsolat is megbízhatatlan. A klasszikus genetikus optimalizáció és M-S párhuzamosítás helyett sziget-típusú párhuzamosítást alkalmazunk és a szigetek közt az időlegesen legjobb egyedeket ügynökprogramok másolgatják át, hogy elterjedjenek a másik populációban. Egy-egy számítógépen (sziget) tehát egy teljes optimalizáció futott, melynek vázát mutatja be a 6. ábra. A genetikus műveletek ilyen átrendezése rugalmas algoritmust eredményezett: ez a változat bármikor képes az ügynökprogram által küldött egyedeket a saját populációba beemelni, hiba után a lemezre mentett populációt újratöltve folytatni a számítást és sosem várakozik más számítógép vagy a kapcsolat hibája miatt. Az előálló módszert standard optimalizációs tesztfüggvényekkel vizsgáltuk, és az derült ki, hogy az önálló szigeteinknek csak kis mértékben kisebb a hatékonyságuk, mint a klasszikus, fix méretű populációval dolgozó genetikus optimalizációs eljárásoknak, de ezt bőven kompenzálja az, hogy rugalmasan kapcsolhatók össze és tetszőleges elem hibája esetén a működőképes részek tovább folytatják a számolást. A végső futtatás során több lépésben egy N = 18 változós feladatot oldottunk meg (18 pontban deformáltuk az eredeti geometriát), és 3 hét alatt kb. 2000 függvény-kiértékeléssel sikerült elérni azt, hogy az új geometria: • Csak maximum 15 mm-rel tért el mindenhol az eredetitől. (Nem kell újratervezni az egész blokkot.) • 2,5%-kal több tömegáramot ad azonos nyomáskülönbség esetében. • Elhanyagolható a változás az eredeti modell optimálisnak tekintett perdületi számában. 11
1. P induljon üresen vagy (ha van) biztonsági mentésből 2. Ha vannak új egyedek a lemezen: beolvasás P-be. 3. Rendezés, rátermettség kiszámítása: R 4. Ha Np < Nmin : maradék feltöltése véletlen egyedekkel az új egyedek kiértékelése vissza 2.-ra. 5. Ha Np > Nmax : Nmin feletti egyedek kidobása. 6. Ha a legjobb egyed megváltozott a legutóbbi mentés óta: lineárkombináció az új és a régi legjobb egyed közt. vissza 2.-ra 7. Új egyed meghatározása valamely genetikus operátorral. 8. Az új egyed kiértékelése. 9. Az új egyed és célfüggvény-értékének csatolása P-hez és F-hez. 10. Vissza 2. lépéshez.
// az ügynökprogramtól
6. ábra. Az egy szigeten dolgozó rugalmas optimalizáció vázlata. Eredményeinket [4] cikkben közöltük. 3.3.2. A Master-Slave párhuzamosítás hibatűrésének vizsgálata Az előző alfejezetbeli kutatást a gyakorlati alkalmazás motiválta: adott hardverkörnyezeten kellett eredményt elérni. Ez óhatatlanul az adott problémához és környezethez illeszkedő megoldásra vezetett, ami az általánosabb érvényű, széles körben használható megállapításoknak nem kedvez. Pedig igen fontos probléma az, miként érdemes kezelni a nem megbízható számítógépek és kapcsolatok kérdését párhuzamos genetikus optimalizálási feladatoknál. A nagyobb fokú általánosság elérése végett ezért egy, standard genetikus optimalizáló programot vettünk alapul, és standard teszt függvények optimalizációja esetén vizsgáltuk, milyen hatása van az optimalizáció sebességére annak, ha a M-S párhuzamosítás esetén bizonyos pm valószínűséggel egy-egy kiértékelés sikertelen lesz. A genetikus/evolúciós koncepcióban ezeket a pm valószínűséggel, az egyed rátermettségétől függetlenül bekövetkező hibákat valami végzetszerű „balesetként” képzelhetjük el, pl. úgy, hogy minden generáció során minden egyednek pm esélye van arra, hogy agyonüti egy meteor, így hiába lett volna amúgy rátermett, ez nem derül ki és génláncát, annak részeit vagy mutált változatát nem tudja továbbadni a következő generációba. E biológiai hasonlatból érezhető, hogy amíg pm nem extrém nagy, a meteor-becsapódások nem fogják drámaian rontani a konvergenciasebességet, hisz még ha a legjobb egyed egy fatális véletlen folytán el is pusztul, sok hasonló van a populációban. Eredményeink lényege: • Adott számú generáció után pm növekedésével az elért legjobb egyed gyengébb minőségű lett, de az eltérés elég kicsi maradt még pm = 0, 1 esetén is. • Adott számú sikeres kiértékelés után vizsgálva az elért legjobb egyed célfüggvény-értéke nem rosszabb (sőt, többnyire jobb), mint a pm = 0 esetben. A kutatás folytatásaként megvizsgáltuk, hogy ha a sikertelen kiértékelések esetén különféle stratégiákat alkalmazunk M-S párhuzamosítás esetén, akkor hogyan alakul az adott valós idő (wall clock time) alatt elérhető legjobb egyed célfüggvény-értéke. A vizsgálatok során többféle
12
Np populációméretet és Ncpu rendelkezésre álló slave-egységet tételeztünk fel és azt, hogy a célfüggvény-kiértékelések azonos ideig tartanak. Többféle hibakezelési stratégia szélesebb körű összehasonlító vizsgálatáról szóló mérési eredményeinket és a szükséges körök számának elméleti becsléséről szóló vizsgálatokat [6] tartalmazza. 3.3.3. Alacsony szabadsági fokú autó deformációs modell paramétereinek keresése Autó törésteszteknél mérni szokták a jármű deformációját, a járműre ható erőt és több fontos paramétert az idő függvényében. Bár a CAD-modellek részletessége és a rendelkezésre álló számítási kapacitás lehetővé teszi a folyamat teljes részletességű modellezését, ez nem mindig a legjobb módszer a jelenség tanulmányozására, mert sokszor nem állnak rendelkezésre a megfelelő részletességű modellek vagy a megfelelő számítási kapacitás. Ráadásul gyakran nem is érdekelnek miket a részletek, csak a mért, globális paraméterek: adott sebességű ütközésnél mekkora lesz a maximális deformáció mértéke vagy a fellépő maximális erő egy adott autótípus esetében. Ilyen esetekben a sok millió szabadsági fokú részletes modell helyett elfogadott módszer egy alacsony szabadsági fokszámú, kvázi-heurisztikus modell alkalmazása. A folyamat jellegének ismeretében ilyen modelleket fel lehet állítani, de annak paramétereit a valós mérési adatokhoz illeszteni egy többváltozós nemlineáris optimalizációs feladatra vezet. Több valós mérési adatsort tanulmányozva az „csúszó alappont modellt” állítottuk fel, ami azt jelenti, hogy az autó dinamikáját két, rugóval összekötött, vízszintes talajon súrlódó test mozgásával közelítjük. (7. ábra.)
7. ábra. A csúszó alappont modell sémája. E modell matematikai felírása egy 6 változós közönséges differenciál-egyenlet rendszerhez vezet, mely megtalálható a dolgozatban. A modell 9 változatát számoltuk végig annak megfelelően, hogy a két test mindegyikére 3-3 féle csillapítási modellt is feltételeztünk. A paraméter-identifikációs feladat tehát az, hogy egy adott méréssorhoz határozzuk meg a differenciálegyenlet paramétereit úgy, hogy a matematikai modell minél pontosabban visszaadja a mért értékeket. Ezt egy M-S típusú párhuzamosítással dolgozó, saját fejlesztésű genetikus programmal végeztük el, mely az előző alfejezetben említett „eldobó” stratégiát alkalmazza hibás kiértékelések esetére. Az eredmények azt mutatták ki, hogy a legjobban akkor tudjuk visszakapni a mért dinamikát, amikor az 1. test esetén súrlódási, a 2. esetén lineáris közegellenállási csillapítást tételezünk fel. Ekkor a vizsgált 3 esetben minden időpontban átlagosan 6–7% eltéréssel kaptuk vissza a mért adatokat. Ezt mutatja be két deformáció-erő diagram esetén a 8. ábra. Az eredmények publikálási helye: [7].
3.4. Tézisek és kapcsolódó publikációk 13
8. ábra. Mért és modellezett deformáció-erő diagram két méréssor esetében. 2.1. tézis: A dolgozatban ismertetett, hibatűrő genetikus optimalizáló módszer alkalmas arra, hogy megbízhatatlan komponensekből álló számítógép-fürtön, nagy számításidejű célfüggvények esetében közelítőleg meghatározza az optimális megoldást. ([4]) 2.2. tézis: Genetikus optimalizáció master-slave típusú párhuzamosítása esetén az esetleges hibás kiértékelések esetében csak akkor érdemes a kiértékeléssel újra megpróbálkozni, ha egyébként tétlen slave egységek állnak rendelkezésre. ([5], [6]) 2.3. tézis: Személyautók töréstesztjének modellezésében a fentebb ismertetett csúszó alappont módszer 10%-nál jobb relatív átlagos négyzetes eltéréssel képes leírni a deformáció mértékének és a fellépő erőnek az időfüggését, ha az első testre lineáris csillapítást, a másodikra súrlódásos csillapítást feltételezünk. ([7])
14
4. Digitális képfeldolgozás és gépi látás 4.1. Bevezetés Az ember legfontosabb érzékszerve a látás, melynek komplexitásáról sokszor megfeledkezünk. A látás folyamatának jelentős része zajlik a retinán, így ennek hatásait környezetünk érzékelésében mindenképp ismernünk kell. Itt egy olyan, saját fejlesztésű számítógépes modellt mutatunk be, mely képes a retina irány szerint változó felbontását, az érzékelésben résztvevő fotopigment mennyiségének időbeli lefutását és a félhomályban történő látást szimulálni. E folyamatok modellezésére fejlesztettük ki RetModel nevű szimulációs programunkat Dömötör Gábor doktoranduszommal. Ez az előbb említett folyamatok szimulációját végzi el, modellt adva arra, hogy a külvilág képéből mi jut át retinánk szűrőjén az agyunk felé. A program közlekedésbiztonsági, ergonómiai, sérültek látásával kapcsolatos és egyéb kutatásokban is hasznos lehet. A RetModel jelenlegi állapotában modellezett hatások: • Irány szerinti felbontóképesség. Az emberi retinában a fotoreceptorok nem egyenletesen helyezkednek el, továbbá a látómező különböző részein eltérő mennyiségben csoportosulva úgynevezett receptív mezőket alkotnak. Az alapgondolat az, hogy a retina receptív mezőinek megfelelően egy-egy fotoreceptorhálót generálunk: az egyik a csapoké, a másik a pálcikáké. A két hálózat érzékelőinek sűrűségét a szakirodalomból vettük és a vakfolt területére nem tettünk érzékelőket. • Változó fotopigment-szint és érzékenység. A fotoreceptorokban lezajló biokémiai folyamatok szimulálása (fotopigment-szint változása a háromféle csapban és a pálcikákban) és annak hatása az érzékelt képen. • Nappali, éjszakai és félhomályos látás. A nappali látásért felelős csapok (L, M és S típus) és az éjszakai látásért felelős pálcikák eltérő spektrális érzékenységgel rendelkeznek. Erős megvilágításnál (fotopos) a csapok, gyengénél (szkotopos) a pálcikák jele jut az agyunkba, de van egy átlapoló tartomány (mezopos), melyben a két típus jele kombinálódik, ami speciálisan változó szín- és intenzitásérzékenységet eredményez. 4.1.1. Vetítés az érzékelőhálóra A retina működésének szimulációhoz az alábbi lépéseket hajtjuk végre: 1. Generálunk két érzékelőhálót, figyelembe véve a csapok és a pálcikák elhelyezkedésének sűrűségét az emberi szemben. 2. Rávetítjük a bemeneti képet vagy képsorozatot a csapok és a pálcikák hálózatára. 3. Végrehajtjuk a modell szerinti számításokat a fotoreceptor-szintre. 4. Interpolációval kitöltjük a hiányzó részeket. 5. Kombináljuk a két két háló értékeit a fénysűrűség értéknek megfelelően. 4.1.2. Fotopigment-szint számítás Három folyamat zajlik a fotoreceptorban: a fotopigment termelődése, spontán bomlása és indukált bomlása. Modellünkben csak a fotopigment (0 ≤ p ≤ 1) relatív szintje fontos, nincs szükségünk pontos mennyiségi adatokra (például mol/mm3 -ben mérve). A fotopigment-szint
15
időbeli változása a következő formulával adható meg, ha állandó megvilágítást feltételezünk: p(t) =
1 1 − (1 − p0 be−tb/τ ) , b
b=1+
I , I0
(11)
ahol p0 = p(0) a számítási lépés elején érvényes fotopigment-szint, τ az érzékelőre jellemző karakterisztikus idő (csapokra 120, pálcikákra 400 s), I a retinamegvilágítás, I0 pedig egy biofizikai konstans. Ezeket a számításokat minden képkocka esetén minden érzékelőre külön-külön el kell végezni, ráadásul a csapok esetén mindhárom alapszínnek megfelelő érzékelőre külön-külön. Az agyunkba jutó jel a modell szerint p · I-vel lesz arányos, hisz ahol kisebb a fotopigment-szint, ott csökken az érzékenység. 4.1.3. Mezopos látás szimulálása Az emberi szemben található kétféle érzékelőfajta, a csapok és a pálcikák működési tartománya részben átfedi egymást, de nem egyezik meg. Az átfedés a 0,001 és 3 cd/m2 fénysűrűségek közötti „mezopos” tartomány, ahol a kétféle érzékelő együttműködése speciális jelenségeket eredményez. A jelenség modellezéséhez a MOVE konzorcium által javasolt és szabványosnak tekinthető módszert használtuk, ami sajnos egy egyenletrendszer iteratív megoldását jelenti minden képpontban. (Ezt terjedelmi okokból itt nem részletezzük.) A tesztek szerint az előálló numerikus modell helyesen adja vissza az emberi szem félhomályban történő viselkedését. 4.1.4. Tervezett felhasználás A modellt minden olyan területen használni lehet, ahol fontos annak megállapítása, hogy a retina folyamatai miatt milyen torzítások következnek be a képérzékelésben. Néhány alkalmazási terület ezek közül: • Esti megvilágítás melletti közlekedés során láthatósági viszonyok vizsgálata. A szembejövő forgalom és az esetlegesen alacsonyan levő utcai lámpák által okozott utóképek modellezése. • Annak vizsgálata, hogy egy felirat-rendszer hány pontjára kell fixálnunk látásunkat, hogy az összes betű elolvasható legyen. • Gyártósori ergonómiai vizsgálatok: a szerelőszalag melletti fényviszonyok hatásának vizsgálata a kis részletek felismerési képességére. • Betűtípusok olvashatóságának vizsgálata. • Retina-betegségben (pl. makula-degeneráció) szenvedő emberek által elvileg érzékelhető kép szimulálása.
4.2. Tézisek és kapcsolódó publikációk 3.. tézis: Az ismertetett RetModel szimulációs program az emberi retina olyan finom modelljét adja, mely alkalmas arra, hogy gyakorlati problémák esetén is elfogadható pontossággal adja vissza emberi látás irány szerint változó felbontóképességét, a fotopigment-szintek időbeli változását és a mezopos tartományban történő szín- és intenzitásérzetet. ([10])
16
5. Irodalomjegyzék Hivatkozások [1] Andras Horvath and Zoltan Horvath. Application of CFD numerical simulation for intake port shape design of a diesel engine. J. Comput. Appl. Mech, 4(2):129–146, 2003. [2] András Horváth and Zoltán Horváth. Numerical simulation of compressible fluid flow in 3D domains with translating boundaries. PAMM, 4(1):422–423, 2004. [3] Zoltán Horváth and András Horváth. Numerical simulation of compressible fluids with moving boundaries: an effective method with applications. In Numerical Mathematics and Advanced Applications, pages 471–482. Springer Berlin Heidelberg, 2004. [4] András Horváth and Zoltán Horváth. Optimal shape design of diesel intake ports with evolutionary algorithm. In Numerical Mathematics and Advanced Applications, pages 459– 470. Springer Berlin Heidelberg, 2004. [5] Miklos Hatwagner and Andras Horvath. The effect of computer network errors on genetic algorithms. Pollack Periodica, 2(2):3–12, 2007. [6] Miklos Hatwagner and Andras Horvath. Error handling techniques of genetic algorithms in parallel computing environment. Pollack Periodica, 3(2):3–14, 2008. [7] András Horváth, Miklós F Hatwágner, and István Á Harmati. Searching for a nonlinear ODE model of vehicle crash with genetic optimization. In Applied Computational Intelligence and Informatics (SACI), 2012 7th IEEE International Symposium on, pages 131–136. IEEE, 2012. [8] F. Miklós Hatwágner and András Horváth. Comparative analysis of parallel gene transfer operators in the bacterial evolutionary algorithm. Acta Polytechnica Hungarica, 9(4):65– 84, 2012. [9] F. Miklós Hatwágner and András Horváth. Maintaining genetic diversity in bacterial evolutionary algorithm. Annales Univ. Sci. Budapest, Sec. Comp, 37:175–194, 2012. [10] András Horváth and Gábor Dömötör. Computational simulation of mesopic vision based on camera recordings. Light and Engineering, 22(1):61–67, 2014.
17