Example #1
0
 /// <summary>
 /// Construct the trainer.
 /// </summary>
 /// <param name="theNetwork">The network to train.</param>
 public TrainHopfieldStorkey(HopfieldNetwork theNetwork)
 {
     _network   = theNetwork;
     _sumMatrix = AIFH.Alloc2D <double>(_network.InputCount, _network.InputCount);
 }
 public static void Evaluate(HopfieldNetwork hopfieldLogic, string[][] pattern)
 {
     for (var i = 0; i < pattern.Length; i++)
     {
         var pattern1 = ConvertPattern(pattern, i);
         hopfieldLogic.CopyToCurrentState(pattern1);
         var cycles = hopfieldLogic.RunUntilStable(100);
         var pattern2 = hopfieldLogic.CurrentState;
         Console.WriteLine("Cycles until stable(max 100): " + cycles + ", result=");
         Display(pattern1, pattern2);
         Console.WriteLine("----------------------");
     }
 }
        public void Run()
        {
            var hopfieldLogic = new HopfieldNetwork(WIDTH*HEIGHT);
            var train = new TrainHopfieldStorkey(hopfieldLogic);

            for (var i = 0; i < PATTERN.Length; i++)
            {
                train.AddPattern(ConvertPattern(PATTERN, i));
            }

            Evaluate(hopfieldLogic, PATTERN);
            Evaluate(hopfieldLogic, PATTERN2);
        }
Example #4
0
 /// <summary>
 ///     Construct the trainer.
 /// </summary>
 /// <param name="theNetwork">The network to train.</param>
 public TrainHopfieldStorkey(HopfieldNetwork theNetwork)
 {
     _network = theNetwork;
     _sumMatrix = AIFH.Alloc2D<double>(_network.InputCount, _network.InputCount);
 }