Deep Blue – historia i charakterystyka, czyli jak maszyna pokonała człowieka

Przez wiele lat sztuczna inteligencja kojarzyła się raczej z inteligentnymi maszynami znanymi z Terminatora, ewentualnie z inteligentnymi programami znanymi z Matrixa. Innym osobom o bardziej optymistycznym nastawieniu, termin ten mógł kojarzyć się z przyjaznym robotem Wall-e. 🙂 Wkład merytoryczny do tego wpisu blogowego dostarczył specjalista ds. sztucznej inteligencji, statystyki i modelowania, Konrad Kukulski. Oddajemy więc głos naszemu gościowi, który opowie trochę o chyba najbardziej znanym komputerze do gry w szachy Deep Blue, który dawno temu pokonał Garrego Kasparova.


Nasze Szachy:

Pod koniec 2022 roku światu ukazał się kompletnie inny produkt spod brandu sztucznej inteligencji - chatGPT przygotowany przez OpenAI, będący obecnie szczytowym osiągnięciem symulowania ludzkiego zachowania. Konkretnie - naśladowania ludzkiej mowy, bo chatGPT to, przynajmniej na razie, sztuczna inteligencja zbudowana w celu konwersacji z człowiekiem, a nie przejęcia władzy nad światem. Czy to kolejny krok w budowie sztucznej inteligencji?

Konrad Kukulski:

Sceptyk mógłby zapytać, jaki ma to związek z szachami? Otóż ma i to ogromny. Przez wiele lat rozwoju komputerów to właśnie gry planszowe rozgrywane przez dwóch graczy, takie jak właśnie szachy bądź go, były podawane jako przykład aktywności, w których komputery nigdy nie będą lepsze od człowieka. Nawet jeśli nie będą lepsze od losowego człowieka, to na pewno nie pobiją mistrza w swojej dziedzinie. W przypadku szachów to “nigdy” trwało do 1996 roku, gdy Deep Blue pierwszy raz wygrał partię z ówczesnym mistrzem świata Garrym Kasparovem, przegrywając cały mecz wynikiem 4-2. W kolejnym roku udało mu się wygrać cały mecz. Rok 1997 możemy przyjąć jako punkt zwrotny w historii rozwoju silników szachowych. Później już żaden człowiek nie był w stanie zbliżyć się do poziomu prezentowanego przez komputery szachowe.

Jak komputery grają w szachy?

Nasze Szachy:

Jak to się stało, że komputer pokonał człowieka? Czym jest ten komputer szachowy albo raczej silnik szachowy?

Konrad Kukulski:

W największy skrócie - silnik szachowy to wyspecjalizowany program komputerowy, którego przeznaczeniem jest gra w szachy, a dokładnie - ocena pozycji oraz proponowanie najlepszych ruchów. Obecnie najpopularniejszym silnikiem szachowym jest Stockfish. Ostatnia wersja (15.1) ujrzała światło dziennie w grudniu 2022. Estymowany ranking najnowszej wersji to ponad 3500 elo. Dla porównania Magnus Carlsen, obecny mistrz świata, mógł się pochwalić się rankingiem 2852 w lutym 2023.

Obecnie mówiąc o silniku szachowym, mamy na myśli program, który może być uruchomiony praktycznie na dowolnym urządzeniu: od komputerów stacjonarnych, przez laptopy a nawet smartfony. Jeszcze nie tak dawno, raptem 25 lat temu, do działania silnika komputerowego niezbędny był ogromny jak na obecne standardy, wyspecjalizowany komputer.

Deep Blue - charakterystyka

Nasze Szachy:

I takim pierwszym komputerem był słynny Deep Blue?

Konrad Kukulski:

Deep Blue nie można nazwać byle silnikiem szachowym. Deep Blue zasługuje na miano poważnego komputera szachowego, jako że oprogramowanie zostało dostarczone razem z ogromnym sprzętem.

Nasze Szachy:

Jak wyglądał Deep Blue?

Konrad Kukulski:

Składał się 30-sto węzłowego (czyli 30-procesorowego) IBM RS/6000 SP oraz 480 pojedynczych układów odpowiedzialnych za silnik przeszukiwań. To aż 16 układów szachowych na jeden procesor. SP system zawierał 28 węzłów z 120MHz P2SC procesorami oraz 2 węzły z 135MHZ P2SC procesorami. Każdy z węzłów posiadał 1GB RAM oraz 4GB dysku. W czasie meczu z Kasparovem w 1997 roku, komputer używał systemu operacyjnego AIX 4.2. Każdy układ szachowy Deep Blue były w stanie przeszukiwać od 2 do 2,5 mln pozycji na sekundę oraz komunikował się ze swoim węzłem na pomocą magistrali.

źródło: Wikipedia

Deep Blue był zorganizowany w 3 warstwy. Jeden z procesorów SP był zaprojektowany jako master, pozostałe jako workers. Master odpowiedzialny był za początkową fazę poszukiwań, następnie delegował dalsze poszukiwania do workerów. Workery prowadziły poszukiwania przez kilka kolejnych posunięć, następnie przekazywały pozycję do dalszych obliczeń do układów szachowych, które kontynuuowały przeszukiwanie aż do końca.

Nasze Szachy:

Dobrze, a jak to się przekłada na wyniki i szybkość obliczeń?

Konrad Kukulski:

Całkowita wydajność systemu zależała od charakterystyki konkretnej pozycji, która miała zostać przeszukana. W przypadku tzw. pozycji taktycznych, gdzie istnieje długa sekwencja wymuszonych ruchów, Deep Blue przeliczał około 100 milionów pozycji na sekundę. Przy spokojniejszych pozycjach, szybkość oscylowała wokół 200 milionów pozycji na sekundę. W trakcie meczu w 1997 roku, obserwowana szybkość Deep Blue w obliczeniach dłuższych niż 1 minuta wynosiła 126 milionów pozycji na sekundę. Maksymalna osiągnięta szybkość wynosiła 330 mln pozycji na sekundę. Współczesnym procesorom wciąż daleko do tego wyniku. Najsilniejszy “cywilny” procesor, 16-sto rdzeniowy AMD Ryzen 9 7950X przelicza około 75 milionów pozycji na sekundę.

Co potrafił Deep Blue?

Nasze Szachy:

Jakie zdarzenie lub zdarzenia były najbardziej przełomowe w rozwoju Deep Blue?

Konrad Kukulski:

Prace związane z obliczeniami szachowymi cieszyły się zainteresowaniem wśród informatyków IBM już we wczesnych latach 50. XX wieku. W 1985 roku, absolwent Carnegie Mellon University, Feng-hsiung Hsu, rozpoczął pracę na swoim projektem zaliczeniowym - maszyną grającą w szachy zwaną ChipTest, zdolną do przeszukania 500 000 pozycji na sekundę. Nad projektem współpracował razem z kolegą z grupy - Murrayem Campbellem. W 1987 ChipTest wygrał North American Computer Chess Championship. W 1988 Hsu z zespołem zaprezentowali następcę ChipTest - Deep Thought. Przeliczał 700 000 pozycji na sekundę. W tym samym roku maszynie udało się pokonać szachistę o poziomie arcymistrza - Benta Larsena. Niemniej, tego samego roku przegrał 2 mecze w starciu Mistrzem Świata - Garrym Kasparovem. Przewaga człowieka nad maszyną została utrzymana.

garry Kasparov deep blue

Nasze Szachy:

I co było dalej?

Konrad Kukulski:

W 1989, po obronieniu doktoratów, obaj młodzi naukowcy zostali zatrudnieni w IBM Research, gdzie kontynuowali pracę przy wsparciu innych informatyków IBM, takich jak Joe Hoane, JErry Brody oraz C. J. Tan. Zespół został nazwany “Deep Blue”. Posiadał ambitny cel - zbudowanie maszyny, która będzie w stanie pokonać Mistrza Świata w szachach. Kontynuowali oni rozwój Deep Thoughts, który cyklicznie wygrywał North American Computer Chess Championship oraz World Computer Chess Championship, będąc w tym czasie najsilniejszym komputerem szachowym na świecie. W 1994 roku, po uzyskaniu finansowania z IBM, został zakończony rozwój Deep Thougths. W 1995 zespół zaprezentował prototyp nowego silnika. Koniec prac rozwojowych został zaplanowany na 1996 roku. Na ten sam rok zostało zaplanowane starcie z Garrym Kasparovem.

Nasze Szachy:

Mówisz o Deep Thougths. A czy Kasparov nie został pokonany przez Deep Blue? Jaka jest różnica między tymi dwoma pojęciami?

Konrad Kukulski:

W latach 1989-90, część zespołu Deep Thought (Anantharaman, Campbell, Hsu) przeniosła się do IBM T.J. Watson Research aby kontynuować pracę nad budową światowej klasy komputera szachowego. Pierwszym wynikiem prac zespołu był Deep Thought 2, prototyp Deep Blue. Chociaż Deep Thought 2 był jedynie kamieniem milowym prowadzącym do Deep Blue, rozegrał wiele publicznych partii w latach 1991-1995. Mimo, że Deep Thought 2 używał tego samego układu generatora ruchów co Deep Thought, posiadał 4 istotne ulepszenia.

Nasze Szachy:

Czyli jakie? Jakie miał wyniki Deep Thought 2?

Konrad Kukulski:

Deep Thought 2 początkowo miał 24 układy szachowe, jednakże z czasem ta liczba zmalała w związku z usterkami procesorów, które nie były zastępowane. To pokazuje postęp względem Deep Thought, które zazwyczaj posiadało 2 procesory, chociaż pojawiały się równie 4 oraz 6 procesorowe wersje.

Układ ewaluacji pozycji Deep Thought 2 korzystał z większej ilości RAM-u oraz zawierał kilka dodatkowych funkcjonalności w funkcji oceny pozycji. Niemniej jednak, funkcja oceny pozycji była stosunkowo prosta. Przykładowo, Deep Thought 2 nie był w stanie rozpoznać gońców przeciwnych kolorów, sytuacji, o której szachiści wiedzą, że ogromnie zwiększa szanse na remisową końcówkę. W celu zaadresowania tego problemu, Deep Thought 2 posiadał software-ową poprawkę. Niestety, to mocno zmniejszyło ogólną szybkość systemu i wprowadziło wiele anomalii na styku software-u i hardware-u. Pomimo tej wady, brakujące elementy funkcji ewaluacji były na tyle krytyczne, że zdecydowano się na użycie tej łatki.

Oprogramowanie przeszukujące zostało całkowicie przepisane na potrzeby Deep Thought 2 oraz zostało zaprogramowane tak, aby lepiej radzić sobie z równoległym przeszukiwaniem. Dodatkowo, zaimplementowano wiele nowych pomysłów poprawiających przeszukiwanie. Kod ten następne był podstawą dla oprogramowania Deep Blue.

Rozszerzona biblioteka otwarć (Extended book) pozwalała Deep Thought 2 na wykonywanie rozsądnych ruchów mimo braków w bibliotece otwarć. Ta funkcjonalność została również odziedziczona przez Deep Blue.

Nasze Szachy:

No to jakie były początki Deep Blue?

Konrad Kukulski:

Deep Blue I bazował pojedynczym układzie odpowiedzialnym za przeszukiwania pozycji, zaprojektowanym w ciągu 3 lat. Został on zbudowany we wrześniu 1995 roku. Był obarczony szeregiem problemów i w związku z tym zrewidowana wersja dostarczona została w styczniu 1996 roku.

Deep Blue I działał na 36-cio węzłowym komputerze IBM RS/6000 SP oraz używał 216 wyspecjalizowanych układów szachowych. Układy te przeszukiwały około 1,6-2 milionów pozycji szachowych na sekundę. Łączna prędkość przeszukiwania wynosiła około 50-100 milionów pozycji na sekundę.

źródło: IEE Spectrum

Kompletny 36-cio węzłowy Deep Blue I zagrał jedynie 6 gier na turniejowych zasadach, wszystkie w lutym 1996 roku przeciwko Garremu Kasparovowi. Mecz ten został wygrany w zdecydowany sposób przez Kasparova 4-2, chociaż pierwsze 4 partie zakończył się remisem. Trzy dodatkowe mecze na zasadach turniejowych były rozegrane w formie przygotowań do meczu z Kasparovem. Została użyta wersja Deep Blue składającej się z jednego węzła, korzystającego z 24 układów szachowych. Ten system, zwany Deep Blue Junior, pokonał arcymistrza Ilya Gurevicha 1,5 - 0,5, zremisował z Arcymistrzem Patrickiem Wolffem 1-1 oraz przegrał z Arcymistrzem Joelem Benjaminem 0 - 2. Jednym z elementów przygotowań były gry rozgrywane przez Deep Blue Juniora przeciwko Larremu Christiansenowi oraz Michaelowi Rohde. Oba zostały wygrane przez Juniora 1.5 - 0.5.

Nasze Szachy:

Deep Blue I? To oznacza, że był także Deep Blue II?

Konrad Kukulski:

Tak. Wprowadzono bardzo wiele poprawek.

Pierwszy mecz z Kasparovem (przegrany 4-2) ujawnił wiele elementów, które zostały zaadresowane.  Ostateczna wersja Deep Blue o numerze dwa składała się z funkcji oceny biorącej pod uwagę 8000 cech pozycji, z których wiele zostało zaprojektowane dla oceny konkretnych pozycji. Pierwotna wersja miała ich tylko 6400. Testowe gry przeprowadzane z arcymistrzem Joelem Benjaminem miały również wpływ na rozwój tego elementu Deep Blue. Nowymi elementami były przykładowo: detekcja powtórzenia pozycji czy możliwość generowania wszystkich ruchów, które atakują figurę przeciwnika. W bibliotece otwarć umieszczono ponad 4000 pozycji i 700 000 gier arcymistrzów. Baza końcówek zawierała wiele pozycji sześcio figurowych oraz wszystkie pozycje zawierające 5 i mniej figur. Dodatkowa baza nazywana księgą rozszerzoną zawierała podsumowania całych gier rozegranych przez arcymistrzów. Dodatkowo wprowadzono poprawki wydajnościowe, które zwiększyły szybkość przeszukiwania pojedynczego układu szachowego do 2-2,5 mln pozycji na sekundę. Główną zmianą było więcej niż podwojenie liczby układów szachowych w systemie oraz użycie nowszej generacji SP komputera w celu sprostania wyższym wymaganiom obliczeniowym, które zostały w ten sposób wygenerowane. Trzecim, nowym elementem był zestaw narzędzi, które pomagały w debbugingu i przygotowaniu do meczu, np. poprawa oceny czy narzędzia do wizualizacji.

Początkowo funkcja oceny pozycji , która jest “sercem” całego silnika, została napisana w ogólnej formie, z wieloma parametrami do “uzupełniania. Przykładowo, jak ważne jest bezpieczeństwo króla w porównaniu do przewagi w centrum. Wartości tych parametrów zostały określone poprzez analizę tysięcy gier mistrzów.

W efekcie Deep Blue pokonał Garrego Kasparova w meczu rozegranym w 1997 roku z wynikiem 3.5 - 2.5. W związku ze zwycięstwem, Deep Blue został nagrodzony nagrodą Fredkina za pokonania ówczesnego Mistrza Świata w regularnym meczu.

Nasze Szachy:

Czyli Deep Blue II był bardzo silnym graczem. Dlaczego? Jak działało to całe przeszukiwanie i jakie były idee jego działania?

Konrad Kukulski:

Deep Blue polegał na wielu ideach rozwiniętych we wcześniejszych wersjach programów szachowych, w tym quiscence search, iterative deepening, transposition tables oraz NegaScout. Te oraz inne idee uformowały bardzo solidne podstawy dla zaprojektowania i zbudowania systemu szachowego.

Cechy charakterystyczne Deep Blue

Liczba oraz głębokość możliwych do przeszukania pozycji były zaskakujące. Ówczesne doświadczenia wskazywały, że silni szachiści byli w stanie liczyć pozycję daleko dalej niż algorytmy korzystające z jednolitego przeszukiwania. Doświadczenia z gier przegranych Deep Thought przeciwko Mike’owi Valvo w grze korespondencyjnej jasno na to wskazywały. Było to istotne w przypadku starcia z Garrym Kasparovem, który znany był z wysoce ofensywnej i skomplikowanej gry.

drzewo przeszukań deep blue
źródło: https://chrisbutner.github.io/

Nasze Szachy:

A nie oznacza to, że Deep Blue był wolny?

Konrad Kukulski:

Funkcja oceny pozycji Deep Blue była zaimplementowana sprzętowo. Ten sposób implementacji upraszcza wykonywanie zadań. W programach szachowych posiadających software-ową implementację funkcji oceny pozycji, należy ostrożnie rozważać dodawanie nowych funkcji, zawsze mając w pamięci, że “lepsza” funkcja oceny może wykonywać się zbyt długo, spowalniając cały program i ostatecznie prowadząc do gorszej gry. W przypadku Deep Blue, nie ma potrzeby ciągłego ważenia nowych funkcji oceny w kontekście wydajności i czasu wykonania. Czas potrzebny do wykonania oceny pozycji jest stały. Minusem tego rozwiązania jest fakt, że nie ma możliwości dodania nowych funkcji do elementu odpowiadającego za sprzętową ocenę, a łatki programistyczne są bolesne i problematyczne.

Deep Blue oferował hybrydowe, sprzętowo-programowe przeszukiwanie. Łączył możliwość software’owego przeszukiwania zaimplementowanego w C i wykonywanego na CPU ogólnego przeznaczenia ze sprzętowym przeszukiwaniem zaimplementowanym w procesorach szachowych. Element sotware’owy był ekstremalnie elastyczny i mógł być zmieniony w ramach potrzeb. Przeszukiwanie sprzętowe jest parametryzowane, ale ogólna zasada działania jest niezmienna.

Dodatkowo masywnie zrównolegla przeszukiwania. Deep Blue był masywnie równoległym systemem z łącznie 500 procesorami umożliwiającymi przeszukiwanie drzewa gry. Wyzwaniem dla systemów typu Deep Blue było połączenie wielkoskalowego równoległego przeszukiwania z mechanizmem selektywnego przeszukiwania.

Nasze Szachy:

Jak Deep Blue tak realnie grał w szachy?

Konrad Kukulski:

Układ szachowy wykorzystywany przez Deep Blue składał się z 3 głównych elementów: generatora ruchów, funkcji oceny pozycji, kontroli przeszukiwania.

Architektura tego typu nie jest specyficzna tylko dla Deep Blue. Można spokojnie przyjąć, że wszystkie silniki szachowe klasyczne czy współczesne, wykorzystujące ostatnie osiągnięcia w dziedzinie sztucznej inteligencji, składają się z tych 3 komponentów. Oczywiście różnią się implementacją, lecz ogólna idea pozostaje niezmienna. Od współpracy oraz jakości wszystkich tych 3 elementów zależy również końcowa siła silnika szachowego.

Nasze Szachy:

Jak zostały one wykonane na potrzeby Deep Blue?

Konrad Kukulski:

Generator ruchów wykorzystywany przez Deep Blue, bazował bezpośrednio na układzie wykorzystywanym przez Deep Thought, który z kolei oparty był na generatorze wykorzystywanym przez maszynę szachową Belle. Deep Blue posiadał wiele dodatkowych funkcji, takich jak generowanie szachów czy ruchów unikających szachów, a także generowanie pewnych rodzajów ruchów atakujących, co pozwala na lepsze przeszukiwanie drzewa pozycji.

Nasze Szachy:

No dobrze, ale jak to faktycznie było zrobione? Co w tym takiego trudnego?

Konrad Kukulski:

Cóż - jeśli pamiętamy, że akcja rozgrywa w połowie lat ‘90, czasach, gdy dyskietki 3.5 cala czy kasety VHS nie stanowiły jeszcze eksponatów muzealnych. Niech nie zdziwi nas fakt, że generator ruchów to była tak naprawdę … fizyczna tablica o wymiarach 8x8. Czyli krzemowa szachownica.

Tak, to były czasy, gdy informatyka była dużo bardziej fizyczna, niż dzisiaj!

Generator ruchów, chociaż w danej chwili generuje jedynie jeden ruch, domyślnie przelicza wszystkie możliwe ruchy i wybiera jeden. Przeliczanie wszystkich możliwych ruchów jest sposobem na osiągnięcie minimalnego opóźnienia poprzez generowanie ruchów w rozsądnej kolejności.

Rozsądna kolejność ruchów, możliwie jak najbliższa do “pierwszego-najlepszego” ruchu jest istotnym elementem w przeszukiwaniu drzewa gry. Układ szachowy używa sortowania, które dobrze działało w praktyce. Najpierw generuje zbicia w kolejności: figury o niskiej wartości bijące figury o wysokiej jakości, następnie figury o wysokiej wartości zbijające figury o niskiej wartości. W związku z tym najpierw zostanie wygenerowany ruch w stylu: pionek bije wieżę, a dopiero później hetman bije skoczka. Po wygenerowaniu wszystkich ruchów, które grożą zbiciem figury, przechodzi do generowania ruchów, które nie kończą się biciem. Po ocenie ruchu, zostaje on zdjęty z listy przeliczonych ruchów, a układ generuje kolejny ruch w kolejności.

źródło: https://chessfox.com/

Podobne podejście stosują profesjonalni szachiści i nazywa się to “znajdowaniem ruchów kandydatów”. Jest to działanie, które polega na znalezieniu kilku najbardziej perspektywicznych ruchów-kandydatów. Najczęściej zaczyna się od poszukiwania ruchów w stylu: czy w kolejnym ruchu przeciwnik może zbić moją wartościową figurę swoją słabszą figurą, lub czy ja mogę zrobić to samo.

Nasze Szachy:

No właśnie, jak wyglądała funkcja oceny pozycji dokonywana przez Deep Blue?

Konrad Kukulski:

Funkcja oceny pozycji zaimplementowana w układzie Deep Blue składała się z dwóch komponentów: szybkiej ewaluacji oraz wolnej ewaluacji. Jest to standardowa technika pozwalająca na pominięcie kosztownej obliczeniowo pełnej ewaluacji, gdy ocena przybliżona jest wystarczająco dobra. Szybka ocena, które oblicza ocenę pozycji szachowej w ciągu pojedynczego cyklu zegara, zawiera wszystkie, proste obliczeniowo, główne składowe oceny z wysokimi wagami. Najistotniejszą częścią szybkiej oceny jak wartość wynikająca z położenia figur, np. suma podstawowych wartości figur wraz z poprawką związaną z lokalizacją. Cechy pozycyjne, które mogę być szybko obliczone jak przykładowo możliwość ruchu pionków, również są częścią szybkiej oceny.

Wolna ocena skanuje szachownicę kolumna po kolumnie, obliczając ocenę w oparciu o koncepty jak kontrola pól, związania, bezpieczeństwo króla, struktura pionów, wolne piony, placówki dla skoczków, rozwój, wieża na 7 linii, schwytane figury itd. Cechy pozycji rozpoznane przez obie ewaluacje posiadają programowalne wagi, pozwalające na łatwe dostosowanie ich względnej istotności.

Komputer szachowy nad komputery

Nasze Szachy:

Czy to było skuteczne?

Konrad Kukulski:

Element układu szachowego odpowiedzialny za kontrolę przeszukiwania pozycji używa zestawu maszyn stanowych w celu implementacji algorytmu null-window alpha-beta search. Bez wchodzenia w szczegóły, jest to algorytm używany w grach rozgrywanych przez dwóch graczy jak: kółko-krzyżyk, go i szachy. Wybór tego konkretnego algorytmu podyktowany był jego główną zaletą - uproszczeniem projektu hardware-u. Pamiętajcie - mamy lata 90-te i prawdziwy chad-developer programuje w krzemie (albo chociaż FPGA), a nie w JavaScript.

Niestety, ma on kilka istotnych wad. Pierwszą jest fakt powtarzania przeszukiwań w niektórych przypadkach, np. gdy potrzebna jest dokładna ocena pozycji. Przeszukiwanie wymaga stosu ruchów do śledzenia posunięć, które zostały sprawdzone w głąb na każdym poziomie drzewa przeszukiwań.  Stos ruchów w Deep Blue II zawiera również detektor powtórzeń, który nie był zaimplementowany w Deep Blue I.

Układy szachowe miały opcjonalnie możliwość używania zewnętrznych układów FPGA w celu zapewnienia dostępu do zewnętrznej tabeli transpozycji, bardziej złożonej kontroli przeszukiwania oraz dodatkowych warunków dla funkcji oceny pozycji. W teorii ten mechanizm powinien dorównać efektywności i złożoności software-owego przeszukiwania. Null move search był również wspierany explicite przez tę metodę. W związku z ograniczeniami czasowymi, ta możliwość nie była nigdy użyta w Deep Blue.

Nasze Szachy:

To tak w skrócie – dlaczego Deep Blue wygrał z Kasparovem?

Konrad Kukulski:

Sukces Deep Blue w 1997 roku nie został osiągnięty dzięki jednemu konkretnemu czynnikowi. Ogromne możliwości przeszukiwania, niejednolite przeszukiwanie oraz złożona funkcja oceny, wszystkie były krytycznie istotne. Jednocześnie jest jasne, że jest wiele obszarów, które mogły zostać poprawione.

Obecnie dominacja maszyn grających w szachy nad ludzkimi szachistami nikogo nie dziwi. Ba! Partie rozgrywane przez współczesne programy szachowe są inspiracją dla współczesnych szachistów i jednym z motorów dalszego rozwoju tej dyscypliny. Mimo to w połowie lat ‘90, wiele osób było pewnych, że dzień w którym komputer pokona Mistrza Świata w tak kreatywnej grze jak szachy, nigdy nie nastąpi. Było wiele racjonalnych powodów, dla których było to niemożliwe. I raptem kilka wskazujących, że jednak to szaleństwo może zakończyć się sukcesem. Pewnym swego mógł być na pewno Garry Kasparov, którzy wcześniej wygrał 32 mecze z innymi komputerami szachowymi. Jak to mówią: do 33 razy sztuka?

Nasze Szachy:

Co się później stało z Deep Blue?

Konrad Kukulski:

Jak raportował IBM, zaraz po meczu z Kasparovem, Deep Blue został rozmontowany, chociaż faktycznie pozostał operacyjny jeszcze przez kilka lat. Jego zwycięstwo nad Kasparovem w 1997 roku stało się symboliczne, a partie z tego meczu są wciąż obiektem analiz i inspiracji.

Deep Blue można uznać za zwieńczenie prawie 50-stu lat marzeń pokoleń informatyków pragnących udowodnić, że są w stanie budować i programować maszyny, które są w stanie konkurować i przewyższać ludzi w obszarach tradycyjnie dla nich zarezerwowanych. Można go uznać za protoplastę współczesnych silników szachowych. Jest dobrym przykładem ogólnego, skutecznego działania tego typu silników, posiadając jednocześnie rozwiązania, które były dla niego naturalnym ograniczeniem. Jest to również świetny przykład Good Old Fashioned Artificial Inteligence, jak również wskazuje na naturalne ograniczenia systemów explicite programowanych przez człowieka.

źródło: www.mentalfloss.com/

Jest to także historia o ludzkiej determinacji. Czy Feng-hsiung Hsu marzył, że studencki projekt rozpoczęty w 1985 roku, po 12 latach okaże się milowym krokiem w rozwoju informatyki i sztucznej inteligencji?

Artykuł powstał dzięki uprzejmości Konrada Kukulskiego, Senior Data Science Business Consultant/ AI Translator/ AI Architect

No Comments Yet.

Leave a comment