MAGICIAN: A GGP Agent. Analiza zależności w opisie reguł gier GGP

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

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

MAGICIAN: GUIDED UCT. Ekstrakcja uniwersalnej funkcji ewaluacyjnej z rezultatów symulacji UCT

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

UCT. Wybrane modyfikacje i usprawnienia

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

Risk-Aware Project Scheduling. SimpleUCT

Jak oceniać, gdy nic nie wiemy?

Algorytm memetyczny w grach wielokryterialnych z odroczoną preferencją celów. Adam Żychowski

Instytut Badań Systemowych Polskiej Akademii Nauk. Streszczenie rozprawy doktorskiej

RISK-AWARE PROJECT SCHEDULING

Dwaj gracze na przemian kładą jednakowe monety na stole tak, aby na siebie nie nachodziły Przegrywa ten, kto nie może dołożyć monety

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki

Metody Programowania

Analiza stanów gry na potrzeby UCT w DVRP

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Seminarium IO. Zastosowanie algorytmu UCT w Dynamic Vehicle Routing Problem. Michał Okulewicz

RISK-AWARE PROJECT SCHEDULING

RISK-AWARE PROJECT SCHEDULING

Wykład 7 i 8. Przeszukiwanie z adwersarzem. w oparciu o: S. Russel, P. Norvig. Artificial Intelligence. A Modern Approach

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

Algorytmy heurystyczne w UCB dla DVRP

Planowanie drogi robota, algorytm A*

Modelowanie sieci złożonych

Segmentacja obrazów cyfrowych z zastosowaniem teorii grafów - wstęp. autor: Łukasz Chlebda

Digraf. 13 maja 2017

Sortowanie. Bartman Jacek Algorytmy i struktury

Katalog wymagań programowych na poszczególne stopnie szkolne. Matematyka. Poznać, zrozumieć

Podstawy OpenCL część 2

AI i ML w grach. Przegląd zagadnień i inspiracje systemów human-like

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

RISK-AWARE PROJECT SCHEDULING

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

Zastosowanie symulacji Monte Carlo do zarządzania ryzykiem przedsięwzięcia z wykorzystaniem metod sieciowych PERT i CPM

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

Zaawansowane programowanie

Metody radzenia sobie z brakującymi obserwacjami

Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa

Metoda ewolucyjnego doboru współczynników funkcji oceniającej w antywarcabach

SYMULACJA RYZYKA CZASOWO-KOSZTOWEGO PRZEDSIĘWZIĘĆ NA TLE METODY PERT/COST

Rozwiązywanie problemów metodą przeszukiwania

Spacery losowe generowanie realizacji procesu losowego

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

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

Algorytmy wyznaczania centralności w sieci Szymon Szylko

POISSONOWSKA APROKSYMACJA W SYSTEMACH NIEZAWODNOŚCIOWYCH

Programowanie obiektowe

POTRZEBY A B C D E P P P P P

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

Metody przeszukiwania

Podstawowe algorytmy i ich implementacje w C. Wykład 9

Tworzenie gier na urządzenia mobilne

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

ALHE Jarosław Arabas. Przeszukiwanie przestrzeni ścieżek w grafie. Algorytm A*

Algorytm dyskretnego PSO z przeszukiwaniem lokalnym w problemie dynamicznej wersji TSP

Obliczenia równoległe w General Game Playing

Techniki optymalizacji

Systemy ekspertowe i ich zastosowania. Katarzyna Karp Marek Grabowski

Projekt 4: Programowanie w logice

Problemy z ograniczeniami

Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova

DWUKROTNA SYMULACJA MONTE CARLO JAKO METODA ANALIZY RYZYKA NA PRZYKŁADZIE WYCENY OPCJI PRZEŁĄCZANIA FUNKCJI UŻYTKOWEJ NIERUCHOMOŚCI

Systemy uczące się Lab 4

Wykładnicze grafy przypadkowe: teoria i przykłady zastosowań do analizy rzeczywistych sieci złożonych

Algorytmy i struktury danych

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

Wykład 8. Drzewo rozpinające (minimum spanning tree)

Programowanie dynamiczne i algorytmy zachłanne

Działanie algorytmu oparte jest na minimalizacji funkcji celu jako suma funkcji kosztu ( ) oraz funkcji heurystycznej ( ).

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

Systems Research Institute Polish Academy of Sciences

Wyznaczanie optymalnej trasy problem komiwojażera

Tworzenie gier na urządzenia mobilne

Algorytmy ewolucyjne (3)

DWA ZDANIA O TEORII GRAFÓW. przepływ informacji tylko w kierunku

LABORATORIUM Populacja Generalna (PG) 2. Próba (P n ) 3. Kryterium 3σ 4. Błąd Średniej Arytmetycznej 5. Estymatory 6. Teoria Estymacji (cz.

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

METODY STATYSTYCZNE W BIOLOGII

TEORIA GIER DEFINICJA (VON NEUMANN, MORGENSTERN) GRA. jednostek (graczy) znajdujących się w sytuacji konfliktowej (konflikt interesów),w

a) 7 b) 19 c) 21 d) 34

Kognitywne podejście do gry w szachy kontynuacja prac

ALGORYTMICZNA I STATYSTYCZNA ANALIZA DANYCH

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II

Algorytmy dla gier dwuosobowych

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

Sortowanie. LABORKA Piotr Ciskowski

Logika Temporalna i Automaty Czasowe

METODY SZTUCZNEJ INTELIGENCJI 2 Opis projektu

Sterowanie wielkością zamówienia w Excelu - cz. 3

Dokumentacja projektu Makao karciana gra sieciowa

PRZEWODNIK PO PRZEDMIOCIE

Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie

Testowanie hipotez statystycznych

Filtracja obrazu operacje kontekstowe

Harmonogramowanie przedsięwzięć

Security Games: zastosowanie UCT na tle dotychczasowych podejść do problemu

Monte Carlo, bootstrap, jacknife

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

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

Transkrypt:

MAGICIAN: A GGP Agent Analiza zależności w opisie reguł gier GGP

GENERAL GAME PLAYING

General Game Playing? Cel: stworzenie systemu umiejącego grać/nauczyć się grać we wszystkie gry Turniej w ramach AAAI National Conference corocznie od 2005 roku Przebieg rozgrywki w ramach turnieju: prezentacja zasad i czas na ich analizę (np. 5m) rozgrywka z ograniczeniem czasowym na wykonanie pojedynczego ruchu

Model gry Skończona Skończona liczba graczy w tym 1 czyli de facto łamigłówka synchroniczna wszyscy gracze ruszają się równocześnie (ale dopuszczalne ruchy typu noop) skończona liczba legalnych ruchów w każdym ze skończonej liczby stanów zmiany stanu tylko w wyniku ruchów maszyna stanowa

Model gry c.d. M. Genesereth, N. Love, and B. Pell. General Game Playing: Overview of the AAAI Competition. AI Magazine, 26(2):62-72, 2005.

Game Definition Language (GDL) Opis gry jako maszyny stanowej: zbyt rozwlekły Krótszy sposób opisu: Game Definition Language (GDL) opis gry za pomocą fomuł logicznych język bazujący na zmodyfikowanym Datalogu Datalog to podzbiór Prologa podstawowe relacje: role, true, init, next, legal, does, goal, terminal

GDL: Tic-Tac-Toe J. Reisinger, E. Bahceci, I. Karpov, and R. Miikkulainen. Coevolving strategies for general game playing. In Proceedings of the IEEE Symposium on Computational Intelligence and Games (CIG 2007), 320-327, Honolulu, Hawaii, 2007. IEEE Press.

Multi- Approach Game Independent Cunningly Intelligent Arch- Nemesis

UCT GUIDED UCT

UCT Sposób wybierania kolejnego ruchu podczas symulacji (UCT): Q(s,a) średni dotychczasowy wynik pary stan-ruch N liczba wizyt w danym stanie/wykonań danej akcji akcje nigdy nie wykonane wybierane są w pierwszej kolejności

UCT c.d.

UCT c.d. Ograniczanie zużycia pamięci: usuwanie danych o węzłach powyżej aktualnego po każdym (realnie) wykonanym ruchu co z pozycjami powtórzonymi w drzewie gry 1. duplikowanie 2. intelegentne wykrywanie, kiedy można je usunąć z pamięci dodawanie tylko jednego nowego węzła per symulacja Modelowanie przeciwnika każdy przeciwnik ma przydzielony swój własny model (Cadia) przeciwnicy podejmują losowe decyzje

Guided UCT Guided UCT + funkcja ewaluacyjna Gdzie ta funkcja ewaluacyjna? 1. W fazie MC: a) całkowite zastąpienia fazy (z zadanym prawdopodobieństwem) b) zakończenie symulacji przed osiągnięciem końca gry z zadanym prawdopodobieństwem w każdym węźle drzewa

Guided UCT Guided UCT + funkcja ewaluacyjna Gdzie ta funkcja ewaluacyjna? 2. W fazie UCT: a) jako wstępne sortowanie ruchów nigdy nie wypróbowanych b) jako startowy szacunek wartości ruchów z wagą odpowiadającą n symulacjom Problem: porównywanie bardzo podobnych pozycji (różniących się tylko ostatnim ruchem)

STATISTICAL GUCT: HEURYSTYCZNA FUNKCJA EWALUACYJNA

Generowanie komponentów Lista podstawowa: wyrażenia występujące w opisie gry cechy nie muszą być binarne zliczanie sposobów rozwiązania zmiennych w wyrażeniu Uzupełnianie listy: uogólniane przez podstawianie zmiennych za stałe i możliwych stałych za zmienne cell(1, 1, x) cell(1, 1,?) cell(?,?, x) cell(1,?, x)

Generowanie komponentów c.d. Podstawianie stałych za zmienne Wszystkich?? Wyznaczanie dziedzin argumentów predykatów/funkcji:

Złożone komponenty Relacje między wartościami komponentów różniących się na jednej pozycji: cell(?,?, w) cell(?,?, b) cell(?,?, wk) / cell(?,?, bk) a jako efekt uboczny także: cell(a, 1,?) / cell(a, 3,?) Problem: co z dzieleniem przez 0? Odp. 1: 0 Odp. 2: podzielmy przez ½ zamiast tego Odp. 3: zrezygnujmy na razie z proporcji

Analiza statystyczna komponentów Pula przykładowych sekwencji ok. 100 początek sekwencji: wynik losowej gry długość: do 5 pozycji odległość między pozycjami: 1-2 ruchy generowanie sekwencji: losowe ruchy powiązanie sekwencji ze średnim wynikiem: symulacje Monte Carlo (~10)

Analiza statystyczna komponentów c.d. Średnie wartości i wariancje wartości komponentów dla całej gry uwzględnia tylko pierwszą pozycję z każdej sekwencji dla poszczególnych sekwencji Korelacja wartości komponentów z wynikiem gry brana pod uwagę średnia wartość komponentu w sekwencji Stabilność wartości komponentów iloraz wariancji między początkami sekwencji oraz średniej wariancji w ramach sekwencji S = TV / (TV + 10*SV)

Funkcja ewaluacyjna - heurystyczna Wybór komponentów: sortowanie: min(stabilność, korelacja z wynikiem ) obcięcie do 30 pierwszych komponentów Wagi: stabilność * korelacja z wynikiem Składnik stały: średni wynik

ODLEGŁOŚĆ FAKTÓW

Cel Zdefiniowanie (przybliżonych) miar odległości i odległości probabilistycznej faktów d(a,b) minimalna liczba ruchów potrzebnych na przejście ze z pewnego stanu z faktem a do stanu z faktem b (minimum wyznaczane po wszystkich stanach z faktami a i b i wszystkich sekwencjach legalnych ruchów) d (a,b) odległość ważona miarą prawdopodobieństwa, że znajdujemy się w odpowiednim stanie i kolejne przejścia będą możliwe Uwaga: definicje koncepcyjne, nieformalne

Cel Intuicyjne oczekiwania: d[cell(1,1,x),goal(x,100)] = d[cell(2,2,x),goal(x,100)] d [cell(1,1,x),goal(x,100)] >= d [cell(2,2,x),goal(x,100)] d[cell(1,1,x),cell(1,1,o)] = d [cell(1,1,x),cell(1,1,o)] =

Zastosowanie Budowa funkcji celu lub jej komponentu na podstawie odległości faktów aktualnego stanu od wyrażeń goal Miara stopnia spełnienia celów końcowych / cząstkowych

Algorytm budowy grafu przejść Wyznacz / pobierz domeny argumentów funkcji Wyznacz zbiór wszystkich możliwych faktów Zastąp reguły zawierające zmienne na wszystkie możliwe ich realizacje na podstawie domen argumentów ignorując predykaty zaprzeczone nie będą wykorzystywane przez algorytm

Algorytm budowy grafu przejść Dla każdej reguły: typu next / goal / terminal: next(cell(1,1,x)) :- true(cell(1,1,b)), does(x,put(x,1,1)) dodaj krawędzie pomiędzy faktami true i faktem next /true/terminal z wagami wyznaczonymi za pomocą funkcji A pozostałych: line(x) :- true(cell(1,1,x)), true(cell(1,2,x)), true(cell(1,3,x)) dodaj do grafu tymczasowy węzeł z predykatem wynikowym oraz krawędzie pomiędzy faktami true oraz nowym węzłem (z wagą wyznaczoną za pomocą funkcji A) alternatywa: rozwinięcie wszystkich wyrażeń zawierających niestandardowe predykaty

Algorytm budowy grafu przejść Uprość graf: scal krawędzie wielokrotne waga nowej krawędzi wyznaczana za pomocą funkcji B usuń węzły tymczasowe poszczególne ścieżki pomiędzy faktami zamieniane w pojedyncze krawędzie funkcja scalania ścieżki: C ewentualne nowopowstałe krawędzie wielokrotne scalane jak wyżej

Algorytm budowy grafu przejść Funkcje heurystyczne: A. funkcja wagi dla inferencji next 1/n 1/sqrt(n) 1/log(n) n liczba predykatów w inferencji (wliczając wyrażenia not)

Algorytm budowy grafu przejść Funkcje heurystyczne: B. funkcja wagi scalonej krawędzi wielokrotnej Σ(x i ) ryzyko wartości większych niż 1 min(1,σ(x i /i)) Σ(x i /2 i ) przy krawędziach posortowanych według malejących wag

Algorytm budowy grafu przejść Funkcje heurystyczne: C. funkcja scalania ścieżki w krawędź Π(x i ) ryzyko bardzo niskich wartości Π(sqrt(x i )) 1/Σ(1/x i ) sqrt(1/σ(1/x i ) 2 ) efekt: przy braku krawędzi wielokrotnych, wartość analogiczna jak przy rozwinięciu wyrażeń

Algorytm budowy grafu przejść Funkcje heurystyczne: D. funkcja wyznaczania probabilistycznej długości ścieżki 1/C Σ(1/x i ) Σ(1/sqrt(x i ))

Wyznaczanie odległości faktów Wariant podstawowy: długość najkrótszej ścieżki między faktami Wariant rozszerzony: uwzględnienie obecności wielu ścieżek, scalając je za pomocą funkcji C istotnie problemy algorytmiczne

Odległość stanu od faktu Dla stanu A i faktu x: avg(d (a i,x)) max(d (a i,x)) Σ(d (a i,x)/2 i-1 ) a i wszystkie fakty stanu A, w kolejności malejącej odległości od x

Zastosowania podstawowe Oszacowanie wartości faktu (np. na potrzeby budowy funkcji ewaluacyjnej): średnia osiągalnych wyników ważona ich odległościami od faktu Funkcja oceny (lub jej komponent) średnia oszacowań wszystkich faktów opisujących stan

Zastosowania zaawansowane Identyfikacja celów cząstkowych Faktów / zestawów faktów bliskich wysokim wynikom Wyznaczanie odległości od celów cząstkowych Identyfikacja fazy gry (ocena bliskości końca rozgrywki)

POZOSTAŁE POMYSŁY

Pozostałe pomysły Dodatkowy komponent aplikacji - wyrocznia: Zaimplementowana jako oddzielny proces, oddzielna maszyna lub mini cluster Generuje sugestie: zmiany parametrów nauki i gry zmiany algorytmu gry Podstawowe kryterium: zmiany szacunkowej wartości pozycji sprawdzalność przewidywań rozwoju gry (ruchów pozostałych graczy)

Bibliografia J. Clune: Heuristic evaluation functions for General Game Playing. In Proceed- ings of the Twenty- Second AAAI Conference on Articial Intelligence (AAAI- 07), pages 1134 1139, Vancouver, BC, Canada, 2007. AAAI Press. H. Finnsson, Y. Bjornsson: Simulation-based approach to General Game Playing. In Proceedings of the Twenty-Third AAAI Conference on Articial Intelligence (AAAI-08), pages 259 264, Chicago, IL, 2008. AAAI Press. General Game Playing website by Stanford University. http://games.stanford.edu/. General Game Playing website by Dresden University of Technology. http://www.generalgame-playing.de/. M. Genesereth, N. Love: General Game Playing: Overview of the AAAI Competition. http://games.stanford.edu/competition/misc/aaai.pdf, 2005. D. Kaiser: The Design and Implementation of a Successful General Game Playing Agent. In Proceedings of FLAIRS Conference, pages 110 115, 2007 G. Kuhlmann, K. Dresner, and P. Stone: Automatic heuristic construction in a complete General Game Player. In Proceedings of the Twenty-First AAAI Conference on Artificial Intelligence (AAAI-06), pages 1457 1462, Boston, MA, 2006. AAAI Press. N. Love, T. Hinrichs, D. Haley, E. Schkufza, M. Genesereth: General Game Playing: Game Description Language Specification. http://games.stanford.edu/language/spec/gdl spec 2008 03.pdf, 2008. J. Mańdziuk, M. Kusiak, K. Walędzik: Evolutionary-based heuristic generators for checkers and give-away checkers. Expert Systems, 24(4): 189 211, Blackwell-Publishing, 2007. J. Reisinger, E. Bah ceci, I. Karpov and R. Miikkulainen: Coevolving strategies for general game playing. In Proceedings of the IEEE Symposium on Computational Intelligence and Games (CIG 07), pages 320 327, Honolulu, Hawaii, 2007. IEEE Press. S. Schiffel, M.Thielscher: Automatic Construction of a Heuristic Search Func tion for General Game Playing. In Seventh IJCAI International Workshop on Nonmonotonic Reasoning, Action and Change (NRAC07).