12 Game Trees - Backward Induction
# Zermelo's Algorithm
done ← leaves((S, E))
while done ≠ S:
next ← { s' ∈ S ∖ done | children(s', (S, E)) ⊆ done }
for s ∈ next:
i ← owner(s)
C ← children(s, (S, E))
O ← arg max_{s' ∈ C} uᵢ(s') # optimal choices
s'' ← any element of O
for j ∈ N:
uⱼ(s) ← uⱼ(s'') # back utilities up
done ← done ∪ {s} # we have processed s
Extensive form games are games that are played sequentially. It can be defined by
is the set of players
is a finite tree with vertex set , edge set , and root .
specifies the owner of each decision node
associates each edge with an action
is ’s utility function.
Zermelo’s Algorithm / backward induction can solve extensive form games
Is guaranteed to terminate
runs in time polynomial in the size of the game tree,
finds optimal strategies for both players
Example Centipede Game
Based on Zermelo’s Algorithm,
At , Player 2 chooses , since 4>3. effectively becomes the payoff (1, 4).
At , Player 1 chooses , since 2>1. effectively becomes the payoff (2, 2).
At , Player 2 chooses , since 3>2. effectively becomes the payoff (0, 3).
At , Plyaer 1 chooses , since 1>0. effectively becomes the payoff (1, 1).
Based on backward induction, when both players are perfectly rational
and can predict each other’s moves, Player 1 just chooses
and stops the game.
The paradox is that they could each have had a greater payoff of (3, 3)
if they trusted each other (deviating from the rational path) and played
all the way.