コード例 #1
0
 public ALayer(int neuronCount, int m, double speed) : base(neuronCount, m, speed)
 {
     neurons = new ANeuron[neuronCount];
     for (var j = 0; j < neuronCount; j++)
     {
         neurons[j] = new ANeuron(m);
     }
 }
コード例 #2
0
ファイル: ModellerWindow.cs プロジェクト: xekamal/Diplom
 private string GetNeuronDendritsAsString(ANeuron hNeuron)
 {
     return
         (string.Format(
              "{0,7:0.0000}  {1,7:0.0000}  {2,7:0.0000}  {3,7:0.0000}  {4,7:0.0000}  {5,7:0.0000}  {6,7:0.0000}  {7,7:0.0000}  {8,7:0.0000}  {9,7:0.0000}  {10,7:0.0000}  {11,7:0.0000}",
              hNeuron.dendrits[0], hNeuron.dendrits[1], hNeuron.dendrits[2], hNeuron.dendrits[3],
              hNeuron.dendrits[4], hNeuron.dendrits[5], hNeuron.dendrits[6], hNeuron.dendrits[7],
              hNeuron.dendrits[8], hNeuron.dendrits[9], hNeuron.dendrits[10], hNeuron.dendrits[11]));
 }
コード例 #3
0
        public bool ExistsConnection(ANeuron startNeuron, ANeuron endNeuron)
        {
            foreach (var connection in _connections)
            {
                if (connection.GetStartNeuron().Equals(startNeuron) && connection.GetEndNeuron().Equals(endNeuron))
                {
                    return(true);
                }
            }

            return(false);
        }
コード例 #4
0
        public List <ANeuron> GetConnectedNeurons(ANeuron neuron)
        {
            var result = new List <ANeuron>();

            foreach (var connection in _connections)
            {
                if (connection.GetStartNeuron().Equals(neuron))
                {
                    result.Add(connection.GetEndNeuron());
                }
            }

            return(result);
        }
コード例 #5
0
        private ANeuron ExtractEndNeuron(ANeuron startNeuron)
        {
            var endNeuronPosition = rnd.Next(map.GetNeurons().Count);

            ANeuron extractedEndNeuron = null;

            while (true)
            {
                extractedEndNeuron = map.GetNeurons().ToArray()[endNeuronPosition];
                endNeuronPosition  = rnd.Next(map.GetNeurons().Count);
                if (!extractedEndNeuron.Equals(startNeuron) && !map.ExistsConnection(startNeuron, extractedEndNeuron))
                {
                    return(extractedEndNeuron);
                }
            }
        }
コード例 #6
0
ファイル: MapSimulator.cs プロジェクト: dave230689/NeuronSim
        private List <ANeuron> PropagationPhase(ANeuron neuron)
        {
            var result           = new List <ANeuron>();
            var connectedNeurons = NeuroMap.GetConnectedNeurons(neuron);

            if (neuron.IsBufferEnergyEnoughForPropagation(connectedNeurons.Count))
            {
                foreach (var connectedNeuron in connectedNeurons)
                {
                    connectedNeuron.SendSignal(new SimpleSignal(1));
                    result.Add(connectedNeuron);
                }
            }

            return(result);
        }
コード例 #7
0
ファイル: MapSimulator.cs プロジェクト: dave230689/NeuronSim
 private void ElaborationPhase(ANeuron neuron)
 {
     neuron.ConsumeSignals();
     neuron.ConsumeEnergy();
 }
コード例 #8
0
 public void AddNeuron(ANeuron neuron)
 {
     _neurons.Add(neuron);
 }
コード例 #9
0
ファイル: Connection.cs プロジェクト: dave230689/NeuronSim
 public Connection(ANeuron startNeuron, ANeuron endNeuron)
 {
     StartNeuron = startNeuron;
     EndNeuron   = endNeuron;
 }