Optimización de enjambre de gatos

La naturaleza está repleta de compartimentos sociales para llevar a cabo diversos trabajos. Si bien el fin último de todas las personas y de la conducta colectiva es la supervivencia, por diversas razones: la caza, la protección, la navegación y el forrajeo los animales trabajan e interactúan en grupos, rebaños, cardúmenes, colonias y rebaños. Es muy interesante que las criaturas encuentren las situaciones óptimas y realicen tareas de manera eficiente en grupos. Está claro que tal conducta óptima y eficiente ha evolucionado a lo largo de los milenios. Entonces, inspirarlos a solucionar nuestros problemas es bastante lógico. Este es el objetivo principal de un campo de estudio llamado inteligencia de enjambre (SI). Se han propuesto muchos algoritmos en el campo de la inteligencia de enjambre (SI), por ejemplo, Optimización de colonias de hormigas (ACO), Optimización de enjambre de partículas (PSO), Optimizador de lobo gris (GWO), etc. 

En este artículo, discutiremos la técnica Cat Swarm Optimization, que es una optimización basada en enjambres.

Inspiración:

Cat Swarm Optimization está claramente inspirado en el comportamiento de los gatos en el mundo real. Según la biología, hay alrededor de 32 especies diferentes de gatos, desde leones hasta guepardos y desde tigres hasta gatos domésticos. Aunque viven en entornos bastante diferentes, muchos atributos de comportamiento son similares. A pesar de estar la mayor parte del tiempo inactivos, los gatos tienen una gran curiosidad.

Antes de definir el modelo matemático del algoritmo, se debe saber que hay dos estados diferentes de ser para cualquier gato.

  1. Modo de búsqueda : los gatos están inactivos en este estado, es decir, descansando, mirando a su alrededor o en un estado para moverse a otro lugar.
  2. Modo de seguimiento : los gatos están activos en este estado, es decir, cambian su posición actual.

Modelo matemático:

Definamos el modelo de optimización de enjambre de gatos. Cada gato en un espacio de soluciones tiene sus propias N dimensiones d N , velocidad para cada dimensión  v_{i,d}       , una bandera que sugiere si el gato está en cualquiera de los dos modos (buscando o rastreando) y finalmente un valor de aptitud que representa la acomodación de los gatos a la función de aptitud.

Deseamos encontrar la posición óptima para un gato.

Modo de búsqueda: como ya se mencionó, los gatos en este estado están inactivos. Este modo tiene cuatro factores esenciales, a saber: búsqueda de grupo de memoria (SMP), búsqueda de un rango de la dimensión seleccionada (SRD), conteo de dimensión para cambiar (CDC) y consideración de autoposición (SPC).

  • SMP: Define la memoria para cada gato indicando los puntos perseguidos por un gato.
  • SRD: declara la relación mutativa para las dimensiones seleccionadas.
  • CDC: Este factor indica cuántas dimensiones variarán.
  • SPC: si la posición en la que ya está colocado el gato será un punto candidato para que se mueva un gato. Es un valor booleano (ya sea verdadero o falso).

NOTA: Independientemente del valor de SPC, el valor de SMP no se ve afectado.

1. If SPC is True Then
        j=SMP
    Else
        j=SMP-1
2. Present position of cat Ck is copied j times.
3. Depending on the value of CDC the value of SRD is either decremented or incremented.
4. Calculate the Fitness value (FV) of all candidate points.
5. If all the FV are not equal, FV are converted to selection probability:
    P_i = \frac{|FV_i - FV_b|}{FV_{max}-FV_{min}}     where i ranges in (0,j)

     FV_b can be set to FV_{max} or FV_{min} depending on the goal of fitness function either 

    maximize or minimize.

 6. Randomly select the candidate points and replace the current position of cat Ck.

Modo de rastreo: una vez que un gato está en modo de rastreo, se le asigna su velocidad como  v_{i,d}       .

1. Update the velocites of each cat according to:
    v_{k,d} = v_{k,d} + c_1.r_1(X_{best,d}-X_{k,d})where d ranges in [1,N]

    X_{k,d} = X_{k,d} + v_{k,d}

    c1 is a constant, r1 ranges in [0,1] and X_{k,d} and X_{best,d} are the position of cat Ck in 

    dimension d and the position of a cat with the best FV respectively.

2. If v_{k,d} > v_{max} Then

        v_{k,d} = v_{max}

    Else

        v_{k,d} = v_{k,d}

algoritmo CSO

Para fusionar ambos modos, debemos tener en cuenta que los gatos pasan la mayor parte del tiempo en el modo de búsqueda. Por lo tanto, definimos una relación de mezcla (MR) que sugiere cuánto de cualquiera de los modos se debe tener en cuenta al realizar CSO. Es bastante evidente que debemos mantener el valor de MR muy bajo para tener en cuenta que los gatos pasan la mayor parte del tiempo en modo de búsqueda.

1. Create M cats.
2. Randomly drop the M cats in N dimensional solution space. Assign the velocities of each cat in 
   accordance to v_{max}.

3. Distribute the cats to tracing mode according to MR and rest to seeking mode.

4. Apply the position of the cat X_{k,d} into the fitness function and calculate the fitness value FV.

5. Move the cats according to their flag value. If Ck is in tracing mode apply the tracing mode 

   process to it, if not then apply seeking mode process.

6. Redistribute the cats according to MR.

7. Repeat from step 4 to 6 until termination condition is met.

Aplicando el CSO obtenemos  X_{best,d}        cual es la posición de un gato con mejor FV.

Así es como funciona el algoritmo CSO.

Referencia:

https://link.springer.com/chapter/10.1007/978-3-540-36668-3_94

Publicación traducida automáticamente

Artículo escrito por burhanmrj y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *