¿Por qué es importante el crossover en el algoritmo genético?

Sin crossover, todo lo que tienes son mutaciones locales. Esto significa que el cambio sucederá lentamente y será muy difícil sacar a su población de un óptimo local.

Con crossover, puede combinar soluciones parciales de diferentes candidatos. Esto a menudo significa hacer un salto bastante grande de cualquiera de los padres, lo que significa que puede salir de un óptimo local un poco más fácilmente.

Para que el crossover funcione, debe asegurarse de que su representación haga posible que el crossover se recombine en algo sensible.

Por ejemplo, para el problema del vendedor ambulante, una representación para un recorrido es [índice de la primera ciudad visitada, índice de la segunda ciudad visitada fuera de la lista de todas las ciudades no visitadas hasta ahora, …]. En esta representación, el uso de crossover tiende a conducir a un recorrido cuya última parte no se parece a ninguno de los padres, ya que el significado de cada coordenada depende de las coordenadas anteriores. Por ejemplo, en el recorrido [3,2,1], la coordenada final corresponde a la ciudad número 1; pero en el recorrido [1,1,1], la coordenada final corresponde a la ciudad número 3. El mismo valor en la misma posición, pero con un significado muy diferente.

Por supuesto, las cosas podrían ser peores. Otra representación para TSP serían las permutaciones reales. En ese caso, el cruce probablemente conducirá a una gira imposible y sin sentido. Por ejemplo, los recorridos del ejemplo anterior ahora se representarían como [3,2,1] y [1,2,3], que podrían combinarse a través de un cruce en [3,2,3], que claramente no es un recorrido válido

Si puede encontrar una representación significativa que permita el cruce, entonces puede ser una herramienta muy poderosa. De lo contrario, debe atenerse a las mutaciones (pero quizás aumente un poco la tasa de mutación para tratar de lidiar con el problema de los óptimos locales).

La pregunta parece implicar que usted sabe qué es un algoritmo genético y la terminología asociada. Entonces, paso directamente a la respuesta: el quid de un algoritmo genético es la creación de “nuevos” individuos en cada generación (algunos de los cuales posiblemente estén más en forma que sus padres) creando así diversidad en la población. Esto resulta en GA “escalando” fuera de los mínimos locales. Si la mutación es el único operador genético, entonces el algoritmo probablemente se atascará en los mínimos locales. Entonces, a todos los efectos prácticos, un GA no es mejor que un algoritmo codicioso.

Promueven la diversidad y la búsqueda de soluciones globales (escapar de los óptimos locales); Esto es similar a la función de mutación. Al preservar los esquemas (bloques de genes), preserva la supervivencia de buenas soluciones, mientras que las mutaciones tienden a borrar esquemas prometedores. Un equilibrio suele ser lo mejor.