Komputerowe programy szachowe: istotne dla rozwoju informatyki

Tworzenie coraz to lepszych programów szachowych na przestrzeni ostatnich 70 lat w znacznym stopniu wpłynęło na rozwój informatyki. Następstwem czego jest powiększająca się od ponad dwóch dekad popularność „królewskiej gry” pośród ogółu internautów. Ale żeby móc przedstawić jak doszło do tej programistycznej rewolucji szachowej, trzeba się cofnąć do zamierzchłych czasów, kiedy to wszystko zaczęło się kształtować.

Prapoczątki w czasach kiedy za korzystanie z internetu trafiłoby się na stos

Gra w szachy na samym początku, była przeznaczona tylko dla elit. Wynikało to z tego, że narodziła się na dworach szacha Chusrau i Anoszarwana w X-XI wieku, skąd została przeniesiona na dwory Europejskie, gdzie przez ponad sześć wieków nie była dostępna dla ludzi „z zewnątrz”.

Zmieniło się to w 1769 roku, kiedy to powstała pierwsza maszyna do gry w szachy znana jako Mechaniczny Turek. Jednak była ona drobnym przekrętem, gdyż rolę mózgu maszyny odgrywał schowany w środku człowiek ubrany w strój turecki z turbanem na głowie, który w jednej ręce trzymał fajkę, a drugą przy pomocy specjalnego mechanizmu przemieszczał bierki na szachownicy. Twórcą tej wiekopomnej machiny był znany wynalazca — baron węgierski Wolfgang von Kempelen, który prezentował swój wynalazek na najznamienitszych dworach całej Europy. Najbardziej znanym jego entuzjastą był sam Napoleon Bonaparte — zresztą samemu będący świetnym szachistą, ale w starciu z Mechanicznym Turkiem, był z góry skazany na porażkę. Wynikało to z tego, że szachownica na nim była na tyle cienka, że pozwalała na magnetyczne powiązanie – gdzie każda figura szachowa miała do swojej podstawy przyczepiony mały, ale silny magnes i gdy figura została położona na danym polu szachownicy, jej magnes przyciągał przywiązany do sznurka inny magnes, znajdujący się pod danym polem na szachownicy. To zaś pozwalało szachiście ukrytemu wewnątrz Mechanicznego Turka na obserwowanie ruchów przeciwnika, tym samym pozbawiając go jakichkolwiek szans na wygraną. Na prawdziwe programy szachowe „bez kantów”, trzeba było jeszcze poczekać prawie 200 lat.

Lata 40. XX wieku — wymyślono, żeby komputer nauczyć grać w szachy

I tak w ekspresowym tempie przenosimy się do lat czterdziestych ubiegłego wieku, kiedy całe zastępy matematyków, kryptologów i wynalazców kierując się chęcią stania sławnymi — zaczęło tworzyć głównie do celów wojskowych pierwsze prymitywne maszyny elektroniczne służące do przetwarzania danych. A gdy moc obliczeniowa pierwszych komputerów wzrosła doszli oni do wniosku, że komputery można wykorzystać również do innych celów bardziej pokojowych. Wtedy wśród naukowców zaczęto uważać, że komputer może w przyszłości wykonywać szereg zadań zarezerwowanych jak dotąd tylko dla człowieka (np. mówić, myśleć). Wówczas na poważnie pomyślano by nauczyć komputer gry w szachy, wychodząc z założenia, że jakby to się udało — to również inne problemy, których rozwiązanie wymaga użycia ludzkiej inteligencji, można by powierzyć maszynom. Pobudziło to wyobraźnię twórczą matematyków znających złożony mechanizm gry szachy, w dokonaniu wszelkich starań, żeby tę wizję zrealizować. Następna dekada stała się „epoką przełomową” w realizacji tego zamysłu.

Lata 50. XX wieku — przełom na etapie jeszcze pisarskim

Ten przełom nastąpił za sprawą amerykańskiego matematyka i kryptologa Clauda Shannona, który to w marcu 1950 roku napisał przełomowe dzieło dla wszystkich szachowych programistów. Computer for Playing Chess był to pierwszy dokument techniczny dotyczący szachów komputerowych, który zawierał teoretyczne podstawy programowania silników oparte na algorytmie min-max wraz z określeniem zasad działania funkcji oceniającej. Jednakże dzieło Shannona nie zawierało żadnych odwołań do programowania na rzeczywistym komputerze do gry. Pomimo tego ta książka była takim preludium, do pisania programów szachowych w przyszłości i w praktyce każdy z ich późniejszych twórców inspirował się tym dziełem. I tak to od słowa pisanego, przechodzimy do pierwszych niedoskonałych jeszcze autorskich projektów szachowych.

Zaledwie rok po ukazaniu tej publikacji jeden z ojców informatyki słynny matematyk i kryptolog Alan Turning, który po wybuchu II wojny światowej ponownie odkodował szyfr słynnej Enigmy, stworzył algorytm komputerowy zdolny do ogrania człowieka w szachy, ale z powodu braku odpowiedniego sprzętu tylko na papierze. Pomimo tego Turning kierowany zapałem twórczym rozegrał kilka partii, emulując grę programu na pierwszym komercyjnie dostępnym komputerze świata – Ferranti Mark 1. Jednakże bez większego powodzenia, co było spowodowane tym, że jego program analizował tylko do dwóch ruchów wprzód. Z perspektywy czasu wydaje się to słabo, ale trzeba pamiętać to, że był on napisany w latach pięćdziesiątych ubiegłego wieku w czasach bez komputera. Najlepszym potwierdzeniem znaczenia tego prekursorskiego programu dla rozwoju szachów jest to, że sam wielki mistrz Kasparow, rozegrał z „dzieckiem Turninga” partię pokazową w 2012 roku. Arcymistrz po rozegraniu tej symbolicznej partii stwierdził, że jest pełen podziwu dla algorytmu wymyślonego przez ojca sztucznej inteligencji:

Przypuszczam, że można nazwać go prymitywnym, ale ja porównałbym go do wczesnego samochodu – możesz się z niego śmiać, ale to wciąż nieprawdopodobne osiągnięcie. Napisał algorytm bez użycia komputera – wielu młodych naukowców zapewne nie uwierzyłoby, że to w ogóle możliwe. To było naprawdę spektakularne dokonanie.

Kasparow, wypowiadając te słowa, dał jasno do zrozumienia, że wynalazek Turninga, był „krokiem milowym” w rozwoju przyszłych programów szachowych, o dobre kilka lat wyprzedzającym ówczesny poziom programowania.

W 1952 roku niemiecki informatyk Dietrich Prinz, szef programowania w angielskiej firmie Ferranti, we współpracy z uniwersytetem w Manchesterze, uruchomił pierwszy działający na komputerze program szachowy, ale ciągle to było eksperymentalne dzieło, a jego największą wadą było to, że zakres jego ruchów ograniczał się do wyszukania mata zaledwie w dwóch posunięciach. Wiosną 1956 roku nastąpił kolejny progres za sprawą programu szachowego na komputerze MANIAC I, ale w okrojonej wersji (szachownica 6 × 6 bez gońców). W 1957 roku Alex Bernstein stworzył pierwszy naprawdę kompletny program do gry w szachy, a obsługiwał go monstrualnej wielkości lampowy komputer IBM 704. Wykonanie ruchu zajmowało mu około 8 minut, co pozwoliło przewidywać rozwój sytuacji na dwa posunięcia do przodu przy siedmiu kombinacjach do wyboru — co daje jasno do zrozumienia, że nie reprezentował najwyższego poziomu. Rok 1958 to debiut programu na komputer JOHNNIAC. Zastosowano w nim elementy logiki z nowej dziedziny wiedzy – heurystyki, badającej twórcze czynności intelektu. Przez co, zamiast tłumaczenia mechanicznego przeszukiwania wariantów zaczęto kłaść większy nacisk na system analizowania wyboru najlepszej potencjalnej zagrywki. Ukoronowaniem tych przełomowych odkryć lat 50., jest następna dekada, kiedy stała się możliwa gra człowieka z programem szachowym.

Lata 60. XX wieku — czas wielkiej zmiany na lepsze. Programy szachowe zaczynają myśleć!

W 1962 roku został napisany pierwszy program szachowy w Massachusetts Institute of Technology (MIT), znany od nazwisk twórców jako Kotok-McCarthy. Był to nowatorski program szachowy, który jako pierwszy miał zdolność regularnego grania w szachy. Został on w całości napisany przez Alana Kotoka w ramach jego pracy dyplomowej Bachelor of Science, przy wsparciu ojca sztucznej inteligencji — Johna McCarthy'ego, który współtworzył w tym czasie projekt MAC w MIT. Program został uruchomiony na komputerze IBM 7090, który miał zdolność obliczeniową 1100 pozycji na sekundę. A co za tym idzie program, był w stanie pokonać jedynie początkujących szachistów. Ale i tak jak na owe czasy to był wielki przełom. Uwieńczeniem tych prac były prace dyplomowe Kotoka wydane przez niego w wieku zaledwie 20 lat, które opublikował w MIT Artificial Intelligence Memo 41. Kotok po napisaniu tego programu stał się jednym z czołowych projektantów komputerów DEC (główny architekt PDP-10) i twórcą pierwszej gry wideo oraz joysticka do gier.

Kolejnym przełomowym wydarzeniem tego czasu był wyjazd Johna McCarthy'ego — ówczesnego profesora na Uniwersytecie Stanford do moskiewskiego Instytutu Fizyki Teoretycznej i Eksperymentalnej (ITEP). Głównym powodem tej wizyty była chęć zorganizowania pojedynku szachowego z tworzonym tam programem szachowym, później nazwanym KAISSA. Program Kotok-McCarthy przegrał ten mecz 3-1. Mecz odbył się w ciągu dziewięciu miesięcy w latach 1966-67 i zakończył się druzgocącą klęską myśli informatycznej USA, w konfrontacji ze swym największym konkurentem zza bloku Wschodniego — co niewątpliwie było wielką ujmą dla amerykańskiego mocarstwa. W wyniku tej „programistycznej klęski” Dr Hubert Dreyfus profesor filozofii w MIT, został zatrudniony przez firmę RAND Corporation w celu zbadania zagadnienia sztucznej inteligencji. Po wykonaniu tego badania napisał 90-stronicowe dzieło zatytułowane „Alchemia i sztuczna inteligencja”, które miało się stać „antyinformatycznym manifestem”, dającym jednoznacznie do zrozumienia, że badania nad sztuczną inteligencją są skazane na porażkę. Dreyfuss w tym manifeście jednoznacznie stwierdził, że żaden program komputerowy nie może pokonać nawet 10-letniego dziecka w szachy. Jednak niedaleka przyszłość, całkowicie obaliła to wizjonerskie dzieło.

A stało się to już w 1967 roku, kiedy to pierwszy raz komputer wygrał z początkującym szachistą (ranking FIDE 1580) za sprawą programu szachowego Mac Hack VI, który został napisany przez znanego amerykańskiego programistę Richarda D. Greenblatta. W związku z tym od nazwiska jego twórcy zwany jest jako Mac Hac and The Greenblatt Chess i został opracowany w MIT. Warto dodać, że Mac Hack VI był pierwszym programem do gry w szachy, przystosowanym do gry w warunkach turniejowych. A co za tym idzie, posiadał własny ranking (FIDE 1600) i co najważniejsze jako pierwszy wygrał z osobą nie źle grającą w szachy. Nazwa jego pochodzi od projektu MAC — znanego pod polską nazwą jako „Komputer dostępu wielokrotnego” i był sponsorowany w całości przez program badawczy zlokalizowany w MIT. Z biegiem czasu stało się obiektem ataków hakerskich, co świadczy, że pod względem zabezpieczeń informatycznych nie stał na najwyższym poziomie. Ale i tak w historii programów szachowych zapisał się złotymi głoskami, a jego wielkie zasługi na tym polu świetnie opisał Steven Levy w almanachu dotyczącym bohaterów rewolucji komputerowej.

1970-1990: Zimna wojna rosyjsko-amerykańska, drogą do ustawicznego rozwoju programów szachowych

Od samego początku lat 70. XX wieku, rozpoczęła się na poważnie era tłumaczenia szachów komputerowych. Wtedy to działacze rosyjskiego Stowarzyszenia Konstruktorów Komputerów (ACM), zorganizowali po raz pierwszy turniej komputerów szachowych, który z czasem przekształcił się w mistrzostwa USA i stał się cykliczną imprezą. Pierwsze cztery turnieje wygrał program Chess 3.0. Zwycięzcy kolejnych turniejów to kanadyjski Ribbit oraz amerykańskie Bell i ponownie Chess. Pierwsze mistrzostwa świata komputerów szachowych tłumaczenia odbyły się w 1974 roku. Triumfowała w nich radziecka maszyna o nazwie Kaissa, uzyskując komplet zwycięstw. Niestety, poziom, jaki wówczas reprezentowały komputery, nie dawał im najmniejszych szans w rozgrywce z profesjonalnymi szachistami, choć z roku na rok udoskonalano sprzęt i oprogramowanie.

Przełom nastąpił w 1977 roku, kiedy to powstał w USA pierwszy komputer (a właściwie jak na tamte czasy superkomputer) przeznaczony tylko do gry w szachy zdolny do obliczenia 180 tysięcy pozycji na sekundę. Przez co osiągnął on już poziom gry porównywany do dzisiejszego Mistrza FIDE. Belle, bo tak brzmiała nazwa tego cudu techniki, królował na ringu programów do 1983 roku, kiedy to został zdetronizowany przez maszynę znanej z produkcji superkomputerów firmy Cray X-MPs kosztującej około 1000 razy więcej od niego.

Na przełomie lat 80 i 90. XX wieku programy szachowe uruchamiane na komputerach ogrywały już mistrzów międzynarodowych, a w 1988 roku pierwszy komputer pokonał w partii turniejowej duńskiego arcymistrza Benta Larsena (wówczas 2650 ELO). Spory wkład w rozwój teorii programowania silników szachowych wniósł były mistrz świata w szachach Michaił Botwinnik, który w 1984 opublikował swoje prace nad programem „Pioneer” będące zwieńczeniem jego wieloletnich prac nad programem szachowym zdolnym do działania według algorytmu myślenia człowieka. A co za tym idzie, udało mu się doprowadzić swój program do dość wysokiego poziomu, jednak wskutek braku zainteresowania jego pracami w tym kierunku zaniechał dalszego rozwijania projektu. Ważnym wydarzeniem końca tej dekady jest, to kiedy w 1989 roku geniusz tej gry Garri Kasparow z łatwością ograł komputer Deep Thought. Spowodowało to, że naukowcy z IBM, konstruktorzy elektronicznych szachistów, wrócili do swoich laboratoriów, aby przygotować coś potężniejszego i zaraz potem rozpoczęto pracę nad kolejnym superkomputerem. Warto dodać, że brali w nich udział nie tylko programiści, ale również wybitni szachiści i teoretycy szachów, w efekcie tych prac powstał złożony z kilkuset procesorów komputer o nazwie Deep Blue, który potrafił w ciągu sekundy analizować 200 mln pozycji.

Wielki pojedynek człowieka ze sztuczną inteligencją

Na przełomie 1996/1997 roku doszło do serii meczów szachowych, w których ówczesny szachowy Mistrz Świata, Garri Kasparow, zmierzył się ze specjalnie do tego napisanym programem Deep Blue (1000 razy szybszy od Deep Thought). Pierwszy ich pojedynek miał miejsce 10 lutego 1996 roku. Trzy wygrał człowiek, jedną — maszyna, pozostałe zakończyły się remisem i zakończył zwycięstwem człowieka 4-2.

Rewanż odbył się pomiędzy 3-11 maja 1997 roku. Pula nagród wynosiła ponad milion dolarów (700 tysięcy dla zwycięzcy, a 400 tysięcy dla pokonanego). Pierwsza partia zakończyła się szybką wygraną człowieka. Druga była przyczyną skandalu: niejasne okazało się 36. posunięcie, kiedy Deep Blue odmówił przyjęcia ofiary piona, mimo że programowo maszyna powinna zaakceptować taką ofiarę. Kasparow protestował, mówiąc, że ktoś „ręcznie” podpowiedział komputerowi rozwiązanie, ale zespół IBM odmówił ujawnienia logów. W pozostałych czterech partiach jeden raz więcej wygrał komputer, pokonując w serii sześciu partii Kasparowa 3,5-2,5. Deep Blue tym samym stał się pierwszym systemem komputerowym, który wygrał z aktualnym mistrzem świata w meczu ze standardową kontrolą czasu.


Stało się. Komputer pokonał w grze w szachy aktualnego mistrza świata, Garriego Kasparowa - obwieścił; w 1997 roku na łamach „Wiedzy i Życia” Bogdan Miś.

Po latach jeden z programistów twierdził, że decyzja maszyny była efektem błędu i przypadku. Kasparow przegrał, chociaż późniejsze analizy wykazały, że mógł partię zremisować. Przed ostatnią partią, rozgrywaną 11 maja, wynik wynosił 21–21. Wszystko mogło się zdarzyć. Komentatorzy zwykli podkreślać, że Kasparow był zmęczony (na zmęczenie Deep Blue nie można było liczyć) i nie zniósł presji walki o honor ludzkiego mózgu. Maszyna zwyciężyła. Sam Kasparow docenił ten wyspecjalizowany program, zauważając głęboką inteligencję i kreatywność w ruchach maszyny. Warto wspomnieć, że za dopracowaniem systemu Deep Blue stał arcymistrz Joel Benjamina, natomiast inni arcymistrzowie Miguel Illescas Cordoba, John Fedorowicz i Nick De Firmian dostarczyli bibliotekę otwarć dla systemu. Niewątpliwe to w dużym stopniu wpłynęło na kreatywność tego projektu.

Początek XXI wieku — czas ogólnego dostępu programów szachowych w Internecie

Pierwsze programy ogólnie dostępne w internecie zaczęły się pojawiać już w latach 90. XX wieku. Wtedy też powstały pierwszy program z własnych interfejsem graficznym do gry szachy Arasan oraz nieodżałowany World Chess Network, który był pierwszym płatnym serwerem szachowym online do gry w szachy. Początek następnego millenium przyniósł już całą masę wartościowych programów do gry w szachy, których z każdym kolejnym rokiem ciągle przybywa, a najlepsze z nich nie ustępują swym poziomem najlepszym szachistom naszego globu. A dzięki temu bogactwu każdy użytkownik internetu, ma dostęp do mniej lub bardziej profesjonalnych programów szachowych.

Do najbardziej znanych programów tego typu zalicza dostępna za darmo Arena Chess, Lucas Chess, Scid vs PC oraz Fritz Chess, Shredder Classic lub Chessmaster, które pomimo tego, że są płatne, z racji reprezentowanego poziomu gry są wszech miar godne polecenia. Warto wspomnieć, że na serwisie Dobre Programy również można znaleźć programy do nauki gry w szachy: Armageddon Chess, Shaag Chess, Real Chess 3D. Poza tym z programów szachowych można korzystać też, grając z przeciwnikiem w internecie np. na Kurnik.pl, a także innych darmowych stronach online.

Szach i mat

Chociaż gra w szachy daje się ująć w reguły matematyczne, to jednak komputery długo nie mogły sobie poradzić z ludźmi w grze w szachy. Było to zwłaszcza widoczne na poziomie profesjonalnym, gdzie przez dziesiątki lat programy szachowy ogrywali arcymistrzowie szachowi. Pomimo tego trzeba przyznać, że Informatyka, w wymierny sposób przyczyniła się w rozpropagowaniu komputerowej gry w szachy. Chociaż z drugiej strony esencją szachów na zawsze będzie gra w tradycyjnej formie, na normalnej szachownicy, gdzie dwójka graczy w skupieniu analizując każdy ruch przeciwnika, dąży do uzyskania mata. Taka jest specyfika tej i gry i nic tego nie zmieni. Finito.