Versenykiírás

A szervezők fenntartják a kiírás módosításának, pontosításának jogát!

A feladat

A feladat egy szimulációs környezetben sérültek mentését végző szoftver robotok (ágensek) vezérlésének megvalósítása Java nyelven. A megoldás elkészítéséhez kiadunk egy keretrendszert, amely egyrészt egy grafikus szimulációs környezetet biztosít, másrészt a kevésbé izgalmas programrészek implementációjával leegyszerűsíti a fejlesztést, harmadrészt mintaként egyszerű ágensvezérlőket is tartalmaz.

A keretrendszer kétféle robot vezérlését támogatja: Rescue és Medic. Előbbi alapvetően az áldozatok szállításával foglalkozik, míg utóbbi azok életben tartására koncentrál. Mivel mindkettő képes önálló mozgásra, ezért a kezdetben ismeretlen környezet felfedezésére egyaránt használhatók.

Az ágensek programozása

A feladat megoldása során a keretrendszer rescueagents package-ében található RescueRobotControl és MedicalRobotControl. osztályokban kell implementálni a robotok vezérlését, a mintaként kiadott robotoknál intelligensebb megoldást kialakítva.

A vezérlés az ágensek szokásos észlelés - cselekvés működési modellje szerint működik. Észlelésre a RobotPercepcion interfészen keresztül van lehetőségük, míg beavatkozásra a *RobotControl osztályok step() függvényének visszatérési értéke ad lehetőséget. Más érzékelésekre és beavatkozásra az ágensprogramok nem támaszkodhatnak, a keretrendszer mintaágensek által már importált részein kívül mást nem importálhatnak.

További részletek...

Futtatás és pontszámítás

Az alkalmazás a RescueFramework főosztályának main() metódusával futtatható. A szimuláció elindítása előtt kiválasztható egy térkép, és megadható a Rescue és a Medic ágensek száma. Ezután elindítva a szimulációt nyomon követhetjük a robotok működését és a sérültek állapotának alakulását.

A keretrendszer egy pontszámmal folyamatosan értékeli az ágensek teljesítményét. A robotok beszerzése költséggel (negatív pontszámmal) jár, cselekedeteikkel a pontszámot csökkentik (energiát használnak fel), a túlélők megmentésével pedig növelik. Az idő lassú múlása (a lépések száma) is csökkenti az elérhető pontszámot. A verseny célja minél nagyobb pontszám elérése különböző körülmények (térképek) mellett.

Versenyművek beküldése és értékelése

Az elkészített programok, valamint a Medic és Rescue ágensek választott száma a beküldő felületen leírtak szerint adható meg és küldhető be.

Az ágensprogramokat ismeretlen, kb. (30-40)x(20-40)-as méretű térképeken futtatjuk, és a keretrendszer által kalkulált pontszám összesítése alapján rangsoroljuk. Az eredményekről levélben küldünk minden résztvevőnek értesítést.