示例#1
0
 /// <summary>
 /// Método responsável para atualizar os pesos do dado neurônio
 /// </summary>
 /// <param name="neuronio"></param>
 /// <param name="node"></param>
 /// <returns></returns>
 public static Neuronio AtualizarPesos(Neuronio neuronio, Node node)
 {
     for (int i = 0; i < neuronio.pesos.Count(); i++)
     {
         neuronio.pesos[i] = neuronio.pesos[i] + (alfa * (node.valores[i] - neuronio.pesos[i]));
     }
     return(neuronio);
 }
示例#2
0
        /// <summary>
        /// Método responsável por medir a distância euclidiana
        /// </summary>
        /// <param name="node"></param>
        /// <param name="neuronio"></param>
        /// <returns></returns>
        public static double DistanciaEuclidiana(Node node, Neuronio neuronio)
        {
            double valor = 0;

            for (int i = 0; i < node.valores.Count(); i++)
            {
                valor += Math.Pow((node.valores[i] - neuronio.pesos[i]), 2);
            }
            return(Math.Sqrt(valor));
        }
示例#3
0
        /// <summary>
        /// Método responsável para encontrar os vizinhos do Neurônio
        /// </summary>
        /// <param name="neuronio"></param>
        /// <returns></returns>
        public static List <Node> EncontrarVizinhos(Neuronio neuronio)
        {
            List <Node> Vizinhos = new List <Node>();

            for (int i = 0; i < Nodes.Count; i++)
            {
                var temp = DistanciaEuclidiana(Nodes[i], neuronio);
                if (temp < Raio && temp != 0)
                {
                    Vizinhos.Add(Nodes[i]);
                }
            }
            return(Vizinhos);
        }
示例#4
0
        /// <summary>
        /// Método responsável por preencher a lista de neurônios
        /// </summary>
        /// <returns></returns>
        private static List <Neuronio> PreencherNeuronios()
        {
            List <Neuronio> neuronios = new List <Neuronio>();
            Random          rnd       = new Random(1);

            for (int i = 0; i < k; i++)
            {
                var neuronio = new Neuronio();
                neuronio.cod      = i + 1;
                neuronio.pesos    = new double[Nodes[i].valores.Count()];
                neuronio.vizinhos = new List <Node>();
                for (int j = 0; j < neuronio.pesos.Length; j++)
                {
                    neuronio.pesos[j] = rnd.NextDouble();
                }
                neuronios.Add(neuronio);
            }
            return(neuronios);
        }