Как не использовать шахматный движок? Какие плохие практики при использовании шахматного движка и хорошие? Насколько достоверны их предложения и оценки?
источник
Как не использовать шахматный движок? Какие плохие практики при использовании шахматного движка и хорошие? Насколько достоверны их предложения и оценки?
Какова цель этого вопроса и ответа?
Я вижу много злоупотреблений движками в этом сообществе. Я вижу темы, в которых люди открывают «анализ» путем копирования результатов работы двигателя. Еще хуже, я видел открытие "анализа" путем вставки копии в первый ход!
Многие новички в этом сообществе считают, что двигатели дают наилучший ход в каждой позиции, потому что они бьют игроков.
Вскоре я попытался объяснить, почему это не так, по нескольким темам, но я вижу, что коротких объяснений недостаточно, люди не хотят верить незнакомцу, который говорит, что использование двигателя таким образом, неправильно, не объясняя каждую деталь. Поэтому я, будучи студентом по информатике и хобби (раньше играл в OTB, но бросил его), написал этот очень длинный, утомительный ответ в надежде изменить неверные убеждения.
Примечания: это очень длинный ответ. У меня, вероятно, много грамматических ошибок и опечаток. Также может быть возможно объяснить это более бегло или кратко. Итак, если вы считаете, что можете улучшить этот ответ, пожалуйста, предложите изменения, я был бы очень признателен.
Как работает двигатель? Что это за цифры в окне анализа?
Двигатели оценивают все позиции, используя разные метрики (что очень тесно связано с силой игры двигателей)
Например: двигатели имеют предопределенные значения для материалов, например, 1 балл за пешку, 3 балла за слона и т. Д.
Но это еще не все, они также используют более сложные метрики. Например: пройденная пешка 0,2 балла, пара слонов 0,1 балла и т. Д.
Таким образом, он оценивает все позиции, как это, и вставляет в дерево (если вы хотите узнать больше о дереве, пожалуйста, посмотрите на эту статью ).
Но, поскольку память не бесконечна, если компьютер исчерпывает память, двигатель останавливается правильно? Таким образом, двигатель должен использовать память осторожно. Как? Он удаляет некоторые узлы (позиции) из дерева, которые не являются многообещающими (имеют плохую (может быть нелегко определить, что плохо) оценку).
Самый длинный путь в дереве - это глубина анализа. Поскольку каждый узел представляет позицию, глубина 2 равна 1 ходу.
Каковы сильные и слабые стороны двигателей по сравнению с людьми?
Двигатели абсолютно лучше в тактике по сравнению с людьми. Потому что тактика
Люди абсолютно лучше в стратегии и позиционных оценках. Потому что:
в конце концов, движки используют метрики для оценки, которые абсолютно открыты для вопроса, например, нет правильной метрики для пары слонов или пешки.
мастер шахматистов гораздо лучше оценивает метрики (машины глупы)
люди гораздо сильнее подрезают, наше дерево поиска намного меньше (мы можем устранить множество ненужных позиций, в этом компьютеры не справляются)
Позвольте мне продемонстрировать это в этой позиции, которую 1200 игроков Эло может оценить ничью (по праву) за 3 секунды.
Двигатель говорит, что это -17,61, увидев 24 движения вперед. Почему? Это так глупо? Разве он не может понять, что черный не может прогрессировать?
Да! Это так глупо! И вам нужно понять, что это ничья, а не двигатель, это инструмент для вас!
-17.61 является результатом оценки показателей. Является ли оценка неправильной? Нет, оценка правильная, если вы правильно ее интерпретируете . Движок суммирует метрики, которые дают -17,61, потому что у черного есть много материальных преимуществ. Интересно, что в этой позиции не хватает большого материального преимущества, и это та часть, которой вы должны помочь двигателю своим интеллектом.
Оценочные баллы не являются оценками позиции !!!
Есть только две вещи, которые можно рассматривать как оценку в выходе двигателя:
За исключением этих двух, все результаты оценки оценки основаны на мнении. Как и в позиции выше -17, оценка может быть оценена как ничья, это очень маловероятно, но возможно.
Итак, двигатели действительно далеки от совершенства, поэтому у нас есть настольные базы . Табличные базы являются источниками абсолютной правды данной позиции. Табличная база дает вывод, который сообщает, что позиция либо мат (в ходах х), либо ничья. Современные настольные базы охватывают все позиции, имеющие не более семи штук .
Как интерпретировать оценочные баллы?
Как я упоминал ранее, движки делают все возможное, чтобы использовать ограниченную память и вычислительную мощность. Поскольку они ограничены, движки говорят пользователям, насколько глубоко они зашли.
Представьте, что вы командир (двигатель) армии, и вы находитесь на открытой местности. В вашей армии 10 тысяч солдат. У вас есть 10 км (глубина поиска) прямой видимости, и вы видите вражеские силы на 9 км впереди, вы предполагаете (оцениваете) их количество как приблизительно 100 солдат, и вы решаете атаковать. Вы и ваша армия начинаете бежать к врагу. Но, приблизившись на 3 км к вражеским силам (получив на 3 км больше прямой видимости), вы внезапно видите на 100 000 больше противника и вдруг решаете, что эта битва проиграна.
Это была аналогия проблемы эффекта горизонта . Есть моменты, когда движение ключа происходит за горизонтом двигателя, и двигатель неверно оценивает положение. Эта проблема встречается гораздо чаще в эндшпиле, потому что в эндшпиле, по сравнению с мидл-игрой и открытием, позиции развиваются медленно, для достижения одинакового прогресса требуется больше ходов. Помните длинные маневры в эндшпилях. Вот почему двигатели используют таблицы (предварительно рассчитанные, как, например, оценки смерти позиций, на борту которых менее 8 штук), для борьбы с эффектом горизонта.
Давайте вернемся к позиции выше и выясним, почему мы можем так легко оценить это как ничью, но компьютер не дает 0,00?
Двигатель рассчитал 24 хода глубоко, приятно. Но мы рассчитываем все возможные продолжения, до конца! Мы не быстрее компьютеров, но мы быстрее их. Потому что мы понимаем, что после проверки нескольких ходов все продолжения тривиальны, и сокращаем их все. Мы рассчитываем только несколько позиций и оцениваем их как ничью. Но двигатель рассчитывает тонны, потому что он не достаточно умен, чтобы понять его тривиальным для расчета всех этих позиций.
Теперь, как не использовать шахматные движки?
Но использовать как:
Не забывайте, что анализ и сопоставление - это разные задачи. Люди не могут побеждать двигатели на спичках, это не значит, что в анализе то же самое. На самом деле это очень разные задачи, потому что анализ направлен на то, чтобы найти лучший ход с бесконечными ресурсами, но матч нацелен на победу с конечными ресурсами, а для победы достаточно играть лучше, чем противник. Все конкурентоспособные двигатели настроены на матчи, чтобы добиться максимально возможного успеха в турнирах.
Читайте также
Хорошая статья о шахматных движках, актуальная для этой темы.
Очень поучительная статья о интерпретации оценки движка.
Смежная тема: почему шахматные движки иногда пропускают хорошие ходы (или берут навсегда)?
Еще одна связанная тема: Компьютерные оценки: насколько они заслуживают доверия?
Примеры отказов двигателя для неудовлетворенных читателей
Больше примеров позиций, которые современные двигатели не могут найти правильный ход, который был найден людьми