public static SpConnection GetConnectionFromGene(SpConnectionGene gene, SpNeuron source, SpikeNet net) { var connection = new SpConnection(); connection.ImprintGene(gene, source, net); return(connection); }
public Spike(SpNeuron source, SpConnection connection) { Source = source; Target = connection.Target; Connection = connection; Strength = connection.Weight; CyclesToImpact = connection.Delay; }
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 }