PyWISARD README:

Author: Iuri Wickert (iwickert@yahoo.com)
Copyright 2000, 2001 Iuri Wickert
License: GNU GPL

==============================================================================
Introduction:
PyWISARD is a straightforward implementation of a standard WISARD weightless 
neural network, done in Python. This package contains the PyWISARD tkinter
GUI, a wisard module and a simple loader of PPM imagens (pyppm), and an 
(old) HTML presentation. PyWISARD first appeared at the demostration session 
of the 6th Brazilian Symposium on Neural Networks (2000).

How-to use it:
Simply run the PyWISARD3.pyw file, optionally with an input path as parameter, 
and read the HTML presentation!

==============================================================================
The WISARD module API "description":

*** "user" functions:
wisard.wisard(n_cat, n_bit, im_width, im_height)
# instantiate a wisard network, with n_cat discriminators, using neurons
# with n_bit inputs, to work with (im_width,im_height) dimension images. 

wisard.train(cat, image, off_x,off_y)
# trains the 'cat' discriminator with the 'image' input image, or a subset
# of it (origin in (off_x, off_y)).

wisard.consult(image, off_x, off_y)
# consults the entire wisard network with 'image' as input, with or without
# offset (off_x, off_y). It return the index of the best recognition 
# discriminator for that input.

wisard.stats(image, off_x, off_y)
# same as consult, but providing the results from all discriminators, also
# as recognition percentiles

*** internal functions:
wisard.select(seq)
# auxiliar function to randomly extract an element from a list, consuming it
# (i.e., without repetition of elements).
 
wisard.mapping(bits, x, y):
# returns a list with the image pixels' indexes (x, y) randomly permutated into 
# 'bits'-size lists. (now with the last list possibly containing less bits,     
# because of the unexact ratio between the image size and no. of bits)

wisard.decompose(image, off_x, off_y)
# decomposes the 'image' image, or a proper subset of it (origin in (off_x, 
# off_y)), into input tuples for the discriminators' neurons, according to 
# the input mapping. 

wisard.new_discr()
# appends a new discriminator on the network
