¿Cuál es la diferencia entre el algoritmo genético y la evolución diferencial?


Respuesta 1:

Ambos son algoritmos de optimización basados ​​en la población no garantizados, incluso para objetivos no diferenciables y no continuos.

Las poblaciones se inicializan aleatoriamente para ambos algoritmos entre los límites superior e inferior del espacio de decisión respectivo. El tamaño de la población debe ser al menos cuatro en la evolución diferencial y dos para el algoritmo genético. Se creará una nueva población en cada generación, que se realizará mediante algunas operaciones evolutivas secuencialmente. Hasta que se cumpla un criterio de terminación, tales generaciones se repetirán.

Las operaciones básicas del algoritmo genético son la selección, el cruce y la mutación, y se explican con ejemplos aquí. Del mismo modo, las siguientes tres operaciones evolutivas están involucradas en formas básicas de evolución diferencial:

  1. Mutación: la evolución diferencial crea una nueva solución al agregar la diferencia ponderada entre dos soluciones a una tercera solución. Entonces, las soluciones deben ser escala, suma y resta habilitadas. Esta operación se llama mutación en la evolución diferencial y tiene un aspecto similar al crossover en el algoritmo genético, donde se realizan intercambios de información entre soluciones para obtener mejores soluciones y es la primera operación en cada generación. Combinación: la recombinación en evolución diferencial es el segundo operador en cada generación. que funciona de manera similar a la verificación de probabilidad de cruce en algoritmo genético pero funciona en dimensiones. Entonces, en la evolución diferencial, la mutación y la recombinación en total es como un cruce especial de cuatro puntos, multipunto en algoritmo genético. Selección: La selección en evolución diferencial es el tercer operador. La selección y el elitismo son los dos operadores en el algoritmo genético para identificación y tomando medidas en nombre de mejores soluciones. La elección es el primer operador en algoritmo genético y realiza una comparación entre las soluciones en la misma generación. Pero, el elitismo es el último operador en algoritmo genético para impulsar directamente la mejor solución a la próxima generación, evitando el cruce y la mutación , donde se comparará con la descendencia. Por lo tanto, la selección en la evolución diferencial se parece más al elitismo en el algoritmo genético, donde el elitismo se realiza entre el progenitor y la descendencia.

Agente

En algún momento, la solución individual en la evolución diferencial se llama agente, que no tiene un significado computacional a diferencia del aprendizaje por refuerzo. Es necesario mantener el equilibrio entre la división de datos inmutable y mutable en la programación con lenguajes funcionales (no puro). Por lo tanto, dicha responsabilidad adicional se puede otorgar a cambio del término "Agente", donde el índice del agente individual es inmutable pero la ubicación del agente en el espacio de la solución es mutable.

Códigos y ejemplos

Aunque la evolución diferencial no es popular como el algoritmo genético, los códigos en diferentes lenguajes de computadora y ejemplos están disponibles en la literatura abierta. Los tipos de variantes más avanzados y junto con otros algoritmos como la optimización de enjambre de partículas, la optimización de colonias de hormigas, etc. también están disponibles en la literatura para ambos algoritmos.


Respuesta 2:

La principal diferencia es la codificación, el algoritmo genético siempre codifica a sus individuos en una población como cadenas de bits. La codificación de número real de GA generalmente se denomina estrategias evolutivas o programación genética si se utilizan estructuras de datos más complejas como codificación.

La evolución diferencial también es muy prescriptiva sobre cómo realizar la recombinación (mutación y cruce). El socio para el crossover se genera de la siguiente manera. Supongamos que hemos elegido x para el cruce, la pareja de "mutación" se elige de la siguiente manera

  1. Elija a, b, c al azar de la población distinta entre sí y distinta de xLet
  2. V=a+F(bc)V = a+ F (b - c)
  3. donde 0
  4. Vi=ai+F(bici)V_i = a_i + F * (b_i - c_i)

Transversal

Para cruzar x con V:

Para i = 1 a n

if (aleatorio

            

yi=viy_i = v_i

más

            

yi=xiy_i = x_i

La tasa de cruce es un número real entre 0 y 1


Respuesta 3:

Ambos algoritmos intentan encontrar la mejor solución de un conjunto de soluciones dado algún criterio. La mejor solución es la que da el menor valor de algún criterio predefinido. La notación matemática para la oración anterior:

x=argminxSf(x)\mathbf{x}^* = \arg \min_{\mathbf{x}\in\mathcal{S}} f(\mathbf{x})

La parte más importante de la ecuación anterior es el criterio

f:SRf:\mathcal{S}\rightarrow\mathbb{R}

que guía la "evolución" de un algoritmo a la solución de un problema específico. El criterio generalmente se conoce como una función de penalización o una función de condición física en caso de maximización. Esto puede ser energía consumida por la solución, dinero ganado por una solución, un beneficio o una penalización de una solución dependiendo del problema ... El conjunto de soluciones individuales

S\mathcal{S}

es donde difieren el algoritmo genético y la evolución diferencial.

Desde mi experiencia, el algoritmo genético generalmente se personaliza para cada problema. Esto significa que usted elige operadores genéticos dada una representación de una solución. Hay un conjunto de operadores para vectores con valores reales, un conjunto para matrices de bits, un conjunto para permutaciones, etc. Un profesor mío dijo que un algoritmo genético es más un marco que un algoritmo ya que puede aplicarse a un tamaño tan grande conjunto de problemas

La evolución diferencial evoluciona el conjunto de vectores reales.

S=Rn\mathcal{S}=\mathbb{R}^n

. Esto significa que puede usarse para ajustar algunos parámetros de un modelo de simulación, regresión no lineal ... Esto también significa que es realmente difícil usar la evolución diferencial para encontrar el horario de trabajo de los empleados de una empresa.

Hay muchos resultados que muestran que la evolución diferencial es mejor para su propio dominio. Sin embargo, cuando intenta encontrar una solución a un problema para el que la evolución diferencial no es adecuada, es probable que pueda codificar un algoritmo genético para resolver el problema.