0% found this document useful (0 votes)
12 views77 pages

Alpha-Beta Pruning Explained

The document provides an overview of the Alpha-Beta pruning algorithm used in two-person perfect-information zero-sum games, detailing its definitions, tree node numbering, and mini-max formulation. It explains the algorithm's structure for maximizing and minimizing node values, including the Nega-max formulation and its implementation. Additionally, it discusses improvements through branch-and-bound techniques and the concept of alpha cut-off in the search process.

Uploaded by

iqrakalro5678
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views77 pages

Alpha-Beta Pruning Explained

The document provides an overview of the Alpha-Beta pruning algorithm used in two-person perfect-information zero-sum games, detailing its definitions, tree node numbering, and mini-max formulation. It explains the algorithm's structure for maximizing and minimizing node values, including the Nega-max formulation and its implementation. Additionally, it discusses improvements through branch-and-bound techniques and the concept of alpha cut-off in the search process.

Uploaded by

iqrakalro5678
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Alpha-Beta Pruning: Algorithm and Analysis

Tsan-sheng Hsu

tshsu@[Link]

[Link]

1
Introduction
Alpha-beta pruning is the standard searching procedure used for
solving 2-person perfect-information zero sum games exactly.
Definitions:
• A position p.
• The value of a position p, f (p), is a numerical value computed from
evaluating p.
. Value is computed from the root player’s point of view.
. Positive values mean in favor of the root player.
. Negative values mean in favor of the opponent.
. Since it is a zero sum game, thus from the opponent’s point of view,
the value can be assigned −f (p).
• A terminal position: a position whose value can be decided.
. A position where win/loss/draw can be concluded.
. A position where some constraints, e.g., time limit and depth limit, are
met.
• A position p has b legal moves p1, p2, . . . , pb.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 2


Tree node numbering

1 2 3

1.1 1.2 1.3 2.1 2.2 3.1 3.2

3.1.1 3.1.2

From the root, number a node in a search tree by a sequence


of integers a1.a2.a3.a4 · · ·
• Meaning from the root, you first take the a1th branch, then the a2th
branch, and then the a3th branch, and then the a4th branch · · ·
• The root is specified as an empty sequence.
• The depth of a node is the length of the sequence of integers specifying
it.
This is called “Dewey decimal system.”

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 3


Mini-max formulation
max

min

max
1 5 6 7 2 7

min
1 8

Mini-max formulation:
• 
f (p) if b = 0
F 0(p) = 0 0
max{G (p1), . . . , G (pb)} if b > 0
• 
f (p) if b = 0
G0(p) =
min{F 0(p1), . . . , F 0(pb)} if b > 0
• An indirect recursive formula with a bottom-up evaluation!
• Equivalent to AND-OR logic.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 4


Mini-max formulation
max

min
1
2

max
1 5 6 7 2 8 7

min
1 8

Mini-max formulation:
• 
f (p) if b = 0
F 0(p) = 0 0
max{G (p1), . . . , G (pb)} if b > 0
• 
f (p) if b = 0
G0(p) =
min{F 0(p1), . . . , F 0(pb)} if b > 0
• An indirect recursive formula with a bottom-up evaluation!
• Equivalent to AND-OR logic.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 5


Mini-max formulation
max

min
1
2 7

max
1 5 6 7 2 8 7

min
1 8

Mini-max formulation:
• 
f (p) if b = 0
F 0(p) = 0 0
max{G (p1), . . . , G (pb)} if b > 0
• 
f (p) if b = 0
G0(p) =
min{F 0(p1), . . . , F 0(pb)} if b > 0
• An indirect recursive formula with a bottom-up evaluation!
• Equivalent to AND-OR logic.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 6


Mini-max formulation
max
7

min
1
2 7

max
1 5 6 7 2 8 7

min
1 8

Mini-max formulation:
• 
f (p) if b = 0
F 0(p) = 0 0
max{G (p1), . . . , G (pb)} if b > 0
• 
f (p) if b = 0
G0(p) =
min{F 0(p1), . . . , F 0(pb)} if b > 0
• An indirect recursive formula with a bottom-up evaluation!
• Equivalent to AND-OR logic.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 7


Algorithm: Mini-max
Algorithm F 0(position p) // max node
• determine the successor positions p1, . . . , pb
• if b = 0, then return f (p) else begin
. m := −∞
. for i := 1 to b do
. t := G0(pi)
. if t > m then m := t // find max value
• end;
• return m
Algorithm G0(position p) // min node
• determine the successor positions p1, . . . , pb
• if b = 0, then return f (p) else begin
. m := ∞
. for i := 1 to b do
. t := F 0(pi)
. if t < m then m := t // find min value
• end;
• return m

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 8


Mini-max: comments
A brute-force method to try all possibilities!
• May visit a position many times.
Depth-first search
• Move ordering is according to order the successor positions are gener-
ated.
• Bottom-up evaluation.
• Post-ordering traversal.
Q:
• Iterative deepening?
• BFS?
• Other types of searching?

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 9


Mini-max: revised (1/2)
Search a max-node position p with a depth of depth.
Algorithm F 0(position p, integer depth) // max node
• determine the successor positions p1, . . . , pb
• if b = 0 // a terminal node
or depth = 0 // remaining depth to search
or time is running up // from timing control
or some other constraints are met // add knowledge here
then return f (p)// current board value
else begin
. m := −∞ // initial value
. for i := 1 to b do // try each child
. begin
. t := G0(pi, depth − 1)
. if t > m then m := t // find max value
. end
end
• return m

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 10


Mini-max: revised (2/2)
Search a min-node position p with a depth of depth.
Algorithm G0(position p, integer depth) // min node
• determine the successor positions p1, . . . , pb
• if b = 0 // a terminal node
or depth = 0 // remaining depth to search
or time is running up // from timing control
or some other constraints are met // add knowledge here
then return f (p)// current board value
else begin
. m := ∞ // initial value
. for i := 1 to b do // try each child
. begin
. t := F 0(pi, depth − 1)
. if t < m then m := t // find min value
. end
end
• return m

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 11


Nega-max formulation
max

min

max
1 5 6 7 2 7

min
−1 −8

Nega-max formulation:
Let F (p) be the greatest possible value achievable from position
p against the optimal defensive strategy.
• 
h(p) if b = 0
F (p) =
max{−F (p1), . . . , −F (pb)} if b > 0
. 
f (p) if depth of p is 0 or even
h(p) =
−f (p) if depth of p is odd
. h(p) is the position’s value from the point of view of the player of p.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 12


Nega-max formulation
max

min
−1
neg neg −2
neg neg neg
max
1 5 6 7 2 neg 8 neg 7

min
−1 −8

Nega-max formulation:
Let F (p) be the greatest possible value achievable from position
p against the optimal defensive strategy.
• 
h(p) if b = 0
F (p) =
max{−F (p1), . . . , −F (pb)} if b > 0
. 
f (p) if depth of p is 0 or even
h(p) =
−f (p) if depth of p is odd
. h(p) is the position’s value from the point of view of the player of p.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 13


Nega-max formulation
max

min
−1
neg −2
neg neg neg neg neg −7 neg
max
1 5 6 7 2 neg 8 neg 7

min
−1 −8

Nega-max formulation:
Let F (p) be the greatest possible value achievable from position
p against the optimal defensive strategy.
• 
h(p) if b = 0
F (p) =
max{−F (p1), . . . , −F (pb)} if b > 0
. 
f (p) if depth of p is 0 or even
h(p) =
−f (p) if depth of p is odd
. h(p) is the position’s value from the point of view of the player of p.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 14


Nega-max formulation
max
neg 7 neg neg

min
−1
neg −2
neg neg neg neg neg −7 neg
max
1 5 6 7 2 neg 8 neg 7

min
−1 −8

Nega-max formulation:
Let F (p) be the greatest possible value achievable from position
p against the optimal defensive strategy.
• 
h(p) if b = 0
F (p) =
max{−F (p1), . . . , −F (pb)} if b > 0
. 
f (p) if depth of p is 0 or even
h(p) =
−f (p) if depth of p is odd
. h(p) is the position’s value from the point of view of the player of p.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 15


Algorithm: Nega-max
Algorithm F (position p, integer depth)
• determine the successor positions p1, . . . , pb
• if b = 0 // a terminal node
or depth = 0 // remaining depth to search
or time is running up // from timing control
or some other constraints are met // add knowledge here
• then return h(p) else
• begin
. m := −∞
. for i := 1 to b do
. begin
. t := −F (pi, depth−1) // recursive call, the returned value is negated
. if t > m then m := t // always find a max value
. end
• end
• return m

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 16


Nega-max: comments
Another brute-force method to try all possibilities.
• Use h(p) instead of f (p).
. Zero-sum game: if one player thinks a position p has a value of w, then
the other player thinks it is −w.
. min{x, y, z} = −max{−x, −y, −z}.
. max{x, y, z} = −min{−x, −y, −z}.
• Watch out the code in dealing with search termination conditions.
. Reach a given searching depth.
. Timing control.
. Other constraints such as the score is good or bad enough.

Notations:
• F 0 means the Mini-max version.
. Need a G0 companion.
. Easy to explain.
• F means the Negamax version.
. Simpler code.
. Maybe difficult to explain.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 17


Intuition for improvements
Branch-and-bound: using information you have so far to cut or
prune branches.
• A branch is cut means we do not need to search it anymore.
• If you know for sure or almost sure the value of your result is more
than x
and the current search result for this branch so far can give you no
more than x,
. then there is no need to search this branch any further.

Two types of approaches


• Exact algorithms: through mathematical proof, it is guaranteed that
the branches pruned won’t contain the solution.
. Alpha-beta pruning: reinvented by several researchers in the 1950’s
and 1960’s.
. Scout.
. ···
• Approximated heuristics: with a high probability that the solution won’t
be contained in the branches pruned.
. Obtain a good estimation on the remaining cost.
. Cut a branch when it is in a very bad position and there is little hope
to gain back the advantage.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 18


Alpha cut-off
V>=15

1 2
V <= 10
V=15
2.1 2.2 cut
V=10

• On the max node which is the root:


. Assume you have finished exploring the branch at 1 and obtained the
best value from it as bound.
. You now search the branch at 2 by first searching the branch at 2.1.
. Assume branch at 2.1 returns a value that is ≤ bound.
. Then no need to evaluate the branch at 2.2 and all later branches of 2,
if any, at all.
. The best possible value for the branch at 2 must be ≤ bound.
. Hence we should take value returned from the branch at 1 as the best
possible solution.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 19


Beta cut-off

1 2
V<=8
1.1 1.2 V >= 13
V=8
cut
1.2.1 1.2.2
V=13

• On the min node 1:


. Assume you have finished exploring the branch at 1.1 and obtained the
best value from it as bound.
. You now search the branch at 1.2 by first exploring the branch at 1.2.1.
. Assume the branch at 1.2.1 returns a value that is ≥ bound.
. Then no need to evaluate the branch at 1.2.2 and all later branches of
1.2, if any, at all.
. The best possible value for the branch at 1.2 is ≥ bound.
. Hence we should take value returned from the branch at 1.1 as the best
possible solution.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 20


Deep alpha cut-off
For alpha cut-off:
. For a min node u, a branch of its ancestor (e.g., an elder brother of its parent)
produces a lower bound Vl .
. The first branch of u produces an upper bound Vu for v .
. If Vl ≥ Vu, then there is no need to evaluate the second branch and all later
branches, of u.

Deep alpha cut-off:


. Def: For a node u in a tree and a positive integer g , Ancestor(g , u) is the
direct ancestor of u by tracing the parent’s link g times.
. When the lower bound Vl is produced at and propagated from u’s great grand
parent, i.e., Ancestor(3,u), or any Ancestor(2i + 1,u), i ≥ 1.
. When an upper bound Vu is returned from the a branch of u and Vl ≥ Vu,
then there is no need to evaluate all later branches of u.

We can find similar properties for deep beta cut-off.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 21


Illustration — Deep alpha cut-off
V>=15

1 2
V=15
2.1 2.2
V>=15
2.1.1
V <= 7

[Link] [Link] cut


V=7

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 22


Ideas for refinements
During searching, maintain two values alpha and beta so that
• alpha is the current lower bound of the possible returned value;
. This means to say you know a way to achieve the value alpha.
• beta is the current upper bound of the possible returned value.
. This means to say your opponent knows a way to achieve a value of
beta.
• If alpha = beta, then we have found the solution.
If during searching, we know for sure alpha > beta, then there
is no need to search any more in this branch.
• The returned value cannot be in this branch.
• Backtrack until it is the case alpha ≤ beta.
The two values alpha and beta are called the ranges of the
current search window.
• These values are dynamic.
• Initially, alpha is −∞ and beta is ∞.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 23


Alpha-beta pruning algorithm: Mini-Max
Algorithm F 10(position p, value alpha, value beta) // max node
• determine the successor positions p1, . . . , pb
• if b = 0, then return f (p) else begin
. m := alpha
. for i := 1 to b do
. t := G10(pi, m, beta)
. if t > m then m := t // improve the current best value
. if m ≥ beta then return(beta) // beta cut off
• end; return m
0
Algorithm G1 (position p, value alpha, value beta) // min node
• determine the successor positions p1, . . . , pb
• if b = 0, then return f (p) else begin
. m := beta
. for i := 1 to b do
. t := F 10(pi, alpha, m)
. if t < m then m := t
. if m ≤ alpha then return(alpha) // alpha cut off
• end; return m

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 24


Example
Initial call: F 10(root,−∞,∞)
• m = −∞

• call G10(node 1,−∞,∞)


. it is a terminal node
. return value 15

• t = 15; V>=15
. since t > m, m is now 15
1 2
V <= 10
V=15
0
• call G1 (node 2,15,∞) 2.1 2.2 cut
. call F 10(node 2.1,15,∞) V=10

. it is a terminal node; return 10


. t = 10; since t < ∞, m is now 10
. alpha is 15, m is 10, so we have
an alpha cut off,
. no need to call
F 10(node 2.2,15,10)
. return 15
. ···

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 25


A complete example
max

min

max
7 2 7 1 5 6
min

8 1

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 26


A complete example
max

min

max
7 2 7 1 5 6
min

8 1

The solution is the same with or without the cut.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 27


Alpha-beta pruning algorithm: Nega-max
Algorithm F 1(position p, value alpha, value beta, integer depth)
• determine the successor positions p1, . . . , pb
• if b = 0 // a terminal node
or depth = 0 // remaining depth to search
or time is running up // from timing control
or some other constraints are met // add knowledge here
• then return h(p) else
• begin
. m := alpha
. for i := 1 to b do
. begin
. t := −F 1(pi, −beta, −m, depth − 1)
. if t > m then m := t
. if m ≥ beta then return(beta) // cut off
. end
• end
• return m

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 28


Examples (1/4)
max

min

max
7 2 7 1 5 6
min

8 1

max

min

max
1 5 6 7 2 7

min
1 8

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 29


Examples (2/4)
max
7
min
7 2 1

max
7 8 2 7 1 5 6
min

8 1

max
7

min
1
2 7

max
1 5 6 7 2 8 7

min
1 8

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 30


Examples (3/4)
max

min

max
7 2 7 1 5 6
min

8 1

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 31


Examples (3/4)
max

min

max
7 2 7 1 5 6
min

8 1

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 32


Examples (4/4)
max

min

max
7 2 7 1 5 6
min

8 1

max

min

max
1 5 6 7 2 7

min
1 8

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 33


Lessons from the previous examples
It looks like for the same tree, different move orderings give
very different cut branches.
It looks like if a node can evaluate a child with the best possible
outcome earlier, then it has a chance to cut earlier.
• For a min node, this means to search the child branch that gives the
lowest value first.
• For a max node, this means to search the child branch that gives the
highest value first.
Comments:
• It is impossible to always know which best branch is; otherwise we do
not have to do a brute-force search.
• Q: In the best case scenario, how many nodes can be cut?

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 34


Analysis of a possible best case
Definitions:
• A path in a search tree is a sequence of numbers indicating the branches
selected in each level using the Dewey decimal system.
• A position is denoted as a path a1.a2. · · · .a` from the root.
• A position a1.a2. · · · .a` is critical if
. ai = 1 for all even values of i or
. ai = 1 for all odd values of i.
• Note: as a special case, the root is critical.
• Examples:
. [Link].2, [Link].1.2, [Link].[Link] and 1.1 are critical
. [Link].2 is not critical
• The number of 1’s in a path has little to do with whether it is critical
or not.
Q: Why does the root need to be critical?

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 35


Perfect-ordering tree
A perfect-ordering tree:

h(a1. · · · .a`) if a1. · · · .a` is a terminal
F (a1. · · · .a`) =
−F (a1. · · · .a`.1) otherwise

• The first successor of every non-terminal position gives the best possible
value.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 36


Theorem 1
Theorem 1: F 1 examines precisely the critical positions of a
perfect-ordering tree.
Proof sketch:
• Classify the critical positions, a.k.a. nodes, into different types.
. You must evaluate the first branch from the root to the bottom.
. Alpha cut off happens at odd-depth nodes as soon as the first branch
of this node is evaluated.
. Beta cut off happens at even-depth nodes as soon as the first branch of
this node is evaluated.
• For nodes of the same type, associate them with pruning of same
characteristics occurred.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 37


Types of nodes
Classification of critical positions a1.a2. · · · .aj . · · · .a` where j is
the least index, if exists, such that aj 6= 1 and ` is the last
index.
• j will be the anchor in the analysis.
• Def: let IS1(ai) be a boolean function so that it is 0 if it is not the
value 1 and it is 1 if it is.
. We call this IS1 parity of a number.
• If j exists and ` > j, then
. aj+1 = 1 because this position is critical and thus the IS1 parities of aj
and aj+1 are different.
• Since this position is critical, if aj 6= 1, then ah = 1 for any h such that
h − j is odd.
We now classify critical nodes into three types.
• Nodes of the same type share some common properties.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 38


Illustration — critical nodes
1 1 1 1 1 1 1 1 ... ?
* *
j l

1 1 1 :1

1 : not 1

* : any

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 39


Type 1 nodes
type 1: the root, or a node with all the ai are 1;
• This means j does not exist.
• Nodes on the leftmost branch.
• The leftmost child of a type 1 node except the root.

type 1

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 40


Type 2 nodes
Classification of critical positions a1.a2. · · · .aj . · · · .a` where j is
the least index such that aj 6= 1 and ` is the last index.
Type 2: ` − j is zero or even;
• type 2.1: ` − j = 0 which means ` = j.
. It is in the form of 1.1.1. · · · .1.1.1.a` and a` 6= 1.
. The non-leftmost children of a type 1 node.
• type 2.2: ` − j > 0 and is even.
. It is in the form of 1.1. · · · .[Link] .[Link]+2. · · · .a`−2.1.a`.
. Note, we have already defined 1.1. · · · .[Link] .[Link]+2. · · · .a`−2.1 to be a
type 3 node.
. All of the children of a type 3 node.

Q:
• Can a` be 1 or non-1 for a type 2 node?
• Can a` be 1 or non-1 for a type 2.1 node?
• Can a` be 1 or non-1 for a type 2.2 node?

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 41


Type 3 nodes
Classification of critical positions a1.a2. · · · .aj . · · · .a` where j is
the least index such that aj 6= 1 and ` is the last index.
Type 3: ` − j is odd;
• aj 6= 1 and ` − j is odd
. Since this position is critical, the IS1 parities of aj and a` are different.
=⇒ a` = 1
=⇒ aj+1 = 1
• It is in the form of
. 1.1. · · · .[Link] .[Link]+2.1. · · · .1.a`−1.1.
• The leftmost child of a type 2 node.
• type 3.1: ` − j = 1.
. It is of the form 1.1. · · · .[Link] .1
. The leftmost child of a type 2.1 node.
• type 3.2: ` − j > 1.
. It is of the form 1.1. · · · .[Link] .[Link]+2.1. · · · .1.a`−1.1
. The leftmost child of a type 2.2 node.

Q: Can a` be 1 or non-1 for a type 3 node?

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 42


Comments
Nodes of the same type have common properties.
These properties can be used in solving other problems.
• Example: Efficient parallelization of alpha-beta based searching algo-
rithms.
Main techniques used:
• You cannot have two consecutive non-1 numbers in the ID of a critical
node.
• For each non-1 number, any number appeared later and is odd distance
away must be 1.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 43


Type 2.1 nodes
Classification of critical positions a1.a2. · · · .aj . · · · .a` where j is
the least index such that aj 6= 1 and ` is the last index.
type 2: ` − j is zero or even;
• type 2.1: ` − j = 0.
. Then ` = j .
. It is in the form of 1.1.1. · · · .1.1.1.a` and a` 6= 1.
. The non-leftmost children of a type 1 node.

type 1

type 2.1

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 44


Type 3.1 nodes
Classification of critical positions a1.a2. · · · .aj . · · · .a` where j is
the least index such that aj 6= 1 and ` is the last index.
type 3: ` − j is odd;
• type 3.1: ` − j = 1.
. It is of the form 1.1. · · · .[Link] .1 and a` 6= 1.
. The leftmost child of a type 2.1 node.

type 1

type 2.1

type 3.1

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 45


Type 2.2 nodes
Classification of critical positions a1.a2. · · · .aj . · · · .a` where j is
the least index such that aj 6= 1 and ` is the last index.
type 2: ` − j is zero or even;
• type 2.2: ` − j > 0 and is even.
. The IS1 parties of aj and aj+1 are different.
=⇒ Since aj 6= 1, aj+1 = 1.
. (` − 1) − j is odd:
=⇒ The IS1 parties of a`−1 and aj are different.
=⇒ Since aj 6= 1, a`−1 = 1.
. It is in the form of 1.1. · · · .[Link] .[Link]+2. · · · .a`−2.1.a`.
. Note, we will show 1.1. · · · .[Link] .[Link]+2. · · · .a`−2.1 is a type 3 node
later.
. All of the children of a type 3 node.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 46


Illustration: Type 2.2 nodes
type 1

type 2.1

type 3.1

type 2.2

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 47


Type 3.2 nodes
Classification of critical positions a1.a2. · · · .aj . · · · .a` where j is
the least index such that aj 6= 1 and ` is the last index.
type 3: ` − j is odd;
• type 3.2: ` − j > 1.
. It is of the form 1.1. · · · .[Link] .[Link]+2.1. · · · .1.a`−1.1
. The leftmost child of a type 2.2 node.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 48


Illustration: Type 3.2 nodes
type 1

type 2.1

type 3.1

type 2.2

type 3.2

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 49


Illustration of all nodes
type 1

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 50


Illustration of all nodes
type 1

type 2.1

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 51


Illustration of all nodes
type 1

type 2.1

type 3.1

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 52


Illustration of all nodes
type 1

type 2.1

type 3.1

type 2.2

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 53


Illustration of all nodes
type 1

type 2.1

type 3.1

type 2.2

type 3.2

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 54


Illustration of all nodes
type 1

type 2.1

type 3.1

type 2.2

type 3.2

type 2.2

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 55


Theorem 1: Proof sketch
Properties (invariants)
• A type 1 position p is examined by calling F 1(p, −∞, ∞, depth)
. p’s first successor p1 is of type 1
. F (p) = −F (p1) 6= ±∞
. p’s other successors p2, . . . , pb are of type 2
. pi, i > 1, are examined by calling F 1(pi, −∞, F (p1), depth)
• A type 2 position p is examined by calling F 1(p, −∞, beta, depth) where
−∞ < beta ≤ F (p)
. p’s first successor p1 is of type 3
. F (p) = −F (p1)
. p’s other successors p2, . . . , pb are not examined
• A type 3 position p is examined by calling F 1(p, alpha, ∞, depth) where
∞ > alpha ≥ F (p)
. p’s successors p1, . . . , pb are of type 2
. they are examined by calling F 1(p1, −∞, −alpha, depth),
F 1(p2, −∞, − max{m1, alpha}, depth), . . . ,
F 1(pi, −∞, − max{mi−1, alpha}, depth)
where mi = F 1(pi, −∞, − max{mi−1, alpha}, depth)
Using an inductive argument to prove.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 56


Analysis: best case
Corollary 1: Assume each position has exactly b successors
• The number of positions examined by the alpha-beta procedure on
level i is exactly
bdi/2e + bbi/2c − 1.
Proof:
• There are bbi/2c sequences of the form a1. · · · .ai with 1 ≤ ai ≤ b for all
i such that ai = 1 for all odd values of i.
• There are bdi/2e sequences of the form a1. · · · .ai with 1 ≤ ai ≤ b for all
i such that ai = 1 for all even values of i.
• We subtract 1 for the sequence 1.1. · · · .1.1 which are counted twice.
Total number of nodes visited is
`
X
bdi/2e + bbi/2c − 1.
i=0

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 57


Analysis: average case
Assumptions: Let a random game tree be generated in such a
way that each position on level j has
• a probability qj of being nonterminal and
• an average of bj successors.
Properties of the above random game tree
• Expected number of positions on level ` is b0 × b1 × · · · × b`−1
• Expected number of positions on level ` examined by an alpha-beta
procedure assumed the random game tree is perfectly ordered is

b0q1b2q3 · · · b`−2q`−1 + q0b1q2b3 · · · q`−2b`−1 − q0q1 · · · q`−1if ` is even;

b0q1b2q3 · · · q`−2b`−1 + q0b1q2b3 · · · b`−2q`−1 − q0q1 · · · q`−1if ` is odd


Proof sketch:
• If x is the expected number of positions of a certain type on level j,
then x × bj is the expected number of successors of these positions,
and x × qj is the expected number of “numbered 1” successors.
• The above numbers equal to those of Corollary 1 when qj = 1 and
bj = b for 0 ≤ j < `.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 58


Perfect ordering is not always the best
Intuitively, we may “think” alpha-beta pruning would be most
effective when a game tree is perfectly ordered.
• That is, when the first successor of every position is the best possible
move.
• This is not always the case!

>=4 >=4

<=3
<=2 4

2 3 3

2 1
2 1

Truly optimum order of game trees traversal is not obvious.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 59


When is a branch pruned?
Assume a node r has two children u and v with u being visited
before v using some move ordering.
• Further assume u produced a new bound bound.
Assume node v has a child w.
• If the value new returned from w can cause a range conflict with bound,
then branches of v later than w are cut.
This means as long as the “relative” ordering of u and v are
good enough, then we can have some cut-off.
• There is no need for r to have the best move ordering.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 60


Theorem 2
Theorem 2: Alpha-beta pruning is optimum in the following
sense:
• Given any game tree and any algorithm which computes the value of
the root position, there is a way to permute the tree
. by reordering successor positions if necessary;
• so that every terminal position examined by the alpha-beta method
under this permutation is examined by the given algorithm.
• Furthermore if the value of the root is not ∞ or −∞, the alpha-beta
procedure examines precisely the positions which are critical under this
permutation.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 61


Variations of alpha-beta search
Initially, to search a tree with the root r by calling
F 1(r,−∞,+∞,depth).
• What does it mean to search a tree with the root r by calling
F 1(r,alpha,beta,depth)?
. To search the tree rooted at r requiring that the returned value to be
within alpha and beta.

In an alpha-beta search with a pre-assigned window [alpha, beta]:


• Failed-high means it returns a value that is larger than or equal to its
upper bound beta.
• Failed-low means it returns a value that is smaller than or equal to its
lower bound alpha.
Variations:
• Brute force Nega-Max version: F
. Always finds the correct answer according to the Nega-Max formula.
• Original alpha-beta cut (Nega-Max) version: F 1
• Fail hard alpha-beta cut (Nega-Max) version: F 2
• Fail soft alpha-beta cut (Nega-Max) version: F 3

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 62


Original version
Requiring alpha ≤ beta
Algorithm F 1(position p, value alpha, value beta, integer depth)
• determine the successor positions p1, . . . , pb
• if b = 0 // a terminal node
or depth = 0 // remaining depth to search
or time is running up // from timing control
or some other constraints are met // add knowledge here
• then return h(p) else
• begin
. m := alpha // hard initial value
. for i := 1 to b do
. begin
. t := −F 1(pi, −beta, −m, depth − 1)
. if t > m then m := t // the returned value is “used”
. if m ≥ beta then return(beta) // cut off and return the hard bound
. end
• end
• return m // if nothing over alpha, then alpha is returned

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 63


Properties and comments
Properties:
• Assumptions: (1) alpha < beta and (2) p is not a leaf.
• F 1(p, alpha, beta, depth) = alpha if F (p) ≤ alpha
• F 1(p, alpha, beta, depth) = F (p) if alpha < F (p) < beta
• F 1(p, alpha, beta, depth) = beta if F (p) ≥ beta
• F 1(p, −∞, +∞, depth) = F (p)
Comments:
• F 1(p, alpha, beta, depth): find the best possible value according to a
nega-max formula for the position p with the constraints that
. If F (p) ≤ alpha, then F 1(p, alpha, beta, depth) returns with the value
alpha from a terminal position whose value is ≤ alpha.
. If F (p) ≥ beta, then F 1(p, alpha, beta, depth) returns the value beta
from a terminal position whose value is ≥ beta.
• The meanings of alpha and beta during searching:
. For a max node: the current best value is at least alpha.
. For a min node: the current best value is at most beta.
• F 1 always finds a value that is within alpha and beta.
. The bounds are hard, i.e., cannot be violated.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 64


Original version: Example

bound return max{ 4000 ,200,v}


[4000,5000]

A
F1(W,−5000,−4000,d) return(−v)

return(−200)
W Q
F1(Q,−5000,−4000,d) −v
−200

As long as the value of the leaf node W is less than the current
alpha value, the returned value of A will be alpha.
If the value of the leaf node W is greater than the current beta
value, the returned value of A will be beta.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 65


Alpha-beta pruning algorithm: Fail hard
Algorithm F 20(position p, value alpha, value beta) // max node
• determine the successor positions p1, . . . , pb
• if b = 0, then return f (p) else begin
. m := alpha
. for i := 1 to b do
. t := G20(pi, m, beta)
. if t > m then m := t
. if m ≥ beta then return(m) // beta cut off, return m
• end; return m
0
Algorithm G2 (position p, value alpha, value beta) // min node
• determine the successor positions p1, . . . , pb
• if b = 0, then return f (p) else begin
. m := beta
. for i := 1 to b do
. t := F 20(pi, alpha, m)
. if t < m then m := t
. if m ≤ alpha then return(m) // alpha cut off, return m
• end; return m

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 66


Alpha-beta pruning algorithm: Fail hard
Algorithm F 2(position p, value alpha, value beta, integer depth)
• determine the successor positions p1, . . . , pb
• if b = 0 // a terminal node
or depth = 0 // remaining depth to search
or time is running up // from timing control
or some other constraints are met // add knowledge here
• then return h(p) else
• begin
. m := alpha
. for i := 1 to b do
. begin
. t := −F 2(pi, −beta, −m, depth − 1)
. if t > m then m := t
. if m ≥ beta then return(m) // cut off, return m that is ≥ beta
. end
• end
• return m

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 67


Properties and comments
Properties:
• Assumptions: (1) alpha < beta and (2) p is not a leaf.
• F 2(p, alpha, beta) = alpha if F (p) ≤ alpha
• F 2(p, alpha, beta) = F (p) if alpha < F (p) < beta
• F 2(p, alpha, beta) ≥ beta and F (p) ≥ F 2(p, alpha, beta) if F (p) ≥ beta
• F 2(p, −∞, +∞) = F (p)
Comments:
• F 2(p, alpha, beta): find the best possible value according to a nega-max
formula for the position p with the constraints that
. If F (p) ≤ alpha, then F 2(p, alpha, beta) returns with the value alpha
from a terminal position whose value is ≤ alpha.
. If F (p) ≥ beta, then F 2(p, alpha, beta) returns a value ≥ beta from a
terminal position whose value is ≥ beta.
• An intermediate version.
. The lower bound is hard, cannot be violated.
. Easier to find the branch where the returned value is coming from.
. Always return something better than expected, but never something
worse!!
• For historical reason [Fishburn 1983][Knuth & Moore 1975], this is
called fail hard.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 68


Example
Initial call: F 20(root,−∞,∞)
• m = −∞

• call G20(node 1,−∞,∞)


. it is a terminal node
. return value 15

• t = 15; V>=15
. since t > m, m is now 15
1 2
V <= 10
V=15
0
• call G2 (node 2,15,∞) 2.1 2.2 cut
. call F 20(node 2.1,15,∞) V=10

. it is a terminal node; return 10


. t = 10; since t < ∞, m is now 10
. alpha is 15, m is 10, so we have
an alpha cut off,
. no need to call
F 20(node 2.2,15,10)
. return 10
. ···

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 69


Fail soft version
Algorithm F 3(position p, value alpha, value beta, integer depth)
• determine the successor positions p1, . . . , pb
• if b = 0 // a terminal node
or depth = 0 // remaining depth to search
or time is running up // from timing control
or some other constraints are met // add knowledge here
• then return h(p) else
• begin
. m := −∞ // soft initial value
. for i := 1 to b do
. begin
. t := −F 3(pi, −beta, − max{m, alpha}, depth − 1)
. if t > m then m := t // the returned value is “used”
. if m ≥ beta then return(m) // cut off
. end
• end
• return m

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 70


Properties and comments
Properties:
• Assumptions (1) alpha < beta and (2) p is not a leaf
• F 3(p, alpha, beta, depth) ≤ alpha and F (p) ≤ F 3(p, alpha, beta, depth) if
F (p) ≤ alpha
• F 3(p, alpha, beta, depth) = F (p) if alpha < F (p) < beta
• F 3(p, alpha, beta, depth) ≥ beta and F (p) ≥ F 3(p, alpha, beta, depth) if
F (p) ≥ beta
• F 3(p, −∞, +∞, depth) = F (p)
F 3 finds a “better” value when the value is out of the search
window.
• Better means a tighter bound.
. The bounds are soft, i.e., can be violated.
• When it is failed-high, F 3 normally returns a value that is higher than
that of F 1 or F 2.
. Never higher than that of F !
• When it is failed-low, F 3 normally returns a value that is lower than
that of F 1 or F 2.
. Never lower than that of F !

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 71


Fail soft version: Example

bound return max{200,v}


[4000,5000]

A
F3(W,−5000,−4000,d) return(−v)

return(−200)
W Q
F3(Q,−5000,−4000,d)
−v
−200

Let the value of the leaf node W be u.


If u < alpha, then the returned value of A will be at least u.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 72


Comparisons between F 2 and F 3
Both versions find the corrected value v if v is within the
window [alpha, beta].
Both versions scan the same set of nodes during searching.
. If the returned value of a subtree is decided by a cut, then F 2 and F 3 return
the same value.

F 3 provides more information when the true value is out of the


pre-assigned search window.
• Can provide a feeling on how bad or good the game tree is.
• Use this “better” value to guide searching later on.
F 3 saves about 7% of time than that of F 2 when a transposition
table is used to save and re-use searched results [Fishburn
1983].
• A transposition table is a data structure to record the results of previous
searched results.
• The entries of a transposition table can be efficiently accessed, i.e.,
read and write, during searching.
• Need an efficient addressing scheme, e.g., hash, to translate between
a position and its address.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 73


F 2 and F 3: Example (1/2)
P1 P2
bound
bound [390,600]
[4000,5000]

W
Q
−200

Assume the node A can be reached from the starting position


using path P1 and path P2.
• If W is visited first along P1 with a bound of [4000, 5000], and returns
a value of 200, then
. the returned value of W , 200, is stored into the transposition table.
• If A is visited again along P2 with a bound of [390, 600], then a better
value of previously stored value of W helps to decide whether the
subtree rooted at W needs to be searched again.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 74


F 2 and F 3: Example (2/2)
P1 P2
bound
bound [390,600]
[4000,5000]

W
Q
−200

Fail soft version has a chance to record a better value to be


used later when this position is revisited.
• If A is visited again along P2 with a bound of [390, 600], then
. it does not need to be searched again, since the previous stored value
of W is −200.
• However, if the value of W is 450, then it needs to be searched again.
The fail hard version does not store the returned value of W
after its first visit since this value is less than alpha.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 75


Comments
For historical reason, comparisons are made between F 2 and
F 3, while we should compare F 1 and F 3.
• To me, F 1 fails really hard. F 2 is only an intermediate version!
What move ordering is good?
• It may not be good to search the best possible move first.
• It may be better to cut off a branch with more nodes first.
How about the case when the tree is not uniform?
What is the effect of using iterative-deepening alpha-beta cut
off?
How about the case for searching a game graph instead of a
game tree?
• Can some nodes be visited more than once?

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 76


References and further readings
* D. E. Knuth and R. W. Moore. An analysis of alpha-beta
pruning. Artificial Intelligence, 6:293–326, 1975.
* John P. Fishburn. Another optimization of alpha-beta search.
SIGART Bull., (84):37–38, 1983.
J. Pearl. The solution for the branching factor of the alpha-beta
pruning algorithm and its optimality. Communications of
ACM, 25(8):559–564, 1982.

TCG: α-β Pruning, 20191107, Tsan-sheng Hsu c 77

You might also like