Szachy komputerowe. Ogólna idea silnika szachowego.

Slides:



Advertisements
Podobne prezentacje
PRAM.
Advertisements

Algorytmy sortowania i porządkowania
Algorytmy sortowania i przeszukiwania
1 Dzisiejszy wykład Wzorce funkcji Wzorce klas. 2 Wzorce Często pojawia się konieczność pisania podobnych funkcji lub klas operujących na argumentach.
1 Dzisiejszy wykład Wzorce funkcji Wzorce klas Tablica asocjacyjna Składowe statyczne.
Mechanizm wnioskowania rozmytego
Grażyna Mirkowska PJWSTK 15 listopad 2000
Metody Analizy Programów Wykład 02
Wykład 10 Metody Analizy Programów Specyfikacja Struktur Danych
Wykład 6 Najkrótsza ścieżka w grafie z jednym źródłem
dr A Kwiatkowska Instytut Informatyki
Semafory Autorzy : Michał Winciorek Łukasz Jackowicz.
„Program grający w szachy”
ALGORYTMY I STRUKTURY DANYCH
Sztuczna Inteligencja Gry i programy oparte na szukaniu
Sztuczna Inteligencja 2.1 Metody szukania na ślepo
Metoda pierwszeństwa operatorów
pseudokody algorytmów
Opracowała: Elżbieta Fedko
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
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.
Magda Kusiak Karol Walędzik prof. dr hab. Jacek Mańdziuk
GeoTrackerPast Web tracking in 4 dimensions. Informacje Temat: System wyszukiwania haseł w Internecie(?) Promotor: dr Mikołaj Morzy Skład: – Tomasz Szymanowski.
Algorytmika w drugim arkuszu maturalnym. Standardy wymagań I. WIADOMOŚCI I ROZUMIENIE I. WIADOMOŚCI I ROZUMIENIE II.KORZYSTANIE Z INFORMACJI II.KORZYSTANIE.
wykonał Jarosław Orski promotor pracy: mgr Szymon Smaga
Gra Scrabble ® na urządzenie Nokia N800 Autor: Michał Filipowicz Promotor: dr inż. Jerzy Zaczek Konsultant: mgr inż. Krzysztof Rzecki.
Minimalne drzewa rozpinające
Algorytm mini-max.
Podstawy programowania II
POJĘCIE ALGORYTMU Pojęcie algorytmu Etapy rozwiązywania zadań
Przegląd podstawowych algorytmów
Algorytmy i Struktury Danych Typy algorytmów
IV OTWARTE MISTRZOSTWA OPOLA W PROGRAMOWANIU ZESPOŁOWYM
Algorytmy i struktury danych
Algorytmy i struktury danych
sortowanie na bazie – wykorzystanie sortowania ze zliczaniem
Modelowanie populacji i przepływu opinii pomiędzy aktorami sztucznej inteligencji za pomocą sieci społecznej Wojciech Toman.
formalnie: Algorytmy genetyczne i wstęp do algorytmów ewolucyjnych
ALGORYTMY ROZWIĄZYWANIA GIER C.D.
Problem wyboru komputera dostosowanego do potrzeb klienta. Aleksandra Reiman gr. I-52.
SYSTEMY EKSPERTOWE I SZTUCZNA INTELIGENCJA
Politechniki Poznańskiej
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Metody matematyczne w inżynierii chemicznej Wykład 3. Całkowanie numeryczne.
Metody matematyczne w inżynierii chemicznej
Algorytmy i Struktury Danych Struktury Danych
Szachy a grafy. Powiązanie szachownicy z grafem Szachownicę można przedstawić jako graf. Wierzchołek odpowiada polu, a krawędzie ruchowi danej figury.
GRA CHOMP. Czym jest chomp? Jest to gra dla dwóch osób, rozgrywana na prostokątnej tablicy, zwanej „tabliczką czekolady”
Dane – informacje - wiadomości Kodowanie danych i problem nadmiarowości.
Autor: Michał Salewski
SZTUCZNA INTELIGENCJA
Zbiory dynamiczne.
ALGORYTMY I STRUKTURY DANYCH
Gry w sieci! Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego.
Kompilacja iteracyjna Piotr Błaszyński. Szybkie programy Prawa ograniczające:  prawo Moore'a (jego granice),  prawo Gatesa,  prawo Amdahla,  prawo.
Rozdział 5 REKURENCJA.
Listy.
Lua - funkcje Możliwość zwracania wielu wartości: function sumdiff(f,s) return f+s,f-s end a=20 b=15 s,d=sumdiff(a,b) print("Suma liczb "..a.."
Efektywność algorytmów
Algorytmy i struktury danych
Algorytmy i struktury danych
Systemy eksperckie i sztuczna inteligencja
ALGORYTMY I STRUKTURY DANYCH
G Staś Toporkiewicz
Sztuczna Inteligencja Gry i programy oparte na szukaniu
Haskell Składnia funkcji.
Instrukcja warunkowa if
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Zapis prezentacji:

Szachy komputerowe. Ogólna idea silnika szachowego. Tomasz Młocek

Początki. Historia. Pierwsze mechanizmy rozgrywające końcówki szachowe, k. XIX w. Przełomowa praca Claude’a 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. 1974 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.

Szachy. Model matematyczny. 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.

Funkcja oceniająca. 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 (wi*Ai(P)) wi – waga własności i, Ai – funkcja zwracająca 0 bądź 1 i oceniająca czy pozycja P ma własność Ai, Przykładowo – W0 własność materialna. W0 = 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 : W1 = -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.

Schemat A wg Shanonna 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() 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.

Algorytm Alfa-Beta. Schemat B. 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.

Inne usprawnienia. 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.