IEEE Conference on Computational Intelligence and Games

Slides:



Advertisements
Podobne prezentacje
Aukcja o dolara $$$ P. Jaworska W. Filipowicz.
Advertisements

Wykład 6 Najkrótsza ścieżka w grafie z jednym źródłem
Zarządzanie operacjami
Inteligencja Obliczeniowa Indukcja reguł - modele.
Uczenie konkurencyjne.
Analiza ryzyka projektu
Badania operacyjne. Wykład 1
Stochastyczne modele gier ewolucyjnych Jacek Miękisz Instytut Matematyki Stosowanej i Mechaniki Uniwersytet Warszawski.
Projektowanie Aplikacji Komputerowych
Skuteczne zachowania na rynku pracy
Biblioteka do tworzenia agentów w środowisku RoboCup
Szachy komputerowe. Ogólna idea silnika szachowego.
Wirtualne Koła Naukowe – środowisko uczenia się w wirtualnej przestrzeni. Henryk Szaleniec.
Dariusz Odejewski Krzysztof Wójcik
Sztuczna Inteligencja Reprezentacja wiedzy II Systemy produkcyjne Włodzisław Duch Katedra Informatyki Stosowanej UMK Google: W. Duch.
Analiza porównawcza wybranych metod sztucznej inteligencji w komputerowych grach strategicznych Comparative analysis of artificial iteligece methods applied.
Metody Sztucznej Inteligencji w Sterowaniu 2009/2010Optymalizacja miary efektywności działania sztucznych sieci neuronowych Dr hab. inż. Kazimierz Duzinkiewicz,
Od gier mniejszościowych do prawdziwych rynków From Minority Games to real markets D. Challet, A. Chessa, M. Marsili, Y-C. Zhang Wojciech Dzikowski 26.
Magda Kusiak Karol Walędzik prof. dr hab. Jacek Mańdziuk
wykonał Jarosław Orski promotor pracy: mgr Szymon Smaga
Ochrona danych wykład 3.
Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4: Generowanie zdarzeń  Dr inż. Halina Tarasiuk p. 337, tnt.tele.pw.edu.pl.
Algorytmy genetyczne.
SIEĆ P2P 1. Definicja sieci równouprawnionej. To taka sieć, która składa się z komputerów o takim samym priorytecie ważności, a każdy z nich może pełnić.
Inżynieria Oprogramowania
Algorytm mini-max.
Prezentacja funkcjonalności dziennika e-klasa
Elementy Rachunku Prawdopodobieństwa i Statystyki
Graf - jest to zbiór wierzchołków, który na rysunku przedstawiamy za pomocą kropek oraz krawędzi łączących wierzchołki. Czasami dopuszcza się krawędzie.
Optymalizacja liniowa
Badania operacyjne Wykład 5.
Instrukcja USOS Rejestracja na zajęcia obieralne wersja by Marek Opacki.
Prezentacja funkcjonalności dziennika e-klasa
Sieci bayesowskie Wykonali: Mateusz Kaflowski Michał Grabarczyk.
Modelowanie populacji i przepływu opinii pomiędzy aktorami sztucznej inteligencji za pomocą sieci społecznej Wojciech Toman.
Elementy Rachunku Prawdopodobieństwa i Statystyki
Jak optymalnie wybrać partnera na całe życie?
podsumowanie wiadomości
INTERdyscyplinarny program nauczania BLOKowego przedmiotów matematyczno-przyrodniczych i informatyki w Gimnazjum - INTERBLOK Gimnazjum im. Królowej Jadwigi.
Modelowanie i identyfikacja 2010/2011Optymalizacja miary efektywności działania sztucznych sieci neuronowych Dr hab. inż. Kazimierz Duzinkiewicz, Katedra.
Farseer Physics Engine. Farseer Physics Engine jest silnikiem fizycznym napisanym dla platformy.NET. Został on zainspirowany przez silnik Box2D znany.
Promotor: dr inż. Leszek Koszałka Autor: Markuszewski Kamil
MS Excel - wspomaganie decyzji
W ą t e k (lekki proces) thread.
SYSTEMY EKSPERTOWE I SZTUCZNA INTELIGENCJA
Aplikacje internetowe
Kości zostały rzucone…
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Wyszukiwanie maksimum funkcji za pomocą mrówki Pachycondyla Apicalis.
POZYCJA – USYTUOWANIE SĘDZIEGO NA POLU GRY.
MATEMATYKA I SPORT Gabrysia Tylec Va.
Mistrzowskie zbijanie obiekcji cenowych
Adaptacyjne Systemy Inteligentne Maciej Bielski, s4049.
GRA CHOMP. Czym jest chomp? Jest to gra dla dwóch osób, rozgrywana na prostokątnej tablicy, zwanej „tabliczką czekolady”
Warstwowe sieci jednokierunkowe – perceptrony wielowarstwowe
OBOWIĄZKI SĘDZIEGO II - WYBÓR Opracowanie Wojciech Maroszek z wykorzystaniem FIVB Multimedia Teaching Material 2015.
Wybrane zagadnienia inteligencji obliczeniowej Zakład Układów i Systemów Nieliniowych I-12 oraz Katedra Mikroelektroniki i Technik Informatycznych proponują.
SZTUCZNA INTELIGENCJA
Wygraj dobry zespół! Grywalizacja jako skuteczna i innowacyjna forma szkolenia pracowników.
T ESTY JEDNOSTKOWE W C# Alicja Majka, A GENDA Wprowadzenie do środowiska Czym są testy jednostkowe i po co je stosować? XUnit, NUnit Pokrycie.
Interfejs użytkownika „No matter how cool your interface is, less of it would be better”
Źródło: Microsoft Clip Organizer Zacznijmy od samego początku… Do czego używamy komputera?
Matematyka w życiu codziennym Zawody Informacje.
Jak można wykorzystać swoją wiedzę z Matlaba
PORUSZANIE SIĘ I USTAWIANIE SĘDZIEGO W RÓŻNYCH SYTUACJACH BOISKOWYCH
gry dla przyszłych programistów
Algorytmy i struktury danych
ALGORYTMY I STRUKTURY DANYCH
Sztuczna Inteligencja Gry i programy oparte na szukaniu
Haskell Składnia funkcji.
Zapis prezentacji:

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

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ą

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

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

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

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)

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?

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.)

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

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)

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)

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…

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

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ń

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

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)

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ść

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

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

Mario AI Championship To teraz na YouTube’a!

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

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ł

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

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

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

The 2K BotPrize Competition 2008-2009: 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

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

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

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)

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

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

The 2K BotPrize Competition Oglądamy filmiki

KONIEC 