Estas mezclando tipos de datos. Checa el constructor de la clase Cromosoma.
    
Código Python:
Ver original- class Cromosoma():  
-     def __init__(self, cromosoma="-1", aptitud=-1): 
-         if cromosoma == "-1": #Por que es un string? 
-             self.cromosoma=self.GenesAleatorios() #Vamos a ver que regresa GenesAleatorios 
-         else: 
-             self.cromosoma=cromosoma 
-              
-         if aptitud == -1: 
-             self.aptitud=0.0 
-         else: 
-             self.aptitud=aptitud 
-   
-   
-     def GenesAleatorios(self): #Sorpresa nunca retorno nada 
-   
-         for i in self.cromosoma: #Si self.cromosoma es un entero esto truena 
-   
-             if random.random() < 0.5: #devuelve float entre 0 y 1 
-                 i = "0" 
-   
-             else: 
-                 i = "1" 
Cuando instancias un objeto cromosoma lo instancias:   
Código Python:
Ver original- Cromosoma(-1, -1) #Por que el primer parametro es un entero? Si lo estas manejando como un string 
Esos son los errores que vi en la clase Cromosoma en el constructor, ya no seguí viendo mas código.