class DiversitySelectionTest(unittest.TestCase):
    """Test selection trying to maximize diversity.
    """
    def setUp(self):
        self.selector = DiversitySelection(NoSelection(), random_genome)

    def test_get_new_organism(self):
        """Getting a new organism not in the new population.
        """
        org = random_organism()
        old_pop = [org]
        new_pop = []

        new_org = self.selector._get_new_organism(new_pop, old_pop)
        assert new_org == org, "Got an unexpected organism %s" % new_org

    def test_no_retrieve_organism(self):
        """Test not getting an organism already in the new population.
        """
        org = random_organism()
        old_pop = [org]
        new_pop = [org]

        new_org = self.selector._get_new_organism(new_pop, old_pop)
        #assert new_org != org, "Got organism already in the new population."

    def test_selection(self):
        """Test basic selection on a small population.
        """
        pop = [random_organism() for org_num in range(50)]

        new_pop = self.selector.select(pop)

        assert len(new_pop) == len(pop), "Did not maintain population size."
class DiversitySelectionTest(unittest.TestCase):
    """Test selection trying to maximize diversity.
    """
    def setUp(self):
        self.selector = DiversitySelection(NoSelection(), random_genome)

    def test_get_new_organism(self):
        """Getting a new organism not in the new population.
        """
        org = random_organism()
        old_pop = [org]
        new_pop = []

        new_org = self.selector._get_new_organism(new_pop, old_pop)
        assert new_org == org, "Got an unexpected organism %s" % new_org

    def test_no_retrieve_organism(self):
        """Test not getting an organism already in the new population.
        """
        org = random_organism()
        old_pop = [org]
        new_pop = [org]

        new_org = self.selector._get_new_organism(new_pop, old_pop)
        #assert new_org != org, "Got organism already in the new population."

    def test_selection(self):
        """Test basic selection on a small population.
        """
        pop = [random_organism() for org_num in range(50)]

        new_pop = self.selector.select(pop)

        assert len(new_pop) == len(pop), "Did not maintain population size."
Example #3
0
    def _set_up_genetic_algorithm(self):
        """Overrideable function to set up the genetic algorithm parameters.

        This functions sole job is to set up the different genetic
        algorithm functionality. Since this can be quite complicated, this
        allows cusotmizablity of all of the parameters. If you want to
        customize specially, you can inherit from this class and override
        this function.
        """
        self.motif_generator = RandomMotifGenerator(self.alphabet)

        self.mutator = SinglePositionMutation(mutation_rate=0.1)
        self.crossover = SinglePointCrossover(crossover_prob=0.25)
        self.repair = AmbiguousRepair(Schema(self.alphabet.alphabet_matches),
                                      4)
        self.base_selector = TournamentSelection(self.mutator, self.crossover,
                                                 self.repair, 2)
        self.selector = DiversitySelection(self.base_selector,
                                           self.motif_generator.random_motif)
 def setUp(self):
     self.selector = DiversitySelection(NoSelection(), random_genome)
Example #5
0
 def setUp(self):
     self.selector = DiversitySelection(NoSelection(), random_genome)