Alpha Beta Pruning

23
Alpha beta pruning •a – lower bound for max player (the highest minimum payoff) • Initialized as -inf • a is updated by max player (you want the highest lower bound) • a = max(a, utility) • max player looks at b to prune (when utility val is > b) •b – upper bound for min player (lowest maximum payoff) • Initialized as inf • b is updated by min player • a= min(b, utility) • min player looks at a to prune (when utility val is

description

Alpha Beta Pruning

Transcript of Alpha Beta Pruning

Page 1: Alpha Beta Pruning

Alpha beta pruning• a – lower bound for max player (the highest minimum payoff)• Initialized as -inf• a is updated by max player (you want the highest lower bound)

• a = max(a, utility)• max player looks at b to prune (when utility val is > b)

• b – upper bound for min player (lowest maximum payoff)• Initialized as inf• b is updated by min player

• a= min(b, utility)• min player looks at a to prune (when utility val is < a)

Page 2: Alpha Beta Pruning

84 -29 -37 -25 1 -43 -75 49 -21 -51 58 -46 -3 -13 26 79

a= -infb= inf

a= -infb= inf

a= -infb= inf

a= -infb= inf

0

0 0

0 0

0 0 0 0

0 0

0 0 0 0

Page 3: Alpha Beta Pruning

84 -29 -37 -25 1 -43 -75 49 -21 -51 58 -46 -3 -13 26 79

a= -infb= inf

a= -infb= inf

a= -infb= inf

a= -infb= 84

0

0 0

0 0

84 0 0 0

0 0

0 0 0 0b = min(inf, 84)

Page 4: Alpha Beta Pruning

84 -29 -37 -25 1 -43 -75 49 -21 -51 58 -46 -3 -13 26 79

a= -infb= inf

a= -infb= inf

a= -infb= inf

a= -infb= -29

0

0 0

0 0

-29 0 0 0

0 0

0 0 0 0b = min(84,-29)

Page 5: Alpha Beta Pruning

84 -29 -37 -25 1 -43 -75 49 -21 -51 58 -46 -3 -13 26 79

a= -infb= inf

a= -infb= inf

a= -29b= inf

a= -infb= 84

0

0 0

-29 0

-29 0 0 0

0 0

0 0 0 0

a=max(-inf,-29)

a= -29b= inf

Page 6: Alpha Beta Pruning

84 -29 -37 -25 1 -43 -75 49 -21 -51 58 -46 -3 -13 26 79

a= -infb= inf

a= -infb= inf

a= -29b= inf

a= -infb= 84

0

0 0

-29 0

-29 -37 0 0

0 0

0 0 0 0a= -29b= -37

b = min(inf,-37)

Page 7: Alpha Beta Pruning

84 -29 -37 -25 1 -43 -75 49 -21 -51 58 -46 -3 -13 26 79

a= -infb= inf

a= -infb= inf

a= -29b= inf

a= -infb= 84

0

0 0

-29 0

-29 -37 0 0

0 0

0 0 0 0a= -29b= -37

the lower bound (a) for the max node X is -29. That’s the least value that X will take. The upper bound (b) for the min node Y is -37, which means Y would take a value of -37 or lower. Since a > b, we know that X will take -29, and can ignore the subtree -25.

X

Y

Page 8: Alpha Beta Pruning

84 -29 -37 1 -43 -75 49 -21 -51 58 -46 -3 -13 26 79

a= -infb= inf

a= -infb= inf

a= -29b= inf

a= -infb= 84

0

0 0

-29 0

-29 -37 0 0

0 0

0 0 0 0a= -29b= -37

Since v is still -29,a=max(-29,v) = -29

Page 9: Alpha Beta Pruning

84 -29 -37 1 -43 -75 49 -21 -51 58 -46 -3 -13 26 79

a= -infb= inf

a= -infb= -29

a= -29b= inf

a= -infb= 84

0

-29 0

-29 0

-29 -37 0 0

0 0

0 0 0 0a= -29b= -37

b = min(inf,-29)

Page 10: Alpha Beta Pruning

84 -29 -37 1 -43 -75 49 -21 -51 58 -46 -3 -13 26 79

a= -infb= inf

a= -infb= -29

a= -29b= inf

a= -infb= 84

0

-29 0

-29 0

-29 -37 1 0

0 0

0 0 0 0a= -29b= -37

a= -infb= -29

a= -infb= -29

b = min(-29,1)

Page 11: Alpha Beta Pruning

84 -29 -37 1 -43 -75 49 -21 -51 58 -46 -3 -13 26 79

a= -infb= inf

a= -infb= -29

a= -29b= inf

a= -infb= 84

0

-29 0

-29 0

-29 -37 -43 0

0 0

0 0 0 0a= -29b= -37

a= -infb= -29

a= -infb= -43

b = min(-29,-43)

Page 12: Alpha Beta Pruning

84 -29 -37 1 -43 -75 49 -21 -51 58 -46 -3 -13 26 79

a= -infb= inf

a= -infb= -29

a= -29b= inf

a= -infb= 84

0

-29 0

-29 -43

-29 -37 -43 0

0 0

0 0 0 0a= -29b= -37

a= -43b= -29

a= -infb= -43

a=max(-inf,-43)

Page 13: Alpha Beta Pruning

84 -29 -37 1 -43 -75 49 -21 -51 58 -46 -3 -13 26 79

a= -infb= inf

a= -infb= -29

a= -29b= inf

a= -infb= 84

0

-29 0

-29 -43

-29 -37 -43 -75

0 0

0 0 0 0a= -29b= -37

a= -43b= -29

a= -infb= -43

a= -43b= -75

b = min(-29,-75)

Page 14: Alpha Beta Pruning

84 -29 -37 1 -43 -75 49 -21 -51 58 -46 -3 -13 26 79

a= -infb= inf

a= -infb= -29

a= -29b= inf

a= -infb= 84

0

-29 0

-29 -43

-29 -37 -43 -75

0 0

0 0 0 0a= -29b= -37

a= -43b= -29

a= -infb= -43

a= -43b= -75

a >b

Page 15: Alpha Beta Pruning

84 -29 -37 1 -43 -75 -21 -51 58 -46 -3 -13 26 79

a= -infb= inf

a= -infb= -43

a= -29b= inf

a= -infb= 84

0

-43 0

-29 -43

-29 -37 -43 -75

0 0

0 0 0 0a= -29b= -37

a= -43b= -29

a= -infb= -43

a= -43b= -75

b = min(-29,-43)

Page 16: Alpha Beta Pruning

84 -29 -37 1 -43 -75 -21 -51 58 -46 -3 -13 26 79

a= -43b= inf

a= -infb= -43

a= -29b= inf

a= -infb= 84

-43

-43 0

-29 -43

-29 -37 -43 -75

0 0

0 0 0 0a= -29b= -37

a= -43b= -29

a= -infb= -43

a= -43b= -75

a=max(-inf,-43)

Page 17: Alpha Beta Pruning

84 -29 -37 1 -43 -75 -21 -51 58 -46 -3 -13 26 79

a= -43b= inf

a= -infb= -43

a= -29b= inf

a= -infb= 84

-43

-43 0

-29 -43

-29 -37 -43 -75

0 0

-21 0 0 0a= -29b= -37

a= -43b= -29

a= -infb= -43

a= -43b= -75

a= -43b= inf

a= -43b= inf

a= -43b= -21

b = min(inf, -21)

Page 18: Alpha Beta Pruning

84 -29 -37 1 -43 -75 -21 -51 58 -46 -3 -13 26 79

a= -43b= inf

a= -infb= -43

a= -29b= inf

a= -infb= 84

-43

-43 0

-29 -43

-29 -37 -43 -75

0 0

-51 0 0 0a= -29b= -37

a= -43b= -29

a= -infb= -43

a= -43b= -75

a= -43b= inf

a= -43b= inf

a= -43b= -51

b = min(-21,-51)

Page 19: Alpha Beta Pruning

84 -29 -37 1 -43 -75 -21 -51 58 -46 -3 -13 26 79

a= -43b= inf

a= -infb= -43

a= -29b= inf

a= -infb= 84

-43

-43 0

-29 -43

-29 -37 -43 -75

-51 0

-51 0 0 0a= -29b= -37

a= -43b= -29

a= -infb= -43

a= -43b= -75

a= -43b= inf

a= -43b= inf

a= -43b= -51

a=max(-43,-51)

Page 20: Alpha Beta Pruning

84 -29 -37 1 -43 -75 -21 -51 58 -46 -3 -13 26 79

a= -43b= inf

a= -infb= -43

a= -29b= inf

a= -infb= 84

-43

-43 0

-29 -43

-29 -37 -43 -75

-51 0

-51 58 0 0a= -29b= -37

a= -43b= -29

a= -infb= -43

a= -43b= -75

a= -43b= inf

a= -43b= inf

a= -43b= -51

a= -43b= 58

b = min(inf,58)

Page 21: Alpha Beta Pruning

84 -29 -37 1 -43 -75 -21 -51 58 -46 -3 -13 26 79

a= -43b= inf

a= -infb= -43

a= -29b= inf

a= -infb= 84

-43

-43 0

-29 -43

-29 -37 -43 -75

-51 0

-51 -46 0 0a= -29b= -37

a= -43b= -29

a= -infb= -43

a= -43b= -75

a= -43b= inf

a= -43b= inf

a= -43b= -51

a= -43b= -46

b = min(58,-46)

Page 22: Alpha Beta Pruning

84 -29 -37 1 -43 -75 -21 -51 58 -46 -3 -13 26 79

a= -43b= inf

a= -infb= -43

a= -29b= inf

a= -infb= 84

-43

-43 0

-29 -43

-29 -37 -43 -75

-46 0

-51 -46 0 0a= -29b= -37

a= -43b= -29

a= -infb= -43

a= -43b= -75

a= -43b= inf

a= -43b= inf

a= -43b= -51

a= -43b= -46

a=max(-43,-46)

Page 23: Alpha Beta Pruning

84 -29 -37 1 -43 -75 -21 -51 58 -46 -3 -13 26 79

a= -43b= inf

a= -infb= -43

a= -29b= inf

a= -infb= 84

-43

-43 -46

-29 -43

-29 -37 -43 -75

-46 0

-51 -46 0 0a= -29b= -37

a= -43b= -29

a= -infb= -43

a= -43b= -75

a= -43b= -46

a= -43b= inf

a= -43b= -51

a= -43b= -46

a=max(-43,-46)

b = min(inf,-46)a >b