def init_pop( populationSize, popName= "pop", rangemin = 0 ,rangemax = 11, listSize = 66): server = Population(popName) server.initialize() for individual in range(populationSize): chrome = [random.randint(rangemin,rangemax) for _ in range(listSize)] individual = {"id":None,"fitness":{"DefaultContext":0.0 },"chromosome":chrome,"views":0} server.put_individual(**individual)
class TestIndividual(TestCase): def setUp(self): self.population1 = Population("test_population1") self.population2 = Population("test_population2") self.population1.initialize() self.population2.initialize() def test_put(self): key = self.population1.individual_next_key() individual = Individual(id=key) individual.another_property = "test" self.assertEqual(individual.put(self.population1.name),True) self.assertEqual(individual.id,key) self.assertEqual(individual.another_property,"test") def test_get(self): key = self.population1.individual_next_key() individual = Individual(id=key) #No se puede hacer get sin guardar antes try: self.assertRaises(LookupError, individual.get()) except: pass individual.put(self.population1.name) self.assertIsInstance(individual.get(),Individual) self.assertIsInstance(individual.get(as_dict=True),dict) def test_as_dict(self): key = self.population1.individual_next_key() individual = Individual(id=key) self.assertIsInstance(individual.as_dict(),dict) def test_two_populations(self): key = self.population1.individual_next_key() individual = Individual(id=key) individual.put(self.population1.name) individual.put(self.population2.name) self.assertIsInstance(individual.get(),Individual) self.assertIsInstance(individual.get(as_dict=True),dict)
def init_pop_crh(populationSize, popName= "pop"): server = Population(popName) server.initialize() for individual in range(populationSize): chrome = [random.randint(1,19),random.randint(10,30),random.randint(0,1),random.randint(0,1),random.randint(0,1),random.randint(0,1),random.randint(0,5),random.randint(0,1),random.randint(0,1),random.randint(0,1),random.randint(0,4),random.randint(0,1),random.randint(0,1),random.randint(0,2),random.randint(1,3)] individual = {"id":None,"fitness":{"DefaultContext":0.0 },"chromosome":chrome,"views":0} print individual server.put_individual(**individual) r = redis.StrictRedis(host='localhost', port=6379, db=0) redis_data = [eval(r.get(ind)) for ind in r.keys("pop:individual:*")] for ind in redis_data: #print len(redis_data) if ind["id"] != "": individual_node = Nodo() individual_node.create_nodo(element_type="individual", id=ind["id"], chromosome=ind["chromosome"], views=ind["views"])
class TestIndividual(TestCase): def setUp(self): self.population1 = Population("test_population1") self.population2 = Population("test_population2") self.population1.initialize() self.population2.initialize() def test_put(self): key = self.population1.individual_next_key() individual = Individual(id=key) individual.another_property = "test" self.assertEqual(individual.put(self.population1.name), True) self.assertEqual(individual.id, key) self.assertEqual(individual.another_property, "test") def test_get(self): key = self.population1.individual_next_key() individual = Individual(id=key) #No se puede hacer get sin guardar antes try: self.assertRaises(LookupError, individual.get()) except: pass individual.put(self.population1.name) self.assertIsInstance(individual.get(), Individual) self.assertIsInstance(individual.get(as_dict=True), dict) def test_as_dict(self): key = self.population1.individual_next_key() individual = Individual(id=key) self.assertIsInstance(individual.as_dict(), dict) def test_two_populations(self): key = self.population1.individual_next_key() individual = Individual(id=key) individual.put(self.population1.name) individual.put(self.population2.name) self.assertIsInstance(individual.get(), Individual) self.assertIsInstance(individual.get(as_dict=True), dict)
def initialize_population(population_name='pop', size=10, template=None): evospace = Population(population_name) #Delete population evospace.initialize() # Add 100 Individuals # Chromosome Size determined by template # GENE TYPE # 0 number of styles # 1 title # 2 image # 3 option 0 # N option N # TODO: Generate individual chromosomes from template for i in range(size): individual = { 'chromosome': [ randint(0, 2), # number of styles randint(0, 2), # titles randint(0, 3), # images randint(0, 2), # salutation randint(0, 5), # name randint(0, 4), # action ], "fitness": { "DefaultContext": 0.0 }, "score": 0, "id": None } evospace.put_individual(**individual)