1: Prolog


Zacznę od tego, jak powstawał i jak działał Deep Blue, szachowy system komputerowy (a więc algorytm i dedykowany dla niego sprzęt), który w 1997 roku pokonał ówczesnego mistrza świata, Garriego Kasparowa.
Nad systemem tym, niezależnie od wielkiego zespołu informatyków - projektantów i programistów, pracował ogromny sztab ludzi mających głęboką “wiedzę dziedzinową”, czyli mówiąc inaczej, wybitnych szachistów. Dzięki ich pomocy udało się wypracować wielką bazę otwarć oraz mechanizm oceniania sytuacji na planszy nazywany fachowo heurystyką. Wycena taka bazowała nie tylko na liczbie posiadanych figur i pionków przez poszczególnych graczy, ale i na ich pozycji na planszy, wzajemnym ubezpieczaniu się i wielu innych podobnych parametrach. Dalej wystarczyło już zastosować znany z teorii gier algorytm przeszukujący, który naśladował w pewien sposób proces myślenia szachisty. Analizował on kolejno możliwe zagrania komputera, następnie wyszukiwał dla każdego z nich odpowiedzi przeciwnika, potem własne odpowiedzi na te odpowiedzi i tak dalej, aż do pewnej głębokości, która umożliwiała przeprowadzenie takiej analizy w sensownym czasie. Ostateczne wybranie ruchu musiało oczywiście odbywać się zgodnie z zasadą “najsilniejszej kontry”, a więc komputer grając z człowiekiem musiał zakładać, że po dowolnym zagranym przez niego ruchu człowiek odpowie w sposób najmniej dla komputera korzystny. Sam na taką najmniej korzystną dla siebie odpowiedź w swych obliczeniach uwzględniał własną, która z kolei była najlepsza dla niego – i tak dalej. Stworzony algorytm nie przeszukiwał wszystkich wariantów jednakowo głęboko. Wcześnie “odcinał” te mniej obiecujące, by zaoszczędzić w ten sposób czas przeznaczony do “zastanawiania się” nad ruchem. Użyty tam mechanizm drzewiastego przeszukiwania nazywa się algorytmem Alpha-Beta. Drzewiastego, bo struktura analizowanych sytuacji przypomina właśnie drzewo. Korzeniem, czyli miejscem, z którego ono “wyrasta” jest aktualna pozycja na planszy. Poszczególne dalsze węzły odpowiadają temu, co mogłoby się dziać po wykonaniu odpowiednich, prowadzących do nich zagrań - naprzemiennie, przez komputer i przez jego przeciwnika. Wreszcie liśćmi są te sytuacje, w których dalsza analiza zostaje zaniechana i za pomocą istniejącej heurystyki dokonuje się oceny sytuacji na planszy.

Deep Blue był rozwiązaniem sztywnym. Wypracowana tu wiedza nadawała się w zasadzie wyłącznie do zastosowania w programach szachowych. Ewentualne dalsze udoskonalenia znów wymagałyby zaangażowania masy ekspertów i programistów, którzy modyfikowaliby użyte w programie heurystyki. Pokonanie Kasparowa stało się możliwe dzięki temu, że komputer mógł przeliczyć większą ilość wariantów rozgrywki niż człowiek. Dodajmy, że niektórzy informatycy, i to nawet z grona twórców Deep Blue, odmawiali temu systemowi miana Sztucznej Inteligencji.
Pierwszym pomysłem, który pojawił się już na początku lat dziewięćdziesiątych było użycie metody Monte Carlo, a więc oceny wartości zagrań za pomocą równo rozłożonych losowych próbek losowych rozegrań partii. Początkowe wyniki nie zachęcały, jednak otworzyły pewną drogę, o której opowiem dalej, i która doprowadziła do pierwszego istotnego przełomu. Drugim pomysłem było użycie sieci neuronowych (informatycznych struktur naśladujących w pewien sposób działanie kory mózgowej) - programy NeuroGo czy WinHonte w pierwszych latach XXI wieku osiągnęły poziom jednocyfrowego kyu, czyli średniozaawansowanych amatorów i znalazły się w czołówce ówczesnych programów. Ich sieci trenowane były na ogromnych ilościach partii ludzkich, jednak zabrakło im odpowiedniego narzędzia do wyszukiwania ruchów, analizowania sekwencji i, jak się później okazało, ich architektura oraz model nauki mogły być znacznie lepsze. W tamtym czasie traktowano je raczej jako informatyczne ciekawostki niż technologie, które otworzą zupełnie nową ścieżkę nie tylko w komputerowym go, ale i w Sztucznej Inteligencji jako takiej. W pierwszych latach XXI wieku powszechnie uważano, że na program zdolny pokonać w równej partii zawodowego gracza w go przyjdzie nam czekać przynajmniej 50 lat!
Choć zwycięski mecz był ogromnym osiągnięciem całego zespołu, który nad Deep Blue pracował, jednak w świecie programistów gier panowało przekonanie, że o prawdziwym przełomie będzie można mówić dopiero wtedy, gdy komputery zaczną wygrywać z ludźmi w go (wymieniano też inne gry, takie jak brydż czy poker). Tworzonym wtedy goistycznym programom brakowało wiele nawet do poziomu przeciętnych amatorów. Nie tylko to jednak sprawiało, że tak powszechne było wtedy przekonanie, że “z go tak łatwo nie pójdzie”. Po pierwsze, o ile w szachach w każdej pozycji jest średnio kilkanaście do dwudziestu kilku możliwych zagrań, to w przypadku go jest ich początkowo kilkaset, a potem przez całą praktycznie grę ponad setka. Do tego partia go składa się średnio z trzykrotnie większej liczby ruchów niż partia szachów. Skok złożoności między szachami i go jest tak ogromny, że porównany być może z liczbą atomów w całym obserwowalnym wszechświecie. Oznaczało to, że informatycy nie mogli nawet liczyć, że przyjdą im z pomocą stale wzrastające moce obliczeniowe komputerów. W dodatku, wobec ogromnej liczby rozgałęzień, nawet algorytm Alpha-Beta zbyt wiele wariantów musiałby sprawdzać, by można było prowadzić partię przy realnych ograniczeniach czasowych. Ludzie podczas wyboru analizowanych zagrań, kierują się doświadczeniem własnym i tym, które jest efektem kilku tysięcy lat rozgrywek milionów dalekowschodnich graczy. Nie było jednak pomysłów, jak owo doświadczenie skodyfikować, by stało się dostępne dla algorytmów. Sądzono też, że kolejnym nieprzeskakiwalnym problemem, będzie to, że dla go nikt nie miał sensownego pomysłu na zbudowanie heurystyki - takiej na wzór szachowej (w rodzaju: punkty za każdą figurę plus punkty za pozycję i tak dalej). Mistrzowie go sami nie wiedzą, jak szacują pozycję. Robią to w sposób czysto intuicyjny. Przy komputerowym go potrzebne więc było zupełnie nowe podejście.

Komentarze