Cinco elementos básicos del algoritmo genético: codificación de parámetros, configuración de la población



El algoritmo genético toma prestada principalmente la ley de "supervivencia del más apto" en la evolución biológica.

El algoritmo genético incluye dos operaciones de conversión de datos, una es la conversión de fenotipo a genotipo, que convierte el espacio de búsqueda 参数或解en el espacio genético 染色体或者个体, este proceso se llama codificación. El otro es la conversión de genotipo a realización, es decir, convertir individuos en parámetros en el espacio de búsqueda, este proceso se denomina decodificación.

El algoritmo genético incluye cinco elementos básicos: codificación de parámetros, configuración de grupo inicial, diseño de función de aptitud, diseño de operación genética y configuración de parámetros de control.

Dado que el algoritmo genético no puede tratar directamente con los parámetros del espacio del problema, el problema a resolver debe expresarse como cromosomas o individuos en el espacio genético a través de la codificación. Están compuestos de genes según una determinada estructura. Debido a la solidez del algoritmo genético, los requisitos para la codificación no son estrictos. Cómo codificar un problema de aplicación específico es el problema principal en la aplicación del algoritmo genético, y también es un punto difícil en la aplicación del algoritmo genético. De hecho, no existe un método de codificación general y los problemas especiales a menudo adoptan métodos especiales.

1. Codificación

1.1 Codificación de cadena de bits

El método de codificación de los parámetros del espacio del problema en cromosomas dispuestos en una dimensión se denomina método de codificación cromosómica unidimensional. El conjunto de símbolos más utilizado en la codificación cromosómica unidimensional es el conjunto de símbolos binarios { 0 , 1 } \{0, 1\}{ 0 , 1 } , es decir, usar codificación binaria (Binary Encoding).

(1) Codificación binaria
La codificación binaria consiste en utilizar varios números binarios para representar a un individuo y asignar el espacio de solución del problema original al espacio de cadena de bits B = { 0 , 1 } B=\{0, 1\}B={ 0 , 1 } , y luego realice operaciones genéticas en el espacio de cadena de bits. <>/fuente

Ventajas: la codificación binaria es similar a la composición de los cromosomas biológicos, lo que hace que el algoritmo sea fácil de explicar con la teoría genética biológica y hace que las operaciones genéticas como el cruce y la mutación sean fáciles de implementar. Además, el algoritmo maneja la mayor cantidad de patrones cuando se usa la codificación binaria.

Desventajas:
① La codificación binaria de enteros adyacentes puede tener un gran ejemplo de Hamming. Por ejemplo, las representaciones binarias de 15 y 16 son 01111 y 10000, por lo que para mejorar el algoritmo de 15 a 16 se deben cambiar todos los bits. Este defecto provoca Hamming Cliffs (Acantilados de Hamming), que reducirá la eficiencia de búsqueda de los operadores genéticos.
②Cuando se usa la codificación binaria, la precisión de la solución generalmente se da primero. Sin embargo, después de determinar la precisión de la solución, es difícil ajustarla durante la ejecución del algoritmo, por lo que el algoritmo carece de la función de ajuste fino. Si se selecciona una mayor precisión al comienzo del algoritmo, la longitud de la cadena será muy grande, lo que también reducirá la eficiencia del algoritmo.
③ Al resolver problemas de optimización de alta dimensión, la cadena de código binario será muy larga, lo que hace que la eficiencia de búsqueda del algoritmo sea muy baja.

(2) Codificación gris
Gris GrisEl código Gray es un código obtenido al convertir código binario a través de una transformación .
Sea una cadena binaria<β 1 β 2 . . . β n > <β_1β_2...β_n><b1b2... segundon> Correspondiente aGris GrisG r a y< c 1 c 2 . . . γn > <γ_1γ_2...γ_n><C1C2... don> , luego de la codificación binaria aGray Graygramo r a y transformación de código:
γ k = { β 1 , k = 1 β k − 1 ⨁ β k , k > 1 (1) γ_k= \begin{cases} β_1,\quad k=1\\ β_ {k -1}\bigoplus β_k, \quad k>1 \end{casos} \tag{1}Ck={ b1,k=1bk - 1bk,k>1( 1 )

En la fórmula anterior (1), ⨁ \bigoplus significa la suma de tocar 2, es decir, la operación XOR, la diferencia es 1, y lo mismo es 0.

Permítanme ilustrar con un ejemplo:
supongamos que hay una cadena codificada en binario (10110) 2 (10110)_2( 10110 )2, luego lo convertimos a codificación Gray ( 11101 ) Gray (11101)_{Gray}( 11101 )gris _ _ _

La conversión de una cadena Gray a una cadena binaria es:
β k = ∑ i = 1 k γ i ( mod 2 ) = { γ 1 , k = 1 β k − 1 ⨁ γ k , k > 1 (2) β_k= \ displaystyle \sum^{k}_{i=1}{γ_i(mod2)}= \begin{cases} γ_1,\quad k=1\\ β_{k-1}\bigoplus γ_k, \quad k>1 \ end{casos} \tag{2}bk=yo = 1kCyo( modo 2 ) _ _={ C1,k=1bk - 1Ck,k>1( 2 )
Dé un ejemplo para ilustrar:
suponga que hay una cadena codificada en Gray( 01001 ) G ray (01001)_{Gray}( 01001 )gris _ _ _, después de convertirlo en una cadena codificada en binario es ( 01110 ) 2 (01110)_2( 01110 )2

La ventaja de la codificación Gray es que supera la desventaja del precipicio de Hamming de la codificación binaria.

1.2 Codificación de números reales

Para superar las desventajas de la codificación binaria, la codificación real se puede usar directamente cuando la variable del problema es un vector real.

La codificación de números reales consiste en utilizar varios números reales para representar a un individuo y luego realizar operaciones genéticas en el espacio de números reales.

El uso del método de expresión de números reales no necesita convertir el sistema numérico, y la operación genética se puede realizar directamente en el fenotipo de la solución. Por lo tanto, se puede introducir información heurística relacionada con el dominio del problema para aumentar la capacidad de búsqueda del algoritmo. En los últimos años, los algoritmos genéticos generalmente usan códigos reales cuando resuelven problemas de optimización complejos o de alta dimensión.

1.3 Codificación concatenada de parámetros múltiples

Para el algoritmo genético del problema de optimización de parámetros múltiples, a menudo se usa la codificación en cascada de parámetros múltiples. La idea básica es codificar cada parámetro en binario para obtener subcadenas y luego conectar estas subcadenas para formar un cromosoma completo. Cada subcadena en la codificación concatenada de parámetros múltiples corresponde a su propio parámetro de codificación, por lo que puede haber diferentes longitudes de cadena y rangos de valores de parámetros.

2. Configuración de grupo

Dado que el algoritmo genético opera sobre la población, es necesario preparar una población inicial que consta de varias soluciones iniciales para la operación genética. La configuración del grupo incluye principalmente dos aspectos: la generación de la población inicial y la determinación del tamaño de la población.

2.1 Generación de población inicial

Los individuos de la población inicial en el algoritmo genético pueden generarse aleatoriamente, pero es mejor utilizar la siguiente configuración de estrategia:

① De acuerdo con el conocimiento inherente del problema, intente comprender el rango de distribución del espacio ocupado por la solución óptima en todo el espacio del problema y luego establezca el grupo inicial dentro de este rango de distribución.

② Genere aleatoriamente un cierto número de individuos primero y luego seleccione los mejores individuos para agregar al grupo inicial. Este proceso continúa iterando hasta que el número de individuos en la población inicial alcanza un tamaño predeterminado.

2.2 Determinación del tamaño de la población

El número de individuos en un grupo se llama tamaño de la población.
El tamaño de la población afecta los resultados y la eficiencia de la optimización genética. Cuando el tamaño de la población es demasiado pequeño, el rendimiento de optimización del algoritmo genético generalmente no es muy bueno y es fácil caer en la solución óptima local. Y cuando el tamaño de la población es demasiado grande, el cálculo se complica.

La determinación del tamaño de la población se ve muy afectada por la operación de selección en la operación genética. El teorema de la moda muestra que si el tamaño de la población es MMM , entonces la manipulación genética se puede realizar a partir de esteMMGenerar y detectar M 3 M^3 de M individuosMETRO3 modos, y sobre esta base, los bloques de construcción se pueden formar y optimizar continuamente hasta que se encuentre una solución óptima.

obviamente,Cuanto mayor sea el tamaño de la población, cuantos más patrones procese la operación genética, mayor será la posibilidad de generar bloques de construcción significativos y evolucionar gradualmente hacia la solución óptima.El tamaño de la población es demasiado pequeño., el espacio de búsqueda del algoritmo genético será limitado, por lo que la búsqueda puede detenerse en la etapa inmadura, y aparecerá el fenómeno de convergencia inmadura, que hará que el algoritmo caiga en la solución óptima local. Por lo tanto, se debe mantener la diversidad de la población, es decir, el tamaño de la población no debe ser demasiado pequeño.

Por otro lado, un gran tamaño de población traerá varias desventajas:

  • Primero, cuanto más grande sea el grupo, más veces aumentará su evaluación de aptitud, por lo que también aumentará la cantidad de cálculo, lo que afectará la eficiencia del algoritmo;
  • La segunda es que la probabilidad de supervivencia de los individuos en el grupo es mayormente proporcional a la aptitud.Cuando hay muchos individuos en el grupo, un pequeño número de individuos con alta aptitud será seleccionado y sobrevivirá, pero la mayoría de los individuos serán eliminados. formación de grupos de pares y, por lo tanto, operaciones cruzadas.

El tamaño de la población generalmente se toma como 20-100.

Supongo que te gusta

Origin blog.csdn.net/m0_63007797/article/details/128919873
Recomendado
Clasificación