Planowanie strategii i poprawa efektywności działania drużyny

Transkrypt

Planowanie strategii i poprawa efektywności działania drużyny
Krzysztof Rogala
Pracowanie dyplomowa magisterska 1 – sprawozdanie
Planowanie strategii i poprawa efektywności
działania drużyny robotów ligi Robocup smallsize
Opiekun naukowy: dr inż. Wojciech Szynkiewicz
Warszawa, 2010
Spis treści
Wstęp .......................................................................................................................................... 3
Cel pracy ................................................................................................................................ 3
Zakres pracy ........................................................................................................................... 3
Opis problemu ........................................................................................................................ 3
System sterujący drużyną ........................................................................................................... 6
Stosowane rozwiązania .......................................................................................................... 6
Warstwa przydziału ról ...................................................................................................... 6
Warstwa przydziału zadań ................................................................................................. 7
Warstwa wykonawcza ........................................................................................................ 7
Projektowany system sterowania ........................................................................................... 7
Moduł przydziału zadań ..................................................................................................... 8
Moduł przydziału zadań ................................................................................................... 10
Moduł wykonawczy ......................................................................................................... 12
Poprawa efektywności działania .............................................................................................. 14
Rodzaje uczenia drużyny robotów ....................................................................................... 14
Centralne uczenie ze wzmocnieniem ............................................................................... 14
Indywidualne uczenie ze wzmocnieniem ......................................................................... 14
Grupowe uczenie ze wzmocnieniem ................................................................................ 14
Społeczne uczenie ze wzmocnieniem .............................................................................. 14
Centralne uczenie ze wzmocnieniem ................................................................................... 15
Grupowe uczenie ze wzmocnieniem .................................................................................... 15
Indywidualne uczenie ze wzmocnieniem ............................................................................. 16
Uczenie w projektowanym systemie sterowania drużyną .................................................... 17
Bibliografia............................................................................................................................... 18
2
Wstęp
Cel pracy
Celem mojej pracy magisterskiej jest opracowanie w pełni funkcjonalnej strategii gry
drużyny robotów ligi RoboCup SmallSize. Jako strategię rozumie się algorytm
przetwarzający dane wejściowe systemu sterującego robotami na polecenia przesyłane
bezpośrednio do robotów. Celem tego algorytmu jest maksymalizacja liczby zdobytych
bramek przy jednoczesnej minimalizacji straconych bramek. Opracowywana strategia ma
spełniać powyższe kryterium. Opracowany algorytm zostanie zaimplementowany na
symulatorze oraz uruchomiony na rzeczywistej drużynie robotów.
Zakres pracy
Algorytm opracowany w ramach pracy magisterskiej ma realizować przydział ról oraz
zadań do poszczególnych robotów należących do drużyny. Ponadto ma zapewniać
koordynację działań robotów oraz modyfikowanie sposobów wykonywania zadań w celu
dostosowania ich do strategii drużyny przeciwnej. Implementacja obejmuje zatem wszystkie
elementy systemu sterowania od momentu uzyskania danych z systemu wizyjnego do
wyznaczenia punktów docelowych dla poszczególnych robotów.
Opis problemu
Drużyna w lidze RoboCup składa się z co najwyżej pięciu identycznych robotów,
których podstawa mieści się w okręgu o promieniu 18 cm, a wysokość jest nie większa niż 15
cm. Roboty grają na zielonym polu gry o wymiarach 605cm × 405cm. Wymiary wszystkich
obszarów przedstawiono na Rysunku 1.
Piłką jest pomarańczowa piłeczka golfowa. Drużyna używa globalnego systemu
wizyjnego tzn. zamontowanej nad polem gry kamery, z której obraz jest przesyłany do
komputera stacjonarnego, który z kolei przetwarza obraz. Na robotach dozwolone jest
wyłącznie używanie kolorów z określonej w regułach palety, chyba że obie drużyny biorące
udział w meczu zgodzą się na inne.
3
Rysunek 1: Pole gry [12]
Komunikacja między robotami a komputerem sterującym jest bezprzewodowa (przy
czym zabrania się korzystania z komunikacji typu Bluetooth). Przepływ danych pokazano na
Rysunku 2:
Rysunek 2: Przepływ danych podczas meczu ligi RoboCup [12]
Nad boiskiem umieszczona jest kamera, która zarejestrowany obraz przesyła do
komputera sterującego. Jego zadaniem jest analiza obrazu i wyznaczenie instrukcji
przesyłanych następnie do robotów.
Jak już wspomniano, robotów z jednej drużyny może być na boisku co najwyżej pięć.
Nie ma natomiast ograniczeń co do liczby robotów zapasowych, które można wstawiać na
pole gry w przypadku awarii grającego. Drużyna ma prawo zgłościć jednego robota jako
4
bramkarza. Wybór bramkarza musi nastąpić przed meczem. Zmiana bramkarza może nastąpić
jedynie za zgodą sędziego.
Mecz składa się z dwóch połów trwających z założenia 10 minut. Obie drużyny mogą
się umówić na skrócenie tego czasu. W przypadku remisu rozgrywana jest ośmiominutowa
dogrywka. Jeżeli wziąć pod uwagę szybkość robotów, która pozwala im przebyć całą długość
boiska w niecałe 3 sekundy widać, że czas ten jest adekwatny do czasu rzeczywistego meczu.
Następujące zachowania są zabronione i karane rzutami wolnymi lub karnymi (jeśli
będą miały miejsce w polu karnym): znaczny kontakt fizyczny z przeciwnikiem,
przytrzymywanie przeciwnika, przetrzymywanie piłki (za wyjątkiem bramkarza w polu
karnym), fakt przebywania dwóch lub więcej robotów w polu karnym jeśli wpływa to na
przebieg gry.
Wszystkie reguły zaczerpnięto z [7].
5
System sterujący drużyną
Stosowane rozwiązania
Uniwersytety na całym świecie tworzą swoje drużyny i projektują własne systemy
sterowania drużyną. Ponadto, ponieważ jednym z celów RoboCup jest dzielenie się więdzą
i odkryciami w dziedzinie robotyki, każda z drużyn udostępnia opis stosowanych algorytmów
i rozwiązań technicznych. Na potrzeby mojej pracy przeanalizowano takie opisy,
udostępnione przez drużyny, które przez ostatnie lata zajmowały najwyższe miejsca na
turniejach.
Wszystkie rozparywane drużny stosują taką samą strukturę systemu sterowania
drużyną. Jest to hierarchiczna struktura (schemat na rys. 3), składająca się z trzech warstw.
Rysunek 3: Schemat systemu sterowania drużyną
Warstwa przydziału ról
Każdy robot na boisku pełni jakąś rolę. Role te są analogiczne jak w piłce nożnej ludzi
– bramkarze, obrońcy, pomocnicy i napastnicy. W niektórych drużynach podział ten jest
bardziej szczegółowy: wprowadzane są ofensywne i defensywne wersje wyżej wymienonych
ról. Podobnie jak w piłce nożnej ludzi role te zemieniają się w czasie meczu.
6
Wprowadzenie podziału na role znacznie ułatwia koordynację działań robotów
i przydział zadań. Od pełnionej roli może zależeć zbiór dopuszczalnych do przydzielenia
zadań, ograniczenia nałożone na pozycję na boisku a nawet sposób wykonywania tych
samych zadań.
Przydział ról dokonywany jestna podstawie aktualnej sytuacji na boisku. W każdej
z rozpatrywanych drużyn przebiega on podobnie, tzn. na podstawie bazy wiedzy, która
zawiera przykładowe sytuacje na boisku i odpowiadające im przydziały ról. Baza wiedzy jest
przygotowana przez ludzi projektujących strategię dla drużyny.
Warstwa przydziału zadań
Wszystkie roboty na boisku wykonują przydzielone im zadania. Również podobnie
jak w piłce nożnej ludzi, przez zadania rozumiane są pewne sekwencje działań i podejmowania decyzji. Np. oddanie strzału na bramkę wiąże się z zajęciem odpowiedniej pozycji
oraz ustaleniem siły i kierunku strzału. Podobnie podanie piłki wiąże się z wyborem adresata
podania, zajęciem pozycji i dostsosowaniem siły strzału. Każda z rozpatrywanych drużyn
posługuje się mniej więcej takim samym zbiorem zadań, obejmującym strzelanie, podawanie,
dryblowanie, blokowanie strzału, przejmowanie piłki, i zajmowanie pozycji.
Metody przydzielania zadań uwidaczniają pierwsze znaczne różnice między
stosowanymi rozwiązaniami. W niektórych drużynach [10], [14] przydzielone zadanie jest
jednoznacznie determinowane przez przydzieloną uprzednio rolę. W innych [1] do
przydzielenia zadania wymagane są dodatkowe obliczenia, mające na celu minimalizację
czasu osiągnięcia celu oraz minimalizację zużycia zasobów. Opis rozwiązań stosowanych w
różnych drużynach, a także w rozwiązaniach nowatorskich nieprzetestowanych jeszcze na
turniejach przedstawiono w [8].
Warstwa wykonawcza
Jak wspomniano w poprzednim podrozdziale, wykonanie zadania wiąże się z podejmowaniem decyzji oraz dokonywaniem obliczeń. Są one wykonywane w warstwie
wykonawczej. Sposoby wykonywania zadań nie są zamieszczane w opisach drużyn, a ze
względu na zakres pracy nie zostaną w tym miejscu przedstawione.
Projektowany system sterowania
Zaproektowany w ramach mojej pracy system sterowania drużyną ma taką samą
strukturę jak systemy opisane w poprzednim podrozdziale, dlatego nie będzie tu ponownie
opisywana. System składa się z trzech modułów, które opisano w kolejnych podrozdziałach.
7
Moduł przydziału zadań
W systemie sterowania zdefiniowane są następujące role:
1. bramkarz
2. obrońca
3. defensywny pomocnik
4. ofensywny pomocnik
5. napastnik
Od pełnionej roli zależy obszar, po którym robot może się poruszać, zbiór zadań, które
mogą być do niego przydzielone, a także sposób wykonywania zadań. Ograniczenia te
zostaną w dalszej części rozdziału.
Przydział ról w czasie meczu jest dokonywany w oparciu o taktykę. Taktyka jest to
funkcja (oznaczona przez t) przekształcająca jedenasto wymiarowy wektor opisujący
położenie dziesięciu robotów oraz piłki na boisku, w pięcio wymiarowy wektor, opisujący
przydział ról do konkretnych robotów:

 

t : v  P11 | v  h1 , h2 , h3 , h4 , h5 , o1 , o2 , o3 , o4 , o5 , b   w  R 5 | w  r1 , r2 , r3 , r4 , r5 
(1)
gdzie:
P – zbiór wszystkich możliwych par (x,y) opisujących położenie obiektu na boisku,
R – zbiór wszystkich ról w systemie,
hi – położenie i-tego robota z drużyny własnej,
oi – położenie i-tego robota z drużyny przeciwnej,
b – położenie piłki
ri – rola przypisana do i-tego robot drużyny własnej
i = 1, …, 5
Projektant modułu przydziału ról konstruuje zbiór P’, stanowiący podzbiór dziedziny
funkcji taktyki. Dla elementów P’ zdefiniowano funckję podobieństwa d:
d v1 , v 2   v1  v 2
(2)
W dalszym tekście przyjęto, że podobne elementy zbioru P’ to takie elementy, dla których
funkcja d przyjmuje wartości znacznie mniejsze niż długość przekątnej boiska.
Dla każdego elementu zbioru P’ projektant wyznacza wartości funkcji taktyki.
Otrzymany w ten sposób zostaje następujący zbiót T:
T  a, w
(3)
gdzie:
a  P' i w t P' .
8
Ponieważ zbiór T jest zbiorem par, przyjęto że dla elementu x ze zbioru T, poprzez x.a
oznaczany będzie pierwszy element pary x, a poprzez x.w – drugi element pary x.
Mając do dyspozycji zbiór T, można zapisać algorytm przydziału ról:
1. Wyznacz wektor v położenia wszystkich robotów oraz piłki na boisku,
2. Wyznacz x  T , takie że:
x  arg min d x' , v 
x 'T
(4)
3. Przyjmij x.w jako docelowy przydzał ról.
Obliczenie wartości funkcji d nie jest jednak trywialne, ponieważ dla dwóch różnych
wektorów, różna może być interpretacja i-tego robota. Aby w obu wektorach identycznie
uporządkować elementy, stosowany jest następujący algorytm (jest on osobno stosowany dla
robotów z obydwu dryżyn):
1. Przypisz n = 1
2. Każdemu robotowi z wektora v przypisz najbliższego robota z tej samej drużyny
z wektora x.a i oznacz przypisane roboty z x.a liczbą n.
3. Tak długo jak istnieją nieprzyporządkowane roboty w x.a:
a. Przypiszn n = n + 1
b. Wyznacz zbiór robotów z v, do których przyporządkowane są te same roboty
c. Przydziel robotom wyznaczonym w punkcie a najbliższego i nieprzydzielonego robota z x.a, i oznacz wybrane roboty z x.a liczbą n
d. Wróc do punktu 2
4. Przypisz k = n
5. Tak długo jak k > 0
a. Robotom z x.a oznaczonym liczbą k, przypisz najbliższego robota z v, do
którego jest przypisany.
b. Przypisz k = k – 1
Po zakończeniu działania algorytmu, do każdego robota z wektora x.a przypisany jest
odpowiadający mu robot z wektora v i można obliczyć wartość funkcji d(x.a, v). Przykład
działania algorytmu przedstawiono na rysunku 3.
9
Rysunke 3: Na rysunkach na czarno oznaczono roboty z v (ustawienie faktyczne), a na czerwono roboty z x.a (ustawienie
wzorcowe). Na rysunkach a, b i c zaznaczono kolejne iteracje pierwszej części algorytmu, a na rysunku d wynikającyh z nich
przydział
Ponieważ odnalezienie odpowiedniego przydziału ról może być czasochłonne,
przyjęto że wystarczy znaleźć przydział lepszy niż aktualny. Wynika to z faktu, że przejścia
między różnymi ustawieniami robotów nie mogą być skokowe. W związku z tym, duże
znaczenie dla szybkości działania algorytmu ma kolejność elemntów w zbiorze T. Kolejność
przeglądania elementów zbioru T jest następująca:
i1  a


ik 1  ik   1  k mod n ,
k
gdzie a jest indeksem aktualnego przydziału ról, i jest indeksem elementu wybranego do
sprawdzenia a n jest liczbą elementów zbioru T.
Moduł przydziału zadań
Wyznaczony przydział ról przekazywany jest do modułu przydziału zadań.
Zdefiniowane są następujące zadania, które mogą być wykonywane przez roboty:
10
1. Obrona
2. Przejęcie piłki
3. Podanie
4. Strzał
5. Jazda z piłką
6. Wspomaganie w ataku
Pełny opis algorytmu przydziału zadań znajduje się w [8]. Poniżej zamieszczono skrócony
opis.
Algorytm składa się z czterech kroków:
1. Wyznaczenie wartości parametrów decyzyjnych
2. Wyznaczenie wartości funkcji przynależności dla każdego z parametrów
3. Wyznaczenie współczynnika wsparcia dla każdej reguły decyzyjnej
4. Obliczenie zadania do wykonania
Parametry decyzyjne to:
1. Współrzędna x robota na boisku
2. Odległość robota od własnej bramki
3. Liczba robotów przeciwnka w otoczeniu robota
Funkcje przynależności są to typowe funkcje typu trapezowego. Reguły decyzyjne są
implikacjami postaci:
f1  A  f 2  B  f 3  C  a  x , gdzie:
fi – funkcje przynależności do zbiorów rozmytych
A, B, C – zbiory rozmyte
a – zmienna oznaczająca wynikowe zadanie
x – wartość przypisana jako wynikowe zadanie
Współczynnik wsparcia reguły jest obliczany jako iloczyn wartości funkcji
przynależności występujących w regule. Natomiast ostateczne przydzielone zadanie jest
obliczane stosując metodę środka ciężkości:
n
xw 
s
i 1
i
 xi
(5)
n
s
i 1
i
gdzie:
xw – przydzielone zadanie
si – współczynnik wsparcia i-tej reguły
11
xi – zadanie wynikające z i-tej reguły
n – liczba reguł
Przydział zadań odbywa się osobno dla każdego robota. Może to doprowadzić do
sytuacji, w której więcej niż jeden robot będą miały przydzielone takie samo zadanie i ten
sam cel, co może spowodować, że zamiast współpracować będą ze sobą konkurować.
Sytuację taką nazwano konfliktem. Aby im zapobiec, zastosowano dodatkowy moduł, który
w takiej sytuacji do wykonania zadania wybiera robota o najlepszej pozycji wyjściowej do
tego zadania, a pozostałym zleca inne zadania.
Moduł wykonawczy
Moduł wykonawczy stanowi zbiór metod opisujących jak należy każde z tych zadań
wykonać. Schemat postępowania jest w przypadku każdego zadania taki sam – obliczany jest
punkt, do którego robot musi dojechać, aby zrealizować zadanie. Następnie są obliczane
wartości sterowań dla silników, które mają zapewnić jazdę w odpowiednim kierunku.
Ostatecznie, obliczone wartości są wysyłane do robota. Poniżej przedstawiono skrócony opis
wybranych zadań:
1. Podanie
Pierwszą fazą wykonania tego zadania jest wybranie partnera, do którego piłka ma
zostać podana. Wybierany jest zawsze ten z robotów, który znajduje się bliżej bramki
przeciwnika niż podający. Jeżeli ten warunek jest spełniony przez kilka robotów,
podanie otrzyma ten, który jest najlepiej widoczny tzn. na linii podania jest najmniej
robotów przeciwnika. Jeżeli podający jest bliżej bramki niż pozostałe roboty z drużyny,
wywoływane jest zadanie strzału.
2. Drybling
Punktem wyznaczanym jako cel dla robota jadącego z piłką jest środek bramki
przeciwnika. Robot jedzie po prostej, omijając ewentualne przeszkody.
3. Jazda do piłki
Punktem wyznaczanym jako cel dla robota jadącego z piłką jest aktualna pozycja piłki.
Robot jedzie po prostej, omijając ewentualne przeszkody.
4. Pomaganie
Robot stara się utrzymywać stałą, określoną odległość od robota posiadającego piłkę.
Oznacza to, że punktem wyznaczanym jako cel dla robota pomagającego jest robot
aktualnie posiadający piłkę. Jeżeli jednak odległość między tymi robotami zmniejszy
się poniżej określony poziom (wartość ta również zależy od środowiska działania
12
algorytmu), robot pomagający zostaje zatrzymany. Celem tego zadania jest ustawienie
robotów tak, aby w przypadku oddania niecelnego strzału lub podania zwiększyć szansę
przejęcia piłki.
Nie opisano sposobów realizacji zadań oddawania strzału i blokowania strzału. Będą one
tematem następnego rozdziału.
13
Poprawa efektywności działania
Rodzaje uczenia drużyny robotów
Uczenie drużyny robotów można wstępnie podzielić ze względu na cel. Pierwsza grupa metod
ma na celu nauczenie robotów optymalnych zachowań w każdej możliwej sytuacji,
zapamiętanie ich w bazie wiedzy i wykorzystywanie w czasie gry. Takie podejścia opisano
m. in. w [3] i [9]. Druga grupa metod ma na celu poprawę efektywności istniejących metod, w
zależności od konkretnego przeciwnika. W tym celu prawie zawsze stosowane jest uczenie ze
wzmocnieniem. W [2] przedsawiono podział na cztery rodzaje uczenia ze wzmocnieniem w
systemach wieloagentowych:
Centralne uczenie ze wzmocnieniem
Agentem uczącym się jest w tej sytuacji system sterowania. Przestrzeń stanów
stanowią wszystkie możliwe stany całego środowiska natomiast przestrzeń akcji
stanowią możliwe przydziały zadań do agentów działających w środowisku. Wadą
tego typu rozwiązania jest bardzo duża liczność przestrzeń stanów a co za tym idzie,
powolny proces uczenia.
Indywidualne uczenie ze wzmocnieniem
W tym przypadku każdy agent jest agentem uczącym się. Ponadto, każdy z nich działa
tak, aby maksymalizować swoją nagrodę, nie zważając na preferencje innych
agentów. Proces uczenia w tej sytuacji zachodzi szybko, lecz ze względu na
samolubność agentów ciężko jest osiągnąć globalny cel systemu.
Grupowe uczenie ze wzmocnieniem
Ten rodzaj stanowi modyfikację poprzedniego. Każdy agent uczy się indywidualnie,
jednak bierze pod uwagę również stany wszystkich innych agentów. Każdy agent
wybiera akcję tak, aby maksymalizować globalną nagrodę. Jednak rozmiar przestrzeni
stanów sprawia, że proces uczenia się staje się bardzo powolny.
Społeczne uczenie ze wzmocnieniem
Społeczne uczenie ze wzmocnieniem jest kombinacją indywidualnego uczenia ze
wzmocnieniem i różnych modeli społecznych w celu zamodelowania zależności
pomiędzy agentami tak, aby każdy agent podczas uczenia brał pod uwagę jedynie
stany tych agentów, z którymi jest powiązany jakimiś zależnościami.
14
W przypadku drużyny robotów grających w piłkę nożną, zastosowano pierwsze trzy rodzaje.
Zaletą centralnego uczenia ze wzmocnieniem jest możliwość ulepszania metod przydziału
zadań w trakcie meczu, co może mieć istotny wpływ na zmianę zachowania całej drużyny.
Indywidualne uczenie ze wzmocnieniem jest stosowane, ponieważ zależności między
robotami o różnych rolach są niewielkie, a poprawa efektywności wykonywania
poszczególnych zadań jest zbieżna z globalnym celem drużyny. Grupowe uczenie ze
wzmocnieniem jest stosowane do zapewnienia koordynacji działań robotów. Ponieważ
robotów jest niewiele, rozmiar przestrzeni stanów nie blokuje procesu uczenia.
Centralne uczenie ze wzmocnieniem
Centraly system uczenia ze wzmocnieniem, którego celem jest nauczenie wybierania
optymalnej strategii w zależności od sytuacji na boisku opisano w [5]. Cały system
sterowania składa się z czterech modułów: moduł wyboru strategii, moduł przydziału ról,
moduł przydziału zadań i moduł uczenia. Przydział ról jest zależny od wybranej strategii, a
przydział zadań jest zależny od przydzielonej roli. Tak więc wybór strategii determinuje
zachowania robotów na boisku. W opisywanym systemie w celu wyznaczenia przestrzeni
stanów boisko zostało podzielone na 9 stref, zdyskretyzowano przestrzeń kierunków ruchu
piłki do czterech (ponadto piąty, gdy piłka się nie porusza), co w rezultacie daje przestrzeń 45
stanów. Przestrzenią akcji jest zbiór zdefioniowanych stratgii. Funkcja nagrody jest opisana
następująco: jeżeli w trakcie wykonywania strategii drużyna strzeli bramkę, zyskuje nagrodę
równą 1; jeżeli straci bramkę – otrzymuje karę równą –1. W pozostałych przypadkach
nagroda jest równa 0. Dysponując przestrzeniami stanów i akcji oraz funkcją nagrody,
zastosowano algorytm Q-learning. Autorzy systemu przetestowali swój system na
symulatorze w meczu przeciwko drużynom stosującym pojedynczą strategię. Rezultat testu
okazał się pomyślny – wraz z liczbą meczy malała liczba porażek i rosła liczba zwycięstw
systemu uczącego się.
Grupowe uczenie ze wzmocnieniem
We wstępie do tego rozdziału stwierdzono, że główną wadą grupowego uczenia ze
wzmocnieniem jest bardzo duży rozmiar przestrzeni stanów. Rozmiar ten rośnie wykładniczo
wraz z liczbą agentów w środowisku. Badania prowadzone są zatem w kierunku zmniejszania
tej przestrzeni. W [5] przedstawiono algorytm grupowego uczenia ze wzmocnieniem,
wykorzystujący rozmyte (ang: fuzzy) Q-learning. Algorytm ten posługuje się nie stanami,
a funkcjami przynależności do stanów, co pozwala mu działać w ciągłej przestrzeni stanów
15
i jednocześnie przechowywać tablicę Q o skończonym rozmiarze. Różnicą w stosunku do
oryginalnego algorytmu Q-learning jest fakt aktualizowania więcej niż jednej wartości funkcji
Q(s,a), w zależności od wartości funkcji przynależności do konkretnych stanów. W
opisywanym systemie każdy agent działa niezależnie, jednak wyposażony jest w moduł
koordynatora. Moduł koordynatora jest wspólny dla wszystkich agentów. Umożliwia to
dowolnemu agentowi i sprawdzenie, jaką akcję wykona dowolny inny agent j (wynika to
z faktu, że każdy agent podejmuje decyzje w ten sam sposób, bazując na tej samej tabeli).
Każdy agent może zatem zasymulować wykonanie akcji przez innych agentów i odpowiednio
zmodyfikować swoją akcję. Każdy agent przedstawia własną, wywnioskowaną wersję
zachowań wszystkich agentów w środowisku do modułu koordynatora, który wybiera wersję,
która zapewnia maksymalizację globalnej nagrody. Autorzy artykułu przeprowadzili
eksperymenty, które wykazują, że stosowanie tej metody uczenia zapewnia większą liczbę
zwycięstw przeciwko drużynie stosującej losową strategię, niż wtedy, gdy tej metody się nie
stosuje.
Indywidualne uczenie ze wzmocnieniem
Indywidualne uczenie może być wykorzystane w drużynie robotów grających w piłkę
nożną w celu nauczenia robotów wykonywania efektywnego zadań oraz ewentualnej poprawy
efektywności tych zadań w czasie meczu. Robota można uczyć strzelania [3], [9], ustawienia
robotów na boisku [4], [9], a także podawania. Warto dodać, że w tym przypadku może być
stosowane nie tylko uczenie ze wzmocnieniem, ale także inne metody: uczenie z nadzorem
poprzez tworzenie sztucznej sieci neuronowej [9] lub poprzez budowę drzewa decyzjnego [3].
Uczenie ze wzmocnieniem jest jednak najpopularniejszym podejściem.
W [4] opisano algorytm uczenia ze wzmocnieniem, którego celem jest nauczenie
robotów poprawnego ustawiania się na boisku. Jest on stosowany zarówno dla robota
będącego obrońcą, jak i dla robotów pełniących role pomocników. Opisany algorytm jako
przestrzenią stanów posługuje się kombinacjami położenia, kierunku i prędkości piłki (ich
zdyskretyzowanymi wartościami). Natomiast jako przestrzeń akcji wykorzystywane są
możliwe akcje zarówno drużyny własnej, jak i przeciwnej. Funkcja wzmocnienia przyznaje
agentom nagrody za zdobywanie bramek i kary za ich tracenie. Przedstawione przestrzenie
stanów i akcji, wraz z funkcją wzmocnienia użyte są w zmodyfikowanym algorytmie Qlearning. Modyfikacja polega na dodaniu nowego wymiaru do tablicy Q, który reprezentuje
akcje wykonywane przez drużynę przeciwną, oraz dodanie pamięci do algorytmu.
16
Uczenie w projektowanym systemie sterowania drużyną
W projektowanym systemie sterowania drużyną zdecydowano się zastosować
indywidualne uczenie ze wzmocnieniem. Uznano, że najlepiej pasuje ono do specyfiki
projektowanego systemu. Ze względu na fakt, że zarówno przydział ról jak i przydział zadań
do robotów zależne są od zewnętrznych danych przygotowywanych przez projektantów, które
mogą być zmieniane nawet w czasie przerwy meczu, użycie centralnego uczenia ze
wzmocnieniem jest bezcelowe, ze względu na czas potrzebny do nauczenia się najlepszych
zachowań. Obserwator meczu jest w stanie zauważyć błędy w strategii i dokonać niezbędnych
korket w czasie przerwy. Ze względu na istnienie modułu rozwiązującego konflikty nie ma
potrzeby stosować grupowego uczenia ze wzmocnieniem. Natomiast zastosowanie
indywidualnego uczenia ze wzmocnieniem do uczenia robotów pojedynczych zachowań
szybko daje pozytywne efekty, nie powoduje konfliktów między robotami i jest zgodne
z globalnym celem drużyny.
Zdecydowano zastosować indywidualne uczenie do zadań obrony bramki, strzelania
na bramkę przeciwnika i podawania piłki. W każdym przypadku zastosowany będzie
algorytm uczenia ze wzmocnieniem. Jego podstawowym celem jest poprawa efektywności
wykonywania zadań, pobocznym zaś nauczenie podstawowych metod wykonywania tych
zadań podczas sesji treningowych. Przyczyną, dla której przyjęto takie założenia jest fakt, że
drużyna musi dostosowywać swoją strategię do zachowań przeciwnika, które nie są znane.
Ponadto dynamika środowiska uniemożliwia dokładne analizy sytuacji i podejmowanie
decyzji dopiero w momencie, gdy uzyska się pewność co do jej słuszności. Jako przykład
niech rozważona będzie sytuacja, w której robot drużyny przeciwnej jedzie z piłką i bramkarz
musi podjąć decyzję o odpowiednim ustawieniu się. Jeżeli rozpoczęta zostanie analiza toru
lotu piłki po kopnięciu jej przez przeciwnika, i rozpoczęcie ruchu dopiero gdy obliczona
będzie odpowiednia pozycja, bramkarz nie ma szans zdąrzyć przed piłką. Dlatego decyzja
musi być podjęta najszybciej jak to możliwe – bramkarz rozpoczyna ruch jeszcze przed
oddaniem strzału. Ponieważ przeciwnik posługuje się pewną strategią, bramkarz może się jej
nauczyć i po krótkim czasie podejmować właściwe decyzje, zapobiegające utracie bramki.
17
Bibliografia
[1]
Achiwa H., Maeno J., Tamaki J., Suzuki S, Moribayasi T., Murakami K., Naruse T.,
RoboDragons
Team
Description
Paper,
http://small-size.informatik.uni-
bremen.de/tdp/etdp2009/small_robodragons.pdf, 2009.
[2]
Fan B., Pu J., Distributed Multi-agent Reinforcement Learning and Its Application to Robot
Soccer, 2008 International Workshop on Education Technology and Training & 2008
International Workshop on Geoscience and Remote Sensing, 2008
[3]
Farahnakian F., Mozayani N., Learning through Decision Tree in Simulated Soccer
Environment, 2008 International Conference on Computational Intelligence and Security, 2008,
68 – 70
[4]
Kao-Shing H, Jeng-Yih Ch, Tse-Yu Ch.; Cooperative Reinforcement Learning Based on ZeroSum Games; w: „SICE Annual Conference”, 2008, 2973–2976.
[5]
Kao-Shing H., Reinforcement Learning in Strategy Selection for a Coordinated Multirobot
System, IEEE Transactions On Systems, Man, And Cybernetics—Part A: Systems And
Humans, Vol. 37, No. 6, 2007
[6]
Peng J, Liu M., Liu J., Lin K., and Wu M., A Coordination Model Using Fuzzy Reinforcement
Learning for Multi-agent System, Collaborative Technologies and Systems, 2007. CTS 2007,
129 - 136
[7]
Reguły gry w lidze RoboCup SmallSize z 2010 r. http://small-size.informatik.unibremen.de/_media/rules:ssl-rules-2010.pdf, 2010.
[8]
Rogala K. Praca dyplomowa inżynierska, Wydział Elektroniki i Technik Informacyjnych, 2010
[9]
Shi L., Jiang Chen., Zhen Y., Zengqi S. Learning Competition in Robot Soccer Game based on
an Adapted Neuro-Fuzzy Inference System, International Symposium on Intelligent Control,
2001, 195 – 199.
[10] Srisabye J., Wasuntapichaikul P., Onman C., Sukvichai K., Damyot S, Munintarawong T.,
Phuangjaisri P. Tipsuwan Y., Skuba Team Description Paper, http://small-size.informatik.unibremen.de/tdp/etdp2009/small_skuba.pdf, 2009.
[11] Strona główna projektu RoboCup: http://www.robocup.org/
[12] Strona główna ligi RoboCup SmallSize, http://small-size.informatik.uni-bremen.de/
[13] Zhou T., Hong B., Shi C., Zhou H. Cooperative Behavior Acquisition Based Modular Q
Learning In Multi-Agent System, Proceedings of the Fourth International Conference on
Machine Learning and Cybernetics, Guangzhou, 2005
[14] Zickler S., Bruce J., Biswas J., Licitra M., Veloso M., CMDragons Team Description Paper,
http://small-size.informatik.uni-bremen.de/tdp/etdp2009/small_cmdragons.pdf, 2009.
18

Podobne dokumenty