Oktatás

A kutatócsoport munkájában részt lehet venni az alább felsorolt módokon:


Választható témák

Az alább felsorolt témákban lehet feladatokat elvállalni. Saját témával kapcsolatos kutatást a csoport keretein belül külön egyeztetés alapján lehet végezni.

  1. Ágens-alapú modellekben alkalmazott kommunikációs gráfok optimális partícionálása
    1. Partícionáló algoritmusok keresése/hatékonyság mérése/algoritmusok fejlesztése
    2. Gráf generáló szoftver modul készítése vagy integrációja
    3. Gráf kezelő modul fejlesztése vagy kiegészítése
  2. Szimulációs modell implementálása
    1. Tanulmányi rendszert szimuláló modell fejlesztése
    2. Adócsalási viselkedést szimuláló modell újraimplementálása, verifikálása
    3. Közlekedési szimulációs keretrendszer refaktorálása: elosztott futtatás lehetővé tétele
  3. Modelldefiníciós és modellreprezentációs módszerek vizsgálata
    1. Modelldefiníciós módszerek implementálása, fejlesztése Eclipse keretrendszerben
    2. Kódgeneráló pluginok fejlesztése Eclipse keretrendszerben


Oktatási tevékenység

 Szoftvertechnológia labor kurzus

 A "Szoftvertechnológia labor" című tárgy felvehető a programtervező informatikus M.Sc. képzésben résztvevő hallgatók számára. A tantárgy első félévének kurzuskódja "IPM-08sztSZT1L". A tantárgy 4 féléves, félévenként 4 kreditet ér.

 Szakdolgozati témavezetés

 Programtervező informatikus B.Sc., illetve programozó matematikus hallgatók számára lehetőség van a projekt témájához kapcsolódó szakdolgozati téma kidolgozására.

 Diplomamunka témavezetés

 Programtervező informatikus M.Sc., illetve programtervező matematikus hallgatók számára lehetőség van a projekt témájához kapcsolódó diplomamunka téma kidolgozására.

 TDK témavezetés

 Az ELTE IK bármely képzésben résztvevő hallgatójának lehetősége van a projekt témájához kapcsolódó TDK téma kidolgozására.

 Kutatási lehetőség minden érdeklődő számára

 Bárkit szívesen látunk, aki a téma szépségéért kapcsolódna be a projekt munkájába.


Választható témák

 Az alább felsorolt témákban lehet feladatokat elvállalni. Saját témával kapcsolatos kutatást a csoport keretein belül külön egyeztetés alapján lehet végezni.

 1. Ágens-alapú modellekben alkalmazott kommunikációs gráfok optimális partícionálása

 A modern tudományfilozófia a társadalmat egy többszörösen összefüggő komplex rendszerként jellemzi. Az informatikai lehetőségek bővülésével egyre kiforrottabb szoftvereszközök állnak rendelkezésre a komplex rendszerek modellezésére. Ilyen eszköz az ágens-alapú modellezés, amely egyén (itt ágens) alapú, alulról-felfelé építkező, kifejezetten számítógépes szimuláción alapuló módszer. Az ágens alapú modellek a társadalom működését az egyes szereplők viselkedésének meghatározásával és a társadalmi kapcsolatok szimulálásával imitálják. Így a klasszikus matematikai társadalmi modellekhez képest valószerűbb viselkedést képesek reprodukálni.

 A számítógépes kapacitás évtizedek óta tartó folyamatos bővülése lehetővé teszi az egyre alacsonyabb absztrakciós szinten definiált szimulációs modellek tervezését. A bővülő számítási kapacitás kihasználása folyamatos kihívást jelent az ágens-alapú modellek fejlesztői számára is. Mivel a fő trend a sokmagos és hálózatba kapcsolódó rendszerek "virtuális szuperszámítógépként" történő hasznosítása, a szoftvertechnológiának az ágens-alapú modellezés területén is választ kell adnia az elosztott futtatással kapcsolatos kérdésekre.

1.1. Partícionáló algoritmusok keresése/hatékonyság mérése/algoritmusok fejlesztése

 A gráfpartícionálás (illetve klaszterezés) tekintélyes szakirodalommal rendelkező kutatási terület. Nem véletlenül, hiszen a hasonló elemek csoportosításának elmélete számtalan módon alkalmazható ipari folyamatok optimalizálásában. Az ágens alapú modellek hatékony elosztott futtatásának kulcsa, hogy a szimuláció során az ágensek kommunikációjának költségét minimális szinten tartsuk. Az egyes számítógépek közti hálózati kommunikáció költsége általában nagyságrendekkel nagyobb a számítógépen belüli kommunikációnál. Így az ágensek elosztása - a modell kommunikációs hálózat szerinti partícionálása - a modell használhatóságát meghatározó tényező.

 Keressük azokat az algoritmusokat melyek - változatlanul vagy továbbfejlesztés után - megfelelnek ágens-alapú modellek kommunikációs gráfjának optimális költséget eredményező partícionálására.

1.2. Gráf generáló szoftver modul készítése vagy integrációja

 A társadalmi rendszerekben különböző struktúrájú hálózati kapcsolatok figyelhetők meg. Az ismerősi-, szakmai-, szexuális-, stb. kapcsolati hálózatok tanulmányozása fejlődő tudományterület, melynek egyik motorja az internet adta lehetőségek (közösségi oldalak, navigációs eszközök, stb.) bővülése. Az ágens-alapú modellek tervezésekor lényeges döntés az ágensek kommunikációs hálózatának megválasztása.

 Cél egy olyan szoftver modul készítése (vagy egy létező modul integrációja), melynek segítségével a szakirodalomban ismert gráf struktúrák (Erdős-Rényi véletlen gráfok, Watts-Strogatz gráfok, Barabási-Albert gráfok, stb.) paraméterezhetően állíthatóak elő.

1.3. Gráf kezelő modul fejlesztése vagy kiegészítése

 Cél egy olyan szoftver modul fejlesztése (vagy egy meglévő modul beágyazása), amely lehetővé teszi gráfok ágens-alapú modellekbe történő integrálását. A modul szolgáltatásai tartalmazzák a következőket: gráfok mentése és betöltése (szöveges fájlból, relációs adatbázisból, xml dokumentumból, stb.); különböző gráf reprezentációk közti váltás (pl. él lisa, szomszédsági mátrix, stb.); gráfok vizualizációja (síkba rajzolás, statisztikák grafikonon megjelenítése, stb.).

 2. Szimulációs modell implementálása

 Az ágens-alapú modellezéssel kapcsolatos szoftvertechnológiai kutatásaink eredményeit valós társadalmi rendszerek modelljein tervezzük bemutatni. Ennek érdekében tervezünk és implementálunk modelleket, valamint a kutatási eredmények figyelembe vételével újraimplementálunk létező, a tudományterület szakirodalmában fellelhető modelleket.

2.1. Tanulmányi rendszert szimuláló modell fejlesztése

 A Magyarországon alkalmazott kreditrendszer ("Bologna rendszer") sajátosságai miatt minden egyes hallgató potenciálisan egyéni tanulmányi rend szerint halad, az egyes kurzusok felvételéről - a tanulmányi előírások figyelembe vételével - önállóan dönt. Ennek eredményeképp minden szemeszterben versengés indul a kurzusokra meghirdetett helyekért, aminek során az egyes hallgatók - az aktuális körülmények figyelembe vételével (a felvenni kívánt tanegységekhez rendelt kurzusok időpontja, telítettsége, stb.) - egyéni preferenciáik alapján számukra optimális órarendet próbálnak összeállítani.

 A fent ismertetett helyzet egy többszörösen összefüggő komplex rendszert alkot, hiszen az oktatók időbeosztása, az egyes hallgatók által felvehető kurzusok köre kölcsönösen függ egymástól. Elég arra gondolni, hogy az egy kurzust újra felvevő hallgatók növelik a tantárgy oktatóinak terheltségét, esetleg kiszoríthatnak olyan hallgatókat, akik első alkalommal veszik fel a tárgyat, és így tovább. Ebben a helyzetben megkülönböztethető rendszerszintű optimalitás - amikor a lehető legtöbb hallgató tud a tanulmányi előmenetele szempontjából fontos kurzusokat felvenni -, illetve egyén szintű optimalitás - amikor az egyes hallgatók (és oktatók) az egyéni preferenciáiknak megfelelő (kedvelt oktató kurzusának hallgatása, a kurzusok preferált időpontokban történő látogatása, stb.) órarend alapján végezhetik tanulmányaikat. A gyakorlat azt mutatja, hogy a rendszer- és az egyén szintű optimalitás sokszor egymásnak ellentmondó követelmények.

 A cél a fent ismertetett rendszer ágens-alapú modelljének megtervezése és implementálása. A szimuláció célja, hogy a rendszer működését jobban megértsük, és ennek alapján ajánlásokat tehessünk a rendszer makro- és mikro szintű működésének összehangolt optimalizációjára.

2.2. Adócsalási viselkedést szimuláló modell újraimplementálása, verifikálása

 Más tudományterületekhez hasonlóan a társadalmi rendszerek számítógépes szimulációjának szakirodalmában is visszatérő probléma a publikált modellek, valamint a modell segítségével kapott eredmények nehezen reprodukálható volta. Az eredményeket szolgáltató számítógépes modellek forráskódja általában nem elérhető, pedig a publikációkban általában nincs lehetőség azok pontos specifikációjára.

 A feladat Luis Antunes és munkatársai által 2006-ban bemutatott adócsalás modell újraimplementálása (RepastJ, Repast Simphony, Fables, Netlogo valamelyikének felhasználásával) és verifikálása. Az újraimplementált modell verifikálása a közgazdaságtudományi-, vagy társadalomtudományi szakirodalomban fellelhető adatok (például lásd itt) felhasználásával történik.

2.3. Közlekedési szimulációs keretrendszer refaktorálása: elosztott futtatás lehetővé tétele

 Az ágens-alapú modellek egyik népszerű alkalmazási területe a közlekedési szimuláció. Egyrészről a logisztikai problémák kezelésére jól alkalmazható az ágens-alapú megközelítés, másrészről a különböző viselkedési minták közlekedésre gyakorolt hatásai (pl. forgalmi dugók kialakulása) is megfelelően modellezhetők ágensekkel.

 A feladat a TRAFFIX közlekedési szimulációkat támogató keretrendszer mintáját alapul vevő, elosztott szimulációt támogató közlekedési keretrendszer prototípus implementációjának elkészítése. A közlekedési szimulációs modellek a kézenfekvő módon elosztható modellek közé tartoznak, hiszen az ágensek térbeli helyzete alapján partícionálható a modell.

 3. Modelldefiníciós és modellreprezentációs módszerek vizsgálata

 A szoftvertechnológia egyik feladata olyan szoftvertermékek előállítása, melyek használata nem igényel alapos informatikai ismereteket. A számítógépes modellek - mint általában a programok - definícióját végső soron gépi kódban (gyakorlatban legtöbbször valamilyen magas szintű programozási nyelven), azaz formális nyelvet felhasználva kell megadni. A társadalomtudományok területén a formális nyelvek használata modelldefiníciós eszközként nem elterjedt. Ezért a szimulációs modellek megalkotásakor legtöbbször informális leírást (specifikációt) kell szoftverré alakítani, ügyelve a szoftver és a specifikáció konzisztenciájára. Ennek a problémának a kezelésére a szoftverfejlesztésben számos módszert alkalmaznak (pl. UML diagramok készítése), amelyek jellemzően több-kevesebb programozói ismeretet igényelnek.

 Bár több kezdeményezés létezik programozási nyelvtől független (informálishoz közeli) formalizmus megalkotására, ezek még nem elég kiforrottak ahhoz, hogy akár automatikus kódgenerálást lehessen modell definíció alapján végezni. Célunk olyan eszközök keresése, melyek segítségével még pontosabb modell leírások készíthetők.

 További célunk olyan formális reprezentáció készítése ágens-alapú társadalmi modellekkel, amelynek felhasználásával platform-specifikus (pl. griden futó) kód generálható.

3.1. Modelldefiníciós módszerek implementálása, fejlesztése Eclipse keretrendszerben

 A feladat modell definíciós módszerekhez (pl. ODD protokoll) illeszkedő Eclipse pluginok készítése. A pluginok felülete szöveges, vagy grafikus szerkesztő segítségével tegye lehetővé modellek (vagy modell komponensek) meghatározását.

3.2. Kódgeneráló pluginok fejlesztése Eclipse keretrendszerben

 A feladat egy adott modellreprezentáció alapján elosztott futtatásra alkalmas kód generálása (pl. a ProActive, JavaSpaces, stb. programcsomagok felhasználásával).