-
Notifications
You must be signed in to change notification settings - Fork 46
SoftwareNeuronEngineCycle
Related: ConceptAxonDelay, ConceptNeuronFrequency, SoftwareNeuronEngine
In the brain, all neurons can work asynchronously but in a computer, things are necessarily more sequential, so synchronization is necessary. Imagine that two neurons fire at the same time and both connect to the same target neuron, one with its synapse "weight" of (+1.0) and the other with its synapse "weight" of (-1.0). In your brain, the target will never fire. In a simulator, if the (+1.0) synapse is processed first, the target neuron will fire but if the (-1.0) is processed first, it will not.
To eliminate this problem, the Neuron Engine algorithm imposes a discrete time step and two-phase processing. Within a time step, every neuron has the chance to fire just once, then every firing neuron processes its target synapses. By setting a long ConceptNeuron#RefactoryPeriod (a short cycle time), the impact of synchronization can be minimized but most of the Brain Simulator networks are built with a Refractory Period of '0'ms. This is sufficient to represent a huge number of network capabilities but it does impose some timing limitations.
CyleTime
ms