c sc 483 chess and ai: computation and...

22
C SC 483 Chess and AI: Computation and Cognition Lecture 10 October 29th

Upload: others

Post on 11-Aug-2020

3 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: C SC 483 Chess and AI: Computation and Cognitionelmo.sbs.arizona.edu/sandiway/CSC483/lecture10.pdf · 2016-01-11 · –Have different versions of the same chess program set for different

C SC 483Chess and AI: Computation

and CognitionLecture 10

October 29th

Page 2: C SC 483 Chess and AI: Computation and Cognitionelmo.sbs.arizona.edu/sandiway/CSC483/lecture10.pdf · 2016-01-11 · –Have different versions of the same chess program set for different

Game Tree[From the Handbook of AI (Barr & Feigenbaum 1981)]• Basic features of many games, e.g. chess, checkers, Go and

tic-tac-toe:– Two players– Players alternate in making moves– The possible legal moves are known in advance (there is no

element of chance)– Complete information (no hidden pieces)– Specified beginning state– Ends in win/lose/draw

• A complete game tree is a representation of all possible playsof such a game

Page 3: C SC 483 Chess and AI: Computation and Cognitionelmo.sbs.arizona.edu/sandiway/CSC483/lecture10.pdf · 2016-01-11 · –Have different versions of the same chess program set for different

Game Tree• A game tree has the following

components:– root node: initial state, first

player’s turn to move– successor nodes: states

reachable in one move startingfrom the root node for the firstplayer, then for the 2nd player, andso on...

– terminal nodes: a terminal staterepresents a win/loss or draw

– Note: tree does not have duplicatenodes (each possible positionrepresented once)

• Each path from the root to aterminal node gives a differentcomplete play of the game

• Complexity– State space complexity:

# of legal positionsreachable from the root

• tic-tac-toe: 5,748– Game tree complexity:

# of possible games = #terminal nodes

• tic-tac-toe: 255,168– game tree >> state

space• more than one way of

reaching the same legalposition

Page 4: C SC 483 Chess and AI: Computation and Cognitionelmo.sbs.arizona.edu/sandiway/CSC483/lecture10.pdf · 2016-01-11 · –Have different versions of the same chess program set for different

Game Tree• from

wikipedia:

Page 5: C SC 483 Chess and AI: Computation and Cognitionelmo.sbs.arizona.edu/sandiway/CSC483/lecture10.pdf · 2016-01-11 · –Have different versions of the same chess program set for different

Game Treechess:• state

spacecomplexity

• 1050

• gametreecomplexity

• 10123

Page 6: C SC 483 Chess and AI: Computation and Cognitionelmo.sbs.arizona.edu/sandiway/CSC483/lecture10.pdf · 2016-01-11 · –Have different versions of the same chess program set for different

Game Tree• Obviously (?)

we can’tcompute thecomplete gametree for chess

– means thegame is stillinteresting!

Checkers 'solved' after years of number crunching• 19:00 19 July 2007・ NewScientist.com news service・

Justin Mullins• The ancient game of checkers (or draughts) has been

pronounced dead. The game was killed by the publicationof a mathematical proof showing that draughts alwaysresults in a draw when neither player makes a mistake.For computer-game aficionados, the game is now"solved".

• Draughts is merely the latest in a steady stream of gamesto have been solved using computers, following gamessuch as Connect Four, which was solved more than 10years ago.

• The computer proof took Jonathan Schaeffer, acomputer-games expert at the University of Alberta inCanada, 18 years to complete and is one of the longestrunning computations in history.

Page 7: C SC 483 Chess and AI: Computation and Cognitionelmo.sbs.arizona.edu/sandiway/CSC483/lecture10.pdf · 2016-01-11 · –Have different versions of the same chess program set for different

Game Tree• The crucial part of Schaeffer's

computer proof involved playingout every possible endgameinvolving fewer than 10 pieces.

• The result is an endgamedatabase of 39 trillion positions.

• By contrast, there are only 19different opening moves indraughts.

• Schaeffer's proof shows that eachof these leads to a draw in theendgame database, providingneither player makes a mistake.

• Schaeffer was able to get hisresult by searching only a subsetof board positions rather than allof them, since some of them canbe considered equivalent.

• He carried out a mere 1014

calculations to complete the proofin under two decades.

• At its peak, Schaeffer had 200desktop computers working on theproblem full time, although in lateryears he reduced this to 50 or so.

• http://www.cs.ualberta.ca/~chinook/

Page 8: C SC 483 Chess and AI: Computation and Cognitionelmo.sbs.arizona.edu/sandiway/CSC483/lecture10.pdf · 2016-01-11 · –Have different versions of the same chess program set for different

Game Tree• For chess• http://www.cs.berkeley.edu/~flab/chess/statistics-games.html

Page 9: C SC 483 Chess and AI: Computation and Cognitionelmo.sbs.arizona.edu/sandiway/CSC483/lecture10.pdf · 2016-01-11 · –Have different versions of the same chess program set for different

Minimax Search

Example tree• Situation– two players: A and B– A to move (pick 2 or 3)– What should A pick?

Page 10: C SC 483 Chess and AI: Computation and Cognitionelmo.sbs.arizona.edu/sandiway/CSC483/lecture10.pdf · 2016-01-11 · –Have different versions of the same chess program set for different

Minimax Search

Example tree• Min/Maxcomputation– bottom-up– values:– win > draw > lose– A chooses the

maximum valuemove available

– B chooses theminimum valuemove available

win win lose

lose

draw win draw

draw

assumption: B is always going to make his best move

Page 11: C SC 483 Chess and AI: Computation and Cognitionelmo.sbs.arizona.edu/sandiway/CSC483/lecture10.pdf · 2016-01-11 · –Have different versions of the same chess program set for different

Negmax Search• negmax tree• Alternative but equivalent

formulation to minimax• (Knuth & Moore 1975):

– +1 = win, –1 = lose, 0 = draw– value at each node is the

value to the player whoseturn it is at that node

– F(n) = max {-F(n1),..,-F(nk)}– assuming node n has

children n1,..,nk

Page 12: C SC 483 Chess and AI: Computation and Cognitionelmo.sbs.arizona.edu/sandiway/CSC483/lecture10.pdf · 2016-01-11 · –Have different versions of the same chess program set for different

Iterative Deepening• since chess game tree is too

large and time is a factor in apractical game, iterativedeepening is used

• Idea:• generate each ply, i.e. level,

using your legal move generator• and apply static evaluation

function to compute bestpossible move

• Benefit: you always have thebest move (given ply depthcompleted so far) ready

• Node expansion: expandnodes at each ply, andreplace static value at eachnode with backed-up, i.e.bottom-up computed values,via minimax/negmaxcomputation

• Assumption: backed-upvalues from game treeexpansion are moreaccurate than staticevaluation function values

Page 13: C SC 483 Chess and AI: Computation and Cognitionelmo.sbs.arizona.edu/sandiway/CSC483/lecture10.pdf · 2016-01-11 · –Have different versions of the same chess program set for different

Alpha-Beta (α/β) Pruning

• There are situationswhere it’s not necessaryto expand certain nodesduring minimax/negmaxsearch

• Example: alpha (α) cutoff• minimax negmax

no point in expanding node 5

• Idea: at node 1 (looking to maximize)– α represents a lower bound cutoff– initially α = –∞– evaluate node 2, α = 15– evaluate node 4, value of node 3 is ≤ 10– (prune) cut off search

≤ 10

Page 14: C SC 483 Chess and AI: Computation and Cognitionelmo.sbs.arizona.edu/sandiway/CSC483/lecture10.pdf · 2016-01-11 · –Have different versions of the same chess program set for different

Alpha-Beta (α/β) Pruning• Idea: at node 2 (looking to

minimize)– β represents an upper bound

cutoff– initially, set β = +∞– evaluate node 4, β = 20– evaluate node 6, value of node

35 is ≥ 25– (prune) cut off search

• Example: beta (β) cutoff• minimax negmax

≥ 25

Note: effective α/β-pruning relies on setting agood threshold for α and β early – this meansordering, i.e. trying, the best moves first

Page 15: C SC 483 Chess and AI: Computation and Cognitionelmo.sbs.arizona.edu/sandiway/CSC483/lecture10.pdf · 2016-01-11 · –Have different versions of the same chess program set for different

Alpha-Beta (α/β) Pruning

• Pascal-style pseudo code (negmax formulation):

basically the same code is also given in http://www.frayn.net/beowulf/theory.html#analysis

Page 16: C SC 483 Chess and AI: Computation and Cognitionelmo.sbs.arizona.edu/sandiway/CSC483/lecture10.pdf · 2016-01-11 · –Have different versions of the same chess program set for different

Move Ordering• According to http://www.frayn.net/beowulf/theory.html#analysis

– Alpha-beta search effectively reduces thebranching factor at each node from 30-40 to about7 or 8 provided that you have a reasonably goodinitial move ordering routine.

– One usually considers captures first, followed bypawn pushes and checks, moves towards thecentre, and then the rest. This tends to put thebest move at or near the top of the list in themajority of cases.

Page 17: C SC 483 Chess and AI: Computation and Cognitionelmo.sbs.arizona.edu/sandiway/CSC483/lecture10.pdf · 2016-01-11 · –Have different versions of the same chess program set for different

Transposition Table

• Dynamic programming– Savings through memoization– Simply use a hash table of evaluated

positions (and their values), use thebitboard for fast position comparision(same position = same bitboard)

– Since there may be multiple paths to thesame position, each new position ischecked against the transposition table

Page 18: C SC 483 Chess and AI: Computation and Cognitionelmo.sbs.arizona.edu/sandiway/CSC483/lecture10.pdf · 2016-01-11 · –Have different versions of the same chess program set for different

Depth and Playing Strength• There’s an interesting discussion in

http://people.csail.mit.edu/heinz/dt/node49.html

• Basic idea:– Have different versions of the same chess program set for

different search depths play each other– Assuming enough games played (for results to be

statistically significant)• webpage indicates that not enough games were played in the

studies.– However, last study cited was 1997: Junghanns et al.– “The gain in playing strength averaged around 200 rating points per

ply of search.”

Page 19: C SC 483 Chess and AI: Computation and Cognitionelmo.sbs.arizona.edu/sandiway/CSC483/lecture10.pdf · 2016-01-11 · –Have different versions of the same chess program set for different

The Basics

• We’ve covered the basics of game treesearch (there is much more out there...)

• Your job (Task 5)– Implement minimax/negmax game tree

search with alpha/beta pruning– demos in 2 weeks?

Page 20: C SC 483 Chess and AI: Computation and Cognitionelmo.sbs.arizona.edu/sandiway/CSC483/lecture10.pdf · 2016-01-11 · –Have different versions of the same chess program set for different

Roadmap• Task 6

– your term project– go beyond the lectures in some aspect of your chess

program– e.g. opening book, endgame, better search, parallel search,

quiescent search, beam width manipulation, etc.– implement the improved algorithm– write up a report (5–10 pages)

• End of semester– submit your chess program– include instructions on how to run– submit your term project report

Page 21: C SC 483 Chess and AI: Computation and Cognitionelmo.sbs.arizona.edu/sandiway/CSC483/lecture10.pdf · 2016-01-11 · –Have different versions of the same chess program set for different

HOMEWORKLecture 10

• Read the References cited below.• Be ready for a “5 Minute Quiz” for the next

time that will extract questions from thosereferences.

Page 22: C SC 483 Chess and AI: Computation and Cognitionelmo.sbs.arizona.edu/sandiway/CSC483/lecture10.pdf · 2016-01-11 · –Have different versions of the same chess program set for different

CHEATING IN CHESSReferences.

1. http://blogs.britannica.com/blog/main/2006/11/how-to-cheat-at-chess/2. http://www.nytimes.com/2006/08/08/sports/othersports/08chess.html?partner=rssnyt&emc=rss3. http://chess.about.com/library/weekly/aa05f04.htm4. http://www.ishipress.com/awit-rex.htm5. http://mywebpages.comcast.net/danheisman/Articles/ZCheating_Chess.htm6. http://www.iht.com/articles/2006/08/08/news/web.0808cheat.php7. http://en.wikipedia.org/wiki/Cheating_in_chess8. http://gizmodo.com/gadgets/cellphones/cellphone+cheating-chess-player-earns-10+year-ban-224523.php9. http://www.geocities.com/Area51/Realm/8655/DoctorUnclear.htm10. http://eprint.iacr.org/2004/203.pdf11. http://www.chess.ac/help_category.php?faq=312. http://www.chessbase.com/newsdetail.asp?newsid=360513. http://www.geocities.com/area51/Realm/8655/ENGLISH/Main_ENG.htm14. http://news-info.wustl.edu/tips/page/normal/7935.html15. http://www.chess.com/forum/view/community/defining-cheating