Глюк программы Problemist и других программ

То, что шахматные программы ошибаются автор этой статьи столкнулся ещё в 2006, когда делал эту задачу -

Я тогда, использовал для проверки одну из ранних версий Chessmastera. И эта программа, не найдя решения в 8 ходов, пошла искать мат в 9 ходов. Но это даже не ошибка программы. Просто полным перебором "длинные" задачи с многими фигурами и открытой позицией не решить. И программы просчитывая на какую-то глубину все варианты, выбирают для дальнейшего анализа наиболее перспективные и здесь ход 1. d5 был отброшен. Последние версии Chessmastera справляются с этой задачей. Но наверняка можно "обмануть" и  Chessmaster и Gustav и Winchloe сделав многоходовку с многими фигурами, даже с лишними, с тихими или с жертвами первыми ходами без явных угроз и ухудшающих позицию белых, по "мнению" компьютерных программ.

 

А для проверки "коротких" задач уже много лет использую демонстрационную версию программы Problemist -

Никогда она не подводила, доверял ей полностью, т.к. в ней видимо реализован алгоритм полного перебора вариантов.

Но 13 мая 2012 г эта программа меня шокировала. Делал #5 для тематического конкурса с предварительной игрой, лишающей чёрных права на рокировку. До этого сделал #9 с обычной идеей лишения рокировки, а в #5 решил применить необычный способ - замена чёрной ладьи на другую ладью.

В общем сделал эту #5, решил проверить на Problemiste, ожидая кучу побочек, но программа выдала - No solution!

Перепроверил ещё раз, запускаю - No solution!!

Не зная что делать, убрал первый ход, запускаю #4, выдаёт - No solution!!!

Убрал ещё один ход и заодно выбросил всё что можно, запускаю эту задачу -

Результат тот же! Если Вы тоже пользуетесь Problemist Demo, то поставьте эту позицию и Вы испытаете примерно те же эмоции!

Потом стало понятно, что это неправильно запрограммирована проверка на рокировку.

Выдержка из официальных правил шахмат ФИДЕ.  Статья 3: ХОДЫ ФИГУР...Рокировка становится невозможной с ладьей, если она уже ходила.

В программе, видимо, проверяется вначале - есть ли ладья на 'a8' - ответ  - ЕСТЬ.

Затем проверяется был ли раньше ход ладьёй с этого поля - ответ - НЕ БЫЛО.

Значит рокировка, при выполнении остальных проверок по королю, битым полям и т.д. возможна.

А то что на поле 'a8' может оказаться другая ладья  - не проверяется.

Странно, для программы имеющей кучу версий с 1993 г. Наверняка в последних версиях этот глюк устранили.

Другие, известные мне программы, решают эту #3 нормально.

Сообщение от Алексея Оганесяна

Я читал на вашем сайте статью про глюк программы Problemist (http://popovgl.narod.ru/Stat/Stat40.html) и как раз вспомнил о том, что и я при составлении задачи на ТТ-36 тоже столкнулся с глюком программы, причем не одной, а сразу двух, и притом неслабых – Гудини 2.0b и Фритц 13. Обе они не смогли решить мою задачу -


Я прождал ради интереса 4 часа, но ни та ни другая программа решения не нашли. И всё это из-за главного варианта:

1.Кра6! hg 2.Лe1+ Крf8 3.Лf1+! Крe8 4.Лb1 и 5.Лb8#

Я думаю, причина в следующем. Первые два хода обеих сторон программа рассматривает как вполне заслуживающие внимания. Но вот ход 3.Лf1+ программа уже вряд ли оценивает как серьезный (по крайней мере, как я уже упомянул, в первые 4 часа анализа, а что там дальше будет - уж не знаю), ибо для нее очевидно, что после 3…Крe8 случится повторение позиции, а для программы повторение позиции – это видимо ничья «в первом приближении». Естественно, что и знаменитую задачу Ненада Петровича ни Гудини, ни Фритц тоже не решили – если уж эти программы не смогли продраться сквозь однократное повторение позиции в моей задаче, то где им совладать с трехкратным повторением позиции в задаче Петровича?! Наверное, всё дело в том, что в программу не заложена функция проверки того, а не поменялось ли внутреннее содержание позиции при внешнем повторе этой позиции (в данном случае поменялось - черные потеряли право на рокировку)

Вполне естественно, что если в программу принудительно ввести ходы 1.Кра6! hg 2.Лe1+, то она тут же покажет верное решение. Причина, думаю, в том, что программа после каждого вводимого человеком хода начинает анализ позиции как бы с чистого листа и потому она «не помнит» те позиции, что были до этого, а значит ходы 2…Крf8 3.Лf1+ Крe8 она не сочтет за повторение позиции, ибо она такую позицию раньше «не видела».

**********************************

Ещё немного интересного, связанное с рокировками.

В правила шахмат ФИДЕ вносились изменения, благодаря стараниям шахматных композиторов.

Наиболее известна эта задача, с троекратным повторением позиции, но с разными правами на рокировку -

 

Менее известна эта задача -

 

Присылайте для этой статьи известные Вам случаи с ошибками шахматных программ.

15 мая, 6 июня 2012 г.   Григорий Попов    Popovgl@pochta.ru