Algoritmo de optimización de mariposas para intercambio de comentarios caóticos y sinergia grupal, con código

Algoritmo de optimización de mariposa para intercambio de retroalimentación de caos y sinergia de grupo


Resumen: Apuntando a las deficiencias del algoritmo de optimización de mariposa, como la baja precisión de optimización y la facilidad para caer en el óptimo local, se propone un algoritmo de optimización de mariposa con retroalimentación caótica compartida y efecto de sinergia grupal. Primero, el uso del caos de Hénon para inicializar la población puede hacer que la población cubra el área ciega de búsqueda tanto como sea posible, aumentar la diversidad de la población y mejorar el rendimiento de optimización del algoritmo; segundo, usar la idea de la mecanismo de retroalimentación positiva y negativa en el circuito de control de retroalimentación para construir la retroalimentación entre las mariposas. La red de comunicación compartida permite que las mariposas individuales reciban información de múltiples direcciones para ayudar a la población a ubicar la posición de la solución óptima y realizar una búsqueda precisa, mejorando el algoritmo capacidad de escapar de los óptimos locales y acelerar la convergencia del algoritmo; finalmente, usar el mecanismo de sinergia de grupo, mejorar y equilibrar la capacidad de búsqueda global y local, y mejorar la capacidad de optimización global y local del algoritmo.

1. Algoritmo de optimización de mariposa

Para la referencia específica del principio del algoritmo básico de optimización de mariposas, mi blog: https://blog.csdn.net/u011835903/article/details/107855860

2. Mejorar el algoritmo de optimización de mariposa

2.1 Mapa del caos de Hénon

Aprovechando la distribución más uniforme de la secuencia caótica de Hénon, la población puede cubrir el área ciega de búsqueda en la mayor medida, aumentar la diversidad de mariposas individuales, ayudar al algoritmo a saltar fuera de los valores extremos locales hasta cierto punto, y mejorar la capacidad del algoritmo para buscar la optimización. Por lo tanto, este artículo utiliza el mapa caótico de Hénon para inicializar la población de mariposas. Su descripción matemática:
{ x ( k ) = 1 − γ ( x ( k − 1 ) ) 2 + φ y ( k − 1 ) y ( k ) = x ( k − 1 ) (8) \left\{\begin {matriz}{l} x(k)=1-\gamma(x(k-1))^{2}+\varphi y(k-1) \\ y(k)=x(k-1) \ end{matriz}\right.\tag{8}{ x ( k )=1c ( x ( k1 ) )2+φ y ( k1 )y(k)=x ( k1 )( 8 )
zik = xik − φ yo γ yo − φ yo , yo = 1 , 2 , ⋯ norte (9) z_{i}^{k}=\frac{x_{i}^{k}}\varphi_{ i}}{\gamma_{i}}\varphi_{i}}, i=1,2, \cdots \mathrm{N} \tag{9}Conik=CyoFiyoXikFiyo,i=1 ,2 ,norte( 9 )
En la fórmula (8),γ = 1.4 , φ = 0.3 , x ( 0 ) = 0 \gamma=1.4, \varphi=0.3, \quad x(0)=0C=1.4 ,Fi=0.3 ,X ( 0 )=0 y ( 0 ) = 0 , k y(0)=0 , k y(0)=0 , k representa el orden de iteración caótico,k ≤ N k \leq Nkn._ _ Para abrir el punto fijo del mapa de Hénon, la solución óptima completaxi ∗ = xik , lbi ≤ xi ∗ ≤ ubi x_{i}^{*}=x_{i}^{k}, l b_{i} \leq x_{i}^{*} \leq u b_{i}Xi=Xik,lb _yoXibyoPara el valor inicial de la cuchilla, elija nnEl valor inicial de n pequeñas diferencias, por la fórmula(8) (8)( 8 ) Propietario[ 0 , 1 ] [0,1][ 0 ,1 ] en el intervalonnPara n secuencias caóticas diferentes (9), la variable de espacio de búsqueda individualxi ′ x_{i}^{\prime}Xi:
xit = lbi ​​+ zik ( ubi − lbi ) (10) x_{i}^{t}=l b_{i}+z_{i}^{k}\left(u b_{i}-l b_{i }\derecho)\etiqueta{10}Xit=lb _yo+Conik( tu byolb _yo)( 10 )
Entre ellos ,zik z_{i}^{k}ConikEs el mejor cambio de caos, [ 1 bi , ubi ] \left[1 b_{i}, u b_{i}\right][ 1 segundoyo,byo]salir x_{i}^{t}XitLos límites superior e inferior del espacio de búsqueda.

2.2 Mecanismo de intercambio de comentarios

Si se confirma que la fuente de alimento existe alrededor de las dos mariposas, la mariposa actual se moverá alrededor de las dos mariposas a través de una retroalimentación positiva. Si no, se mueve hacia la mejor mariposa a través de la retroalimentación negativa. El modelo matemático se describe de la siguiente manera:
α = ( F max ⁡ − F min ⁡ ) r 3 + F min (11) \alpha=\left(F_{\max }-F_{\min }\right) r_{3 }+F_ {\text {min}} \tag{11}a=( Fmx _ _Fm yo n)r3+Fminuto ( 11 )

θ = 1 1 + exp ⁡ ( − λ ) (12) \theta=\frac{1}{1+\exp (-\lambda)} \tag{12}i=1+exp ( λ )1( 12 )

xi ′ = { xi ′ + ( gramo ′ − xit ) α + ( xht − xi ′ ) α + θ F ( xht ) < F ( xit ) xi ′ + ( gramo − xi ′ ) α + θ F ( xh ′ ) ≥ F ( xi ′ ) (13) \begin{reunidos} x_{i}^{\prime}= \begin{cases}x_{i}^{\prime}+\left(g^{\prime}-x_ {i}^{t}\right) \alpha+ \\ \left(x_{h}^{t}-x_{i}^{\prime}\right) \alpha+\theta & F\left(x_{h }^{t}\right)<F\left(x_{i}^{t}\right) \\ x_{i}^{\prime}+\left(g-x_{i}^{\prime} \right) \alpha+\theta & F\left(x_{h}^{\prime}\right) \geq F\left(x_{i}^{\prime}\right)\end{casos} \end{ reunidos}\tag{13}Xi= Xi+( gramo'Xit)un +( XhtXi)a+iXi+( gramoXi)a+iF( Xht)<F( Xit)F( Xh)F( Xi)( 13 )
aquíα \alphaα es el coeficiente de reparto,F max , F min F_{\text {max }} , F_{\text {min }}Fmáximo Fminuto son los valores de fitness máximo y mínimo de la población, respectivamente, r 3 r_{3}r3es [ 0 , 1 ] [0,1][ 0 ,1 ] entre números aleatorios,θ \thetaθ es el factor de retroalimentación, que puede acelerar la tasa de retroalimentación de información entre mariposas y lograr un rápido intercambio de información, dondeλ \lambdaλ representa el número de individuos en la iteración actual,xh ′ x_{h}^{\prime}Xhrepresenta la posición de una mariposa aleatoria, FFF significa aptitud computacional. El mecanismo de retroalimentación de la fragancia permite que la mariposa individual cave más alrededor de la posición óptima, y ​​la dirección de vuelo propuesta en la Ecuación (13) permite que la dirección del movimiento de la mariposa individual tenga la capacidad de diversificarse, lo que puede mejorar la capacidad de exploración, especialmente en el iterativo. En la etapa inicial, se puede evitar la convergencia prematura.

2.3 Mecanismo de Actualización de Posición de Sinergia de Grupo

Una es mejorar la fórmula de distancia del algoritmo BOA estándar aprovechando la ventaja de que el número de segmentación completo amarillo no requiere información de gradiente; las características son las siguientes:
τ = 5 − 1 2 (14) \tau=\frac {\sqrt{5}-1}{2} \tag{14}t=25 1( 14 )

l 1 = − π + 2 π ( 1 − τ ) (15) l_{1}=-\pi+2 \pi(1-\tau) \tag{15}yo1=- pag+2 p ( 1t )( 15 )

l 2 = − π + 2 π τ (16) \begin{reunidos} l_{2}=-\pi+2 \pi \tau \end{reunidos}\tag{16}yo2=- pag+2 metros cuadrados( 16 )
Nueva fórmula de búsqueda local:
dis 1 ′ = ∣ l 1 xj ′ − l 2 xi ′ ∣ (17) di s_{1}^{\prime}=\left|l_{1} x_{j}^{ \prime}-l_{2} x_{i}^{\prime}\right| \tag{17}d i s1= yo1Xjyo2Xi ( 17 )

xit + 1 = xi ′ ∣ sin ⁡ ( ψ 1 ) ∣ + dis 1 ′ fi ψ 2 sin ⁡ ( ψ 1 ) (18) \begin{reunidos} x_{i}^{t+1}=x_{i} ^{\prime}\left|\sin \left(\psi_{1}\right)\right|+di s_{1}^{\prime} f_{i} \psi_{2} \sin \left(\ psi_{1}\right) \end{reunidos}\tag{18}Xit + 1=Xipecado( pag1)+d i s1Fyopags2pecado( pag1)( 18 )
Nueva fórmula de búsqueda global:
dis 2 ′ = ∣ l 1 g − l 2 xit ∣ (19) di s_{2}^{\prime}=\left|l_{1} g-l_{2} x_{ yo}^{t}\right|\tag{19}d i s2= yo1gramoyo2Xit ( 19 )

xit + 1 = xit ∣ sin ⁡ ( ψ 1 ) ∣ + dis 2 fi ψ 2 sin ⁡ ( ψ 1 ) (20) \begin{reunidos} x_{i}^{t+1}=x_{i}^{ t}\left|\sin \left(\psi_{1}\right)\right|+di s_{2} f_{i} \psi_{2} \sin \left(\psi_{1}\right) \ final{recolectado} \tag{20}Xit + 1=Xitpecado( pag1)+d i s2Fyopags2pecado( pag1)( 20 )
Entre ellos,τ \tauτ es la proporción áurea,l 1 , l 2 l_{1} , l_{2}yo1yo2Es un coeficiente de actualización de distancia con las ventajas de la sección áurea, que puede obtener enormes beneficios cuando dos mariposas interactúan y mejorar la velocidad de convergencia del algoritmo. disis y dis~ son nuevas fórmulas de distancia, ψ , ∈ [ 0 , π ] \psi, \in[0, \pi]pd ,[ 0 ,π ] ,ψ 2 ∈ [ 0 , 2 π ] \psi_{2} \in[0,2 \pi]pags2[ 0 ,2 π ] número aleatorio.
Las ecuaciones (18), (20) aumentan el factor de corrección individual∣ sin ⁡ ( ψ 1 ) ∣ \left|\sin \left(\psi_{1}\right)\right|pecado( pag1) el rango de fluctuación es[ 0 , 1 2 ] \left[0, \frac{1}{2}\right][ 0 ,21] , guiando el ajuste de vuelo individual desde el nivel individual; el factor de coordinación de grupoψ 2 sin ⁡ ( ψ 1 ) \psi_{2} \sin \left(\psi_{1}\right)pags2pecado( pag1) tiene un rango flotante de[ − 2 π , 2 π ] [-2 \pi, 2 \pi][ - 2 pags ,] , guiando la dirección de búsqueda de la población desde el nivel del grupo, y la cooperación de los dos hace que la población de mariposas busque la ubicación de la fuente de alimento. En comparación con las fórmulas de actualización de la posición original (5) y (6), la adición del factor de corrección individual y el factor de coordinación del grupo puede guiar mejor a la mariposa desde la posición original hasta la posición de fuente de alimento, lo que es más propicio para mantener la diversidad. de la población, mejorando así la capacidad de búsqueda global.
En resumen, el uso del caos para inicializar la población hace que la distribución de la población sea más uniforme y sienta las bases para la posterior optimización del algoritmo. Mediante el intercambio de comentarios, atraiga mariposas al azar para acelerar el intercambio de información entre las poblaciones de mariposas, realice el flujo de información y logre compartir, y mejore la capacidad del algoritmo para saltar fuera del óptimo local. Introduzca la colaboración grupal, reduzca la dependencia ciega de las mariposas y mejore y equilibre las capacidades de búsqueda globales y locales. Durante el proceso de optimización, la población de mariposas puede realizar una búsqueda dirigida, ajustar la dirección de evolución adecuada para el individuo y luego mejorar la capacidad de optimización del algoritmo.

Por favor agregue la descripción de la imagen

3. Resultados experimentales

Por favor agregue la descripción de la imagen

4. Referencias

[1] Li Shouyu, He Qing, Du Nisuo. Algoritmo de optimización de mariposa para el intercambio de retroalimentación del caos y la sinergia grupal [J/OL]. Ciencias de la computación y exploración: 1-12 [2021-04-30]. http://kns. cnki.net/kcms/detail/11.5602.TP.20210128.1109.014.html.

5. Código Matlab

6. Código Python

Supongo que te gusta

Origin blog.csdn.net/u011835903/article/details/126387512
Recomendado
Clasificación