Example #1
0
        public static SpConnection GetConnectionFromGene(SpConnectionGene gene, SpNeuron source, SpikeNet net)
        {
            var connection = new SpConnection();

            connection.ImprintGene(gene, source, net);

            return(connection);
        }
Example #2
0
 public Spike(SpNeuron source, SpConnection connection)
 {
     Source         = source;
     Target         = connection.Target;
     Connection     = connection;
     Strength       = connection.Weight;
     CyclesToImpact = connection.Delay;
 }
Example #3
0
        public override void ImprintGenome(INeuralNetChromosome _genome)
        {
            var genome = (SpikeNetChromosome)_genome;

            #region Creating the neurons
            foreach (var gene in genome.EyeRNeuronGenes)
            {
                var neuron = new SpInputNeuron(this);
                neuron.ImprintGene(gene);
                AddInputNeuron(neuron);
            }
            foreach (var gene in genome.EyeGNeuronGenes)
            {
                var neuron = new SpInputNeuron(this);
                neuron.ImprintGene(gene);
                AddInputNeuron(neuron);
            }
            foreach (var gene in genome.EyeBNeuronGenes)
            {
                var neuron = new SpInputNeuron(this);
                neuron.ImprintGene(gene);
                AddInputNeuron(neuron);
            }
            foreach (var gene in genome.DistanceNeuronGenes)
            {
                var neuron = new SpInputNeuron(this);
                neuron.ImprintGene(gene);
                AddInputNeuron(neuron);
            }

            foreach (var gene in genome.InputNeuronGenes)
            {
                var neuron = new SpInputNeuron(this);
                neuron.ImprintGene(gene);
                AddInputNeuron(neuron);
            }

            foreach (var gene in genome.HiddenNeuronGenes)
            {
                var neuron = new SpNeuron(this);
                neuron.ImprintGene(gene);
                AddHiddenNeuron(neuron);
            }
            foreach (var gene in genome.OutputNeuronGenes)
            {
                var neuron = new SpOutputNeuron(this);
                neuron.ImprintGene(gene);
                AddOutputNeuron(neuron);
            }

            #endregion

            #region Connection the neurons
            int count = 0;
            foreach (var gene in genome.EyeRNeuronGenes)
            {
                var neuron = InputNeurons[count++];

                foreach (var connectionGene in gene.Connections)
                {
                    neuron.Connections.Add(SpConnection.GetConnectionFromGene(connectionGene, neuron, this));
                }
            }

            foreach (var gene in genome.EyeGNeuronGenes)
            {
                var neuron = InputNeurons[count++];

                foreach (var connectionGene in gene.Connections)
                {
                    neuron.Connections.Add(SpConnection.GetConnectionFromGene(connectionGene, neuron, this));
                }
            }
            foreach (var gene in genome.EyeBNeuronGenes)
            {
                var neuron = InputNeurons[count++];

                foreach (var connectionGene in gene.Connections)
                {
                    neuron.Connections.Add(SpConnection.GetConnectionFromGene(connectionGene, neuron, this));
                }
            }

            foreach (var gene in genome.DistanceNeuronGenes)
            {
                var neuron = InputNeurons[count++];

                foreach (var connectionGene in gene.Connections)
                {
                    neuron.Connections.Add(SpConnection.GetConnectionFromGene(connectionGene, neuron, this));
                }
            }

            foreach (var gene in genome.InputNeuronGenes)
            {
                var neuron = InputNeurons[count++];

                foreach (var connectionGene in gene.Connections)
                {
                    neuron.Connections.Add(SpConnection.GetConnectionFromGene(connectionGene, neuron, this));
                }
            }

            count = 0;
            foreach (var gene in genome.HiddenNeuronGenes)
            {
                var neuron = HiddenNeurons[count++];

                foreach (var connectionGene in gene.Connections)
                {
                    neuron.Connections.Add(SpConnection.GetConnectionFromGene(connectionGene, neuron, this));
                }
            }

            count = 0;
            foreach (var gene in genome.OutputNeuronGenes)
            {
                var neuron = OutputNeurons[count++];

                foreach (var connectionGene in gene.Connections)
                {
                    neuron.Connections.Add(SpConnection.GetConnectionFromGene(connectionGene, neuron, this));
                }
            }

            #endregion
        }