Advertisement
Guest User

Untitled

a guest
May 23rd, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.67 KB | None | 0 0
  1. import java.util.ArrayList;
  2.  
  3. public class Main {
  4.  
  5. public static void main(String[] args) {
  6.  
  7. String V = "11000110001100011000100100";
  8. // String A = "10010011011100011111110001";
  9. // String S = "11111110000100010000110001";
  10. // String I = "11111100100001000010000100";
  11. // String N = "10010001010010100101000100";
  12.  
  13. String LastName[] = {V};
  14.  
  15. int k = 0, K = 5;
  16. int y; // ответ нейрона
  17. int Esum = 1; //начальная суммарная ошибка
  18. double sum = 0; //сумма ошибок
  19.  
  20. int m = 0; //номер эпохи обучения
  21. int emax = 60; //максимальное число эпох обучения
  22. int popSize = 20; // размер популяции
  23. int newPersonCount = 5;
  24. int porog = 0; //порог активации
  25.  
  26. double v = 0.01;
  27.  
  28. double weight[][] = new double[popSize][26];
  29. int popDev[] = new int[popSize];
  30.  
  31. int t[][]= {{1,0,0,0,0}};
  32. //int t[][]= {{1,0,0,0,0}, {0,1,0,0,0}, {0,0,1,0,0}, {0,0,0,1,0}, {0,0,0,0,1}};
  33.  
  34. for (int i = 0; i < popSize; i++) {
  35. for (int j = 0; j < 26; j++) {
  36. weight[i][j] = Math.random()*10 - 5;
  37. }
  38. }
  39.  
  40. while (Esum!=0){
  41.  
  42. Esum = 0; //обнуление суммарной ошибки эпохи
  43.  
  44. System.out.println("Номер эпохи: " + m);
  45.  
  46. for (k = 0; k < emax; k++) {
  47.  
  48. System.out.println("Выходной вектор: ");
  49.  
  50. for (int i = 0; i < LastName.length; i++) {
  51.  
  52. sum = 0;
  53.  
  54. for (int popJ = 0; popJ < popSize; popJ++) {
  55.  
  56. for (int j = 0; j < 26; j++) {
  57. sum += (LastName[i].charAt(j) - 48) * weight[popJ][j];
  58. }
  59.  
  60. if (sum >= porog) {
  61. y = 1;
  62. }
  63.  
  64. else{
  65. y = 0;
  66. }
  67.  
  68. popDev[popJ] += Math.abs(t[LastName.length][i] - y); // выводим ошибку
  69.  
  70. System.out.print(y + " ");
  71. }
  72.  
  73.  
  74. // for (int l = 0; l < 26; l++) {
  75. // weight[k][l] += v * (t[k][i] - y) * (LastName[i].charAt(l) - 48);
  76. // }
  77.  
  78.  
  79. }
  80.  
  81. System.out.println();
  82. System.out.println("Суммарная ошибка: " + Esum);
  83. }
  84.  
  85. m++;
  86.  
  87. }
  88.  
  89. }
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement