protected override double Distance(Neurone v1, Neurone v2) { ///Distance euclidienne double distance = Math.Sqrt( ((RobotNeurone)v1).X - (((RobotNeurone)v2).X) * (((RobotNeurone)v1).X - ((RobotNeurone)v2).X) ); return(distance); }
/// <summary> /// Constructeur paramétré /// </summary> /// <param name="tailleCouche">Nombre de neurones de la couche</param> /// <param name="transfert">Fonction de transfert</param> /// <param name="seuil">Seuil de la fonction de transfert</param> /// <param name="nbEntrees">Nombre d'entrée de chaque neurone</param> /// <param name="transfertDerivee">Null ou dérivée de la fonction de transfert</param> public Couche(int tailleCouche, int nbEntrees, Func <double, double> transfert, double seuil, Func <double, double> transfertDerivee = null) { Seuil = seuil; Neurones = new Neurone[tailleCouche]; for (int i = 0; i < tailleCouche; i++) { Neurone neurone = new Neurone(nbEntrees, transfert, transfertDerivee); Neurones[i] = neurone; } }
/// <summary> /// Constructeur paramétré /// </summary> /// <param name="tailleCouche">Nombre de neurones de la couche</param> /// <param name="transfert">Fonction de transfert</param> /// <param name="seuil">Seuil de la fonction de transfert</param> /// <param name="nbEntrees">Nombre d'entrée de chaque neurone</param> /// <param name="transfertDerivee">Null ou dérivée de la fonction de transfert</param> public Couche(int tailleCouche, int nbEntrees, Func<double, double> transfert, double seuil, Func<double, double> transfertDerivee = null) { Seuil = seuil; Neurones = new Neurone[tailleCouche]; for (int i = 0; i < tailleCouche; i++) { Neurone neurone = new Neurone(nbEntrees, transfert, transfertDerivee); Neurones[i] = neurone; } }
public static void AfficherSorties(Neurone[] neurones, string titre) { string sortie = titre; foreach (Neurone neurone in neurones) { sortie += neurone.Sortie.ToString("-0.0,0.0") + ","; } Console.WriteLine(sortie.Trim(',')); }
protected abstract double Distance(Neurone v1, Neurone v2);