CS724 program 8

NN or GA program

Build either a NN or a GA

Find an "interesting" problem to be solved either by a neural network (NN) or a genetic algorithm (GA). Implement a program to solve the problem using either the NN or GA system. Include with you turn in material: a description, in English, of your problem, listings of all the code and data files you created for the project, listings of output and a description in English of how to interpret the results and how good you did in solving the problem. The English descriptions should not be over a half a page to a page each. For the GA you also are to turn in a VRML visualization of the search. You can find the Genesis GA system on SOD ~juell/cs724pub/genesis You can run the SNNS system on SOD by issuing the command
xgui

There are some notes on running genesis. There also some notes on running SNNS.

There also some notes on the old NN system.


GA Program

To use the Genesis GA system, do the following. Create a directory called genesis. Copy the contents of ~juell/cs724pub/genesis/* to your genesis directory. Change directory to genesis. Type the command setup. For the questions "file name" and "suffix" type f1alt (F1ALT in lower case). For all of the other questions enter a carriage return. The carriage return causes it to use the specified default values. This will run the f1alt example. There are examples 1, 2, 3, 4 and 5. It is expected, that you will take f1alt and modify it so it solves your problem. The file f1alt.c contains two functions: doinit and eval. The function doinit is called once, at the start of processing and can be used to setup variables etc. The function eval has two parameter and returns a double floating point value. The two parameters are a pointer to a buffer and the length of the buffer in bytes. Each byte in the buffer represents one bit in the chromosome. The value returned by the function is the goodness metric for the chromosome represented by the buffer. Genesis does a valley decent, so the lowest possible metric value is the best answer.


BP NN Program

To use the PDP back propagation NN system, do the following. Create a directory called PDP. Copy the contents of ~juell/PDP to your PDP directory. Change directory to PDP. Type the commands:
  bp demo.tem demo.str
  ptrain
  quit
This will run the XOR example with 4 inputs, 10 hidden, and 4 outputs. The files in this space are:
  demo 		a program to create test pattern data (demo.pat)
  demo.c	source code for demo
  demo.net	network description
  demo.tem	display template description
  demo.pat	training patterns
  demo.str	start up file
  demo.wts	save weights of trained network
  bp		back prop program