Maven: World-Championship-Caliber Scrabble

# Maven: World-Championship-Caliber Scrabble

Télécharger la présentation

## Maven: World-Championship-Caliber Scrabble

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

1. Maven: World-Championship-Caliber Scrabble Tim Ott April 8th, 2005

2. Create words with the constraints of a crossword puzzle using the tiles on your rack Scores given based on letters used and placement of word Game ends when one player is out of tiles and there are none left to draw A bingo is when a player uses all 7 tiles in one turn (50 point bonus) 4 phases of human strategy Search for a bingo Search for hot spots Try to improve upon the result found Consider the rack leave Scrabble: Rules and Human Strategy

3. Overview of Maven • Vocabulary • Move generation • Simulation • Endgame • Pre-endgame

4. Move Generation – Appel and Jacobson • Directed Acyclic Word Graph (DAWG) for representation of dictionary • Construct a letter trie by subdividing list by the first letter. Search tree whose root node has 26 pointers. Continue recursively until every list has zero entries • Reduce all identical subtrees (“-s” ,”ing”, etc)

5. Move Generation – Appel and Jacobson • Algorithm • Scan the board for places where a word could connect to letters already on the board • Build up the word incrementally by using letters in the rack and on the board near the proposed attachment position • With the DAWG data structure, this search becomes one dimensional • Crosschecks – when making an across play, the newly placed tiles must also form down words with adjacent tiles. • This can be computed before the search and can be represented using bit vectors • Anchors – leftmost square for a new tile adjacent to a previous tile. • New Search Problem – Given a rack of tiles, the contents of a row, and the crosschecks and anchors of that row, compute all legal plays

6. Move Generation - Heuristics • Maven scores each move as it generates it • Then passed to a handler function where heuristics are applied for choosing a move • Each identifies up to 10 candidate moves • Merging results in 20-30 moves • Rack evaluation • Trade off between present and future scoring • Values for individual tiles, duplicates, triplicates, and QU • “Learned” which combinations affected the game • Also uses: tiles in bag vs. tiles on rack, vowel/consonant balance, U-With-Q-Unseen, and First-turn openness • Board evaluation • Neutral with one exception • Triple word squares • Table of penalties for opening triple word squares

7. Endgame • Begins when all the tiles are out of the bag • Game of perfect information • Must score, but more important to go out first • Use alpha beta search? No, too many drawbacks • Answer: B*

8. B* search • Adversarial search algorithm with two values at each node (optimistic, pessimistic) • Best move? The pessimistic value of an arc at the root must be no worse than the optimistic value of any of the other arcs at the root • Strategies from the root • Prove best – raise the lower bound of the most optimistic node so that it is not worse than the upper bound of any of its sibling nodes • Disprove rest – Lower the upper bounds of all nodes at depth 1 so none are better that the lower bound of the most optimistic node • Different than best first search: • Only interested in finding the best first step toward a goal. It is senseless to extend a branch the value of which is sufficient for the proof • Can choose a strategy whenever it is at the root.

9. B* Search 15,30 [-∞,∞] 22,25 15,30 [-∞,∞] 25,22 [30,15] 15 [22,8] 14 [19,10] 1 [22,8] [19,10] 1 2 [30,15] 23 [19,25] 22 [15,26] 3 2 [22,30] [8,15] [10,14] [26,22] [25,23] Prove Best Disprove Rest

10. Pre-Endgame • Begins when there are 9 tiles left in the bag • Goals • Obtain a good endgame • Avoid the Q • Block openings • Create chances for your own good plays • Probabilistic analysis • Weight likelihood of all possible racks an opponent could have • Search for plays that are not blocked by a certain move • Unclear benefits • Helps when Maven is ahead but not when Maven is behind