예제 #1
0
 def test_create2DBinary_default(self):
     _genome = G2DBinaryString.G2DBinaryString(3, 3)
     self.assertTrue(hasattr(_genome, 'width'))
     self.assertTrue(hasattr(_genome, 'height'))
     self.assertTrue(hasattr(_genome, 'initializator'))
     self.assertTrue(hasattr(_genome, 'mutator'))
     self.assertTrue(hasattr(_genome, 'crossover'))
예제 #2
0
    def test_2DBinary_eq(self):
        _genome1 = G2DBinaryString.G2DBinaryString(3, 2)
        _genome2 = G2DBinaryString.G2DBinaryString(3, 3)
        self.assertFalse(_genome1 == _genome2)

        _genome1 = G2DBinaryString.G2DBinaryString(2, 3)
        _genome2 = G2DBinaryString.G2DBinaryString(3, 3)
        self.assertFalse(_genome1 == _genome2)

        _genome1 = G2DBinaryString.G2DBinaryString(3, 3)
        _genome2 = G2DBinaryString.G2DBinaryString(3, 3)
        _genome1.setItem(2, 1, 0)
        _genome2.setItem(2, 1, 1)
        self.assertFalse(_genome1 == _genome2)

        _genome1 = G2DBinaryString.G2DBinaryString(3, 3)
        _genome2 = G2DBinaryString.G2DBinaryString(3, 3)
        self.assertTrue(_genome1 == _genome2)
예제 #3
0
# This function is the evaluation function, we want
# to give high score to more zero'ed chromosomes
def eval_func(chromosome):
    score = 0.0

    # iterate over the chromosome
    for i in range(chromosome.getHeight()):
        for j in range(chromosome.getWidth()):
            # You can use the chromosome.getItem(i, j)
            if chromosome[i][j] == 0:
                score += 0.1
    return score


# Genome instance
genome = G2DBinaryString.G2DBinaryString(8, 5)

# The evaluator function (objective function)
genome.evaluator.set(eval_func)
genome.crossover.set(Crossovers.G2DBinaryStringXSingleHPoint)
genome.mutator.set(Mutators.G2DBinaryStringMutatorSwap)

# Genetic Algorithm Instance
ga = GSimpleGA.GSimpleGA(genome)
ga.setGenerations(200)

# Do the evolution, with stats dump
# frequency of 10 generations
ga.evolve(freq_stats=10)

# Best individual
예제 #4
0
 def test_2DBinary_clearString(self):
     _genome = G2DBinaryString.G2DBinaryString(2, 4)
     _genome.clearString()
     self.assertEqual(len(_genome.genomeString), _genome.getHeight())
     self.assertEqual(len(_genome.genomeString[0]), _genome.getWidth())
     self.assertEqual(_genome[1][1], None)
예제 #5
0
 def test_2DBinary_resumeString(self):
     _genome = G2DBinaryString.G2DBinaryString(3, 3)
     self.assertIsInstance(_genome.resumeString(), str)
예제 #6
0
 def test_repr(self):
     _genome = G2DBinaryString.G2DBinaryString(3, 3)
     self.assertIsInstance(repr(_genome), str)
예제 #7
0
 def test_2DBinary_iter(self):
     _genome = G2DBinaryString.G2DBinaryString(3, 3)
     self.assertIsInstance(iter(_genome), Iterable)
예제 #8
0
 def test_2DBinary_setitem(self):
     _genome = G2DBinaryString.G2DBinaryString(3, 3)
     _genome.setItem(1, 1, 1)
     self.assertEqual(_genome.getItem(1, 1), 1)
     with self.assertRaises(ValueError):
         _genome.setItem(1, 1, 2)