CSE 6363 Fall 2000
Homework 5
Due: November 7, 2000, 5:30pm (November 9, 2000, 5:30pm for -10%)

A genetic algorithm package called GENESIS is available in the directory code/genesis in the class directory on gamma2. For this homework you will use GENESIS to learn a set of three rules to correctly classify the 14 instances from the golf domain. Specifically,

Read the GENESIS documentation in the file genesis.txt.

Design a representation for the individuals of the population, where each individual is an ordered set of three rules. Each rule consists of five genes: outlook, temperature, humidity, windy and the class attribute play. When matching an instance, the values for the outlook and windy genes must match the instance exactly, or be more general than the instance value. The values for temperature and humidity in the instance must be less than or equal to the values in the temperature and humidity genes. The first rule to match an instance is used to classify that instance. If none of the three rules of an individual match the instance, then the instance is considered misclassified.

Implement the eval() function that returns the number of errors made by the given rule set on the 14 golf examples. You do not have to read the examples from a file, but can hard-code them into the eval.c file in any format. You may also want to modify the Done() function in done.c to terminate upon reaching zero errors.

Run your genetic algorithm with the goal of finding a rule set that correctly classifies all 14 golf instances. You may need to try a variety of parameter settings.

Turn in a complete description of your solution, including a description of your representation, your source code for the eval() function and any other code written by you, the parameters and output of the best runs along with an English description of the best rule set found and its error on the 14 golf examples, and a discussion of your experience using a genetic algorithm to do concept learning.