Algoritmo artificial para calentar peces
La posición actual del individuo xp(v1, v2...vn), d(p, q)=(1/n)*{ [v( p, 1)-v(q, 1)]^2...[v
(p, n)-v(q, n)]^2}, la distancia entre los dos cuerpos (no sé por qué usar 1/n en lugar de la raíz cuadrada); visual
La distancia percibida de un pez. @factor de hacinamiento.
El primer paso: la posición actual del pez artificial que busca alimento es Xi, seleccione aleatoriamente una posición Xj (d(ij)
lt;=visual) en el dominio visible, si xj es mejor que xi avanza un paso hacia xj; de lo contrario, avanza un paso al azar. Si no se cumplen las restricciones,
córtelas. X(j 1,k)={si x(i,k)=x(j,k) no cambia, de lo contrario x(j 1,k)=aleatorio(0,1)}.
Paso 2: Agrupación:
Hay peces *** nf1 en el dominio visible de xi. Forme el conjunto KJi, KJi={Xj|Dijlt;=visual}, si KJi no está vacío,
entonces
X(center)=(xj1 xj2 ..... xjn )/nf1(xjk pertenece a kji)
X(center,k)=0,X(center,k)lt;0.5 1,X(center,k)gt;=0.5
Si: FCc/nf1gt; @FCi (FCc es la concentración de alimentos en el centro, FCi es la concentración de alimentos en el punto Xi)
Entonces: moverse hacia el centro: X(i 1, k) = sin cambios, cuando Xik =X (centro, k Xik = aleatorio (0, 1), cuando
Xik!= @FCi
Entonces: forraje
El tercer paso: perseguir la cola
En el rango visual, la concentración máxima de alimento de un individuo se llama Xmax. Si: FCmaxgt @FCi, entonces avanza hacia ella
: X(i 1,k)=Cuando X(i,k)=X(max,k), X(i,k) permanece sin cambios, cuando X(i,k)!=X(max,k), X(i,k)=
Aleatorio (0, 1)
Paso 4: Tablero de anuncios
Durante el proceso de operación, use el tablero de anuncios para siempre registrar el FCi óptimo