Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 30th, 2012  |  syntax: None  |  size: 1.27 KB  |  hits: 14  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Hopfield Neural Network doesn't recognize
  2. private void teaching(int[] pattern){ //teaching
  3.     for(int i=0; i<n; i++)
  4.         for(int j=0; j<n; j++){
  5.             if(i==j) w[i][j]=0;
  6.             else w[i][j] += pattern[i]*pattern[j];
  7.         }
  8. }
  9.        
  10. private int[] recognition(int[] pattern){
  11.     int net=0, s, j=0;        
  12.     int[] previousState = new int[n];
  13.     do{
  14.         System.arraycopy(pattern, 0, previousState, 0, n);
  15.         int r = generateRandom(n);
  16.         for(int i=0; i<n; i++)
  17.             net+=pattern[i]*w[i][r];          
  18.         s = signum(net);
  19.         pattern[r] = s;
  20.         j++;
  21.         if(j>iterThreshold){
  22.             System.err.println("Threshold overcome.");
  23.             return pattern;
  24.         }
  25.     }while(!Arrays.equals(pattern, previousState));
  26.     return pattern;
  27. }
  28.        
  29. private static int signum(int x){ //activation function
  30.     if(x>0) return 1;
  31.     else return -1;
  32.  
  33. }
  34.        
  35. private int[] recognition(int[] pattern){
  36.     int net=0, s, j=0;        
  37.     ...
  38.     do{
  39.         net=0;
  40.         for(int i=0; i<n; i++)
  41.             net+=pattern[i]*w[i][r];
  42.         ...
  43.     }
  44. }
  45.        
  46. private int[] recognition(int[] pattern){
  47.     int net=0, s, j=0;        
  48.     ...
  49.     do{
  50.         net=0;
  51.         for(int i=0; i<n; i++)
  52.             net+=pattern[i]*w[i][r];
  53.         ...
  54.     }
  55. }