¿Qué número de puntos cruzados será el mejor para mi algoritmo genético?

Bueno, eso depende. Hasta donde yo sé, no existe una “bala de plata” para los operadores cruzados. Lo que recomendaría es usar diferentes operadores (por ejemplo, un punto, dos puntos, su solución, etc.) y autoadaptar su probabilidad de activación durante la ejecución, de acuerdo con su rendimiento.

Hay varias formas de hacerlo, pero en pocas palabras, después de evaluar a cada individuo, debe “recompensar” a los operadores que produjeron los que obtuvieron el mayor rendimiento, aumentando ligeramente su probabilidad de activación.

Por ejemplo, puede echar un vistazo a este documento, donde algunos de mis colegas y yo propusimos una ligera mejora en el concepto: en las referencias, hay varios documentos fundamentales sobre las probabilidades de los operadores autoadaptativos en EA / GA.

Selección del operador utilizando un bandido dinámico multi-armado mejorado

He implementado el apareamiento de esta manera:

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 {número aleatorio entre 1 – M

Hago esto cada vez que emparejo 2 cromosomas, por lo que el número de cruces cambia constantemente.

More Interesting

¿Existen algoritmos de descenso de gradiente que intenten ajustar valores de datos que representan cada uno un promedio de puntos de datos desconocidos individualmente?

Cómo fusionar tres matrices ordenadas en una sola matriz ordenada de manera eficiente

Una función de densidad de probabilidad, f, no es cero cuando a <x 0. ¿Cuáles son las restricciones en a, by k?

¿Cómo debo hacer uso de sitios como HackerEarth y GeeksforGeeks si tengo habilidades de algoritmos por debajo del promedio?

Tengo la cadena de entrada, también tengo la cadena encriptada. ¿Cómo averiguo qué algoritmo de cifrado se utilizó?

¿Cuál es la forma más eficiente para que un programador principiante entienda las tablas hash y los intentos?

¿Qué es la ordenación de tramas en las redes?

Cómo ejecutar un algoritmo escrito en C

¿Cuál es la mejor manera de detectar conjuntos similares de flotadores de 0 a 1?

¿Qué consejos y técnicas puedo aprender para retener mi comprensión de algoritmos y estructuras de datos?

¿Cuál es la mejor manera de crear una estructura de datos basada en valores clave en C ++ que admita memoria compartida entre procesos usando C ++ 11?

¿Cuál es la mejor manera de fusionar datos mal estructurados de grandes bases de datos?

¿Cuáles son algunos conceptos erróneos comunes sobre los algoritmos?

Traté de hacer este problema: 1984 - Pesadilla de navegación, pero obtengo TLE. ¿Cómo puedo mejorar mi algoritmo? ¿Cuál es la explicación de esta tarea?

¿Existe un algoritmo de clasificación que pueda ordenar los n números dados en O (1) donde n> 2?