KnightCap es un motor de ajedrez informático de código abierto . Su autor principal es Andrew Tridgell y fue creado alrededor de 1996. Jon Baxter también ha hecho contribuciones importantes y probablemente contribuciones menores por algunos otros. KnightCap es un software gratuito publicado bajo GNU GPL .
En muchos sentidos, KnightCap es un programa moderno bastante típico. Utiliza estructuras de datos de tablero de bits que son ligeramente diferentes de las que eran bien conocidas en 1996, pero lo suficientemente obvias y probablemente conocidas ahora. Hay una poda hacia atrás usando MTD-f (un método aproximadamente equivalente a la poda Alpha-beta pero un poco más eficiente en algunos entornos). Hay una heurística de movimiento nulo . Existe un proceso de evaluación de nodo final bastante complejo que considera características similares a otros programas.
Además, KnightCap tiene soporte para computadoras multiprocesador, en particular las ahora obsoletas máquinas de investigación de computadoras Fujitsu CAP .
La característica más original de KnightCap, introducida a fines de la década de 1990, fue un experimento en el aprendizaje de diferencias temporales aplicado al ajedrez. Esta técnica permitió a KnightCap ajustar automáticamente los pesos aplicados a las diversas funciones en su función de evaluación en función de los juegos que jugaba.
Durante un tiempo en la década de 1990, KnightCap estuvo bastante activo en servidores de ajedrez en Internet, pero ahora está semi-retirado y rara vez se ve. Su fuerza está por debajo de la de los programas más fuertes, pero sigue siendo bastante buena. [ cita requerida ]