CP365 Artificial Intelligencecs.coloradocollege.edu/~mwhitehead/courses/2016_2017/CP365/Le… ·...
Transcript of CP365 Artificial Intelligencecs.coloradocollege.edu/~mwhitehead/courses/2016_2017/CP365/Le… ·...
CP365Artificial Intelligence
Tech News!
Samsung Note 7 recall over exploding batteries
Tech News!
Sony announces gold-plated audiophile Walkman for $3,200
Samsung Note 7 recall over exploding batteries
Genetic art?
Nim
Make k piles of any number of coins
Take turns taking any number (>0) of coins from a single pile
Player that takes the last coin wins
Nim Strategy?
Simple Nim
Make 2 piles of coins- One pile has a single coin- Other pile has two coins
Play a couple of rounds
Would you rather go first or second?
Nim Game Tree Pile #1 Pile #2
Take 1pile #1
Take 1pile #2
Take 2pile #2
Nim Game Tree Pile #1 Pile #2
Take 1pile #1
Take 1pile #2
Take 2pile #2
Take 1pile #2
Take 2pile #2
Take 1pile #2Take 1
pile #1
Take 1pile #1
Nim Game Tree Pile #1 Pile #2
Take 1pile #1
Take 1pile #2
Take 2pile #2
Take 1pile #2
Take 2pile #2
Take 1pile #2
Take 1pile #2Take 1
pile #1
Take 1pile #1
Take 1pile #2
Take 1pile #1
Nim Game Tree Pile #1 Pile #2
Take 1pile #1
Take 1pile #2
Take 2pile #2
Take 1pile #2
Take 2pile #2
Take 1pile #2
1
Take 1pile #2Take 1
pile #1
Take 1pile #1
Take 1pile #2
Take 1pile #1
Player1 wins
Nim Game Tree Pile #1 Pile #2
Take 1pile #1
Take 1pile #2
Take 2pile #2
Take 1pile #2
-1
Take 2pile #2
Take 1pile #2
1
Take 1pile #2Take 1
pile #1
Take 1pile #1
-1
Take 1pile #2
1
Take 1pile #1
1
All winning values in leaves
Nim Game Tree
1
Pile #1 Pile #2
Take 1pile #1
Take 1pile #2
Take 2pile #2
Take 1pile #2
-1
Take 2pile #2
Take 1pile #2
1
Take 1pile #2Take 1
pile #1
Take 1pile #1
-1
Take 1pile #2
1
Take 1pile #1
1
Propagate best moves up:Player1 does the
maximum value move
Nim Game Tree
1
-1
Pile #1 Pile #2
Take 1pile #1
Take 1pile #2
Take 2pile #2
Take 1pile #2
-1
Take 2pile #2
Take 1pile #2
1
Take 1pile #2Take 1
pile #1
Take 1pile #1
-1
Take 1pile #2
1
Take 1pile #1
1
Propagate best moves up:Player2 does the
minimum value move
Nim Game Tree
1
-1
Pile #1 Pile #2
Take 1pile #1
Take 1pile #2
Take 2pile #2
Take 1pile #2
-1
Take 2pile #2
Take 1pile #2
1
1
Take 1pile #2Take 1
pile #1
Take 1pile #1
-1
Take 1pile #2
1
Take 1pile #1
1
Propagate best moves up:Player1 does the
maximum value move
Nim Game Tree
1
-1
Pile #1 Pile #2
Take 1pile #1
Take 1pile #2
Take 2pile #2
Take 1pile #2
-1
Take 2pile #2
Take 1pile #2
1
1
Take 1pile #2
1
Take 1pile #1
Take 1pile #1
-1
Take 1pile #2
1
Take 1pile #1
1
Propagate best moves up:Player1 does the
maximum value move
Nim Game Tree
1
-1 1
Pile #1 Pile #2
Take 1pile #1
Take 1pile #2
Take 2pile #2
Take 1pile #2
-1
Take 2pile #2
Take 1pile #2
1
1
Take 1pile #2
1
Take 1pile #1
Take 1pile #1
-1
Take 1pile #2
1
Take 1pile #1
1
Propagate best moves up:Player2 does the
minimum value move
Nim Game Tree
1
-1 1 -1
Pile #1 Pile #2
Take 1pile #1
Take 1pile #2
Take 2pile #2
Take 1pile #2
-1
Take 2pile #2
Take 1pile #2
1
1
Take 1pile #2
1
Take 1pile #1
Take 1pile #1
-1
Take 1pile #2
1
Take 1pile #1
1
Propagate best moves up:Player2 does the
minimum value move
Nim Game Tree
1
1
-1 1 -1
Pile #1 Pile #2
Take 1pile #1
Take 1pile #2
Take 2pile #2
Take 1pile #2
-1
Take 2pile #2
Take 1pile #2
1
1
Take 1pile #2
1
Take 1pile #1
Take 1pile #1
-1
Take 1pile #2
1
Take 1pile #1
1
Propagate best moves up:Player1 does the
maximum value move
Nim Game Tree
1
1
-1 1 -1
Pile #1 Pile #2
Take 1pile #1
Take 1pile #2
Take 2pile #2
Take 1pile #2
-1
Take 2pile #2
Take 1pile #2
1
1
Take 1pile #2
1
Take 1pile #1
Take 1pile #1
-1
Take 1pile #2
1
Take 1pile #1
1
Value of the game tree:Player1 wins.
Minimax Algorithm
Each player should select the move that minimizes the other player's maximum (best) move
Problems with Minimax?
Our old friend: tree size
Let's minimax again...
Player2 wants a minimum value.
Player2 wants a minimum value.
Player2 wants a minimum value.
WAIT! 4 is less than Player1's other option of 5.
Player1 will always pick 5.
Since Player2 wants a minimum value, we know that C will be 4 or less
without checking G and H.
Prune away node C.
Don't bother checking any of its entire subtree!
Alpha-Beta Pruning Key Idea
If a player has a better move further up the tree than the best move further down, then prune!
Alpha-Beta Pruningalpha: maximizing player's best (highest) value yet seen
beta: minimizing player's best (lowest) value yet seen
Alpha-Beta Pruningalpha: maximizing player's best (highest) value yet seen
beta: minimizing player's best (lowest) value yet seen
Do DFS and when alpha gets bigger than beta, prune by ending that recursive path
Alpha-Beta Code
Othello Championships!