Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Tomasz Młocek. Pierwsze mechanizmy rozgrywające końcówki szachowe, k. XIX w. Przełomowa praca Claudea Shannona, Programing a Computer for Playing a Chess.

Podobne prezentacje


Prezentacja na temat: "Tomasz Młocek. Pierwsze mechanizmy rozgrywające końcówki szachowe, k. XIX w. Przełomowa praca Claudea Shannona, Programing a Computer for Playing a Chess."— Zapis prezentacji:

1 Tomasz Młocek

2 Pierwsze mechanizmy rozgrywające końcówki szachowe, k. XIX w. Przełomowa praca Claudea Shannona, Programing a Computer for Playing a Chess z 1950 r. Nowe spojrzenie na problem na podstawie teorii gier. Wykorzystanie algorytmu MINMAX. Propozycja 2 schematów, które są aktualne do dziś. Najprawdopodniej 1956 pierwsza implementacja programu na komputerze MANIAC I. Programy w tym czasie raczej tylko przestrzegają reguły gry pierwsza edycja Szachowych Mistrzostw Świata Komputerów Lata 80te najlepsze programy (Chess) osiągają ranking ~2000 ELO Garry Kasparov ( 2850 ELO ) 1997 komputer Deep Blue pokonał po raz pierwszy mistrza świata Garriego Kasparova.

3 Szachy – standardowy problem sztucznej inteligencji Szachy – gra skończona, o pełnej informacji, sumie zerowej Wartość MiniMaxowa. Twierdzenie o MinMaxie. Drzewo gry. Zbyt duża złożoność. Konieczność skrócenia drzewa. Pojęcie funkcji oceniającej.

4 Funkcja oceniąjąca zwraca przybliżoną wartość minimaxową dla danego liścia – ostatniej pozycji w rekurencji. Przyjęty przez Shannona schemat funkcji oceniającej : f(P) = i=0..N (w i *A i (P)) w i – waga własności i, A i – funkcja zwracająca 0 bądź 1 i oceniająca czy pozycja P ma własność A i, Przykładowo – W 0 własność materialna. W 0 = 2000(K-K) + 9(Q-Q)+5(R-R)+3(B-B + N-N)+(P-P) jako argumenty ilość kolejnych figur na planszy O wiele trudniejsze w oszacowaniu są własności pozycyjne, zależą od wielu czynników – stan gry, oddziaływanie z innymi wł. Przykładowa waga własności oceny pozycji pionków : W 1 = -0.5(D-D+S-S+I-I) Odpowiednio ilość zdublowanych, opoźnionych i izolowanych pionków. Istnieje wiele innych własności dla których wagi określa się często empirycznie na podstawie rozegranych wcześniej pojedynków.

5 Mając do dyspozycji funkcję oceniającą oraz generator ruchów można łatwo stworzyć dosyć szybki program grający w szachy. SHANNON_A(Pozycja P, N – głębokość przeszukiwania) { If(N==0) OR Koncowa(P) return F(P) Else { List = NULL For all(P – nastepnik P) List.addToList(SHANNON(P,N-1)) If(ruch gracza A) Return List.max() Else Return List.min() } Analizując drzewo przeszukiwania tego algorytmu można dojść do wniosku że w niektórych momentach można nie analizować kolejnej gałęzi, oszczędzając przy tym sporo czasu.

6 Schemat B, różni się od A tylko wyborem w głównej pętli sensownych ruchów Wykorzystuje to algorytm AB, który zaniechuje sprawdzania danego wariantu jeśli wcześniej znaleźliśmy lepszy. Ważna jest kolejność generowania ruchów – od potencjalnie najlepszych do najgorszych. Inne metody usprawniające selekcję ruchów do wykonania to min. Iteracyjne pogłębianie.

7 Funkcja oceniająca a horyzont zdarzeń Baza otwarć. Zawiera wiele scenariuszy otwarć. Baza końcówek. Istnieje baza do 6 figur, zajmuj około 1TB. dostępne w sieci p2p.


Pobierz ppt "Tomasz Młocek. Pierwsze mechanizmy rozgrywające końcówki szachowe, k. XIX w. Przełomowa praca Claudea Shannona, Programing a Computer for Playing a Chess."

Podobne prezentacje


Reklamy Google