slide 1
Game Playing
Part 2 Alpha-Beta Pruning
Yingyu Liang yliang@cs.wisc.edu Computer Sciences Department University of Wisconsin, Madison
[based on slides from A. Moore http://www.cs.cmu.edu/~awm/tutorials , C. Dyer, J. Skrentny, Jerry Zhu]
Game Playing Part 2 Alpha-Beta Pruning Yingyu Liang - - PowerPoint PPT Presentation
Game Playing Part 2 Alpha-Beta Pruning Yingyu Liang yliang@cs.wisc.edu Computer Sciences Department University of Wisconsin, Madison [based on slides from A. Moore http://www.cs.cmu.edu/~awm/tutorials , C. Dyer, J. Skrentny, Jerry Zhu] slide 1
slide 1
[based on slides from A. Moore http://www.cs.cmu.edu/~awm/tutorials , C. Dyer, J. Skrentny, Jerry Zhu]
slide 2
slide 3
S A 100 C 200 D
100
B E
120
F
20
G
slide 4
function Max-Value (s,α,β) inputs: s: current state in game, Max about to play α: best score (highest) for Max along path to s β: best score (lowest) for Min along path to s
if ( s is a terminal state ) then return ( terminal value of s ) else for each s’ in Succ(s) α := max( α , Min-value(s’,α,β)) if ( α ≥ β ) then return β /* alpha pruning */ return α
Starting from the root: Max-Value(root, -, +)
slide 5
function Max-Value (s,α,β) inputs: s: current state in game, Max about to play α: best score (highest) for Max along path to s β: best score (lowest) for Min along path to s
if ( s is a terminal state ) then return ( terminal value of s ) else for each s’ in Succ(s) α := max( α , Min-value(s’,α,β)) if ( α ≥ β ) then return β /* alpha pruning */ return α function Min-Value(s,α,β)
if ( s is a terminal state ) then return ( terminal value of s) else for each s’ in Succs(s) β := min( β , Max-value(s’,α,β)) if (α ≥ β ) then return α /* beta pruning */ return β
Starting from the root: Max-Value(root, -, +)
slide 6
S A 100 C 200 D
100
B E
120
F
20
G α=- β=+
slide 7
S A 100 C 200 D
100
B E
120
F
20
G α=- β=+ α=- β=+
slide 8
S A 100 C 200 D
100
B E
120
F
20
G α=- β=+ α=- β=200
slide 9
S A 100 C 200 D
100
B E
120
F
20
G α=- β=+ α=- β=100
slide 10
S A 100 C 200 D
100
B E
120
F
20
G α=100 β=+ α=- β=100
slide 11
S A 100 C 200 D
100
B E
120
F
20
G α=100 β=+ α=- β=100 α=100 β=+
slide 12
S A 100 C 200 D
100
B E
120
F
20
G α=100 β=+ α=- β=100 α=100 β=120
slide 13
S A 100 C 200 D
100
B E
120
F
20
G α=100 β=+ α=- β=100 α=100 β=20
slide 14
function Max-Value (s,α,β) inputs: s: current state in game, Max about to play α: best score (highest) for Max along path to s β: best score (lowest) for Min along path to s
if ( s is a terminal state ) then return ( terminal value of s ) else for each s’ in Succ(s) α := max( α , Min-value(s’,α,β)) if ( α ≥ β ) then return β /* alpha pruning */ return α function Min-Value(s,α,β)
if ( s is a terminal state ) then return ( terminal value of s) else for each s’ in Succs(s) β := min( β , Max-value(s’,α,β)) if (α ≥ β ) then return α /* beta pruning */ return β
Starting from the root: Max-Value(root, -, +)
slide 15
A B 20 D 20 E
C 25 F
G
25
H
S
slide 16
A B 20 D 20 E
C 25 F
G
25
H
S
α=- β=+
slide 17
A B 20 D 20 E
C 25 F
G
25
H
S
α=- β=+
slide 18
A B 20 D 20 E
C 25 F
G
25
H
S
α=- β=+
slide 19
A B 20 D 20 E
C 25 F
G
25
H
S
α=20 β=+
slide 20
A B 20 D 20 E
C 25 F
G
25
H
S
α=20 β=+
slide 21
A B 20 D 20 E
C 25 F
G
25
H
S
α=20 β=+
slide 22
A B 20 D 20 E
C 25 F
G
25
H
S
α=20 β=+
slide 23
A B 20 D 20 E
C 25 F
G
25
H
S
α=- β=20
slide 24
A B 20 D 20 E
C 25 F
G
25
H
S
α=- β=20
slide 25
A B 20 D 20 E
C 25 F
G
25
H
S
α=-20 β=20
slide 26
A B 20 D 20 E
C 25 F
G
25
H
S
α=25 β=20
slide 27
A A
α=-
O W
B N
4
F G
X
E D C R P
9
Q
S
3
T
5
U
V
K M H
3
I
8
J L
2
max
[Example from James Skrentny]
slide 28
B B
β = +
O W
N
4
F G
X
E D C R P
9
Q
S
3
T
5
U
V
K M H
3
I
8
J L
2
A
α =-
max min
[Example from James Skrentny]
slide 29
F F
α =-
O W
B
β = +
N
4
G
X
E D C R P
9
Q
S
3
T
5
U
V
K M H
3
I
8
J L
2
A
α =-
max min max
[Example from James Skrentny]
slide 30
[Example from James Skrentny]
O W
B
β = +
N
4
F
α =-
G
X
E D C R P
9
Q
S
3
T
5
U
V
K M H
3
I
8
J L
2
A
α =-
max N
4
min max
slide 31
[Example from James Skrentny]
F
α =-
F
α = 4
O W
B
β = +
N
4
G
X
E D C R P
9
Q
S
3
T
5
U
V
K M H
3
I
8
J L
2
A
α =-
max min max
updated
slide 32
[Example from James Skrentny]
O O
β = +
W
B
β = +
N
4
F
α = 4
G
X
E D C R P
9
Q
S
3
T
5
U
V
K M H
3
I
8
J L
2
A
α =-
max min max min
slide 33
[Example from James Skrentny]
O
β = +
W
B
β = +
N
4
F
α = 4
G
X
E D C R P
9
Q
S
3
T
5
U
K M H
3
I
8
J L
2
A
α =-
max min W
min V
slide 34
[Example from James Skrentny]
O
β = +
O
β =- 3
W
B
β = +
N
4
F
α = 4
G
X
E D C R P
9
Q
S
3
T
5
U
V
K M H
3
I
8
J L
2
A
α =-
max min max min
slide 35
[Example from James Skrentny]
O
β =- 3
W
B
β = +
N
4
F
α = 4
G
X
E D C R P
9
Q
S
3
T
5
U
V
K M H
3
I
8
J L
2
A
α =-
max min max min X
Pruned!
slide 36
[Example from James Skrentny]
B
β = +
B
β = 4
O
β =- 3
W
N
4
F
α = 4
G
X
E D C R P
9
Q
S
3
T
5
U
V
K M H
3
I
8
J L
2
A
α =-
max min max min X
slide 37
[Example from James Skrentny]
O
β =- 3
W
B
β = 4
N
4
F
α = 4
G
X
E D C R P
9
Q
S
3
T
5
U
V
K M H
3
I
8
J L
2
A
α =-
max min max min X
G
slide 38
[Example from James Skrentny]
O
β =- 3
W
B
β =- 5
N
4
F
α = 4
G
X
E D C R P
9
Q
S
3
T
5
U
V
K M H
3
I
8
J L
2
A
α =-
max min max min X
G
slide 39
[Example from James Skrentny]
O
β =- 3
W
B
β =- 5
N
4
F
α = 4
X
E D C R P
9
Q
S
3
T
5
U
V
K M H
3
I
8
J L
2
max min max min X
A
α=-5
G
slide 40
[Example from James Skrentny]
C C
β = +
O
β =- 3
W
B
β =- 5
N
4
F
α = 4
G
X
E D R P
9
Q
S
3
T
5
U
V
K M H
3
I
8
J L
2
A
α =
max min max min X
A
α =- 5
slide 41
[Example from James Skrentny]
O
β =- 3
W
B
β =- 5
N
4
F
α = 4
G
X
E D C
β = +
R P
9
Q
S
3
T
5
U
V
K M H
3
I
8
J L
2
A
α =
max min max min X
A
α =- 5
H
3
slide 42
[Example from James Skrentny]
C
β = +
C
β = 3
O
β =- 3
W
B
β =- 5
N
4
F
α = 4
G
X
E D R P
9
Q
S
3
T
5
U
V
K M H
3
I
8
J L
2
A
α =
max min max min X
A
α =- 5
slide 43
[Example from James Skrentny]
O
β =- 3
W
B
β =- 5
N
4
F
α = 4
G
X
E D C
β = 3
R P
9
Q
S
3
T
5
U
V
K M H
3
I
8
J L
2
A
α =
max min max min X
A
α =- 5
I
8
slide 44
[Example from James Skrentny]
J J
α =- 5
O
β =- 3
W
B
β =- 5
N
4
F
α = 4
G
X
E D C
β = 3
R P
9
Q
S
3
T
5
U
V
K M H
3
I
8
L
2
A
α =
max min min X
A
α =- 5
slide 45
[Example from James Skrentny]
O
β =- 3
W
B
β =- 5
N
4
F
α = 4
G
X
E D C
β = 3
R P
9
Q
S
3
T
5
U
V
K M H
3
I
8
J
α =- 5
L
2
A
α =
max min max min X
A
α =- 5
P
9
slide 46
[Example from James Skrentny]
J
α =-
J
α = 9
O
β =- 3
W
B
β =- 5
N
4
F
α = 4
G
X
E D C
β = 3
R P
9
Q
S
3
T
5
U
V
K M H
3
I
8
L
2
A
α =
max min max min X
A
α =- 5
Q
R
slide 47
[Example from James Skrentny]
J
α =-
J
α = 9
O
β =- 3
W
B
β =- 5
N
4
F
α = 4
G
X
E D C
β = 3
R P
9
Q
S
3
T
5
U
V
K M H
3
I
8
L
2
A
α =
max min max min X
A
α = 3
Q
R
slide 48
[Example from James Skrentny]
O
β =- 3
W
B
β =- 5
N
4
F
α = 4
G
X
E D C
β = 3
R P
9
Q
S
3
T
5
U
V
K M H
3
I
8
J
α = 9
L
2
A
α =
max min max min X
A
α = 3
slide 49
[Example from James Skrentny]
O
β =- 3
W
B
β =- 5
N
4
F
α = 4
G
X
E
β = 2
D C
β = 3
R P
9
Q
S
3
T
5
U
V
K
α = 5
M H
3
I
8
J
α = 9
L
2
A
α =
max min max min X
A
α = 3
slide 50
[Example from James Skrentny]
O
β =- 3
W
B
β =- 5
N
4
F
α = 4
G
X
E
β = 2
D C
β = 3
R P
9
Q
S
3
T
5
U
V
K
α = 5
M H
3
I
8
J
α = 9
L
2
A
α =
max min max min X
A
α = 3
slide 51
square root of minimax’s cost.
about 6 with alpha-beta instead of 35-40 without.
E
β = 2
S
3
T
5
U
4
V
3
K
α = 5
M L
2
E
β = 2
S
3
T
5
U
4
V
3
K
α = 5
M
α = 4
L
2
E
β = 2
S
3
T
5
U
4
V
3
K M L
2
A
α = 3
A
α = 3
A
α = 3