def initRandomPop(self):  #gerar individuos de forma aleatoria
     self.indivs = []
     for _ in range(self.popsize):  #quantidade de listas a gerar
         indiv_i = Indiv(
             self.indsize,
             [])  #gerar os individuos aleatoriamente (n de elemntos, lista)
         self.indivs.append(indiv_i)  #adicionar os individuos a lista
예제 #2
0
 def initRandomPop(self):
     self.indivs = []  #se não existirem indivs
     for _ in range(self.popsize):  #para o tamanho da população fornecido
         indiv_i = Indiv(
             self.indsize, []
         )  #crir um objeto Indic com o tamanho fornecido no inicio da classe Popul
         self.indivs.append(indiv_i)  #adiciona-se o novo individuo à lista
예제 #3
0
 def generate_indvs(self, block):
     """
     generate the individuals for the first generation using the previously built blocks
     """
     res = []
     for i in range(self.popsize):
         x = block.copy()
         shuffle(x)
         indv = Indiv(self.matdist, list(itertools.chain.from_iterable(x)))
         res.append(indv)
     return res
예제 #4
0
    def initRandomPopWithRandomIndiv(self, pop_size):
        indivs = []
        for i in range(pop_size):
            indiv = Indiv(self.indivsize,
                          self.distances,
                          True, [],
                          False,
                          random=True)
            indivs.append(indiv)
        self.indivs = self.pop_sorted(indivs)

        #Atribuicao de lista de individuos ordenada da populacao
        self.indivs = self.pop_sorted(indivs)
예제 #5
0
    def initRandomPos(self, pop_size):
        '''
        Funcao inicia uma populacao aleatoria de individuos com
        tamanho pop_size
        '''
        init_pos = []
        indivs = []  # Lista de individuos da populacao
        existing_positions = [
        ]  # Lista que guarda o ponto de partida de cada ind
        for i in range(pop_size):
            found = False
            while not found:
                init_pos = sample(range(self.indivsize),
                                  1)  # primeira cidade aleatória
                if init_pos not in existing_positions:
                    existing_positions.append(init_pos)
                    found = True
            # Criacao de novo individuo
            indiv = Indiv(self.indivsize, self.distances, True, init_pos)
            indivs.append(indiv)

        # Atribuicao de lista de individuos da populacao, ordenada do melhor para pior fitness
        self.indivs = self.pop_sorted(indivs)
예제 #6
0
파일: Popul.py 프로젝트: pg42876/AAB
 def initRandomPop(self):
     self.indivs = []
     for _ in range(self.popsize):
         indiv_i = Indiv(self.indsize, [])
         self.indivs.append(indiv_i)