Пример #1
0
 def test_roulette_wheel_selection_factory(self):
     pls = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
     fitness = [1, 3, 5, 7, 9, 11, 13, 15, 2, 4, 6, 8, 10, 12, 14, 16]
     selector = helper.roulette_wheel_selection_factory()
     seeds, gametes = selector(pls, fitness)
     #print seeds,gametes
     self.assertEquals(len(pls), len(seeds))
     self.assertEquals(len(pls), len(gametes))
     for i in xrange(len(seeds)):
         self.assertTrue(seeds[i] in pls)
         self.assertTrue(gametes[i] in pls)
         self.assertTrue(seeds[i] != gametes[i])
     #times=2
     selector2 = helper.roulette_wheel_selection_factory(2)
     seeds, gametes = selector2(pls, fitness)
     #print seeds,gametes
     self.assertEquals(2 * len(pls), len(seeds))
     self.assertEquals(2 * len(pls), len(gametes))
     for i in xrange(len(seeds)):
         self.assertTrue(seeds[i] in pls)
         self.assertTrue(gametes[i] in pls)
         self.assertTrue(seeds[i] != gametes[i])
     #times非法
     self.assertRaises(AssertionError,
                       helper.roulette_wheel_selection_factory, 1.6)
Пример #2
0
 def __init__(self, evmode='profit', psize=100, maxstep=100, goal=10000):
     assert evmode in evmap
     self.prepare()  #准备argnames,argpool和template_func
     self.argnames = [k for k, v in sorted(self.args.items())
                      ]  #为了方便预定义种子对位置的查找,因为dict是不保序的
     #self.argnames = self.args.keys()
     self.argpool = [v for k, v in sorted(self.args.items())
                     ]  #为了方便预定义种子对位置的查找,因为dict是不保序的
     #print self.argpool
     #self.argpool = self.args.values()
     self.bitgroups = [
         helper.calc_bitnumber(len(sp)) for sp in self.argpool
     ]
     #print self.bitgroups
     self.celler = BCell  #这里只能是BCell
     #print self.argnames
     self.extractor = evmap[evmode]
     self.psize = psize
     self.maxstep = maxstep
     #self.crossover = helper.uniform_crossover   #可能被predefined_population用到
     self.crossover = helper.bitgroups_crossover_factory(
         self.bitgroups, helper.single_point_crossover_g)
     self.reproducer = helper.simple_reproducer_factory(0.85, 0.1)
     self.selector = helper.roulette_wheel_selection_factory(
         self.reproducer.times_of_length)
     self.goal = goal
     self.ev_result = {}
Пример #3
0
 def test_cached_judge(self):
     class TCell(object):pass
     cell = TCell()
     proxy = pmock.Mock()
     proxy.expects(pmock.once()).judge(pmock.eq(cell)).will(pmock.return_value(88))
     reproducer = helper.simple_reproducer_factory(0.8,0.001)
     nature = Nature(proxy.judge,helper.nonlinear_rank,helper.roulette_wheel_selection_factory(reproducer.times_of_length),reproducer)
     nature.cached_judge(cell)
     nature.cached_judge(cell)
     nature.cached_judge(cell)
     proxy.verify()
Пример #4
0
 def __init__(self,evmode='profit',psize=100,maxstep=100,goal=10000):
     assert evmode in evmap
     self.prepare()   #准备argnames,argpool和template_func
     self.argnames = [k for k,v in sorted(self.args.items())]    #为了方便预定义种子对位置的查找,因为dict是不保序的
     #self.argnames = self.args.keys()
     self.argpool = [v for k,v in sorted(self.args.items())]     #为了方便预定义种子对位置的查找,因为dict是不保序的   
     #print self.argpool
     #self.argpool = self.args.values()
     self.bitgroups = [ helper.calc_bitnumber(len(sp)) for sp in self.argpool]
     #print self.bitgroups
     self.celler = BCell    #这里只能是BCell
     #print self.argnames
     self.extractor = evmap[evmode]
     self.psize = psize
     self.maxstep = maxstep
     #self.crossover = helper.uniform_crossover   #可能被predefined_population用到
     self.crossover = helper.bitgroups_crossover_factory(self.bitgroups,helper.single_point_crossover_g)
     self.reproducer = helper.simple_reproducer_factory(0.85,0.1)
     self.selector = helper.roulette_wheel_selection_factory(self.reproducer.times_of_length)        
     self.goal = goal
     self.ev_result = {}
Пример #5
0
 def test_init(self):
     judge = lambda cell : 100
     reproducer = helper.simple_reproducer_factory(0.8,0.001)
     nature = Nature(judge,helper.nonlinear_rank,helper.roulette_wheel_selection_factory(reproducer.times_of_length),reproducer)
     nature = Nature(judge,helper.nonlinear_rank,helper.roulette_wheel_selection_factory(reproducer.times_of_length),reproducer,101)