示例#1
0
    def test_find_max_fitness_and_child(self):
        ga = GASolver(max_generations, population_size, antibody_cnt, nc_cnt,
                      c_cnt, markers, cell_cnt, mu_list, sigma_list)
        ga.create_random_population()

        # don't include measured. All the population is measured so return -1
        val = ga.find_max_fitness_and_child(0, False)

        self.assertEqual(val['fitness'], -1)
        self.assertEqual(val['child'].tolist(), ga.population[0][0].tolist())

        # include measured
        val = ga.find_max_fitness_and_child(0, True)
        self.assertGreaterEqual(val['fitness'], 0)

        ga.cross_over_generation(0, ga.population_size / 2)

        # don't include measured. Some are unmeasured so must be > 0
        val = ga.find_max_fitness_and_child(0, False)
        self.assertGreaterEqual(val['fitness'], 0)

        val = ga.find_max_fitness_and_child(0, True)
        self.assertGreaterEqual(val['fitness'], 0)
示例#2
0
    def test_cross_over_generation(self):

        ga = GASolver(max_generations, population_size, antibody_cnt, nc_cnt,
                      c_cnt, markers, cell_cnt, mu_list, sigma_list)

        ga.create_random_population()
        ga.survive_n_fittest(0, population_size / 2)

        start_ind = population_size / 2
        new_start_ind = ga.cross_over_generation(1, start_ind)
        self.assertEqual(ga.total_population, population_size * 5 / 4)
        self.assertEqual(new_start_ind, start_ind * 3 / 2)

        # half is zero
        self.assertTrue([0, 0, 0, 0] not in ga.population[0].tolist())
        x = [el for el in ga.population[1] if el.tolist() == [0, 0, 0, 0]]
        self.assertEqual(len(x), population_size / 4)