At the forefront of Artificial Intelligence
  Home Articles Reviews Interviews JDK Glossary Features Discussion Search
Home » Articles » Neural Networks » Applications/Code

PDA32 - Perceptron Demonstrator

Download here (30K).

This is my version of the program written by Omri Weisam and Ziv Pollack. I'd modified their code before and created PDA - a simple DOS-based program that read points from a data file and used perceptrons to draw a line of division.

I've rewritten the program from scratch, using C++ constructs. The program also displays the equation of the line it found, it will also display a message if the points are non-linear separable. The program will read from data.txt the points and then display them on a graph in the dialog box. The points can be anywhere between 0 and 100 - the graph will automatically adjust its scale to suit the data points. Hit "Run" and the program will use perceptrons to determine the line of division, and will both draw the line on the graph and display its equation (rounded to tenths).

The format of the data file is very simple, the first two numbers are the total numbers of points for Type A and Type B. The paired numbers are the data points. In the example I provided, there are 10 points each for the two groups. You can have up to 20 points in each group, and there doesn't have to be an equal number of points in each group.

For more information on perceptrons, read the Generation5 essay.

Version 1.3

Updated 22/12/00: Not only was v1.2 never uploaded, v1.3 had also remained neglected on a hard-drive in Japan! Nevertheless, it has been recovered and uploaded this time! Sorry for any confusion this caused. Version 1.3 definitely works, it also fixes a line drawing bug that occured in v1.2 (the lines snapped to integers). Weights weren't reinitialized when training was restarted either.

Version 1.2

I finally fixed the bug that rendered PDA32 nearly unusable! The bug was in both the CPerceptron class code and the line drawing code - pretty bad. Anyway that is all fixed. On top of that I added a data file combo box - all data files now have a PDA extension and will be automatically added to the combobox on startup. Two data files are now included for your viewing pleasure - random separable data, and non-separable XOR data.

Note that sometimes (due to rounding) the separating line will look like it has not classified the data perfectly - but it has!

Version 1.1

A bug has been partially fixed, but not completely. There is a bug in this program I can't seem to fix - for more information see the readme file. Please help me fix this bug if you have a little time.

Last Updated: 22/12/2000

Article content copyright © James Matthews, 2000.
 Article Toolbar
Print
BibTeX entry

Search

Latest News
- New Generation5 Design! (09/04/2007)
- Happy New Year 2007 (02/01/2007)
- Where has Generation5 Gone?! (04/11/2005)
- NeuroEvolving Robotic Operatives (NERO) (25/06/2005)
- Senior Next-Gen Console Programmer at Infinity Ward (25/06/2005)

What's New?
- An Introduction to Hough Transforms (06/01/2008)
- Kohonen-based Image Analysis using the Generation5 JDK (12/12/2007)
- Back-propagation for the Uninitiated (10/04/2007)
- Perceptrons (09/04/2007)
- Modelling Bacteria using the Generation5 JDK (01/04/2007)


All content copyright © 1998-2007, Generation5 unless otherwise noted.
- Privacy Policy - Legal - Terms of Use -