mae 552 – heuristic optimization lecture 28 april 5, 2002 topic:chess programs utilizing tree...

26
MAE 552 – Heuristic Optimization Lecture 28 April 5, 2002 Topic:Chess Programs Utilizing Tree Searches

Post on 21-Dec-2015

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MAE 552 – Heuristic Optimization Lecture 28 April 5, 2002 Topic:Chess Programs Utilizing Tree Searches

MAE 552 – Heuristic Optimization

Lecture 28

April 5, 2002

Topic:Chess Programs Utilizing Tree Searches

Page 2: MAE 552 – Heuristic Optimization Lecture 28 April 5, 2002 Topic:Chess Programs Utilizing Tree Searches

The material in this lecture is from

www.howstuffworks.com

Page 3: MAE 552 – Heuristic Optimization Lecture 28 April 5, 2002 Topic:Chess Programs Utilizing Tree Searches

Tree Searches as Applied to Chess Programs

• How can a computer play chess?

• For many people that is a mind-boggling concept.

• Chess seems like a distinctly human activity requiring intelligence and thought, so how can a computer possibly do it?

• Today we will talk about how efficient tree searches are vital to a successful chess program

Page 4: MAE 552 – Heuristic Optimization Lecture 28 April 5, 2002 Topic:Chess Programs Utilizing Tree Searches

Tree Searches as Applied to Chess Programs

• How does a computer play chess???

• What you will find is that computers don't really "play" chess like people do. A computer that is playing chess is not "thinking.”

• It is calculating through a set of formulas that cause it to make good moves.

• As computers have gotten faster and faster, the quality of these calculated moves has gotten better and better.

Page 5: MAE 552 – Heuristic Optimization Lecture 28 April 5, 2002 Topic:Chess Programs Utilizing Tree Searches

Tree Searches as Applied to Chess Programs

• In 1997 a computer built by IBM, deep blue defeated Gary Kasparov the world champion is chess.

• Computers chess calculators are now the best chess players on the planet, even though they do it totally blindly!

Page 6: MAE 552 – Heuristic Optimization Lecture 28 April 5, 2002 Topic:Chess Programs Utilizing Tree Searches

How People Play Chess

• Computers chess calculators are now the best chess players on the planet, even though they do it totally blindly!

• If you have ever watched a person first learning to play chess, you know that a human chess player starts with very limited abilities.

• Once a player understands the basic rules that control each piece, he or she can "play" chess. However, the new player is not very good.

• Each early defeat comes as something of a surprise -- "Oh, I didn't think about that!" or "I didn't see that coming!" are common exclamations.

Page 7: MAE 552 – Heuristic Optimization Lecture 28 April 5, 2002 Topic:Chess Programs Utilizing Tree Searches

Tree Searches as Applied to Chess Programs

• The human mind absorbs these experiences, stores away different board configurations, discovers certain tricks and ploys, and generally soaks up the nuances of the game one move at a time.

• For a human being, therefore, the game of chess involves a great deal of high-level abstract thought -- visual pattern matching to recall board positions, rules and guidelines, conscious thought and even psychology!

• Computers do none of this...

• So how does a computer win at chess against the best human players???

Page 8: MAE 552 – Heuristic Optimization Lecture 28 April 5, 2002 Topic:Chess Programs Utilizing Tree Searches

Tree Searches as Applied to Chess Programs

• The current state-of-the-art in computer chess is fairly intricate, but all of it involves blind

computation that is very simple at the core. • Consider the start of game of chess…..

• Each player starts with 16 pieces

• Let's say that white starts. White has 20 possible moves:

• The white player can move any pawn forward one or two positions. (16 moves).

• The white player can move either knight in two different ways. (4 moves).

Page 9: MAE 552 – Heuristic Optimization Lecture 28 April 5, 2002 Topic:Chess Programs Utilizing Tree Searches

Initial Moves Possible for White Player

R K B Ki Q B K R

P P P P P P P P

P P P P P P P P

R K B Ki Q B K R

Page 10: MAE 552 – Heuristic Optimization Lecture 28 April 5, 2002 Topic:Chess Programs Utilizing Tree Searches

Tree Searches as Applied to Chess Programs

• The white player chooses one of those 20 moves and makes it.

• For the black player, the options are the same: 20 possible moves. So black chooses a move.

• Now white can move again. This next move depends on the first move that white chose to make, but there are about 20 or so moves white can make given the current board position, and then black has 20 or so moves it can make, and so on.

Page 11: MAE 552 – Heuristic Optimization Lecture 28 April 5, 2002 Topic:Chess Programs Utilizing Tree Searches

Tree Searches as Applied to Chess Programs

• This is how a computer looks at chess. It thinks about it in a world of "all possible moves," and it makes a big tree for all of those moves, like this:

Page 12: MAE 552 – Heuristic Optimization Lecture 28 April 5, 2002 Topic:Chess Programs Utilizing Tree Searches

Tree Searches as Applied to Chess Programs

Page 13: MAE 552 – Heuristic Optimization Lecture 28 April 5, 2002 Topic:Chess Programs Utilizing Tree Searches

Tree Searches as Applied to Chess Programs

• Let us determine how many possible moves are represented on each level.

• Initially white has 20 possible moves to make.

• Black has 20 moves possible for each moves that white could make - 20*20=400 possible moves.

• Then white has about 20 moves for each move black could make - 20*20*20=8000

• Then black has about 20 moves for each move black could make - 20*20*20*20=160,000

Page 14: MAE 552 – Heuristic Optimization Lecture 28 April 5, 2002 Topic:Chess Programs Utilizing Tree Searches

Tree Searches as Applied to Chess Programs

• If you were to fully develop the entire tree for all possible chess moves, the total number of board positions is about:

• 1,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000, or 10120, give or take a few.

Page 15: MAE 552 – Heuristic Optimization Lecture 28 April 5, 2002 Topic:Chess Programs Utilizing Tree Searches

Tree Searches as Applied to Chess Programs

• That's a very big number. – Consider there have only been 1026

nanoseconds since the Big Bang.

– There are thought to be only 1075 atoms in the entire universe.

– When you consider that the Milky Way galaxy contains billions of suns, and there are billions of galaxies, you can see that that's a whole lot of atoms.

– That number is dwarfed by the number of possible chess moves. Chess is a pretty intricate game!

Page 16: MAE 552 – Heuristic Optimization Lecture 28 April 5, 2002 Topic:Chess Programs Utilizing Tree Searches

Tree Searches as Applied to Chess Programs

• No computer is ever going to calculate the entire tree. What a chess computer tries to do is generate the board-position tree five or 10 or 20 moves into the future.

• Assuming that there are about 20 possible moves for any board position, a five-level tree contains 3,200,000 board positions.

• A 10-level tree contains about 10,000,000,000,000 (10 trillion) positions.

• The depth of the tree that a computer can calculate is controlled by the speed of the computer playing the game.

Page 17: MAE 552 – Heuristic Optimization Lecture 28 April 5, 2002 Topic:Chess Programs Utilizing Tree Searches

Tree Searches as Applied to Chess Programs

• Once it generates the tree, then the computer needs to "evaluate the board positions." That is, the computer has to look at the pieces on the board and decide whether that arrangement of pieces is "good" or "bad."

• The way it does this is by using an evaluation function. The simplest possible function might just count the number of pieces each side has.

• If the computer is playing white and a certain board position has 11 white pieces and nine black pieces, the simplest evaluation function might be: 11 - 9 = 2

Page 18: MAE 552 – Heuristic Optimization Lecture 28 April 5, 2002 Topic:Chess Programs Utilizing Tree Searches

Tree Searches as Applied to Chess Programs

• Obviously, for chess that formula is way too simple, because some pieces are more valuable than others.

• So the formula might apply a weight to each type of piece

Eval=w1*P1+w2*P2 ……..etc.

Page 19: MAE 552 – Heuristic Optimization Lecture 28 April 5, 2002 Topic:Chess Programs Utilizing Tree Searches

Tree Searches as Applied to Chess Programs

• As the programmer thinks about it, he or she makes the evaluation function more and more complicated by adding things like:

• board position

• control of the center

• vulnerability of the king to check

• vulnerability of the opponent's queen and tons of other parameters.

• No matter how complicated the function gets, however, it is condensed down to a single number that represents the "goodness" of that board position.

Page 20: MAE 552 – Heuristic Optimization Lecture 28 April 5, 2002 Topic:Chess Programs Utilizing Tree Searches

Tree Searches as Applied to Chess Programs

• Consider the following situation.

• The diagram shows a three-level tree that looks three moves ahead and has evaluated the value of the final board positions.

Page 21: MAE 552 – Heuristic Optimization Lecture 28 April 5, 2002 Topic:Chess Programs Utilizing Tree Searches

Tree Searches as Applied to Chess Programs

• The values of each board position indicate the utility for the white player (the computer).

• In this tree, white can make three possible moves. From each of those three possible moves, black can make three possible moves. From each of those nine board positions, white can make two possible moves.

Page 22: MAE 552 – Heuristic Optimization Lecture 28 April 5, 2002 Topic:Chess Programs Utilizing Tree Searches

Tree Searches as Applied to Chess Programs

• To decide what to do, the computer looks at this tree and works upward from the bottom. Its calculations are set up so that it finds the best board positions from each of the possible positions black will take (it takes the maximum):

Page 23: MAE 552 – Heuristic Optimization Lecture 28 April 5, 2002 Topic:Chess Programs Utilizing Tree Searches

Tree Searches as Applied to Chess Programs

• One level up, it assumes that black will choose the worst possible position for white (it takes the minimum):

Page 24: MAE 552 – Heuristic Optimization Lecture 28 April 5, 2002 Topic:Chess Programs Utilizing Tree Searches

Tree Searches as Applied to Chess Programs

• Finally, it takes the maximum of the top three numbers: 7.

That is the move the computer will make. • Once black makes its move, the computer goes through this

whole process again, generating a new tree and evaluating

all of the board positions to figure out its next move.

Page 25: MAE 552 – Heuristic Optimization Lecture 28 April 5, 2002 Topic:Chess Programs Utilizing Tree Searches

Tree Searches as Applied to Chess Programs

• In theory, the minimax algorithm allows one to play "perfect" chess; that is, the player always makes a winning move in a won position or a drawing move in a drawn position.

• Unfortunately, it is impossible to search the entire tree in a reasonable amount of time

• The computer can generally on look 5-10 moves ahead.

Page 26: MAE 552 – Heuristic Optimization Lecture 28 April 5, 2002 Topic:Chess Programs Utilizing Tree Searches

Tree Searches as Applied to Chess Programs

• Normally a variant of the A* algorithm is used to search the tree - the best potential moves are examined first.

• A method call alpha-beta pruning is used to reduce the size of the tree by getting rid of branches that are sub-optimal

• This can speed the search to a particular depth by as much as 50%.

• This is increase the number of moves a computer can look ahead.