Jest to zasadniczo pytanie o złożoność gry w szachy. Pamiętaj, że po skończeniu wiemy, że szachy są determinowane, ale nie wiemy, czy pozycja początkowa to wygrana dla białych, wygrana dla czarnych, czy remis. Złożoność gry w szachy to w przybliżeniu minimalna liczba pozycji, które musimy sprawdzić w drzewie gry, aby określić stan początkowej pozycji. Jest to znane jako liczba Shannona . W wpływowym artykule Programowanie komputera do gry w szachy Shannon oszacował, że liczba Shannona wynosi co najmniej 10 ^ {120). Zauważ, że liczbę cząstek we Wszechświecie szacuje się na 10 ^ (80). Aby odpowiedzieć na pytanie, tak naprawdę chcemy znać wysokośćdrzewa gry, gdy pozycja początkowa zostanie ustalona. Tę wysokość powinniśmy także podzielić przez 2, ponieważ ruch w szachach jest zwykle uważany za ruch biały i czarny. Współczynnik rozgałęzienia drzewa szacuje się na około 30. Zatem możemy przyjąć największy N taki, że 30 ^ (2N) <10 ^ (120).
Odpowiedź. Z tyłu koperty działa N = 40. Tak się składa, że jest to długość przeciętnej gry pomiędzy arcymistrzami (chociaż często rezygnują i nie grają w grę do końca).
Edytować. Morał tej historii jest taki, że próbowałem oszacować górną granicę dla dolnej granicy. Pierwsza część rozumowania Shannona nie ma charakteru kołowego; mówi, że z każdej pozycji jest około 30 legalnych ruchów, a liczba ta jest względnie stała w pierwszej części gry.
Zatem możemy oszacować bieżącą znaną wartość N (która jest naprawdę tym, o co prosisz, nazwijmy to N '), aby była co najwyżej log_30 (C), gdzie C jest równe mocy obliczeniowej istniejącej w historii ludzkości. Nawet przy ostrożnych szacunkach dla C, otrzymujemy coś w rodzaju N 'co najwyżej 20. W praktyce nie sądzę, aby ktokolwiek przeprowadził to obliczenie bardzo daleko od drzewa, ponieważ z góry wiemy, że obliczenia stają się niemożliwe do wykonania po bardzo niewielkiej wysokości i nie trzeba wyczerpująco przeszukiwać drzewa, aby pisać dobre programy szachowe.
Pamiętaj jednak, że zadajesz nieco słabsze pytanie, ponieważ możliwe jest, że początkowym stanem gry jest remis z optymalną grą. Tak więc można uzyskać granice dla N, pisząc program, którego celem było nie tracić tak długo, jak to możliwe. Następnie moglibyśmy zagrać w ten program z najlepszymi programami lub ludzkimi graczami na świecie i zobaczyć, jaka jest długość najkrótszej gry. Ponownie, to nie odpowiada poprawnie na pytanie, ponieważ nie możemy zakładać, że nasi przeciwnicy grają optymalnie . Prawdziwa optymalna gra wymaga pełnej znajomości drzewa gry, ale widzieliśmy, że jest to niemożliwe obliczeniowo. Zatem najlepsze, co możemy obecnie zrobić, to zbliżyć optymalnie grającego przeciwnika z Kasparowem lub bardzo dobrym programem szachowym.