qian_search - Chapter 2 Game Tree Searching and pruning In...

Info iconThis preview shows pages 1–2. Sign up to view the full content.

View Full Document Right Arrow Icon
Chapter 2 Game Tree Searching and pruning: In this chapter, we concentrate on game tree searching and pruning aspects. Section 2.1 presents background knowledge on game playing programs: how to build a game tree and how to decide the next move. In section 2.2, we further introduce the most successful refinement of minimax search—the alpha-beta algorithm. Section 2.3 is about some of the most important enhancements to alpha-beta algorithm based on following principles: move ordering, minimal window search, quiescence search and forward pruning. Then we conclude this chapter in Section 2.4. For more information about game tree searching and pruning, we refer to [11] . 2.1 Game trees and Minimax Search Almost all game playing programs use a game tree to represent positions and moves. Nodes represent game positions, and the root node corresponds to the current position of the game. The branches of a node represent the legal moves from the position represented by the node. A node is called a leaf if it doesn’t have a successor. Using the rules of the game, we can evaluate a leaf as a win, lose, draw, or a specific score. But unfortunately the whole game tree size is tremendously huge for almost all interesting games. For example, checkers is 20 10 , and chess is 40 10 . The total number of nodes in game tree is roughly D W , where W stands for the number of possible moves on average for each node, and D is the typical game length. For Amazons game, W is about 479 in randomized computer-game playing (Lida, 1999; Lida and Muller 2000) and D is around 80 [thesis S]. Therefore, no any practical algorithm can manage such a full tree due to lack of time. One solution of such games is to stop generating the tree at a fixed depth, d, and use an evaluation function to estimate the positions d moves ahead of the root. In this thesis, we will use the term ply, which was first introduced by Samuel [5] , to represent the depth of a game tree. The nodes at the deepest layer will be leaves. Typically, the value of a leaf, estimated by the evaluation function, is represented the number in proportion to the chance of winning the game. Game playing programs depend on game tree search to find the best move for the current position, assuming the best play of the opponent. In a two-person game, two players choose a legal move alternately, and both of them intuitively try to maximize their advantage. Because of this reason, finding the best move for a player must assume the opponent also plays his/her best moves. In other words, if the leaves are evaluated on the viewpoint of player A, player A will always play moves that maximize the value of the resulting position, while the opponent B plays moves that minimize the value of the resulting position. This gives us the MiniMax algorithm.
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Image of page 2
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 10/23/2011 for the course ENCS ENCS5 taught by Professor Abdelsalam during the Spring '10 term at Birzeit University.

Page1 / 12

qian_search - Chapter 2 Game Tree Searching and pruning In...

This preview shows document pages 1 - 2. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online