Professional Documents
Culture Documents
´ MiniMax Search
´ Alpha – beta pruning
3 Alpha-Beta Pruning
£ -1 ³ 3 A max level
min level
3 B £ -1 C D E
¬ Pruning
node C will not contribute its
-1
value to node A… so this part
of the tree can’t have any
effect on the value that will
be backed up to node A
6 Alpha-Beta Pruning Algorithm
´ α : lower bound on the final backed-up value.
´ β : upper bound on the final backed-up value.
´ Alpha pruning:
´ eg. if MAX node's α = 6, then the search can prune branches
from a MIN descendant that has a β <= 6.
´ if child β <= ancestor α à prune
max level
min level
10 Example: tic-tac-toe
max level
a=-∞ b=2
min level
value £ 2
e(n) = 2
11 Example: tic-tac-toe
max level
a=-∞ b=2 1
min level
value £ 2 1
e(n) = 2 e(n) = 1
12 Example: tic-tac-toe
a=1 b=+∞
max level
value ³ 1
e(n) = 2 e(n) = 1
13 Example: tic-tac-toe
a=1 b=+∞
max level value ³ 1
a=-∞ b=-1
a=-∞ b=-1
Max ≥3
≥6 =6
-------------------------------------------------------------------------------------------------------
Min ≤5 =3 ≤6ü =6 ≤5x
-------------------------------------------------------------------------------------------------------
Max ≥5 =5 =3 ≥6ü=6 =7 =5
-------------------------------------------------------------------------------------------------------
Min ≤5 =5 ≤7ü ≤4 =3 =6 ≤6x ≤6 =7 =5
≤4 x
--------------------------------------------------------------------------------------------------------
=5 =6 =7 =4 =3 =6 =6 =7 =5
16 Alpha – Beta Pruning Example 2
17 Alpha – Beta Pruning Example 3
18 Alpha – Beta Pruning Example 3
19 Alpha – Beta Pruning Example 3
<=4
a=-∞
β=4
20 Alpha – Beta Pruning Example 3
<=3
a=-∞
β=3
21 Alpha – Beta Pruning Example 3
<=3
a=-∞
β=3
22 Alpha – Beta Pruning Example 3
=3
a=-∞
β=3
23 Alpha – Beta Pruning Example 3
>=3
a=3
β=+∞
=3
a=-∞
β=3
24 Alpha – Beta Pruning Example 3
>=3
a=3
β=+∞
=3
25 Alpha – Beta Pruning Example 3
>=3
α=3
=3 <=2
β=3 β=2
26 Alpha – Beta Pruning Example 3
child β <= ancestor α à prune
>=3
a=3
β=+∞
=3 <=2
a=-∞
β=2
27 Alpha – Beta Pruning Example 3
=3
=3
28 Alpha – Beta Pruning Example 3
<=3
=3
=3
29 Alpha – Beta Pruning Example 3
<=3
=3
=3 <=4
30 Alpha – Beta Pruning Example 3
<=3
=3
=3 <=2
31 Alpha – Beta Pruning Example 3
<=3
=3
=3 =2
32 Alpha – Beta Pruning Example 3
<=3
=3 =2
=3 =2
33 Alpha – Beta Pruning Example 3
<=2
=3 =2
=3 =2
34 Alpha – Beta Pruning Example 3
<=2
=3 =2
=3 =2 <=5
35 Alpha – Beta Pruning Example 3
<=2
=3 =2
=3 =2 =4
36 Alpha – Beta Pruning Example 3
<=2
=3 =2 >=2
=3 =2 =4
37 Alpha – Beta Pruning Example 3
ancestor β <= child α à prune
<=2
=3 =2 >=4
=3 =2 =4
38 Alpha – Beta Pruning Example 3
=2
=3 =2
=3 =2 =4
39 Alpha – Beta Pruning Example 3
>= 2
=2
=3 =2
=3 =2 =4
40 Alpha – Beta Pruning Example 3
>= 2
=2
=3 =2
=3 =2 =4
41 Alpha – Beta Pruning Example 3
child β <= ancestor α à prune
>= 2
deep cut!
=2
=3 =2
=3 =2 =4 <=1
42 Alpha – Beta Pruning Example 3
child β <= ancestor α à prune
>= 2
<=1
=2
=3 =2
=3 =2 =4 <=1
43 Alpha – Beta Pruning Example 3
child β <= ancestor α à prune
>= 2
<=1
=2
=3 =2
=3 =2 =4 <=1
´ best ordering:
1. children of MIN : smallest node first
2. children of MAX: largest node first
47 Alpha-Beta: Best ordering
2 0
48 Alpha-Beta: Best ordering
2 0
2 3 7 0 3 3
49 Alpha-Beta: Best ordering
2 0
2 3 7 0 3 3
2 3 1 7 4 2 0 3 0 3 2 1
https://skatgame.net/mburo/log.html
(including source code)
52 Applications