Toma un ejemplo simple.
Encuentre el valor mínimo de (x-8) * (x-8) para x entre 0 y 31 usando un algoritmo genético, cuya respuesta analítica es 0 para x es 8.
Pero antes de eso, revise mi respuesta para conocer los pasos del algoritmo genético. Los siguientes son los procesos paso a paso para comprender cómo funciona el algoritmo genético para el ejemplo anterior:
- ¿Cuál es el algoritmo más eficiente y efectivo para la detección de anomalías / valores atípicos cuando los datos tienen un pico / valle estacional?
- Cómo implementar una cola de doble finalización sin una lista vinculada
- ¿Cuáles son algunos conceptos que debo saber antes de aprender programación dinámica?
- ¿Cómo se puede resolver una variante del problema 3-SAT en tiempo lineal usando divide y vencerás?
- Cómo ejecutar cruces en algoritmos genéticos con cromosomas codificados por gráficos
- Fenotipo: el valor de x entre 0 y 31 se llama fenotipo.
- Genotipo: representa el valor de x de 0 a 31 en un binario de, cuya longitud es cinco, como:
- 0: 00000
- 1: 00001
- 2: 00010
- 4: 00100
- 8: 01000
- 16: 10000
- 30: 11110
- 31: 11111
- Inicialización: el algoritmo genético comienza con la población inicial. Considere cinco poblaciones iniciales 2, 7, 11, 30 y 31. Entonces, las representaciones de genotipo son 00010, 00111, 01011, 11110 y 11111 respectivamente.
- Iteración: después de la representación del problema en el genotipo y el fenotipo y la creación de la población inicial, se realizan muchas iteraciones de cálculos en algoritmos genéticos para obtener la solución final. En cada iteración se crea un conjunto de descendientes mediante operaciones sucesivas como fenotipo, evaluación, aptitud, selección, cruce, mutación, elitismo, etc.
- Fenotipo: Convertir la representación del genotipo en el fenotipo respectivo, que son 2, 7, 11, 30 y 31.
- Evaluación: calcule el valor de la función (x-8) * (x-8) para cada individuo de la población. Entonces, los valores de las funciones para los valores x de 2, 7, 11, 30 y 31 son 36, 1, 9, 484 y 529 respectivamente.
- Fitness: si el valor de la función es menor, el valor de fitness es mayor. Por lo tanto, 7 es el más apto.
- Selección: los candidatos Fitter se seleccionan para la creación de la próxima generación estocásticamente. Por lo tanto, se seleccionan 7 y 11, cuyos genotipos son 00111 y 01011 para el primer conjunto de padres. Y 2 y 7 se seleccionan para el segundo conjunto de padres. Como 7 es el más apto, las posibilidades de ser seleccionado para el padre de la próxima generación son altas y, por lo tanto, seleccionadas para ambos conjuntos.
- Crossover: Crossover divide la representación del genotipo e intercambia parte de la representación para crear una población de próxima generación.
- Considere un punto de cruce en la segunda ubicación para el primer conjunto de padres 7 y 11. Entonces, después de dividir en el segundo punto 7 es 00 | 111 y 11 es 01 | 011 . Después del crossover, serán 00 | 011 y 01 | 111 , cuyos fenotipos son 3 y 15 respectivamente.
- Considere un cruce de un punto en la tercera ubicación para el segundo conjunto de padres 2 y 7. Entonces, después de dividir en el tercer punto 2 es 000 | 10 y 7 es 001 | 11) Después del crossover serán 000 | 11 y 001 | 10 , cuyos fenotipos son 3 y 6 respectivamente.
- Mutación: cada representación de genotipo de individuos en la nueva generación se cambiará con una cantidad muy pequeña de probabilidad, que se llama mutación y la probabilidad se llama probabilidad de mutación . Entonces, después de la mutación, los individuos de las próximas generaciones son:
- 3 = 0 0011 => 1 0011 = 19
- 15 = 01 1 11 => 01 0 11 = 11
- 3 = 00011 => 000 0 1 = 1
- 6 = 00110 => 001 0 0 = 4
- Elitismo: en algún momento los padres más aptos son retenidos en la próxima generación, lo que se llama elitismo . Entonces 7 se retiene en la próxima generación.
- Descendientes: la población de la próxima generación se llama descendencia. Por lo tanto, los descendientes son 10011, 01011, 00001, 00100 y 00111 cuyos fenotipos son 19, 11, 1, 4 y 7 respectivamente.
- Generación: desde la conversión del fenotipo hasta la creación de descendencia se realiza iteración tras iteración para obtener el valor mínimo de la función. El número de tal iteración se llama Número de generación .
- Fenotipo (generación-2): los fenotipos son 19, 11, 1, 4 y 7.
- Evaluación (generación-2): el valor de la función con un valor x de 19, 11, 1, 4 y 7 son 121, 9, 49, 16 y 1 respectivamente.
- Aptitud física (generación 2): 7, 11, 4, 1 y 19 son orden ascendente de aptitud física.
- Selección (generación-2): el conjunto de padres seleccionados para las próximas generaciones son (7,11) y (7,4) y sus representaciones de genotipo son (00111, 01011) y (00111, 00100) respectivamente.
- Crossover (generación-2): después del crossover ( 00111 , 01011 ) y ( 00111 , 00100 ) se convierten como ( 00 011 , 01 111 ) y ( 001 00 , 001 11 )
- Mutación (generación-2): después de la mutación (000 1 1, 01 1 11) y (0 0 100, 001 1 1) se convierten como (000 0 1, 01 0 11) y (0 1 100, 001 0 1)
- Elitismo (generación-2): 7 se retiene en la próxima generación.
- Descendientes (generación-2): los descendientes después de las segundas generaciones son 00001, 01011, 01100, 00101 y 00111.
- Fenotipo (generación-3): los fenotipos son 1, 11, 12, 5 y 7.
- Evaluación (generación-3): los valores de función son 49, 9, 16, 9 y 1 respectivamente.
- Aptitud física (generación 3): 7, 11, 5, 12 y 1 son orden ascendente de aptitud física.
- Selección (generación-3): el conjunto de padres seleccionados para las próximas generaciones son (7,11) y (12,1) y sus representaciones de genotipo son (00111, 01011) y (01100, 00001) respectivamente.
- Crossover (generación-3): después del crossover ( 00111 , 01011 ) y ( 01100 , 00001 ) se convierten como ( 00 011 , 01 111 ) y ( 0110 1 , 0000 0 )
- Mutación (generación-3): después de la mutación (000 1 1, 01 1 11) y (011 0 1, 0 0 000) se convierten como (000 0 1, 01 0 11) y (011 1 1, 0 1 000)
- Elitismo (generación-3): 7 se retiene en la próxima generación.
- Descendientes (generación-3): los descendientes después de la tercera generación son 00001, 01011, 01111, 01000 y 00111.
- Fenotipo (generación-4): los fenotipos son 1, 11, 15, 8 y 7.
- Evaluación (generación-4): los valores de la función son 49, 9, 49, 0 y 1 respectivamente.
- Criterios de terminación: Hay muchos criterios de terminación disponibles en la literatura para detener la iteración.
- Número de generación: cuando el número de iteraciones para la generación de descendencia alcanzó un cierto valor predeterminado.
- Valor de la función: cuando se alcanza el mejor valor de la función en un valor predeterminado.
- Progreso detenido: cuando se detiene el progreso del valor de función mejor o promedio sobre alguna iteración.
- Tiempo, memoria o cálculo: cuando el cálculo se alcanza en un valor predeterminado de tiempo, memoria o cálculo.
- Solución: La mejor solución o algunas de las mejores soluciones se toman de la población final. Aquí la mejor solución es x = 8; o dos mejores soluciones son 8 y 7.