Czy jest jakiś silnik szachowy, który ma tryb analizy, który może pokazać, czy pozycja jest wymuszonym losowaniem przez którąkolwiek ze stron?
Często zdarza się, że silniki generują oceny 0,0 po wykryciu remisu. Ale ocena 0,0 może oznaczać wiele rzeczy. Na przykład, zakładając, że ruch jest biały, ocena 0,0 może oznaczać:
- Gra jest z pewnością losowaniem, niezależnie od tego, w jaki sposób gra każdy z graczy (np. Niewystarczający materiał).
- Obaj gracze mogą wymusić remis. Żaden gracz nie może mieć nadziei na wygraną, jeśli jego przeciwnik gra idealnie.
- Bez względu na to, który ruch gra biała, komputer jest w 100% pewien, że czarny może wymusić remis, jeśli chce. Białe nie mogą liczyć na wygraną, jeśli czarny gra idealnie. Remis jest najbardziej prawdopodobnym wynikiem, ale głębsze poszukiwanie może wykazać, że czarne mogą wymusić zwycięstwo.
- Komputer jest w 100% pewien, że biały może wymusić remis, jeśli chce. Czerń nie może liczyć na wygraną, jeśli biały gra idealnie. Remis jest najbardziej prawdopodobnym wynikiem, ale głębsze poszukiwanie może wykazać, że białe mogą wymusić zwycięstwo.
- Komputer nie znalazł wymuszonego losowania dla żadnej ze stron, ale jak dotąd ocena jest dokładnie pozioma. Remis jest najbardziej prawdopodobnym wynikiem, ale głębsze wyszukiwanie może później wykazać przewagę jednej strony.
Aby podać przykład, kiedy może to być przydatne, jeśli białe nie muszą wygrywać i chcą mieć jak największą pewność co do remisu, mogą preferować wykonanie ruchu z oceną +0,0 i znanym wymuszonym losowaniem mimo że dostępny jest kolejny ruch z wyższą oceną.
Innym przykładem jest to, że jeśli potrzebujesz wygranej (tj. Remis jest tak samo zły jak przegrana), możesz chcieć zagrać ruch z lekką negatywną oceną, aby nie dać przeciwnikowi możliwości wymuszenia remisu. Chociaż zwiększa to twoją szansę na przegraną, zwiększa także twoją szansę na wygraną.
Oczywiście istnieją pozycje, w których trudno jest lub nie można mieć pewności, czy wymuszone losowanie jest dostępne, czy nie. Ale jeśli silnik ogłosi wymuszony ciąg, musi być możliwe wymuszenie ciągnienia. Fałszywe negatywy są dopuszczalne, ale nie powinno być żadnych fałszywych wyników pozytywnych.
Podsumowując, chciałbym wiedzieć o konkretnej pozycji, jeśli jeden (lub obaj gracze) ma do dyspozycji wymuszone losowanie. Obliczanie numerycznej oceny pozycji nie jest konieczne, ale jeśli zapewnia to również w tym samym czasie, jest to premia.
Odpowiedzi:
Krótka odpowiedź na twoje pytanie brzmi: nie , nie ma silnika szachowego, który mógłby niezawodnie pokazać, czy jedna strona ma wymuszony remis. Na przykład ta zablokowana pozycja przyciąga ludzkie oko:
Zauważ jednak, że ocena wynosi 0,17 , a nie 0,00 . Houdini daje również 0,05 - bardzo lekko dla bieli. To jest bardzo ważne. Sugeruje to, że ocena 0,00 jest zarezerwowana przez te programy z konkretnego powodu i rzeczywiście tak jest. Zasadniczo nawet w „równej” pozycji komputer nigdy nie powie, że wynik wynosi 0,00 , zamiast tego da niewielką przewagę jednej lub drugiej stronie.
Więc z tym tłem, przejdźmy do szczegółów! Po pierwsze, jeśli gra jest tylko remisem ze względu na pozycję (np. Impas, niewystarczający materiał itp.), Większość GUI wyświetli komunikat „Gra losowana” lub coś w tym rodzaju. To pozostawia bardziej skomplikowane przypadki, o których wspomniałeś w swoim pytaniu. Aby objąć większość z nich, przedstawię inną pozycję. To pochodzi z Morphy-NN 1-0, New Orleans Blindfold Simul:
Zauważ, że Morphy ma obecnie partnera w 6, zaczynając od
18.b4+!
. Jednak jeśli Morphy jakoś przegapił, że to był kolega, nadal miał wymuszone losowanie przez powtórzenie, co komputer szybko widzi. Zwiększając liczbę odmian wyświetlanych przez komputer, można zauważyć, że po tym, jak biały wykonuje ruch podobny do18.Qxc3+?
białego, nadal może wymusić ciągnienie, mimo że znajduje się na wieży i pionie. Ocena 0,00 ponownie sugeruje, że jest to specjalna pozycja, ponieważ komputer może obliczyć kontrolę wieczystą. Jeśli ruchy18.Qxc3+? Kxd5
zostaną wykonane na planszy, ocena wyniesie 0,00 , co oznacza, że najlepszą kontynuacją białych jest wymuszenie remisu. Niezastosowanie się do tego spowoduje utratę gry z najlepszą grą.Podsumowując, żaden istniejący silnik nie może powiedzieć z całą pewnością, że pozycja jest remisem. Jednak ocena 0,00 jest wyjątkowa, a jeśli pojawia się albo jako wynik główny, albo wynik dla wariantu, oznacza to, że remis jest prawdopodobnie wymuszony w tej konkretnej linii. Najłatwiejszym sposobem sprawdzenia jest żartobliwie nazywana „analizą spacji” - gdy użytkownik naciska spację w kółko, aby zmusić komputer do wykonania zalecanego ruchu. W końcu dojdziesz do pozycji, która jest oczywista zarówno dla człowieka, jak i dla maszyny.
I na koniec, aby odnieść się do twojego punktu dotyczącego „pogardy”
Jest to po prostu określane jako pogarda wśród programistów szachowych. Większość silników pozwala ustawić poziom pogardy w ustawieniach. Ustawienie dodatniej pogardy (100 jest zwykle rozsądnym poziomem do analizy) każe silnikowi dość mocno spróbować (wartość pionka), aby uniknąć remisu. Ustawienie ujemne spowoduje, że silnik zacznie wymuszać ciągnienie (tj. Niewystarczający materiał, impas lub ciągły).
źródło
Tak jak silniki mogą, w niektórych punktach, zobaczyć przymusowe wiązanie w pewnej liczbie ruchów, ponieważ istnieje siła wymuszająca wystarczającą liczbę linii, aby silnik mógł widzieć wszystko idealnie na pozostałej głębokości aż do wiązania, tak samo w grach szachowych występują skrzyżowania, które pozwoliłyby silnik, aby zobaczyć wymuszone losowanie z tego samego powodu, że mógł całkowicie zbadać ograniczone możliwości w grze.
Co więcej, łatwo byłoby ulepszyć funkcję oceny silnika, aby wyszukiwać i preferować ruchy prowadzące do takich wymuszonych ciągnień: tak jak osiąganie wiązania ma zwykle ogromną wartość, która przewyższa wszystkie inne czynniki liczbowe, które algorytm oceny silnika uważa, że aby poprowadzić grę silnika do ostatecznego celu, można zamiast tego nadać tak ogromną wartość liczbową osiągnięciu jednego z rodzajów losowań, które mam na myśli.
Na przykład automatycznie oceniaj dowolną pozycję, w której przeciwnik ma niewystarczającą ilość materiału do skojarzenia, jako +1000000. Wtedy, jeśli silnik kiedykolwiek znajdzie się z opcją zrzucenia tyle materiału przeciwnika, da ci znać. Również popraw algorytm oceny, aby oceniać trzykrotne powtórzenie jako +1000000 zamiast zwykłego 0. Następnie, jeśli występuje wymuszone powtórzenie (jak w scenariuszu ciągłej kontroli), silnik pokocha to i poinformuje o tym . Podobnie, daj +1000000, jeśli możesz siłą osiągnąć remis na podstawie tabeli.
Możesz również upewnić się, że silnik poda te wyceny tylko wtedy, gdy istnieje całkowita pewność, że losowania są naprawdę wymuszone (ponieważ drzewo między tu i tam było w pełni sprawdzone), tak jak w przypadku silnika, który nie ogłasza wiązania, chyba że jest pewny. W ten sposób nie otrzymasz żadnych fałszywych wyników pozytywnych, chociaż oczywiście będzie wiele fałszywych negatywów, na które rozsądnie / koniecznie zezwalasz w swoim pytaniu.
źródło