Пример #1
0
    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);
        }
    }
Пример #2
0
 private void MutateWeight(GenomeVisualizer gv, Genome g)
 {
     if (g != null)
     {
         WeightMutator.MutateWeight(g, null);
         gv.VisualizeGenome(g, false, true);
     }
 }
Пример #3
0
 private void MutateTopology(GenomeVisualizer gv, Genome g)
 {
     if (g != null)
     {
         TopologyMutator.MutateTopology(g, null, NewNodeMutations, NewConnectionMutations);
         gv.VisualizeGenome(g, false, true);
     }
 }