Next: Búsqueda a nivel de
Up: Hardware
Previous: Generador de Movimientos
  Índice General
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: Búsqueda a nivel de
Up: Hardware
Previous: Generador de Movimientos
  Índice General
Santiago de Chile, Julio 2003