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
示例#2
0
    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
示例#4
0
    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