Пример #1
0
 SInnovation(SNeuronGene neuron, int innovationID, int neuronID)
 {
     ID         = innovationID;
     NeuronID   = neuronID;
     Type       = InnovationType.NewNeuron;
     SplitX     = neuron.SplitX;
     SplitY     = neuron.SplitY;
     neuronType = neuron.Type;
     NeuronIn   = -1;
     NeuronOut  = -1;
 }
Пример #2
0
        CreateNeuronByID(int id)
        {
            SNeuronGene clone = new SNeuronGene(NeuronType.Hidden, 0, 0, 0);

            for (int i = 0; i < m_vecInnovations.Count; i++)
            {
                SInnovation innovation = m_vecInnovations[i];
                if (innovation.NeuronID == id)
                {
                    clone.Type   = innovation.neuronType;
                    clone.ID     = innovation.NeuronID;
                    clone.SplitY = innovation.SplitY;
                    clone.SplitX = innovation.SplitX;

                    return(clone);
                }
            }

            return(clone);
        }
Пример #3
0
        CInnovation(List <SLinkGene> startGenes,
                    List <SNeuronGene> startNeurons)
        {
            m_vecInnovations = new List <SInnovation> ();

            for (int i = 0; i < startNeurons.Count; i++)
            {
                SNeuronGene neuron = startNeurons[i];
                m_vecInnovations.Add(new SInnovation(neuron,
                                                     m_NextInnovationID++,
                                                     m_NextNeuronID++));
            }

            for (int i = 0; i < startGenes.Count; i++)
            {
                SLinkGene gene = startGenes[i];
                m_vecInnovations.Add(new SInnovation(gene.FromNeuron,
                                                     gene.ToNeuron,
                                                     InnovationType.NewLink,
                                                     m_NextInnovationID++));
            }
        }