Ágens alapú technikák
Áttekintés Ágensek és multi-ágens rendszerek Definíciók Típusaik Környezeteik Kommunikációjuk Ágens fejlesztői környezetek
Mi az az „ágens”? Ágens Érzékelők Beavatkozó szervek Ember beavatkozik Környezet ÁGENS érzékel Ágens Érzékelők Beavatkozó szervek Ember kéz, fül, szem, stb. kéz, láb Robot kamera, szenzorok, stb. motorok, manipulátorok Szoftver kódolt bitsorozat
Mi az az „ágens”? Tisztító robot Sakk-program Mars robot Cél: az ágens jó (helyes) munkát végezzen a környezetére hatva racionális ágens – amelyik helyesen cselekszik ideális racionális ágens – minden egyes észlelési sorozathoz az észlelés és a beépített tudás alapján minden elvárt dolgot megtesz a teljesítménymérték maximalizálásáért
Mi az az „ágens”? kapcsolat az ágens észlelési sorozata és cselekvései között – leképezés a leképezés leírja az ágenst ideális ágens ideális leképezés leírási módszerek táblázatos gond: végtelen hosszú lista algoritmikus (függvény)
Ágens Észlelés Cselekvés Célok Környezet orvosi diagnosztikai rendszer szimptómák,észle-lések, a páciens válaszai kérdések, tesztek, kezelések egészséges páciens, minimalizált költségek kórház, páciens műholdas képelemző rendszer változó intenzitású és színű pixelek a kép kategorizálása helyes csoportosítás képek műholdról alkatrész felszerelő robot változó intenzitású pixelek alkatrészek felvétele és sorba rendezése ládába az alkatrészek helyes ládába helyezése futószalag alkatrészekkel olajfinomító vezérlő hőmérséklet és nyomás értékek szelepek nyitása és zárása, hőm. állítás tisztaság, kihozatal és biztonság max. olajfinomító interaktív nyelvoktató program begépelt szavak gyakorlatok, javaslatok, javítások a tanuló pontszámának maximalizálása tanulók halmaza taxisofőr kamerák, sebesség-mérő, GPS, hangradar, mikrofon kormány, gáz, fék, beszéd az utasokkal biztonságos, gyors, törvényes, kényelmes utazás, maximális haszon utak, forgalom, gyalogosok, ügyfelek
Az ideális ágens Ideális ágens fő tulajdonságai Képes a környezetére hatni cselekvések végrehajtása, mozgás,... Képes a környezetét észlelni bábuk helyzetéhez egy táblán, radar,... Egyéb lehetséges tulajdonságok Képes a többi ágenssel kommunikálni Jelezni a helyzetét, megosztani a tudását,... Cél(ok) által vezérelt A-ból B-be eljutni, megnyerni a játszmát,... Vannak saját erőforrásai Memória, robotkar, következtető gép,...
Az ideális ágens Környezetéről csak részleges információkkal rendelkezik Például csak a közvetlen környezetét látja Képességek birtokában van és szolgáltatásokat tud nyújtani Képességek (saját maga számára): mozgás, következtetés,... Szolgáltatások (a többi ágens számára): információmegosztás,... Képes önmagát reprodukálni Például szoftverágens esetében Céljai elérése érdekében cselekszik Mattot ad egy sakkjátszmában, a padlón a koszos részt tisztítja,...
Az ideális ágens Nem minden ágens ideális Feladathoz ez nem mindig kell Egy tisztítórobot nem tudja önmagát reprodukálni – nem is szükséges Észlelés + beavatkozás képessége a legfontosabb
Multi-ágens rendszerek Multi-ágens rendszer részei: Egy környezet (E) (gyakorlatilag egy kiterjedéssel rendelkező tér). Objektumok (O) halmaza, amik ebben a környezetben léteznek (ideális) ágensek (A) halmaza, AO, az (ágensek speciális objektumok) Műveletek (Op) halmaza, A ágensek ezek segítségével érzékelnek és beavatkoznak Objektumok közötti relációk halmaza. ROxO. Környezet sajátosságait leíró szabályok, műveletek
Multi-ágens rendszer (környezet)
Reflexszerű ágensek határozzák meg feltétel-cselekvés szabályok vezérlik (pl. ha az előző autó fékez, akkor kezdj fékezni) az embereknél a cselekvést tanult szabályok (pl. vezetés) feltétlen reflexek (pl. pislogás erős fényre) határozzák meg egyszerűek és gyorsak működésük: észleli a jelenlegi állapotot keres egy ehhez illeszkedő szabályt végrehajtja a szabályhoz illeszkedő cselekvést Példa: Helyesírás-ellenőrző, adatgyűjtő ágens
Milyen cselekvéseket kell most végrehajtani? Reflexszerű ágensek Környezet Érzékelők Hogy néz ki most a világ? Szabályok Milyen cselekvéseket kell most végrehajtani? Beavatkozók
Belső állapottal rendelkező ágensek egyetlen észlelésből nem lehet mindig dönteni a környezet nyilvántartása az ágensen belül összehasonlítási alap mi változott? reflexszerű ágens, amely eltárolt belső állapottal rendelkezik kétfajta tudás beépítése: hogyan változik a világ függetlenül az ágenstől (pl. előzést végrehajtó autó helyzetének változása hozzánk képest) az ágens cselekvései hogyan befolyásolják a világot (pl. sávváltás után üres hely marad a korábban használt sávban) Példa: Autóvezető ágens
Belső állapottal rendelkező ágensek Reflexszerű ágens + belső állapot Környezet Érzékelők Belső állapot Hogy néz ki most a világ? Szabályok Milyen cselekvéseket kell most végrehajtani? Beavatkozók
Célorientált ágensek a környezet állapotának ismerete nem mindig elegendő a cselekvés meghatározásához (pl. a taxi egy kereszteződésbe ér, merre haladjon tovább?) a cél alapján történő döntés magába foglalja a jövő figyelembe vételét sokkal rugalmasabb mint a reflexszerű ágens egyszerre több céllal is rendelkezhet a célja elérése érdekében tervet készít, mielőtt cselekedne Példa: autóvezetés úticéllal, sakkozó program, alkatrészfelszedő robot
Célorientált ágensek az ágens céljait elérő cselekvéssorozat: keresés tervkészítés új cél új viselkedés pl. cél: autónk ne koccanjon más autóval gondolatmenet: ha az előző autó féklámpái világítanak, akkor le fog lassulni a jövő figyelembe vétele
Célorientált ágensek Környezet Állapottal rendelkező, tervkészítő ágens Környezet Érzékelők Belső állapot Hogy néz ki most a világ? Hogyan fog kinézni a világ, ha „A” cselekvést hajtom végre? Lehetséges cselekmények következményei Célok Milyen cselekvéseket kell most végrahajtani? Beavatkozók
Hasznosságorientált ágensek Hasznossági függvény: Állapotot (vagy azok sorozatát) valós számmá képez le, így két állapot összehasonlíthatóvá válik Lehet választani a célok között Meghatározható, hogy egy adott céltól milyen „messze” van az ágens A hasznossági függvényt felhasználva hoz döntéseket, készít tervet Tipikusan akkor, ha több cél van, amik közül választani kell (a célokat hasznosság alapján kiértékeli) Példa: Olajfinomító-vezérlő rendszer, tőzsdei részvényvásárló ágens
Hasznosságorientált ágensek Célorientált ágens, hasznossági függvénnyel Érzékelők Környezet Belső állapot Hogy néz ki most a világ? Hogyan fog kinézni a világ, ha „A” cselekvést hajtom végre? Lehetséges cselekmények következményei Ez milyen hasznossággal jár számomra? Milyen cselekvéseket kell most végrahajtani? Célok Beavatkozók
Ágens kommunikáció Ágensek egymással való kapcsolatteremtésére FIPA-ACL (Foundation for Intelligent Physical Agents – Agent Communication Language) Ágens kommunikációs szabvány Üzenet részei: küldő, címzett(ek), kommunikációs szándék (KÉRÉS, LEKÉRDEZÉS, ), tartalom, válaszcím, nyelv, kapcsolat azonosító,...
Ágens kommunikáció (a JADE környezet alapján)
Ágens környezetek Hogyan illesszük az ágenst környezetéhez? a környezet észlelésekkel látja el az ágenst az ágens cselekvéseket hajt végre a környezetén Ágenstervezés környezet szempontból: a környezet tulajdonságai osztályozás Ágensek értékelése, összehasonlítása: tesztkörnyezet (program)
Ágens környezetek Hozzáférhető/nem hozzáférhető Meghatározottság Hozzáférhető: az ágens érzékelő berendezése hozzáférést nyújt környezete teljes állapotához (kényelmes – nem kell nyilvántartson semmit a környezet változásának nyomon követéséhez) Meghatározottság Determinisztikus a környezetet előző állapota és az ágens cselekvései egyértelműen meghatározzák ha a környezet hozzáférhető és determinisztikus, akkor az ágens nem kell bizonytalanságot kezeljen Nemdeterminisztikus a cselekvések és az előző állapot mellett van(nak) más faktorok is amik meghatározzák a környezetet.
Ágens környezetek Epizódszerű/nem epizódszerű Statikus/dinamikus epizód: észlelések és cselekvések egy jól elkülöníthető sorozata, az egyes epizódok cselekedetei nem függnek közvetlenül az előző epizódok cselekedeteitől epizódszerű: az ágens tapasztalata epizódokra bontható, és a cselekvések minősége kizárólag az adott epizódtól függ (pl. a sakkversenyben minden játék egy epizód) Statikus/dinamikus Statikus: ha a környezet állandó, miközben az ágens gondolkozik a következő cselekvésén Dinamikus: ha a környezet folyamatosan változhat
Ágens környezetek Diszkrét/folytonos környezet Diszkrét vagy folytonos állapotokból, elemekből épül fel a környezet. (táblajáték, autóvezetés) diszkrét – létezik az észlelések és cselekvések elkülönülő világosan definiált halmaza pl. sakkjátszma: véges számú lehetséges lépés folytonos pl. autóvezetés: sebesség, az autó helye, a többi jármű helye
Ágens környezetek eltérő környezetek különböző ágensprogramokat igényelnek a legnehezebb a nem hozzáférhető, nem epizódszerű, dinamikus és folytonos eset az osztályba sorolás a környezet és az ágens fogalmának meghatározásától is függ pl.: a póker determinisztikus, ha az ágens nyomon követheti a pakliban levő kártyák sorrendjét pl.: a sakk játszma szinten nem epizódszerű, de verseny szinten minden játszma egy epizód, a sakk epizódszerűvé válik
JADE ágens fejlesztői környezet Tulajdonságai Szabad felhasználású Java-alapú Ágensek felhasználó/fejlesztő által készített Java objektumok, amiket a JADE-be lehet illeszteni http://jade.tilab.com/
JADE ágens fejlesztői környezet Ágens rendszerek: ágens platformok központi szolgáltatásokkal platformok: kapcsolatban lévő ágenseket tartalmaznak fő platform: mindig aktív, beépített ágensekkel (pl.kommunikációra, felhasználói felület kiszolgálására) standard kommunikáció: ACL üzenetekkel
JADE ágens fejlesztői környezet
JADE ágens fejlesztői környezet Minden ágens egy Java objektum import jade.core.Agent; public class HelloWorldAgent extends Agent { protected void setup() { System.out.println(“Hello World! my name is “+getAID().getName()); }
JADE ágens fejlesztői környezet Ágensek viselkedése „One Shot”, „Cyclic”, „Complex”,... Ágensek kommunikációja Szabványos ACL üzenetek segítségével, a JADE támogatásával
JADE ágens fejlesztői környezet
JADE ágens fejlesztői környezet Standard ágensek, alapvető feladatok ellátására AMS (Agent Management System) Ágensek futtatása és felügyelete RMA (Remote Monitoring Agent) Ágensek távfelügyelete DF (Directory Facilitator) Ágensek szolgáltatásainak kezelése
REPAST (REcursive Porous Agent Simulation Toolkit) Főbb tulajdonságai Java alapú Ágensek itt is Java objektumok Eclipse-be integrálható http://repast.sourceforge.net Ágensek típusai, viselkedés megegyezik a JADE-el Kommunikáció nem támogatott, de kifejleszthető
REPAST (REcursive Porous Agent Simulation Toolkit)
Közlekedési szimuláció ágensekkel Cél: közlekedési helyzetek szimulációja Csomópontok jobb tervezése Valójában egy számítógépes program Ágensek = járművek Környezet = közlekedési utak, csomópontok, autópálya
Közlekedési szimuláció ágensekkel Megvalósítás Java alapú rendszer Ágensek külön objektumok, amiket a program „futtat”, valamint Információkkal szolgál nekik a környezet állapotáról A döntéseik alapján mozgatja őket a környezetükben
Közlekedési szimuláció ágensekkel
Közlekedési szimuláció ágensekkel
Közlekedési szimuláció ágensekkel
Közlekedési szimuláció ágensekkel