¿Cómo debo definir el orden de mi cromosoma en mi algoritmo genético?

En http://cdn.intechopen.com/pdfs/3… (Algoritmos genéticos: ideas básicas, variantes y análisis) tiene una discusión general sobre AG que incluye algunas variaciones de cruce entre dos cromosomas.

En https://arxiv.org/ftp/arxiv/pape… (Estudio comparativo de operadores de crossover adaptativos para algoritmos genéticos para resolver el problema del vendedor ambulante) tiene resultados sobre varios operadores de Xover cuando se aplica al TSP. El operador “Xover ordenado” resultó ser el mejor.

La discusión sobre el operador Xover aparece en todos los libros de GA. Un buen libro sobre esto es Algoritmos genéticos + Estructuras de datos = Programas de evolución: Zbigniew Michalewicz: 9783540606765: Amazon.com: Libros (sección 4.6 y bibliografía).

En mi humilde opinión, su éxito con una cierta variación de Xover depende del problema específico que está tratando de resolver. Además, es la combinación de cómo codifica sus variables en el cromosoma con el operador Xover seleccionado lo que dicta su suerte, no solo el operador Xover.

Esa es una pregunta interesante y nunca la he considerado. Siempre usé un algoritmo de selección de punto de cruce suficientemente aleatorio, así que no me preocupé por eso. Quizás necesite aumentar la p en el siguiente algoritmo para asegurarse de que los genes adyacentes se separen (p = .2?):

N es la longitud del cromosoma

M es el número máximo de cruces

M = pN {puedes experimentar con esto pero he descubierto que p = 0.1 funciona bien}

C es el número de cruces

C = rnd () * (M-1) + 1 {# aleatorio entre 1 – M}