The Comparison of Various Artificial Intelligence Types of Various Strengths
By: Michael J. Feinberg

Many different methods of Artificial Intelligence in games exist in todays 
world, such as a min-max search or goal-directed reasoning. By using a game 
that is less complex than chess, the standard game for testing AI's, I intend 
to compare various AI methods and their strengths in the game of Othello.

The beginning of a game.

Othello is a classic board game in which there are a limited set of possibilitie
s and minimal rules. This game is a simpler game to play than chess, as there 
are only two pieces, black and white. I intend to use various AI's to see 
which is dominant in the game of Othello. The scope of the project is limited 
to the types of AI's I am able to properly code within the time constraints of 
the project. My project will begin with a game of Othello coded C++. After 
writing Othello and checking that the rules are properly installed, various 
methods of appraising moves and board positions will be tested against one 
another and humans to compare the strengths and weaknesses of various AI types 
relative to others.

Midway through, O is beating X.

I initially created the program to be played by to human players to check that 
the rules were correct. Afterwards, I created a basic AI whose goal was to 
capture as many pieces as possible on a single turn. While this AI would take 
an early lead, it had no strategy and would quickly lose control in the endgame.
To create a stronger AI, I decided to use a min-max search. A min-max search 
works by evaluating the board, creating a score for the current position. 
After each possible position has been evaluated and put into a tree, the search
goes through the tree, trying to find a maximum score for one player and a 
minimum score for the other player. To facilitate a quicker writing of the code,
I started by creating a bastardized version of the min-max search, which 
evaluated each move rather than a board position. While the initial version 
worked much like the basic AI I created, the larger depths slowly provided more 
challenge. The first score goal was to capture as many pieces as possible. 
Currently, the scores takes into account corners and sides.

The final result: a draw.