¿Podemos implementar un algoritmo genético sin usar mutación?

Imagina que estás subiendo una colina por la noche. Es completamente negro, por lo que solo puede ver hasta donde la linterna en su mano está brillando (no muy lejos). Has estado caminando por una pendiente por un tiempo, pero luego notas que el suelo comienza a estabilizarse. Después de dar unos pasos más y detenerse en lo que parece una tierra plana, concluye que ha llegado a la cima de la colina.

Hay dos opciones: quedarse en la cima de la colina o seguir caminando.

Eliges este último, y al instante te encuentras cayendo por una pendiente. Una vez que la pendiente toca fondo, decides seguir en la misma dirección. De repente notas que el suelo comienza a inclinarse hacia arriba nuevamente. Sigue caminando, pero esta vez el esfuerzo es más largo (y quizás más empinado) que en la pendiente ascendente anterior. Después de un período de tiempo, llegas a tierra plana de nuevo, y concluyes que has llegado a la cima de otra colina. pero como sabes que la segunda subida fue más larga y empinada que la primera, puedes concluir que has alcanzado una cumbre más alta.

Podrías haberte quedado donde estabas. Después de todo, estabas en un punto óptimo en este paisaje montañoso, un punto localmente óptimo.

¿Qué pasa si hay algo mejor?

Un algoritmo genético, como cualquier algoritmo metaheurístico, explora las laderas, caminando hacia arriba y hacia abajo. Pero a diferencia del algoritmo tradicional de escalada de montaña con fuerza bruta, el algoritmo genético puede explotar sus hallazgos en las colinas para producir soluciones más evolucionadas y de mayor altitud (cruce) y escalar las colinas de manera más eficiente. Desafortunadamente, hay rendimientos decrecientes en este enfoque (los resultados de cruzar repetidamente las mejores soluciones en una generación se estabilizarán en una solución localmente óptima) si no intenta algo nuevo de manera aleatoria y riesgosa. Es por eso que un algoritmo genético al azar muta mutaciones al azar para producir algo no necesariamente mejor, sino nuevo. La mutación podría proporcionar una solución aún mejor que se puede cruzar con otras soluciones de gran altitud y gran ajuste. Con la analogía de la colina, si el algoritmo permaneció en la primera cumbre de la colina (cruzando solo), nunca habría sufrido la caída (mutado una solución) y, finalmente, descubrió una nueva solución que AÚN es mejor (tal vez no sea óptima a nivel mundial, pero mejor ) en la cima de la colina más alta. Por lo tanto, para responder a su pregunta, se puede implementar un algoritmo genético sin mutación, pero el algoritmo se atascará constantemente en soluciones óptimas localmente porque se adhiere a la recombinación de soluciones muy buenas en lugar de dar un salto de fe y mutar una solución en algo que podría incluso mejor.

En términos más generales, un buen algoritmo genético explota las buenas soluciones que ha encontrado en el espacio de búsqueda con crossover, y explora otras soluciones en el espacio de búsqueda con mutación.

Si aún no lo ha hecho, intente implementar este algoritmo para aproximar una función matemática óptima o para aproximar soluciones al problema del vendedor ambulante, e intente apagar y encender su función de mutación. Encontrará una diferencia notable en los resultados.

No.

Si no agrega mutación, el GA tendrá que trabajar con la información que tiene. Es posible que vea un pequeño aumento en el estado físico promedio a medida que el sistema combina los datos aleatorios iniciales de tal manera que comienza a subir el pie de una colina. Pero sin mutación, no puede introducir nueva información.

No se puede conducir un automóvil sin combustible. Las mutaciones son el combustible de los AG.

Las operaciones básicas del algoritmo genético son elitismo, selección, cruce y mutación.

Excepto la mutación, otros operadores no pueden aumentar el subespacio de decisión abarcado por la población descendiente en un sentido algebraico lineal. Por lo tanto, el subespacio de decisión abarcado por la población descendiente siempre será el subespacio del espacio de decisión abarcado por la población parental, lo que puede perder gradualmente la dimensión del espacio de decisión sobre la generación sucesiva de descendientes.

Pero, el tamaño de la población suele ser uno o más orden superior a la dimensión del espacio de decisión. Por lo tanto, la pérdida permanente de dimensión antes de alcanzar los criterios de terminación puede no ocurrir.

Aunque es difícil emitir un juicio, se puede considerar lo siguiente:

  • Para el algoritmo genético codificado en binario, la mutación puede aumentar la calidad de la solución.
  • La mayoría de los crossovers modernos utilizados en algoritmos genéticos codificados reales también sirven para el propósito práctico de la mutación.
  • Se requiere mutación para el algoritmo genético elitista. Incluso, para un algoritmo genético de alta elitismo, la tasa de mutación debería ser mayor.

En algún momento, la mutación se usa para obtener la solución mejor / factible más cercana, a través de alguna otra técnica disponible. Por ejemplo:

  • Para el entrenamiento de la red neuronal artificial usando un algoritmo genético, la mutación se puede usar como propagación inversa sobre la población cruzada para la mejor solución más cercana.
  • Para el problema de optimización de la forma, el material colgante puede eliminarse mediante la mutación del algoritmo genético codificado en binario para obtener la mejor solución posible más cercana.

More Interesting

Cómo reducir los componentes fuertemente conectados en nodos únicos de manera eficiente si estoy usando una representación de lista de adyacencia

¿Cuál es la licencia del algoritmo de agrupación combinatoria multiescala?

¿Cuál es el algoritmo utilizado para convertir cadenas en enteros?

¿Algún algoritmo de aprendizaje profundo quedará obsoleto algún día con los algoritmos tradicionales? ¿O los algoritmos de aprendizaje profundo solo son adecuados para problemas específicos?

¿Qué algoritmo es fácil de aprender pero aún tiene una gran importancia?

Cómo resolver problemas máximos de subarreglos de productos

¿Cuáles son los famosos algoritmos de Java para principiantes?

Programación competitiva: ¿Se pueden resolver todos los problemas de Fenwick Tree con Segment Tree?

¿Qué debo comenzar primero con estructuras de datos y algoritmos o inteligencia artificial de aprendizaje automático?

¿Cuáles son los mini proyectos que se pueden hacer en el algoritmo para el procesamiento de imágenes y videos?

¿Qué es un algoritmo que calculará si se puede pagar la cantidad [math] n [/ math] si tenemos un suministro ilimitado de monedas para cada valor entre [math] a [/ math] y [math] b [/ math] ?

¿Debo aprender Algoritmos si soy ingeniero aeroespacial?

Cómo convertir una cadena en una matriz de caracteres

Cómo usar el código VHDL para generar el seno de un ángulo dado usando el algoritmo CORDIC

¿Cuál es el algoritmo detrás de Facebook Newsfeed?