Módulos / combinatoria-2 / Capítulo 7 — Juegos combinatorios y estrategias / Lección 7.1

Teoría de juegos: nim y el valor de Sprague-Grundy

Lección 7.1·Capítulo 7 — Juegos combinatorios y estrategias·12 min·Piloto

Video en producción

El contenido pedagógico de esta lección ya está completo y lo puedes leer abajo. El video con la voz de Eduardo Espinoza Ramos se produce según la Política de IA.

Disclosure de IA: al publicarse, este contenido reproducirá digitalmente, con autorización expresa del autor, la voz y fisonomía de Eduardo Espinoza Ramos. Curaduría revisada por matemáticos profesionales. Política completa →

Objetivo de la lección

Comprender los fundamentos de la teoría de juegos combinatorios imparciales: posiciones ganadoras (N-posiciones) y perdedoras (P-posiciones) en Nim, el teorema de Sprague-Grundy que reduce cualquier juego imparcial a un montón de Nim, el cálculo de valores de Grundy (nimbers) mediante mex, y la aplicación de estos conceptos a problemas de olimpiada.

Juegos combinatorios imparciales

Un juego combinatorio es una competencia de dos jugadores con las siguientes características: (1) los dos jugadores alternan turnos, (2) ambos tienen información perfecta del estado del juego (sin cartas ocultas ni dados), (3) el juego termina en un número finito de movimientos, y (4) no hay empates — el último jugador en moverse gana (regla de normalización).

Un juego se llama imparcial si, en cada posición, el conjunto de movimientos disponibles es el mismo para ambos jugadores. En un juego parcial (como el ajedrez), las piezas blancas y negras son distintas y los movimientos dependen de quién juega. En olimpiadas, casi todos los juegos son imparciales.

Los ejemplos más importantes de juegos imparciales son: Nim (quitar fichas de montones), el Juego de Euclides (restar múltiplos del número menor), el Nim modular (quitar a lo sumo kk fichas de un montón), y los juegos de divisores.

El objetivo central de la teoría es clasificar cada posición como ganadora o perdedora para el jugador que le toca mover, y encontrar la estrategia óptima. Esta clasificación da automáticamente una estrategia ganadora: si la posición actual es ganadora, el jugador actual puede mover a una posición perdedora para el rival; si es perdedora, cualquier movimiento lleva a una posición ganadora para el rival.

Nim: posiciones P y N

Nim es el juego combinatorio fundamental. Se tiene una colección de montones de fichas con tamaños a1,a2,,ak0a_1, a_2, \ldots, a_k \geq 0. En cada turno, el jugador elige un montón (no vacío) y retira cualquier cantidad positiva de fichas de ese montón. Quien quita la última ficha gana.

Una posición se llama P-posición (posición perdedora, del inglés "Previous player wins") si el jugador que acaba de mover gana; es decir, el jugador que enfrenta esta posición pierde con juego óptimo del rival. Una posición es N-posición (posición ganadora, "Next player wins") si el jugador que le toca mover puede ganar.

Las reglas de clasificación son: (i) la posición terminal (todos los montones vacíos) es P-posición (el jugador que debe mover no puede y pierde); (ii) una posición es N-posición si existe al menos un movimiento que lleva a una P-posición; (iii) una posición es P-posición si todos sus movimientos llevan a N-posiciones.

Teorema de Bouton (1901): La posición (a1,a2,,ak)(a_1, a_2, \ldots, a_k) en Nim es P-posición si y solo si a1a2ak=0a_1 \oplus a_2 \oplus \cdots \oplus a_k = 0, donde \oplus denota la suma XOR bit a bit (también llamada "nim-suma").

Ejemplo: El estado (3,5,6)(3, 5, 6) tiene nim-suma 356=011101110=0003 \oplus 5 \oplus 6 = 011 \oplus 101 \oplus 110 = 000, así que es P-posición — el jugador que mueve primero pierde con juego óptimo del rival. El estado (1,2,3)(1, 2, 3) tiene 123=011011=001 \oplus 2 \oplus 3 = 01 \oplus 10 \oplus 11 = 00, también P-posición. El estado (1,2,4)(1, 2, 4) tiene 124=701 \oplus 2 \oplus 4 = 7 \neq 0, N-posición.

Estrategia ganadora en Nim: Si la nim-suma s=a1ak0s = a_1 \oplus \cdots \oplus a_k \neq 0, siempre existe un montón aia_i tal que ais<aia_i \oplus s < a_i (un bit alto de ss está en aia_i). Reducir ese montón a aisa_i \oplus s hace que la nueva nim-suma sea 00, convirtiendo la posición en P-posición para el rival.

a1a2ak=0    P-posicioˊna_1 \oplus a_2 \oplus \cdots \oplus a_k = 0 \iff \text{P-posición}

El teorema de Sprague-Grundy

El teorema de Sprague-Grundy es la generalización más profunda de la teoría de juegos combinatorios. Establece que todo juego imparcial finito y acíclico es equivalente a un montón de Nim de cierto tamaño, llamado el valor de Grundy (o nimber) de la posición.

Formalmente, el valor de Grundy G(P)\mathcal{G}(P) de una posición PP se define recursivamente mediante la función mex (mínimo excluido no negativo): G(P)=mex{G(Q):Q es posicioˊn alcanzable desde P}\mathcal{G}(P) = \text{mex}\{\mathcal{G}(Q) : Q \text{ es posición alcanzable desde } P\}. El mex de un conjunto de enteros no negativos es el menor entero no negativo que no pertenece al conjunto.

La posición terminal tiene G=mex()=0\mathcal{G} = \text{mex}(\emptyset) = 0. Una posición con G(P)=0\mathcal{G}(P) = 0 es P-posición (equivalente al montón vacío de Nim), y una posición con G(P)>0\mathcal{G}(P) > 0 es N-posición.

Teorema de suma de juegos: Si un juego es la suma de juegos independientes G1+G2++GkG_1 + G_2 + \cdots + G_k (en cada turno el jugador elige un juego GiG_i y hace un movimiento en él), el valor de Grundy de la suma es la nim-suma de los valores individuales: G(G1++Gk)=G(G1)G(Gk)\mathcal{G}(G_1 + \cdots + G_k) = \mathcal{G}(G_1) \oplus \cdots \oplus \mathcal{G}(G_k). La posición es P-posición si y solo si esta nim-suma es 00.

Este teorema es enormemente poderoso: reduce el análisis de combinaciones arbitrarias de juegos imparciales a calcular los nimbers individuales y hacer XOR. La estrategia ganadora en la suma consiste en llevar la nim-suma a 00 en cada turno.

G(P)=mex{G(Q):Q alcanzable desde P}\mathcal{G}(P) = \operatorname{mex}\bigl\{\,\mathcal{G}(Q) : Q \text{ alcanzable desde } P\,\bigr\}

Cálculo de valores de Grundy: ejemplos

Ejemplo 1 — Nim de un montón: Para un montón de tamaño nn, los movimientos llevan a montones 0,1,,n10, 1, \ldots, n-1. Luego G(n)=mex{0,1,,n1}=n\mathcal{G}(n) = \text{mex}\{0, 1, \ldots, n-1\} = n. El nimber de un montón de Nim de tamaño nn es nn (como era de esperarse).

**Ejemplo 2 — Nim con restricción (k\leq k fichas):** Si solo se pueden quitar entre 1 y kk fichas de un montón de nn: G(0)=0\mathcal{G}(0) = 0; G(n)=mex{G(n1),G(n2),,G(nk)}\mathcal{G}(n) = \text{mex}\{\mathcal{G}(n-1), \mathcal{G}(n-2), \ldots, \mathcal{G}(n-k)\} para n1n \geq 1. Calculando: G(n)=nmod(k+1)\mathcal{G}(n) = n \bmod (k+1). Las P-posiciones son los múltiplos de k+1k+1.

Ejemplo 3 — Juego de Euclides: Dados dos enteros positivos aba \geq b, el jugador elige un múltiplo positivo de bb que no supere aa y lo resta de aa. Si a2ba \geq 2b, el jugador puede forzar cualquier residuo (en particular, puede pasar a b,ab,a2b,b, a-b, a-2b, \ldots), luego G(a,b)>0\mathcal{G}(a,b) > 0. Si a<2ba < 2b (solo se puede restar bb una vez), G(a,b)=G(b,ab)\mathcal{G}(a,b) = \mathcal{G}(b, a-b) y se reduce al par más pequeño. El análisis completo revela que (a,b)(a,b) es P-posición     \iff a/b<ϕa/b < \phi (la razón áurea) tras aplicar las reducciones.

Ejemplo 4 — Juego en grafos: Se tiene un token en un vértice de un grafo dirigido acíclico; cada turno el jugador mueve el token por una arista. El jugador que no puede mover pierde. Entonces G(v)=mex{G(w):(v,w) es arista}\mathcal{G}(v) = \text{mex}\{\mathcal{G}(w) : (v,w) \text{ es arista}\}. Este es el modelo más general de juego imparcial: todo juego imparcial finito se puede representar así.

Cálculo práctico: Para calcular G\mathcal{G} en olimpiadas, conviene calcular los primeros valores a mano y buscar un patrón periódico (la mayoría de los juegos de olimpiada tienen nimbers periódicos). Luego se verifica la periodicidad por inducción.

Problemas del Capítulo 7 — con solución

4 problemas verificados. Intenta cada uno antes de abrir la solución.

C2-C7-1★★★Cono Sur 2016 (estilo)

Se juega el siguiente juego con dos jugadores que alternan turnos. El tablero inicial es un montón de nn fichas. En cada turno, el jugador actual puede quitar 1, 2 o 4 fichas del montón. El jugador que quita la última ficha gana. Determina para qué valores de nn el primer jugador tiene estrategia ganadora, y describe dicha estrategia.

C2-C7-2★★★IbAm 2013 (estilo)

Dos jugadores juegan en un tablero rectangular de m×nm \times n casillas. El Jugador 1 coloca una ficha en cualquier casilla de la primera columna. Luego, en cada turno, el jugador actual mueve la ficha a cualquier casilla que esté estrictamente a la derecha de la posición actual, o estrictamente abajo (sin moverse a la izquierda ni hacia arriba). El jugador que coloca la ficha en la última casilla (esquina inferior derecha) gana. Determina quién tiene estrategia ganadora en función de mm y nn.

C2-C7-3★★★★IbAm 2017 (estilo)

En un tablero de n×nn \times n (con n2n \geq 2), los jugadores alternan turno colocando una ficha en cualquier casilla vacía. El Jugador 1 usa fichas blancas y el Jugador 2 usa fichas negras. Al terminar el juego (todas las casillas ocupadas), el Jugador 1 gana si existe una fila o columna con al menos n/2\lceil n/2 \rceil fichas blancas; de lo contrario gana el Jugador 2. Determina quién tiene estrategia ganadora.

C2-C7-4★★★★Cono Sur 2019 (estilo)

Se tienen 2n2n enteros positivos escritos en círculo. Una operación consiste en elegir dos números adyacentes aa y bb con a>ba > b y reemplazarlos por aba - b y 2b2b (se disminuye el mayor y se duplica el menor). Demostrar que: (a) el proceso termina, y (b) el estado final no depende del orden en que se realizan las operaciones.