| < Alfabeta: el árbol podado | [Cheoss] [índice] | El efecto horizonte > |
Un buen algoritmo de búsqueda:
La ordenación de la lista de jugadas es una de las características que debe cumplir una función de búsqueda eficiente, porque mejora enormemente la eficacia de la poda: permite al algoritmo de búsqueda descubrir antes cual es el verdadero límite en cada rama.
Este algoritmo de ordenación se basa en este sencillo principio para asignar un valor a cada captura según el resultado de la comparación de los valores del atacante y el atacado.
Los valores se ajustan para que la lista de jugadas quede ordenada de esta forma:
1.- Capturas buenas (El atacante vale menos que el atacado, ej. PxD )
2.- Capturas normales (Valores equivalentes de atacante y atacado, ej PxP)
y jugadas que no capturan
3.- Capturas malas (El atacante vale más que el atacado, ej. TxP)
Esta forma de ordenar tiene limitaciones evidentes, pero es fácil de implementar, es rápido y permite una poda razonable del árbol de variantes.
Muchos factores intervienen en la rapidez a la hora de construir el árbol de variantes, no sólo la rapidez del generador de movimientos. Sobre esto hay un punto muy interesante donde se puede ganar o perder mucho tiempo. Se trata de la detección de jugadas ilegales.
Cuando hablamos del problema de la legalidad de las jugadas en un motor de ajedrez nos referimos sobre todo a la detección de jaques. Comprobar si en una posición determinada el rey se encuentra en jaque es algo que lleva mucho tiempo de cálculo.
Este proceso es tan costoso que frecuentemente los generadores de movimientos calculan todos los movimientos legales pero sin tener en cuenta los jaques. Posteriormente hay que filtrar esta lista de movimientos pseudo legales de alguna manera.
1.- Tener un generador de movimientos que sólo incluya las jugadas que no dejen al rey del bando al que le toca mover en jaque.
2.- Tener un generador de movimientos que incluya todas las jugadas posibles sin hacer ninguna comprobación de jaques. La lista se filtrará en la función de búsqueda, antes de realizar la jugada en el tablero se comprobará si el rey del bando que mueve está en jaque y se rechazarán las ilegales.
La ventaja aparente del método 2 es que no habría que hacer el costoso test de jaques para toda la lista de jugadas, sólo para las que sobrevivieran a la poda alfa beta.
| < Alfabeta: el árbol podado | [Cheoss] [índice] | El efecto horizonte > |