Summary: | Creating programs that can play games such as chess, checkers, and
backgammon, at a high level has long been a challenge and benchmark
for AI. Computer game playing is arguably one of AI's biggest success stories. Several game playing systems developed in the past, such as Deep Blue, Chinook and TD-Gammon have demonstrated competitive play against the top human players. However, such systems are limited in that they play only one particular game and they typically must be supplied with game-specific knowledge. While their performance is impressive, it is difficult to determine if their success is due to generally applicable techniques or due to the human game analysis.
A general game player is an agent capable of taking as input a
description of a game's rules and proceeding to play without any
subsequent human input. In doing so, the agent, rather than the human designer, is responsible for the domain analysis. Developing such a system requires the integration of several AI components, including theorem proving, feature discovery, heuristic search, and machine
learning.
In the general game playing scenario, the player agent is supplied with a game's rules in a formal language, prior to match play. This thesis contributes a collection of general methods for analyzing these game descriptions to improve performance. Prior work on automated domain analysis has focused on generating heuristic evaluation functions for use in search. The thesis builds upon this work by introducing a novel feature generation method. Also, I introduce a method for generating and comparing simple evaluation functions based
on these features. I describe how more sophisticated evaluation
functions can be generated through learning. Finally, this thesis
demonstrates the utility of domain analysis in facilitating knowledge
transfer between games for improved learning speed. The contributions are fully implemented with empirical results in the general game playing system. === text
|