next up previous contents
Next: Búsqueda a nivel de Up: Hardware Previous: Generador de Movimientos   Índice General

Búsqueda

El proceso de búsqueda es probablemente uno de los más costosos dentro del proceso general. Este depende directamente de la capacidad de procesamiento del hardware así como la capacidad de memoria.

Máquinas con baja capacidad de procesamiento estarán muy limitadas en el cálculo de variantes en profundidad y el tiempo disponible será un factor de gran importancia. A pesar de esto, en el caso del ajedrez una buena capacidad de memoria podría eventualmente compensar la pérdida de velocidad al hacer posible el uso de tablas de trasposición mediante las cuales muchas variantes del árbol pueden ser desechadas dado su cálculo previo, con lo cual la búsqueda se aceleraría (se limita la cantidad de ramas a calcular). Además, una alta capacidad de memoria permite guardar gran cantidad de posiciones con sus respectivas evaluaciones, con lo cual la búsqueda no llegaría a estar limitada en la cantidad de nodos a procesar (puedo guardar mucha información).

Ahora bien, suponiendo el caso contrario, una gran capacidad de procesamiento y baja capacidad de memoria, se produce otro fenómeno de "compensación" de características. La gran capacidad de cálculo hará posible búsquedas de mucha profundidad, realizando cálculos y evaluaciones en forma muy acelerada. A pesar de esto, la baja memoria haría imposible mantener una tabla de Hash mínimamente aceptable, por lo cual muchas posiciones podrían llegar a analizarse más de una vez produciéndose una sobrecarga debido a las transposiciones. Muchos dispositivos modernos gozan de esta característica (Palms, microcomputadores) y sus juegos de ajedrez no llegan a un nivel lo suficientemente avanzado puesto que a pesar de sus buenas capacidades de procesamiento la limitancia de memoria hará que se realicen cálculos similares más de una vez. En el ajedrez las transposiciones resultan ser bastante frecuentes por lo que la capacidad de reconocerlas disminuye considerablemente los cálculos realizados en la búsqueda.

Sería interesante el poder analizar cuánto afecta la reducción de memoria la performance realizada por un programa en su búsqueda. Un experimento a proponer sería el manipular la capacidad de memoria de un programa y analizar los tiempos ocupados en búsquedas o bien cuantos niveles de profundidad alcanza en un tiempo dado. Un problema sería la dependencia de los resultados con la complejidad de la posición a la cual sería enfrentado el programa, puesto que de existir gran cantidad de trasposiciones presentes en ella la carencia de memoria tendrá mayor peso en la demora en el proceso de búsqueda.

Subsecciones
next up previous contents
Next: Búsqueda a nivel de Up: Hardware Previous: Generador de Movimientos   Índice General
Santiago de Chile, Julio 2003