BSA & Bee

Lo siento, pero estos algoritmos ya están cogidos II

En la segunda ronda de Técnicas Evolutivas os presentamos el algoritmo Backtracking Search y el algoritmo de las abejas.

Algoritmo Backtracking Search - BSA

El algoritmo BSA se basa en una mutación de retroceso, esto es, se creará una población mutada utilizando las poblaciones de la iteración actual y la anterior.

Vamos a ser prácticos. Este algoritmo es muy parecido al algoritmo DE. La diferencia: la fórmula de la población mutada. La fórmula esta vez será la siguiente:

Yi = Xactual + F*(Xanterior - Xactual)

Donde F es el rango de mutación y puede tomar cualquier valor de 0 a 3. Los pasos del BSA son los mismos del algoritmo DE:

  • Generar una población de agentes X.
  • En la primera generación/iteración, la población anterior (Xanterior) será igual que Xactual.
  • Crear una población mutada Y, usando las poblaciones Xactual y Xanterior.
  • Crear una cuarta población de agentes descendientes (T) con la población mutada Y y la población Xactual.
  • Selección de los candidatos más aptos entre las poblaciones T y Xactual.
  • Xactual pasa a ser Xanterior.
  • Los agentes supervivientes a la selección pasan a ser la población Xactual.
Imagen: crossover.

Y así, generación tras generación se irá mejorando el resultado de los agentes hasta conseguir el agente que proporcione la solución óptima.

Algoritmo de las Abejas

Este algoritmo se basa en la división de las abejas en tres clases según su aptitud en la comparación de las abejas de las clases excelentes y buenas con su versión mutada.

Sí, incluso las abejas son clasistas. Esta vez, las abejas/agentes se ordenarán según su aptitud/capacidad de solucionar el problema. Las abejas más aptas, serán el grupo de abejas excelentes, las siguientes, las abejas buenas, y las sobrantes, las del montón. La cantidad de abejas pertenecientes a cada grupo dependerá de la cantidad total de agentes, del problema a resolver, de la cantidad de características que tiene cada abeja, ...

Una vez se han clasificado, se dará comienzo a los septuagésimo cuartos Juegos del Hambre la mutación y selección de agentes. Cada abeja del grupo excelente atraerá a (por ejemplo) 10 abejas mutadas, y el grupo bueno a (por ejemplo) 5. La cantidad de abejas atraídas, al igual que la cantidad de abejas de cada grupo dependerá del tipo de problema y otros factores. Las abejas atraídas serán mutaciones aleatorias de las abejas originales. Para entendernos mejor, supongamos que se ha de diseñar la forma que debería de tener una rueda de coche para que esta fuera óptima (buena sujeción a la calzada, gastos mínimos de energía, aerodinámico, ...):

  • Abeja original, características:
    • Radio = 0.5m
    • Anchura = 0.3m
    • ...
  • Abeja mutada 1, características:
    • Radio*0.1
    • Anchura*0.35
    • ...
  • Abeja mutada 2, características:
    • Radio*1.005
    • Anchura*0.8726
    • ...
  • ...

Y por último solo queda que cada abeja se enfrente a las abejas que ha atraído. La abeja más apta ocupará el lugar de la original.

Después del proceso de selección de abejas excelentes y buenas, el grupo de agentes común se eliminará y se creará una nueva población de abejas con el grupo excelente, el grupo bueno y un grupo nuevo aleatorio de abejas. Ha tener en cuenta, al final de cada iteración/generación, la cantidad de agentes en la población tiene que ser la misma.

Comentarios

Entradas populares de este blog

Proyecto Estación Meteorológica 4: Visualización de Resultados Mediante HTML y D3.js

Diferentes técnicas de las redes neuronales

Proyecto Estación Meteorológica 3: Obtención y Envío de Datos Mediante Python