Dlaczego ruch szachowy może zwiększyć szanse na wygraną według komputera?

14

Oglądając puchar Sinquefield na http://grandchesstour.org/ , możesz wypróbować różne ruchy i zobaczyć, jak komputer ocenia pozycję po twoim sugerowanym ruchu.

Teraz większość ruchów wpłynie na twoją pozycję, jeśli komputer nie uzna tego za najlepszy ruch. Ale w przypadku niektórych ruchów (dość często) natychmiast zyskujesz zwiększoną szansę na wygraną, być może przewagę o pół pionka. Nie rozumiem tego: jeśli pojedynczy ruch może znacznie poprawić pozycję graczy, czy nie powinno to być odzwierciedlone w bieżącej pozycji przed ruchem? Moim zdaniem każdy ruch, który nie jest uważany za najlepszy ruch komputera, powinien prowadzić do pogorszenia pozycji, podczas gdy najlepszy ruch powinien w najlepszym wypadku utrzymać pozycję równo, a nie poprawiać pozycji graczy. Ponieważ, jeśli komputer wie, że ten ruch poprawi pozycję graczy, to powinien już na obecnej pozycji poprawić pozycję graczy, mówiąc, że „przy najlepszej grze jesteś o pół pionka do góry”?

Hmm, a może to tylko wynik implementacji strony na grandchesstour.org?

jonasfh
źródło
4
W niektórych przypadkach silniki mają problemy ze znalezieniem właściwego ruchu, ale oceniają go poprawnie po ręcznym wprowadzeniu. Nie jest to jednak tak powszechne, jak to, co opisujesz.
11684,

Odpowiedzi:

26

Jeśli komputer był w stanie ocenić każdą linię gry aż do końca gry, ocena nigdy się nie zmieni. Rzeczywiście, ocena każdego ruchu byłaby albo „wygrana”, „przegrana” lub „remis”. Zasadniczo dzieje się to w bazach tabel gier końcowych. * Gdyby komputery mogły to zrobić dla każdej pozycji, każda gra przeciwko komputerowi składałaby się z rezygnacji komputera bez wykonania ruchu, oferując remis na pozycji początkowej lub zirytowania, że ​​nie zrezygnowałeś lub nie zaakceptowałeś tej oferty losowania.

Jednak komputery nie mogą ocenić tak daleko, ponieważ zajęłoby to niemożliwie długo, zarówno dlatego, że gry mogą być bardzo długie (w zasadzie setki ruchów), a także dlatego, że przy każdym ruchu istnieje wiele możliwości. Komputery muszą więc mieć wiele skrótów. Obejmuje to próbę szybkiego odgadnięcia, jakie są najważniejsze ruchy kandydata (zabranie niechronionego elementu jest prawdopodobnie świetnym ruchem; zawieszenie twojej królowej jest prawdopodobnie okropnym ruchem; ...), a także zatrzymanie poszukiwania po kilku ruchach i użycie heurystyki zamiast więcej szukać, aby dowiedzieć się, czy wynikowa pozycja wygląda dobrze, czy nie.

Problem polega na tym, że te skróty mogą pójść nie tak. Komputer może uznać, że zawieszenie kawałka jest złe, gdy jest to naprawdę genialna ofiara. Może zdecydować, że pozycja ustabilizowała się, a tak naprawdę nie. Może po prostu nie mieć wystarczającej mocy, aby spojrzeć wystarczająco daleko w przyszłość, aby zobaczyć prawdziwy punkt konkretnego ruchu.

Oto prosty przykład, choć nie jest już bardzo realistyczny. Załóżmy, że masz zamiar mnie matować, ale mam serię dziesięciu czeków, które mogę zrobić, aby cię opóźnić. Jeśli spojrzę tylko dziesięć ruchów z góry, pomyślę, że sobie radzę: może nawet jestem pionkiem w górę, więc oceniam: „Po dziesięciu ruchach wciąż jestem pionkiem w górę, więc jestem dobry , Zdobądź +1 "Zagrywam mój pierwszy czek, odpowiadasz, a teraz widzę, że jest on za dziesięć i rezygnuję. Jest to tak zwany „efekt horyzontu”, którego współczesne programy próbują uniknąć (np. Patrząc głębiej wzdłuż linii, które mają wiele wymuszonych ruchów), ale ilustruje to ogólną zasadę.

Jeśli silnik widzi, powiedzmy, dziesięć ruchów w przyszłość, oznacza to, że wraz z każdym ruchem wykonuje się dalsze kroki w grze. W początkowej pozycji może zobaczyć, jak będzie wyglądać plansza przy ruchu 10; po jednym ruchu widać ruch 11 i tak dalej. (Ponownie, jest to uproszczenie, ponieważ komputery nie wyglądają obecnie na stały dystans w przyszłość, ale daje ogólny pomysł).

Podany przez ciebie przykład jest po prostu mniej dramatyczną wersją przykładów, które podałem. W miarę wykonywania większej liczby ruchów komputer może zagłębić się w grę, dzięki czemu może dokonać dokładniejszej oceny. Innym sposobem na dostrzeżenie tego jest informacja: im więcej ruchów jest odtwarzanych, tym więcej informacji ma komputer. Kiedyś zgadywałeś, jaka byłaby twoja odpowiedź na 1.e4, ale teraz wie, że grasz na Sycylii i tak dalej.


* Istnieje tutaj niewielka niuans, że tak naprawdę musisz policzyć liczbę ruchów do wygranej, aby uniknąć powtarzania pozycji. Rozważmy na przykład grę końcową KQ kontra K. Każdy ruch, który nie pateluje ani nie poddaje się królowej, wygrywa, więc potrzebujesz mechanizmu, by podążać w stronę mat, zamiast tylko losowego poruszania się i mówienia: „Wow, całkowicie idę wygrać - prawie każdy ruch wygrywa! ”

David Richerby
źródło
Doskonała odpowiedź! Nigdy nie słyszałem o „efekcie horyzontalnym”, ma sens, jest bardzo interesujący.
Pedro A,
Dziękuję za wyjaśnienia. Jestem głównie we mgle, jeśli chodzi o duży wpływ pojedynczego ruchu, ale wydaje mi się, że czas, na jaki komputer może analizować, jest dość ograniczony na danej stronie, co powoduje, że efekt jest duży.
jonasfh
4

Nie ma niespójności. Po wykonaniu ruchu komputer nie musi już szukać poprzedniej pozycji. Może teraz skupić całą moc obliczeniową na nowej pozycji, a zatem ocena może ulec zmianie. Drzewo gry może być zupełnie inne.

To tak jak gramy w szachy.

SmallChess
źródło
4
Można dodać, że silnik szachowy online nie analizuje na początku wielu ruchów, więc dodatkowa warstwa jest o wiele bardziej znacząca niż na komputerze w domu.
Brian Towers
Hmmm, zgadzam się. Mimo to jestem ciekawy, że wpływ jest tak duży jak na pojedynczy ruch. Sądzę, że komputer wykonuje dość znaczącą analizę dla każdego możliwego następnego ruchu, szczególnie obiecującego, i powinien dowiedzieć się, czy jeden z możliwych ruchów da znacznie lepszą pozycję i odpowiednio dostosuje bieżącą pozycję. Ale widzę komentarz Briana, który tutaj musi być ważny.
jonasfh,