Dunaújvárosi Főiskola Informatikai Intézet Intelligens ágensek Dr. Seebauer Márta főiskolai tanár seebauer.marta@szgti.bmf.hu
Ágens Ágens (agent) bármi lehet, amit úgy tekinthetünk, hogy érzékelők (sensors) segítségével érzékeli a környezetét és beavatkozó szervei (effectors) segítségével megváltoztatja azt. Környezet Érzékel Beavatkozik Érzékelők Ágens Beavatkozók
Ágensnek tekinthető-e egy óra? Időzóna érzékelése Aktuális idő kijelzése Ágens Környezet
A racionális ágens A racionális ágens helyesen cselekszik. Az racionális ágens jellemzői beépített tudás a környezetről a cselekvések, amelyeket az ágens képes végrehajtani sikeresség fokát mérő a teljesítménymérték (perfomance measure) teljes észlelési történet (percept sequence), minden, amit az ágens eddig megfigyelt. Az ideális racionális ágens minden egyes észlelési sorozathoz a benne található tények és a beépített tudás alapján minden elvárt dolgot megtesz a teljesítményérték maximumon tartásáért. Tervezési módszer - annak meghatározása, hogy egy adott észlelési sorozathoz az ágens mely cselekvés sorozatot rendelje hozzá. Ha az ágens cselekedetei csak a beépített tudáson alapulnak, akkor az ágens nem autonóm. Egy rendszer olyan mértékig autonóm, amennyire a viselkedését saját tapasztalatai határozzák meg.
Intelligens ágensek jellemzői Autonóm Hatékony Célorientált Folyamatos működésű Kommunikatív Öntanuló Mobil Személyiség
Az intelligens ágensek struktúrája Ágens = Architektúra + Program Ágens program függvény, amely megvalósítja az észlelések és a cselekvések közötti leképezést. Architektúra - bármely számító eszköz, amelyen az adott ágens program fut: univerzális számítógép, speciális célhardverrel kiegészítve, tartalmazhat egyéb szoftvereket is.
Szoftver ágensek Microsoft Office-Assistent
Hardver ágensek RoboCup 2002 Fukuoka/Busan 2002. Június 19-25. Honda ASIMO Robotok
Legáltalánosabb ágens program function AGENS(eszleles) returns cselekves static: memoria /*az ágens ismerete a világról*/ memoria MEMORIA_FRISSITES (memoria, eszleles) cselekves LEGJOBB_CSELEKVES_KIVALASZTAS (memoria) memoria MEMORIA_FRISSITES (memoria, cselekves) return cselekves A cél, a környezet és a teljesítményértékelés nem része a programnak, azokat kívülről alkalmazzuk.
Tábla vezérlésű ágens program function TABLA_VEZERLESU_AGENS(eszleles) returns cselekves static: eszlelesek /*kezdetben üres*/ tabla /*az észlelések, indexelik, kezdetben teljesen feltöltött*/ csatold az eszleles-t az eszlelesek vegere cselekves KIKERESES (eszlelesek, tabla) return cselekves Hátrányok: 1. Kombinatorikus robbanás 2. Hosszú fejlesztési folyamat a tábla összeállítása. 3. Az ágens nem autonóm 4. Bizonyos tanulási funkció esetén hosszú újraindexelési folyamat
Ágenstípus Taxisofőr Észlelések kép (kamerák) hang (mikrofon) sebesség (sebességmérő) pozíció (GPS) távolság (radar) Cselekvések irányváltoztatás (kormány) gyorsítás (gázpedál) fékezés (fékpedál) közlések (hangszóró) Célok biztonságos, gyors, szabályos kényelmes közlekedés maximális haszon Környezet utak forgalom gyalogosok utasok Példa: Taxi ágens
Ágens típusok Egyszerű reflexszerű ágens A világot nyomon követő ágensek Célorientált ágensek Hasznosságorientált ágensek
Reflexszerű ágens Cselekvés Beavatkozók Milyen cselekvéseket kell most végrehajtanom? Feltétel-cselekvés szabályok Környezet Érzékelés Érzékelők Hogyan néz ki most a világ?
Reflexszerű ágens programja function REFLEXSZERU_AGENS(eszleles) returns cselekves static: szabalyok /*feltétel-cselekvés szabályok halmaza*/ allapot BEMENET_FELDOLGOZAS (eszleles) szabaly SZABALY_ILLESZTES (allapot, szabalyok) cselekves SZABALY_CSELEKVES (szabaly) return cselekves Hátrány Csak akkor működik, ha a helyes döntés meghozható az észlelés alapján. Nem tartja nyilván a világ változásait és a saját hatását a környezetére.
A világot nyomon követő ágens Cselekvés Beavatkozók Milyen cselekvéseket kell most végrehajtanom? Feltétel-cselekvés szabályok Környezet Mit okoznak a cselekvéseim? Érzékelés Érzékelők Hogyan néz ki most a világ? Hogyan változik a világ? Állapot
A világot nyomon követő ágens programja function REFLEXSZERU_AGENS_BELSO_ALLAPOTTAL(eszleles) returns cselekves static: allapot /* a környezet jelenlegi állapota*/ szabalyok /*feltétel-cselekvés szabályok halmaza*/ allapot ALLAPOT_FRISSITES (allapot, eszleles) szabaly SZABALY_ILLESZTES (allapot, szabalyok) cselekves SZABALY_CSELEKVES (szabaly) allapot ALLAPOT_FRISSITES (allapot, cselekves) return cselekves Hátrány A pillanatnyilag jónak tűnő lépés nem mindig visz közelebb a célhoz
Célorientált ágens Cselekvés Beavatkozók Milyen cselekvéseket kell most végrehajtanom? Célok Környezet Érzékelés Érzékelők Hogyan fog kinézni a világ, ha A cselekvést végrehajtom? Hogyan néz ki most a világ? Mit okoznak a cselekvéseim? Hogyan változik a világ? Állapot
Hasznosságorientált ágens Cselekvés Beavatkozók Milyen cselekvéseket kell most végrehajtanom? Hasznosság Környezet Milyen boldog leszek egy ilyen állapotban? Érzékelés Érzékelők Hogyan fog kinézni a világ, ha A cselekvést végrehajtom? Hogyan néz ki most a világ? Mit okoznak a cselekvéseim? Hogyan változik a világ? Állapot
Környezetek Hozzáférhető Nem hozzáférhető Hozzáférhető, ha az ágens érzékelő berendezései hozzáférnek a környezet teljes állapotához Determinisztikus Nem determinisztikus Determinisztikus, ha a környezet következő állapotát a jelenlegi állapota és az ágens által választott cselekvések egyértelműen meghatározzák. Epizódszerű Nem epizódszerű Epizódszerű, ha az ágens tapasztalatai epizódokra bonthatók, amelyekben az ágens viselkedése nem függ az előző epizódokban elkövetett cselekvésektől. Statikus Dinamikus A környezet dinamikus, ha az megváltozhat, amíg az ágens gondolkodik. Ha a környezet nem változik az idő előre haladtával, de az ágens teljesítménye igen, akkor a környezet szemi-dinamikus. Diszkrét Folytonos A környezet diszkrét, ha létezik az észlelések és a cselekvések világosan definiált véges halmaza.
A környezet programja procedure KORNYEZET_FUTTATAS (allapot, FRISSITO_FV, agensek, befejezes) inputs allapot /* a környezet kezdeti állapota*/ FRISSITO_FV /*a környezetet módosító függvény*/ agensek /*az ágensek egy halmaza*/ befejezes /*egy megadott végállapot ellenőrzése*/ repeat for each agens in agensek do ESZLELES(agens) ESZLELES_BEOLVASASA (agens, allapot) end for each agens in agensek do CSELEKVES(agens) PROGRAM (agens)(eszleles(agens) ) end allapot FRISSITO_FV (cselekvesek, agensek, allapot) until befejezes(allapot)
Környezet program az ágens teljesítményértékelésével procedure KORNYEZET_KIERTEKELES_FUTTATAS (allapot, FRISSITO_FV, agensek, befejezes, TELJESITMENY_FV) returns (pontszamok) local variables: pontszamok /* az agens méretével megegyező vektor*/ repeat for each agens in agensek do ESZLELES(agens) ESZLELES_BEOLVASASA (agens, allapot) end for each agens in agensek do CSELEKVES(agens) PROGRAM (agens)(eszleles(agens) ) end allapot FRISSITO_FV (cselekvesek, agensek, allapot) pontszamok TELJESITMENY_FV (pontszamok, agensek, allapot) until befejezes(allapot) return pontszamok
A következtető ágens általános felépítése Az következtető ágens egy olyan rendszer, amely más ágensek vagy a környezete által generált problémát képes önállóan felismerni és megoldani. Környezet Cselekvés Érzékelés I N T E R A K C I Ó Végrehajtás Ütemező Tervező Vezérlés Információfeldolgozás Tudásbázis Következtető gép Peremfeltételek, teljesítményértékelés, vágyak, célok, figyelmeztetések