69
Alpha-Beta Pruning in Chess Engines Division of Science and Mathematics University of Minnesota, Morris April 15 2017 Otto Marckel

April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Alpha-Beta Pruning in Chess Engines

Division of Science and Mathematics

University of Minnesota, Morris

April 15 2017

Otto Marckel

Page 2: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

1997: Kasparov vs Deep Blue

2

https://espnfivethirtyeight.files.wordpress.com/2014/10/51659306crop.jpg?w=1824

Page 3: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Outline● How Chess Engines think

● Search Trees

● Minimax

● Alpha-Beta

● Implementations in Chess Engines

● Enhancements

3

Page 4: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

How Chess Engines think

4

Page 5: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Ways to play chess● Analysis, strategy, experience

● Possible moves

● Look at possible moves and evaluate

● Look ahead as far as we can and evaluate

● Solving chess, brute force

Look ahead as far as we can and evaluate.

5

Solving chess, brute force .

Page 6: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Search Trees

6

Page 7: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Search Tree● The tree is created by each board state

one move apart

● Each node in a branch represents

alternating white and black moves

● V = c

1

f

1

+c

2

f

2

+...+c

n

f

n

● c

i

= value of one feature of the board

● f

i

= function for how important the c

i

is

7

Page 8: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Adversarial Search Trees● The adversarial search tree

consists of nodes which captures

all the possible moves in the game

● Each move is represented in terms

of loss and gain for one of the

players

● Move of Max player is a circle

● Move of Min player is a triangle

8

Page 9: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Adversarial Search Tree

● Used for multiple player

games

● Alternates who is making

a move

● Chess is a two-player,

zero-sum, perfect

information game

9

Page 10: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Minimax

10

Page 11: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Minimax● The minimax algorithm is a

decision rule used to minimize

the loss for the worst possible

case

● It returns the choice the

highest guaranteed value

without knowing the moves of

the other players

11

2 8 1 9

Page 12: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Minimax● Uses the adversarial search tree

● Space complexity of O(b

m

)

● b = max branching factor of the

search tree

● m = maximum depth of the search

space

● Chess is a finite game

12

Page 13: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

13

Page 14: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

14

Page 15: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

15

Page 16: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

16

Page 17: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

17

Page 18: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

18

Page 19: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

19

Page 20: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

20

Page 21: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

21

Page 22: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

22

Page 23: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

23

Page 24: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

24

Page 25: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

25

Page 26: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

26

Page 27: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

27

Page 28: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Alpha-Beta

28

Page 29: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Alpha-Beta● Alpha-Beta is an improvement of minimax

● It allows for faster pruning

● Space complexity of O(b

m/2

) in best case, O(b

m

) in worst case

● Alpha value: best value for current player found so far

● Beta value: best value for opponent found so far

29

Page 30: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

30

Page 31: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

α = -∞β = ∞

31

-∞

∞ ∞

Page 32: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

α = -∞β = ∞

32

-∞

∞ ∞

Page 33: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

α = -∞β = ∞

33

-∞

∞ ∞

Page 34: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

α = -∞β = 2

34

-∞

Page 35: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

α = -∞β = 2

35

-∞

Page 36: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

α = -∞β = 2

36

-∞

Page 37: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

α = 2β = 2

37

Page 38: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

α = 2β = ∞

38

Page 39: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

α = 2β = ∞

39

Page 40: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

α = 2β = 1

40

Page 41: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

α = 2β = 1

41

Page 42: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

α = 2β = 1

42

Page 43: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

α = 2β = 1

43

Page 44: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

44

Page 45: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Implementations in Chess Engines

45

Page 46: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

What do we need to make a chess engine● Board representation

● Evaluating position

● Alpha-Beta

● Enhancements

● Chess shortcuts and improvements

46

Page 47: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Board RepresentationPiece Centric

● Piece-Lists

● Piece-Sets

● Bitboards

Board Centric

● Mailbox

● 8x8 Board

● 10x12 Board

● 0x88

● Vector Attacks

47

Page 48: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Board RepresentationPiece Centric

● Piece-Lists

Lists of the pieces on the board

48

Page 49: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Board RepresentationPiece Centric

● Piece-Lists

● Piece-Sets

One bit for each piece inside a

32-bit word, similar to bitboards

49

Page 50: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Board RepresentationPiece Centric

● Piece-Lists

● Piece-Sets

● Bitboards

64 bit sets with one for each piece

50

Page 51: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Board RepresentationPiece Centric

● Piece-Lists

● Piece-Sets

● Bitboards

Board Centric

● Mailbox

Every square in a separately

addressable memory element

51

Page 52: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Board RepresentationPiece Centric

● Piece-Lists

● Piece-Sets

● Bitboards

Board Centric

● Mailbox

● 8x8 Board

A two-dimensional array

containing piece and empty square

codes

52

Page 53: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Board RepresentationPiece Centric

● Piece-Lists

● Piece-Sets

● Bitboards

Board Centric

● Mailbox

● 8x8 Board

● 10x12 Board

Similar to 8x8 with more squares

added to allow for knight jumps as

moves

53

Page 54: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Board RepresentationPiece Centric

● Piece-Lists

● Piece-Sets

● Bitboards

Board Centric

● Mailbox

● 8x8 Board

● 10x12 Board

● 0x88

This uses one nibble to index the

piece or empty square

54

Page 55: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Board RepresentationPiece Centric

● Piece-Lists

● Piece-Sets

● Bitboards

Board Centric

● Mailbox

● 8x8 Board

● 10x12 Board

● 0x88

55

Page 56: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Evaluating PositionHistorically uses an evaluation polynomial:

V = c

1

f

1

+c

2

f

2

+...+c

n

f

n

Recent advancements:

● Using Neural Networks for Evaluation K Greer 2013

● Better storage of board

56

Page 57: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Alpha-Beta● This is the best search method found so far K Greer 2013

● How deep to go:

○ Deep blue beat Kasparov with a search depth of 14-16

○ Computers would need a search depth of 19 to consistently beat the

current world champion

○ Modern computers search up to depth 35

● Move ordering, searching promising branches first

57

Page 58: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Average score over 200 games irrespective of color

58

The impact of search depth on chess playing strengthDiogo R. Ferreira ICGA 2013

Page 59: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

The impact of search depth on chess playing strengthDiogo R. Ferreira ICGA 2013

● Each move added or

removed significantly

changes engine strength

● Played using HOUDINI

1.5a 64-bit

● A search depth of 20 is

rated 2893.9, top human is

2838

59

Average w

in

p

ercen

tage

Search depth

Page 60: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

60

Enhancements

● Limiting search space

○ Starting with more promising

branches and going deeper in

these

Page 61: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Enhancements

● Limiting search space

● Iterative deepening

○ Starting the search shallow and

deepening

61

Page 62: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Enhancements

● Limiting search space

● Iterative deepening

● Parallel computing

○ Giving each branch to a separate

core to speed up the search

62

Page 63: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Enhancements

● Limiting search space

● Iterative deepening

● Parallel computing

● Uneven tree development

○ Chess is not the same depth

every option

63

Page 64: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Enhancements

● Limiting search space

● Iterative deepening

● Parallel computing

● Uneven tree development

64

Page 65: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Chess Shortcuts and Improvements● 3 parts of the game:

○ Opening

○ Middlegame

○ Endgame

● Principal Variation

○ A sequence of moves that

programs consider best and

expect to be played

65

Page 66: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Information and search in computer chess Alexandru Godescu, ETH Zurich 2011

● Humans look at certain

pieces first to find the

best moves

● Using information theory

we can choose better

nodes and depth to

search

● These two things are

proven to have very

similar results

66

No

des

Reduction of importance to information gaining moves

Decrease of importance of information moves vs plies

Page 67: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

● Humans look at certain

pieces first to find the

best moves

● Using information theory

we can choose better

nodes and depth to

search

● These two things are

proven to have very

similar results

67

No

des

Reduction of importance to information gaining moves

Decrease of importance of information moves

vs nodes increase

Information and search in computer chess Alexandru Godescu, ETH Zurich 2011

Page 68: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Conclusion● Current chess engines are beyond human players

● Recent advancements in Engines relate largely to improving

evaluation of the board

● Chess Engines use more than Alpha-Beta

● Alpha-Beta is the most effective method for chess and the

one used in the engines

68

Page 69: April 15 2017 University of Minnesota, Morris Division of ...Alpha-Beta Alpha-Beta is an improvement of minimax It allows for faster pruning Space complexity of O(bm/2) in best case,

Questions?

69

● K Greer, Tree Pruning for new

search techniques in computer

games, Advances in Artificial

Intelligence, 2013

● Alexandru Godescu, Information

and search in computer chess, ETH

Zurich, 2011

● Diogo R. Ferreira, The impact of

search depth on chess playing

strength, ICGA, 2013

● GMC Haworth, Á Rusz, Position

Criticality in Chess Endgames,

Advances in Computer Games,

2011