Estas mezclando tipos de datos. Checa el constructor de la clase Cromosoma.
Código Python:
Ver originalclass 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 originalCromosoma(-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.