[comp.ai.neural-nets] Hopfield-style Network Simulator

smbauer@acsu.buffalo.edu (stephen m bauer) (07/03/90)

	Hopfield-style network simulator 
	--------------------------------

In a previous posting a month or so back, it was briefly mentioned 
that the above simulator was available (free) upon request. Since then, 
we've felt that it may be of interest to a larger group of people and 
have decided to make a more 'elaborate' announcement providing more 
details.

How might this be used
----------------------
1. As an instructional tool - To learn hands-on about the Hopfield-style
   net- provides simple and flexible user interface, rapid training of even 
   moderate-sized examples and rapid, even interactive testing. Will work 
   on machines from PCs to 32-bit Unix machines (like Sun 4s).

2. As a research/development tool - To explore it's content-addressable
   memory (CAM) properties, especially in the limits, like capacity/spurious 
   memories, at a theoretical level or perhaps on specific applications. Some 
   possible areas of use are character image restoration, dictionary matching, 
   schema storage and retrieval. Some of these have been studied. Supplied 
   documentation will include info on such previous study. To explore 
   it's use as a kind of filter (has been studied and shown promise).
   Because of it's real-time performance, we think applications on which
   it shows promise can even be prototyped on sequential machines, we
   view it as more than a simulator, it may hold it's own against 
   conventional sequential programs.

Simulator details
-----------------
status
    - simulator has been in extensive use for more than a year on various
      machines and at least two moderate sized applications

s/w - in standard C (no system calls). Should install without change 
      on any 32-bit Unix machine (probably non-Unix too). Has been
      used on Sun Sparc-stations, multi-max encore, sperry-univac etc..
      Briefly tested on IBM PC XT also. 

Distribution/Installation
    - By e-mail only, 'shar' format. 'Makefile' provided for automatic 
      installation. 
    - Comes with documentation, examples, utilities

User interface
--------------
* Allows any size 1-layer net to be created by specifying parameters in 
  configuration file. Exact size need not be specified. simulator uses as 
  many units as needed based on # of distinct symbols in training set.
* Provides symbolic interface. Net can be trained on sets of
  symbols, eg training set might be      { a b c }       { c b d }
  A test i/p could then be               { a b d }
  and net might retrieve                 { a b c }    or { c b d }
* test I/P to net from stdin, Net O/P to stdout. Use Unix 'pipe's if you want
  to use it as a component in a more complex system.

Internal details
----------------
* Dynamic allocation allows executable size to be a function of net
  size (fn of # distinct symbols in training set).
* No inner products computed. Signals propagated forward, allowing
  efficient implementation of net algorithms.
* symbol to unit mapping done by hashing.

Serious requests for the simulator should be sent to <jagota@cs.buffalo.edu>
(as opposed to poster)