Теперь я убежден, что ответ Фабиана Фихтера верен. Следующий комментарий к ответу Фабиана может помочь убедить других в том же.
1. Положение, на которое, похоже, повлияло удаление рекламной кампании цыплят
Анализируя опубликованные результаты модифицированного Stockfish, все игры довольно быстро сходятся в следующей позиции: S / -l- / ge - / - E - / - LG / cC.
$ ./dobutsu -vs900
Loading tablebase... done
1. setup S/-l-/ge-/-E-/-LG/cC
1. show board
ABC
+---+
1| l | c
2|ge |
3| E |
4| LG| *C
+---+
1. show lines
Eb3xa2 : #-72 (67.13%)
C *a4 : #-70 (32.87%) <--- apparently quite strong
Gc4-c3 : #-46 ( 0.00%)
C *c2 : #-36 ( 0.00%)
C *c1 : #-28 ( 0.00%)
Eb3-a4 : #-26 ( 0.00%)
Lb4-a4 : #-26 ( 0.00%)
C *a1 : #-24 ( 0.00%)
C *c3 : #-22 ( 0.00%)
C *a3 : #-20 ( 0.00%)
Eb3-c2 : #-12 ( 0.00%)
Lb4-c3 : #-2 ( 0.00%)
Lb4-a3 : #-2 ( 0.00%)
Сенте тогда играет C*a4
, опуская свою цыпочку в левый нижний угол. Сначала я думал, что это довольно расточительное падение, но в соответствии с таблицей, на самом деле это совсем не плохо.
1. C *a4
ABC
+---+
1| l | *c
2|ge |
3| E |
4|CLG|
+---+
Сейчас происходит что-то интересное. Основание стола соглашается с Stockfish, что отвод Льва в сторону - ничья, но как насчет того, чтобы бросить цыпочку, чтобы сразиться с ней?
2. show lines
C *a3 : #69 (99.57%) <--- winning chick drop
C *c2 : #91 ( 0.21%)
C *c1 : #91 ( 0.21%)
C *a1 : 0 ( 0.00%)
Ga2-a1 : 0 ( 0.00%)
Eb2-c1 : 0 ( 0.00%)
Eb2-a1 : 0 ( 0.00%)
Lb1-a1 : 0 ( 0.00%) <--- draws the game
C *c3 : #-28 ( 0.00%)
Lb1-c1 : #-22 ( 0.00%)
Eb2-c3 : #-20 ( 0.00%)
Eb2-a3 : #-20 ( 0.00%)
Ga2-a3 : #-18 ( 0.00%)
Lb1-c2 : #-2 ( 0.00%)
2. C *a3
ABC
+---+
1| l |
2|ge |
3|cE |
4|CLG| *
+---+
Теперь цыплёнок a3
находится в одном шаге от продвижения по службе и, более того, будет проверять продвижение, что заставит льва Сенте принять его. Единственная проблема заключается в том, что лучший ход - это потеря птенца, a3
а также то, что мы все еще довольно далеко от мата. Поэтому мы собираемся взять небольшой путь, чтобы мы быстрее проигрывали, но не теряли по другим причинам, таким как ненужная раздача материала.
3. show lines
Ca4xa3 : #-68 (92.84%) <--- catches chick about to promote
Gc4-c3 : #-62 ( 7.16%)
Eb3xa2 : #-32 ( 0.00%) <--- shortcut
Eb3-c2 : #-8 ( 0.00%) <--- give away elephant
Lb4-c3 : #-2 ( 0.00%) <--- stupid
Lb4xa3 : #-2 ( 0.00%) <--- stupid
3. Eb3xa2
ABC
+---+
1| l | *
2|Ee |
3|c |
4|CLG| G
+---+
4. show lines
Lb1xa2 : #31 (100.00%)
Lb1-c2 : #-10 ( 0.00%)
Lb1-c1 : #-6 ( 0.00%)
Lb1-a1 : #-6 ( 0.00%)
Ca3xa4+: #-2 ( 0.00%)
Eb2-c3 : #-2 ( 0.00%)
Eb2-c1 : #-2 ( 0.00%)
Eb2-a1 : #-2 ( 0.00%)
4. Lb1xa2
ABC
+---+
1| | e
2|le |
3|c |
4|CLG| *G
+---+
Похоже, нам удалось сохранить угрозу жертвенного продвижения цыплят, так что давайте продолжим!
5. show lines
G *b3 : #-30 (100.00%)
G *a1 : #-24 ( 0.00%)
G *c3 : #-20 ( 0.00%)
Gc4-c3 : #-18 ( 0.00%)
G *c2 : #-14 ( 0.00%)
G *c1 : #-10 ( 0.00%)
G *b1 : #-10 ( 0.00%)
Ca4xa3 : #-8 ( 0.00%)
Lb4-c3 : #-2 ( 0.00%)
Lb4-b3 : #-2 ( 0.00%)
Lb4xa3 : #-2 ( 0.00%)
5. G *b3
ABC
+---+
1| | *e
2|le |
3|cG |
4|CLG|
+---+
6. show lines
Ca3xa4+: #29 (100.00%) <--- sacrificial promoting chick check
E *c3 : #-30 ( 0.00%)
E *c1 : #-28 ( 0.00%)
Eb2-c1 : #-28 ( 0.00%)
Eb2-a1 : #-28 ( 0.00%)
La2-b1 : #-28 ( 0.00%)
La2-a1 : #-28 ( 0.00%)
E *c2 : #-26 ( 0.00%)
E *a1 : #-24 ( 0.00%)
E *b1 : #-12 ( 0.00%)
Eb2-c3 : #-12 ( 0.00%)
La2xb3 : #-2 ( 0.00%)
И вот он, жертвенная пропаганда цыпленка как лучший ход! Давай посмотрим что происходит.
6. Ca3xa4+:
ABC
+---+
1| | ce
2|le |
3| G |
4|rLG| *
+---+
7. show lines
Lb4xa4 : #-28 (100.00%) <--- take chick (forced if promoted)
Gc4-c3 : #-2 ( 0.00%)
Gb3-c3 : #-2 ( 0.00%)
Gb3-a3 : #-2 ( 0.00%)
Gb3xb2 : #-2 ( 0.00%)
Lb4-c3 : #-2 ( 0.00%)
Lb4-a3 : #-2 ( 0.00%)
Теперь давайте посмотрим, что произойдет, если мы сменим этого петуха на цыпленка:
7. setup S/---/le-/-G-/cLG/ec
1. show board
ABC
+---+
1| | ce
2|le |
3| G |
4|cLG| *
+---+
1. show lines
Gc4-c3 : #-90 (100.00%)
Gb3xb2 : #-30 ( 0.00%)
Lb4xa4 : #-28 ( 0.00%)
Gb3-c3 : #-10 ( 0.00%)
Gb3-a3 : #-8 ( 0.00%)
Lb4-c3 : #-2 ( 0.00%)
Lb4-a3 : #-2 ( 0.00%)
В этой позиции лучший ход ставит мат 88 (90-2), удаляясь, который находится дальше от мата, чем исходная позиция, что делает вероятным, что при анализе это приведет к другой позиции, которая без повышения силы цыплята внезапно окажется намного дальше от приятель, чем раньше (до бесконечности). Если это правда, это сделало бы позицию G / --- / le- / cG- / CLG / e (см. Ниже) ничьей вместо выигрыша без продвижения цыплят .
ABC
+---+
1| | *e
2|le |
3|cG |
4|CLG|
+---+
2. Правильность исчерпывающего поиска
Предполагая, что использованный генератор базовых таблиц является правильным исчерпывающим поиском, кажется, что патч Фабиана должен преуспеть в отключении продвижения цыплят, поскольку файл moves.c
- это единственное место, POS_FLAGS
которое используется (за исключением использования в validation.c
для проверки структур позиции) и действительно кажется специально построенным отключить рекламные акции.
/* clear promotion bits for pieces that can't be promoted */
status &= POS_FLAGS;