Advertisement
LukacikPavel

ugr06 art1

Oct 29th, 2018
428
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Octave 1.43 KB | None | 0 0
  1. N=7;
  2. ro=0.7;
  3. pocet_neuronov = 4;
  4. Prk = [1 1 0 0 0 0 1; 0 0 1 1 1 1 0; 1 0 1 1 1 1 0; 1 1 1 1 0 0 0; 0 0 1 1 0 1 0];
  5.  
  6. t_vahy = ones(1,N);
  7. b_vahy = t_vahy/(N+1);
  8.  
  9. Neuron=NaN*zeros(2,N,4)
  10.  
  11. % prvy priklad
  12. y=b_vahy*Prk(1,:)';
  13. s=t_vahy.*Prk(1,:);
  14.  
  15. t_vahy_nove=s;
  16. b_vahy_nove=s/(0.5+sum(s));
  17.  
  18. Neuron(1,:,1)=b_vahy_nove(:);
  19. Neuron(2,:,1)=t_vahy_nove(:);
  20.  
  21. % spracovanie dalsich prikladov
  22.  
  23. for pr=2:size(Prk,1)
  24.   priradeny = 0;
  25.   A = [1:pocet_neuronov];
  26.   while (size(A)>0) & (~priradeny) % ~ = non
  27.     vitaz_y=-10;
  28.     for i=1:size(A)
  29.       b_vahy = squeeze(Neuron(1,:,i));
  30.       y(1)=b_vahy*Prk(pr,:)'; %sum(Prk(pr,:).*b_vahy
  31.      
  32.       % doprogramovat - najst index neuronu s najvacsiou hodnotou
  33.     end;
  34.    
  35.     vitaz_y
  36.     vitaz_i
  37.    
  38.     % zmensit mnozinu A o vitazny neuron
  39.    
  40.     b_vahy = squeeze(Neuron(1,:,vitaz_i));
  41.     t_vahy = squeeze(Neuron(2,:,vitaz_i));
  42.     s = t_vahy.*Prk(pr,:);
  43.     podiel = (sum(s)/(sum(Prk(pr,:)));
  44.     if podiel > ro
  45.       % idem aktualizovat vahy
  46.      
  47.       priradeny=1;
  48.     end;
  49.    
  50.     % ak som vycerpal vsetky neurony a ziaden nerezonoval
  51.     % aktualizovat vahy pre uplne novy neuron
  52.     if (podiel<=ro) & size(A)==0
  53.       pocet_neuronov = pocet_neuronov+1;
  54.      
  55.       s = ones(1,N)*Prk(pr,:);
  56.       t_vahy_nove=s;
  57.       b_vahy_nove=s/(0.5+sum(s));
  58.      
  59.       Neuron(1,:,pocet_neuronov)=b_vahy_nove;
  60.       Neuron(2,:,pocet_neuronov)=t_vahy_nove;
  61.   end;
  62. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement