Tengo una duda sobre cómo deberíamos implementar los operadores de cruzamiento y mutación cuando utilizamos estructuras "complejas".
Estoy utilizando dos listas para representar a los individuos, dónde una es una permutación y la otra no. Ambas del mismo largo, y están relacionadas posicionalmente. De hecho, podría verse como una sola lista de pares.
1) Cruzamiento: Al momento de cruzar dos padres, estoy cruzando cada lista independientemente, y después juntando los resultados para obtener los descendientes. Entonces, por ejemplo, si utilizo cruzamiento de dos puntos, los dos puntos para la primer lista serán distintos de los seleccionados para el cruzamiento de la segunda. Me queda la duda de si esto no es demasiado "destructivo" de la información de los padres, ¿debería corregir esto para que los puntos sean los mismos?
2) Mutación: De forma similar, ¿está bien que el parámetro de probabilidad de mutación de entrada se utilice por separado para mutar ambas listas, y luego a partir de ambas mutaciones se cree el individuo mutado que devuelve el operador? ¿o debería mutar el individuo como si esas estructuras fueran indivisibles? ¿O capaz ambas son correctas, y es una decisión que debemos tomar?
Muchas gracias. Saludos,
Benjamín.-