Zasada awansu ma bardzo duże znaczenie. Dzięki idealnej grze gra kończy się remisem zamiast wygranej dla białych / gote, jeśli upuścisz regułę promocji. W rzeczywistości ocena wszystkich czterech ruchów w pozycji początkowej zmienia się w ten sposób.
Użyłem dwóch niezależnych metod, aby uzyskać ten wynik, aby dokładnie sprawdzić, czy nie ma błędów w moich implementacjach:
- Korzystając z silnika z wyszukiwaniem alfa-beta, a mianowicie mojego widelca Sztokfisz dla wariantów wróżek (w tym wariantów shogi), przeprowadzałem głębokie wyszukiwania (~ 1 godz.) Przed i po wyłączeniu reguły promocji , zobacz wyniki poniżej.
- Ponieważ dobutsu shogi jest rozwiązaną grą , istnieją do tego generatory tabel. Użyłem jest generator tablebase open-source i modyfikować go do promocji niepełnosprawnymi (nie jestem zaznajomiony z tej bazy kodu, ale ponieważ wyniki obu metod są zgodne, moja zmiana wydaje się działać prawidłowo). Uruchomiłem generowanie bazy tabel z dwoma zestawami reguł i sprawdziłem wyniki, które można znaleźć poniżej.
1. Wyniki wyszukiwania
Wejście:
setoption name multipv value 4
setoption name hash value 4096
setoption name UCI_Variant value dobutsu
position startpos
go depth 90
wyjście z regułą promocji:
info depth 90 seldepth 87 multipv 1 score mate -43 nodes 2423491649 nps 889420 hashfull 338 tbhits 0 time 2724798 pv c1c2 a4a3 c2c1 b3b2 a1b2 c4b3 C@a1 C@a2 c1c2 a2a1+ b2a1 b3c2 b1c2 a3b3 c2b1 b4a3 E@b2 a3b4 b2c1 b3a3 a1b2 a3a4 b1c2 b4c4 b2c3 a4a3 c3b2 a3a2 C@a1 a2b2 c2b2 G@b3 b2b1 E@a3 G@c2 C@c3 c2b2 c4b4 b2a2 b4a4 a2a3 a4a3 a1a2 a3b4 b1a1 G@c2 a1b1 b4c4 E@a1 b3b4 a1b2 c4b3 a2a3 b4c4 b1a1 c2c1 b2c1 b3a3 G@a2 a3b3 a2b2 b3a4 b2a2 C@a3 c1b2 a3a2 a1a2 c3c2 C@b3 E@c3 b2c3 c4c3 b3b4+ a4b4 E@b2 c3b3 a2b1 b3b2 b1b2 E@a3 b2a1 E@b2 a1b1 G@a1 b1c2 C@c3
info depth 90 seldepth 87 multipv 2 score mate -43 nodes 2423491649 nps 889420 hashfull 338 tbhits 0 time 2724798 pv b1c2 b3b2 a1b2 c4b3 c2b1 a4a3 C@a1 C@a2 c1c2 a2a1+ b2a1 b3c2 b1c2 a3b3 c2b1 b4a3 E@b2 a3b4 b2c1 b3a3 a1b2 a3a4 b1c2 b4c4 b2c3 a4a3 c3b2 a3a2 C@a1 a2b2 c2b2 G@b3 b2b1 E@a3 G@c2 C@c3 c2b2 c4b4 b2a2 b4a4 a2a3 a4a3 a1a2 a3b4 b1a1 G@c2 a1b1 b4c4 E@a1 b3b4 a1b2 c4b3 a2a3 b4c4 b1a1 c2c1 b2c1 b3a3 G@a2 a3b3 a2b2 b3a4 b2a2 C@a3 c1b2 a3a2 a1a2 c3c2 C@b3 E@c3 b2c3 c4c3 b3b4+ a4b4 E@b2 c3b3 a2b1 b3b2 b1b2 E@a3 b2a1 E@b2 a1b1 G@a1 b1c2 C@c3
info depth 90 seldepth 87 multipv 3 score mate -43 nodes 2423491649 nps 889420 hashfull 338 tbhits 0 time 2724798 pv b1a2 a4a3 a2b1 b3b2 a1b2 c4b3 C@a1 C@a2 c1c2 a2a1+ b2a1 b3c2 b1c2 a3b3 c2b1 b4a3 E@b2 a3b4 b2c1 b3a3 a1b2 a3a4 b1c2 b4c4 b2c3 a4a3 c3b2 a3a2 C@a1 a2b2 c2b2 G@b3 b2b1 E@a3 G@c2 C@c3 c2b2 c4b4 b2a2 b4a4 a2a3 a4a3 a1a2 a3b4 b1a1 G@c2 a1b1 b4c4 E@a1 b3b4 a1b2 c4b3 a2a3 b4c4 b1a1 c2c1 b2c1 b3a3 G@a2 a3b3 a2b2 b3a4 b2a2 C@a3 c1b2 a3a2 a1a2 c3c2 C@b3 E@c3 b2c3 c4c3 b3b4+ a4b4 E@b2 c3b3 a2b1 b3b2 b1b2 E@a3 b2a1 E@b2 a1b1 G@a1 b1c2 C@c3
info depth 90 seldepth 85 multipv 4 score mate -42 nodes 2423491649 nps 889420 hashfull 338 tbhits 0 time 2724798 pv b2b3 c4b3 a1b2 a4a3 C@a1 C@a2 c1c2 a2a1+ b2a1 b3c2 b1c2 a3b3 c2b1 b4a3 E@b2 a3b4 b2c1 b3a3 a1b2 a3a4 b1c2 b4c4 b2c3 a4a3 c3b2 a3a2 C@a1 a2b2 c2b2 G@b3 b2b1 E@a3 G@c2 C@c3 c2b2 c4b4 b2a2 b4a4 a2a3 a4a3 a1a2 a3b4 b1a1 G@c2 a1b1 b4c4 E@a1 b3b4 a1b2 c4b3 a2a3 b4c4 b1a1 c2c1 b2c1 b3a3 G@a2 a3b3 a2b2 b3a4 b2a2 C@a3 c1b2 a3a2 a1a2 c3c2 C@b3 E@c3 b2c3 c4c3 b3b4+ a4b4 E@b2 c3b3 a2b1 b3b2 b1b2 E@a3 b2a1 E@b2 a1b1 G@a1 b1c2 C@c3
wyjście bez reguły promocji:
info depth 90 seldepth 52 multipv 1 score cp 0 nodes 2745548262 nps 965315 hashfull 244 tbhits 0 time 2844199 pv b1a2 a4a3 a2b1 b3b2 a1b2 c4b3 C@a1 b4a4 c1c2 b3c2 b1c2 G@b3 b2c3 C@c4 c3b2 a4b4 E@a2 c4c3 c2c1 b3b2 c1b2 E@b3 b2b1 b3a4 G@b2 b4c4 b1c1 a4b3 a2b3 a3b3 b2b3 c4b3 G@b2 b3c4 E@b3 c4b4 c1b1 G@a3 b3a2 b4c4 b1c1 E@a4 c1b1 a4b3 b2b3 a3b3 a2b3 c4b3 G@b2 b3b4 E@b3
info depth 90 seldepth 52 multipv 2 score cp 0 nodes 2745548262 nps 965315 hashfull 244 tbhits 0 time 2844199 pv b1c2 b3b2 a1b2 c4b3 c2b1 a4a3 C@a1 b4a4 c1c2 b3c2 b1c2 G@b3 b2c3 C@c4 c3b2 a4b4 E@a2 c4c3 c2c1 b3b2 c1b2 E@b3 b2b1 b3a4 G@b2 b4c4 b1c1 a4b3 a2b3 a3b3 b2b3 c4b3 G@b2 b3c4 E@b3 c4b4 c1b1 G@a3 b3a2 b4c4 b1c1 E@a4 c1b1 a4b3 b2b3 a3b3 a2b3 c4b3 G@b2 b3b4 E@b3
info depth 90 seldepth 50 multipv 3 score cp 0 nodes 2745548262 nps 965315 hashfull 244 tbhits 0 time 2844199 pv b2b3 c4b3 a1b2 a4a3 C@a1 b4a4 c1c2 b3c2 b1c2 G@b3 b2c3 C@c4 c3b2 a4b4 E@a2 c4c3 c2c1 b3b2 c1b2 E@b3 b2b1 b3a4 G@b2 b4c4 b1c1 a4b3 a2b3 a3b3 b2b3 c4b3 G@b2 b3c4 E@b3 c4b4 c1b1 G@a3 b3a2 b4c4 b1c1 E@a4 c1b1 a4b3 b2b3 a3b3 a2b3 c4b3 G@b2 b3b4 E@b3
info depth 90 seldepth 59 multipv 4 score cp 0 nodes 2745548262 nps 965315 hashfull 244 tbhits 0 time 2844199 pv c1c2 a4a3 c2c1 b3b2 a1b2 c4b3 C@a1 b4a4 c1c2 b3c2 b1c2 G@b3 b2c3 C@c4 c3b2 a4b4 E@a2 c4c3 c2c1 b3b2 c1b2 E@b3 b2b1 b3a4 G@b2 b4c4 b1c1 a4b3 a2b3 a3b3 b2b3 c4b3 G@b2 b3c4 E@b3 c4b4 c1b1 G@a3 b3a2 b4c4 b1c1 E@a4 c1b1 a4b3 b2b3 a3b3 a2b3 c4b3 G@b2 b3a4 E@b3 a4b4 b1c1 G@a3 b3a2 b4c4 c1b1 E@b3
Zobacz opis protokołu UCI, aby uzyskać szczegółowe informacje na temat znaczenia wejścia i wyjścia.
2. Wyniki na podstawie tabeli
Wejście:
show lines
wyjście z regułą promocji:
Gc4-c3 : #-78 (25.00%)
Lb4-c3 : #-78 (25.00%)
Lb4-a3 : #-78 (25.00%)
Cb3xb2 : #-76 (24.99%)
wyjście bez reguły promocji:
Cb3xb2 : 0 (25.00%)
Gc4-c3 : 0 (25.00%)
Lb4-c3 : 0 (25.00%)
Lb4-a3 : 0 (25.00%)
Proszę zanotować:
- Odległości wiązania różnią się z dwóch powodów:
- Sztokfisz liczy odległość wiązania w pełnych ruchach (chyba że włączysz protokół USI), podczas gdy generator bazy tabel liczy się w warstwach (pół ruchy).
- Wyszukiwanie niekoniecznie musi znaleźć najkrótszą drogę do wiązania, podczas gdy wynik w tabeli powinien być dokładny.
- Oba programy używają również różnych układów współrzędnych do opisywania kwadratów (kolejność stopni jest odwrócona), więc uważaj, aby ich nie pomieszać podczas porównywania łańcuchów ruchu.
Jestem teraz przekonany, że odpowiedź Fabiana Fichtera jest poprawna. Poniższy komentarz do odpowiedzi Fabiana może pomóc przekonać innych o tym samym.
1. Pozycja, na którą wydaje się mieć wpływ usunięcie promocji piskląt
Analizując opublikowane wyniki zmodyfikowanego Sztokfiszka, wszystkie gry dość szybko zbiegają się w następującej pozycji: S / -l- / ge - / - E - / - LG / cC.
Sente następnie gra
C*a4
, upuszczając pisklę w lewym dolnym rogu. Początkowo myślałem, że to dość marnotrawny spadek, ale według podstawy stołu wcale nie jest tak źle.Teraz dzieje się coś ciekawego. Podstawa stołu zgadza się ze Sztokfiszem, że przesunięcie Lwa na bok to remis, ale co z rzuceniem pisklęcia do walki z pisklakiem?
Teraz laska
a3
jest o krok od promocji, a ponadto dałaby czek na promocję, co zmusiłoby lwa Sente do wzięcia go. Jedyny problem polega na tym, że najlepszy ruch polega na utracie pisklęcia,a3
a także, że wciąż jesteśmy daleko od mat. W związku z tym zamierzamy zastosować skrót, abyśmy tracili szybciej, ale nie tracąc z innych powodów, takich jak niepotrzebne rozdawanie materiałów.Wydaje się, że udało nam się zachować groźbę ofiarnej promocji pisklęcia, więc kontynuujmy!
I oto jest ofiara promująca pisklę jako najlepszy ruch! Zobaczmy co się stanie.
Zobaczmy teraz, co się stanie, jeśli zmienimy koguta na pisklę:
W tej pozycji najlepszy ruch stawia szatana 88 (90-2) odsuwa się, co jest bardziej oddalone od matowego niż pozycja początkowa, co sprawia, że prawdopodobne jest, że po analizie doprowadzi do innej pozycji, która bez promowania siły pisklęcia nagle znacznie dalej od kolega niż wcześniej (ad infinitum). Jeśli to prawda , pozycja G / --- / le- / cG- / CLG / e (patrz poniżej) to remis zamiast wygranej bez promocji piskląt .
2. Prawidłowość wyczerpujących poszukiwań
Zakładając, że użyty generator tabeli bazowej jest poprawnym, wyczerpującym wyszukiwaniem, wydaje się, że łatka Fabiana powinna skutecznie wyłączyć promocje piskląt, ponieważ plik
moves.c
jest jedynym miejscem, którePOS_FLAGS
jest używane (z wyjątkiem użyciavalidation.c
do sprawdzania struktur pozycji) i rzeczywiście wydaje się być specjalnie zaprojektowane wyłączyć promocje.źródło