# SP.268 – The Mathematics of Toys and Games

```SP.268 – The Mathematics of
Toys and Games
Class Overview
Instructors:

Jing Li (class of '11, course 14 and 18C)

Melissa Gymrek (class of '11, course 6 and 18)

Supervisor: Professor Erik Demaine (Theory of
Computation group at CSAIL)
Requirements:

Weekly attendance is mandatory!


Final projects
Topics

Theory of Impartial Games

Surreal Numbers

Linear Algebra and Monopoly

Algorithms/Complexity of Games

Dynamic Programming

Artificial Intelligence Topics

Rubik's Cube and Group Theory

Probability Topics

Games on Graphs

NP-complete games

Card Games

Constraint Logic Theory

Conway's Game of Life
Theory of Impartial Games
Much of the game theory we will talk about will involve
combinatorial games, which have the following properties:

There are two players

There is a finite set of positions available in the game

Players alternate turns

The game ends when a player can't make a move

The game eventually ends (not infinite)
Types of Games
Today's topic is impartial games:


The set of allowable moves depends only on the
positions of the game and not on which of the two
players is moving
Example impartial games: Jenga, Nim, sprouts,
green hackenbush
In partisan games, the available moves depend
on which player is moving. (GO, checkers, chess)
The Game of Nim


Much of the foundations for combinatorial
game theory came from analyzing the game
of Nim
Here we use Nim to learn about types of
game positions, nimbers, and to lead into an
important combinatorial game theory theorem
Nim: How to Play



The game begins with 3 (or n) piles, or nimheaps of stones (or coins, or popsicle
sticks...)
Players 1 and 2 alternate taking off any
number of stones from a pile until there are
no stones left.
In normal play, which is what we will look at,
the player to take a stone wins.
Example Game
Size of Heaps Moves
ABC
345
I take 2 from A
145
You take 3 from C
142
I take 1 from B
132
You take from B
122
I take entire A heap leaving two 2's
022
You take 1 from B
012
I take 1 from C leaving two 1's
011
You take 1 from B
001
I take entire C heap and win.
Can we find a winning strategy?



Yes! Nim has been solved for all starting
positions and any number of heaps.
(we will define what we mean by solution
more rigorously later)
We'll first do some work with game positions
and ”nimbers,” and then apply them to finding
a solution.
Types of impartial game positions
There are two types of positions in an impartial
game:

P Position: secures a win for the Previous player
(the one who just moved)


N Position: secures a win for the Next player


Example: a game of Nim with three heaps (1,1,0)
Example: a game of Nim with three heaps (0,0,1)
Terminal Position: a position with no more
available moves
Types of impartial game positions

To determine whether a Nim (or any other impartial game)
position is N or P, we work back words from the end of the
game to the beginning using backwards induction
1. Label every terminal position as P
2. Label every position that can reach a P position as N
3. For positions that only move to N positions, label as
P.
4. At this point either all positions are labeled, or return
to step 2 and repeat the process until all positions are
labeled.
Types of impartial game positions


For example, in Nim, the only terminal
position (in other games we might have
many) is (0,0,0).
Any position (0,0,n) must be an N position,
since the next player can just take the last
heap in the next turn.
Types of impartial game positions
Practice with N and P positions


Consider the Nim-like subtraction game in which you start
with a pile of chips (note here we have only a single pile),
and players alternate taking away either 1, 3 or 4 chips
from the pile. The player to take the last chip loses.
We see that 1, 3, and 4 must be N-positions, since the next
player can take all the chips. 0 must be a P-position, since
the player that last moved wins. 2 must be a P-position,
since the only legal move to 2 is from an N-position (2 can
move only to 1). Then 5 and 6 must be N positions since
they can be moved to 2... continue the analysis up to x =
14:
Practice with N and P positions
Finish the game configuration
assignments...
x
0
1
2
3
4
5
6
Pos
P
N
P
N
N
N
N
7
8
9
10
11
12
13
14
Practice with N and P positions
x
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Pos
P
N
P
N
N
N
N
P
N
P
N
N
N
N
P
Note: this sequence of Ns and Ps (PNPNNNN) continues forever. In fact,
almost all subtraction games have similar periodic sequences of N and P
values.
Nimber Arithmetic


The key operation we will use in our solution
to Nim will be nimber addition, which is just
binary addition without carrying. We can also
describe this as writing out the numbers to
add in binary, then XORing the numbers bit
by bit.
We denote the nim-sum operation by the
following symbol (but we'll usually just use a
”+” sign here):
8
8 =0
Binary logic refresher

Recall, to read/write numbers in binary:
The bits in a binary number represent powers
of 2:
0
1
0
1
1 = 2^3+2^1+2^0 = 11
2^4 2^3 2^2 2^1 2^0

XORing:
1+1 = 0, 1+0 = 1, 0 + 0 = 0
3
011
4
010
+5
100
+4
010
----------------------7
111
--------------------0
000
The Nim addition table
Solution to Nim



Now we can finally find the solution to Nim!
Notice that if we take the nim-sum of all the
nim-heaps, at the end of the game the nimsum will always be 0 (since we are adding
0+0+0).
But there are other points in the game when
the nim-sum will be 0, for intance (0,n,n),
since any n +n = 0.
Solution to Nim

Theorem: The winning strategy in normal play
Nim is to finish every move with a nim-sum of
0.
To prove this we will first prove two lemmas...
Solution to Nim


Lemma 1: If the nim-sum is 0 after a player's
turn, then the next move must change the
nim-sum to be nonzero.
Proof... (in lecture notes and given in class)
Solution to Nim


Lemma 2: It is always possible to make te
nim-sum 0 on your turn if it wasn't already 0
at the beginning of your turn.
Proof... (in lecture notes and given in class)
Solution to Nim

Proof of the original theorem:
If you start off by making your first move so that the nimsum is 0, then on each turn, by lemma 1, your opponent
has no choice but to disturb the sum and make it non-zero.
By lemma 2, you can always move to set it back to 0.
Eventually on your turn there will be no stones left and the
game will have a nim-sum of 0, and you will win! (If the
nim-sum starts at 0 and you go first, you must hope your
opponent messes up at some point, or else he has the
winning strategy...)
Solution to Nim

From our analysis above, we can see that
any nim position in which the nim-sum of the
heaps is 0 is a P-position, otherwise it is an
N-position.
Nim – Practical Strategy


Whenever possible, reduce the heaps to two non-zero
heaps containing the same number of coins each. This
obviously has a nim-sum of 0. Now just mimic your
opponent's move each time on the opposite heap to keep
the two heaps equal until you are able to take the final
coin.
Since doing binary addition is kind of hard in your head for
large numbers, an easier strategy is to try to always leave
even subpiles of the subpowers of 2, starting with the
largest power possible (essentially the same as binary
Variations on (disguises of) Nim
Why are these the same as Nim?


Poker Nim: Like regular Nim, but now a player can either
add more chips to a heap or subtract chips from heap
(known as bogus nim heaps). What is the winning
strategy?
Northcott's Game: checkerboard with one white and one
black checker on each row. Players alternate moving their
color checker piece any number of positions along a row
but may not jump over or onto another checker. Players
move until no one can make another move. (this game is
neither impartial nor finite but we can use our nim strategy)
Sprague-Grundy Theorem


Now we'll use Nim to help us derive the
fundamental theorem of impartial games, the
Sprague-Grundy Theorem.
We'll start by using graphs to describe
impartial game positions.
From Games to Graphs

Let a game consist of a graph G = (X,F) where:






X is the set of all possible game positions
F is a functions that gives for each x in X a subset of
possible x's to move to, called followers. If F(x) is empty,
the position x is terminal.
Start position is x0 in X. So player 1 moves first from x0.
Players alternate moves. A position x, the player chooses
from y in F(x).
The player confronted with the empty set F(x) loses.
We call our graph progressively bounded if from every start
position x0, every path has finite length. So the graph is finite
and acyclic.
From Games to Graphs

The following is an example of the graph for the
Subtraction Game that we saw before (starting with 10
coins in the heap. The person that makes the total number
of coins 0 on his or her turn wins.
The Sprague Grundy Function

The Sprague-Grundy function of a graph G
= (X,F) is a function g defined on X that takes
only non-negative integer values and is
computed as follows:
The Sprague-Grundy Function



In words, the Sprague-Grundy function (I'll
call it SG) is the smallest non-negative value
not found among the SG values of the
followers of x.
This is formally known as the mex function, or
Minimum Excluded Value.
Examples
mex({2,4,5,6}) = 0
mex({0,1,2,6}) = 3
The Sprague-Grundy Function


So we can rewrite the SG function as:
Notice this function is defined recursively. That is, the
definition of g(x) uses g itself. So we'll need some base
cases. Set all terminal nodes x to have g(x) = 0. Then any
nodes that have only terminal nodes as followers have g(x)
= 1. In this way we can work our way through the graph
until all nodes are assigned an SG value.
SG Function Example

Try assigning SG values to the graph below.
Start by assigning each node N or P:
SG Function Example

You should end up with the following:
SG Function Example

Now we can label all the SG values. Start with
the terminal positions set to 0. Any node
pointing to a terminal gets a 1. The node
pointing to only 0 and 1 should be labeled 2,
and so forth.
SG Function Example

You should end up with the following SG
assignments:
SG Function


Notice that all vertices that have an SG value
of 0 are P positions! All others are N.
It seems that a good strategy on such a
graph-game would be to move to a vertex
with g(x) = 0.
SG Example 2


Consider the ”21 subtraction game.” You and a friend start
with 21 coins, and then take turns taking up to 3 coins away
at a time. The person to take the last coin wins.
We can see that the position with 4 coins left is a P position.
The next player must reduce the pile to some number within
the range 1-3, and so the player after him can win. Below are
the SG values for this game:
x
0 1 2 3 4 5 6 …
g(x)
0 1 2 3 0 1 2 …
or in other words, g(x) = x mod 4.

For the game of Nim with one heap, the function is just g(x) =
x.



An advantage of using the SG function is that we can
break up games into smaller parts and add their graphs
together to make one big game.
We call this the disjunctive sum of two games.
To take the disjunctive sum of games G and H, players
can move on their turn in either the game G or the game
H, and the entire game is over when both G and H are at
terminal positions.

To sum the games G1 = (X1,F1), G2 =
(X2,F2), ....GN = (XN,FN),
G(X,f) = G1+G2+...+GN, where


X = X1 x X2 x … x XN (or the set of all n-tuples
such that xi in X for all i.
The maximum number of moves is the sum of the
maximum number of moves in each component
game.

Here is an example of adding two games on
graphs, G and H:
G
A
C
B
D
E
G+H
AE
H
CE
BE
AF
AG
F
G
DE
CF
BF
BG
DF
CG
DG
SG Theorem


If g_i is the Sprague-Grundy function of Gi, i =
1,2, .... n, then G = G1+.....+GN has SpragueGrundy function g(x1....xn) =
g1(x1)+g2(x2)+....+gn(xn)
Proof... (outlined here and shown in lecture
notes and in class)
SG Theorem

Let x = (x1, .... xn) be an arbitary point of X.
Let b = g1(x1)+...gn(xn). We are to show two
things for the function g(x1.... xn):



For every non-negative integer a < b, there is a
follower of (x1....xn) that has a g-value a.
No follower of (x1....xn) has g-value b.
Then the SG value of x, being the smallest
SG-value not assumed by one of its followers,
must be b.
Games to try

Variations on Nim

Green Hackenbush

Sprouts

more!