Calvin Hayes
September 21, 2005
Period 5

Project Proposal


I. Title
The Use of Genetic Algorithms in Machine Learning; Applications to Othello and Other Games


II. Problem Statement
The project will be to design a program that is capable of playing the board game Othello at a high level. This program will use genetic algorithms to determine weights for specific heuristic values that will decide the machine's line of play.


III. Purpose
Genetic algorithms are becoming more and more popular in the field of artificial intelligence as a way to search many different combinations of settings to find an optimal state. The results of the project can be used to determine how successful this particular algorithm is in setting reasonable heuristic weights that can be used by the computer to play Othello better than a program with these weights set arbitrarily. These results can potentially be generalized to other uses of this algorithm.


IV. Scope of Study
The eventual goal of this project is for the program to play Othello well. At the most basic level, the machine learning from the genetic algorithm should improve upon any arbitrarily set values for the weights of the heuristics. The program, however, would be a true success if it, using these weights and the heuristics that I have set up, could win games against most or all of the other common Othello programs, those that use a simple 'greedy' minimax search or basic weighted board squares. I would be truly satisfied if the program could beat me. To acheive these results, some knowledge of Othello strategy is necesary, to determine useful heuristics to be weighted. Additionally, other AI techniques, such as minimax trees and alpha-beta pruning will be neccesary to help the program run most effectively and efficiently. If I am immediately successful in working with Othello, I hope to extend these algorithms to other, more complicated games, and see the results there.


V. Background and Review of Current Literature/Research in This Area
Clearly the most successful use of artificial intelligence in game playing is Deep Blue, IBM's chess system that plays at the grandmaster level. Deep Blue, however, used data from many hard-coded games played previously by grandmasters to weight its heuristics, rather than 'learning' the optimal values on its own. Machines have also been 'taught' to play Go, Checkers, and Othello, among other games. Artifical Intelligence is also of unique value in modern video games. A genetic algorithm is used to search for an optimal state, composed of an array of individual values used to make decisions. In doing so, it compares the success of each state in acheiving the desired results. Those states that fare the worst are eliminated, and those states that fare the best are morphed together to form new states. Additionally, in a small percentage of cases, these newly formed states are 'mutated' by a small amount by changing one of the values. One can easily see the comparisons to evolution. In effect, this algorithm is simulating the process of Darwinian evolution to build an ideal compilation.


VI. Procedure and Methodology
In order to run the algorithm that I am researching, I will first need to build the environment for which it will run. I will use the Python programming language for these tasks, because it is easiest to code and read. The first environment that I will build to test the genetic algorithm is the 8-queens problem, where the computer will attempt to arrange 8 queens on a chessboard such that none attack each other. This is a good environment for which i can develop a good algorithm and check to see if it is successful. Ideally, I should be able to complete this first testing before November 1, 2005. At this point, I will begin to attack the Othello problem. I will first need to create the Othello environment for the machine to play in. Then I will need to implement the basic machine thinking so that it can play effectively with arbitrarily set heuristic weights. These basic Othello phases should be complete by December 1, 2005. I would now be able to initialize the basic genetic algorithm for testing. I will analyze the results to determine the following: the best form of genetic algorithm for helping the machine to learn the best weights, who or what is best to play against the machine so that it may train itself, and the best way to evaluate the play of each state of heuristic values. This last phase of the plan should be complete by February 15, 2006.


VII. Expected Results and Value to Others
I hope to create a machine that is an excellent player of Othello, by finding the state of heuristic weights that is most successful. Future programmers can learn from my project the potential successfulness of the genetic algorithm for determing optimal heuristic weights in a reasonable amount of time. I do not know at this time how I will track my results, because I do not know how successful my algorithms will be. If my algorithms are successful, I will be able to focus on the more complex aspects of my analysis, the differing forms of the algorithm and the way in which the machine is 'taught'. In my algorithms are unsuccessful, I will need to determine the reasons for their failure. I will chart my progress in a daily log.