Ponieważ ludzie grają w szachy różnymi stylami również programy ,które są wszak dziełami ludzkich umysłów posiadają taką zdolność. Programista ustala w jaki sposób będzie grał silnik choć w niektórych przypadkach możemy to zrobić sami. Takie programy jak Fritz czy Chessmaster oprócz tego ,że udostępniają własny interfejs użytkownika to mają jeszcze możliwość zdefiniowania stylu i siły gry samego silnika. W przypadku Rybki wydano dwie dodatkowe wersje Human i Dynamic. Rybka Human jak nazwa wskazuje ma naśladować styl gry człowieka i ma o 20 % większą zgodność posunięć z silnym arcymistrzem niż wersja podstawowa. Wersja Dynamic natomiast dobrze czuje się w pozycjach niejasnych ,skomplikowanych przy obustronnym ataku i dynamicznej grze, program nie waha się ofiarować materiał w zamian za inicjatywę nawet jeśli rekompensata nie jest widoczna w jego głębokości obliczeń.
Część silników jak już wspomniałem ma możliwość ustawienia niektórych zmiennych, poniższe okno przedstawia konfigurację parametrów wyjściowych silnika Stockfish 1.91, w programie Arena. Autorzy niestety nie podali dokładnego wyjaśnienia ustawień funkcji oceniającej, aby je poznać należałoby się sięgnąć do kodu źródłowego programu ,który jest co prawda ogólnodostępny ale wymaga on znajomości języka C++ w którym program został napisany, oraz specyficznych mechanizmów konstruowania funkcji oceniającej.
Jak widać mamy wiele możliwości konfiguracyjnych, oczywiście autorzy z reguły zalecają pozostawić wszystkie parametry tak jak zostało to przez nich ustalone czyli default,, wówczas silnik będzie grał prawdopodobnie z największą siłą, ale można sobie też trochę pokombinować i nawet zapisać silnik ze zmienionymi parametrami jako zupełnie nowy.
OBJAŚNIENIA NIEKTÓRYCH FUNKCJI:
Use serach log – zapisuje, główne warianty rozpatrywane przez silnik w odpowiednim pliku, jego lokalizację można podać w okienku poniżej
Book File – wskazuje na lokalizację książki debiutów z której silnik ma korzystać
Best Book Move – ta opcja decyduje o tym czy ma być wybrany najlepszy wariant polecany przezksiążkę czy też silnik ma zadecydować o tym który wariant z książki będzie wybrany
Clear Hash – usuwa wcześniejsze tablice transpozycji aby zrobić miejsce dla nowych
Threads – liczba rdzeni używanych do obliczeń, w zależności od rodzaju procesora
Minimum split depth – minimalna głębokość drzewa przy której nastąpi rozdzielnie obliczeń pomiędzy następne rdzenie
Ponder – silnik wykonuje obliczenia również na czasie przeciwnika
Emergency move time– minimalny czas w sekundach który silnik sobie zostawia na posunięcie
Chess 960 – opcja gry w szachy Fishera inaczej zwanymi szachami 960 (losowo dobierany rząd figur na pierwszej i ostatniej linii jako pozycja wyjściowa)
Pozostałe ustawienia są charakterystyczne już dla funkcji oceny pozycji, obejmują one takie elementy gry jak: agresja, gra pozycyjna, mobilność figur, struktura pionów w różnych fazach gry, groźby matowe itd.
Przy optymalizacji poziomu gry silnika szachowego stosuje się często turnieje w których grają te same wersje programu tyle ,że z innymi ustawieniami, pozwala to na testowanie silnika oraz wybór najlepszych pod względem siły gry i stylu parametrów głównie dotyczących funkcji oceniającej ,choć ważne jest również dostosowanie trybu pracy silnika do sprzętu na którym on pracuje kluczowe są tu takie informacje jak wielkość pamięci operacyjnej, liczba procesorów, liczba rdzeni czy wersje systemu operacyjnego 32 lub 64 bitowe.
Programista lub niekiedy użytkownik o ile ten pierwszy udostępni taką opcję, może więc zoptymalizować program do gry z ludźmi lub innymi programami a nawet do gry z konkretnym przeciwnikiem czy to będzie maszyna czy człowiek (patrz podrozdział „Historia meczów człowiek komputer”)
Wieloletnia obserwacja gry różnych mocnych silników ze ścisłej czołówki na ustawieniach default bez książki debiutów i tabeli końcówek pozwoliła mi na wyodrębnienie podstawowych cech charakteryzujących ich styl gry, oto one:
Pamiętajmy jednak, że jak już pisałem są szerokie możliwości ingerencji w styl gry programu i łagodną z pozoru Rybkę można spokojnie podmienić na żarłoczną piranie.
Spróbujmy więc przeanalizować jedną z partii rozgrywanych przez dwa obecnie najlepsze silniki na świecie, dodam ,ze laptop na którym rozgrywano partie był wyposażony w procesor Intel Dual Core 32-bitowy system operacyjny Vista, procesor 2,2 Ghz oraz 3 Gb pamięci operacyjnej. Tempo gry 30 min. dla każdej ze stron. Analiza jest poświęcona opisowi stylu gry programów i wybacz szanowny czytelniku ,ale autor nie czuję się kompetentny do oceniania poszczególnych posunięć i wariantów gdyż obaj Goliaci grają na poziomie ok. 3100 elo.
Białe: Houdini 1.5a
Czarne: Rybka 4
1.e4 e5
2.Sf3 Sc6
3.Gb5 a6
4.Gxc6 dxc6
5.O-O f6
Faza debiutu już za nami figury rozwinięte, materiał zredukowany, przechodzimy do gry środkowej, jak dotąd pozycja oceniana jest przez silniki jako wyrównana. Choć na oko widać ,że białe mają ciut większe szanse ze względu na zdublowane piony czarnych na linii c, słabość na c5, nacisk wież na linię d oraz nieco więcej przestrzeni. Pamiętajmy jednak ,że chwilowa ocena pozycji przez program może się zdecydowanie różnić od oceny człowieka choć program i tak będzie grał lepiej.
16.f3 f5
17.Sfd5 b6
18.Se3 f4
19.Sed5 g5
20.h4 h6
21.Kf2 Ge6
22.b3 Kb7
23.Wh1 Se5
24.hxg5 hxg5
25.Wh6 Gf7
26.Wd1 Gg6
27.Whh1 Wf7
28.Sa4 Wfd7
29.Ke2 Ge7
30.c4 Wd6
31.Wh7 c6
32.Sdc3 Wxd1
33.Sxd1 Wd7
34.Wh6 Sd3
35.Sf2 Sc1+
36.Ke2 Sxa2
37.e5 Gg8
38.Se4
Od tego posunięcia programy zaczynają oceniać pozycję jako nieznacznie lepszą dla białych. Houdini choć ma pionka mniej korzysta z przewagi przestrzeni, wolnego piona oraz lepszej koordynacji figur i precyzyjnymi manewrami punktuje słabości czarnych. Proszę zwrócić uwagę na kolejne forsowne posunięcia które doprowadzą do pozycji w której to właśnie słaba struktura pionów czarnych zadecyduje o ich klęsce.
38….. We7
39.Kd2 Sb4
40.Wg6 Gh7
41.Sd6+ Kc7
42.Wxg5 Sd3
43.Sxb6 Wxe5
44.Wg7+ Kxd6
45.Wd7+ Ke6
46.Wxh7 Sb4
Kluczowa pozycja partii, pomimo równowagi materialnej i mocno zredukowanego materiału, białe wykorzystują słabości w obozie czarnych i stopniowo zwiększają przewagę
47.Sa4 Wg5
48.Wh2 Sa2
49.Kd3 We5
50.Wh4 Sc1+
51.Kce Se2
52.Kd2 Kd4
53.Wxf4 Sxb3+
54.Kc2 Sd4+
55.Kd3 Kd6
56.Sc3 We1
57.Wf7 Wa1
58.Se4+ Ke6
59.Wh7 Wa3+
60.Kd2 Sb3+
61.Ke3 Sc1+
62.Kf4 Sd3+
63.Kg5 Ke5
64.We7+ Kd4
65.f4 Wa2
66.g4 Wg2
67.Kf5 Wg1
68.g5 Kxc4
69.We6 Kb5
Od tego posunięcia ocena pozycji wzrasta coraz szybciej wraz z kolejnymi posunięciami na korzyść białych ,widocznie Houdini dostrzegł w swojej głębi obliczeń ,że białe piony są groźniejsze od czarnych i aby je zatrzymać konieczne będą ofiary materialne ze strony czarnych. Pionki czarnych są zdublowane i izolowane a więc funkcja oceniająca przypisuje im znacznie mniejszą wartość, pionki białych z kolei są bardziej zaawansowane i stanowią zwarta strukturę. W marszu do przodu jeden wspiera drugiego, stąd zapewne funkcja oceniająca bardziej je wartościuje. Król białych jest bliżej centrum kontrolując je co też ma niebagatelne znaczenie w tego typu końcówkach.
70.g6 c4
71.Sg5 c3
72.We2 Wf1
73.Sh3 Sxf4
74.Sxf4 Wd1
75.Se6 Wf1+
76.Ke5 Wg1
77.g7 Kc4
78.Kf6 Wxg7
79.Kxg7 Kb5
80.Kf6 Kb4
81.Ke5 Kc4
82.Wa2 c5
83.Ke4 Kb4
84.Kd3 Kb3
85.Wxa6 c4+
86.Ke2
Czarne poddały, gdyż nie są w stanie promować żadnego ze swych pionów.
Oto jak przedstawia się wykres oceny pozycji dla tej partii, pochodzi on z programu Arena, który służył jako interfejs graficzny dla silników
Kreski żółte oznaczają ocenę białych ,zaś niebieskie-czarnych widzimy ,że niekiedy ocena nieznacznie się różni. W osi poziomej mamy kolejne posunięcia a w pionowej wartość oceny, przy 75 posunięciu przewaga białych jest już tak duża, że skala diagramu się kończy od 75 ruchu do końca partii zawiera się ona w przedziale +4.86 do +10.4. Pamiętajmy ,że +1 oznacza przewagę białych odpowiadającą jednemu pionków ,a ze znaczkiem przeciwnym analogicznie przewagą czarnych. Oprócz tego interfejs pokazuje nam takie informacje jak :
Dyskusja
Brak komentarzy.