Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Algorytmy i struktury danych Drzewo stanów gry Klasyfikacja gier Przeglądanie drzew Pozyskiwanie wiedzy Status wybranych gier.

Podobne prezentacje


Prezentacja na temat: "Algorytmy i struktury danych Drzewo stanów gry Klasyfikacja gier Przeglądanie drzew Pozyskiwanie wiedzy Status wybranych gier."— Zapis prezentacji:

1 Algorytmy i struktury danych Drzewo stanów gry Klasyfikacja gier Przeglądanie drzew Pozyskiwanie wiedzy Status wybranych gier

2 Drzewo stanów zdarzenie C zdarzenie B zdarzenie A D E G F H I Stan S 1 S2S2 S3S3 S4S4 S5S5 S6S6 S7S7 S8S8 S9S9 S 10

3 Graf stanów zdarzenie C zdarzenie B zdarzenie A D E G F H I Stan S 1 S2S2 S3S3 S4S4 S5S5 S6S6 S7S7 S8S8 S9S9 S 10 J

4 Drzewo (graf) gry ruch C ruch B ruch A D E G F H I Sytuacja S 1 S2S2 S3S3 S4S4 S5S5 S6S6 S7S7 S8S8 S9S9 S 10

5 Definicja n-osobowej gry Drzewo topologiczne z wyróżnionym wierzchołkiem A, nazywanym punktem początkowym. Funkcja wypłaty, która przyporządkowuje każdemu wierzchołkowi końcowemu pewien wektor n-wymiarowy. Rozbicie zbioru niekońcowych wierzchołków drzewa na n+1 zbiorów S0, S1,..... Sn, zwany zbiorami posunięć graczy. Funkcję za pomocą, której możemy określić czy dany wierzchołek topologicznego drzewa gry jest wierzchołkiem końcowym Mówimy, że gra jest skończona, jeśli jej dendryt zawiera tylko skończoną ilość wierzchołków. Większość gier towarzyskich to gry skończone.

6 Definicja n-osobowej gry cd. Rodzinę rozkładów prawdopodobieństwa, określonych dla każdego wierzchołka ze zbioru S0, na zbiorze wierzchołków następujących bezpośrednio po nim. Podrozbicie każdego ze zbiorów Si, dla i=1,...n, na zbiory Sij zwane zbiorami informacyjnymi, takie że każde dwa wierzchołki z tego samego zbioru informacyjnego mają tę samą ilość wierzchołków następującą bezpośrednio po nich, ponadto żadne z wierzchołków nie następuje po żadnym innym z tego samego zbioru informacyjnego. Określony dla każdego zbioru informacyjnego Sij zbiór wskaźników Iij wraz z przyporządkowanym każdemu wierzchołkowi X ze zbioru Sij wzajemnie jednoznacznym odwzorowaniem zbioru Iij na zbiór wierzchołków następujących bezpośrednio po X.

7 Strategia gry Przez czystą strategię i-tego gracza rozumiemy funkcję, która przyporządkowuje każdemu zbiorowi informa- cyjnemu S i j i-tego gracza jeden ze wskaźników z I i j. Strategią mieszaną gracza (ang. mixed strategy) jest rozkład prawdopodobieństwa na zbiorze jego czystych strategii. W przypadku gier skończonych, gdzie gracz ma tylko skończoną liczbę m strategii czystych, strategia mieszana sprowadza się do wektora m-wymiarowego x=(x1,.....,xm) spełniającego warunki:

8 Przykładowa gra AI II O R R RO (-1,1) (1,-1) (-1,1) O Gracz I wybiera orła (O) lub reszkę (R). Gracz II, nie znając wyboru gracza I, wybiera również orła lub reszkę. Jeśli obydwaj wybrali to samo, gracz II wygrywa złotówkę od gracza I, w przeciwnym przypadku gracz I wygrywa złotówkę od gracza II.

9 Podział gier Liczba graczy – gry mogą się różnić między sobą ilością graczy, przy czym liczba graczy waha się od 1 do n Bilans gry – wektor wypłaty dla gry o n graczach przyjmuje postać (p1,...,pn), gdzie pi jest wartością wypłaty przypadającego na gracza i w końcowym wierzchołku drzewa ruchów. Złożoność gry – o złożoności gry decyduje przede wszystkim rozmiar drzewa gry Popularność gry – w przypadku tej własności najlepszym kryterium jest liczba aktualnych graczy oraz historia gry. Trudność gry – o trudności danej gry decyduje potrzeba ciągłego nabywania doświadczenia przez gracza po to by podnosić swój poziom gry. Kryterium zakończenia: nagła śmierć (o/x na nieskończonej planszy) vs. stałe zakończenie (reversi). Informacje o stanie gry

10 Badania Gry z dwoma graczami oraz brydż. Gry z zerowym bilansem (o sumie zerowej) : w każdym wierzchołku końcowym drzewa ruchów spełniony jest warunek : Gdzie p i jest wypłatą przypadająca na gracza i. Strata jednego z graczy powoduje tutaj jednoczesny zysk drugiego. Gry nietrywialne: najlepsza strategia nie daje się otrzymać poprzez matematyczną analizę wszystkich możliwych stanów gry przy wykorzystaniu dostępnych obecnie komputerów. Gry dobrze znane: uprawia je stosunkowo duża liczba graczy. Gry wymagające doświadczenia: doświadczony gracz ma dużą przewagę nad graczem początkującym, tj. istnieje wyraźna zależności miedzy doświadczeniem gracza, a szansą zwycięstwa. Co ciekawe dotyczy to równiez gier z czynnikiem losowym np. brydż, trik-trak

11 Stan badań Gry rozwiązane Go-Moku Gry, dla których istnieją programy grające na poziomie najlepszych graczy lub wyższym tryk-trak, warcaby (64), otello, szachy, brydż Gry, w których dominują ludzie i prawdopodobnie ten stan nie ulegnie zmianie w najbliższych latach go

12 Rozwiązywanie gier Gry bardzo słabo rozwiązane (ang. ultra-weakly solved): wszystkie początkowe pozycje mają określoną teoretyczną wartość gry (np. Hex) Gry słabo rozwiązane (ang. weakly solved): dla wszystkich początkowych pozycji można określić strategię, dzięki której możemy osiągnąć teoretyczny rezultat (przy rozsądnych zasobach obliczeniowych, pamięciowych i czasowych) Gry mocno rozwiązane (ang. strongly solved): dla wszystkich legalnych pozycji można wyznaczyć strategię pozwalającą osiągnąć teoretyczną wartość.

13 Programy grające Głębokie przeszukiwanie (Deep-blue: Deep Blue 32- procesorowy komputer IBM SP-2, z każdym procesorem połączonych było szesnaście specjalizowanych procesorów szachowych: dwieście milionów szachowych pozycji na sekundę. Głębokość: co najmniej 12 pojedynczych ruchów. Duży rozmiar pamięci (baza końcówek chinooka - warcaby) Pozyskiwanie wiedzy (automatyczne np. longistello – othello lub od ekspertów np. komercyjne programy szachowe) Symulacje (brydż, poker, scrabble) Rozumowanie bez zrozumienia (Proverb: krzyżówki)

14 Minimax 1. Określ – głebokość przeszukiwania 2. Dla węzłów oceń sytuację w kategoriach dobrej dla programu (tj. wyższa wartość = lepsza sytuacja) 3. Propaguj sytuację dla węzłów wcześniejszych wybierając odpowiednio dla węzła odpowiadającego sytuacji w której wykonuje ruch program największą wartość spośród dzieci węzła dla węzła odpowiadającego sytuacji w której wykonuje ruch przeciwnik najmniejszą wartość spośród dzieci węzła

15 Przeglądanie drzewa gry S1S1 S2S2 S3S3 S4S4 S5S5 S6S6 S7S7 S 13 S8S8 S9S9 S 10 S 11 S 12

16 Ocena sytuacji S1S1 S2S2 S3S3 S4S S5S5 S6S6 S7S7 S 13 S8S8 S9S9 S 10 S 11 S 12

17 Minimax S1S1 S2S2 S3S3 S4S S5S5 4 S6S6 6 S7S7 5 S 13 8 S8S8 6 S9S9 2 S 10 7 S 11 7 S 12

18 Minimax 5 S1S S2S2 S3S3 S4S S5S5 4 S6S6 6 S7S7 5 S 13 8 S8S8 6 S9S9 2 S 10 7 S 11 7 S 12

19 AlfaBeta 1. Z: Podczas częściowej ewaluacji drzewa określone zostają pewna wartości graniczne węzła W oznaczające najwyższą/najniższą aktualną wartość 2. Jeżeli podczas ewaliacji potomków w kolejnym poddrzewie napotykamy węzeł podnoszący ocenę W (dla ruchu przeciwnika) lub obniżający ocenę W (dla ruchu programu) ignorujemy całe poddrzewo.

20 Minimax – alfa-beta 5 S1S S2S2 S3S3 S4S S5S5 4 S6S6 6 S7S7 5 S 13 8 S8S8 6 S9S9 2 S 10 7 S 11 7 S 12

21 Ulepszenia Zapamiętywanie uzyskanych dotychczas informacji – w ten sposób unikamy powtarzania obliczeń dla tych samych lub podobnych sytuacji występujących w drzewie ruchów. Zapewnienie odpowiedniego porządku ruchów w drzewie – dzięki temu zwiększa się prawdopodobieństwo wystąpienia najlepszych ruch na początku przeszukiwania danego poziomu drzewa. Zmniejszanie okna przeszukiwania – początkowe okno przeszukiwania można ustawić na oczekiwaną wartość +/- zakładany/odgadnięty rozmiar okna (standardowo początkowymi wartościami Alfy i Bety są + / - ) co może zdecydowanie zredukować liczbę rozpatrywanych węzłów. Ustalanie zmiennej głębokości szukania – metody te polegają na dynamicznej zmianie głębokości przeszukiwania drzewa na podstawie, zdobytej do tej pory informacji na temat sytuacji w grze.

22 Symulacje Symulator losuje np. rozkład kart i rozgrywa partię. W ten sposób uzyskujemy pojedynczą wartość symulacji,która składa się z liczby wziątek. Cała partia zostaje następnie powtórzona poprzez rozdanie innego układu kart dla przeciwników. Badanie statystyczne zostanie wykonane wielokrotnie. Zgromadzona wiedza pozwoli oszacować najlepsze zagrania, z których wybieramy teoretycznie najlepsze. Na przykład, jeśli 90% zagrań daną kartą prowadzi do najlepszego rezultatu, gramy tą kartą. W oparciu o takie badania, program może z dużą pewnością stwierdzić zagranie jaką kartą jest najlepsze. W programie musi być zaimplementowany algorytm grający, korzystający z pełnej informacji, aby rozgrywać poszczególne przypadki do końca.

23 Alternatywne podejście SSS* SSS* (ang. State Space Search). Algorytm typu best- first, nie sprawdza potomków ostatnio sprawdzanego węzła, lecz rozwija najlepiej oceniane z dotychczas sprawdzanych. Udowodniono, że jest lepszy od alfa-beta pod względem rozmiaru przeglądanego drzewa każdy węzeł odwiedzany przez SSS* jest też odwiedzany przez alfa-beta, ale nie na odwrót. Problem: algorytm ten wymaga wykładniczej ilosci pamieci i dlatego nie jest wykorzystywany w praktyce.

24 Alternatywne podejście B* i PB* B*. Algorytm ten przypisuje pozycjom nie jedną wartość lecz dwie: optymistyczne i pesymistyczne oszacowanie wartości minimaksowej. Przegląda drzewo aktualizując wartości potomków korzenia do momentu, aż ustali wierzchołek, którego pesymistyczna wartość jest nie mniejsza, niż optymistyczna każdego pozostałego. Róznicą w stosunku do alfa-beta jest to, że B* nie ustala wartości minimaksowej a jedynie znajduje najlepsze posunięcie. Problem: konstrukcja funkcji oceniającej, która zwraca wiarygodne optymistyczne i pesymistyczne wartości minimaksowe. (Probability-based B*). Rozwinieciem algorytmu B*, w którym wartości graniczne zastąpiono rozkładem prawdopodobienstwa.

25 Algorytm Liczb Spiskowych Algorytm zakłada selektywne pogł ę bianie (ang. selective deepening) tzn. niektóre gał ę zie drzewa ruchów s ą gł ę biej przeszukiwane od innych. Przeszukiwane s ą te cz ęś ci drzewa, które daj ą najwi ę ksze prawdopodobie ń stwo zmiany warto ś ci korzenia drzewa. Ta strategia jest zarazem zalet ą jak i wad ą algorytmu. Kolejnych wierzchołki drzewa są wybierane do rozwini ę cia, tak aby zaw ę zi ć mo ż liwe warto ś ci jakie mo ż e przyjmowa ć korze ń drzewa. Prawdopodobie ń stwo zmiany warto ś ci korzenia drzewa ruchów wyra ż a warto ść liczby spiskowej. Liczba spiskowa przyjmuje warto ść minimalnej liczby w ę złów ko ń cowych, które musz ą zmieni ć swoj ą warto ść ( musz ą zosta ć gł ę biej przeszukane) aby warto ść korzenia mogła ulec zmianie.

26 Algorytm Liczb Spiskowych O tych ko ń cowych w ę złach mówi si ę, ż e spiskuj ą aby osi ą gn ąć zamierzon ą warto ść korzenia. Zazwyczaj stosuje się jakie ś ograniczenie wielko ś ci liczby spiskowej jako kryterium zako ń czenia działania algorytmu: próg spiskowy (CT). CT (ang. conspiracy threshold) tj. minimalna liczba w ę złów konspiratorów wystarczaj ą ca do uznania danej warto ś ci korzenia za nieprawdopodobn ą. W ę zły w drzewie ruchów s ą tak rozwijane aby zaw ęż a ć przedział mo ż liwych warto ś ci korzenia, a ż do momentu gdy istnieje tylko jedna warto ść korzenia, dla której liczba spiskowa jest mniejsza od progu spiskowego. Jeżeli prawdopodobie ń stwo zmiany warto ś ci korzenia przy dalszym pogł ę bianiu drzewa ruchów b ę dzie bardzo małe, wtedy mo ż na zako ń czy ć pogł ę bianie drzewa, je ś li nie wtedy algorytm nadal powinien pogł ę biać drzewo ruchów

27 Algorytm Liczb Spiskowych Dla przykładu: ile terminalnych węzłów musiało by zmienić wartość, aby korzeń drzewa zmienił wartość na 4 (Vroot = 4). Jeśli węzeł E zmieni swoją wartość na 4 wtedy korzeń drzewo osiągnie wartość 4. Podobnie jeśli węzeł F zmieni swoją wartość na 4, równieŜ wtedy korzeń drzewa osiągnie wartość 4. Wynika z tego, że liczba spiskowa dla Vroot = 4 wynosi 1 (CN=1).

28 Algorytm Liczb Spiskowych Przypadek gdy chcemy osiągnąć Vroot = 1. W tym przypadku węzły D lub E muszą osiągnąć wartość 1 oraz węzły F lub G muszą osiągnąć wartość 1. Wartość CN dla Vroot =1 wynosi 2.

29 Algorytm Liczb Spiskowych Na wyliczanie warto ś ci liczby spiskowej istnieje prosta metoda. Dla w ę złów drzewa typu MAX, je ś li chcemy zwi ę kszy ć jego warto ść, wystarczy ż eby zmieniła si ę warto ść tylko jednego z jego potomków. Wybieramy zawsze tego potomka, który wymaga najmniejszej gł ę boko ś ci przeszukiwania potrzebnej do podniesienia jego warto ś ci. Je ś li chcemy obni ż y ć warto ść w ę zła typu MAX, wtedy musimy obni ż y ć warto ś ci tych potomków, których warto ść jest wi ę ksza od zało ż onej. W tym przypadku musimy zsumowa ć liczb ę w ę złów spiskuj ą cych dla potomków MAXa. W przypadku w ę zła typu MIN sytuacja jest dokładnie odwrotna.

30 Pozyskiwanie wiedzy Tablice transpozycji (zapamiętywanie pewnych sytuacji w grze razem z ich ocenami) Bazy końcówek Książka otwarć Funkcja oceniająca

31 Funkcje oceniające Zbiór cech f, względem, których można oceniać pozycję gry. Dla każdej z tych cech przyporządkujemy wagę w, której wartość wyraża jak bardzo dana cecha wpływa na końcową ocenę pozycji. Większość programów wykorzystuje liniową kombinację cech oraz przypisanych do nich wag aby otrzymać wartość danej pozycji. Zwykle takie strojenie funkcji oceniającej odbywa się ręcznie bez pomocy algorytmów. Rozsądne dokładanie wiedzy do funkcji oceniającej przynosi dużą poprawę jakości gry programu. Niestety istnieją wyjątki od sprawdzonych zasad, które chcemy zawrzeć w funkcji oceniającej. Arcymistrz szachowy Kevin Spraggett: Spędziłem połowę mojej szachowej kariery ucząc się zasad silnej gry, a drugą połowę swojego czasu poświęciłem ucząc się kiedy je łamać.

32 Algorytm TDL (Temporal Difference Learning) Algorytmów ucz ą cy si ę z krytykiem (ang. reinforcement learning), tj. w trakcie uczenia nie s ą dost ę pne prawidłowe odpowiedzi, a jedynie ł ą czna ocena po całej serii reakcji. Przykładem takiej sytuacji mo ż e by ć partia szachów, której wynik jest ocen ą całej sekwencji ruchów. Celem uczenia z krytykiem jest propagacja wsteczna wyniku ko ń cowego gry, tak aby wpływa ć na ocen ę w ę złów drzewa, poprawiaj ą c jako ść tych ocen. Rozwa ż my serię ocen P 1, P 2,..., P N. S ą to oceny pozycji po ka ż dym ruchu (ruch programu i odpowied ź przeciwnika), a ich warto ś ci wyra ż aj ą szans ę programu na zwyci ę stwo z ruchu na ruch. Na przykład w szachach dla pozycji pocz ą tkowej P1 ma warto ść równ ą lub blisk ą zeru. W przypadku zwyci ę stwa P N =1, w przypadku pora ż ki P N =-1, dla ruchów pomi ę dzy pierwszym a N- tym oceny przybieraj ą ró ż ne warto ś ci z przedziału (-1,1).

33 Algorytm TDL cd. Je ś li warto ść funkcji P dla pozycji t (P t ) jest mniejsza (wi ę ksza) ni ż pozycji t+1 (P t+1 ), wtedy powinni ś my podnie ść (obni ż y ć ) ocen ę pozycji t, ż eby lepiej przewidywała warto ść pozycji t+1. Algorytmu TDL modyfikuje oceny, na podstawie ró ż nic wyst ę puj ą cych po sobie ocen. Uaktualnianie wektora wag w funkcji oceniaj ą cej odbywa si ę po zako ń czeniu partii według wzoru: gdzie: w – wektor wag N – liczba ruchów ( ruch zdefiniowany jest jako ruch programu i odpowied ź przeciwnika) wt – zmiany wektora w obliczane po ka Ŝ dym ruchu

34 Algorytm TDL cd. Ró ż nice w t s ą obliczane po każdym ruchu programu i odpowiedzi przeciwnika. w – wektor wag, które podlegaj ą strojeniu, t – numer aktualnie analizowanego ruchu, wt – zmiana zbioru wag w ruchu t P t – warto ść funkcji oceniaj ą cej w kroku t ( na ko ń cu gry P N przyjmuje warto ść funkcji wypłaty), t – ró ż nica ocen kolejnych sytuacji po odpowiedzi przeciwnika (0< <1) – współczynnik odpowiadaj ą cy za to jak bardzo poprzednie oceny wpływaj ą na bie żą c ą zmian ę wag ( =0 – brak wpływu, =1 wszystkie poprzednie ruchy s ą traktowane tak samo), w P k – zbiór cz ą stkowych pochodnych dla ka ż dej składowej wektora w, >0 – współczynnik uczenia ( małe powoduje małe zmiany w, du ż e powoduje, ż e w bardziej si ę zmienia) i s ą parametrami heurystyki, ich warto ść powinna by ć dobierana do ś wiadczalnie

35 Algorytm TDL cd. Wzór na ró ż nice warto ś ci funkcji oceniaj ą cej mi ę dzy ruchem t+1 a ruchem t t = Pt+1 – Pt Nauka powinna by ć przeprowadzana poprzez rozgrywanie serii partii i modyfikacj ę wag funkcji oceniaj ą cej po zako ń czeniu ka ż dej partii TDL z powodzeniem zaimplementowano m.in. w najsilniejszym programie graj ą cym w triktraka TD-Gammon programie szachowym Cilkchess programie szachowym KnightCap (tu jako wartości poczatkowe zadano tylko ustalone wagi w cz ęś ci odpowiedzialne za ocen ę materialn ą pozycji pozostałe wagi zostały zestrojone przez TDL)

36 Rozwiązane gry Młynek (Nine Men Morris) Connect-Four Awari (gra typu Mankala) Go-Moku Qubic (trójwymiarowe kółko i krzyżyk 4x4x4) Nim L-game Fanorona Bardzo słabo rozwiązane gry: Hex

37 Gry zdominowane przez komputery Warcaby (8x8) (Checkers) Renju Otello Scrabble Tryktrak (Backgammon)

38 Programy grające na poziomie Mistrza świata Szachy Warcaby (10x10) Najlepszych graczy Go (9x9) Chińskie szachy Brydż Amatorskim Go


Pobierz ppt "Algorytmy i struktury danych Drzewo stanów gry Klasyfikacja gier Przeglądanie drzew Pozyskiwanie wiedzy Status wybranych gier."

Podobne prezentacje


Reklamy Google