Featured image of post Como Encontrar a Estratégia Vencedora em Jogos de Retirar Pedras: Nim e a Teoria dos Jogos Combinatórios

Como Encontrar a Estratégia Vencedora em Jogos de Retirar Pedras: Nim e a Teoria dos Jogos Combinatórios

Da soma de Nim via XOR binário e a prova rigorosa das posições vencedoras (N) e perdedoras (P), até o valor mínimo excluído (mex), os números de Grundy, o Teorema de Sprague-Grundy e a variante Misère.

Introdução: A Necessidade Absoluta por Trás de Regras Simples — Jogos Combinatórios Imparciais

Sobre uma mesa estão três pilhas de pedras com \(3\), \(4\) e \(5\) pedras, respectivamente. Dois jogadores jogam alternadamente; em cada turno, um jogador escolhe qualquer pilha e retira pelo menos uma pedra (podendo retirar a pilha inteira). Quem retirar a última pedra vence a partida. Este é o clássico jogo de Nim, imortalizado no cinema por Alain Resnais em O Ano Passado em Marienbad. À primeira vista, parece uma disputa psicológica de cálculo mental; mas, aos olhos da matemática, o vencedor já está \(100\,\%\) determinado antes mesmo do primeiro lance: se o primeiro jogador dominar o invariante algébrico oculto na representação binária, ele forçará a vitória independentemente do que o segundo jogador faça.

Na matemática moderna, essa classe de jogos é chamada de jogos combinatórios imparciais (Impartial Combinatorial Games) e obedece a cinco axiomas: (1) dois jogadores movem-se alternadamente; (2) informação perfeita (sem cartas ocultas); (3) determinismo (sem dados ou sorte); (4) imparcialidade, significando que, a partir de qualquer posição, o conjunto de movimentos legais disponíveis é exatamente o mesmo para ambos os jogadores (diferentemente de jogos partidários como xadrez ou go, onde cada jogador só move suas próprias peças); e (5) terminação finita, garantindo que toda partida termina em um número finito de lances sobre um grafo acíclico dirigido (DAG). Sob a regra padrão — a convenção de jogo normal (Normal Play Convention) —, perde o primeiro jogador que não puder realizar um movimento legal (ou seja, vence quem faz o último lance).

Por indução reversa (Teorema de Zermelo), todas as posições de um jogo imparcial dividem-se de forma única em duas classes disjuntas: posições \(\mathcal{P}\) (Previous-player winning, perdedoras para o jogador da vez) e posições \(\mathcal{N}\) (Next-player winning, vencedoras para o jogador da vez). Sua definição recursiva é cristalina: todas as posições terminais sem movimentos são posições \(\mathcal{P}\); uma posição é \(\mathcal{N}\) se existe pelo menos um lance legal que leve a uma posição \(\mathcal{P}\); e é uma posição \(\mathcal{P}\) se todos os lances legais levam inevitavelmente a posições \(\mathcal{N}\).

  flowchart TD
    A["Impartial Game Position G"] --> B{"Compute Grundy Value g(G)"}
    B -->|"g(G) > 0"| C["N-Position: Next Player Wins"]
    B -->|"g(G) = 0"| D["P-Position: Previous Player Wins"]
    C -->|"Optimal Move: Choose option G' with g(G') = 0"| D
    D -->|"Every Legal Move: Flips at least one bit"| C

1. A Decifração de Charles Bouton (1901): O XOR Binário (Nim-sum) e os Dois Lemas de Invariância

Quando há muitas pilhas com milhões de pedras, a indução reversa direta no grafo de estados sofre uma explosão exponencial. Em 1901, o matemático de Harvard Charles Leonard Bouton publicou um artigo histórico resolvendo completamente o jogo de Nim. Ele descobriu que o segredo está em escrever o tamanho de cada pilha em binário e calcular sua soma OU exclusivo bit a bit (XOR, chamada soma de Nim ou Nim-sum).

Para uma posição \((n_1, n_2, \dots, n_k)\), definimos a soma de Nim como \(S = n_1 \oplus n_2 \oplus \dots \oplus n_k\). A operação \(\oplus\) equivale à adição binária sem vai-um sobre o corpo finito \(\mathbb{F}_2 = ext{GF}(2)\) (comutativa, associativa e satisfazendo \(x \oplus x = 0\)). O Teorema de Bouton afirma: Uma posição de Nim \((n_1, \dots, n_k)\) é perdedora (posição \(\mathcal{P}\)) se e somente se sua soma de Nim for \(S = 0\), e é vencedora (posição \(\mathcal{N}\)) se e somente se \(S eq 0\).

A prova baseia-se em dois elegantes lemas algébricos: Primeiro: A partir de qualquer posição com \(S = 0\), todo movimento legal leva necessariamente a \(S' eq 0\). Se o jogador reduz a pilha \(i\) de \(n_i\) para \(n_i' < n_i\), as representações binárias de \(n_i\) e \(n_i'\) diferem em pelo menos um bit, logo \(n_i \oplus n_i' eq 0\). A nova soma de Nim é \(S' = S \oplus n_i \oplus n_i' = 0 \oplus (n_i \oplus n_i') eq 0\). Assim, quem recebe \(S=0\) é forçado a entregar uma posição vencedora \(S' eq 0\) ao adversário. Segundo: A partir de qualquer posição com \(S eq 0\), sempre existe pelo menos um movimento legal que resulta em \(S' = 0\). Observemos o bit mais significativo (Most Significant Bit, MSB) igual a \(1\) na escrita binária de \(S eq 0\), localizado na coluna \(d\). Como o bit \(d\) de \(S\) é \(1\), deve haver um número ímpar (portanto, pelo menos uma) de pilhas \(n_i\) cujo bit na coluna \(d\) também seja \(1\). Escolhendo essa pilha \(n_i\) e definindo seu novo tamanho como \(n_i' = n_i \oplus S\), o bit na coluna \(d\) muda de \(1\) para \(0\), enquanto todos os bits mais significativos permanecem inalterados. Portanto, vale estritamente \(n_i' < n_i\)! Retirar \(n_i - (n_i \oplus S)\) pedras é um lance perfeitamente legal e produz a nova soma de Nim \(S' = S \oplus n_i \oplus n_i' = S \oplus n_i \oplus (n_i \oplus S) = 0\). No exemplo inicial \((3, 4, 5)\), temos \(S = 3 \oplus 4 \oplus 5 = 2 = (010)_2 eq 0\). O bit mais significativo tem peso \(2\), presente em \(n_1 = 3 = (011)_2\). O primeiro jogador reduz a primeira pilha para \(n_1' = 3 \oplus 2 = 1\), deixando \((1, 4, 5)\) com \(1 \oplus 4 \oplus 5 = 0\) e garantindo a vitória!

\[ S = n_1 \oplus n_2 \oplus \dots \oplus n_k = \bigoplus_{i=1}^k n_i \]\[ \begin{aligned} n_1 = 3 &= (011)_2 \\ n_2 = 4 &= (100)_2 \\ n_3 = 5 &= (101)_2 \\ \hline S = 3 \oplus 4 \oplus 5 &= (010)_2 = 2 \neq 0 \quad (\mathcal{N}\text{-position}) \end{aligned} \]\[ n_1' = n_1 \oplus S = 3 \oplus 2 = (011)_2 \oplus (010)_2 = (001)_2 = 1 < 3 \implies (1, 4, 5) \text{ has } 1 \oplus 4 \oplus 5 = 0 \quad (\mathcal{P}\text{-position}) \]

2. O Teorema de Sprague-Grundy (1935/1939): Todo Jogo Imparcial é Isomorfo ao Nim

Mais de trinta anos após Bouton, Roland Sprague (1935) e Patrick Michael Grundy (1939) descobriram independentemente um teorema universal extraordinário: não apenas o Nim, mas absolutamente qualquer jogo combinatório imparcial finito sob convenção normal é matematicamente isomorfo a uma única pilha de Nim de determinado tamanho!

Para construir esse isomorfismo, introduzimos o valor mínimo excluído (Minimum Excluded Value, \( ext{mex}\)) e o número de Grundy (Grundy Value ou Nimber). Para qualquer subconjunto finito de inteiros não negativos \(A \subset \mathbb{N}_0\), \( ext{mex}(A)\) é o menor inteiro não negativo que não pertence a \(A\) (por exemplo, \( ext{mex}(\emptyset) = 0\), \( ext{mex}(\{0, 1, 3\}) = 2\)). Para qualquer posição \(u\) do grafo do jogo, seu número de Grundy \(\mathcal{G}(u)\) é definido recursivamente como o \( ext{mex}\) dos números de Grundy de todas as posições sucessoras \(v\) alcançáveis em um lance. Duas propriedades fundamentais decorrem imediatamente: (1) \(\mathcal{G}(u) = 0\) se e somente se nenhum sucessor tiver valor \(0\), isto é, \(u\) é uma posição \(\mathcal{P}\); (2) se \(\mathcal{G}(u) = g > 0\), então para todo inteiro \(m\) com \(0 \le m < g\) existe pelo menos um sucessor \(v\) tal que \(\mathcal{G}(v) = m\). Isso reproduz exatamente o comportamento de uma pilha de Nim com \(g\) pedras!

Além disso, quando combinamos vários jogos imparciais independentes \(G_1, G_2, \dots, G_k\) em uma soma disjuntiva \(G = G_1 + G_2 + \dots + G_k\) (em cada turno o jogador escolhe um dos subjogos e faz nele um movimento legal até que todos terminem), o Teorema de Sprague-Grundy prova que o número de Grundy do jogo composto é exatamente a soma XOR bit a bit dos números de Grundy de cada subjogo: \(\mathcal{G}(G_1 + \dots + G_k) = \mathcal{G}(G_1) \oplus \dots \oplus \mathcal{G}(G_k)\). Mesmo que um subjogo permita transitar para um estado com número de Grundy maior (equivalente a adicionar pedras a uma pilha), o oponente sempre pode neutralizar esse acréscimo retornando-o imediatamente ao valor anterior. Assim, qualquer jogo complexo de grafos ou divisão reduz-se ao cálculo de valores \( ext{mex}\) e aplicação de XOR.

\[ \text{mex}(A) = \min \{ m \in \mathbb{N}_0 \mid m \notin A \}, \qquad \mathcal{G}(u) = \text{mex}\big\{ \mathcal{G}(v) \;\big|\; u \to v \big\} \]\[ \mathcal{G}(u) = 0 \iff u \in \mathcal{P}\text{-position}, \qquad \mathcal{G}(u) > 0 \iff u \in \mathcal{N}\text{-position} \]
  flowchart TD
    G1["Subgame G1: Grundy Value g(G1)"] --> XOR["Bitwise XOR Sum: S = g(G1) XOR g(G2) XOR g(G3)"]
    G2["Subgame G2: Grundy Value g(G2)"] --> XOR
    G3["Subgame G3: Grundy Value g(G3)"] --> XOR
    XOR -->|"Sprague-Grundy Isomorphism"| NIM["Equivalent to 3-Heap Nim (g(G1), g(G2), g(G3))"]

3. Aplicações Clássicas e a Armadilha da Convenção Misère

O Teorema de Sprague-Grundy fornece um bisturi poderoso para dissecar inúmeros jogos:

  • Jogos de subtração (Subtraction Games, jogo de Bachet): Só é permitido retirar de \(1\) a \(m\) pedras por turno. Obtém-se periodicamente \(\mathcal{G}(n) = n mod (m+1)\), sendo perdedora toda posição múltipla de \(m+1\).
  • Jogos de divisão: Kayles e o Xadrez de Dawson: No jogo de boliche Kayles, há \(n\) pinos em fila e cada arremesso derruba \(1\) pino ou \(2\) pinos adjacentes. O aspecto fascinante é que derrubar pinos no meio da fila divide a fila original em duas subfilas independentes de tamanhos \(a\) e \(b\)! Pelo Teorema de Sprague-Grundy, a posição resultante equivale à soma disjuntiva das duas subfilas, e seu valor de Grundy é dado diretamente por \(\mathcal{G}(a) \oplus \mathcal{G}(b)\). Via programação dinâmica em \(O(n^2)\), calcula-se toda a sequência (que se torna estritamente periódica de período \(12\) a partir de \(n \ge 72\)).
  • Convenção Misère (Misère Play — quem retira a última pedra perde): O que acontece se invertermos a regra para que perca quem retirar a última pedra? Muitos iniciantes acreditam erroneamente que basta inverter \(\mathcal{P}\) e \(\mathcal{N}\). Bouton provou a regra exata do Nim Misère: enquanto restarem pelo menos duas pilhas de tamanho maior que \(1\), joga-se exatamente como no Nim normal (mantendo \(S = 0\)). Apenas no exato movimento que deixaria pela primeira vez todas as pilhas restantes com tamanho \(1\) é que se altera a jogada para deixar um número ímpar de pilhas de tamanho \(1\) (isto é, \(S = 1\))! Contudo, para jogos imparciais gerais sob a regra Misère, o Teorema de Sprague-Grundy entra em colapso total; somente no século XXI Thane Plambeck e Aaron Siegel desenvolveram a teoria dos quocientes Misère (Misère Quotients) baseada em monoides comutativos para analisar algebricamente esses jogos.
Tipo de Jogo / ConceitoEstrutura Matemática / InvarianteCondição Vencedora (Posição \(\mathcal{N}\))Complexidade e Status Teórico
Nim Padrão (Normal Play)Soma XOR bit a bit \(S = igoplus_{i=1}^k n_i\)$S
eq 0$\(O(k)\) operações de bits; base de todo jogo imparcial
Jogo de Subtração \(S=\{1,\dots,m\}\)Função de Grundy modular \(\mathcal{G}(n) = n mod (m+1)\)$n
ot\equiv 0 \pmod{m+1}$\(O(1)\); sequência \( ext{mex}\) periódica
Jogo de Kayles (divisão)\( ext{mex}\{\mathcal{G}(a) \oplus \mathcal{G}(b)\}\)$\mathcal{G}(n)
eq 0\( (período \)12\( a partir de \)n \ge 72$)\(O(n^2)\) por DP ou \(O(1)\) por periodicidade
Soma Disjuntiva de Jogos ImparciaisTeorema de Sprague-Grundy \(\mathcal{G}(\sum G_i) = igoplus \mathcal{G}(G_i)\)$igoplus_{i=1}^k \mathcal{G}(G_i)
eq 0$Isomorfo ao Nim e a espaços sobre \(\mathbb{F}_2\)
Nim Misère (último lance perde)Inversão de paridade apenas no final de pilhas de tamanho \(1\)$S
eq 0\( se \)\exists n_i > 1\(; \)S = 0\( se todos \)n_i = 1$Jogos Misère gerais exigem Quocientes Misère
\[ \mathcal{G}(G_1 + G_2 + \dots + G_k) = \mathcal{G}(G_1) \oplus \mathcal{G}(G_2) \oplus \dots \oplus \mathcal{G}(G_k) \]\[ \mathcal{G}(\text{Kayles}(n)) = \text{mex}\Big\{ \mathcal{G}(a) \oplus \mathcal{G}(b) \;\Big|\; a + b = n - 1 \text{ or } a + b = n - 2 \Big\} \]
comments powered by Disqus