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