Wybrane algorytmy ligi symulacyjnej Mariusz Tański Kacper Zdanowicz Magdalena Rombalska
Niskopoziomowe umiejętności graczy Algorytmy te są bardzo techniczne i nie zawierają wielu elementów gry zespołowej. W obecnej chwili od zespołów wymaga się o wiele więcej, jednak nawet najbardziej inteligentnie i zespołowo grająca drużyna piłkarzy poniesie porażkę, jeśli nie będzie radziła sobie z omówionymi tutaj niskopoziomowymi czynnościami. Przykłady niskopoziomowych algorytmów: 1. Efektywne kopanie 2. Proste dryblowanie
Efektywne kopanie Kopniecie piłki przez zawodnika nie powoduje nadania jej określonej prędkości, a jedynie przykłada do piłki, być może znajdującej się już w ruchu, pewien wektor Piłkę mona kopnąć, jeśli znajduje się ona w określonej w parametrach serwera odległości Agent może zderzyć się z piłką. Ciała są oddzielane od siebie, a ich prędkości są mnożone przez –0.1
Efektywne kopanie Przed wykonaniem kopnięcia gracze CMUnited określają pożądaną trajektorię piłki oraz obliczają różnice pomiędzy jej aktualna a żądaną prędkością. Dwie podstawowe trudności: kopnięcie piłki z odpowiednia prędkością kopnięcie piłki w dobrym kierunku
Efektywne kopanie - kopnięcie piłki w dobrym kierunku Gracz chcący kopnąć piłkę w określonym kierunku musi sprawdzić, czy jego kopnięcie nie doprowadzi do kolizji piłki z jego własnym ciałem. Być może przed samym kopnięciem konieczne będzie przesunięcie jej na inną stronę gracza przy pomocy lżejszego kopnięcia. Po ustaleniu punktu, w którym powinna znaleźć się piłka obliczana jest trajektoria pomocniczego kopnięcia (lub ich serii)
Jeżeli piłki nie mona posłać bezpośrednio do nowego punktu (ponieważ zasłania go ciało gracza) trajektorie wyznacza się poprzez poprowadzenie przez aktualną pozycję piłki prostej przyległej do otaczającego gracza okręgu Na tej prostej wyznacza się punkt pośredni, z którego piłka jest kopana do swojej docelowej pozycji
Efektywne kopanie - kopnięcie piłki z odpowiednia prędkością Jeżeli piłka jest podawana do innego gracza, prawdopodobnie celem kopiącego nie będzie nadanie jest największej możliwej prędkości, ponieważ wolniejszy ruch piłki ułatwi przyjmującemu podanie jej zatrzymanie. Jeżeli natomiast kopniecie jest strzałem na bramkę, piłka powinna poruszać się jak najszybciej. Agenci CMUnited obliczając siłę kopnięcia starają się przewidzieć stan świata w chwilę po wykonaniu akcji Są w stanie przewidzieć, czy w następnym cyklu po kopnięciu piłka będzie nadal znajdowała się w zasięgu ich kopnięcia
Proste dryblowanie W każdym cyklu agent sprawdza, czy jeśli przyspieszy w wybranym kierunku piłka nadal będzie znajdowała się z zasięgu jego kopnięcia. Jeżeli tak, przyspiesza, jeżeli nie, kopie piłkę Przy kopaniu piłki, pod uwagę brana jest spodziewana pozycja gracza po przyspieszeniu w następnym cyklu. Piłka nie jest kopana wprost do przodu. Metoda wykonująca kopnięcie jako parametr pobiera kąt dryblowania. Jest to kąt pod jakim znajdzie się piłka względem gracza po wykonaniu przez niego przyspieszenia (po dogonieniu piłki)
Proste dryblowanie Jeżeli w którymś cyklu wykonanie kopnięcia nie jest możliwe z powodu potencjalnej kolizji, piłka jest obracana wokół gracza dopiero wówczas wykonywane jest kopnięcie Do obliczenia trajektorii piłki wykorzystywane są następujące wzory:
Najpierw obliczana jest spodziewana pozycja gracza za dwa cykle p nowa to spodziewana pozycja gracza, p aktualna to jego pozycja w danej chwili, v to aktualna prędkość gracza, pdecay to wartość parametru serwera player_decay (zwolnienie), a jest wartością przyspieszenia, z reguły wyliczana jako siła przyspieszenia mnożona razy wartość parametru serwera dash_power_rate, chociaż czasami może ograniczać ją niski poziom wytrzymałości gracza.
Następnie do pozycji p nowa dodawany jest wektor o kierunku równym kątowi dryblowania i długości takiej, by piłka znajdowała się w zasięgu kopnięcia. W ten sposób określana jest docelowa pozycja piłki p docelowa. Trajektoria piłki jest następnie wyliczana z wzoru: p piłki to aktualna pozycja piłki bdecay to wartość parametru serwera ball_decay
Indywidualne akcje uwzględniające istnienie i rozmieszczenie innych zawodników Algorytmy te również są algorytmami indywidualnymi: wykonujący akcję agent nie stosuje zaawansowanego myślenia na poziomie zespołu, stara się jedynie dobrze spełnić swoja funkcję. Od algorytmów z poprzedniego podrozdziału różnią się tym, że postępowanie agenta, mimo że nie współpracuje on w bezpośredni sposób z innymi, jest uzależnione od istnienia innych zawodników. Przykładowo, wykonujący sprytne dryblowanie agent sam kontroluje piłkę, ale kierunek jego biegu i kąt pod którym ją kopie zależą od rozmieszczenia graczy przeciwnika – postępowałby inaczej, gdyby był na boisku sam.
Sprytne dryblowanie Wykorzystuje ono metodę prostego dryblowania, podając jej różne parametry (wartości kąta dryblowania) w zależności od rozmieszczenia graczy przeciwnej drużyny na boisku Poruszający się z piłka gracz stara się w każdej chwili prowadzić ją po tej stronie ciała, po której nie ma przeciwników Każdy znajdujący się z pobliżu zawodnik przeciwnej drużyny głosuje za konkretnym, najbardziej odległym kątem dryblowania, przy czym kąt dryblowania może przyjmować wartości z przedziału [-90,90] stopni
Sprytne dryblowanie Przykładowo, dla zawodnika znajdującego się pod katem 10 stopni od dryblującego takim katem będzie –90 stopni. Dodatkowo głosy przeciwników otrzymują wagi, oparte na ich odległości oraz położeniu względem gracza przy piłce. Większe wagi otrzymują ci bliżsi oraz znajdujący się naprzeciwko gracza. Na podstawie tych informacji wybierany jest optymalny kąt sprytnego dryblowania.
Aktywne i pasywne przejmowanie piłki Istnieją dwa podstawowe modele przejmowania poruszającej się po boisku piłki. Pierwszy z nich, przejęcie pasywne, jest wykorzystywane głównie przez bramkarza, który nie powinien zanadto oddalać się od bramki, Większość graczy używa przejęcia aktywnego.
Aktywne i pasywne przejmowanie piłki Pasywne przejęcie polega na obliczeniu najbliższego punktu na trajektorii piłki (który znajduje się na boisku). Jeżeli agent uzna, że jest w stanie znaleźć się w tym punkcie przed piłka, biegnie. Przejęcie aktywne polega na znalezieniu najwcześniejszego takiego punktu na trajektorii piłki, w którym agent może się znaleźć przed nią.
Indywidualne akcje uwzględniające istnienie i rozmieszczenie innych zawodników Inne algorytmy uwzględniające istnienie i rozmieszczenie innych zawodników: Bieg z piłką Dośrodkowanie Wystawianie piłki za plecy przeciwnika Krycie Wybijanie piłki w sytuacji obronnej
Algorytmy bramkarzy Algorytm obrony bramki jest szczególnym przypadkiem indywidualnego algorytmu uwzględniającego położenie innych graczy. W podstawowym przypadku bramkarz nie musi współpracować z całym zespołem i znać jego strategii. Musi po prostu wiedzieć, gdzie znajduje się piłka i czy znajduje się na drodze umożliwiającej jej wpadniecie w światło bramki. Istnieje więcej niż jedna skuteczna metoda obrony bramki. Przykładowe sposoby, które odniosły sukces w rozgrywkach RoboCup to: FC Portugal, CMUnited oraz UvA Trilearn.
Algorytm bramkarza FC Portugal Algorytm działania bramkarza drużyny FC Portugal silnie wykorzystuje dwuwymiarowość serwera symulacyjnego. Ponieważ nie jest możliwe kopnięcie piłki nad głową bramkarza, może on bez większego ryzyka oddalać się od bramki w aż w okolice granicy pola karnego. Bramkarz porusza się po prostokącie nieznacznie mniejszym od pola karnego. Korzysta z wąskiego pola widzenia, aby być w stanie widzieć piłkę w każdym cyklu symulacji. Kiedy piłka porusza się powoli, bramkarz ustawia się na przecięciu wspomnianego prostokąta z linią łączącą piłkę ze środkiem bramki. Jeśli piłka porusza się szybciej i nie ma przy niej piłkarza, bramkarz oblicza jej spodziewany punkt przecięcia z prostokątem i ustawia się tam.
Algorytm bramkarza FC Portugal W celu złapania piłki bramkarz stosuje pasywnego i aktywnego przejęcia. Pasywne przejecie jest stosowane, jeśli bramkarz jest pewien, że nikt nie przechwyci piłki wcześniej. Jeżeli w pobliżu znajduje się przeciwnik, który potencjalnie może kopnąć piłkę, stosuje się przejecie aktywne, w którym bramkarz biegnie do pierwszego punktu na trajektorii piłki w którym może być przed nią. Jeżeli bramkarz stwierdzi, że nie jest w stanie przejąć piłki ani w pasywny ani w aktywny sposób, próbuje zatrzymać ja na linii bramkowej.
Algorytm gracza UvA Trilearn Algorytm odwołuje się do ponumerowanych stref na boisku. Algorytm: 1. Jeśli prawdopodobieństwo zdobycia gola poprzez strzał w najlepszy punkt strzału jest większe niż 0.9, kopnij piłkę z największą mocą w kierunku tego punktu. Prawdopodobieństwo wynosi: P=Pg*Pb gdzie: Pg – prawdopodobieństwo że trafimy do bramki Pb – prawdopodobieństwo że ominiemy bramkarza
Krok 2: jeśli w obszarze 1 a) Jeśli patrzysz w kierunku własnej bramki a blisko nie ma przeciwników, obróć się z piłką w kierunku bramki przeciwnika. b) Jeśli przed tobą znajdują się zawodnicy nieotoczeni przeciwnikami, podaj piłkę z normalna prędkością do najbardziej wolnego z nich. c) Jeśli pomiędzy przeciwnikami znajduje się odpowiednio duży kąt, powoli drybluj w jego kierunku. d) W przeciwnym razie wybij piłkę przez najszerszy kat pomiędzy przeciwnikami.
Krok 3: jeśli w obszarze 2 a) Jeśli patrzysz w kierunku własnej bramki a blisko nie ma przeciwników, obróć się z piłka w kierunku bramki przeciwnika. b) Jeśli ścieżka nie jest blokowana przez przeciwników, drybluj szybko w stronę bramki przeciwnika. c) Jeśli przed tobą znajdują się zawodnicy nieotoczeni przeciwnikami, podaj piłkę z normalna prędkością do najbardziej wolnego z nich. d) Jeśli przed tobą znajdują się zawodnicy, w których otoczeniu jest niewielu przeciwników, podaj piłkę z dużą prędkością do najbardziej wolnego z nich. e) Jeśli kat pomiędzy przeciwnikami jest odpowiednio szeroki, wystaw piłkę zawodnikowi z boku boiska (wykonaj podanie w głąb).
Krok 3: jeśli w obszarze 3a,3b a) Jeśli patrzysz w kierunku własnej bramki a blisko nie ma przeciwników, obróć sie z piłka w kierunku bramki przeciwnika. b) Jeśli bardzo blisko znajduje sie przeciwnik, wystaw sobie piłkę poza niego. c) Jeśli przeciwnicy nie blokują ścieżki, drybluj szybko w stronę pola karnego przeciwnika. d) Jeśli jakiś zawodnik twojej drużyny (zwłaszcza ty) będziesz mógł pierwszy znaleźć sie przy piłce, wybij ja w kierunku swojej strony boiska. e) Jeśli przed tobą znajdują sie zawodnicy nieotoczeni przeciwnikami, podaj piłkę z normalna prędkością do najbardziej wolnego z nich. f) Jeśli pomiędzy przeciwnikami znajduje sie odpowiednio duży kat, powoli drybluj w jego kierunku. g) W przeciwnym razie wybij piłkę przez najszerszy kat pomiędzy przeciwnikami.
Krok 4: jeśli w obszarze 4a,4b a) Jeśli znajdujesz się poza polem karnym i ścieżka nie jest zablokowana, drybluj szybko w stronę pola karnego przeciwnika. b) Jeśli istnieją zawodnicy twojej drużyny w obszarach 4, 5, 6 nieotoczeni przeciwnikami, podaj piłkę z normalna prędkością do najbardziej wolnego z nich. c) Jeśli kąt pomiędzy przeciwnikami jest odpowiednio szeroki, wystaw piłkę zawodnikowi w obszarze 6. d) Jeśli bardzo blisko znajduje się przeciwnik, wystaw sobie piłkę poza niego (akcja outplay). e) Jeśli istnieją zawodnicy twojej drużyny w obszarach 4, 5, 6, wokół których znajduje się niewielu przeciwników, podaj piłkę z dużą prędkością do najbardziej wolnego z nich. f) W przeciwnym razie wybij piłkę przez najszerszy kąt pomiędzy przeciwnikami.
Krok 5: jeśli w obszarze 5a,5b a) Jeśli istnieją zawodnicy twojej drużyny w obszarach 4, 5, 6 nieotoczeni przeciwnikami, podaj piłkę z normalna prędkością do najbardziej wolnego z nich. b) Jeśli znajdujesz się poza polem karnym przeciwnika i ścieżka nie jest zablokowana, drybluj powoli w stronę pola karnego. c) Jeśli bardzo blisko znajduje się przeciwnik, wystaw sobie piłkę poza niego. d) Jeśli kąt pomiędzy przeciwnikami jest odpowiednio szeroki, wystaw piłkę zawodnikowi w obszarze 6. e) Jeśli istnieją zawodnicy twojej drużyny w obszarach 4, 5, 6, wokół których znajduje się niewielu przeciwników, podaj piłkę z dużą prędkością do najbardziej wolnego z nich. f) W przeciwnym razie wybij piłkę przez najszerszy kat pomiędzy przeciwnikami.
Krok 6: jeśli w obszarze 6 Jeśli piłka znajduje się w strefie 6 wówczas: a) Jeśli przeciwnicy nie blokują ścieżki, drybluj szybko w stronę bramki przeciwnika. b) Jeśli pomiędzy przeciwnikami znajduje się odpowiednio duży kat, powoli drybluj w jego kierunku (ale do przodu). c) Jeśli istnieją zawodnicy twojej drużyny w obszarach 4, 5, 6 nieotoczeni przeciwnikami, podaj piłkę z normalna prędkością do najbardziej wolnego z nich. d) Jeśli kat pomiędzy przeciwnikami jest odpowiednio szeroki, wystaw piłkę zawodnikowi w obszarze 6. e) Jeśli istnieją zawodnicy twojej drużyny w obszarach 4, 5, 6, wokół których znajduje się niewielu przeciwników, podaj piłkę z dużą prędkością do najbardziej wolnego z nich. f) Kopnij piłkę z maksymalna siła w kierunku najlepszego punktu strzału.
Algorytm na poziomie zespołu Locker-Room Agreement (umowa zawarta w szatni) Jest to jeden z pierwszych pomysłów na zorganizowanie akcji zespołowych wprowadzony przez CMUnited. Gracze co jakiś czas spotykają się w bezpiecznym, pozwalającym na pełną komunikację środowisku, które pozwala na uzgodnienie pewnej strategii. Gracze posiadają pewna sztywna (wyniesiona z szatni) wiedze o pewnych zachowaniach, np. w przypadku konieczności wybicia piłki z autu. Wówczas nie muszą nadmiernie wykorzystywać ograniczonej komunikacji na boisku. Pomysł ten został wykorzystany do wymuszenia spalonego na graczach tj.łapania na spalonym. Gracze wiedzieli, że jeśli zajdą określone, jasne dla wszystkich warunki, maja przesunąć się w kierunku środka boiska. Strategia Locker-Room Agreement była jednym z pierwszych pomysłów na współprace zespołowa, ale trzeba zaliczyć ja do pomysłów raczej naiwnych. Jej siła polegała głównie na zaskakiwaniu przeciwnika. Po jednym przegranym meczu przeciwnik mógł przeprogramować drużynę tak, by umiała przewidzieć zachowania piłkarzy. Poza tym, powoli zaczynają sie pojawiać agenci wyciągający wnioski z akcji przeciwnika, którzy po kilku przypadkach wykorzystania tej strategii mogą nauczyć się przed nią bronić.
Algorytm na poziomie zespołu STEAM STEAM (Shell for TEAMwork) Zespoły wewnątrz STEAM mogą mieć strukturę płaska lub hierarchiczna. W przypadku struktury hierarchicznej zespół może rekurencyjne składać się z podzespołów, które z kolei ostatecznie są tworzone przez poszczególne jednostki. Zespoły oraz jednostki otrzymują pewne konkretne role. Wyróżnia się dwa typy ról: trwałe, które nie zmienia się w krótkim okresie czasu (np. bramkarz) oraz zadaniowe, które są zadawane tylko na czas wykonania pewnej akcji (np. przyjmujący podanie). Działanie zespołu w STEAM opiera się o czynności nazywane operatorami zespołowymi, czyli połączone akcje całego zespołu.
Operatory zespołowe Operatory zespołowe oraz operatory indywidualne składają się z tych samych elementów: warunków wstępnych, reguł stosowania oraz warunków zakończenia. Różnica polega na tym, że operatory indywidualne odnoszą się do prywatnego stanu agenta, podczas gdy operator zespołowy wynika z zmieniania stanu zespołu. Stan zespołu to utrzymywany przez agentów zbiór przekonań, należy pamiętać że STEAM nie używa współdzielonej pamięci ani współdzielonej wiedzy. Stan zespołu jest utrzymywany niezależnie przez jego członków i uaktualniany przy pomocy obserwacji oraz komunikacji.
Model współpracy w STEAM Opiera się o trzy klasy aksjomatów: 1. Aksjomat CP (coherence preserving), czyli aksjomaty spójności. Wymagają one, aby członkowie zespołu komunikowali sie ze sobą w celu uzgodnienia rozpoczęcia lub zakończenia wykonywania operatorów zespołowych. Np. jeśli agent nie może wykonać operatora musi zawiadomić o tym swój zespół. 2. Aksjomat MR (monitor and repair), czyli aksjomaty monitorowania i naprawy. Wykrywają one sytuacje, w której wykonanie zadania nie jest możliwe z powodu awarii lub wykluczenia zespołu lub jego części. Wówczas zespół musi dokonać reorganizacji. 3. Aksjomat SC (selectivity-in-communication), czyli aksjomaty wybiórczości komunikacji. Ich podstawa jest ocena kosztów i zysków z faktu wysłania komunikatu. W środowiskach, gdzie komunikacja jest kosztowna i zaburzana, ocenia się prawdopodobieństwo, że inni członkowie zespołu mogą już posiadać pewna wiedze (uzyskana np. przy pomocy obserwacji)
Drużyna musi działać zgodnie z zasadami określonymi w aksjomatach. Cała komunikacja oparta jest o te zasady. Wyjątkiem są sytuacje, kiedy agenci otrzymują zewnętrzne sygnały od sędziego, zmuszające ich do wykonania któregoś z operatorów. Nie muszą wówczas komunikować tego faktu zespołowi.
Algorytm drużyny NOVAURO. (wcześniej UJDB [Wang, Chen, Zhao, Ju, 2004]) Dwa czynniki: odległość od linii bramkowej kąt do słupka bramki przeciwnika
Funkcja oceny strzału na bramkę. odległość agenta od linii bramkowej – d, kąt: lewy słupek bramki – strzelający – prawy słupek – α, zdolność strzelania agenta – f, stopień interferencji agentów przeciwnika – ξ
Przypadki szczególne piłka na linii bramkowej, brak interferencji, tzn. d =0, α =180, ξ =0 piłka na przedłużeniu linii bramkowej, nie pomiędzy słupkami, tzn. d =0, α =0, ξ =0
Prawdopodobieństwo sukcesu strzału wprost proporcjonalne do wartości α i f, odwrotnie proporcjonalne do wartości ξ oraz d.
Funkcja skuteczności obrony. założenia jak w funkcji skuteczności strzału. im bliżej i szerszy kąt, tym niebezpieczniej dla obrońców zadanie obrońców – minimalizacja tych czynników
Decyzje w drużynie NOVAURO. podejmowane na poziomie agenta oraz zespołu agent z piłkę oblicza wartość funkcji oceny strzału, jeśli wartość wyższa od progu, gracz strzela, w przeciwnym razie gracz bierze pod uwagę wartości funkcji innych graczy, z przesłanych komunikatów,
Decyzje w drużynie NOVAURO. jeżeli któryś z graczy jest na pozycji umożliwiającej strzał, piłka podawanego jest do niego, jeżli nie ma takiego agenta, zawodnik z piłką stara się zająć lepszą lokalizację, proces jest powtarzany do chwili oddania strzału lub przechwycenia piłki przez przeciwnika komunikaty – tylko gracze widzący obrońców
Obronne formacje każdy piłkarz – wydzielone pole działania, w sytuacjach wpółpracy agent może wykroczyć na sąsiadujace pola, agent próbuje przejąć piłkę od przeciwnika w swoim polu, jeśli nie ma szans na przejęcie, przesuwa sie na pozycję utrudniająca zdobycie bramki
Grafy koordynacji technika stworzona przez ligę Uva Trilearn, nacisk położony na koordynację zespołu agentów, kompletna strategia zespołu przy użyciu rachunku zdań (zmienne = akcje i stany gry) każda reguła posiada przypisany zysk
Przykład akcja: passTo, (i) - podanie piłki do agenta i, stan: is-pass-blocked(i, j) - czy podanie od gracza i do gracza j jest blokowane przez przeciwnika, reguła: przykładowa reguła poadania wymagająca współpracy kilku (dwóch) graczy
Tworzenie grafu każdy agent – wierzchołek w grafie, krawędź między wierzchołkami – agenci muszą koordynować akcje (istnieje reguła z akcjami dla obu graczy) cel drużyny – znalezienie akcji zespołowej (zbiór akcji) z największym globalnym zyskiem
Algorytm eliminacji zmiennych usuwanie z grafu krawędzi, gdzie reguły niespełnione (np. gracze są za daleko) lokalna funkcja zysku – zysk z akcji poszczególnych zawodników globalna funkcja zysku – liniowa kombinacja funkcji lokalnych u(a) = f 12 (a 1, a 2 ) + f 13 (a 1, a 3 ) + f 34 (a 3, a 4 )
Algorytm eliminacji zmiennych - procedura wybór jednego agenta, zebranie informacji o funkcjach zysku od sąsiadów, optymalizacja wyboru akcji, komunikacja reszcie, usunięcie agenta i powtórzenie cyklu dla pozostałych, ostatni agent decyduje o konkretnej akcji i komunikuje usuniętemu w poprzednim kroku itd.
Algorytm eliminacji zmiennych - konkluzja wynik algorytmu – zawsze optymalna akcja zespołowa wynik nie zależy od kolejności wyboru agentów, ale czas działania algorytmu tak problem – może działać długo dla szczególnych przypadków niewystarczające dla dynamicznego środowiska i decyzji w czasie rzeczywistym
Komunikacja i model świata komunikacja w RoboCup jest zaburzona (szumy, wielkość komunikatów) wymiana informacji między graczami o otaczającym świecie informacja: wizualna, słyszalna, sense-body, efekty wcześniejszych działań
Model świata CMUnited modelowanie stan środowiska - cała dostępna informacja założenie, agent ma informację o świecie w t-2 i wykonał akcję w t-1. gdy serwer w cyklu t-1, otrzymane info przechowane tymczasowo, bez aktualizacji modelu gdy serwer w cykl t, aktualizacja modelu całą dostępną informacją. wybór akcji, wysłanie do serwera.
Mechanizm komunikacji ADVCOM inteligenty mechanizm komunikacji porównanie i uaktualnienie modeli świata poszczególnych agentów zwiększenie koordynacji zespołu poprzez komunikowanie ważnych wydarzeń,
Komunikacja ADVCOM aktualny model – podejmowanie decyzji komunikowany model świata – wyznacznik wiedzy innych członków drużyny podstawowe komunikaty z modelem świata dodatkowe komunikaty o niespodziewanych wydarzeniach