ALGORYTMY ROZWIĄZYWANIA GIER C.D.

Slides:



Advertisements
Podobne prezentacje
METODA PODZIAŁU I OGRANICZEŃ (Branch and Bound Method)
Advertisements

ANALIZA SIECIOWA PRZEDSIĘWZIĘĆ konstrukcja harmonogramu
Algorytmy sortowania i porządkowania
Schemat blokowy M START KONIEC
Algorytmy i struktury danych
Grafy spełniające nierówność Γ(G) < IR(G)
Grażyna Mirkowska PJWSTK, 10 stycznia 2001
Grażyna Mirkowska PJWSTK 15 listopad 2000
Wykład 6 Najkrótsza ścieżka w grafie z jednym źródłem
Algorytm Dijkstry (przykład)
Generowanie drzew decyzyjnych dla dużych zbiorów danych
„Program grający w szachy”
ALGORYTM Co to jest algorytm?
ALGORYTMY I STRUKTURY DANYCH
Wykład no 11.
Elementarne struktury danych Piotr Prokopowicz
Sztuczna Inteligencja Gry i programy oparte na szukaniu
Ciągi de Bruijna generowanie, własności
Programowanie liniowe całkowitoliczbowe
pseudokody algorytmów
Opracowała: Elżbieta Fedko
Biblioteka do tworzenia agentów w środowisku RoboCup
Szachy komputerowe. Ogólna idea silnika szachowego.
Dariusz Odejewski Krzysztof Wójcik
Promotor: dr inż. Leszek Koszałka Autor: Markuszewski Kamil
Magda Kusiak Karol Walędzik prof. dr hab. Jacek Mańdziuk
dr Anna Kwiatkowska Instytut Informatyki
Algorytmy genetyczne.
Algorytm mini-max.
POJĘCIE ALGORYTMU Pojęcie algorytmu Etapy rozwiązywania zadań
Zbiór do posortowania mieści się w pamięci
Podstawy programowania II
DRZEWA BINARNE Emilia Krukowska.
Algorytmy i struktury danych
Zadanie programowania liniowego PL dla ograniczeń mniejszościowych
Zadanie programowania liniowego PL dla ograniczeń mniejszościowych
Materiały pochodzą z Platformy Edukacyjnej Portalu
autorzy: Michał Przykucki Małgorzata Sulkowska
XML – eXtensible Markup Language
Spis treści W świecie algortmów -Budowa algorytmu
DMBO Branch and bound.
SYSTEMY EKSPERTOWE I SZTUCZNA INTELIGENCJA
IV EKSPLORACJA DANYCH Zadania eksploracji danych: klasyfikacja
Algorytmy i Struktury Danych
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Metody numeryczne szukanie pierwiastka metodą bisekcji
Laboratorium nr.3 Algorytm przyrównania globalnego
drzewa filogenetyczne
Algorytm znajdowania Największego Wspólnego Dzielnika.
Algorytmy i Struktury Danych Drzewa BTS, AVL
Algorytmy Genetyczne Anna Tomkowska Politechnika Koszalińska
Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/2006Prof. dr hab. Elżbieta Richter-Wąs Wykład 6 Model danych oparty.
GRA CHOMP. Czym jest chomp? Jest to gra dla dwóch osób, rozgrywana na prostokątnej tablicy, zwanej „tabliczką czekolady”
Autor: Michał Salewski
SZTUCZNA INTELIGENCJA
SZTUCZNA INTELIGENCJA
Temat 3: Podstawy programowania Algorytmy – 2 z 2 _________________________________________________________________________________________________________________.
Zbiory dynamiczne.
Zarządzanie projektami
ALGORYTMY I STRUKTURY DANYCH
Liczby naturalne i całkowite Spis treści Definicje Działania na liczbach Wielokrotności liczb naturalnych Cechy podzielności Przykłady potęg,potęgi o.
1.problem próbkowania (sampling problem) dobór charakterystycznych punktów powierzchni w celu uzyskania najlepszego efektu przy minimalizacji ilości danych.
Indeksy drzewiaste. ISAM ISAM - INDEXED SEQUENTIAL ACCESS METHOD Problem: –Dany jest plik uporządkowany – w jaki sposób zrealizować efektywnie zapytanie.
Algorytm Dijkstry Podano graf Zdefiniowano jego listę sąsiedztwa 1 2 3
Drzewa.
Zbiory rozłączne.
Efektywność algorytmów
Zarządzanie projektami
Sztuczna Inteligencja Gry i programy oparte na szukaniu
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Zapis prezentacji:

ALGORYTMY ROZWIĄZYWANIA GIER C.D. Algorytm „rozwiązywania” (slove) Algorytm PAB (Principal Variation Alfabeta) Algorytm rozpoznawania (scout) Algorytm SSS* Algorytm B* Porównanie wybranych algorytmów

Algorytm „rozwiązywania” (ang. slove) Najprostsza metoda wyznaczania drzewa rozwiązania bez badania wszystkich wierzchołków

Algorytm „rozwiązywania” (ang. slove) c.d. Dodatkowe założenie algorytmu: dopuszczalne są jedynie dwa stany liścia (WYGRANY albo PRZEGRANY) e(w) =

Algorytm „rozwiązywania” (ang. slove) c.d.

Algorytm PAB (Principal Variation Alfabeta) zaprezentowany przez Fishburna i Finkela 1980-tym roku

Algorytm PAB (Principal Variation Alfabeta) c.d. Idea algorytmu: wybieramy dowolną ścieżkę przyjmujemy hipotezę, że wartość funkcji oceniającej na liściu tej ścieżki jest równa wartości minimxowej korzenia sprawdzamy hipotezę jeżeli znajdziemy lepsze alternatywy: uruchamiamy algorytm alfa-beta

Algorytm rozpoznawania (ang. scout) zaprojektowany przez J. Pearla opiera się na podobnej idei co PAB wykorzystywany do teoretycznej analizy drzew gier w algorytmie wykorzystywane są testy

Algorytm rozpoznawania (ang. scout) c.d. TESTY: Celem testów jest rozstrzygnięcie czy węzeł powinien być dokładnie analizowany czy nie. Funkcja testowania może mieć schemat podobny do algorytmu „rozwiązywania”

Algorytm rozpoznawania (ang. scout) c.d. Algorytm ten jest: stosunkowo łatwy do analizy teoretycznej bardziej efektywny gdy rośnie głębokość drzewa badanych gier

Algorytm SSS* (State space search) 1979 r. Stockman z rodziny A* wg. Zasady „najpierw najlepszy” (best first) poszukuje optymalnego drzewa rozwiązania reprezentacja optymalnej strategii gracza przypomina metody heurystycznego przeszukiwania

Algorytm SSS* c.d. węzeł „w” drzewa analizowany jest z punktu widzenia zbioru poddrzew z korzeniem „w” na podstawie wartości liści takich poddrzew ustala się ich główne ograniczenia poddrzewo o największym górnym ograniczeniu analizowane jest jako pierwsze zakończenie przeszukiwania następuje w chwili znalezienia pierwszego drzewa rozwiązania

Algorytm SSS* c.d. Z każdym węzłem „w” związana jest informacja s(w) oraz liczba h(w). Funkcja s(w) jest dwuwartościowa: s(w) = Liczba h(w) jest wartością przypisywaną węzłowi „w” podczas wykonywania algorytmu

Algorytm SSS* c.d. Przykład planszy gry testowej (4x4) dla algorytmu SSS*

Algorytm SSS* c.d. Tworzenie węzłów w trakcie działania SSS* rozpoczynamy od węzła początkowego (0) i jego potomków (1) i (2). Każdy z nich reprezentuje grupę drzew rozwiązania

Algorytm SSS* c.d. W przypadku występowania kilku węzłów o tej samej wartości jako pierwszy do dalszej analizy wybrany zostanie węzeł położony najbardziej na lewo

Algorytm SSS* c.d.

Algorytm SSS* c.d. Zaleta: wyznacza jako pierwsze optymalne drzewo rozwiązania Wady: skomplikowana struktura, olbrzymie wymagania pamięciowe

Algorytm B* opublikowany przez Hansa Berlinera w 1979-tym roku. funkcja heurystyczna zwraca dwie wartości (pesymistyczną i optymistyczną ocenę pozycji) znajduje najlepsze posunięcie

Algorytm B* c.d. Dwie strategie: PROVEBEST I DISPROVEREST Koniec algorytmu: pesymistyczna wartość jednego posunięcia >= optymistycznym wartościom pozostałych

Algorytm B* c.d. PROVEBEST: pewne posunięcie jest lepsze od pozostałych DISPROVEREST: wszystkie posunięcia są od jednego wybranego

Algorytm B* c.d. Wybór węzła do dalszego rozpatrywania: PROVEBEST bada poddrzewo związane z założonym najlepszym posunięciem DISPROVEREST bada poddrzewo związane z pewnym hipotetycznie słabym posunięciem

Porównanie wybranych algorytmów Analizujemy wariant gry na planszy 8x8 z liczbami dodatnimi z przedziału <1, 9> i ujemnymi z przedziału <-9, -1>

Porównanie wybranych algorytmów c.d. 6 -7 8 -2 9 -1 3 2 -5 5 -6 7 -4 -8 1 -9 4 Przykładowa plansza gry

Porównanie wybranych algorytmów c.d. Algorytm SSS* lepszy w 58% przypadków Algorytm alfa-beta był lepszy 37% przypadków 5% wynik identyczny 5% przypadków algorytm „rozpoznawania” charakteryzował się mniejszą liczbą przetestowanych i wartościowanych wierzchołków w porównaniu z liczbą badanych wierzchołków w algorytmie alfa-beta W pozostałych przypadkach w trakcie wykonywania algorytmu „rozpoznawania” liście były testowane wielokrotnie

KONIEC