Example #1
0
 def combinar_genes(self, genes1, genes2):
     """Funcion tonta para combinar los genes, aleatoriamente"""
     combinacion1 = []
     combinacion2 = []
     if self.cruzamiento == 1:
         # combinar aleatoriamente
         for i in xrange(81):
                     if random.randint(0,1):
                         combinacion1.append(genes1[i])
                         combinacion2.append(genes2[i])
                     else:
                         combinacion1.append(genes2[i])
                         combinacion2.append(genes1[i])
     elif self.cruzamiento == 2:
         # combinar por cortes azarosos
         i = random.randint(0,80)
         combinacion1.extend(genes1[0:i])
         combinacion1.extend(genes2[i:81])
         combinacion2.extend(genes2[0:i])
         combinacion2.extend(genes1[i:81])
     elif self.cruzamiento == 3:
         # combinar por fila
         for i in xrange(9):
             if random.randint(0,1):
                 combinacion1.extend(genes1[i:i+9])
                 combinacion2.extend(genes2[i:i+9])
             else:
                 combinacion1.extend(genes2[i:i+9])
                 combinacion2.extend(genes1[i:i+9])
         pass
     # BINOMIAL PURO
     
     return (convertir(combinacion1, type(self.genes)), convertir(combinacion2, type(self.genes)))
Example #2
0
 def get_region(self, region):
     """Funcion personalizada para obtener una region (base 0) a partir de los genes"""
     mi_region = []
     start = (region/3)*27 + (region%3)*3
     for j in xrange(0, 18, 9):
         for i in xrange(start, start + 3):
             mi_region.append(self.genes[i + j])        
     return convertir(mi_region, type(self.genes))
Example #3
0
 def get_columna(self, columna):
     """Funcion personalizada para obtener una columna (base 0) a partir de los genes"""
     mi_columna = []
     for fila in xrange(0, 80, 9):
         try:
             mi_columna.append(self.genes[fila + columna])
         except:
             print self.genes
             print len(self.genes)
             print fila + columna
             raise
     return convertir(mi_columna, type(self.genes))