Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

IEEE Conference on Computational Intelligence and Games

Podobne prezentacje


Prezentacja na temat: "IEEE Conference on Computational Intelligence and Games"— Zapis prezentacji:

1 IEEE Conference on Computational Intelligence and Games
Czyli gdzie gry łączą się z nauką

2 O co w ogóle chodzi? Jak w tytule: łączymy granie w gry z nauką, a konkretnie ze sztuczną inteligencją Różne rodzaje gier: komputerowe, planszowe, matematyczne… Mądrzy ludzie wysyłają papery związane z tematem konferencji i prowadzą wykłady Zawody botów do gier (niestety, tylko komputerowych…) – o tym będziemy mówić Konferencja odbywa się co roku od 2005, na początku jako IEEE Symposium on Computational Intelligence and Games, od 2010 pod aktualną nazwą

3 Jakie mamy zawody? The 2K BotPrize Competition (Unreal Tournament 2004) Simulated Car Racing Championship StarCraft Competition Physical Travelling Salesman Problem Ms Pac-Man vs Ghost Team Competition Ms Pac-Man Screen Capture Competition Mario AI Championship: Gameplay and Learning Tracks Mario AI Championship: Level Generation Track Mario AI Championship: Turing Test Track

4 Mario AI Championship - zasady
Mario chodzi w lewo i w prawo, może skakać, biegać i strzelać ognistymi kulkami (tylko w stanie Fire) Są trzy stany Mario: Small, Big i Fire Przeszkody to dziury i potwory, dziury zabijają całkiem, potwory robią „downgrade” stanu Czas nie jest rzeczywisty – 25 razy na sekundę pytamy o aktualnie wciśniętą kombinację klawiszy

5 Gameplay and Learning Tracks
Mamy generator map, pod który podłączamy agenta Generator jest jawny, ale nie znamy seeda, który zostanie użyty podczas konkursu Wygrywa ten, kto przejdzie średnio największy dystans W przypadku remisu decydują kolejno: liczba zabitych potworów, liczba zebranych monet, czas w mariosekundach, czas działania aplikacji

6 Algorytm Robina Baumgartena
Pomijając wszelkie bonusy (monety, punkty za zabite potwory itp.), szukamy najszybszej drogi, którą Mario może przejść i nie zginąć – zgodnie z podstawowym kryterium oceny, jakim jest liczba ukończonych poziomów Krok 1/3: odtwarzamy fizykę gry w kliencie, uwzględniając stan świata i ruch obiektów Choć fizyka jest w generatorze, chcemy ją oczyścić ze „śmieci” (np. funkcji odpowiedzialnych za wizualizację) oraz stworzyć model, który potrafi przewidzieć stan gry w przyszłości (np. po wykonaniu konkretnego ruchu)

7 Algorytm Robina Baumgartena
Krok 2/3: implementacja algorytmu A* A* to prosty algorytm heurystyczny, który szuka najtańszej drogi od punktu startowego w grafie do pewnego punktu końcowego (jednego z wielu) W uproszczeniu: od wierzchołka startowego tworzymy krok po kroku ścieżkę, za każdym razem wybierając następny wierzchołek tak, by minimalizować sumę długości stworzonej dotychczas ścieżki i przewidywanej długości ścieżki do mety Jak jednak w Mario zdefiniować wierzchołki i krawędzie? Jak należy estymować odległość od mety?

8 Algorytm Robina Baumgartena
Wierzchołek to aktualny stan świata: położenie i stan Mario, położenie potworów (i kierunek ich ruchu), klocków, monet itd. Wierzchołki sąsiadują, jeśli można przejść pomiędzy nimi w jednym kroku symulacji (patrz rys.)

9 Algorytm Robina Baumgartena
A tak to wygląda w grze:

10 Algorytm Robina Baumgartena
Ponieważ nie widzimy nic poza ekranem gry, planowanie dalej niż koniec tego ekranu mija się z celem – za wierzchołki końcowe przyjmujemy najdalsze widoczne wierzchołki Funkcja oczekiwanej drogi do celu jest prosta: zakładamy, że Mario pędzi do prawej krawędzi najszybciej, jak to możliwe (uwzględniamy przy tym jego aktualną prędkość) Krok 3/3: optymalizacja (konieczna, bo na ruch mamy tylko 40 ms) Jeśli nie mamy już czasu, zgłaszamy najlepszy ruch z tych, które dotąd sprawdziliśmy (nie jest kłopot, gdyż generator map nie tworzy ślepych zaułków)

11 Algorytm Robina Baumgartena
Trochę łagodzimy zasady – mnożymy przewidywaną długość optymalnej ścieżki przez pewien współczynnik w > 1 (z badań wynika, że w ≈ 1,11 jest dobre) Ograniczamy liczenie tego samego wielokrotnie, gdy odkrywamy nowy fragment mapy – okazuje się, że najlepiej liczyć ścieżkę od nowa co drugą turę (planowanie od razu większej ilości ruchów doprowadza do wpadania na potwory lub straty dużej ilości czasu)

12 Inne pomysły? Definiowanie „danger level” dziur i przeciwników, ruchy bazujące na tym „Czy skaczę?” i „Jak skaczę?” Maszyna stanowa Drzewo wyrażeń badane algorytmami genetycznymi Baza: wirtualna maszyna ze stosem, algorytm genetyczny Uczenie się na ruchach ludzi (!) połączone z algorytmami znajdowania ścieżek, wykorzystujemy sieci neuronowe I było jeszcze trochę innych pomysłów, ale…

13 Inne pomysły? …i tak A* jeszcze w 2009 roku niszczył system:

14 Mario AI Championship – konkurencja
W 2010 zaczęły pojawiać się inne, konkurencyjne rozwiązania, Baumgarten zaś nie wprowadzał do swojego znacznych poprawek Sieć neuronowa Siergieja Polikarpowa pokonała Baumgartena na konferencji WCCI, ale na CIG bezkonkurencyjny okazał się silnik REALM, stworzony przez Sławomira Bojarskiego i Clare’a Batesa Idea: rule-based, do którego wprowadzamy algorytmy ewolucyjne Zaczynamy od zahardkodowanych danych, które stanowią nietykalną podstawę, potem szukamy coraz lepszych rozwiązań

15 Mario AI Championship – Level Generation
Tworzymy generator map do gry – te mapy są później oceniane przez jury Mapa musi zawierać konkretną liczbę bloków, potworów itp. (zapobieganie zahardkodowanym mapom) – regułę ostatecznie nieco złagodzono, gdyż uczestnicy uznali, że trudno stworzyć ciekawą mapę przy takich ścisłych zasadach Ocena: sędzia dostaje dwie mapy i wybiera, która była bardziej „funowa” Aby było uczciwie, każdy sędzia ocenia każdą parę generatorów tyle samo razy

16 Level Generation - algorytmy
Tworzenie etapowe: podłoże -> wzgórza -> rury -> potwory -> klocki -> monety. W każdym etapie wprowadzamy zdarzenia, których prawdopodobieństwo ustalił autor (np. w pierwszym etapie: zacznij/zakończ przepaść, zmień wysokość gruntu)

17 Level Generation - algorytmy
Zgodnie z teorią pana Csikszentmihalyi, przyjemność gracza ma „przepływać” i zależy od trudności poziomu oraz umiejętności gracza. Idea algorytmu: mamy zbiór zbudowanych fragmentów mapy, które oceniamy, z najlepszych budujemy całość

18 Level Generation - algorytmy
Algorytm ewolucyjny z wykorzystaniem funkcji dopasowania oraz teorii mieszania trudnych i łatwych fragmentów w levelach Programowanie liniowe: na podstawie gry gracza tworzymy wektor z informacjami o nim, klasyfikując go i dostosowując do niego mapy

19 Mario AI Championship – test Turinga
Przerobieni agenci z Gameplay Track W 2010 najlepszy REALM, w 2012 niejaki Vinay Sudha Ethiraj Niestety, brak dobrych paperów na temat

20 Mario AI Championship To teraz na YouTube’a!

21 StarCraft Competition
Zasady właściwie nie różnią się od standardowych gier – z tą różnicą, że gry toczone są bardzo szybko Choć wszystkie rasy są dozwolone, w dwóch ostatnich podium było zajęte przez boty grające Protossami Co więcej, dwa pierwsze miejsca należały do tych samych uczestników Crash bota oznacza porażkę W 2012 roku było 6 map – po trzy dla trzech i sześciu graczy Olbrzymia ilość gier – na każdej mapie każda możliwa kombinacja 10 botów grała ze sobą 15 razy (!), co daje 810 meczów na bota

22 Strategie 2011 BroodwarBotQ (4. miejsce): techniki probabilistyczne dla mikrozarządzania oraz ekonomii. Wykorzystuje model Bayesa utworzony na podstawie gier dobrych graczy, by odkryć strategię przeciwnika (i ją wykorzystać) oraz inny model Bayesa do mikrozarządzania. Choć wyszedł z grupy, w finale wygrał tylko 1 mecz z 30 Xelnaga (3. miejsce): prosty kod, bot nastawiony na wykonanie celu. Wykorzystuje bazę reguł

23 Strategie 2011 UAlbertaBot (2. miejsce): taktyka wywierania bardzo szybkiej i ciągłej presji na przeciwniku. Budowy są planowane i implementowane za pomocą heurystycznego przeszukiwania w głąb Skynet (1. miejsce): szybka analiza terenu, zaawansowane algorytmy budowania (budujemy na małej przestrzeni, ale tak, by jednostki mogły przejść pomiędzy budynkami), makrosystem zadań, który tworzy plan działania i na bieżąco go aktualizuje

24 Spostrzeżenia i ciekawostki
Boty się gubią, kiedy dzieje się coś niespodziewanego (crashe) Częsta taktyka: zealot rush Praktycznie wszystkie boty specjalizują się w jednej rasie (jeden wyjątek), ale taktykę dostosowują do rasy przeciwnika… …choć podobno wychodzi im to marnie Jeden z botów (BotQ) aktywnie korzystał z zasobów przeciwników. Inny bot (BTHAI) stosował taktykę krycia się we wrogich bazach Boty nie umieją dokończyć prawie wygranej gry Boty mają problemy, gdy nie znają terenu

25 Spostrzeżenia i ciekawostki
Boty nie współpracują, by wyeliminować wspólnego przeciwnika Wyniki botów często zależą od wielkości mapy (np. UAlbertaBot był lepszy na dużych mapach dzięki rozbudowanemu skautingowi) W 2012 roku żaden bot nie grał Zergami

26 The 2K BotPrize Competition
: DeathMatch, czyli zbieramy jak najwięcej fragów w 10 minut Trzech uczestników: sędzia, gracz i bot Po meczu sędzia ocenia w skali 1-5 (1 – marny bot, 5 – prawdziwy człowiek) Gramy w real time, mapy w 3D, często zawierają „hinty” (np. tabliczka sygnalizująca, że warto używać snajperki) – te hinty usuwamy Mechanizm podpowiadania botom dobrej broni w danej sytuacji - usunięty

27 The 2K BotPrize Competition
Wyniki takie sobie – w 2008 było pięciu sędziów, dwa boty „ogłupiły” dwóch z nich W 2009 każdy bot nabrał dokładnie jednego sędziego (co ciekawe, nie tego samego) Główne grzechy: zapominanie o przeciwnikach, nienaturalne przestoje, zbyt celne strzały, upartość Cechy ludzi: agresywność, reagowanie na sytuację, korzystanie ze specjalnej broni

28 Strategie SQLite Bot, zwycięzca 2009: bot wykorzystujący bazę danych w SQL-u do zapamiętywania wydarzeń Zapamiętywanie „hotspotów” – miejsc, w których działa się akcja Analiza mapy pod kątem mało widocznych miejsc – dobre do ucieczki z małym HP Unikanie powtarzania nieskutecznych akcji – jeśli nic się nie dzieje, zmieniamy strategię Aby nie być „podejrzanym”, czasami specjalnie pudłujemy

29 Strategie ICE, 2. miejsce 2008-2009: u podstawy maszyna stanowa
Dwa stany: zbieranie itemów i walka System bodźców, które wywołują zmianę stanu (np. dostrzeżenie przeciwnika, zabicie przeciwnika) W trybie poszukiwawczym szukamy optymalnych ścieżek zbierania przedmiotów (algorytm A*) W trybie walki wybieramy jedną z siedmiu strategii na podstawie ustalonych reguł, tak samo wybieramy broń Umyślnie obniżamy trochę swoje umiejętności (celność strzałów)

30 Strategie ISC, 3. miejsce 2008: sieć neuronowa
Dwa systemy uczenia się, na podstawie których określamy zachowanie i wybieramy broń Wprowadzenie losowości, by udawać ludzi (np. po trafieniu przez przeciwnika czekamy losową ilość czasu przed odwróceniem się i strzelamy też po losowym czasie) Uczymy się reguł, np. „jeśli masz przewagę nad przeciwnikiem, to inicjuj walkę”, nagrody za postępowanie zgodnie z nimi

31 Zasady 2010 W 2010 roku znaczna zmiana reguł – na serwer wchodzimy kiedy i jak chcemy Specjalna broń (przerobiony Link Gun), która ma dwa tryby działania: w trybie „podstawowym” zabijamy boty jednym strzałem, dostając 10 fragów, ale trafienie człowieka to nasza śmierć za -10, w trybie „alternatywnym” – na odwrót System bardzo wygodny – nie trzeba synchronizacji meczów, bez problemów z zamykaniem w pokojach itd. Ocena odbywa się poprzez strzelanie Link Gunem, bez czekania na werdykty

32 The 2K BotPrize Competition
Oglądamy filmiki

33 KONIEC 


Pobierz ppt "IEEE Conference on Computational Intelligence and Games"

Podobne prezentacje


Reklamy Google