¿Qué es la optimización de enjambre de partículas?

Comienzo con una analogía:

Digamos que le gustaría encontrar un tesoro escondido en una región montañosa con un grupo de amigos para encontrar un tesoro de $ 10 millones 🙂 Imágenes

Suponemos que la ubicación del tesoro es desconocida; solo sabemos que tenemos que encontrar el valle más profundo con la elevación mínima. Entonces, no conocemos la ubicación sino solo la evaluación. Suena fácil, pero el área de búsqueda es enorme y solo podemos caminar.

También asumimos que cada miembro del equipo puede comunicarse con otros miembros por teléfono. Otra suposición es que puede usar un GPS para obtener el valor de elevación al final de cada día. Para resumir, cada persona tiene los siguientes engranajes:

  • Un par de buenos zapatos para caminar millas y millas por día 🙂
  • Un bloc de notas para escribir y actualizar la mejor posición encontrada hasta ahora por el miembro del equipo (que llamamos PBEST )
  • Un bloc de notas para escribir la mejor posición que ha encontrado todo el equipo hasta ahora (lo llamamos GBEST )
  • Un GPS que muestra qué tan profunda es una posición (elevación) en la región montañosa (podemos llamarla función objetivo )

Para buscar el tesoro, cada miembro del equipo sigue estas reglas:

  • Cada miembro del equipo comienza primero en una ubicación aleatoria y con una dirección aleatoria . Calculamos la elevación de la primera ubicación de inmediato. Obviamente, tenemos que extender el equipo tanto como podamos para aumentar las posibilidades de encontrar el tesoro.
  • La expedición lleva T días y haces planes todos los días por la mañana; no hay comunicación hasta el día siguiente
  • Cada mañana, todo el equipo compara la elevación de sus posiciones y actualiza el GBEST en sus cuadernos si es necesario. Entonces, GBEST es la única información compartida entre los miembros del equipo. De hecho, la ubicación de GBEST y su elevación son compartidas.
  • Además, cada miembro del equipo actualiza el PBEST en el cuaderno si encuentra una mejor posición. Los PBEST no se comparten con otros miembros del equipo.
  • Aquí está la parte principal. Para moverse, todos los días, cada miembro del equipo toma, por ejemplo, A pasos en la dirección del último día , B pasos en la dirección hacia el PBEST y C pasos en la dirección hacia el GBEST.
  • Los pasos son al azar. Esto le da algún tipo de aleatoriedad a la búsqueda y al patrón de búsqueda estocástica para todo el equipo.

Verá, con estas reglas simples, el equipo sigue buscando diferentes regiones mientras vigila la mejor ubicación encontrada hasta ahora. No hay garantía de encontrar el tesoro, pero la búsqueda es efectiva ya que siempre se buscan las mejores regiones. Al menos, tiende a ser mejor que una búsqueda completamente aleatoria.

¿De dónde vienen estas reglas? Bueno, los científicos creen que así es como un enjambre de pájaros navega y se alimenta en la naturaleza.

Vamos a entrar en la optimización de enjambre de partículas ahora:

Particle Swarm Optimization (PSO) es un algoritmo estocástico bien considerado en la literatura de Swarm Intelligence. Este algoritmo se ha inspirado en el comportamiento de flocado de las aves en la naturaleza cuando se alimentan o migran. De hecho, la interacción de las aves en una bandada fue modelada matemáticamente.

En PSO, cada solución tiene tres componentes:

  • posición (similar a la ubicación en la analogía anterior)
  • velocidad (similar a la dirección del movimiento en la analogía anterior)
  • valor de condición física (similar a la elevación en la analogía anterior). El valor de aptitud se calcula mediante una función objetivo (aptitud), que es similar al GPS en la analogía anterior.

La posición se refiere a los valores de los parámetros. El vector de posición indica dónde está un pájaro artificial en un espacio de búsqueda dimensional donde n es el número de variables de un problema de optimización. El vector de velocidad es para almacenar la velocidad que se utiliza para actualizar las aves de posición. Finalmente, el valor de aptitud muestra cuán en forma está un pájaro.

La parte principal del PSO es el vector de velocidad. Este vector considera la posición actual de un pájaro, la mejor posición encontrada por todo el enjambre y la mejor posición del pájaro actual. Aquí hay un modelo matemático aproximado de este algoritmo:

Velocidad = r1 * CurrentVelocity + r2 * distancia a PBEST + r3 * distancia a GBEST

Posición = Posición + Velocidad

  • currentVelocity: mantiene la ruta de vuelo actual y la velocidad
  • distancia a PBEST: simula la inteligencia individual de un pájaro en el enjambre al tener un impulso hacia la mejor solución encontrada hasta ahora por el pájaro
  • Distancia a GEST: simule la inteligencia social de un pájaro gravitando hacia la mejor solución encontrada por los enjambres

Cada uno de los tres componentes en el vector de velocidad se multiplica por números aleatorios (r1, r2 y r3) para proporcionar un comportamiento estocástico al igual que los pasos aleatorios en la analogía anterior. También hay tres coeficientes: peso de inercia (w), c1 y c2, por lo que la formulación de velocidad real es:

V (t + 1) = w * V (t) + c1 * r1 * (PBEST_i – X_i) + c2 * r2 * (GBEST-X_i)

Hay un buen video en Problemas de optimización y algoritmos | Curso de Udemy que explica PSO con una analogía similar que puede ser interesante.

¿Qué es el PSO?
Es un algoritmo de optimización metaheurística que se puede aplicar a una gran clase de problemas de optimización. No tiene suposiciones estrictas como la diferenciabilidad de la función de costo. Se emplea ampliamente en problemas de optimización cooperativa con una función de costo global sincle.

¿CÓMO REALIZA EL PSO LA OPTIMIZACIÓN?
Para ubicar el punto óptimo de una función de costo, PSO utiliza perturbaciones estocásticas. Genera una cantidad de partículas distribuidas al azar y estas partículas viajan
aleatoriamente hasta la convergencia. Intercambian sus mejores marcas personales mientras viajan.
Las partículas migran hacia la dirección de una combinación de su velocidad anterior, mejor personal y mejor global.
La incorporación de velocidad previa garantiza la dependencia de los cálculos anteriores, dirigirse hacia el mejor global proporciona convergencia al óptimo, y
El mejor componente personal proporciona diversidad de búsqueda. A medida que avanza la optimización, los mejores resultados personales y globales
mejor acercamiento entre sí y se produce la convergencia.

¿CUÁLES SON LOS PRINCIPALES PASOS DEL ALGORITMO?
-Posición de perturbación con la velocidad actual,
-Actualizar nuevos éxitos personales y mejores globales usando las posiciones actuales,
-Utilice los mejores resultados personales y el mejor global para calcular la nueva velocidad.