Exemple #1
0
 def test_mutate_for_100_percent_chance_for_add_connection_mutation(self):
     # probability for each mutation
     mutation_coefficients = dict(add_connection=1.0, split_connection=0.0, change_weight=0.0,
                                  new_connection_abs_max_weight=5.0, max_weight_mutation=5.0)
     weight = 0.0
     genome = Genome([[1, 3, weight, True], [1, 4, weight, True], [2, 3, weight, True]], 2, 2)
     genome.mutate(mutation_coefficients)
     self.assertEqual([(1, 3), (1, 4), (2, 3), (2, 4)], genome.get_connections_ids())
Exemple #2
0
 def test_mutate_for_0_percent_chance_for_any_mutation(self):
     # probability for each mutation
     mutation_coefficients = dict(add_connection=0.0, split_connection=0.0, change_weight=0.0,
                                  new_connection_abs_max_weight=5.0, max_weight_mutation=5.0)
     weight = 0.0
     genome = Genome([[1, 2, weight, True]], 1, 1)
     genome.mutate(mutation_coefficients)
     # add new connection/node mutation
     self.assertEqual([(1, 2)], genome.get_connections_ids())
     # weight mutation
     (source_id, dest_id, new_weight, enable) = genome.get_connections()[0]
     self.assertAlmostEqual(weight, new_weight)
Exemple #3
0
 def test_mutate_split_conneciton_to_genome_with_disabled_connection(self):
     genome = Genome([[1, 2, 0, False]], 1, 1)
     genome._mutate_split_connection()
     self.assertEqual([(1, 2)], genome.get_connections_ids())
Exemple #4
0
 def test_mutate_new_connection_to_not_full_genome(self):
     full_genome = Genome([[1, 3, 0, True], [1, 4, 0, True], [2, 3, 0, True]], 2, 2)
     full_genome._mutate_new_connection(1.0)
     self.assertEqual([(1, 3), (1, 4), (2, 3), (2, 4)], full_genome.get_connections_ids())
Exemple #5
0
    def test_get_connections_ids(self):
        genome = Genome([[1, 3, 0, True], [1, 4, 0, True], [2, 3, 0, True], [2, 4, 0, True]], 2, 2)
        genome2 = Genome([[1, 4, 0, True], [1, 2, 0, True], [1, 3, 0, True]], 1, 3)

        self.assertEqual(genome.get_connections_ids(), [(1, 3), (1, 4), (2, 3), (2, 4)])
        self.assertEqual(genome2.get_connections_ids(), [(1, 2), (1, 3), (1, 4)])