/// <summary> /// Добавление образа, который песептрону необходимо будет распознать /// Если образ уже был добавлен , возвращает 0 /// </summary> /// <param name="img"></param> /// <returns></returns> public int Add(NeuroImage img) { if (img.Enters.Length != enterSize || img.Results.Length != resultSize) { throw (new Exception("Персептрон был настроен на " + enterSize + " входов и " + resultSize + "выходов, а в образе присутствует " + img.Enters.Length + " входов и " + img.Results.Length + "выходов")); } if (!Contains(img)) { Image.Add(img); return(1); } else { return(0); } }
/// <summary> /// Метод проверяет содержится ли образ в обучающей выборке /// </summary> /// <param name="Image"></param> /// <param name="img"></param> /// <returns></returns> public bool Contains(NeuroImage img) { //выбираем все входные образы var query = (from x in Image select x.Enters).ToArray(); for (int i = 0; i < query.Length; i++) { bool flag = true; for (int j = 0; j < img.Enters.Length; j++) { if (query[i][j] != img.Enters[j]) { flag = false; } } if (flag == true) { return(true); } } return(false); }
/// <summary> /// Add one image,perceptron recognized /// return 0 if this image contains else return 1 /// </summary> /// <param name="enter">enter image</param> /// <param name="result">exit image</param> public int Add(double[] enter, double[] result) { NeuroImage img = new NeuroImage(enter, result); return(Add(img)); }