def createPop(self, popsize): params = self.params random = self.random import createInd pop = [] ## template individual #tree_genome = self.params['template'] #new_ind = DocplanIndividual(self.random, None, genome=tree_genome) #self.decodePlan(new_ind) #new_ind.rank = 1 #new_ind.crowded_distance = 100 #pop.append(new_ind) import math color_len = int(math.ceil(math.log(len(self.colors), 2))) self.scale_len = int(math.ceil(math.log(params['num_scale'], 2))) for i in xrange(popsize): tree_genome = createInd.createIndividual(random, params['maxDepth'], params['maxRoom'], params['minRoom']) color_genome = [random.randint(0, 1) for i in xrange(color_len)] new_ind = DocplanIndividual(random, None, genome={'tree': tree_genome, 'color': color_genome}) self.initDecode(new_ind) pop.append(new_ind) return pop
def createPop(self, popsize): params = self.params random = self.random import createInd, math pop = [] color_len = int(math.ceil(math.log(len(self.colors), 2))) self.scale_len = int(math.ceil(math.log(params["num_scale"], 2))) for i in xrange(popsize): tree_genome = createInd.createIndividual(random, params["maxDepth"], params["maxRoom"], params["minRoom"]) color_genome = [random.randint(0, 1) for i in xrange(color_len)] new_ind = DocplanIndividual(random, None, genome={"tree": tree_genome, "color": color_genome}) self.initDecode(new_ind) # evaluate this new individual based on obj criteria only self.fitness(new_ind, None) pop.append(new_ind) # sort population by obj score, and set rank proportional to fitness pop.sort(lambda a, b: cmp(a.fitness, b.fitness)) for i in xrange(len(pop)): pop[i].rank = i return pop
def createPop(self, popsize): params = self.params random = self.random import createInd pop = [] ## template individual #tree_genome = self.params['template'] #new_ind = DocplanIndividual(self.random, None, genome=tree_genome) #self.decodePlan(new_ind) #new_ind.rank = 1 #new_ind.crowded_distance = 100 #pop.append(new_ind) for i in xrange(popsize): tree_genome = createInd.createIndividual(random, params['maxDepth'], params['maxRoom'], params['minRoom'], params['num_shapes']) new_ind = DocplanIndividual(random, None, genome=tree_genome) self.decodePlan(new_ind) pop.append(new_ind) return pop
def createPop(self, popsize): import createInd pop = [] # template individual tree_genome = self.params["template"] new_ind = FloorplanIndividual(self.random, None, genome=tree_genome) self.decodePlan(new_ind) new_ind.rank = 1 new_ind.crowded_distance = 100 pop.append(new_ind) for i in xrange(popsize - 1): tree_genome = createInd.createIndividual( self.params["maxDepth"], self.params["maxRoom"], self.params["minRoom"] ) new_ind = FloorplanIndividual(self.random, None, genome=tree_genome) self.decodePlan(new_ind) pop.append(new_ind) return pop