Articulo de referencia

Búsqueda de escuelas de peces

El algoritmo Fish Bank Search (FSS), propuesto por Bastos Filho y Lima Neto en 2008, es, en su versión básica, [ 1 ] un algoritmo de optimización unimodal inspirado en el compor...

El algoritmo Fish Bank Search (FSS), propuesto por Bastos Filho y Lima Neto en 2008, es, en su versión básica, [ 1 ] un algoritmo de optimización unimodal inspirado en el comportamiento colectivo de los cardúmenes de peces. Los mecanismos de alimentación y movimiento coordinado se utilizaron como inspiración para crear los operadores de búsqueda. La idea central es hacer que los peces “naden” hacia el gradiente positivo para “comer” y “ganar peso”. Colectivamente, los peces más pesados ​​tienen mayor influencia en el proceso de búsqueda en su conjunto, lo que hace que el baricentro del cardumen se mueva hacia los óptimos en el espacio de búsqueda a lo largo de sucesivas iteraciones. [ 2 ]

El FSS utiliza los siguientes principios: [ 3 ]

  1. Cálculos sencillos en todos los individuos (es decir, peces)
  2. Diversos medios para almacenar información (por ejemplo, pesos de los peces y baricentro del cardumen).
  3. Cálculos locales (es decir, la natación se compone de componentes distintos)
  4. Baja comunicación entre individuos vecinos (es decir, los peces deben pensar en su entorno local pero también ser socialmente conscientes).
  5. Control centralizado mínimo (principalmente para el autocontrol del radio escolar)
  6. Algunos mecanismos de diversidad distintos (para evitar comportamientos de formación de bandadas indeseables)
  7. Escalabilidad (en términos de complejidad de las tareas de optimización/búsqueda)
  8. Autonomía (es decir, capacidad de autocontrolar el funcionamiento)

Algoritmo

FSS es un algoritmo de búsqueda basado en la población , inspirado en el comportamiento de los peces que nadan y se expanden y contraen mientras buscan alimento. Cada peznorte{\displaystyle n}La ubicación -dimensional representa una posible solución para el problema de optimización. El algoritmo utiliza pesos para todos los peces que representan un recuento acumulativo del éxito de la búsqueda de cada pez en el cardumen. FSS se compone de los operadores de alimentación y movimiento, este último dividido en tres subcomponentes, que son: [ 4 ]

Componente individual del movimiento

Cada pez del cardumen realiza una búsqueda local en busca de regiones prometedoras en el espacio de búsqueda. Esto se realiza como se muestra a continuación:

incógnitai(t+1)=incógnitai(t)+ranorted(1,1)stmipaginorted,{\displaystyle x_{i}(t+1)=x_{i}(t)+rand(-1,1)step_{ind},}

dóndeincógnitai(t){\displaystyle x_{i}(t)}yincógnitai(t+1){\displaystyle x_{i}(t+1)}representan la posición del pezi{\displaystyle i}antes y después del operador de movimiento individual, respectivamente.ranorted(1,1){\displaystyle rand(-1,1)}es un número aleatorio distribuido uniformemente que varía de -1 a 1 ystmipaginorted{\displaystyle step_{ind}}es un parámetro que define el desplazamiento máximo para este movimiento. La nueva posiciónincógnitai(t+1){\displaystyle x_{i}(t+1)}Solo se acepta si la aptitud del pez mejora con el cambio de posición. Si no es el caso, el pez permanece en la misma posición yincógnitai(t+1)=incógnitai(t){\displaystyle x_{i}(t+1)=x_{i}(t)}.

Componente colectivo-instintivo del movimiento

Se calcula un promedio de los movimientos individuales en función de lo siguiente:

I=i=1norteΔincógnitaiΔFii=1norteΔFi.{\displaystyle I={\frac {\sum _{i=1}^{N}\Delta x_{i}\Delta f_{i}}{\sum _{i=1}^{N}\Delta f_{i}}}.}

El vectorI{\displaystyle I}representa el promedio ponderado de los desplazamientos de cada pez. Esto significa que los peces que experimentaron una mayor mejora atraerán a otros peces a su posición. Después del vectorI{\displaystyle I}cálculo, se animará a cada pez a moverse de acuerdo con:

incógnitai(t+1)=incógnitai(t)+I.{\displaystyle x_{i}(t+1)=x_{i}(t)+I.}

Componente colectivo-voluntario del movimiento

Este operador se utiliza para regular la capacidad de exploración/explotación de la escuela durante el proceso de búsqueda. En primer lugar, el baricentro.B{\displaystyle B}de la escuela se calcula en función de la posiciónincógnitai{\displaystyle x_{i}}y el pesoWi{\displaystyle W_{i}}de cada pez:

B(t)=i=1norteincógnitai(t)Wi(t)i=1norteWi(t),{\displaystyle B(t)={\frac {\sum _{i=1}^{N}x_{i}(t)W_{i}(t)}{\sum _{i=1}^{N}W_{i}(t)}},}

y luego, si el peso total de la escuelai=1norteWi{\displaystyle \sum _{i=1}^{N}W_{i}}Si el peso total del cardumen ha aumentado desde la última iteración hasta la actual, los peces son atraídos hacia el baricentro según la ecuación A. Si el peso total del cardumen no ha mejorado, los peces se dispersan lejos del baricentro según la ecuación B:

Ecuación A:

incógnitai(t+1)=incógnitai(t)stmipagvolranorted(0,1)incógnitai(t)B(t)distanortedomi(incógnitai(t),B(t)),{\displaystyle x_{i}(t+1)=x_{i}(t)-step_{vol}rand(0,1){\frac {x_{i}(t)-B(t)}{distance(x_{i}(t),B(t))}},}

Ecuación B:

incógnitai(t+1)=incógnitai(t)+stmipagvolranorted(0,1)incógnitai(t)B(t)distanortedomi(incógnitai(t),B(t)),{\displaystyle x_{i}(t+1)=x_{i}(t)+step_{vol}rand(0,1){\frac {x_{i}(t)-B(t)}{distance(x_{i}(t),B(t))}},}

dóndestmipagvol{\displaystyle step_{vol}}define el tamaño del desplazamiento máximo realizado con el uso de este operador.distanortedomi(incógnitai(t),B(t)){\displaystyle distancia(x_{i}(t),B(t))}es la distancia euclidiana entre los pecesi{\displaystyle i}posición y baricentro de la escuela.ranorted(0,1){\displaystyle rand(0,1)} es un número aleatorio con distribución uniforme que varía de 0 a 1.

Además de los operadores de movimiento, también se definió un operador de alimentación utilizado para actualizar los pesos de cada pez según:

Wi(t+1)=Wi(t)+ΔFimetroaincógnita(|ΔFi|),{\displaystyle W_{i}(t+1)=W_{i}(t)+{\frac {\Delta f_{i}}{max(|\Delta f_{i}|)}},}

dóndeWi(t){\displaystyle W_{i}(t)}es el parámetro de peso para el pezi{\displaystyle i},ΔFi{\displaystyle \Delta f_{i}}es la variación de aptitud entre la última y la nueva posición, ymetroaincógnita(|ΔFi|){\displaystyle max(|\Delta f_{i}|)}representa el valor absoluto máximo de la variación de aptitud entre todos los peces del cardumen. W{\displaystyle W}solo se permite variar de 1 aWsdoalmi/2{\displaystyle W_{escala}/2}, que es un atributo definido por el usuario. Los pesos de todos los peces se inicializan con el valorWsdoalmi/2{\displaystyle W_{escala}/2}.

El pseudocódigo para FSS

  1. Inicializar parámetros de usuario
  2. Inicializar las posiciones de los peces aleatoriamente
  3. mientras no se cumpla la condición de parada, haga lo siguiente:
  4. Calcular la aptitud física de cada pez.
  5. Ejecutar el movimiento del operador individual
  6. Calcular la aptitud física de cada pez.
  7. Operador de alimentación
  8. Operador de movimiento colectivo-instintivo
  9. Operador de movimiento colectivo-volutivo
  10. fin mientras

Los parámetrosstmipaginorted{\displaystyle step_{ind}}ystmipagvol{\displaystyle step_{vol}}decaen linealmente según:

stmipaginorted(t+1)=stmipaginorted(t)stmipaginorted(inorteitial)Itmetroaincógnita,{\displaystyle step_{ind}(t+1)=step_{ind}(t)-{\frac {step_{ind}(initial)}{It_{max}}},}

y de manera similar:

stmipagvol(t+1)=stmipagvol(t)stmipagvol(inorteitial)Itmetroaincógnita,{\displaystyle step_{vol}(t+1)=step_{vol}(t)-{\frac {step_{vol}(initial)}{It_{max}}},}

dóndestmipaginorted(inorteitial){\displaystyle step_{ind}(initial)}ystmipagvol(inorteitial){\displaystyle step_{vol}(initial)}son valores iniciales definidos por el usuario parastmipaginorted{\displaystyle step_{ind}}ystmipagvol{\displaystyle step_{vol}}, respectivamente.Itmetroaincógnita{\displaystyle Es_{máximo}}es el número máximo de iteraciones permitidas en el proceso de búsqueda.

Variaciones de FSS

dFSS (Búsqueda de bancos de peces basada en la densidad)

Esta versión destaca por su capacidad para funciones hiperdimensionales multimodales. Incluye modificaciones en los operadores anteriores: Alimentación y Natación, así como nuevos operadores: Memoria y Partición. Estos dos últimos se introdujeron para tener en cuenta la partición del grupo principal en subgrupos. También se incluyeron algunos cambios en las condiciones de parada, que ahora deben considerar los subenjambres. [ 5 ]

wFSS (Búsqueda de bancos de peces basada en el peso)

wFSS es una versión de FSS basada en nichos ponderados, diseñada para producir múltiples soluciones. La estrategia de nichos se basa en un nuevo operador llamado formador de enlaces. Este operador se utiliza para definir líderes para los peces con el fin de formar subgrupos. [ 6 ]

FSS-SAR (Sistema de Búsqueda Rutinaria de Bancos de Peces para Evitar el Estancamiento)

En la versión original del algoritmo, el componente de movimiento individual solo permite mover un pez si mejora su aptitud. Sin embargo, en un espacio de búsqueda muy suave, habría muchos intentos de movimiento sin éxito y el algoritmo podría no converger. Para resolver estos problemas, se introdujo un parámetro X tal que 0 <= X <= 1 en el componente individual del movimiento. X decae exponencialmente con las iteraciones y mide una probabilidad de que se permita un empeoramiento para cada pez. Esto significa que, cada vez que un pez intenta moverse a una posición que no mejora su aptitud, se elige un número aleatorio y, si es menor que X, se permite el movimiento. [ 7 ]

bFSS (Búsqueda binaria de bancos de peces)

El bFSS pretendía hacer frente a la convergencia prematura . Proponía el uso de un esquema de codificación binaria para los mecanismos internos de la búsqueda de cardúmenes de peces. Combinaba el FSS con el modelado difuso en un enfoque envolvente para la selección de características . [ 8 ]

MOFSS (Búsqueda de bancos de peces multiobjetivo)

En el MOFSS, los operadores están adaptados para resolver problemas multiobjetivo. El algoritmo utiliza un archivo externo para almacenar las mejores soluciones no dominadas encontradas durante el proceso de búsqueda. Este enfoque se ha utilizado ampliamente en diferentes optimizadores multiobjetivo bioinspirados. [ 9 ] [ 10 ] Además, las soluciones del archivo externo se utilizan para guiar los movimientos de los peces en la versión de propuesta. [ 11 ]

Véase también

Referencias

  1. CJA B Filho., FB de Lima Neto, AJCC. Lins, AIS Nascimento., y MP Lima, " Un nuevo algoritmo de búsqueda basado en el comportamiento de los bancos de peces ," Sistemas, Hombre y Cibernética, SMC 2008. Conferencia Internacional IEEE sobre, 2008, pp. 2646-2651.
  2. de Lima Neto, Fernando Buarque y Marcelo Gomes Pereira de Lacerda. « Algoritmos multimodales de búsqueda de cardúmenes de peces basados ​​en información local para la división de cardúmenes ». Congreso BRICS de Inteligencia Computacional de 2013 y XI Congreso Brasileño de Inteligencia Computacional. IEEE, 2013.
  3. ^ "FBLN - Prof. Dr. Fernando Buarque de Lima Neto, B.Sc. M.Sc. DIC-Ph.D.(Imperial College/Reino Unido) Hab(BR) SM-IEEE(EE.UU.) Alexander von Humboldt-Fellow(DE) Academy of Science-Fellow(PE/BR)" .
  4. JB Monteiro, IMC Albuquerque, FBL Neto y FVS Ferreira, “ Optimización de funciones de múltiples mesetas con FSS-SAR (Rutina de evitación de estancamiento) ”, Enviado a la Serie de Simposios IEEE sobre Inteligencia Computacional, 2016.
  5. ^ Madeiro, SS, de Lima-Neto, FB, Bastos-Filho, CJA y do Nascimento Figueiredo, EM (junio de 2011). "La densidad como mecanismo de segregación en la búsqueda de bancos de peces para problemas de optimización multimodal" . En Conferencia Internacional sobre Inteligencia de Enjambre (págs. 563-572). Springer Berlín Heidelberg.
  6. F. Buarque De Lima Neto y M. Gomes Pereira de Lacerda, “ Búsqueda de bancos de peces basada en peso ”, en Systems, Man and Cybernetics (SMC), 2014 IEEE International Conference on. IEEE, 2014, pp. 270–277.
  7. JB Monteiro, IMC Albuquerque, FBL Neto y FVS Ferreira, “ Optimización de funciones de múltiples mesetas con FSS-SAR (Rutina de evitación de estancamiento) ”, Enviado a la Serie de Simposios IEEE sobre Inteligencia Computacional, 2016.
  8. Sargo, João AG, et al. " Búsqueda binaria de bancos de peces aplicada a la selección de características: Aplicación a los reingresos en la UCI ". Conferencia Internacional IEEE de Sistemas Difusos de 2014 (FUZZ-IEEE). IEEE, 2014.
  9. Deb, K., Thiele, L., Laumanns, M., & Zitzler, E.(2002) Problemas de prueba de optimización multiobjetivo escalables , En: Congreso IEEE sobre computación evolutiva (pp. 825–830).
  10. ^ Nebro, AJ, Durillo, JJ, Garça-Nieto, J., Coello Coello, CA, Luna, F. y Alba, E. (2009) SMPSO: una nueva metaheurística basada en PSO para optimización multiobjetivoEn: Simposio IEEE sobre Inteligencia Computacional en la Toma de Decisiones Multicriterio (págs. 66-73). doi:10.1109/MCDM.2009.4938830
  11. Bastos-Filho, Carmelo JA y Augusto CS Guimarães. " Búsqueda de bancos de peces con múltiples objetivos ". Revista internacional de investigación de inteligencia de enjambres (IJSIR) 6.1 (2015): 23-40.