/// <summary> /// Interroge la neuronnes pour un ensembles des coordonnées(d'un caractère). /// </summary> /// <param name="coord"></param> /// <returns></returns> public bool TesterNeurone(CoordDessin coord) { if (_poidsSyn != null) { double sum = _poidsSyn[0]; for (int i = 1; i < _poidsSyn.Length; i++) { sum += _poidsSyn[i] * (coord.BitArrayDessin[i - 1] ? CstApplication.FAUX : CstApplication.VRAI); } return((sum >= 0) ? false : true); } else { return(false); } }
/// <summary> /// Test le perceptron avec de nouvelles coordonnées. /// </summary> /// <param name="coord">Les nouvelles coordonnées</param> /// <returns>Retourne la liste des valeurs possibles du perceptron</returns> public string TesterPerceptron(CoordDessin coord) { string resultat = ""; foreach (var p in _lstPerceptrons) { if (p.Value.TesterNeurone(coord)) { resultat += p.Key + ' '; } } if (resultat == "") { resultat = "?"; } return(resultat); }
/// <summary> /// Entraine les perceptrons avec un nouveau caractère /// </summary> /// <param name="coordo">Les nouvelles coordonnées</param> /// <param name="reponse">La réponse associé(caractère) aux coordonnées</param> /// <returns>Le résultat de la console</returns> public string Entrainement(CoordDessin coordo, string reponse) { string sConsole = ""; if (!_lstPerceptrons.ContainsKey(reponse)) { _lstPerceptrons.Add(reponse, new Perceptron(reponse)); } coordo.Reponse = reponse; List <CoordDessin> lstCoord = ObtenirCoordonnees() as List <CoordDessin>;//new List<CoordDessin>(); lstCoord.Add(coordo); foreach (var c in _lstPerceptrons) { sConsole += c.Value.Entrainement(lstCoord); } // Pour ne pas enregistrer la base de donnée de Yann List <CoordDessin> lst = _gestionSortie.ObtenirCoordonneesOriginale() as List <CoordDessin>; lst.Add(coordo); _gestionSortie.SauvegarderCoordonnees(lst); return(sConsole); }