Game Trees

1 / 27

# Game Trees - PowerPoint PPT Presentation

Game Trees. Ryan Wilson. Chapter 6. Trees – A Review. Trees are a collection of nodes A Tree has a root node and zero or more sub-trees. Root Node. A. B. E. G. C. D. F. H. I. An Example Tree. Common Traversal Algorithm. Function TraverseTree( node ) visit( node )

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'Game Trees' - vega

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### Game Trees

Ryan Wilson

Chapter 6

Trees – A Review
• Trees are a collection of nodes
• A Tree has a root node and zero or more sub-trees

Root Node

A

B

E

G

C

D

F

H

I

An Example Tree

CommonTraversalAlgorithm

Function TraverseTree( node )

visit( node )

for each child of node

TraverseTree( child )

end for

End Function

TraverseTree( root )

Computer Games
• Problem: How do we make an intelligent opponent for a human player to compete against?
• One Possibility:
• Game Trees
Game Trees
• Treat each state of the game as a node in a tree
• Search the tree to find the best move

X

O

X

X

X

O

O

X

X

O

X

O

X

Game Trees
• 3 Components to Implementing a Game Tree:
• Tree Generator
• Position Evaluator
• Minimax Method

X

Position

Evaluator

O

O

X

X

X

X

O

O

O

X

X

0

X

O

X

X

X

O

X

O

X

X

1 = Computer Wins

0 = Draw

-1 = Human Wins

O

O

X

O

O

O

-1

1

REMEMBER!

Higher Score

is better for

the computer!

40

MAX

Computer’s Turn

40

20

MIN

Human’s Turn

40

30

60

20

Minimax - Computer

Function FindComputerMove(GameStateNode)

var bestValue

if( terminal )

return evaluate(GameStateNode)

for each child of GameStateNode

value = FindHumanMove(child)

if( value > bestValue )

bestValue = value

end for

End function

Minimax - Human

Function FindHumanMove(GameStateNode)

var bestValue

if( terminal )

return evaluate(GameStateNode)

for each child of GameStateNode

value = FindHumanMove(child)

if( value < bestValue )

bestValue = value

end for

End function

Demonstration
• Tic-Tac-Toe!
Conclusions
• In Tic-Tac-Toe, there’s only about 27 legal moves for the computer to consider
• But it’s still kind of slow…
• Almost 45 seconds to make the first move!
• Experts estimate 10100 legal moves in Chess!
• That’s approx. 2333 legal positions!
What can we do?
• Apply the position evaluator to non-terminal nodes
• Limit the depth of your search through the tree
• Have to estimate the value of a position
• Alpha-Beta Pruning
• “Trim” un-needed portions of the tree
• Transposition Tables
Alpha-Beta Pruning
• Don’t need to look at all subtrees of a given node if you can already know which one is best

Alpha-Pruning

REMEMBER!

Higher Score

is better for

the computer!

>40

MAX

Computer’s Turn

40

<20

MIN

Human’s Turn

40

30

60

20

Beta-Pruning

REMEMBER!

Higher Score

is better for

the computer!

<100

MIN

Human’s Turn

100

>120

MAX

Computer’s Turn

100

40

120

30

Demonstration
• Tic-Tac-Toe!
• With Alpha-Beta Pruning
Conclusions
• A definite improvement!
Transposition Tables
• In many games, there are multiple ways to arrive at the same board position…

O

O

X

X

X

X

O

O

X

X

X

X

Transposition Tables
• Once we’ve calculated the value of a given position, we save it in a table so it’s easy to look up.
• For each position in the tree, look that position up in the table, if it exists, return the value stored in the table.
Demonstration
• Tic-Tac-Toe!
• With Alpha-Beta Pruning
• With Transposition Tables
Conclusions
• Another improvement!
• First move only takes about 3 seconds (918 nodes)
• Almost ½ as many nodes!
Game Trees
• How-To of Game Trees
• Alpha-Beta Pruning
• Transposition Tables
References
• DewdneyThe New Turing Omnibus
• WeissAlgorithms, Data Structures, and Problem Solving with C++
• WeissData Structures & Algorithm Analysis in C++