Intelligens robotok Előadás vázlat 1 előadás Összeállította: Harmati István Ph.D., egyetemi adjunktus Felhasznált Irodalom:
J. R. Kok, M. T. J. Spaan, N. Vlassis: Non-commutative multi-robot cooperation in dynamic environments, Elsevier Science, 2005
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 2. 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 2. 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 2003-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 2. 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, A1 , . . . , An , R1 , . . . , Rn i
Ahol n
Az ágensek száma
Ai
Az i. ágens döntéseinek (akcióinak) halmaza
Ri
Az i. ágens jósági függvénye (payoff), formálisan:
Ri (A) → R
ahol
×,, . . . , × ×A A = A1 × An 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
R1 = R2 = · · · = R n = R Példa: Mozinézés, mint teljesen kooperatív játék 2. ágens 1. á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
Ri (a∗i , a∗−i ) ≥ Ri (ai , a∗−i ) Ahol
a∗ ∈ A
a i ∈ Ai a−i
a Nash egyensúlyhoz tartozó optimális együttes döntés: Az i. ágens döntése : 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
megoldás Pareto optimális, ha nincs olyan
Ri (a) ≥ Ri (a∗ )
a ∈ A együttes döntés, amely
minden ágensre, és létezik legalább egy olyan j ágens amelyre
Rj (a) > Rj (a∗ ) 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].2. 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
f1
A1
A2
f
2
A3 f3 A4
A globális payoff függvény dekompozíciója:
R(a) = f1 (a1 , a2 ) + f2 (a1 , a3 ) + f3 (a3 , a4 ) Az Ai 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 a ∗ együttes döntés meghatározási módja: Változó eliminálási algoritmus (Variable Elimination Algorithm - VEA)
[RS-UvA].2.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 2. 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-R2]: A [45-R1] illusztrációt tekintjük A1
f1 A2
f
A globális payoff függvény dekompozíciója:
2
R(a) = f1 (a1 , a2 ) + f2 (a1 , a3 ) + f3 (a3 , a4 )
A3 f3 A4
Az A1 ágens eliminálása ( f 1 és
max R(a) = max a
f 2 a szomszédok payoff függvényei, amelyet az első ágens maximalizál):
a1 ,a2 ,a3
½
f3 (a3 , a4 ) + max [f1 (a1 , a2 ) + f2 (a1 , a3 )] a1
¾
Az A1 ágens megalkot egy új payoff függvényt, ami az ő legjobb döntésének megfelelő payoff értéket adja meg:
f4 (a2 , a3 ) = max [f1 (a1 , a2 ) + f2 (a1 , a3 )] a1
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 [f3 (a3 , a4 ) + f4 (a2 , a3 )] a
a1 ,a2 ,a3
max R(a) = max [f3 (a3 , a4 ) + f4 (a2 , a3 )] a
a1 ,a2 ,a3
A2 ágens eliminálása ( f 4 függ A2 ágens a 2 döntésétől, ezért ezt a függvényt maximalizáljuk a 2 szerint):
f5 (a3 ) = max f4 (a2 , a3 ) a2
Majd az egyszerűsített payoff
max R(a) = max [f3 (a3 , a4 ) + f5 (a3 )] a
a3 ,a4
A3 ágens eliminálása:
f6 (a4 ) = max [f3 (a3 , a4 ) + f5 (a3 )] a3 ,a4
max R(a) = max f6 (a4 ) a
a4
A4 ágens most utolsóként meghatározza az optimális döntését, ezt minden ágenssel tudatja. A3 ágens ez alapján meghatározza a saját optimális döntését, tudatja mindenkivel. A2 ágens is meghozza optimális döntését A4 ágens és A3 ágens optimális döntése alapján A1 ágens utolsóként meghozza optimális döntését a többi ágens döntése alapján.
[RS-UvA].2.2.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) : Az i. ágens döntése :
a i ∈ Ai
Együttes döntés:
a∈A
A = A 1 ×, . . . , ×An
Ebből egy állapot: x ∈ X
A diszkrét állapotok halmaza: X
A c kontextus: Az állapotok és döntések összes kombiációjának halmaza: Az értékszabály:
c∈C ⊆X ∪A
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) =
m X i=1
pi (x, a)
Ahol m az értékszabályok száma
Példa értékszabályra:
< p1 a1 a2
; in-front-of-same-door(1,2) ∧ = PassThroughDoor ∧ = PassThroughDoor : −50 >
• 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 Következmények:
• 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:
A1
ha1 ∧ a ¯3 ∧ x
: 4i : 5i
A2
: : :
A3 A4
: :
ha3 ∧ a2 ∧ x ha3 ∧ a4 ∧ x ¯
: 5i : 10i
A1
A2
A3
A4
¯2 ∧ x ha1 ∧ a h¯ a2 ∧ x : 2i
• 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 → A4 ágens értékszabályával nem kell törödni, mivel nem konzisztens az aktuális állapottal. Így az A4 ágens és értékszabálya törölhető a koordinációs gráfból:
A2
A3
A4
ha1 ∧ a ¯3
: 4i : 5i
A2
: : :
A3
:
ha3 ∧ a2
: 5i
A1
A1
¯2 ha1 ∧ a h¯ a2 : 2i
2. Az A3 ágens eliminálása. Megnézzük azokat az értékszabályokat, amelyekben szerepel A3 döntése
f13 : f23 :
ha1 ∧ a ¯3
: 4i
ha3 ∧ a2
: 5i
Az adott döntésekhez tartozó payoff értékek: a1 a2 a3 f 13 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 4 1 0 1 0 1 1 0 4 1 1 1 0
∑f
f 23 0 0 0 5 0 0 0 5
0 0 0 5 4 0 4 5
Az A3 optimális döntése az A1 és A2 döntésének függvényében (a két azonos a1 , a 2 döntéshez a fenti táblázatban azt az a 3 döntést rendeljük, amelyik nagyobb payoff függvényt ad)
a1
a2
→ a3
0
0
x
0
1
1
1
0
0
f13 :
1
1
1
f23 :
Az A3 optimális döntése: a 3 = a 2 , ezt az szabályokba visszahelyettesítve:
ha1 ∧ a ¯2 ha2
: 5i
: 4i
f 13 ,
f 23
3. Az A2 ágens eliminálása, A1 ágens optimális döntése. Megnézzük azokat az értékszabályokat, amelyekben szerepel A3 döntése
f12 ≡ f13 : f22 :
ha1 ∧ a ¯2
: 4i
f32 :
ha1 ∧ a ¯2
: 5i
f42 ≡ f23 :
Az adott döntésekhez tartozó payoff értékek: a1 a2 f 12 0 0 0 0 1 0 1 0 4 1 1 0
f 22 0 0 5 0
h¯ a2
: 2i ha2
f 32 0 5 0 5
: 5i f 42 2 0 2 0
∑f 2 5 11 5
Az A2 optimális döntése az A1 döntésének függvényében (az a1 döntéshez a fenti táblázatban azt az a 2 döntést rendeljük, amelyik nagyobb payoff függvényt ad)
a1 0 1
→ a2 1 0
Az A2 optimális döntése: a 2 = a1 , ezt a f 12 , f 22 , f 32 , f 42 szabályokba visszahelyettesítve: a1 = 1 → f = 11 a1 = 0 → f = 5
Amiből A1 optimális döntése: a1 = true 4. Az optimális döntések visszagörgetése: a 2 = a1 a3 = a 2 a1 = true ⎯⎯ ⎯→ a 2 = false ⎯⎯ ⎯→ a 3 = false ( A4 döntése közömbös)
[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. 2. 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 2. követelményhez) 2. 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 Pm 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 Pm é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
pgoalkeeper 1
:
has − role − def ender(j) ∧ ai = P assT o(j)
Kérdés: Hogy osszuk ki a szerepeket az ágensek között?
E : 10
∀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. 2. 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 M ' sorozat több azonos szerepet is tartalmazhat) 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.2. 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 rim 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 rim 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 Ai ágens minden, vele kapcsolatban lévő ágens állapotához hozzáfér (meg tudja figyelni). (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ó o Passzoló • Fogadó • Passzív
(a labda rúgása nem valószínű, mert az ellenfél jobb helyzetben van) (a labdát birtokoljuk, meg tudjuk rúgni egy ilyen szerepet játszó ágenssel)
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:
ri,active =
1 ti
Ahol t i az a becsült idő, ami alatt az Ai ágens eléri a labdát
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:
ri,receiver =
Ahol
½
1/ max(1, di,g ) + 1 if di,b < k 1/ max(1, di,g ) otherwise
d i,b az Ai ágens és a labda közötti távolság d i , g az Ai ágens és az ellenfél kapuja közötti távolság
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:
ri,passive = constans
Döntések (akciók).
(Megvalósításuk taktikai szinten)
• Intercept A labda ‘elfogása’
• PassTo(i,dir): A labda passzolása az Ai ágenstől, dir irányba fix távolságra. dir ∈ D = {center, n, nw, w, sw, s, se, e, ne}. 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 Ai ágens felől az A j ágenstől dir irányú kis távolságra eső pontjába 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 Ai ágenstől dir irányba.
• is-in-front-of-goal(i) Megmondja, hogy az Ai ágens az ellenfél kapuja előtt van-e
Stratégia (értékszabályokkal)
pinterc. 1
hppasser 2
;
intercept : 10
®
(A labda elfogása)
has-role-reciever(j) ∧ ¬is-pass-blocked(i, j, dir) ∧
;
ai = PassTo(j, dir) ∧
aj = MoveTo(dir) : u(j, dir) ∈ [5, 7]i
∀j 6= i
(aktív passz, u( j, dir ) attól függ, hogy a kapuhoz milyen közel kapja el a labdát a receiver)
hppasser 3
;
is-empty-space(i, n) ∧
ai = Dribble(n) : 2i
(labdavezetés)
hppasser 4
;
ai = ClearBall(n) : 2i (felszabadítás)
hppasser 5
;
is-in-front-of-goal(i) ∧ is-ball-kickable(i) ∧ ai = Score : 10i
(kapuralövés)
hpreceiver 6
has-role-interceptor(j) ∧ ¬is-pass-blocked(j, i, dir) ∧ aj = Intercept ∧
;
ai = 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)
hpreceiver 7
;
has-role-receiver(k) ∧ ¬is-pass-blocked(k, i, dir) ∧
aj = PassTo(k, dir2) ∧ ak = MoveTo(dir2) ∧
ai = MoveTo(dir) : u(i, dir) ∈ [5, 7]i
∀j, k 6= i
(Tartalék labdára mozdulás) (Az A j passzol Ak ágensnek ( Ak ágenstől dir irányba) és Ai dir2 irányba mozdul, ha a majd labdát szerző Ak neki tudja passzolni a labdát (mert nincs blokkolva a labda útja))
hpreceiver 8
hppassive 9
;
;
MoveStratPos : 1i
MoveStratPos : 1i