Intelligens robotok Előadás vázlat 1 előadás Felhasznált Irodalom: Összeállította: Harmati István Ph.D., egyetemi adjunktus J. R. Kok, M. T. J. Spaan, N. Vlassis: Non-commutative multi-robot cooperation in dynamic environments, Elsevier Science, 005
Multiágens rendszerek kooperációja Cél: Több robot mozgásának hatékony összehangolása egy közös cél érdekében Kooperáció lehet: Centralizált Egy központi egység ( főnök ) mondja meg az ágenseknek, hogy hova mozogjanak. Elosztott. Minden ágens önmaga dönt, de figyelembe veszi valamilyen mértékben a többi robot helyzetét is. Sokszor csak attól függ, hogy az algoritmust hol implementáljuk. Az előadás anyaga: 1. Multiágens rendszerek kooperációja statikus célpont bekerítésére. Multiágens rendszerek kooperációja dinamikus célpont követésére 3. Robotfoci stratégiák
[RS-UvA]. Robotfoci stratégiák UvA Trilearn Minden évben rendeznek bajnokságot (RoboCup) Sok lehetséges megoldás.(uva Trilearn, TsinghuAeolus, Yarra, Bold Hearts, MAPS, stb.) Sok esetben három szint különíthető el: 1. Stratégia (magas) szint: Megmondja, hogy egyes csapattagoknak hova kell menni. Taktikai (közép) szint: Megmondja, hogy a stratégiai célt milyen pontok mentén érdemes elérni. 3. Mozgástervezési (alacsony) szint: Hogyan kell a robotot mozgatni, hogy a taktikai pontokat optimálisan érjük el (optimális irányítás) Az előadás keretében: UvA Trilearn csapat stratégiai szintje kerül bemutatásra. UvA Trilearn: Fejlesztési helye: University of Amsterdam A 003-as bajnokság nyertese
Jellemzők: Az ágensek célja közös A kooperáció kulcsa: Koordináció Koordinációs probléma megoldásának elvi eszköze: Játékelmélet o A tiszta játékelméleti megközelítés módja: Következtetés az ágensek teljes keresési tere felett o Játékelméleti megközelítés hátránya: A keresési tér dimenziója exponenciálisan nő az ágensek számával Sok ágens esetén önmagában nem praktikus o A probléma struktúrája sok esetben lehetővé teszi a komplexitás csökkentését A közös döntéstér (más szóval akciótér) méretének csökkentése: Koordinációs Gráf (KG) o Koordinácós gráf: Csomópontok: ágensek Élek: A két csomópontot összekötő él kifejezi, hogy a két ágensnek koordinálnia kell a döntéseit. Koncepció a közös optimális döntés eléréséhez: I. A kontextus-specifikus KG frissitése dinamikusan az aktuális állapot alapján II. Változó elimináció Változó elimináció lépései: 1. Iteratívan megoldani a lokális koordinációs problémát. Az eredményt átadni a gráf más részeinek Feltevések: Egy ágens képes a környezetében lévő másik ágens optimális döntését is számolni (nem kell kommunikáció) Környezet: Folytonos, dinamikus, érzékelhető Folytonos állapottér KG direkt használata nehézkes Folytonos állapotok diszkretizálása: Ágensek helyett szerepek bevezetése Feladat: Ágensek koordinálása helyett szerepek koordinálása Előny: A koordinációs szabályokban a priori információ felhasználása Leszűkíti a potenciális döntések halmazát
[RS-UvA].1. A koordinációs probléma [Definíció] Stratégiai játék: Egy halmazcsoport hn, A 1,...,A n,r 1,...,R n i Ahol n A i Az ágensek száma Az i. ágens döntéseinek (akcióinak) halmaza R i Az i. ágens jósági függvénye (payoff), formálisan: R i (A) R ahol A = A 1,..., A A n az együttes akciók halmaza A játék menete: Az ágensek egymástól függetlenül választanak egy akciót a döntési terükből, majd minden ágens az együttes akciók függvényében a jósági függvényének megfelelően jutalmat kap. Az ágensek célja: Olyan egyéni döntéseket hozni, hogy a legjobban profitáló együttes akciót valósítsák meg. A továbbiakban teljesen kooperatív stratégiai játékokat tekintünk.
[Definíció] Teljesen kooperatív stratégiai játék: Olyan stratégiai játék, ahol minden ágensnek ugyanaz a jósági függvénye, azaz R 1 = R = = R n = R Példa: Mozinézés, mint teljesen kooperatív játék 1. ágens. ágens thriller vígjáték thriller (1,1) (0,0) vígjáték (0,0) (1,1) A maximális payoff érdekében a két ágensnek egyformát kell választani, ehhez viszont koordinálni kell a döntéseiket. A stratégiai játékok egy megoldási koncepciója: A Nash egyensúly megtalálása Emlékeztetőül a Nash egyensúly teljesíti, hogy R i i(a i,a i ) R i(a i,a i ) Ahol a A a Nash egyensúlyhoz tartozó optimális együttes döntés: a i A i Az i. ágens döntése : a i Az ágensek együttes döntése az i. ágens kivételével A példában két Nash egyensúly van: amikor a két ágens ugyanazt a döntést választja
A stratégiai játékok egy másik megoldási koncepciója: A Pareto optimális megoldás megtalálása. a A a A A megoldás Pareto optimális, ha nincs olyan együttes döntés, amely R i R (a) R (a ) i R j (a) >R j (a ) minden ágensre, és létezik legalább egy olyan j ágens amelyre Koordinált játékokban a Nash egyensúly és a Pareto optimum megegyezik. Probléma: Több Nash egyensúly egységesen kell kiválasztani egyet a koordináció érdekében. Megoldás: Lehetséges módszerek: Kommunikáció használata Az ágens tájékoztatja a másikat a döntéséről, ő így az ennek megfelelő Nash egyensúlyt választja Tanulás Akkor használható, ha a játék ismétlődik. Minden ágens megtanulja, hogy a másik az adott szituációban hogy szokott dönteni és ő ennek megvelelően választja ki a döntését Szociális megegyezés Egy felálított szabály szerint választanak az ágensek az egyensúlyok közül. (Pl. lexikografikus rendezés)
[RS-UvA].. Koordinációs gráfok Probléma: Multiágens rendszerek koordinálásának számítási ideje az együttes döntések terén az ágensek számával exponenciálisan nő. Megoldási javaslat: Csak azokat az ágenseket koordináljuk, amelyek döntéseikkel egymásra hatással vannak Koordinációs gráf Feltételezés: A globális payoff (jósági) függvény a lokális jósági függvények lineáris kombinációja. Illusztráció [45-R1]: Legyen a koordinációs gráf A f 1 A 1 A 4 f A 3 f 3 A globális payoff függvény dekompozíciója: R(a) =f 1 (a 1,a )+f (a 1,a 3 )+f 3 (a 3,a 4 ) Az A i csompópont: ágens A gráf éle: Az él két végpontjának megfelelő ágens döntése befolyásol(hat)ja egymást. Irányított élnél a szülő döntése befolyásolja a gyerek jósági függvényét. A globális koordinációs feladat = Több lokális koordinációs feladat együttese Az optimális együttes döntés meghatározási módja: a Változó eliminálási algoritmus (Variable Elimination Algorithm - VEA)
[RS-UvA]..1.Változó eliminálási algoritmus (Variable Elimination Algorithm - VEA) Megjegyzés: Az algoritmus hasonló a Bayes hálozatokban használatos VEA-hoz. Koncepció: Az ágenseket egyesével elimináljuk, miközben végrehajtunk lokális maximalizációt. Algoritmus: 1. Egy ágens szelektálása eliminációhoz. A szelektált ágens begyűjti a szomszédoktól azok payoff függvényeit 3. A szelektált ágens a szomszédok lehetséges döntéseit figyelembe véve feltételesen optimalizálja a döntését. 4. A szelektált ágens a feltételes payoff függvényét tudatja a szomszédaival. 5. A lépések ismételt végrehajtása egy következő ágens szelektálásával mindaddig, amíg az utolsó ágenst is elimináljuk. 6. Az utolsó ágens maximalizálja a döntésével a végső feltételes stratégiát 7. Az elimináció inverz sorrendjében az ágensek megtudják a később eliminált ágensek stratégiáit és kialakítják a saját optimális döntésüket a saját feltételes stratégiájuknak megfelelően. Megjegyzés: Az eliminálás sorrendjétől az eredmény nem függ, de a számítási idő igen. Egy jó heurisztika, hogy azt az ágenst szelektáljuk ki eliminálásra, amelynél a legkisebb a különbség a bejövő és kimenő élek számában a koordinációs gráfban.
Illusztráció [47-R]: A [45-R1] illusztrációt tekintjük A f 1 A 1 f A 3 A globális payoff függvény dekompozíciója: R(a) =f 1 (a 1,a )+f (a 1,a 3 )+f 3 (a 3,a 4 ) A 4 f 3 Az 1 ágens eliminálása ( és f a szomszédok payoff függvényei, amelyet az első ágens maximalizál): A f1 max R(a) = a max a 1,a,a 3 ½ ¾ f 3 (a 3,a 4 )+max [f 1 (a 1,a )+f (a 1,a 3 )] a 1 Az A 1 ágens megalkot egy új payoff függvényt, ami az ő legjobb döntésének megfelelő payoff értéket adja meg: f 4 (a,a 3 )=max [f 1 (a 1,a )+f (a 1,a 3 )] a 1 Ez az f 4 payoff fv független az A1 ágenstől, tehát A1 eliminálható a gráfból és a feladat új optimalizálási problémára egyszerűsödött: max R(a) = max [f 3 (a 3,a 4 )+f 4 (a,a 3 )] a a 1,a,a 3
max R(a) = a max [f 3 (a 3,a 4 )+f 4 (a,a 3 )] a 1,a,a 3 A ágens eliminálása ( függ ágens döntésétől, ezért ezt a függvényt maximalizáljuk a szerint): A 3 ágens eliminálása: f 4 A a f 5 (a 3 )=max f 4 (a,a 3 ) a Majd az egyszerűsített payoff max R(a) =max [f 3 (a 3,a 4 )+f 5 (a 3 )] a a 3,a 4 f 6 (a 4 )=max [f 3 (a 3,a 4 )+f 5 (a 3 )] a 3,a 4 max R(a) =max f 6 (a 4 ) a a 4 A 4 ágens most utolsóként meghatározza az optimális döntését, ezt minden ágenssel tudatja. A 3 ágens ez alapján meghatározza a saját optimális döntését, tudatja mindenkivel. A ágens is meghozza optimális döntését A4 ágens és A3 ágens optimális döntése alapján A ágens utolsóként meghozza optimális döntését a többi ágens döntése alapján. 1
[RS-UvA]...A payoff értékek meghatározása értékszabályok (value rule) alkalmazásával A payoff függvény lehet Mátrix alakú Értékszabály: (Kisebb számítási költség) Döntéstér (korábbiaknak megfelelően) : A = A 1,..., A n Az i. ágens döntése : Együttes döntés: a i A i a A A diszkrét állapotok halmaza: X Ebből egy állapot: x X A c kontextus: Az állapotok és döntések összes kombiációjának halmaza: c C X A Az értékszabály: hp; c : vi Ez egy függvény : p : C R c =(x, a) p(x, a) =v Csak azok az értékszabályok befolyásolják a globális payoff függvényt, amelyek konzisztensek az aktuális kontextussal: R(a) = mx p (x, a) i=1 i Ahol m az értékszabályok száma
Példa értékszabályra: <p 1 ; in-front-of-same-door(1,) a 1 = PassThroughDoor a = PassThroughDoor : 50 > Következmények: Ez az értékszabály azt eredményezi, hogy ha két ágens ugyanazon ajtó elött áll, és mindkettő be akar menni az ajtón, akkor a globális payoff 50-el csökken. (Az ütközést, torlódást bünteti) Ha valamelyik ágens nem áll az ajtó elött, akkor az értékszabálynak nincs ráhatása a globális payoff-ra Ha az állapot nem konzisztens az értékszabállyal, akkor az értékszabályban szereplő ágenseknek nem kell koordinálniuk egymás döntéseit Az aktuális állapoton végzett kondicionálásákor az ágensek figyelmen kívül hagyhatják az összes ireleváns értékszabályt Az ágenseknek elég azt az állapotot megfigyelniük, amely a saját értékszabályaikban szerepel A fentiek alapján a koordinációs gráf (KG) dinamikusan frissíthető és egyszerűsíthető
Példa [51-R4] döntések és Payoff függvények meghatározására Legyen adott a multiágens rendszerre felírt értékszabályok és a koordinációs gráf: A A 1 A 3 A 1 : ha 1 ā 3 x :4i : ha 1 ā x :5i A : hā x :i A 4 A 3 : ha 3 a x :5i A 4 : ha 3 a 4 x :10i Az értékszabályok bináris döntéseken vannak értelmezve. Az állapot bináris 1. Állapot kondicionálás. Az aktuális állapot x = true. Ehhez kondicionáljuk az értékszabályokat A 4 ágens értékszabályával nem kell törödni, mivel nem konzisztens az aktuális állapottal. Így az A 4 ágens és értékszabálya törölhető a koordinációs gráfból: A A 1 A 3 A 1 : ha 1 ā 3 :4i : ha 1 ā :5i A : hā :i A 3 : ha 3 a :5i A 4
. Az A 3 ágens eliminálása. Megnézzük azokat az értékszabályokat, amelyekben szerepel A 3 döntése f 1 3 : ha 1 ā 3 :4i f 3 : ha 3 a :5i Az adott döntésekhez tartozó payoff értékek: a 1 a a 3 3 3 f 1 f f 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 5 5 1 0 0 4 0 4 1 0 1 0 0 0 1 1 0 4 0 4 1 1 1 0 5 5 Az A3 optimális döntése az A1 és A döntésének függvényében (a két azonos a1, a döntéshez a fenti táblázatban azt az döntést rendeljük, amelyik nagyobb payoff függvényt ad) a 3 a1 a a3 0 0 1 1 0 x 1 1 0 0 1 1 Az A3 optimális döntése: a 3 = a, ezt az f 1, szabályokba visszahelyettesítve: f 1 3 : ha 1 ā :4i f 3 : ha :5i 3 3 f
3. Az ágens eliminálása, A ágens optimális döntése. A 1 Megnézzük azokat az értékszabályokat, amelyekben szerepel A 3 döntése f 1 f 1 3 : ha 1 ā :4i f 3 : hā :i f : ha 1 ā :5i f 4 f 3 : ha :5i Az adott döntésekhez tartozó payoff értékek: a 1 a f 1 f f 3 f 4 f 0 0 0 0 0 0 1 0 0 5 0 5 1 0 4 5 0 11 1 1 0 0 5 0 5 A A1 a1 a Az optimális döntése az döntésének függvényében (az döntéshez a fenti táblázatban azt az döntést rendeljük, amelyik nagyobb payoff függvényt ad) a1 a 0 1 1 0 A a1 Az optimális döntése: visszahelyettesítve: a a 1 1 = 1 = 0 f f = 11 = 5 f 1 f 3 a =, ezt a, f,, f szabályokba 4 Amiből A1 optimális döntése: a = 1 true 4. Az optimális döntések visszagörgetése: a 1 a = a a = a 1 3 = true a = false a = false ( döntése közömbös) 3 A 4
[RS-UvA].3. Alkalmazhatósági kérdések Probléma: A környezet (állapottér) folytonos A kontextus kondicionálása nehéz Diszkretizálás Követelmények (diszkretizálásra): 1. Az aktuális (folytonos) állapotnak megfelelően a koordinációs gráfot dinamikusan frissíteni kell.. A függőségek és a lokális koordinációk legyenek minél egyszerűbben 3. Alkalmazható legyen akkor is, ha az ágensek között nincs megfelelő kommunikációs kapcsolat. A javasolt koncepció alappillérei: 1. Szereposztás megvalósítása (1. és. követelményhez). Egy ágens megjósolja a többi ágens cselekedeteit is (3. követelményhez)
[RS-UvA].4. Diszkretizálás- Szereposztás [Def] Szerep: Cselekvések (activities) halmazának absztrakt specifikációja amelyet egy csapattag, vagy csapattagok elvállalnak annak érdekében, hogy a csapat egy egységes cselekvést valósítson meg. Cselekvések halmaza: M Egy szerep: m M Szerep megadása: értékszabályok P m halmazával. Szerep szerepe : Az eredeti KG megközelítésnél minden ágenshez az értékszabályoknak egy halmaza van rendelve, amely minden szerep minden értékszabályát tartalmazza A szereposztásnál minden szerepre az értékszabályoknak csak egy halmaza jut KG egyszerűsödik A P m értékszabályai extra kényszereket fejeznek ki az értékszabályban szereplő más ágensek szerepeire A KG éleinek száma tovább csökken Ágensek helyett szerepeket koordinálunk koordinációs gráffal. (A korábbiakban bemutatott változóeliminálási algoritmussal) Példa: A labdát birtokló Kapus egy lehetséges értékszabálya, amivel egy védőnek akarja passzolni a labdát: D E 1 : has role defender(j) a i = PassTo(j) : 10 p goalkeeper Kérdés: Hogy osszuk ki a szerepeket az ágensek között? j 6=i
[RS-UvA].4.1. Szerepkiosztás szabad kommunikáció esetén Feltételezés: A szerepkiosztási algoritmus ismert minden ágens számára Algoritmus: 1. A szerepek M ' sorozatának definiálása fontossági sorrendben. M ' n ahol n az ágensek száma.. Minden Ai ágens kiszámítja az rim potenciált. Az rim potenciál megmondja, hogy Az Ai ágens mennyire alkalmas az m M' szerep betöltésére, ahol m az M ' sorozat egy eleme. (Részletek később). Ez O ( M n) számítás. 3. Minden ágens elküldi minden ágensnek a szerepekhez számított saját potenciáljait. Ez O ( M n) üzenet küldését jelenti. 4. A sorozat első m M' szerepét ahhoz az Ai ágenshez rendeljük, amelyiknek legnagyobb az rim, i = 1, K, n potenciálja. Ezt az ágenst a továbbiakban nem vesszük figyelembe. 5. A kiválasztást megismételjük az M ' sorozat következő szerepére, amíg minden ágensre nem jut egy szerep. (általában az ágensek számánál kevesebb aktív szerep van, így a legutoljára szerepet kapó ágensek többnyire passive szereppel passzívak lesznek, ők csak a stratégiai célpontjuk felé mozognak) Megjegyzés: Minden ágensnek csak egy szerep jut, de egy szerep akár több ágensre is juthat. (Az azonos szerepet is tartalmazhat) M ' sorozat több Számítási igény redukáldik, mert: A szerepek a folytonos állapot absztrakciójának egy diszkrét kontextusát valósítják meg. A szerepek redukálják a döntéstér méretét. (Egy kapusnak nem lesz pl. kapuralövési döntése) A lokális koordinációs gráfok csökkentik a tekintetbe vehető Nash egyensúlyok számát (ez jó).
[RS-UvA].4.. Szerepkiosztás kommunikáció hiánya esetén Fontos: A változó eliminálási algoritmus itt is számítható Különbségek a kommunikációs esethez képest: Minden ágens minden ágens r im potenciálját számítja. O ( M n) számítás A kommunikációs esetben minden ágens csak a saját állapotait mérte, a kommunikáció nélküli esetben az összes többi ágensét is kell. A számítási költség az egyes ágenseknél megnő. Javítható az algoritmus futásának párhuzamosításával. Feltételezések a jó mükődéshez: Az Ai ágens payoff értékét minden Ai ágensel kapcsolatban lévő ágens ismeri. (Ez erős feltétel. Sok esetben még a kommunikációs esetben sem lehet teljesíteni ) Minden ágens ki tudja számolni minden ágens r im potenciálját A döntési sorrend ismeretes minden ágens számára (Ha több egyenértékű döntés, egyensúly van) Az ágens minden, vele kapcsolatban lévő ágens állapotához hozzáfér (meg tudja figyelni). A i (Gyakran nem teljesül, mivel egy ágens csak egy szűk területet érzékel a világból)
[RS-UvA].5. Teljesen megfigyelhető, nem kommunikáló UvA Trilearn csapat Ágensek száma (egy csapaton belül): 10+1 A kapus szerepe fix, szerepkiosztásnál nem foglalkozunk vele Szerepek: Aktív. Ezen belül: o Letámadó (a labda rúgása nem valószínű, mert az ellenfél jobb helyzetben van) o Passzoló (a labdát birtokoljuk, meg tudjuk rúgni egy ilyen szerepet játszó ágenssel) Fogadó Passzív Lehet még definiálni a kapust Szerepek sorozata: M = {aktív, fogadó, fogadó, passzív, passzív, passzív, passzív, passzív, passzív, passzív}
A szerepek potenciálfüggvényei (Számításuk: Főleg taktikai szinten) Az aktív játékos potenciálja: r i,active = 1 t i Ahol t az a becsült idő, ami alatt az A ágens eléri a labdát i i Ha t i idő alatt az ágens bele is tud rúgni a labdába (előbb, mint az ellenfél), akkor az ágens passzoló szerepben játszik, ha nem tudja elérni, akkor letámadó szerepben. A fogadó játékos potenciálja: r i,receiver = ½ 1/ max(1,di,g )+1 ifd i,b <k 1/ max(1,d i,g ) otherwise Ahol az A ágens és a labda közötti távolság d i, b d i, g i az A ágens és az ellenfél kapuja közötti távolság i Azaz inkább annak a játékosnak passzolunk, aki közelebb van a kapuhoz. Külön jutalmazzuk, ha a labdahoz egy k távolságnál közelebb van az ágens. A passzív játékos potenciálja konstans: r i,passive = constans
Döntések (akciók). (Megvalósításuk taktikai szinten) Intercept A labda elfogása PassTo(i,dir): A dir D = { center, n, nw, w, sw, s, se, e, ne} A labda passzolása az i ágenstől, dir irányba fix távolságra. A dir irányt a receiverhez képest kell értelmezni MoveTo(dir): Mozgás dir irányba Dribble(dir): A labda mozgatása dir irányba. Cselezés Score: Kapuralövés az ellenfél kapujának számunkra legkedvezőbb pontjába. ClearBall: Felszabadítórúgás az ellenfél játékosai (védői) között az ellenfél térfelére MoveToStratPos: Mozgás stratégiai pozícióba. Ez a játékosok és a labda diszlokációjától függ..
Felhasznált magas szintű (boolean) változók is-pass-blocked(i,j,dir) Megmondja, hogy egy pass az A ágens felől az A ágenstől dir irányú kis távolságra eső pontjába i lehetséges-e, azaz nincs-e blokkolva más (ellenfél) játékosa által. (Kúppal definiálva) is-empty-space(i,dir) Megmondja, hogy van-e ellenféltől mentes kissugarú szabad körterület az A i ágenstől dir irányba. is-in-front-of-goal(i) Megmondja, hogy az A i ágens az ellenfél kapuja előtt van-e j
Stratégia (értékszabályokkal) p interc. 1 ; intercept : 10 hp passer ; has-role-reciever(j) is-pass-blocked(i, j, dir) a i =PassTo(j, dir) a j =MoveTo(dir) :u(j, dir) [5, 7]i j 6= i (A labda elfogása) (aktív passz, u ( j, dir) attól függ, hogy a kapuhoz milyen közel kapja el a labdát a receiver) hp passer 3 ; is-empty-space(i, n) a i = Dribble(n) :i hp passer 4 ; a i = ClearBall(n) :i (labdavezetés) hp passer 5 ; is-in-front-of-goal(i) is-ball-kickable(i) a i =Score:10i (felszabadítás) (kapuralövés)
hp receiver 6 ; has-role-interceptor(j) is-pass-blocked(j, i, dir) a j = Intercept a i =MoveTo(dir) :u(i, dir) [5, 7]i j 6= i ( Előzetes Passz :) (A potenciális fogadó már a potenciális passz irányba megy, amikor a letámadás még folyamatban van egy másik ágens által, de még nincs meg a labda) h p receiver 7 ; has-role-receiver(k) is-pass-blocked(k, i, dir) a j =PassTo(k, dir) a k =MoveTo(dir) a i =MoveTo(dir) :u(i, dir) [5, 7]i (Az A j passzol A k ágensnek ( k i neki tudja passzolni a labdát (mert nincs blokkolva a labda útja)) j, k 6= i (Tartalék labdára mozdulás) A ágenstől dir irányba) és A dir irányba mozdul, ha a majd labdát szerző A k h p receiver 8 ; MoveStratPos : 1i h p passive 9 ; MoveStratPos : 1i