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); } }
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])); }
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); }
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); }
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); } } }
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); }
private void ElaborationPhase(ANeuron neuron) { neuron.ConsumeSignals(); neuron.ConsumeEnergy(); }
public void AddNeuron(ANeuron neuron) { _neurons.Add(neuron); }
public Connection(ANeuron startNeuron, ANeuron endNeuron) { StartNeuron = startNeuron; EndNeuron = endNeuron; }