trainingSet.addElement(new TrainingElement(new double[]{1, 1, 1,
0, 1, 0,
0, 1, 0})); // T letter
// create hopfield network
Hopfield myHopfield = new Hopfield(9);
// learn the training set
myHopfield.learnInSameThread(trainingSet);
// test hopfield network
System.out.println("Testing network");
// add one more 'incomplete' H pattern for testing - it will be recognized as H
trainingSet.addElement(new TrainingElement(new double[]{1, 0, 0,
1, 0, 1,
1, 0, 1}));
// print network output for the each element from the specified training set.
for(TrainingElement trainingElement : trainingSet.trainingElements()) {
myHopfield.setInput(trainingElement.getInput());
myHopfield.calculate();
myHopfield.calculate();
double[] networkOutput = myHopfield.getOutput();
System.out.print("Input: " + Arrays.toString(trainingElement.getInput()) );
System.out.println(" Output: " + Arrays.toString(networkOutput) );
}