Articulo de referencia

Algoritmo competitivo imperialista

En informática , los algoritmos competitivos imperialistas son un tipo de método computacional utilizado para resolver problemas de optimización de diferentes tipos. [ 1 ] [ 2 ]...

En informática , los algoritmos competitivos imperialistas son un tipo de método computacional utilizado para resolver problemas de optimización de diferentes tipos. [ 1 ] [ 2 ] Al igual que la mayoría de los métodos en el área de la computación evolutiva , ICA no necesita el gradiente de la función en su proceso de optimización. Desde un punto de vista específico, ICA puede considerarse como la contraparte social de los algoritmos genéticos (AG). ICA es el modelo matemático y la simulación computacional de la evolución social humana , mientras que los AG se basan en la evolución biológica de las especies.

Metáfora

Figura 1: Diagrama de flujo del algoritmo competitivo imperialista (ICA)

La Figura 1 muestra el diagrama de flujo del Algoritmo Competitivo Imperialista. Este algoritmo comienza generando un conjunto de soluciones aleatorias candidatas en el espacio de búsqueda del problema de optimización. Los puntos aleatorios generados se denominan Países iniciales . En este algoritmo, los Países son el equivalente a los Cromosomas en los AG y a las Partículas en la Optimización por Enjambre de Partículas (PSO), y constituyen una matriz de valores de una solución candidata del problema de optimización. La función de coste del problema de optimización determina el poder de cada país. En función de su poder, algunos de los mejores países iniciales (los países con el menor valor de la función de coste) se convierten en Imperialistas y comienzan a tomar el control de otros países (denominados colonias ) y a formar los Imperios iniciales . [ 1 ]

Los dos operadores principales de este algoritmo son la asimilación y la revolución . La asimilación hace que las colonias de cada imperio se acerquen al estado imperialista en el espacio de características sociopolíticas (espacio de búsqueda de optimización). La revolución provoca cambios aleatorios repentinos en la posición de algunos países en el espacio de búsqueda. Durante la asimilación y la revolución, una colonia puede alcanzar una mejor posición y tener la oportunidad de tomar el control de todo el imperio y reemplazar al estado imperialista actual. [ 3 ]

La competencia imperialista es otra parte de este algoritmo. Todos los imperios intentan ganar este juego y apoderarse de las colonias de otros imperios. En cada paso del algoritmo, según su poder, todos los imperios tienen la posibilidad de tomar el control de una o más colonias del imperio más débil. [ 1 ]

El algoritmo continúa con los pasos mencionados (Asimilación, Revolución, Competencia) hasta que se cumpla una condición de parada.

Algoritmo

Los pasos anteriores se pueden resumir en el siguiente pseudocódigo . [ 2 ] [ 3 ]

0) Defina la función objetivo:F(incógnita),incógnita=(incógnita1,incógnita2,,incógnitad);{\displaystyle f(\mathbf {x} ),\quad \mathbf {x} =(x_{1},x_{2},\dots ,x_{d});\,} 1) Inicialización del algoritmo. Generar alguna solución aleatoria en el espacio de búsqueda y crear imperios iniciales. 2) Asimilación: Las colonias se mueven hacia los estados imperialistas en diferentes direcciones. 3) Revolución: Se producen cambios aleatorios en las características de algunos países. 4) Intercambio de posiciones entre una colonia y el imperialista. Una colonia con una mejor posición que el imperialista, tiene la oportunidad de tomar el control del imperio reemplazando al imperialista actual. 5) Competencia imperialista: Todos los imperialistas compiten por apoderarse de las colonias de los demás. 6) Eliminar a los imperios sin poder. Los imperios débiles pierden su poder gradualmente y finalmente serán eliminados. 7) Si se cumple la condición de parada, deténgase; si no, vaya al paso 2. 8) Fin

Véase también

Referencias

  1. 1 2 3 Atashpaz-Gargari, E.; Lucas, C (2007). "Algoritmo competitivo imperialista: un algoritmo para la optimización inspirado en la competencia imperialista" (PDF) . Congreso IEEE sobre Computación Evolutiva . Vol.  7. págs. 4661–4666 . 
  2. 1 2 Hosseini, S.; Al Khaled, A. (2014). "Una revisión sobre la metaheurística del algoritmo competitivo imperialista: implementación en el dominio de la ingeniería y direcciones para futuras investigaciones". Applied Soft Computing . 24 : 1078– 1094. doi : 10.1016/j.asoc.2014.08.024 .
  3. 1 2 Nazari-Shirkouhi, S.; Eivazy, H.; Ghodsi, R.; Rezaie, K.; Atashpaz-Gargari, E. (2010). "Resolución del problema de la subcontratación de la mezcla integrada de productos mediante un nuevo algoritmo metaheurístico: algoritmo competitivo imperialista". Expert Systems with Applications . 37 (12): 7615– 7626. doi : 10.1016/j.eswa.2010.04.081 .