Obliczenia równoległe w General Game Playing



Podobne dokumenty
POŁĄCZENIE ALGORYTMÓW SYMULACYJNYCH ORAZ DZIEDZINOWYCH METOD HEURYSTYCZNYCH W ZAGADNIENIACH DYNAMICZNEGO PODEJMOWANIA DECYZJI

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

MAGICIAN. czyli General Game Playing w praktyce. General Game Playing

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

Task Parallel Library

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Programowanie współbieżne Wykład 2. Iwona Kochańska

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1

Tworzenie gier na urządzenia mobilne

Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych

Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1

Analiza ilościowa w przetwarzaniu równoległym

Obliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Algorytmy równoległe: prezentacja i ocena efektywności prostych algorytmów dla systemów równoległych

5. Model komunikujących się procesów, komunikaty

Seminarium Zakładowe IDSS. Równoległe obliczenia metaheurystyczne z wykorzystaniem klastra obliczeniowego

Sieci Komputerowe 2 / Ćwiczenia 2

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Mechanizmy pracy równoległej. Jarosław Kuchta

Równoległość i współbieżność

Równoległość i współbieżność

Spis treści. Przedmowa... XI. Rozdział 1. Pomiar: jednostki miar Rozdział 2. Pomiar: liczby i obliczenia liczbowe... 16

Przedsiębiorczość i Podejmowanie Ryzyka. Zajęcia 1

MiNI-Player podsumowanie dotychczasowych badao

Risk-Aware Project Scheduling. SimpleUCT

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Wykład 1. Systemy przekazywania wiadomości z założeniem bezbłędności działania

Obrona rozprawy doktorskiej Neuro-genetyczny system komputerowy do prognozowania zmiany indeksu giełdowego

Algorytmy metaheurystyczne Wykład 6. Piotr Syga

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

Inżynieria oprogramowania. Część 8: Metoda szacowania ryzyka - PERT

Sortowanie. Bartman Jacek Algorytmy i struktury

Numeryczna algebra liniowa

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

Metody uporządkowania

Architektura komputerów

Analiza efektywności przetwarzania współbieżnego. Wykład: Przetwarzanie Równoległe Politechnika Poznańska Rafał Walkowiak Grudzień 2015

Algorytmy i schematy blokowe

Modelowanie niezawodności prostych struktur sprzętowych

O badaniach nad SZTUCZNĄ INTELIGENCJĄ

Przykładowa konfiguracja konta pocztowego w programie Outlook Express z wykorzystaniem MKS 2k7 (MS Windows 2000 Proessional)

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source

Modelowanie jako sposób opisu rzeczywistości. Katedra Mikroelektroniki i Technik Informatycznych Politechnika Łódzka

Wydajność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Sztuczna Inteligencja i Systemy Doradcze

Algorytmy i Struktury Danych

KODY SYMBOLI. Kod Shannona-Fano. Algorytm S-F. Przykład S-F

Stan globalny. Krzysztof Banaś Systemy rozproszone 1

Zrównoleglona optymalizacja stochastyczna na dużych zbiorach danych

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

Weryfikacja hipotez statystycznych, parametryczne testy istotności w populacji

SYSTEMY UCZĄCE SIĘ WYKŁAD 10. PRZEKSZTAŁCANIE ATRYBUTÓW. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska.

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

Marcel Stankowski Wrocław, 23 czerwca 2009 INFORMATYKA SYSTEMÓW AUTONOMICZNYCH

Algorytmy metaheurystyczne Wykład 11. Piotr Syga

Systemy wbudowane. Uproszczone metody kosyntezy. Wykład 11: Metody kosyntezy systemów wbudowanych

PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew

O badaniach nad SZTUCZNĄ INTELIGENCJĄ

Skalowalna Platforma dla eksperymentów dużej skali typu Data Farming z wykorzystaniem środowisk organizacyjnie rozproszonych

Tryby komunikacji między procesami w standardzie Message Passing Interface. Piotr Stasiak Krzysztof Materla

Instrukcja projektowa cz. 2

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Wstęp do teorii niepewności pomiaru. Danuta J. Michczyńska Adam Michczyński

O badaniach nad SZTUCZNĄ INTELIGENCJĄ

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012

Porównanie rozwiązań równowagowych Stackelberga w grach z wynikami stosowania algorytmu UCT

Wyznaczanie strategii w grach

Wprowadzenie. Co to jest klaster? Podział ze względu na przeznaczenie. Architektury klastrów. Cechy dobrego klastra.

Brain Game. Wstęp. Scratch

Programowanie genetyczne, gra SNAKE

SYSTEMY OPERACYJNE LABORATORIUM 2014/2015

General Game Playing. Aktualnie stosowane algorytmy i metody konstrukcji agentów

5. Algorytm genetyczny przykład zastosowania

Algorytmy Komunikacyjne dla Trójwymiarowych Sieci Opartych na Plastrze Miodu. Ireneusz Szcześniak. Politechnika Śląska 20 czerwca 2002 r.

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1

Przykładowa konfiguracja konta pocztowego w programie Thunderbird z wykorzystaniem MKS 2k7 (MS Windows Vista Busissnes)

< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 >

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

Przesyłania danych przez protokół TCP/IP

Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1

Elementy inteligencji obliczeniowej

Stworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku.

Strefa pokrycia radiowego wokół stacji bazowych. Zasięg stacji bazowych Zazębianie się komórek

Mixed-UCT: Zastosowanie metod symulacyjnych do poszukiwania równowagi Stackelberga w grach wielokrokowych

Algorytmy wyznaczania centralności w sieci Szymon Szylko

Heurystyki. Strategie poszukiwań

CogGGP kognitywnie inspirowany agent GGP podejście nr 1 wyniki eksperymentalne

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Pliki zorganizowano w strukturze drzewiastej odzwierciedlając strukturę logiczną aplikacji:

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Problemy Decyzyjne Markowa

Czas w systemach rozproszonych. Krzysztof Banaś Systemy rozproszone 1

Uniwersalny Konwerter Protokołów

MAGICIAN: GUIDED UCT. Zastosowanie automatycznie generowanej funkcji oceny w GGP

Elementy kognitywistyki III: Modele i architektury poznawcze

Przypadki testowe. Spis treści. Plan testów. From Sęp. Wstęp. 2 Plan testów

Transkrypt:

Obliczenia równoległe w General Game Playing promotor: prof. dr hab. Jacek Mańdziuk 1/66

Plan Krótkie przypomnienie GGP/MiNI-Player Motywacja Pomysł 2012 Pomysł 2013 Porównanie Podsumowanie 2/66

General Game Playing [GGP] Idea, aby jeden gracz grał w wiele gier Uniwersalne metody (nauki, reprezentacji wiedzy, abstrakcyjnego rozumowania, wybierania akcji) Powrót do podstaw AI przeniesienie odpowiedzialności za stosowanie inteligentnych algorytmów analizy gier z programisty na program 3/66

General Game Playing [GGP] General Game Playing Competition Nazwa konkursu organizowanego przez Stanford Logic Group od 2005 roku, w ramach konferencji AAAI (IJCAI w 2011) Obiektywne środowisko testowe Nagroda 10 000 USD dla zwycięzcy 4/66

Mistrzowie świata GGP 2005: Cluneplayer, USA 2006: Fluxplayer, Niemcy 2007: CadiaPlayer, Islandia era Monte-Carlo 2008: CadiaPlayer, Islandia 2009: Ary, Francja 2010: Ary, Francja 2011: TurboTurtle, USA 2012: CadiaPlayer, Islandia 5/66

General Game Playing Komunikacja: START PLAY STOP ABORT, PING Limity czasowe: START CLOCK PLAY CLOCK 6/66

Wymiana komunikatów 7/66

Język opisu reguł gier Game Description Language (GDL) Język oparty na logice pierwszego rzędu Wariant Dataloga, wielu uczestników korzysta z kompilatorów ogólniejszego języka: Prologa Klasa reprezentowanych gier (GDL-I): skończone deterministyczne synchroniczne 8/66

MiNI-Player 9/66

MiNI-Player Agent GGP wystawiany przez nas Brał udział w konkursie GGP Competition 2012 Szczegółowy opis: seminarium 12/03 MiNI-Player podsumowanie dotychczasowych badań 10/66

MiNI-Player główne aspekty Interpretacja reguł Algorytmy przeszukiwania drzewa: MCTS o Wybór kontynuacji podczas konstrukcji drzewa o Wybór akcji do zagrania Strategie gry (Monte-Carlo playout policies) Moduł wyboru strategii Zrównoleglenie Komunikacja 11/66

MiNI-Player główne aspekty 12/66

MiNI-Player główne aspekty Selekcja: w każdym węźle rozpoczynając od wierzchołka wybieramy najlepszego potomka do kontynuacji przeszukiwania (tu: algorytm UCT). Rozwinięcie: tworzymy nowy węzeł Symulacja: gramy zgodnie z wyznaczoną do symulacji strategią aż do osiągnięcia stanu terminalnego Propagacja wsteczna: uaktualniamy statystyki średni wynik oraz liczbę odwiedzin w każdym węźle na ścieżce, którą wybraliśmy 13/66

Motywacja zrównoleglania obliczeń 14/66

Po co zrównoleglać? (5 powodów) 1. Większość programów wykorzystuje przeszukiwanie (konstrukcję) drzewa gry. Ilość odwiedzonych stanów jest ważnym wyznacznikiem jakości gry zwłaszcza w podejściach typu Monte-Carlo. Podejścia symulacyjne: im więcej przeprowadzonych symulacji, tym bardziej adekwatna ocena akcji/stanów. 15/66

Po co zrównoleglać? 2. Wszyscy zrównoleglają... Jest niemal pewne, że konkurenci w mistrzostwach GGP uruchamiają programy na potężnym sprzęcie (CadiaPlayer, Ary, TurboTurtle, Maligne). Trzeba jechać tym samym pociągiem Zrównoleglenie jest prawdopodobnie koniecznością, aby nie pozbawić się szansy walki o mistrzostwo. 16/66

Po co zrównoleglać? 3. Najmocniejsi gracze komputerowi w przełomowych pojedynkach i konkursach są uruchamiani w środowiskach zrównoleglonych. 17/66

Po co zrównoleglać? 4. Moc obliczeniowa jest coraz tańsza. ROK PRZYBLIŻONA CENA 1 GFLOPS (w rzeczywistej maszynie) CENA 1 GFLOPS /uwzględnienie inflacji 1984 15 000 000$ 33 000 000$ 1997 30 000$ 42 000$ 04.2000 1000$ 1300$ 08.2003 82$ 52$ 08.2012 0.75$ 0.73$ 5. Możliwość testowania algorytmów i metod związanych ze zrównoleglaniem obliczeń dodatkowa wartość twórcza. 18/66

Które etapy można zrównoleglać? Odpowiedź: wszystkie. Etap selekcji (operacje na drzewie, wyznaczanie kolejnej strategii) Symulacja wielowątkowa Wiele symulacji jednocześnie Uaktualnianie wyników (w znikomy sposób) Wyznaczanie stanów zrównoleglenie interpretera 19/66

Które etapy warto zrównoleglać? Odpowiedź: należy znaleźć najdłużej trwające niezależne operacje, w ramach których nie potrzeba synchronizacji trzeba dostosować się do danego problemu Synchronizacja rozumiana jako: potrzeba użycia współdzielonego zasobu zależność danych wejściowych pewnej równoległej operacji od wyniku innej operacji 20/66

Które etapy warto zrównoleglać? Etap selekcji (operacje na drzewie, wyznaczanie kolejnej strategii) Symulacja wielowątkowa Wiele symulacji jednocześnie Uaktualnianie wyników (w znikomy sposób) Wyznaczanie stanów zrównoleglenie interpretera 21/66

Podstawowe metody zrównoleglania MCTS Leaf Parallelization Tree Parallelization Root Parallelization On the Parallelization of UCT Cazenave, Jouandeau W GGP dwie prace związane z graczem Ary: [1] Tree Parallelization of Ary on a Cluster [2] A Parallel General Game Player Jean Mehat, Tristan Cazenave 22/66

Leaf Parallelization Zwane również At-the-leaves Parallelization Tylko jeden wątek ma dostęp do drzewa gry, czyli jego przeszukiwania i rozbudowy W momencie, gdy metoda wybierze nowy węzeł do kontynuacji: Zamiast pojedynczej losowej symulacji, rozgrywanych jest N symulacji równolegle. Wyniki są sumowane/uśredniane. 23/66

Tree Parallelization Zwane również Multiple-Runs Parallelization Jeden główny wątek Jedno drzewo gry Wiele wątków podgraczy (subplayer) W publikacji [1] podgraczem był cały komputer dostępny przez TCP/IP, traktowany jako jeden wątek taki komputer wykonywał tylko jedną symulację w danym momencie. 24/66

Tree Parallelization Gdy główny wątek wyznaczy stan do kontynuacji: pobierany jest kolejny wolny subplayer przekazywane są mu niezbędne dane: pełny stan gry (reguły otrzymał na początku) subplayer przeprowadza symulację i zwraca wynik Virtual Loss W przypadku, gdy każdy subplayer jest zajęty, symulację wykonuję główny wątek. 25/66

Root Parallelization Zwane również Single-Run Parallelization Wiele równorzędnych wątków wykonujących swoje algorytmy UCT Każdy wątek posiada swoje drzewo UCT Jeden główny wątek wyróżniony tylko po to, aby komunikować się z GameMasterem 26/66

Root Parallelization Pod koniec dostępnego czasu, główny wątek zbiera sumaryczne wyniki od reszty wątków W oryginalnej, najprostszej wersji następuje uśrednienie wyników (suma / liczba odwiedzin) Metoda stosowana w programie do gry w Go: CrazyStone. 27/66

Podejście MiNI-Player 2012 28/66

MiNI-Player 2012 Dwie instancje programu: Master [singleton, uruchomiony na jednym komputerze] Slave [x3, na pięciu pozostałych komputerach] proces Master ma pełną informację o ilości dostępnych procesów Slave i ich adresach procesy typu Slave nasłuchują na połączenia od Master 29/66

Plik konfiguracyjny <czy proces jest Master czy Slave> <lokalny adres do nasłuchiwania połączeń> <max ilość wątków do wykorzystania> <zdalny adres #1> <zdalny adres #2>... opcjonalnie <zdalny adres #N> 30/66

Master process Jeden główny wątek GUI; event-driven po upływie odpowiedniego czasu pojawia się zdarzenie Max N wątków lokalnych (lokalnych robotników) Max M wątków zdalnych (do obsługi połączeń) N, M liczby z pliku konfiguracyjnego Wątki są typu long-running thread. Raz utworzone istnieją do zakończenia procesu lub gdy logika programu je wyłączy (same się nie kończą). 31/66

Master process wątek GUI Czekaj na wiadomość START Po otrzymaniu START: Zapisz podstawowe dane (rola, limity czasowe) Inicjalizuj puste drzewo gry i inne niezbędne struktury Utwórz N wątków lokalnych (lokalnych robotników) przekaż każdemu reguły gry i nazwę roli każdy wątek lokalny tworzy swój Interpreter Reguł i Symulator Gry [PO 1000 milisekundach] uruchom algorytm skalowania 32/66

Wątek lokalny Inicjalizacja (interpretera, symulatora) while(true) { If(httpResponseTime) EnableProcessing(); if(node!= null) DoWork(); lock(tree) { if(node!= null) Update(node, strategy, result); Application.DoEvents(); Sleep(100); result = Simulate(node, strategy); tree.update(node, result); strategyevaluator.update(strategy, result); } } PrepareContinuation(); node = tree.computecontinuation(); strategy = evaluator.getnextstrategy(); 33/66

Wątek obsługi zdalnej Inicjalizacja (interpretera, połączenia) while(true) { If(httpResponseTime) EnableProcessing(); } if(node!= null) DoWork(); lock(tree) { if(node!= null) Update(node, strategy, result); } PrepareContinuation(); Application.DoEvents(); Sleep(100); requestmsg = Serialize(node.State); requestmsg Append(node.Depth, strategy); SendMessage(requestMsg ); responsemsg = ReceiveMessage(); result = Deserialize(responseMsg); tree.update(node, result); strategyevaluator.update(strategy, result); node = tree.computecontinuation(); strategy = evaluator.getnextstrategy(); 34/66

Sekcja krytyczna - UCT 1. Najpierw próbujemy każdy automat raz 2. Następnie według wzoru: a = arg max a A(s) Q(s, a) + C ln N(s) N(s, a) a* - akcja do wybrania s - bieżący stan Q(s,a) - średni wynik gry przy wykonaniu akcji a w stanie s N(s) - liczba dotychczasowych odwiedzin stanu s N(s,a) - liczba dotychczasowych wyborów akcji a w stanie s 35/66

Algorytm skalowania W General Game Playing jest jeden główny czynnik wpływający na wydajność zrównoleglania: Średni czas symulacji Monte-Carlo od stanu początkowego do terminalnego. Niestety, w przeciwieństwie do programów specjalizowanych do gry w konkretne gry, wartość jest zmienna zależnie od podanych reguł gry. 36/66

Algorytm skalowania Uruchamiany po 1 sekundzie od rozpoczęcia symulacji. Dobrany empirycznie na sprzęcie na konkurs 2012 na podstawie zbioru ponad 20 gier. W zależności od uzyskanej liczby symulacji: Wyłączanych jest N 0 wątków lokalnych Uruchamianych jest N 0 wątków obsługujących połączenia Programy zdalne (SlaveProcess) otrzymują parametr RemoteSimUnit, który oznacza ile symulacji mają wykonać przed zwróceniem wyniku (zwracany wynik jest uśrednionym wynikiem z wykonanych symulacji) 37/66

Algorytm skalowania Uruchamiany po 1 sekundzie od rozpoczęcia symulacji. Dobrany empirycznie na sprzęcie na konkurs 2012 na podstawie zbioru ponad 20 gier. Liczba symulacji po 1 sekundzie Liczba wątków (N) Liczba połączeń (M) Liczba symulacji zdalnych (RemoteSimUnit) > 10000 2 0 - (6500, 10000] 5 0 - (4000, 6500] MAX 33% 4 (250, 4000] MAX 100% 4 (33, 250] MAX 100% 2 [0, 33] MAX 100% 1 38/66

Obserwacje Czas komunikacji sieciowej w połączeniu z częstością dostępu do drzewa wpływają na różną jakość skalowania dla różnych gier. Procentowe porównanie liczby symulacji* Liczba komputerów Connect-4 Suicide Checkers 1 100% (1.000) 100% (1.000) 2 161% (0.805) 183% (0.915) 3 210% (0.700) 270% (0.900) 4 273% (0.682) 361% (0.902) 5 313% (0.626) 442% (0.884) 6 324% (0.540) 519% (0.865) 39/66

Podsumowanie podejścia Próba rozszerzenia możliwości pojedynczej maszyny. budowanie możliwie głębokiego drzewa, aby przyspieszyć zbieżność algorytmu UCT tylko jedno drzewo gry w całym systemie rozproszonym częsta synchronizacja z drzewem dość spory narzut komunikacyjny Podejście ma swoje wady i zalety. 40/66

Podsumowanie podejścia Zalety: Wszystkie symulacje pracują na jedno drzewo, więc szansa, że będzie głębsze niż w innych podejściach (lepsza zbieżność) Bardzo dobra metoda dla wolnych symulacji, mniej więcej > 150ms Skalowanie gwarantuje również prawieoptymalność dla symulacji, gdzie optimum to 1-2 wątki (na mistrzostwach nie należy się spodziewać tak prostych gier) 41/66

Podsumowanie podejścia Problemy: Duża liczba wątków na głównym komputerze Duży narzut na komunikację i mało perspektywiczny limit Silna zależność od średniego czasu wykonania jednej symulacji w danej grze źle się skaluje dla pewnego przedziału szybkości wykonania symulacji [mniej więcej między od 5ms do 100ms] Mimo starań, nie do końca wykorzystana moc obliczeniowa komputerów zdalnych 42/66

Podejście MiNI-Player 2013 43/66

Zmiana koncepcji Ponieważ: [A] wydajność obliczeń równoległych w ramach jednej maszyny okazuje się do tej pory zadowalająca [B] symulacje Monte-Carlo ze strategiami są quasi-losowe Pomysł, żeby maszyny komunikowały się tylko na początku i na końcu dostępnego czasu. [A] każda maszyna wykonuje obliczenia niezależnie [B] przed wykonaniem ruchu następuje agregacja wyników 44/66

Model hybrydowy Tree Parallelization + Root Parallelization Tree Parallelization lokalnie, w obrębie każdej maszyny Root Parallelization globalnie, pomiędzy komputerami [Root Parallelization pomysł niezależny, co może dowodzić, że metoda jest intuicyjna] 45/66

Zmiany implementacyjne Uproszczenie architektury być może będzie udostępniony kod na zasadzie GNU GPL. Użycie Task Parallel Library (TPL) w.net Framework 4.5 Wątki tworzone są na czas wykonania zadań i sprzętowo wywłaszczane, gdy skończy się dostępny czas. Zredukowanie ryzyka, że główny wątek nie zdąży odpowiedzieć. Wspólny kod - każda instancja programu dziedziczy z jednej klasy NodeProgram. Bardzo mało kodu specjalizowanego dla konkretnego typu węzła. 46/66

Komunikacja GameMaster 1 2 4 3 Master-Node Worker-Node 47/66

Legenda - Interfejs przesyłania wiadomości od GM (START, STOP, PLAY) - Interfejs odbierania wiadomości od GM (START, STOP, PLAY) - Interfejs wysyłania zagregowanych danych symulacji dla węzłów na poziomie dzieci korzenia (potencjalnych następnych stanów) - Interfejs odbierania zagregowanych danych symulacji dla węzłów na poziomie dzieci korzenia (potencjalnych następnych stanów) - Interfejs wysyłania odpowiedzi do GM 48/66

Master-Workers Master-Node Worker-Node 49/66

Master-Hubs-Workers Master-Node Hub-Node Worker-Node 50/66

Master-Hub-Node Master-Node Hub-Nodes Worker-Nodes 51/66

Skalowalność podejścia Dwie kwestie, które można rozróżnić: 1. Wykorzystanie mocy obliczeniowej i.e. wzrost całkowitej liczby symulacji wraz z dokładaniem komputerów 2. Zależność poprawy jakości gry od dodawania kolejnych komputerów 52/66

Skalowalność podejścia [1] Wykorzystanie mocy obliczeniowej Czynnikiem hamującym jest jedynie współczynnik opóźnienia wymagany do komunikacji pomiędzy warstwami (aby nie zgubić wyników). Metoda pozwala na zbudowanie platformy bardzo wydajnie wykorzystującej moc Ustawienie liczby poszczególnych węzłów, połączeń oraz opóźnień: to już kwestia dopasowania do konkretnego sprzętu (klastra, serwerów, sali laboratoryjnej) 53/66

Skalowalność podejścia [2] Skalowanie siły gry W teorii: Jakość gry powinna rosnąć wraz z dodawaniem maszyn Punkt nasycenia powinien być daleko, ze względu na znikomy narzut komunikacyjny wraz z dodawaniem kolejnych komputerów W praktyce: Efekt skalowalności zależy od gry Pokażą testy 54/66

Skalowalność liczby symulacji - rozważania Załóżmy, że mamy dowolnie dużą liczbę komputerów. Załóżmy, że każdy węzeł Master/Worker może wydajnie obsłużyć: 4 lokalne wątki robotników Załóżmy, że każdy komputer Master/Hub może wydajnie obsłużyć: 12 połączeń od komputerów zdalnych Pytanie: Ile maksymalnie komputerów możemy wykorzystać przy: a) Braku warstwy pośredniej (HubNode) b) Jednej warstwie pośredniej (HubNode) c) Dwóch warstwach pośrednich (HubNode) Ile w każdym przypadku maksymalnie działa wątków robotników? 55/66

Skalowalność liczby symulacji - rozważania Odpowiedź: Warstw pośrednich Maksymalna liczba komputerów Sumaryczna liczba dostępnych wątków 0 13 52 1 157 580 2 1885 6912 Dla jednej warstwy i innych parametrów: Parametr sprzętu Maksymalna liczba komputerów Sumaryczna liczba dostępnych wątków 3 8 73 195 12 24 601 6924 56/66

Otwarte kwestie 1/2 W jaki sposób agregować wyniki uzyskane z komputerów zdalnych? proste uśrednianie uśrednianie zgodnie z ustaloną wagą np. ważności węzłów głosowanie (majority voting) inne metody rankingowe lub z teorii podejmowania decyzji 57/66

Otwarte kwestie 2/2 Co agregować? średni wynik Q i liczbę symulacji V na poziomie węzłów dzieci-korzenia współczynnik EV (i w jaki sposób) dane z niższych poziomów w drzewie?...? 58/66

Zmodyfikowana formuła wyboru ruchu (EV) MiNI-Player korzysta ze zmodyfikowanej formuły EQ, która wykorzystuje dane z 2 poziomów w drzewie Wybrany zostaje potomek Root.Child[i] o największej wartości EQ 59/66

Zmodyfikowana formuła wyboru ruchu (EV) Our liczba unikalnych akcji naszego gracza Total liczba wszystkich dostępnych akcji łączonych (joint moves) Iterujemy po węzłach wychodzących z korzenia: Warunek w węźle EQ Stan terminalny = TRUE EQ = node. Q (1.01 node. Q) Our = 1 1 < Our < Total Our = Total EQ = min (node. Child i. Q) i=1 N EQ = min (node. Child i. Q) + node. Q i=1 N 2 EQ = max (node. Child i. Q) i=1 N 60/66

Zmodyfikowana formuła wyboru ruchu (EV) 61/66

Uwzględnanie EV sprawa nierozwiązana Czy obliczać EV dla każdego wierzchołka przed przesłaniem? Potencjalne możliwości agregacji: rozszerzenie wzorów, aby stosować min i max po wszystkich węzłach uśrednianie obliczonych EV na każdej maszynie uśrednianie ważone liczbą symulacji wybranie EV z najbardziej reprezentatywnych najlepiej przesymulowanych gałęzi 62/66

Planowany efekt Tree Parallelization + Root Parallelization Pozytywne: Drastyczne zmniejszenie narzutu komunikacyjnego Wykonywanie sumarycznie większej ilości symulacji Uśrednianie wyników przy pomocy większej próbki Możliwość wykorzystania dużo większej liczby komputerów Negatywne: Brak zwiększenia głębokości drzewa gry Ryzyko powtarzania symulacji na różnych maszynach 63/66

Negatywne efekty [1] Brak zwiększenia głębokości drzewa gry Lokalnie na maszynach jest Tree Parallelization (TP), więc hybryda jest i tak kompromisem w porównaniu do pełnego RP Zamiast większej głębokości drzewa mamy pewniejsze wyniki. Nadaje się lepiej do gier o dużej średniej liczbie kroków i dużym BF. Metoda tuningowana pod gry drugiego dnia mistrzostw. [Problem pojawi się, jeśli przeszukanie drzewa głębiej pokaże wykaże w pewnym momencie słabość ruchu, który zapoczątkował ścieżkę punkt przełomowy UCT] 64/66

Negatywne efekty [2] Ryzyko powtarzania symulacji na różnych maszynach Wiele sposobów na umieszczenie różnych ziaren na komputerach: różne parametry strategii (prawdopodobieństwa użycia) różne zestawy dostępnych strategii różne parametry UCT zmienna predefiniowana kolejność wybierania akcji po raz pierwszy do symulacji [ten aspekt jest na razie na etapie przemyślenia] 65/66

Dyskusja: zalety vs wady Wybór metody niesienie ze sobą pewien element hazardu która okaże się lepsza dla gier na mistrzostwach? Większe drzewo zbudowane przy pomocy mniejszej liczby symulacji VS Możliwość użycia nawet kilkadziesiąt razy większej liczby maszyn więcej wykonanych symulacji. Skłaniam się ku drugiej metodzie. 66/66

dziękuję za uwagę