Praca inynierska Program grajcy w szachy Autor Mariusz

  • Slides: 12
Download presentation
Praca inżynierska „Program grający w szachy” Autor : Mariusz Rostek Promotor : Dr Maciej

Praca inżynierska „Program grający w szachy” Autor : Mariusz Rostek Promotor : Dr Maciej Szmit

Algorytm mini - max Czarne Horyzont zdarzeń : mini Białe max 30 Przerwane drastycznie

Algorytm mini - max Czarne Horyzont zdarzeń : mini Białe max 30 Przerwane drastycznie obliczenia w trakcie np. : 40 wymiany bić, czy szachów co wypacza wynik przeszukiwania -10 wartość mini - max = -10 30 -200 -15 15 ? -15 korzeń drzewa 100 25 węzły drzewa liście drzewa

alfa = beta = Algorytm alfa – beta ∞ ∞ Białe czarne max min

alfa = beta = Algorytm alfa – beta ∞ ∞ Białe czarne max min beta = 30 -10 Alfa = - beta = -10 ∞ beta -10 Alfa = -10 -200 = 30 beta = - 200 Porównanie algorytmów 30 40 -10 30 Mini – max : Ilość węzłów około : d h d - średnia ilość ruchów h - głębokość Alfa – beta : Ilość węzłów około : d h/2 Przy posortowanym drzewie -200 -15 Alfa = -10 beta = -15 Nieposortowane ruchy -15 25 100 Aby zwiększyć liczbę odcięć najlepszy ruch powinien być pierwszy -15

Zawężenie obszaru przeszukiwania Ilość węzłów obszar przeszukiwania Obszar odcięty V- spodziewana wartość mini –

Zawężenie obszaru przeszukiwania Ilość węzłów obszar przeszukiwania Obszar odcięty V- spodziewana wartość mini – max drzewa m – okno przeszukiwania alfa = - m beta= +m

Kolejność wykonywania ruchów Aby algorytm alfa – beta miał jak najwięcej odcięć należy posortować

Kolejność wykonywania ruchów Aby algorytm alfa – beta miał jak najwięcej odcięć należy posortować ruchy w kolejności od najlepszego do najgorszego. Kolejność przeszukiwania ruchów w programie Sierżant : 1. Ruch z tablicy transpozycyjnej 2. Pusty ruch – wykonanie pod rząd 2 ruchów tej samej strony. Wykonany na spłyconą głębokość mało kosztuje, a może odciąć całą gałąź drzewa. 3. Bicia i promocje – jest duże prawdopodobieństwo że wśród i promocji bić znajdzie się najlepszy ruch, bicia i promocje zmieniają drastycznie wartość minimaksową drzewa po za tym drzewo gry w którym nastąpiły bicia jest zazwyczaj mniejsze i analiza przebiega szybciej.

Kolejność wykonywania ruchów 4. Najlepszy ruch ze spłyconego przeszukiwania 5. przeszukanie małego drzewa służy

Kolejność wykonywania ruchów 4. Najlepszy ruch ze spłyconego przeszukiwania 5. przeszukanie małego drzewa służy do 6. posortowania ruchów w większym drzewie Ruch A = 10 C B Ruch B = 20 Ruch C = 30 5. „Ruchy morderców” 6. najlepszy ruch z jednego poddrzewa 7. może okazać się tez najlepszym w 8. sąsiednim poddrzewie A

Sortowanie ruchów na korzeniu Iteracyjne pogłębianie służy do posortowania ruchów na korzeniu drzewa

Sortowanie ruchów na korzeniu Iteracyjne pogłębianie służy do posortowania ruchów na korzeniu drzewa

Model drzewa gry w programie Sierżant Obszar przeszukiwania pełnego : wszystkie ruchy Horyzont zdarzeń

Model drzewa gry w programie Sierżant Obszar przeszukiwania pełnego : wszystkie ruchy Horyzont zdarzeń Obszar przeszukiwania selektywnego : szachy, bicia, promocje poziom : 0 f. o. poziom : 1 = materiał + wynik przeszukiwania selektywnego f. o. poziom : 2 korzeń – funkcja oceniająca + ocena pozycji bierek poziom : 0 f. o. poziom : 1 Słaby ruch f. o. redukcja o 1 poziom f. o. Szach lub wymiana figur lub marsz piona na promocje pogłębienie o 1 poziom : 0 f. o. poziom : -1 poziom : -2

Funkcja oceniająca = materiał + ocena pozycyjna bierek materiał = suma wartości bierek Wartość

Funkcja oceniająca = materiał + ocena pozycyjna bierek materiał = suma wartości bierek Wartość poszczególnych bierek jest zmienna, zależy od fazy gry. Bierka Król Hetman Wieża Goniec Skoczek białe 10. 000 950 500 330 od 300 (debiut) do 260 (końcówka) czarne -10. 000 -950 -500 -330 -260 Pion od 80(debiut) -80 do 120(końcówka) -120

Ocena pozycyjna bierek Tablica wartości w zależności od zajmowanego przez bierkę pola Przykładowe parametry

Ocena pozycyjna bierek Tablica wartości w zależności od zajmowanego przez bierkę pola Przykładowe parametry w zależności od fazy gry element pozycji: debiut środek końcówka zdwojenie pionków -15 -15 samotny pion -20 -20 krycie się pionków 3 3 3 wolny pion: na 2 linii 15 20 30 3 linii 18 23 34 4 linii 22 27 39 5 linii 27 32 45 6 linii 33 38 52 7 linii 40 45 60 -8 -6 -4 -3 -3 blokada swojego pionka -3 -4 -8 -5 -1 0 0 -3 0 8 blokada obcego pionka 5 -3 0 -3 wieża na wolnej linii 5 zdwojenie wież 10 10 5 Para gońców 5 10 15 6 10 12 12 dla króla w debiucie -60 -60 -50 -50 -40 -40 -30 -30 -20 -20 -25 -20 -20 -8 -15 -20 -15 -8 -3 -4 -3 -10 -3 -4 -3 2 3 3 -5 0 -5 4 2 -4 -6 -8 0 0 -1 -5 10 10 8 0 -3 10 14 14 10 0 -3 0 10 14 14 10 0 -3 -3 0 8 10 10 8 0 -3 -5 -1 0 0 -1 -5 -8 -6 -4 -3 -3 -4 -6 -8 dla króla w końcówce

Tablice transpozycyjne fragment tablicy haszowej tablica bierek Funkcja haszująca na liczbę z zakresu :

Tablice transpozycyjne fragment tablicy haszowej tablica bierek Funkcja haszująca na liczbę z zakresu : od: 0 do: rozmiar tablicy haszowej 8768686 rekord Głębok ość Najlep szy ruch Warto ść alfa …. …. 8768684 10 e 2 -e 4 82 8768685 8 g 1 -f 3 50 8768686 12 d 2 -d 4 -20 …. ….

Dziękuje bardzo i zapraszam na coroczne Mistrzostwa Polski Programów Szachowych organizowanych pod patronatem Katedry

Dziękuje bardzo i zapraszam na coroczne Mistrzostwa Polski Programów Szachowych organizowanych pod patronatem Katedry Informatyki Stosowanej przez dr Macieja Szmita.