//
STRATEGIE ANTYKOMPUTEROWE

Czy istnieje skuteczna strategia ,która pomogłaby pokonać program?
Biorąc pod uwagę współczesne dokonania najlepszych programistów i wyniki ich silników bardzo trudno odpowiedzieć na to pytanie bo żeby wykazać słabość w programie trzeba by przeanalizować tysiące partii silnika zarówno z innymi programami jak i z człowiekiem. Pierwsze wersje dzisiejszych mocarzy takich jak Rybka czy Fritz miały oczywiście kilka błędów, które w kolejnych odsłonach programów były stopniowo eliminowane. Wczesne wersje Rybki np. nie umiały matować gońcem i skoczkiem. Zresztą matowania takiego nie znają także inne słabsze programy. Najnowsza Rybka 4 też ma z tym problemy, gdy da sie jej 5 minut nie może sobie poradzić, co prawda zagoni króla przeciwnika do rogu szachownicy, ale dalej przy dobrej obronie (która sprowadza jedynie do uciekania w róg o przeciwnym polu do tego które zajmuje goniec) wykonuje serię posunięć nie wnoszącą nic nowego do pozycji i po 50 ruchach następuje remis zgodnie z zasadą 50 posunięć bez bicia i ruchu piona. Przy prawidłowej grze, która wymaga jedynie zrozumienia kilku zasad i metod koordynacji działania figur, można się wyrobić z matem w maksymalnie 30-35 posunięć. Dopiero gdy damy Rybce 30 minut sama „domyśli się”, że króla przeciwnika trzeba odpowiednimi manewrami  skierować do rogu z takim samym polem na jakim stoi goniec czyli jeśli mamy białopolowego gońca matujemy tylko na polach a8 lub h1. 5 minut powinno starczyć znającemu ten schemat dobremu szachiście. Houdini już radzi sobie rewelacyjnie w tym tempie i zostaje mu jeszcze ok.90 sekund zapasu dzięki temu, że ma wbudowaną wiedze o podstawowych końcówkach niezależną od tabeli gry końcowej. Przeprowadziłem jeszcze z ciekawości test na trzecim aktualnie silniku na  świecie Stockfish 2.0.1 , wygląda na to ,że nawet 30 minut do namysłu nie wystarcza mu żeby znaleźć w tych pozycjach drogę do mata, w tym przypadku konieczna byłaby współpraca z tabelami końcówek.

Każdy silny program ma swoich testerów ,którzy wychwytują jego błędy i słabe punkty , są one następnie usuwane przez programistów w kolejnych wersjach, podobnie zresztą jak ma to miejsce w innych aplikacjach zupełnie nie związanych z szachami. Kluczowe dla siły gry programu funkcje oceny pozycji oraz przeszukiwania drzewa wariantów , są ciągle udoskonalane ,programiści wymieniają się doświadczeniami a niektóre programy publikowane są na zasadzie open source np. Stockfish, Fire, Crafty a więc każdy może dowolnie z niego korzystać i modyfikować kod. Możemy wiec zaryzykować stwierdzenie ,że współczesne ,najsilniejsze programy szachowe nie posiadają większych błędów( lub jeśli  już to sporadyczne) choć z pewnością mają słabsze i mocniejsze punkty.

Wspomniano już wcześniej o tym ,że program może nie zobaczyć efektu horyzontu gdyż jest on tak odległy od analizowanej pozycji ,że głębia obliczeń silnika nie pozwala dostrzec wielu niuansów pozycyjnych, niektórzy arcymistrzowie twierdzą ,że strategia anty- komputerowa mogłaby wykorzystać tę słabość. Bardzo prosty przykład efektu horyzontu widać na poniższym diagramie w którym posuniecie mają białe.

Diagram 1

 

 

 

 

 

 

 

Już na pierwszy rzut oka widać ,że pomimo dużej przewagi materialnej białe mają wygraną pozycję gdyż czarne nie są w stanie zatrzymać promocji białego piona c6. Jednakże pamiętajmy co jest istotą algorytmu min-max czyli ,że program będzie wykonywał ruchy ,które najbardziej w miarę swoich możliwości przybliżą go do wygranej a jeśli to niemożliwe to oddalą od porażki. Czyli będzie szachował aż do pozycji w której szach nie będzie możliwy, jeśli zatem głębia obliczeń programu będzie nie większa niż 14 półruchów czyli 7 pełnych posunięć program oceni pozycję na wygraną dla czarnych, dopiero gdy horyzont porażki przybliży się wówczas ocena będzie prawidłowa.

Błędna ocena pozycji w tym przypadku oczywiście nie ma wpływu na wynik gry, gdyż program grający białymi z pewnością tę partię wygra. Ale jest to poglądowy przykład horyzontu obliczeń .

Pozycje zamknięte jako strategię antykomputerową grywał jeden z najlepszych blitzkarzy świata arcymistrz Hikaru Nakamura w 2007 i 2008 roku grając trzyminutowe partie z Rybką  w wersji 2.32a, udało mu się wygrać 5 partii, cóż z tego skoro przegrał ponad 400 a remis padł w około 50 partiach. W kolejnej wersji Rybki oznaczonej numerem 3 autor usunął ten błąd i teraz prawdopodobnie nie da wykorzystać  tego triku w starciu z tym akurat programem. W praktyce ta strategia jest dość trudna do osiągnięcia gdyż w zasadzie od początku partii trzeba by dążyć do uzyskania pewnych, charakterystycznych pozycji co jest jak wiemy zależne od gry przeciwnika i niekoniecznie musi się udać.

Efekt horyzontu łatwiej uzyskać w końcówkach zwłaszcza ze słabszymi silnikami pod warunkiem jednak ,że program nie korzysta z tablic gry końcowej a jeżeli już to na szachownicy jest większa liczba bierek (ponad 5). Pozycja poniżej pochodzi z partii błyskawicznej rozgrywanej pomiędzy polskimi programami Tytan i Atak, na posunięciu są czarne:

 

 

 

 

 

 

 

Atak który grał czarnymi w tej pozycji nie potrafił znaleźć drogi do wygranej w partii nastąpiło

63. ….   Kd6
64.Kc2 Wc3+
65.Kb2  Wd3 itd.

Czarne wykonywały monotonne posunięcia wieżą po trzeciej  linii oraz królem po czarnych polach po czym nastąpiło trzykrotne powtórzenie posunięć i remis. Nawet dla średnio zaawansowanego szachisty nie powinno stanowić problemu wygranie czarnymi tej pozycji, po prostu bijemy wieżą pionka a a4 i po 64.Kb3 gramy 64. … Wa6 i po 64.KXb4 bijemy na e6 po czym jako pierwsi dochodzimy do pionka h5 i białe partię mogą poddać, Atak jednakże miał głębie obliczeń w tym momencie na poziomie 10 półruchów dlatego też nie dostrzegł tej prostej ścieżki prowadzącej do wygranej, gdyż wymagałaby ona głębi 14 . Gdy jednak do tej pozycji zaprzągłem Stockfischa (głębia 27) już nie miał problemów z wygraną wskazując prawidłowe posunięcie po zaledwie 10 sekundach.

Natomiast w tej pozycji ocena nawet najlepszych silników zawodzi:

Diagram 3

 

 

 

 

 

 

 

Podejrzewam ,że po krótkiej analizie nawet szachista z IV kategorią zauważy ,że pomimo miażdżącej przewagi materialnej czarne nie są w stanie w żaden sposób tej partii wygrać, ocena programów jest jednak inna Rybka i Houdini wskazują na 13-14 ,Critter 14.5, zaś Stockfish daje jeszcze więcej bo aż 18-19 dla czarnych. Pozycja choć oczywista dla człowieka, dla komputera wygląda ciągle na wygraną gdyż pomimo dużej głębi sięgającej 16 pełnych posunięć, nadal przewaga materialna pozostaje bez zmian i w pozycji niewiele  się zmienia. Czy jest to błąd programu? Raczej nie, ponieważ takich lub podobnych pozycji może być miliony, program musiałby je wszystkie znać czyli potrzebny byłby dostęp do sporej bazy danych a to mogłoby opóźnić działanie silnika w niektórych sytuacjach i wymagałoby tablicy transpozycji zajmującej gigantyczne pojemności pamięci. W tym przypadku zła ocena pozycji nie wiąże się w żaden sposób wynikiem partii ponieważ żadna  ze stron bez względu na wykonywane posunięcia nie może tej partii wygrać.

Próbowano też grać przeciwko silnikom niekonwencjonalne debiuty jak 1.d3 lub podwójne fianchetto, które mogą nieco zwiększyć szanse człowieka choćby na remis. Gdy silnik wyposażony jest w książkę debiutów warto wypróbować takie warianty jako jedną ze strategii .  Niektóre słabsze programy maja problemy z prawidłową oceną struktur pionowych np. nie przejmują się specjalnie zdublowanymi pionami lub rozerwanymi łańcuchami pionów można to wykorzystać przy wymianie materiału prowadzącej do końcówki. Warto też poćwiczyć kombinacje przed próbą ogrania słabszego programu, zwłaszcza takie, które prowadzą do wygranej w dłuższej perspektywie posunięć a więc np. atak kombinacyjny lub forsowna wymiana figur nie dające bezpośredniego zwycięstwa ale prowadzące do wygranej końcówki.

Wiele osób mnie pyta czy człowiek ma szanse wygrania  z programem. Odpowiedź jest oczywista nie tylko dla mnie ale także dla wielu silnych arcymistrzów, których poproszono o tę opinie po przegranym w 2006 roku przez Władimira Kramnika meczu z  Deep Fritzem. Człowiek nie ma  możliwości wygrać z programem, może oczywiście zwyciężyć w pojedynczych partiach ale nie ma szans pokonać go w meczu. Mam na myśli tu oczywiście czołówkę światową szachistów oraz najsilniejsze programy uruchamiane na komputerach z maksymalnie sześcioma procesorami bo w takich konfiguracjach są robione testy silników i opracowywane na ich podstawie rankingi.

W każdym razie do dnia dzisiejszego nie pojawił się szachista wyposażony w odpowiednią strategię,  gotów zmierzyć się i wygrać z dowolnym programem z czołówki światowej. Współczesne programy grają już tak silnie ,że jedynie dając człowiekowi fory np. pion więcej  można by mówić o poważnych szansach na zwycięstwo w meczu.

Warto przy okazji jeszcze wspomnieć o pojedynkach hybrydowych to znaczy człowiek plus program kontra sam program. Takie turnieje organizowała firma ChessBase, w szóstej edycji tej imprezy rozgrywanej w 2007 roku zwyciężył zespół złożony z Vasika Rajlicha i  jego żony Iwety, którzy wspomagali się czterema komputerami z  kopiami Rybki. Wyprzedzili oni jeszcze kilka podobnych zespołów a dopiero na szóstym miejscu ze stratą dwóch punktów do lidera znalazła się 32- procesorowa maszyna, na której działała Rybka bez asysty żadnego szachisty. Strategia centaurów opierała się na wyborze wariantów zaproponowanych jako równorzędne przez silnik oraz odpowiednim ustawieniu książki debiutów pod konkretnego przeciwnika, zwycięski zespół w tym turnieju stosował z powodzeniem obronę francuską uzyskując dobre rezultaty zarówno czarnymi jak i białymi.

Dyskusja

Brak komentarzy.

Dodaj komentarz

Kategorie