|
SZACHY
|
|
Aby uzyskać odpowiedzi na te pytania wystarczy napisać prosty program, analizujący wszystkie możliwe warianty (tak działa ChessExplorer) , wprowadzić początkową pozycję na szachownicy, zadać poszukiwanie mata np. w 50 ruchach i ... poczekać odpowiednio długo.
Czas oczekiwania na wynik byłby rzeczywiście dosyć długi, bo liczba wariantów do przeanalizowania, jak się zaraz okaże, jest ogromna.
Można w pewnym stopniu przyśpieszyć analizę przez zastosowanie szybszych procesorów czy systemów wieloprocesorowych (np. badania rozproszone na wielu komputerach, jak w projekcie poszukiwania pozaziemskich cywilizacji SETI@Home) i oczywiście poprzez optymalizację kodu programu.
Tu mała dygresja Kod programu ChessExplorer został zoptymalizowany pod kątem pełnego wykorzystania możliwości procesorów z rodziny Pentium i na typowych komputerach program analizuje ok. 50 milionów posunięć w ciągu sekundy. Przy tych procesorach program potrzebuje tylko około 60 cykli zegarowych procesora na jedno posunięcie (myślę, że już więcej nie da się "wycisnąć" poprzez ulepszanie algorytmu). Jako ciekawostkę można podać, że w zamierzchłych czasach 8-bitowych Atari (starsze osoby, po 30-tce, pamiętają ten komputer składający się z klawiatury) program oparty na podobnym algorytmie, napisany w języku maszynowym procesora 6502, przy zegarze 1,77 MHz (takie wtedy były) wykonywał około 10.000 posunięć w ciągu sekundy. Ale kod programu, łącznie z boot-sectorem na dyskietce, zajmował tylko 2,5 kB (czy są teraz takie programy??)! |
po 3 posunięciach (ostatnie posunięcie białych) | - | 8.902 | |
po 4 posunięciach (ostatnie posunięcie czarnych) | - | 197.281 | |
po 5 posunięciach (ostatnie posunięcie białych) | - | 4.865.609 | |
po 6 posunięciach (ostatnie posunięcie czarnych) | - | 119.060.324 | |
po 7 posunięciach (ostatnie posunięcie białych) | - | 3.195.901.860 | |
po 8 posunięciach (ostatnie posunięcie czarnych) | - | 84.998.978.956 |
Nie polecam dokonywania tych obliczeń "na piechotę". Dużo łatwiej napisać programik, zliczający poszczególne warianty, lub skorzystać z ChessExplorer'a (program w jednej z opcji, dla ustawionej pozycji, zlicza właśnie liczbę możliwych wariantów gry w podanej liczbie posunięć). Korzystając z tego programu otrzymałem też liczbę wariantów gry w 9 pierwszych posunięciach (5 białych i 4 czarnych): 2.439.530.234.167. Przy ok. 40 milionach posunięć, analizowanych w ciągu jednej sekundy, trwało to już prawie 15 godzin i przypuszczalnie dla 10 posunięć czas ten wyniesie już kilkaset godzin. |
Średnia liczba możliwych odpowiedzi na ruch przeciwnika | ||
białe | czarne | |
1. ruch | e2 - e4 | 20,00 |
2. ruch | 30,00 | 21,93 |
3. ruch | 30,80 | 24,10 |
4. ruch | 31,67 | 26,22 |
Partia hiszpańska 1. e2 - e4, e7 - e5 2. Sf1 - f3, Sb8 -c6 3. Gf1 - b5, a7 - a6 W tej pozycji ilość dalszych możliwych kontynuacji gry wynosi:
|
Gambit królewski 1. e2 - e4, e7 - e5 2. f2 - f4, d7 - d5 3. e x d5, e5 - e4 Ilość dalszych możliwych kontynuacji:
|
Obrona królewsko-indyjska 1. d2 - d4, Sg8 - f6 2. c2 - c4, g7 - g6 3. Sb1 - c3, Gf8 - g7 Ilość dalszych możliwych kontynuacji:
|
Obrona Nimzowitscha 1. d2 - d4, Sg8 - f6 2. c2 - c4, e7 - e6 3. Sb1 - c3, Gf8 - b4 Ilość dalszych możliwych kontynuacji:
|
Widoczne tu jest np., że w obronie królewsko-indyjskiej czarne mają mniejsze od białych możliwości manewru, a w gambicie królewskim - przeciwnie. W tym ostatnim ostrym debiucie, liczba możliwych kombinacji wzrasta szybciej, niż średnio w innych wariantach.
W grze środkowej ilość możliwych kontynuacji waha się, co zrozumiałe, w zależności od pozycji, w zakresie od ok. 20 do ok. 50 możliwych odpowiedzi w każdym posunięciu.
|
doszło do pozycji przedstawionej na diagramie. Ilość najbliższych możliwych kontynuacji wynosi tutaj:
|
Jeśli nasz program będzie analizował 1.000.000 wariantów w ciągu sekundy, to na przerobienie całości będzie potrzebował ok. 10120 lat.
Jest to liczba większa, niż szacowana ilość atomów w obserwowalnym wszechświecie i nawet przyśpieszenie obliczeń bilion razy (1012) niewiele zmieni, bo otrzymamy wtedy ciągle wysoki rząd wielkości: 10108 lat.
Mimo wszystko, może to i lepiej, bo gdybyśmy znali odpowiedzi na postawione na wstępie pytania, co robiliby nasi wspaniali arcymistrzowie, a sens straciłaby m.in. cała, pracowicie latami tworzona i rozbudowywana, teoria debiutów szachowych.
Pewna część ze wszystkich możliwych wariantów gry w danej pozycji to takie, które sprowadzają się do prostego powtarzania posunięć przez obydwie strony (i ciągłego powtarzania pozycji). W programie komputerowym możemy łatwo wyeliminować takie "zapętlenia się". Ale do identycznych pozycji na szachownicy można dojść także poprzez odmienną kolejność tych samych posunięć. Przy określonych ośmiu posunięciach (czterech białych i czterech czarnych) możemy mieć 576 różnych sekwencji ruchów (tych samych posunięć, lecz w różnej kolejności) prowadzących do tej samej pozycji.
Grający program szachowy przy rozgrywaniu partii tworzy bazę przeanalizowanych już pozycji wraz z ich oceną. Zmniejsza to ilość rozpatrywanych posunięć w ciągu sekundy (konieczność przeszukiwania tej bazy i jej aktualizowania) ale eliminuje powtórne analizowanie tej samej pozycji (całej gałęzi ruchów wynikających z tej pozycji).
Ilość możliwych przebiegów partii szachowej określiliśmy szacunkowo na 10134.
Jaka jest ilość możliwych do uzyskania pozycji na szachownicy?
Jest to zadanie ściśle zdefiniowane, ale nie jest łatwe do rozwiązania. Możemy próbować podejść do tego w poniższy sposób.
Dla każdej z możliwych ilości bierek na szachownicy (od 2 do 32) obliczamy liczbę możliwych różnych zestawów bierek składających się na tę łączną ilość.
Dla każdej ilości bierek wybieramy w miarę reprezentatywny zestaw bierek i obliczamy na ile sposobów zestaw ten można rozmieścić na szachownicy. Staramy się uwzględnić tu tylko, co nie zawsze jest proste, pozycje możliwe do uzyskania.
Po wymnożeniu odpowiednich wielkości (dla każdej z ilości bierek, od 2 do 32) i zsumowaniu wyników otrzymamy końcowy rezultat.
Przykładowo dla 2 bierek możliwy jest tylko jeden zestaw bierek: 2 króle.
Dla 3 bierek istnieje 10 różnych zestawów: 2 króle plus jedna z pozostałych białych lub czarnych bierek.
Dla 4 bierek mamy 35 zestawów (mogą tu być też 2 hetmany tego samego koloru).
Dla 16 bierek otrzymamy ok. 809 tysięcy możliwych zestawów, a dla 24 bierek ok. 13 milionów.
Przy 32 bierkach możliwy jest jednak tylko jeden zestaw, taki jak przy rozpoczynaniu partii (bez żadnego bicia nie jest możliwa promocja piona).
Niestety, bardziej kłopotliwe jest w miarę dokładne określenie ilości możliwych rozmieszczeń na szachownicy poszczególnych zestawów bierek. A te ilości są o rzędy wielkości wyższe od poprzednich liczb i to one decydują o końcowym rezultacie.
Dwie bierki (2 króle) można rozmieścić na szachownicy na 3.612 sposobów (króle nie mogą się szachować).
Dla 14 bierek (przyjąłem tu, poza królami, białego hetmana, 2 białe wieże, 4 białe piony, czarnego hetmana, czarną wieżę i 3 czarne piony) otrzymałem 6.1021 możliwych rozmieszczeń.
Największe liczby możliwych pozycji (rzędu 1029 do 1033) otrzymywałem dla ilości bierek od 22 do 25.
Te liczby skorygowane są już współczynnikami, mającymi wyeliminować "nielegalne" pozycje (np. obydwa króle są szachowane, liczba promowanych pionów większa, niż to możliwe przy danej ilości bierek, wszystkie piony jednego koloru na liniach "a" i "b", piony czy np. wieża za barierą pionów przeciwnika, itp.).
Ostateczny wynik, czyli ogólna ilość możliwych pozycji na szachownicy, wg moich prób obliczeń wahał się w granicach od 1038 do 1041. Myślę, że można tu z powodzeniem przyjąć liczbę 1040.
Ta liczba jest o wiele rzędów wielkości mniejsza, niż oszacowana wcześniej ilość możliwych kontynuacji partii ( 10134 ).