private PopulationGenome newGenome() { PopulationGenome genome = new PopulationGenome(); genome.genes = new List<PopulationGene>(); genome.fitness = 0; genome.adjustedFitness = 0; genome.network = new PopulationNetwork(); genome.maxneuron = 0; genome.globalRank = 0; genome.mutationRates = new Dictionary<string, double>(); genome.mutationRates.Add("connections", MutateConnectionsChance); genome.mutationRates.Add("link", LinkMutationChance); genome.mutationRates.Add("bias", BiasMutationChance); genome.mutationRates.Add("node", NodeMutationChance); genome.mutationRates.Add("enable", EnableMutationChance); genome.mutationRates.Add("disable", DisableMutationChance); genome.mutationRates.Add("step", StepSize); return genome; }
private PopulationGenome basicGenome() { PopulationGenome genome = newGenome(); int innovation = 1; genome.maxneuron = Inputs; mutate(genome); return genome; }
private void GenerateNetwork(PopulationGenome genome) { PopulationNetwork network = new PopulationNetwork(); network.neurons = new List<PopulationNeuron>(); for(int i=0;i<Inputs;i++) { network.neurons.Add(newNeuron()); } for(int o=0;o<Outputs;o++) { network.neurons.Add(newNeuron()); } }