Post on 26-Jan-2016
description
„Program grający w szachy”
Promotor : Dr Maciej Szmit
Praca inżynierska
Autor : Mariusz Rostek
Algorytm mini - max
Białe
max
Czarne
mini
-10
15
30
30
40
-200
100
25
-10
-200
-15
Horyzont zdarzeń
? wartość mini - max =
-10
Horyzont zdarzeń :
Przerwane drastycznie obliczenia w trakcie np.:
wymiany bić, czy szachów co wypacza wynik przeszukiwania
-15
korzeń drzewa
liście drzewa
węzły drzewa
Białe
max
-10
30
30
40
-200
-10
-200
-15
-15
Algorytm alfa – betaczarne
min
Alfa = -10
Alfa = -10
-10
Porównanie algorytmów
Mini – max :
Ilość węzłów około : d h
d - średnia ilość ruchówh - głębokość
Alfa – beta :
Ilość węzłów około : d h/2
Przy posortowanym drzewie
-15
100
25
Nieposortowane ruchy
-15
Alfa = - ∞
Aby zwiększyć liczbę odcięć najlepszy ruch powinien być pierwszy
beta = ∞
beta = 30
beta = -10
beta = 30
alfa = - ∞
beta = 30
- 200beta =
beta = -15
Zawężenie obszaru przeszukiwania
Ilość węzłów
V- spodziewana wartość mini – max drzewa
m – okno przeszukiwania
alfa = - m
beta= +m
obszar przeszukiwania
Obszar odcięty
Kolejność wykonywania ruchówAby 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.
Ruch A = 10
Ruch B = 20
Ruch C = 30
4. Najlepszy ruch ze spłyconego przeszukiwania
przeszukanie małego drzewa służy do
posortowania ruchów w większym drzewie
5. „Ruchy morderców”
najlepszy ruch z jednego poddrzewa
może okazać się tez najlepszym w
sąsiednim poddrzewie
C
B
A
Kolejność wykonywania ruchów
Sortowanie ruchów na korzeniuIteracyjne pogłębianie służy do posortowania ruchów na korzeniu drzewa
Model drzewa gry w programie Sierżant
Horyzont zdarzeń
poziom : 2
korzeń
poziom : 1
poziom : 0
poziom : 1poziom : 0
poziom : 1
poziom : -1 poziom : -2
Szach lub wymiana figur lub marsz piona na promocje pogłębienie o 1 poziom
Obszar przeszukiwania pełnego :
wszystkie ruchy
poziom : 0
Słaby ruch
redukcja o 1
poziom
Obszar przeszukiwania selektywnego :
szachy, bicia, promocje
f.o. – funkcja oceniająca
= materiał
+ wynik przeszukiwania selektywnego
+ ocena pozycji bierek
f.o.
f.o.
f.o.
f.o.
f.o.
f.o.
Funkcja oceniająca
materiał = suma wartości bierek
Wartość poszczególnych bierek jest zmienna, zależy od fazy gry.
Bierka białe czarne
Król 10.000 -10.000
Hetman 950 -950
Wieża 500 -500
Goniec 330 -330
Skoczek od 300 (debiut) -30
do 260 (końcówka) -260
Pion od 80(debiut) -80
do 120(końcówka) -120
Funkcja oceniająca = materiał + ocena pozycyjna bierek
Ocena pozycyjna bierek
-60 -60 -60 -60 -60 -60 -60 -60
-50 -50 -50 -50 -50 -50 -50 -50
-40 -40 -40 -40 -40 -40 -40 -40
-30 -30 -30 -30 -30 -30 -30 -30
-20 -20 -20 -25 -25 -20 -20 -20
-8 -15 -15 -20 -20 -15 -15 -8
-3 -4 -3 -10 -10 -3 -4 -3
2 3 3 -5 0 -5 4 2
element pozycji: debiut środek końcówka
zdwojenie pionków
-15 -15 -15
samotny pion -20 -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
blokada swojego pionka
-3 -4 -8
blokada obcego pionka
5 6 12
wieża na wolnej linii
5 10 12
zdwojenie wież 10 10 5
Para gońców 5 10 15
Przykładowe parametry w zależności od fazy gryTablica wartości w zależności od zajmowanego przez bierkę pola
dla króla w debiucie
-8 -6 -4 -3 -3 -4 -6 -8
-5 -1 0 0 0 0 -1 -5
-3 0 8 10 10 8 0 -3
-3 0 10 14 14 10 0 -3
-3 0 10 14 14 10 0 -3
-3 0 8 10 10 8 0 -3
-5 -1 0 0 0 0 -1 -5
-8 -6 -4 -3 -3 -4 -6 -8
dla króla w końcówce
Tablice transpozycyjne
tablica bierek
Funkcja haszująca na liczbę z zakresu :
od:0 do:rozmiar tablicy haszowej
rekord Głębokość
Najlepszy ruch
Wartość
alfa
…. …. …. ….
8768684 10 e2-e4 82
8768685 8 g1-f3 50
8768686 12 d2-d4 -20
…. …. …. ….
8768686
fragment tablicy haszowej
Dziękuje bardzo i zapraszam na coroczne
Mistrzostwa Polski Programów Szachowych organizowanych pod patronatem
Katedry Informatyki Stosowanej przez dr Macieja Szmita.