Автор Маша задал вопрос в разделе Естественные науки
анализ шахмат в глубину как-то сказывается на количестве возможных исходов партии? и получил лучший ответ
Ответ от Андванс Чесс[гуру]
Программы, которые перебирают варианты с наибольшей скоростью, являются слабейшими, в то время как сильные программы перебирают относительно мало позиций (в тысячи раз меньше, чем быстродействующие) . Суть в том, что сила игры не в скорости перебора, а в функции экспертного отсева вариантов для дальнейшего расчёта, которая является довольно "тяжёлой", и чем больше факторов учитывается, тем программа медленнее работает при равном уровне оптимизации.Разумеется, есть ещё такие программы, которые медленно перебирают варианты и играют слабо и это означает, что алгоритм не оптимизирован.По факту, в отсутствие особых инструкций по разыгрыванию определённой позиции, при одной глубине расчёта и отсутствии "рандомайзера" (функции случайности) , всякая программа, работающая на одноядерном процессоре, всегда даёт один и тот же результат - хоть умная, хоть глупая. В смысле, одна программа даёт один ответ всегда, а другая может дать другой ответ, но тоже всегда один и тот же.
Когда-то писал непроигрывющие крестики-нолики три на три, очень быстро столкнулся с проблемой, что программа всегда играла одинаково (хоть и не проигрывала) . Проблема решилась элементарно - рандомизацией порядка перебора вариантов при инициализации проги.
В реальном мире шахматных программ все намного сложнее, но наверняка случайность выбора хода (если ходы равноценны) там тоже присутсвует. По крайней мере, в программах, которые играют с массовыми пользователями, а не в программах, которые пишутся один раз к чемпионату. Иначе потеряется практическая ценность программы.
И хорошие шахматные проги славны не только тем, что грамотно выбирают, какие ходы просчитвать поглубже. Там огромные библиотеки стандартных этюдных комбинаций встроены, отдельные алгоритмы по игре в эндшпиле и тп. Не всё так просто, компьютерные шахматы - целая наука, а не тривиальная рекурсия с в меру умной глубиной просчета.
Они анализируют все возможные ходы. Но сильная программа будет ходить так чтобы ожидание выигрыша увеличивалось. Поэтому алгоритм основывается не на обходе всех вариантов ходов в глубину, а на присвоении каждому ходу "полезности", от качества определения полезности хода и зависит сила программы.
Исходов в шахматах всего три: выигрыш, ничья или проигрыш. И умная, и глупая программа анализируют ВСЕ возможные ходы. Но умная программа анализирует на большую глубину.
И умная, и глупая программы знают одинаковое количество ходов - это все те ходы, которые разрешены правилами шахмат в данной позиции.
Количество победных вариантов, если они есть, не большое, и не маленькое - их столько, сколько объективно возможно исходя из положения на доске. Вопрос только в том, найдет ли его программа или нет.
Ваш вопрос, если я правильно его понял, в конечном итоге, можно свести к следующему: возможен ли форсированный выигрыш в произвольной позиции (включая начальную!) . Но на него ответа нет никакого. Если бы был положительный ответ, шахмат бы уже не было.