Perft

Також відомий як: Тест продуктивності

Тест, що підраховує всі послідовності легальних ходів до точної глибини пошуку.

Пояснення

Perft обходить дерево легальних ходів із заданої позиції та підраховує кожну послідовність, що досягає точної глибини. Глибина один означає підрахунок доступних зараз легальних ходів. Глибина два охоплює кожну легальну відповідь суперника, і далі діє той самий принцип. Кожна послідовність рахується окремо, навіть якщо дві різні послідовності приводять до однакового стану дошки. Результат є відтворюваним числом для цієї позиції та глибини.

Основне призначення тесту полягає в перевірці генератора ходів програми. Якщо загальна кількість не збігається з надійним еталоном, помилка є в якомусь правилі або в оновленні позиції. Варіант під назвою divide показує окремий проміжний підсумок для кожного початкового ходу, допомагаючи розробнику знайти гілку, де виникає розбіжність.

Perft особливо добре виявляє непомітні помилки, пов’язані із шахами, взяттям на проході, особливим взяттям пішаком, перетвореннями та , особливим спільним ходом короля і тури. Він також може показати, що після скасування ходу програма неправильно відновлює чергу ходу, права на рокіровку або поле для взяття на проході.

Perft не виконує оцінювання позиції, вибору найкращого ходу чи відсікання гілок. Успішне проходження тесту підтверджує відповідність перевіреним підрахункам легальних ходів, але не доводить, що грає сильно. Хоча назва походить від performance test, правильний підрахунок є головною метою, а вимірювання швидкості є додатковим тестом, що залежить від реалізації.

Поширені непорозуміння

Perft і сила гри

Perft перевіряє правила та генерацію ходів. Він не вимірює розуміння позиції, якість оцінювання чи тактичну силу.

Perft і хешування

Реалізація може використовувати для розпізнавання позицій, але правильний ключ не замінює підрахунку легальних ходів.

Переглянути термін

Джерела

  1. 1.Perft, Chess Programming Wiki

Пов'язані терміни

© 2026 MindZug