Wiele osób zadaje pytanie, czy komputery grają lepiej od ludzi? Kiedyś może rozpiszę się o historii meczów ludzi z maszynami, ale raczej wszyscy słyszeliście o tym, że w ostatnich latach w bezpośrednim starciu ludzie nie mają zbyt dużych szans na wygranie takiego meczu. Czy takie wyniki są dowodem na wyższość maszyn względem ludzi jeśli chodzi o szachy? Otóż moim zdaniem NIE.
Pierwszym przykładem z brzegu są szachy korespondencyjne, gdzie zawodnicy mają bardzo dużo czasu (np. 40 dni na wykonanie 10 posunięć) i wszyscy lepsi gracze wykorzystują do analiz swoje urządzenia elektroniczne. Oczywiście ważne są tu parametry posiadanego komputera i wybór najmocniejszych silników do gry, ale jak się okazuje – najlepsi niekoniecznie wykonują ruchy proponowane przez programy komputerowe. Istnieje pewien zbiór pozycji, gdzie ludzka intuicja znacznie przewyższa obliczenia oraz ocenę pozycji podawaną przez maszynę. Dobry gracz korespondencyjny wie kiedy polegać na sile sprzętu, a kiedy mu nie ufać.
Dziś chciałbym skupić się na jednym bardzo prostym, skrajnym przypadku.
Człowiek może ocenić taką pozycję prawidłowo dosłownie w chwilę. Białe pomimo bardzo znaczącej przewagi materialnej nie mają szans na przełamanie się. Moglibyśmy tutaj bez problemu dołożyć jeszcze jedną wieżę, czy białopolowego gońca. A jak radzą sobie współczesne silniki?
Wybrane przez mnie trzy silniki szachowe są najlepsze na świecie według wielu rankingów (między innymi CEGT: http://www.husvankempen.de/nunn/rating.htm). Obecnie nie posiadam najnowszych wersji Komodo i Houdini, ale nie robi to znaczącej różnicy. Każdemu z silników dałem minimum minutę do „namysłu”, a hardware na jakim wykonałem test nie odbiega od współczesnych standardów.
Wszystkie programy zeszły bardzo szybko na wiele posunięć wgłąb i mimo to oceniły pozycję jako kompletnie wygraną dla białych. Oczywiście tak jak wspomniałem jest to przypadek bardzo skrajny, ale na ten moment w pozycjach zamkniętych, gdzie od liczenia wariantów ważniejsze jest planowanie i ocenianie pozycji, komputery mogą się jeszcze wiele „nauczyć” od ludzi. Sprawdźcie sami jak błędnie ocenia Wasz silnik, któremu czasami ufacie bezgranicznie! 😀
Pojawia się tu naturalnie szereg pytań, np. czy zbiór pozycji, gdzie człowiek nadal przewyższa maszynę da się zawęzić do zera lub czy komputery kiedyś „rozwiążą” szachy itp. Na takie pytania będę powoli odpowiadać w kolejnych częściach. Zadawajcie również swoje pytania w komentarzach, a będę starał się przybliżać Wam ten temat!
Na koniec bonus, partia błyskawiczna (3 minuty na gracza) grana w Internecie (na ICC) pomiędzy silnikiem Rybka, a arcymistrzem Hikaru Nakamurą z 2008 roku.
Jak podejrzewam, silnik miał wyłączoną książkę debiutową, że zdecydował się na niezbyt pryncypialny debiut. Następnie powstała pozycja kompletnie remisowa, ale tak jak w moim przykładzie, program przeceniał swoje szanse i unikając remisu zdecydował się na pogarszanie swojej pozycji na tyle, że w efekcie to czarne uzyskały wygraną pozycję. Dalsza część to już znęcanie się nad maszyną, która widocznie nie miała w ustawieniach możliwości poddania się 😀
Zapis partii: http://www.chessgames.com/perl/chessgame?gid=1497429
Ustawiłem kiedyś fritzowi końcówkę K+9G vs K (wszystkie gońce białopolowe lub wszystkie gońce czarnopolowe). Nie ma siły matującej mimo to silnik pokazuje około +33,00.
Podobnie znalazłem zadanie (w tej chwili dokładnie nie pamiętam tego zadania, musiałbym poszukać), w którym czarne dorabiają hetmana, powstaje końcówka K+S+G vs K+H. Silnik ocenia na dużą przewagę czarnych, podczas gdy jest ustawiona „klatka”. Czarny hetman jest zablokowany i może wykonywać tylko ruchy po kilku polach (nic nie zrobi królowi), czarny król z uwagi na ustawienie gońca i skoczka też jest zablokowany, końcówka remisowa, silnik pokazuje przewagę czarnych.
Miałem kiedyś na turnieju końcówkę K+H+3p vs K+H+2p. Przeciwnik miał na jednym skrzydle 3 piony przeciwko 1 pionowi, na drugim skrzydle ja miałem wolnego piona. Każda wymiana hetmanów dawała mi wygraną z uwagi na wolnego piona. Silnik pokazywał +1,50, a w pewnym momencie nawet +2,50, mimo to bez problemu zremisowałem tę końcówkę na turnieju i zremisowałem z fritzem. Silnik pokazywał dużą przewagę przeciwnika, dopiero po około 30 posunięciach „orientował się”, że końcówka jest remisowa (prawdopodobnie jest remisowa, tu potrzebne by były tablice 9-bierkowe by się na 100% przekonać).
Rozmawiałem raz z pewnym trenerem, który analizował partie swojego ucznia. Uczeń powiedział, że po „tym ruchu”, który zaproponował trener jego przewaga spada z +0,60 do +0,20. Trener zaproponował zagrać tę pozycję z silnikiem stosując odpowiedni plan gry. Po kilku ruchach silnik się „zorientował”, że jednak jest +2,00.
Jeszcze inny przykład – zawodnik rozwiązywał zadanie taktyczne. Silnik pokazywał równą pozycję, a poświęcenia w ogóle nie brał pod uwagę. Dopiero gdy zawodnik zagrał to poświęcenie to silnik pokazał najpierw dużo gorszą, a dopiero po pewnym czasie doliczył, że to jednak jest wygrana.
Trafne spostrzeżenia 🙂 Z jednym mogę się lekko nie zgodzić jeśli chodzi o ocenę K+S+G vs K+H lub np. innych prostych końcówek jak np. K+p vs K. Silnik sam z siebie akurat nie musi dobrze ocenić tej pozycji dlatego, że należy mu dodać tablice Nalimova dzięki czemu pokaże wtedy ocenę prawidłową. Ale w innych pozycjach jak najbardziej obecne tablice mu wiele nie pomogą, więc wszelkie takie błędy mogą się propagować na oceny bardziej złożonych pozycji.
Może w następnych częściach pokażę trochę przykładów z praktyki.
7K/4k1B1/8/4N3/8/8/6q1/8
W tej pozycji Fritz13 pokazuje przewagę czarnych -5,66. Skoczek i goniec nie wpuszczą króla, sam hetman nic nie zrobi.
Diagram 1. „Moglibyśmy tutaj bez problemu dołożyć jeszcze jedną wieżę, czy białopolowego gońca.” pod warunkiem, że wieże dołożymy na 1, 2 lub 3. linii.
Bardzo słuszna uwaga, nie doprecyzowałem 😀 Ale oczywiście to miałem na myśli. Pozdrawiam 🙂
Super artykuł, twórcy programów mają jeszcze sporo pracy 🙂 Pozdrowienia dla całej ekipy infoszach.
Mi zdarzyło się coś takiego że na początku nie mogłem za bardzo zrozumieć o co chodzi programowi, to było kilka lat tamu, grałem wtedy z programem Fritz, i w remisowej końcówce zaproponowałem remis, a program odrzucił pisząc mi coś w stylu, „odrzucam, grajmy dalej” i tak po trzech próbach w końcu się zgodził, gdzie królowi zostało chodzenie w tą i z powrotem, pomyślałem wtedy że jest tak zaprogramowany, że nie uznaje remisów, tak jakby był ustawiony tylko na wygraną 🙂 choć przyznam że akurat w tej końcówce teoretycznie można było zdobyć opozycję i dlatego odrzucał propozycję remisu 🙂 niemniej jednak można zauważyć że programy nie są dopracowane.
Jestem ciekaw jak w takich sytuacja poradziło by sobie oprogramowanie AlphaZero http://www.chip.pl/2017/12/alphazero-ai/
Co Pan o tym sądzi?
Trudno chyba będzie to testować w domu jako że sprzęt AlphaZero to taki mały superkomputer wiec chyba trzeba czekać na mecz(e) AlphaZero z ludzkimi mistrzami
Była to głośna sprawa w świecie szachowym, ale mało danych zostało udostępnionych, więc nie wiem jak w tego typu pozycji poradziłoby sobie AlphaZero.
Mam trochę ogólnych przemyśleń na ten temat i jeśli znajdę trochę więcej czasu to może uda mi się podzielić spostrzeżeniami w jakimś artykule 🙂
Dziękuję za odpowiedź
powiem wprost że nie znam się na szachach i dlatego pytam eksperta w tej sprawię.
Google DeepMind wygrał w chińską grę GO a jego ludzki przeciwnik ocenił jego ruchy jako kreatywne (co oczywiście może być subiektywną oceną)
Zastanawiam się jak wygląda porównanie szachów z GO. Czy skoro maszyna wygrała w GO to w szachy również czy może szachy to trochę inny typ problemu ? bardziej strategiczny?
W bezpośrednim starciu człowiek nie ma szans z maszyną w szachach. Głównie dlatego, że jest to gra błędów i człowiek prędzej czy później gdzieś się pomyli nawet jeśli ocenia lepiej od silnika. Ale tak jak pisałem w artykule powyżej – daleko maszynom do perfekcji i dowodem na to są szachy korespondencyjne, gdzie człowiek stanowi znaczącą wartość dodaną.
Ciekawym pojedynkiem byłoby np. AlphaZero kontra człowiek wspierający się silnikiem, który obiektywnie gra słabiej od AlphaZero.
To byłby ciekawy eksperyment ale wątpię aby Google przeprowadziło taką grę korespondencyjną AlphaZero vs IA+human głównie ze względu na duże zasoby sprzętowe czyli koszt takiej operacji. A może się mylę. Jeśli nie teraz to za kilkadziesiąt lat gdy taka moc obliczeniowa będzie tańsza taki eksperyment zostanie przeprowadzony.
Nie traktujmy silnika jak człowieka, silnik nie myśli tylko liczy, nie pokazuje wygranej tylko przewagę, oczywiście może się mylić, w przypadku maszyny za wygraną możemy uznać tylko mata. W omawianych remisowych pozycjach ta przewaga jest i silniki pokazują ją prawidłowo, a że nie ma wygranej i człowiek o tym doskonale wie jest kwestią oceny, interpretacji, niedostępnej maszynie, jak nie policzy to się nie dowie 🙂 Człowiek może powiedzieć że jest wygrana, może się upierać przy swoim zdaniu i udowadniać że ma rację nawet jeśli obiektywnie się myli, maszyna tylko liczy warianty.