Algorytmy dla gier dwuosobowych

Podobne dokumenty
Wyznaczanie strategii w grach

Tworzenie gier na urządzenia mobilne

Teoria gier. Wykład7,31III2010,str.1. Gry dzielimy

Teoria gier. Teoria gier. Odróżniać losowość od wiedzy graczy o stanie!

Sztuczna Inteligencja i Systemy Doradcze

SID Wykład 4 Gry Wydział Matematyki, Informatyki i Mechaniki UW

Partition Search i gry z niezupełną informacją

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

Gry. wykład 5. dr inż. Joanna Kołodziejczyk. Zakład Sztucznej Inteligencji ISZiMM. ESI - wykład 5 p. 1

Teoria gier. wstęp Teoria gier Zdzisław Dzedzej 1

Algorytmy z powrotami. Algorytm minimax

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

MODELOWANIE RZECZYWISTOŚCI

3. MINIMAX. Rysunek 1: Drzewo obrazujące przebieg gry.

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

WABOT CZYM JEST SZTUCZNA INTELIGENCJA? SZTUCZNA INTELIGENCJA REPREZENTACJA WIEDZY KNOWLEDGE SOUP PROBLEM

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

Heurystyczne przeszukiwanie grafów gier dwuosobowych

MODELOWANIE RZECZYWISTOŚCI

CZYM JEST SZTUCZNA INTELIGENCJA? REPREZENTACJA WIEDZY SZTUCZNA INTELIGENCJA PROJEKTOWANIE ALGORYTMÓW I METODY SZTUCZNEJ INTELIGENCJI

ATOLL. Wykonali: Aleksandra Kuchta, Łukasz Wójcik, Sztuczna Inteligencja, Semestr trzeci, Kierunek Informatyka, Wydział Informatyki i Zarządzania,

Adam Meissner. SZTUCZNA INTELIGENCJA Gry dwuosobowe

Propozycje tematów zadań

Alfa-beta Ulepszenie minimax Liczba wierzchołk ow w drzewie gry. maksymalnie wd. minimalnie wbd/2c + wdd/2e Algorytmy przeszukiwania drzewa gry 5

Algorytmy i Struktury Danych, 2. ćwiczenia

Sztuczna Inteligencja i Systemy Doradcze

Programowanie Funkcyjne. Prezentacja projektu, 7 stycznia 2008, Juliusz Sompolski

Heurystyczne przeszukiwanie grafów w gier dwuosobowych

Podstawy sztucznej inteligencji

METODY SZTUCZNEJ INTELIGENCJI 2 Opis projektu

Pawnographic chess. (Sztuczna inteligencja) Wydzia ł Informatyki i Zarządzania Informatyka. Pozna ń, 25 lutego 2008 r.

Rozwiązywanie problemów metodą przeszukiwania

5.9 Modyfikacja gry Kółko i krzyżyk

Techniki sztucznej inteligencji w programach grających

Praktyczne aspekty programowania gier logicznych. Piotr Beling

Teoria gier. prof. UŚ dr hab. Mariusz Boryczka. Wykład 4 - Gry o sumie zero. Instytut Informatyki Uniwersytetu Śląskiego

Planowanie drogi robota, algorytm A*

W powyższym kodzie utworzono wyliczenie dni tygodnia.

Wykład 6. Drzewa poszukiwań binarnych (BST)

Przedmiotem rozważań są zależności pomiędzy obliczeniami maszynowymi a ludzką inteligencją

Heurystyki. Strategie poszukiwań

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

Sztuczna inteligencja w programowaniu gier

Wykład 2. Drzewa poszukiwań binarnych (BST)

Algorytmiczne Aspekty Teorii Gier Rozwiązania zadań

Listy, kolejki, stosy

Programowanie gier logicznych

Projekt zaliczeniowy gra PENTAGO

Jak oceniać, gdy nic nie wiemy?

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

Metody przeszukiwania

Heurystyczne przeszukiwanie przestrzeni stanów

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

Drzewa binarne. Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0. jest drzewem binarnym Np.

Teoria gier. dr Przemysław Juszczuk. Wykład 2 - Gry o sumie zero. Instytut Informatyki Uniwersytetu Śląskiego

ZASTOSOWANIE ALGORYTMU GENETYCZNEGO DO KONSTRUKCJI

Instrukcja obsługi programu

"Programowanie gry w szachy" Praca magisterska

GRY I ZABAWY UMYSŁOWO- LOGICZNE JAKO FORMA UPOWSZECHNIANIA KULTURY. Donata Fraś

Szachy INSTRUKCJA. rekwizyty: 1) Bierki - 32 szt. 2) plansza - 1 szt.

Algorytmy i struktury danych

Gra: Partnerstwo biznesowe

SZACHY mini INSTRUKCJA. rekwizyty: 1) Bierki - 32 szt. 2) plansza - 1 szt.

Algorytmy mrówkowe. H. Bednarz. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Inteligentne systemy informatyczne

Wstęp do programowania. Drzewa podstawowe techniki. Piotr Chrząstowski-Wachtel

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

Heurystyczne metody przeszukiwania

Sztuczna inteligencja

Risk-Aware Project Scheduling. SimpleUCT

Sztuczna Inteligencja i Systemy Doradcze

Wprowadzenie do teorii gier

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel

Porządek symetryczny: right(x)

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

10. Wstęp do Teorii Gier

SZTUCZNA INTELIGENCJA

Algorytmy i schematy blokowe

Teoria gier matematyki). optymalności decyzji 2 lub więcej Decyzja wpływa na wynik innych graczy strategiami

Wstęp do Sztucznej Inteligencji

Wnioskowanie jako przeszukiwanie przestrzeni stanów

Wysokość drzewa Głębokość węzła

Algorytmy sztucznej inteligencji

W którym rozważamy problemy pojawiające się, gdy próbujemy planować z góry w świecie zawierającym wrogiego agenta.

Wykład 2. Drzewa zbalansowane AVL i 2-3-4

ĆWICZENIE 1: Przeszukiwanie grafów cz. 1 strategie ślepe

Elementy kognitywistyki II:

Implementacja gry szachy tradycyjne

Mechanizm wyboru następnego wierzchołka w grafie

Algorytmy przeszukiwania grafów i drzew dla gier i łamigłówek

Przeszukiwanie przestrzeni rozwiązań, szukanie na ślepo, wszerz, wgłąb

Algorytmy metaheurystyczne Wykład 11. Piotr Syga

34. NIE TYLKO WORECZKI CZYLI O ROZUMIENIU SYSTEMU DZIESIĘTNEGO, CZ. II

LEKCJA 4. Gry dynamiczne z pełną (kompletną) i doskonałą informacją. Grą dynamiczną jest każda gra w której gracze wykonują ruchy w pewnej kolejności.

Zadanie 1. Zadanie 2. Zadanie 3. Zadanie 4. Zadanie 5. Zadanie 6. Zadania przykładowe do pierwszego kolokwium z AA

Tworzenie gier na urządzenia mobilne

Luty 2001 Algorytmy (4) 2000/2001

Algorytmy i złożoności. Wykład 3. Listy jednokierunkowe

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

Metody systemowe i decyzyjne w informatyce

Przykład. 1 losuje kartę z potasowanej talii, w której połowa kart ma kolor czarny a połowa czerwony. Postać ekstensywna Postać normalna

Transkrypt:

Algorytmy dla gier dwuosobowych Wojciech Dudek Seminarium Nowości Komputerowe 5 czerwca 2008

Plan prezentacji Pojęcia wstępne (gry dwuosobowe, stan gry, drzewo gry) Algorytm MiniMax Funkcje oceniające Algorytm α, β cięć Tablice transpozycji

Rodzaje gier Rodzaje gier deterministyczne niedeterministyczne pełna szachy, go monopol informacja warcaby, otello niepełna.. poker, brydż informacja scrabble

Model gry W grze uczestniczy dwóch graczy. Gracze wykonują ruchy naprzemiennie. W każdym momencie jest skończona liczba możliwych do wykonania ruchów. (skończoność) Sytuacja na planszy i wykonany ruch jednoznacznie wyznaczają następną sytuację na planszy. (determinizm) Sytuacja na planszy może być jednoznacznie zaklasyfikowana jako: wygrana pierwszego gracza, wygrana drugiego gracza, remis, sytuacja nierozstrzygnięta (rozgrywka może jeszcze trwać)

Gra dwuosobowa Cel Interesują nas dwuosobowe gry deterministyczne z pełną informacją Szukamy najlepszej strategii (sekwencji ruchów) dla każdej odpowiedzi przeciwnika.

Stan gry Sytuacja na planszy Kto się rusza Rysunek: Plansza

Drzewo gry Partia może być w pełni opisana przez ciąg naprzemiennych ruchów obu graczy od stanu początkowego do rozstrzygnięcia (wygranej/przegranej/remisu). Rozważamy wszystkie możliwe scenariusze rozwoju gry. Naturalna reprezentacja, to drzewo.

Drzewo gry Rysunek: Drzewo gry, Kółko i krzyżyk

Przeszukiwanie ruchów Wygrana M, Przegrana -M, Remis 0 Jesteśmy graczem Max Przeciwnik nam przeszkadza, czyli my dążymy do 1 a on do -1 Przeciwnik to Min Nie wiemy jak zagra Min, zakładamy że zagra jak najkorzystniej dla siebie

Zasada MiniMax Stany rozstrzygnięte w drzewie gry mają swoją ocenę {M,-M,0} Poziomy należą na przemian do Min i do Max Stany nierozstrzygnięte otrzymują ocenę wg. zasady: Zasada poziom Max a: maximum ocen z jego węzłów potomnych poziom Min a: minimum ocenę z jego węzłów potomnych

MiniMax Rysunek: MiniMax

Uwagi o MiniMax Nie musimy budować całego drzewa Przechodzimy drzewo w głąb (DFS) Czasami drzewo jest za duże. Obcięcie, i heurystyczna ocena stanu

Funkcje oceniające Chcemy przybliżyć ocene sytuacji na planszy Typowe dla szchów Rank(s) = w 1 f 1 (s) + w 2 f 2 (s) +... f 3 (s) = (ilosc h etmanow b ialych) (ilosc h etmanow c zarnych) Dla kółka i krzyżyk np. ilośc gróźb

Głębokość Dla szchów ilość możliwych ruchów w każdym kroku, ok b=35 ; długość partii m=100. (35 100 ) Dla minimaxa ok b=4 (nowicjusz) 8 - przeciętny PC, mistrz ; 12 - Kasparow, DeepBlue Można grać ze zmienną głębokością przeszukiwania.

Algorytm MiniMax function minimax(node, depth) if node is a terminal node return value of node if depth = CutoffDepth return the heuristic value of node else let a := -inf foreach child of node let a := max(a, -minimax(child, depth+1)) return a

Algorytm α, β cięć Rysunek: MiniMax

AlfaBeta function minimax(node, depth) return alfabeta(node, depth, -inf, +inf) function alfabeta(node, depth, alfa, beta) if node is a terminal node or depth = 0 return the heuristic value of node else foreach child of node beta := min(beta, alfabeta(child, depth-1, alfa, beta)) if alfa >= beta return alfa return beta else {my mamy zagrac w wezle} foreach child of node alfa := max(alfa, alfabeta(child, depth-1, alfa, beta)) if alfa >= beta return beta return alfa

Negamax function negamax(node, depth, alfa, beta) if node is a terminal node or depth = 0 return the heuristic value of node else foreach child of node alfa := max(a, -negamax(child, depth-1, -beta, -alfa)) {the following if statement constitutes alpha-beta pruning} if alfa >= beta return beta return alfa

Tablice transpozycji Zapamiętujemy ocenione stany, żeby nie sprawdzać kilka razy tego samego. Do uszeregowania ruchów, dla iteracyjnego pogłebiania Jako strukturę zapamiętującą używamy tablic haszujących.

Zorbrist hashing zorbrist[typ figury][kolor][pozycja] wypełnimy liczbami losowymi 64 bitowymi hash = xor(zorbrist[t i ][k i ][p i ]) dla każdej figury i łatwo/szybko się liczy

Kilka faktów Komputery grają dobrze w szachy (DeepBlue - Kasparow), warcaby, otello W Go komputery grają słabo (b=300)