/// <summary>
 /// Ré-initialise le dessin et les composants.
 /// </summary>
 public void EffacerDessin()
 {
     _coordonnees = new Metier.CoordDessin(_largeur, _hauteur);
     _objGraphics.Clear(pZoneDessin.BackColor);
     pZoneDessin.Refresh();
     _coordonnees = new Metier.CoordDessin(_largeur, _hauteur);
 }
        /// <summary>
        /// Constructeur. Initialise la zone de dessin.
        /// </summary>
        public ucZoneDessin()
        {
            InitializeComponent();

            _largeur          = CstApplication.TAILLEDESSINY;
            _hauteur          = CstApplication.TAILLEDESSINX;
            pZoneDessin.Image = new Bitmap(_largeur, _hauteur);
            _objGraphics      = Graphics.FromImage(pZoneDessin.Image);
            _coordonnees      = new Metier.CoordDessin(_largeur, _hauteur);
        }
        /// <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, double cstApprentissage)
        {
            string sConsole = "";

            if (_lstPerceptrons.ContainsKey(reponse) == false)
            {
                _lstPerceptrons.Add(reponse, new Perceptron(reponse));
            }
            coordo.Reponse = reponse;
            _lstCoordonnes.Add(coordo);

            foreach (Perceptron p in _lstPerceptrons.Values)
            {
                sConsole += p.Entrainement(_lstCoordonnes, cstApprentissage);
            }

            return(sConsole);
        }
        /// <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, double cstApprentissage, string fichier, bool phrase)
        {
            // Entrainement et load
            _lstCoordonnes = _gestionFichiers.ChargerCoordonnees(fichier);
            foreach (CoordDessin c in _lstCoordonnes)
            {
                if (_lstPerceptrons.ContainsKey(c.Reponse) == false)
                {
                    _lstPerceptrons.Add(c.Reponse, new Perceptron(c.Reponse));
                }
            }

            foreach (Perceptron p in _lstPerceptrons.Values)
            {
                p.Entrainement(_lstCoordonnes, cstApprentissage);
            }

            // Test
            string resultat = "";
            bool   valeur;

            foreach (Perceptron p in _lstPerceptrons.Values)
            {
                valeur = p.TesterNeurone(coord);
                if (valeur)
                {
                    resultat += p.Reponse;
                    if (phrase)
                    {
                        break;
                    }
                }
            }

            if (resultat == "")
            {
                resultat = "?";
            }

            return(resultat);
        }
Example #5
0
        /// <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)
        {
            int resultatEstime = ValeurEstime(_poidsSyn, coord.BitArrayDessin);

            return(resultatEstime == CstApplication.VRAI ? true : false);
        }