Czy jest jakiś silnik szachowy, który może pokazać, że jedna strona ma wymuszony remis?

11

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.

Mark Byers
źródło
Czy nie znasz tej części 6-częściowych stołów do gry końcowej?
Tony Ennis,
2
Podstawy stołu pomagają, ponieważ wtedy wiesz, że wynik 0,0 jest dla niektórych wymuszonym losowaniem przy optymalnej grze. Ale chciałbym, aby silnik powiedział mi, czy znajdzie wymuszony ciąg z dowolnej dowolnej pozycji początkowej, w tym (szczególnie), gdy jest więcej niż 6 elementów. Na przykład, jeśli biały znajdzie się w pozycji, w której może wymusić ciągłą kontrolę, chciałbym, aby silnik mi to powiedział, nawet jeśli niekoniecznie jest to najlepszy ruch bieli według funkcji oceny.
Mark Byers
Jestem ciekawy, kiedy faktycznie można skorzystać z tego rodzaju obliczeń w praktyce. To byłaby fajna funkcja. W sztokfiszach korzystam z funkcji analizy wielokrotnej UCI, która sortuje ruchy według ich oceny. Wymuszone losowanie pojawia się na liście dość wyraźnie, gdy są wieczystymi czekami lub patami, ale czasami jest mniej jasne, a jak mówisz, jeśli zagłębisz się głębiej, może nie być to remis.
Eve Freeman
1
Ale jak wymuszony jest wymuszony? Myślę, że w wielu przypadkach tak zwanych remisów wymuszonych przeciwnik wciąż może zboczyć, ale kosztem wyraźnie gorszej pozycji. Pozycja, w której białe mogą wymusić remis lub pełne zebranie, nie byłaby wymuszonym losowaniem, ograniczając użyteczność.
RemcoGerlich
Jeśli biały może wymusić remis zamiast ruszać w górę, to chciałbym o tym wiedzieć.
Mark Byers

Odpowiedzi:

9

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:

Zablokowana pozycja, beznadziejny remis

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:

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 do 18.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 ruchy 18.Qxc3+? Kxd5zostaną 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”

Innym przykładem jest to, że jeśli potrzebujesz wygranej (tzn. 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ą.

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).

Andrew
źródło
Jest to w przybliżeniu ten sam pomysł, co w komentarzu Wesa Freemana do pytania, i tak jak to, co opisuje, wymaga pewnego wkładu człowieka - „Wymuszone losowanie pojawia się na liście dość wyraźnie [czasami], ale czasami jest mniej jasne” - twoja odpowiedź ma wkład człowieka w „analizę spacji”. Dlatego proponuję ulepszyć funkcję oceny w mojej odpowiedzi; robimy to, aby sam silnik szukał wymuszonych ciągnięć i informował nas, kiedy są one ostatecznie obecne. To wydaje się być jedyną istotną różnicą między podejściami.
ETD,
@EdDean Zgadzam się. Najtrudniejsze remisy to takie, w których nie można wygrać gry końcowej, ale jedna strona może naciskać na zwycięstwo na zawsze. Osobno zmiana funkcji ewaluacji silników byłaby jednym podejściem, ale najprawdopodobniej nie jest to coś, co można by zrobić w rozsądnych ramach czasowych. Obecnie można bawić się z pogardliwymi ustawieniami, ale to nie robi tego samego, co przeprogramowywanie silnika, jak sugerujesz. Ustawienia edytowalne przez człowieka są dość ograniczone w obecnych silnikach.
Andrew
To pogarda jest fajna - nie zauważyłem tego.
Eve Freeman,
2
Nawiasem mówiąc, nie sądzę, aby 0,00 zawsze wskazuje na wymuszony remis, co wydawało się sugerować. Widzę to czasami nawet na wczesnych etapach - przypuszczam, że oznacza to po prostu, że biorąc pod uwagę obecną pozycję i materiał, jest prawdopodobne, że nawet, a ocena wynosi 0,00.
Eve Freeman,
3
Ciekawy. W sztokfiszach zdecydowanie tak nie jest. Już sama analiza pozycji otwarcia przez kilka sekund zwróci mnóstwo 0,00 punktów.
Eve Freeman,
4

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.

ETD
źródło
Nie sądzę, że jakikolwiek silnik będzie działał w ten sposób „po wyjęciu z pudełka” ze względu na czynniki pogardy i sposób przycinania. Zasadniczo, jeśli remis zostanie znaleziony, każda linia, która wygrała materiał, zostanie wykluczona. Dlatego na przykład sprawdzanie króla byłoby lepsze niż zdobycie wolnej wieży. Zastanawiam zamieszczając dłuższą odpowiedź, ponieważ nie sposoby wykorzystujące silniki prądu to zrobić, ale nie chcę zdradzać zbyt wiele sekretów przygotowania. ;)
Andrew
Żaden silnik nie będzie działał w sposób opisany przeze mnie „po wyjęciu z pudełka”, to prawda, ponieważ mają one na celu wygrywanie; z tego samego powodu trzeba by trochę poprawić, aby normalny silnik grał, powiedzmy, samobójcze szachy. Mam już do czynienia z modyfikacją funkcji oceny; każdy czynnik pogardy może zostać poprawiony / wyłączony wraz z tym, co zasugerowałem w razie potrzeby, tak? Chodzi mi przede wszystkim o to, że myślę, że istniejące silniki można zmienić (w dość prosty sposób), aby działały tak, jak chce Mark. Przynajmniej w tej chwili nadal postrzegam to jako sposób na „wykorzystanie obecnych silników”. Jednak zawsze mogę zmienić zdanie. :)
ETD,