Urban Search and Rescue (USAR) témájú verseny a BME Méréstechnika és Információs Rendszerek Tanszék és a Schnell Alapítvány szervezésében.

Minta ágensprogramok

Az ágensek vezérlői alapvetően egyszerű felépítéssel rendelkeznek.

A kiadott Rescue mintaágens programjának lényegi része:

if (!robot.hasInjured()) { // ha nem szállítunk sérültet
    if (robot.getLocation().hasInjured()) { // és egy sérültnél vagyunk
        return Action.PICK_UP; // vegyük fel
    } else { // egyébként keressünk egyet
        path = internalWorldMap.getShortestInjuredPath(robot.getLocation());
    }
} else { // ha van nálunk sérült
    if (robot.getLocation().isExit()) { // és a kijáratnál vagyunk
        return Action.PUT_DOWN; // tegyük le
    } else { // egyébként menjünk a kijárathoz
        path = internalWorldMap.getShortestExitPath(robot.getLocation());
    }
}

A Medic programja:

public Action step() {
    if (robot.hasMedicine() // ha van gyórgyszer
            && robot.getLocation().hasInjured() // és egy sérültnél vagyunk
            && robot.getLocation().getInjured().isAlive() // aki életben van
            && robot.getLocation().getInjured().getHealth() < Injured.MAXHEALTH / 3) { // és gyógyítandó
        return Action.HEAL; // gyógyítunk
    }
    // egyébként a Rescue robot programját futtatjuk (sérülteket keresünk)
    return fallbackRobotControl.step();
}

Természetesen ennél ötletesebb, más stratégiákat alkalmazó, és akár egymással kooperáló ágenseket célszerű készíteni.

Mesterséges Intelligencia hallgatói verseny