Optimización
Definir el algoritmo genético
Al discutir cómo se pueden optimizar los cBots, hemos mencionado que los cBots se pueden refinar utilizando el método de algoritmo genético. En esta guía, explicamos exactamente qué es y cómo funciona.
El método de algoritmo genético se basa en la teoría de la selección natural. Esta teoría establece que solo los individuos más aptos sobreviven para la reproducción posterior.
En la optimización de cBot, cada pase de optimización se considera un individuo. Para evaluar los pases individuales, el algoritmo genético calcula una cierta puntuación de aptitud para cada pase y compara esta puntuación con todos los demás pases.
Para que funcione, el algoritmo genético necesita una población inicial. Para generarla, el optimizador ejecutará varios pases diferentes con parámetros aleatorios. Después de crear su población inicial, el algoritmo comenzará el proceso de encontrar el pase de optimización más apto. Este proceso continúa hasta que las puntuaciones de aptitud de los pases hijos comienzan a estancarse y converger. En este punto, se detiene el algoritmo.
Etapas del algoritmo genético
Cualquier algoritmo genético tiene las siguientes etapas.
graph TB
B([Selección]) ==> C([Cruce]);
C ==> D([Mutación]);
D ==> B; Las etapas se explican de la siguiente manera.
Selección
Durante esta etapa, el algoritmo encuentra los dos pases de optimización más aptos utilizando sus respectivas puntuaciones de aptitud.
Cruce
Después de encontrar los dos pases de optimización más aptos, el algoritmo los utiliza para crear nuevos pases hijos (o descendientes) utilizando combinaciones de los valores de parámetros de ambos pases padres.
Ejemplo
Si su cBot tiene cuatro parámetros diferentes para la optimización, el algoritmo obtendrá los valores del primer y segundo parámetro de las pasadas descendientes de un progenitor y el tercer y cuarto parámetro del segundo progenitor.
Mutación
En esta etapa, el algoritmo muta las pasadas descendientes modificando aleatoriamente uno o más valores de los parámetros.
Después de la etapa de mutación, el optimizador ejecutará una nueva pasada de optimización descendiente. Posteriormente, repetirá todas las etapas, pero solo si la puntuación de aptitud de una pasada descendiente fue mayor que la última pasada de optimización más apta. Tal resultado significaría que hay margen de mejora, lo que indica que la optimización debería continuar.
De lo contrario, el algoritmo aumentará su contador de estancamiento. Si el contador de estancamiento alcanza el valor del parámetro del período de estancamiento del algoritmo, el proceso de optimización se detendrá automáticamente.
Parámetros del algoritmo genético
El algoritmo genético tiene varios parámetros que utiliza durante su vida útil. Estos parámetros no se pueden cambiar.
| Parámetro | Definición |
|---|---|
| Tamaño de la población | El tamaño máximo de una población o el número máximo de pasadas realizadas durante cada iteración de optimización. |
| Recuento máximo de iteraciones | El número máximo de iteraciones de optimización realizadas por el algoritmo. |
| Período de estancamiento | El valor máximo del contador de estancamiento. Si se alcanza este valor, el algoritmo se detiene. |
| Porcentaje de élite | Este valor se utiliza para seleccionar un X% de individuos con las puntuaciones de aptitud más altas de la iteración actual del algoritmo. Estas pasadas sobrevivirán a la siguiente iteración. |
| Porcentaje del tamaño del torneo | Este valor se utiliza para seleccionar un X% de individuos de una iteración para encontrar pasadas progenitoras. |
| Porcentaje de migrantes | Este valor se utiliza para agregar un X% de pasadas creadas aleatoriamente durante cada nueva iteración o generación de población. |
| Porcentaje de mutación | El porcentaje de los parámetros de las pasadas descendientes que se mutarán. |
| Porcentaje de probabilidad de mutación | El porcentaje de pasadas descendientes que se mutarán. Las pasadas no incluidas en este porcentaje no pasarán por la etapa de mutación. |