### Final Project for AI

Oct 29, 2003

Here for your amusement, ridicule, or admiration is the first draft text of my final project proposal for my Artificial Intelligence class. Feel free to offer suggestions, poke fun, or correct my wretched grammar.

Begin
The intention of my final project and the subsequent presentation will be to illustrate the strength of genetic algorithm techniques for searching intractable problem sets. The problem in question is contrived, but is complex enough to be virtually insolvable by conventional search techniques.

The Problem

In order to properly demonstrate the usefulness of genetic algorithms, a problem had to be constructed that was both simple in design yet extremely complex to solve using conventional methods. The design that was created involves a simple game based loosely on Knuth’s PAC-world, which involves an adversarial relationship between two entities whose behavior is determined by fifty simple factors. These entities are pitted against one another in a fight for survival, the result of which is determined only by the subtle interactions between the fifty factors mentioned above. These entities will age, kill one another, give birth, and die of ‘old age’. The entity with the highest population at the end of a fixed amount of time will be declared to have the stronger attributes. The intractable nature of this scenario is in determining the proper combination of attributes that will create an entity capable of surviving against any opponent.

The Entities

The individual entities will each have fifty attributes that will determine their behavior when confronted with certain conditions within the game world.

1. Birth Factors (4 values)
a. These properties determine the behavior of a newly born entity into an empty cell in the world. An entity is born into an empty cell if another entity of the same family is facing that cell and is the stronger species. The Birth Factors determine how this new entity is born, that is, the attributes determine the direction that it will face given its parents age.
2. Replacement Factors (16 values)
a. When a cell in the world is occupied by an entity A and faced by a stronger enemy entity B, then the cell occupied by A is replaced by a newborn entity of type B. The Replacement Factors determine the direction that the newborn will be in given B’s age and the direction of the original A entity that was in the cell.
3. Edge Factors (3 values)
a. When a round ends, any entities facing the edge of the world will be turned according to the Edge Factors and age.
4. Empty Factors (3 values)
a. When a round ends, any entities facing an empty cell in the world and is not being attacked will be turned according to the Empty Factors and age.
5. Friendly Factors (12 values)
a. When a round end, any entities facing an entity of the same family will be turned according to its age and the age of the entity that it faces.
6. Enemy Factors (12 values)
a. When a round end, any entities facing an enemy entity will be turned according to its age and the age of the enemy that it faces.

The combination of all of the factors above coupled with the age of the individuals within the world work to create an incredibly complex problem fro determining powerful combinations of properties.

The Goal

Using the description above, I will attempt to design a genetic algorithm including an appropriate fitness function to attempt to find powerful combinations. This will be done by:
· Creating a strategy for pitting entity families against one another
· Determining the winners after a certain fixed number of rounds
· Combining strong attributes between families in order to attempt to create stronger decedents
· Introducing random mutations to avoid stagnation

The Implementation

The program to perform the project specifications will be written in Common Lisp.

-m