Explicación
Perft recorre el árbol de jugadas legales desde una posición y cuenta cada secuencia que llega a una profundidad exacta. Profundidad uno significa contar las jugadas legales actuales. Profundidad dos incluye cada respuesta legal del rival, y así sucesivamente. Cada secuencia cuenta por separado, aunque dos secuencias diferentes terminen en el mismo estado del tablero. El resultado es un número reproducible para esa posición y esa profundidad.
Su uso principal es comprobar el generador de jugadas de un programa. Si el total no coincide con un resultado de referencia, hay un error en alguna regla o en la forma de actualizar la posición. La variante llamada divide muestra un subtotal para cada jugada inicial, lo que ayuda a localizar la rama donde aparece la diferencia.
Perft es especialmente útil para descubrir fallos sutiles relacionados con jaques, capturas al paso, una captura especial de peón, promociones y , el movimiento especial conjunto de rey y torre. También puede revelar que el programa restaura mal el turno, los derechos de enroque o la casilla disponible para una captura al paso después de deshacer una jugada.
No hay evaluación de posiciones, selección de la mejor jugada ni poda de ramas. Por eso, superar perft demuestra coherencia con los conteos probados, pero no demuestra que un juegue bien. Aunque el nombre procede de performance test, el conteo correcto es el objetivo central; medir velocidad es una prueba adicional y depende de la implementación.
Confusiones frecuentes
Perft y fuerza de juego
Perft valida reglas y generación de jugadas. No mide comprensión posicional, calidad de evaluación ni capacidad táctica.
Perft y hashing
Una implementación puede usar para reconocer posiciones, pero la clave correcta no reemplaza el conteo legal.
Ver términoFuentes
- 1.Perft, Chess Programming Wiki
