¿Por qué tener un valor cruzado que no sea 0.5?


8

La mayor parte de la literatura que he leído sobre GA sugiere usar un valor cruzado de alrededor de 0.7, por lo que toma el primer 70% de los genes de un cromosoma y el último 30% del otro para producir un nuevo cromosoma.

Si está eligiendo los cromosomas parentales tomando los dos primeros (clasificados según su estado físico), entonces puedo ver la lógica aquí, ya que está dando más peso a los genes del cromosoma de mayor calificación. Sin embargo, si está utilizando un método estocástico (como una rueda de ruleta) para elegir a los padres, entonces, ¿cuál es el punto de usar algo que no sea 0.5 como valor cruzado? Dado que ha elegido los cromosomas A y B como los padres, es tan probable que elija A primero y B segundo como B primero y A segundo, ¿verdad?

De hecho, solo he escrito un GA hasta ahora (todavía en la parte inferior de la curva de aprendizaje, ¡pero avanzando rápidamente gracias a una gran ayuda aquí!), Pero los experimentos sobre eso muestran que 0.5 da una convergencia más rápida a la solución que Cualquier otro valor.

¿O me estoy perdiendo algo?


2
Most of the literature I've read about GAs suggests using a crossover value of around 0.7<- una cosa a tener en cuenta es que muchos de estos tipos de valores en la optimización heurística se derivan más o menos en función de qué valores parecen conducir a buenos resultados (en lugar de una derivación empírica). Estoy menos familiarizado con GA, pero sé que en otros métodos de optimización basados ​​en la población, las constantes se determinaron de manera bastante arbitraria, ya que algunos investigadores hicieron algunos experimentos básicos, encontraron valores que funcionaban mejor y luego esos valores fueron adoptados por la comunidad de optimización en general .
enderland

1
Además, no estoy muy seguro de por qué esta pregunta fue rechazada, parece perfectamente sobre el tema y el alcance.
enderland

1
No me preocuparía por el voto negativo ... Recibo uno en casi todas las publicaciones que hago aquí.
Robert Harvey

2
@enderland: ¿irías tan lejos como para decir que esos valores están mutados al azar y las combinaciones más adecuadas sobreviven? ;-)
Jörg W Mittag

2
También agregaría que su valor cruzado no necesariamente tiene que permanecer estático, ya que parte del objetivo de GA es obtener mucha variación para explorar muchas rutas, podría ser una opción para elegir un valor cruzado aleatorio entre, digamos, 0.5 y 0.8. Especialmente si no estás necesariamente usando una selección determinista.
Delioth

Respuestas:


5

La operación de cruce ideal depende mucho del espacio del problema. Los supuestos subyacentes de los algoritmos evolutivos y genéticos son que dos buenas soluciones a veces se pueden combinar en una mejor solución: las buenas soluciones se parecen a otras buenas soluciones. Esto tiene sentido intuitivamente si el espacio del problema tiene un óptimo único al que convergerá cada generación sucesiva.

Cuando hay múltiples óptimas, el espacio entre estas óptimas no es, por definición, óptimo. Si tomamos un cromosoma A que está cerca de un óptimo y lo combinamos con un cromosoma B de cerca de otro óptimo, aterrizaremos en el medio y probablemente tendremos un cromosoma c resultante que es peor que sus padres. Mantenerse más cerca de uno u otro padre aumenta la probabilidad de obtener un cromosoma d que sea mejor o al menos no mucho peor que el de los padres.

     _                d         ^ fitness
    / \              d \        |
   /   A            B   \       |
__/     \___ccc___dd     \____  |
-----------------------------------> chromosome space
     |                |
     |     valley     |
     |     of "meh"   |
1. optimum         2. optimum

El valor cruzado es solo un parámetro de algoritmo que puede ajustar para adaptarse a la estructura de su problema. A veces verá una convergencia más rápida con un valor cruzado bajo, a veces con un valor cruzado muy alto. Pero para valores muy altos, esto sería menos como un crossover, pero solo un cambio muy pequeño como una mutación. Entonces, en lugar de usar un valor cercano a 1.0, preferiría reducir la tasa de cruce y aumentar la tasa de mutación.


@amon Gracias por la explicación. Supongo que como con la mayoría de estas cosas, es un caso de jugar para ver qué funciona en la situación particular
Avrohom Yisroel

Esto me hace pensar que quizás la tasa de cruce debería seleccionarse al azar cada vez.
Preguntar por Monica

2

Confusamente, la tasa de cruce y la tasa de mutación, aunque se denominan de manera similar, generalmente se interpretan de manera diferente.

Tasa de mutación de x% ==> Usted realiza el operador de mutación con probabilidad 1.0, y cada aplicación de ese operador cambiará x% de los bits del individuo mutado.

Tasa de cruce de x% ==> Usted elige para llevar a cabo la cruce en absoluto con probabilidad x.

Por lo tanto, una tasa de cruce del 70% no significa que tome el 70% de los bits del padre 1 y el 30% del padre 2. Significa que realizará el operador de cruce que haya elegido el 70% del tiempo. El 30% restante del tiempo, pasará a los padres sin modificar al grupo de descendientes.


Gracias por la respuesta. Tal vez no me expliqué claramente, pero así es como entendí los dos. No estaba preguntando sobre la mutación en absoluto, solo sobre el crossover.
Avrohom Yisroel
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.