private void ResetGenome(GenomeVisualizer gv) { Dictionary <int, Node> nodes = new Dictionary <int, Node>(); Dictionary <int, Connection> initialConnections = new Dictionary <int, Connection>(); // Create input nodes for (int i = 0; i < NumInputs; i++) { nodes.Add(i, new Node(i, NodeType.Input)); } // Create output nodes for (int i = NumInputs; i < (NumInputs + NumOutputs); i++) { nodes.Add(i, new Node(i, NodeType.Output)); } if (gv == Parent1GV) { Parent1Genome = new Genome(CrossoverAlgorithm.GenomeId++, nodes, initialConnections, 2, -2); gv.VisualizeGenome(Parent1Genome, false, true); } else { Parent2Genome = new Genome(CrossoverAlgorithm.GenomeId++, nodes, initialConnections, 2, -2); gv.VisualizeGenome(Parent2Genome, false, true); } }
private void MutateWeight(GenomeVisualizer gv, Genome g) { if (g != null) { WeightMutator.MutateWeight(g, null); gv.VisualizeGenome(g, false, true); } }
private void MutateTopology(GenomeVisualizer gv, Genome g) { if (g != null) { TopologyMutator.MutateTopology(g, null, NewNodeMutations, NewConnectionMutations); gv.VisualizeGenome(g, false, true); } }