Juegos combinatorios: definición y marco
Un juego combinatorio (en el sentido de la teoría de juegos combinatorios) es un juego de dos jugadores (llamados habitualmente Jugador 1 y Jugador 2, o Alice y Bob) con las propiedades: (i) información perfecta (ambos jugadores conocen el estado completo del juego), (ii) sin azar, (iii) normal play convention: el jugador que no puede mover pierde (o en la variante misère: el que hace el último movimiento pierde).
Un estado o posición del juego es una descripción completa del tablero y a quién le toca mover. El conjunto de posiciones forma un grafo dirigido acíclico (DAG): los nodos son posiciones y las aristas van de una posición a las posiciones accesibles en un movimiento. Las posiciones sin sucesores son posiciones terminales (el jugador que está en ellas pierde bajo la convención normal play).
Los juegos combinatorios más comunes en olimpiadas: Nim y sus variantes, juegos sobre grafos (moverse a lo largo de aristas), juegos de divisibilidad (dividir o escribir números), juegos de tokens sobre tableros, y juegos de construcción (colocar fichas en un tablero).
La teoría matemática de estos juegos fue desarrollada por Sprague (1935) y Grundy (1939) de forma independiente, culminando en el Teorema de Sprague-Grundy que veremos en la Lección 5.2. En esta lección establecemos los fundamentos: la dicotomía P/N y la técnica del robo de estrategia.
Posiciones P y N: la dicotomía fundamental
Sea un juego combinatorio bajo la convención normal play. Definimos recursivamente:
Posición P (Previous player wins, o "el que movió antes gana"): la posición terminal es una P-posición; más generalmente, una posición es P si y solo si todos los sucesores de son N-posiciones.
Posición N (Next player wins, o "el que mueve ahora gana"): una posición es N si y solo si existe al menos un sucesor de que es una P-posición.
En otras palabras: estás en una posición perdedora (P) si cualquier movimiento que hagas lleva a tu oponente a una posición ganadora (N); y estás en una posición ganadora (N) si puedes mover a una posición perdedora (P) para tu oponente.
Teorema de existencia (Algoritmo retrograde). En todo juego combinatorio acíclico finito, toda posición es P o N (nunca ambas, nunca ninguna). El algoritmo para calcular el valor de cada posición: (1) Marcar todas las posiciones terminales como P. (2) Marcar como N toda posición que tenga un sucesor P. (3) Marcar como P toda posición no marcada cuyos todos los sucesores ya están marcados (todos son N). (4) Repetir hasta que no haya cambios. El proceso termina en tiempo finito si el grafo es acíclico.
La demostración es una inducción sobre el DAG: en el orden topológico inverso, cada posición recibe su valor. La acicidad garantiza que no hay ciclos que impidan la terminación.
Ejemplos: juego de divisores y juego de resta
Juego de resta. Dados fichas, cada jugador puede tomar 1, 2 o 3 fichas. El que tome la última pierde (versión misère) o gana (versión normal). Bajo normal play: la posición con 0 fichas es P (posición terminal, quien está aquí ha perdido). Con 1, 2, 3 fichas: N (puedes llegar a 0). Con 4 fichas: todos los movimientos llevan a 1, 2 o 3 (todas N), luego 4 es P. Patrón: es P iff . Estrategia ganadora desde N: mover a la P-posición más próxima (tomar fichas).
Juego de divisores. Empezamos con un entero . En cada turno, el jugador escoge un divisor propio de y lo reemplaza por . El jugador que llega a 1 gana. El análisis: es P (terminal, perdedor). primo: solo movimiento es (P), luego primo es N. : puedes ir a (N) o a 1 (P); como puedes ir a P, es N. con primos: vas a o a (ambos N), o a 1 (P); puedes ir a P, luego N. En general, si tiene algún divisor propio tal que es P, entonces es N. El análisis completo del juego de divisores requiere caracterizar los valores de que son P-posiciones.
Juego en un grafo. Una ficha empieza en un nodo de un grafo dirigido acíclico. Los jugadores alternan moviéndola a lo largo de una arista. El que no pueda mover pierde. Los nodos sumideros (sin salida) son P-posiciones; el análisis retrograde determina el resto. Este marco generaliza todos los juegos combinatorios.
El Teorema de Zermelo y estrategias determinísticas
Teorema de Zermelo (1913). En todo juego combinatorio finito de dos jugadores con información perfecta (sin empates posibles): exactamente uno de los dos jugadores tiene una estrategia ganadora.
La prueba usa el Lema de König (todo DAG finito tiene un nodo terminal alcanzable desde cualquier nodo) o directamente el algoritmo P/N: toda posición es P o N, y si la posición inicial es P gana el segundo jugador, si es N gana el primero.
Estrategia como función. Una estrategia para el Jugador 1 es una función que a cada posición alcanzable por el Jugador 1 asigna un movimiento disponible en . La estrategia es ganadora si, siguiéndola, el Jugador 1 gana sin importar qué haga el Jugador 2.
Corolario importante. Si el juego tiene simetría de espejo (existe una involución del conjunto de posiciones que intercambia los dos jugadores y satisface iff ), y la posición inicial es un punto fijo de , entonces el segundo jugador puede "copiar" la estrategia del primero y ganar. Esta es la técnica de robo de estrategia: si ambas posiciones (la inicial y la imagen espejo) fuesen ganadoras para el primero, habría una contradicción.
Robo de estrategia: la técnica olímpica por excelencia
El robo de estrategia (strategy stealing) es un argumento de existencia que demuestra que el primer jugador tiene estrategia ganadora sin construir la estrategia explícitamente. El argumento es:
Supongamos que el segundo jugador tiene estrategia ganadora . Entonces el primer jugador puede "ignorar" su primera jugada (haciendo un movimiento arbitrario o, si el juego lo permite, un movimiento "nulo"), y luego seguir la estrategia como si fuera el segundo jugador. La primera jugada extra nunca puede ser perjudicial (en los juegos donde tener más fichas o más opciones no es malo), lo que da una contradicción.
Ejemplo: Juego de Hex. En Hex (tablero con hexágonos, cada jugador conecta sus dos lados), el primer jugador tiene estrategia ganadora por robo: si el segundo tuviera estrategia , el primero juega un hexágono arbitrario y luego sigue . Si en algún punto dicta "jugar donde ya hay una ficha del primero", eso solo favorece al primero. Luego el primero gana. (Esta es la prueba de existencia; la estrategia explícita para tamaños generales es desconocida.)
Ejemplo: Juego de crear conexiones. En muchos juegos de construcción (colocar fichas, conectar nodos), si tener una ficha adicional no puede perjudicar, el robo de estrategia garantiza que el primer jugador no pierde. En IMO, el argumento estándar es: "Si el segundo jugador tuviera estrategia ganadora, el primero la seguiría desde el principio, contradicción."
Limitación. El robo de estrategia solo funciona cuando el argumento "tener más es mejor" es válido. En juegos de Nim con reglas de no-tomar-la-última-ficha (misère), o en juegos donde agregar una ficha puede dañar, el robo puede fallar. En esos casos se necesita el Teorema de Sprague-Grundy.
En problemas de IMO Shortlist que piden demostrar que un jugador tiene estrategia ganadora sin construirla, el robo de estrategia es usualmente la ruta más corta. La construcción explícita de la estrategia se realiza con valores de Grundy (Lección 5.2) o con argumentos de invariante (Lección 5.3).