Saltar a contenido

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.