Kooperatív ágenskörnyezet fejlesztése NodeJS alapon

Tanszéki konzulens: 
A munkatárs fényképe
docens
Szoba: IE437
Tel.:
+36 1 463-2899
Email: meszaros (*) mit * bme * hu
Külső konzulens: 
Csitári Gyula, Logiscool Kft.

A kiírás adatai

A téma státusza: 
Aktív (aktuális, lehet rá jelentkezni)
Kiírás éve: 
2017
A kiírás jellege: 
önálló labor, szakdolgozat/diplomaterv

A feladat külső téma, a Logiscool által fejlesztett online rendszerhez kapcsolódó, nyílt forráskódú fejlesztést takar.

A Logiscool 8-18 éves fiatalok programozás oktatásával foglalkozik, több mint 30 iskolával áll kapcsolatban, és 7000 diák ismertkedett meg náluk a programozás alapjaival. A feladat az általuk kidolgozott blokkalapú, illetve szöveges programozási rendszer bővítése a mesterséges intelligencia módszereinek alapszintű oktatásában felhasználható, ágenseket versenyeztető rendszerrel.

A projekt legfontosabb tulajdonságai:

  • Online rendszer, melyben az ágensek egy NodeJS alapú backend rendszeren futnának, a világ aktuális állapota, pedig egy canvas/webgl, vagy egyéb tisztán HTML5 alapú megjelenítő felületen lenne megfigyelhető.

  • Jól skálázható, a rendszernek párhuzamosan több száz, vagy több ezer ágens futását is koordinálnia kell, ennek megfelelően az implementációnak képesnek kell lennie párhuzamosan több szerveren is futni cluster jelleggel. Ugyanakkor offline, egyszerű böngészőben is képesnek kell lennie a működésre, biztosítva az ágensek az online rendszerhez való hozzáférés nélküli tesztelését.

  • Testreszabható, API-n keresztül vezérelhető. Mind a megjelenítést, mind a rendszer vezérlését (ágensek betöltése, indítása, csapatok irányítása, világok kezelése...) egy jól definiált harmadik fél által is használható REST API-n keresztül kell végezni (offline módban, a Messaging API-n keresztül), ezáltal lehetővé téve a rendszer integrálását a meglévő oktatási platformba.

  • Könnyen programozható. Az ágensek programozása egyszerű JavaScript programok segítségével történjen, melyek sandbox környezetben futva, külső könyvtárak, internet kapcsolat, vagy egyéb hasonló segítség nélkül, csak a világ aktuális állapotáról alkotott képük alapján hozhatnak döntéseket. A játék körökre osztott, az ágensek minden körben értesülnek az általuk érzékelt világállapotról és bizonyos mennyiségű tevékenységet (mozgás, támadás, védekezés, fejlesztés, kommunikáció...) végezhetnek. Egy körön belül az ágens programoknak párhuzamosan futtathatónak kell lenniük a megfelelő skálázhatóság érdekében.

A feladat szakdolgozat, szakmai gyakorlat, illetve diplomamunka keretében is folytatható.

Elvárások:

  • JavaScript tudás

  • REST API-k ismerete

  • GIT ismerete

Előny:

  • WebGL fejlesztési tapasztalat, vagy egyéb játékfejlesztési tapasztalat

  • NodeJS fejlesztési tapasztalat

  • TypeScript ismerete

  • Korábbi open-source kontribúció

© 2010-2019 BME MIT | Hibajelentés | Használati útmutató