Beispiel #1
0
        public SortedList <int, Gene> GetStartGenes(List <Node> nodes)
        {
            SortedList <int, Gene> genes = new SortedList <int, Gene>(24);
            Random rnd = new Random();

            for (int i = 0; i < 6; i++)
            {
                Gene gene = new Gene(nodes[i], nodes[6], 0f, GeneType.Enabled, i);
                gene.Weight = gene.AssignRandomWeight(rnd);
                genes.Add(gene.Innovation, gene);
                gene.In.OutgoingConnections.Add(gene);
            }
            for (int i = 0; i < 6; i++)
            {
                Gene gene = new Gene(nodes[i], nodes[7], 0f, GeneType.Enabled, i + 6);
                gene.Weight = gene.AssignRandomWeight(rnd);
                genes.Add(gene.Innovation, gene);
                gene.In.OutgoingConnections.Add(gene);
            }
            for (int i = 0; i < 6; i++)
            {
                Gene gene = new Gene(nodes[i], nodes[8], 0f, GeneType.Enabled, i + 12);
                gene.Weight = gene.AssignRandomWeight(rnd);
                genes.Add(gene.Innovation, gene);
                gene.In.OutgoingConnections.Add(gene);
            }
            for (int i = 0; i < 6; i++)
            {
                Gene gene = new Gene(nodes[i], nodes[9], 0f, GeneType.Enabled, i + 18);
                gene.Weight = gene.AssignRandomWeight(rnd);
                genes.Add(gene.Innovation, gene);
                gene.In.OutgoingConnections.Add(gene);
            }
            return(genes);
        }