Aunque hay muchas optimizaciones basadas en la heurística (me refiero a las formas de aumentar la profundidad del árbol sin buscarlas realmente) discutidas en la literatura de programación de ajedrez, creo que la mayoría de ellas rara vez se usan. La razón es que son buenos impulsores de rendimiento en teoría, pero no en la práctica.
A veces estas heurísticas pueden devolver un movimiento malo (es decir, no el mejor) también.
Las personas con las que he hablado siempre recomiendan optimizar la búsqueda alfa-beta e implementar la profundización iterativa en el código en lugar de intentar agregar las otras heurísticas. El motivo principal es que las computadoras están aumentando en potencia de procesamiento, y la investigación [necesito citas, supongo] ha demostrado que los programas que usan su tiempo total de CPU para forzar brutales el árbol alfa-beta a la profundidad máxima siempre han superado los programas que dividen su tiempo entre ciertos niveles de alfa-beta y luego algunos heurísticos.
Aunque usar algunas heurísticas para extender la profundidad del árbol puede causar más daño que bien, hay muchos impulsores de rendimiento que puede agregar al algoritmo de búsqueda alfa-beta.
Estoy seguro de que sabe que para que alfa-beta funcione exactamente como está previsto, debe tener un mecanismo de clasificación de movimientos (profundización iterativa). La profundización iterativa puede proporcionarle un 10% de aumento de rendimiento.
Agregando Variante principal searc h La técnica de alpha beta puede darle un 10% de impulso adicional.
Pruebe el algoritmo de MTD (f) también. También puede aumentar el rendimiento de su motor.