NAME

       hopfield - solve a task assignment problem via a Hopfield
              network


SYNOPSIS

       hopfield -help
         or
       hopfield
              [-specs  string]  [-dt double] [-tau double] [-gain
              double] [-scale  double]  [-seed  integer]  [-steps
              integer]  [-gray  integer]  [-inv]  [-mag  integer]
              [-term string]


DESCRIPTION

       Solve a task assignment problem via a Hopfield neural net-
       work  while  plotting  the activations of the neurons over
       time.  The program uses the K-out-of-N  rule  for  setting
       the external inputs and synapse strength of the neurons.


OPTIONS

       -specs string
              Problem specification file.

       -dt double
              Time step increment.

       -tau double
              Decay term.

       -gain double
              Sigmoidal gain.

       -scale double
              Scaling for inputs.

       -seed integer
              Random seed for initial state.

       -steps integer
              Number of time steps.

       -gray integer
              Number of gray levels.

       -inv   Invert all colors?

       -mag integer
              Magnification factor.

       -term string
              How to plot points.


MISCELLANY

       As  mentioned  before, the weights and external inputs are

       set according to the K-out-of-N rule which states that  if
       we  have N neurons in a mutually connected sub-network and
       that we wish this subset to converge with exactly  K  neu-
       rons  activated,  then  each neuron should be connected to
       every other neuron with a weights of  -2  and  receive  an
       external  input  of (2K - 1).  Since we must produce solu-
       tions that look like permutation matrices, each neuron  is
       in  2  K-out-of-N  subsets, one for the column and one for
       the row.  Thus, all neurons inhibit all other  neurons  in
       the  same  column  or  row  with  -2 and must (on average)
       receive a net input of 2 since they are all in  two  sets.
       The external inputs are slightly adjusted to favor neurons
       that represent more productive task performers.   See  the
       source code for more details.


BUGS

       No  sanity  checks  are performed to make sure that any of
       the options make sense.

       The final cost of the solution is printed at  the  end  of
       the  simulation;  however, no check is done to insure that
       the system has actually converged.  Hence,  it  may  print
       out nonsense results.


AUTHOR

       Copyright (c) 1997, Gary William Flake.

       Permission  granted  for any use according to the standard
       GNU ``copyleft'' agreement provided that the author's com-
       ments  are  neither  modified nor removed.  No warranty is
       given or implied.


Man(1) output converted with man2html