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.
You can find the Genesis GA system in ~juell/genesis
You can find the PDP NN example in ~juell/cs724pub/PDP
You can find notes on running the GA in foils/GA
and the NN in foils/BP-NN.
Good starting points for each are
foils/GA/genesis.html
and
foils/BP-NN/bp-nn.html.
GA Program
To use the Genesis GA system, do the following.
Create a directory called genesis.
Copy the contents of ~juell/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