Using knowledge about the opponent in game-tree search

Ever since Shannon proposed his view on programming a computer to play chess, computer chess researchers have respected his basic assumptions. This thesis relaxes some of these assumptions, in particular the tenet that the two players should be assumed identical or similar. During at least part of any interesting game, one of the players (the 'agent') attempts to achieve a result larger than the game-theoretic value (e.g. tries to convert a drawn position into a win, or to salvage a loss). This is only possible if the opponent makes a game-theoretic mistake the agent can exploit. Hence the agent will try, based on knowledge of the opponent, to bring about a situation in which the likelihood that the latter commits an error is increased ('speculative play'). An error by the opponent may be due to (1) factors pertaining to the domain, (2) factors pertaining to the opponent, and (3) factors pertaining to the interaction of the opponent with the domain. This thesis investigates factors contributing to error both in the structure of game domains and in properties of the opponent's search strategy. The first part of the thesis considers properties of random games, as defined by their game graphs. The execution of the retrograde analysis algorithm for the solution of games imposes an implicit structure on the game. From this structure the thesis derives several interesting properties of random games, including difficulty-related characteristics. These properties are investigated both in an empirical analysis of actual random games and through a mathematical analysis of an approximate statistical model of random games. Several properties exhibited by both analyses are shown to be relevant, in fact explanatory, of properties of actual games. In the second part of the thesis, some properties defined in part I are discussed for the chess endgame of King and Queen vs. King and Rook (KQKR). Human play in KQKR is analyzed, and common heuristics evaluated. This information is used to construct a 'heuristic program' for database play, which is shown to induce an increased average error in human subjects in comparison to a standard database program. This result demonstrates feasibility and utility of speculative strategies in actual game playing situations.