El juego de Nim: análisis completo
Nim. Se tienen montones de fichas con tamaños . En cada turno, el jugador elige un montón y retira al menos una ficha de ese montón (puede vaciarlo). El jugador que tome la última ficha gana (convención normal play).
Teorema de Bouton (1902). La posición es una P-posición si y solo si , donde denota el XOR bit a bit (suma en de las representaciones binarias).
Demostración. Verificamos las dos condiciones de la dicotomía P/N: (1) Si entonces todo movimiento (reducir algún a con ) lleva a una posición con XOR (pues cambiar a cambia el XOR). (2) Si , existe un movimiento que lleva a XOR : sea el bit más significativo de ; algún tiene el bit igual a 1, y se puede reducir a (lo cual da XOR total ). Luego la posición inicial es P iff XOR .
La estrategia ganadora desde una N-posición: siempre mover al único tal que da XOR total en la nueva posición. Esta estrategia está bien definida y el juego termina en tiempo finito.
El nimero (valor de Grundy)
Sea un juego combinatorio y una posición. El valor de Grundy (o nimero) se define recursivamente:
donde (minimum excludant) es el menor entero no negativo que no está en . Para posiciones terminales (sin sucesores), .
Propiedades fundamentales. (1) es P-posición si y solo si . (2) Si , el jugador en turno puede moverse a cualquier posición con nimero (pues mex garantiza que cada uno de esos valores es alcanzable). (3) El nimero de un montón de Nim de tamaño es simplemente (pues desde se puede alcanzar exactamente ).
El nimero es la cantidad que "mide" cuán ganadora es una posición, no solo si es ganadora o no. Esta granularidad es esencial para analizar sumas de juegos.
El Teorema de Sprague–Grundy
Suma de juegos. Dados dos juegos y , su suma es el juego en que en cada turno el jugador elige uno de los dos juegos y hace un movimiento en él. El juego termina cuando no hay movimientos disponibles en ninguno de los dos.
Teorema de Sprague-Grundy. El nimero de la suma de dos juegos es el XOR de sus nimeros:
.
Demostración. Sea , , . Debemos mostrar , es decir . Hay dos cosas a probar: (i) no es alcanzable (asegura para o da no excluido); más precisamente, que no pertenece al conjunto de los nimeros alcanzables. (ii) Todo valor es alcanzable. Para (i): si con , entonces (pues ); luego . Similarmente para . Para (ii): dado , sea el bit más alto en que y difieren. Podemos ajustar o a un valor con y (argumento idéntico al de Nim). Luego es alcanzable.
Corolario. Todo juego combinatorio es equivalente a un único montón de Nim de tamaño . La suma de juegos tiene nimero , y es P-posición iff este XOR es 0. El Teorema de Sprague-Grundy reduce el análisis de cualquier suma de juegos al cálculo de nimeros individuales y una operación XOR.
Cálculo de nimeros: ejemplos sistemáticos
**Juego de resta .** Desde fichas, se pueden tomar 1, 2 o 3. Los nimeros: , , , , , , ... El patrón es . Luego la suma de varios juegos de resta con montones tiene nimero .
Juego de Nim en grafos (Vertex Geography). Una ficha sobre un grafo inicia en ; los jugadores mueven la ficha a lo largo de aristas no visitadas. El nimero de cada posición se calcula recursivamente. Para grafos de caminos, el nimero es la longitud del camino más largo desde (paridad relevante). Para grafos generales, el cálculo puede ser complejo.
Hackenbush. En Hackenbush, hay "palitos" (aristas) conectados al suelo; el jugador elige un palito, lo borra, y toda componente desconectada del suelo cae. El nimero de un bambú (camino de longitud conectado al suelo) es . El nimero de un árbol es la suma XOR de los nimeros de sus ramas. El nimero de componentes desconectadas es XOR de los nimeros de las componentes. Este resultado permite calcular el nimero de cualquier posición de Hackenbush como XOR de nimeros de árboles y ciclos.
Sprague-Grundy y Nim misère. En la variante misère (el que toma la última ficha pierde), la estrategia óptima difiere de normal play solo en el endgame: la regla es "sigue la estrategia de Nim normal hasta que queden solo montones de tamaño 1, y entonces invierte: si hay un número impar de montones de tamaño 1, pasa; si hay un número par, toma uno". Esta regla da la estrategia óptima para Nim misère, pero la generalización al Teorema de Sprague-Grundy misère para juegos arbitrarios es mucho más compleja (la teoría de misère de Sprague-Grundy fue desarrollada por Grundy-Smith y Berlekamp-Conway-Guy, y es significativamente más difícil).
Juegos compuestos en IMO: aplicaciones del Teorema de Sprague–Grundy
En IMO y IMO Shortlist, los juegos que aparecen raramente son Nim puro; lo usual es que el juego tenga una estructura que requiere calcular nimeros de componentes y combinarlos con XOR.
Señales para usar Sprague-Grundy. (1) El juego consiste en varias partes independientes (varias pilas, varias fichas sobre tableros distintos, varias instancias del mismo subjuego). (2) Las partes se juegan simultáneamente (en cada turno el jugador elige una parte y mueve en ella). (3) El enunciado pide quién gana el juego completo dados los tamaños iniciales, o pide la estrategia explícita.
Ejemplo IMO Shortlist. Un juego con fichas en un tablero lineal : cada ficha puede moverse a la izquierda, y dos fichas no pueden ocupar la misma casilla. Este juego es equivalente a Nim con montones de tamaño iguales a los "espacios" entre fichas. El análisis usa el Teorema de Sprague-Grundy aplicado a los subjuegos (espacios) independientes.
Cuidado: juegos no acíclicos. Si el juego tiene ciclos (el estado puede repetirse), la definición de nimero via mex no es directamente aplicable (el proceso podría no terminar). En esos casos, se usa la teoría de juegos loopy o se restringe el análisis a posiciones que forman un DAG.
El dominio del Teorema de Sprague-Grundy permite al estudiante convertir cualquier problema de juego compuesto en un problema de XOR, reduciendo el análisis combinatorio a un cálculo algebraico sobre . Esto es precisamente la conexión entre el Capítulo 3 (álgebra lineal sobre ) y la teoría de juegos.