Exemplo n.º 1
0
    def test_initialize(self):

        p = Population(20, objective_function)
        p.add_param(0, 10)
        p.add_param(0, 10)
        p.initialize()
        self.assertEqual(len(p._members), 20)
Exemplo n.º 2
0
    def test_kwargs(self):

        p = Population(10, objective_function_kwargs, {'my_kwarg': 2})
        p.add_param(0, 0)
        p.add_param(0, 0)
        p.initialize()
        self.assertEqual(p.best_ret_val, 2)
Exemplo n.º 3
0
    def test_multiprocessing(self):

        p = Population(10, objective_function, num_processes=4)
        self.assertEqual(p._num_processes, 4)
        p.add_param(0, 10)
        p.add_param(0, 10)
        p.initialize()
        p.next_generation()
Exemplo n.º 4
0
    def test_get_stats(self):

        p = Population(10, objective_function)
        p.add_param(0, 0)
        p.add_param(0, 0)
        p.initialize()
        self.assertEqual(p.best_fitness, 1)
        self.assertEqual(p.best_ret_val, 0)
        self.assertEqual(p.best_params, [0, 0])
        self.assertEqual(p.average_fitness, 1)
        self.assertEqual(p.average_ret_val, 0)
Exemplo n.º 5
0
    def test_next_generation(self):

        p = Population(100, objective_function)
        p.add_param(0, 10)
        p.add_param(0, 10)
        p.add_param(0, 10)
        p.initialize()
        for _ in range(100):
            p.next_generation()
        self.assertEqual(p.best_fitness, 1)
        self.assertEqual(p.best_ret_val, 0)
        self.assertEqual(p.best_params, [0, 0, 0])
Exemplo n.º 6
0
    def test_exceptions(self):

        with self.assertRaises(ReferenceError):
            p = Population(10, None)
        with self.assertRaises(ValueError):
            p = Population(1, objective_function)

        p = Population(10, objective_function)
        with self.assertRaises(RuntimeError):
            p.initialize()
        with self.assertRaises(RuntimeError):
            p.next_generation()
        p.add_param(0, 10)
        p.initialize()
        with self.assertRaises(RuntimeError):
            p.add_param(0, 10)
        with self.assertRaises(ValueError):
            p.next_generation(p_crossover=1.1)
        with self.assertRaises(ValueError):
            p.next_generation(p_crossover=-0.1)
        with self.assertRaises(ValueError):
            p.next_generation(p_mutation=1.1)
        with self.assertRaises(ValueError):
            p.next_generation(p_mutation=-0.1)
Exemplo n.º 7
0
from pygenetics import Population

def minimize_integers(integers):

    return sum(integers)

pop = Population(10, minimize_integers)
pop.add_param(0, 10)
pop.add_param(0, 10)
pop.add_param(0, 10)
pop.initialize()
for _ in range(10):
    pop.next_generation()
    print('Average fitness: {}'.format(pop.average_fitness))
    print('Average obj. fn. return value: {}'.format(pop.average_ret_val))
    print('Best fitness score: {}'.format(pop.best_fitness))
    print('Best obj. fn. return value: {}'.format(pop.best_ret_val))
    print('Best parameters: {}\n'.format(pop.best_params))