Zobrist desmenuzar

Zobrist que desmenuza (también referido como llaves de Zobrist o firmas de Zobrist) es una construcción de función del picadillo usada en programas de ordenador que juegan juegos de mesa abstractos, como el ajedrez y Van, para poner en práctica mesas de transposición, una clase especial de la tabla hash que es puesta índice por una posición del consejo y se usa para evitar analizar la misma posición más que una vez. Zobrist que desmenuza se llama para su inventor, Albert Lindsey Zobrist.

Zobrist que desmenuza ventajas generando al azar bitstrings para cada elemento posible de un juego de mesa. Considerando cierta posición del consejo, rompe el consejo en componentes independientes, averigua lo que declara que cada componente está en y combina el bitstrings que representa aquellos elementos juntos usando bitwise XOR. Si los bitstrings son el bastante mucho tiempo, las posiciones del consejo diferentes desmenuzarán casi seguramente a valores diferentes; sin embargo bitstrings más largos requieren proporcionalmente más recursos del ordenador de manipular. Muchos motores animosos sólo almacenan los valores del picadillo en la mesa de transposición, omitiendo la propia información de la posición completamente para reducir el uso de memoria, y suponiendo que las colisiones del picadillo no ocurran, o no enormemente influirán en los resultados de la mesa si hacen.

Zobrist desmenuzar es el primer caso conocido de la tabulación desmenuzar. El resultado es una familia del picadillo independiente 3-sabia. En particular, es fuertemente universal.

Como un ejemplo, en el ajedrez, cada uno de los 64 cuadrados puede ser vacío en cualquier momento, o contener una de las 6 piezas animosas, que son negras o blancas. Es decir cada cuadrado puede estar en uno de 1 + 6 x 2 = 13 estados posibles en cualquier momento. Así uno tiene que generar como máximo 13 x 64 = 832 bitstrings arbitrarios. Considerando una posición, uno obtiene su picadillo de Zobrist averiguando qué piezas son conectadas que cuadrados y combinación de bitstrings relevante juntos.

La posición de un consejo puede ser actualizada simplemente por XORing el bitstring (s) para estados que han cambiado, y XORing en el bitstrings para los nuevos estados. Por ejemplo, si una prenda en un cuadrado del tablero de ajedrez es sustituida por un grajo de otro cuadrado, la posición que resulta sería producida por XORing el picadillo existente con el bitstrings para:

'prenda en este cuadrado' (XORing la prenda en este cuadrado)

'grajo en este cuadrado' (XORing en el grajo en este cuadrado)

'grajo en cuadrado de la fuente' (XORing el grajo en el cuadrado de la fuente)

'nada en cuadrado de la fuente' (XORing en nada en el cuadrado de la fuente).

Esto hace Zobrist que desmenuza muy eficiente para cruzar un árbol animoso.

En el ordenador van, esta técnica también se usa para el descubrimiento superko.

Véase también



Buscar