Articulo de referencia

Coevolución cooperativa constructiva

El algoritmo coevolutivo cooperativo constructivo (también llamado C3 ) es un algoritmo de optimización global en inteligencia artificial basado en la arquitectura de arranque m...

El algoritmo coevolutivo cooperativo constructivo (también llamado C3 ) es un algoritmo de optimización global en inteligencia artificial basado en la arquitectura de arranque múltiple del procedimiento de búsqueda adaptativa aleatoria voraz (GRASP). [ 1 ] [ 2 ] Incorpora el algoritmo coevolutivo cooperativo existente (CC). [ 3 ] El problema considerado se descompone en subproblemas. Estos subproblemas se optimizan por separado mientras intercambian información para resolver el problema completo. Un algoritmo de optimización, generalmente pero no necesariamente un algoritmo evolutivo , está integrado en C3 para optimizar esos subproblemas. La naturaleza del algoritmo de optimización integrado determina si el comportamiento de C3 es determinista o estocástico .

El algoritmo de optimización C3 fue diseñado originalmente para la optimización basada en simulación [ 4 ] [ 5 ] , pero puede utilizarse para problemas de optimización global en general. [ 6 ] Su ventaja sobre otros algoritmos de optimización, en particular la coevolución cooperativa, radica en su mayor capacidad para manejar problemas de optimización no separables. [ 4 ] [ 7 ]

Posteriormente se propuso una versión mejorada, denominada Evolución Diferencial Coevolutiva Cooperativa Constructiva Mejorada (C 3i DE), que elimina varias limitaciones de la versión anterior. Un elemento novedoso de C 3i DE es la inicialización avanzada de las subpoblaciones. C 3i DE optimiza inicialmente las subpoblaciones de forma parcialmente coadaptativa. Durante la optimización inicial de una subpoblación, solo se considera un subconjunto de los demás subcomponentes para la coadaptación. Este subconjunto aumenta gradualmente hasta que se consideran todos los subcomponentes. Esto hace que C 3i DE sea muy eficaz en problemas de optimización global a gran escala (hasta 1000 dimensiones) en comparación con el algoritmo coevolutivo cooperativo (CC) y la evolución diferencial . [ 8 ]

El algoritmo mejorado se ha adaptado posteriormente para la optimización multiobjetivo . [ 9 ]

Algoritmo

Como se muestra en el pseudocódigo a continuación, una iteración de C3 consta de dos fases. En la Fase I, la fase constructiva, se construye una solución factible para todo el problema de forma gradual, considerando un subproblema diferente en cada paso. Tras el último paso, se consideran todos los subproblemas y se ha construido una solución para el problema completo. Esta solución construida se utiliza como solución inicial en la Fase II, la fase de mejora local. El algoritmo CC se emplea para optimizar aún más la solución construida. Un ciclo de la Fase II incluye la optimización de los subproblemas por separado, manteniendo los parámetros de los demás subproblemas fijos a una solución central de referencia. Una vez hecho esto para cada subproblema, las soluciones encontradas se combinan durante un paso de "colaboración", y la mejor de las combinaciones producidas se convierte en la solución de referencia para el siguiente ciclo. En el siguiente ciclo, se repite el mismo proceso. La Fase II, y por lo tanto la iteración actual, finaliza cuando la búsqueda del algoritmo CC se estanca y no se encuentran soluciones significativamente mejores. Entonces, se inicia la siguiente iteración. Al inicio de la siguiente iteración, se construye una nueva solución factible, utilizando las soluciones encontradas durante la Fase I de la (s) iteración(es) anterior(es) . Esta solución construida se utiliza como solución inicial en la Fase II, del mismo modo que en la primera iteración. Este proceso se repite hasta que se alcanza alguno de los criterios de finalización de la optimización, por ejemplo, un número máximo de evaluaciones.

{ S fase1 } ← ∅ mientras no se cumplan los criterios de terminación hacer si { S fase1 } = ∅ entonces { S fase1 } ← SubOpt(∅, 1) fin si mientras p fase1 no esté completamente construida hacer p fase1 ← GetBest({ S fase1 }) { S fase1 } ← SubOpt( p fase1 , i siguiente subproblema ) fin mientras p fase2 ← GetBest({ S fase1 }) mientras no estancado hacer { S fase2 } ← ∅ para cada subproblema i hacer { S fase2 } ← SubOpt( p fase2 ,i) fin para { S fase2 } ← Collab({ S fase2 }) p fase2 ← GetBest({ S fase2 }) fin mientras fin mientras

Optimización multiobjetivo

La versión multiobjetivo del algoritmo C3 [ 9 ] es un algoritmo basado en Pareto que utiliza la misma estrategia de divide y vencerás que el algoritmo de optimización monoobjetivo C3 . El algoritmo comienza nuevamente con optimizaciones iniciales constructivas avanzadas de las subpoblaciones, considerando un subconjunto creciente de subproblemas. El subconjunto aumenta hasta incluir el conjunto completo de todos los subproblemas. Durante estas optimizaciones iniciales, la subpoblación del último subproblema incluido evoluciona mediante un algoritmo evolutivo multiobjetivo. Para los cálculos de aptitud de los miembros de la subpoblación, se combinan con una solución colaboradora de cada una de las subpoblaciones optimizadas previamente. Una vez optimizadas inicialmente todas las subpoblaciones de los subproblemas, el algoritmo de optimización multiobjetivo C3 continúa optimizando cada subproblema de forma rotativa , pero ahora las soluciones colaboradoras de las subpoblaciones de todos los demás subproblemas se combinan con el miembro de la subpoblación que se está evaluando. La solución colaboradora se selecciona aleatoriamente de entre las soluciones que conforman el frente de Pareto óptimo de la subpoblación. La asignación de aptitud a las soluciones colaboradoras se realiza de forma optimista (es decir, un valor de aptitud "antiguo" se reemplaza cuando el nuevo es mejor).

Aplicaciones

El algoritmo de coevolución cooperativa constructiva se ha aplicado a diferentes tipos de problemas, por ejemplo, un conjunto de funciones de referencia estándar, [ 4 ] [ 6 ] optimización de líneas de prensado de chapa metálica [ 4 ] [ 5 ] y estaciones de producción interactivas. [ 5 ] El algoritmo C 3 se ha integrado, entre otros, con el algoritmo de evolución diferencial [ 10 ] y el optimizador de enjambre de partículas [ 11 ] para las optimizaciones de subproblemas.

Véase también

Referencias

  1. TA Feo y MGC Resende (1989) "Una heurística probabilística para un problema de cobertura de conjuntos computacionalmente difícil" . Operations Research Letters , 8:67 71, 1989.
  2. TA Feo y MGC Resende (1995) "Procedimientos de búsqueda adaptativa aleatoria voraz" . Journal of Global Optimization , 6:109 133, 1995.
  3. MA Potter y KAD Jong, "Un enfoque coevolutivo cooperativo para la optimización de funciones" , en PPSN III: Actas de la Conferencia Internacional sobre Computación Evolutiva. La Tercera Conferencia sobre Resolución de Problemas Paralelos inspirada en la Naturaleza. Londres, Reino Unido: Springer-Verlag, 1994, págs. 249-257.
  4. 1 2 3 4 Glorieux E., Danielsson F., Svensson B., Lennartson B., "Optimización de estaciones de producción interactivas mediante un enfoque de coevolución cooperativa constructiva" , 2014 IEEE International Conference on Automation Science and Engineering (CASE), pp. 322-327, agosto de 2014, Taipéi, Taiwán
  5. 1 2 3 Glorieux E., Svensson B., Danielsson F., Lennartson B., "Un algoritmo coevolutivo cooperativo constructivo aplicado a la optimización de líneas de prensado" , Actas de la 24.ª Conferencia Internacional sobre Automatización Flexible y Fabricación Inteligente (FAIM), págs. 909-917, mayo de 2014, San Antonio, Texas, EE. UU.
  6. 1 2 Glorieux E., Svensson B., Danielsson F., Lennartson B.: "Coevolución cooperativa constructiva para la optimización global a gran escala" , Journal of Heuristics , 2017.
  7. Glorieux E., Danielsson F., Svensson B., Lennartson B.: "Optimización coevolutiva cooperativa constructiva para estaciones de producción interactivas" , International Journal of Advanced Manufacturing Technology , 2015.
  8. Glorieux E., Svensson B., Danielsson F., Lennartson B., "Improved Constructive Cooperative Coevolutionary Differential Evolution for Large-Scale Optimisation" , 2015 IEEE Symposium Series on Computational Intelligence, diciembre de 2015
  9. 1 2 Glorieux E., Svensson B., Danielsson F., Lennartson B., "Optimización coevolutiva cooperativa constructiva multiobjetivo del manejo robótico de líneas de prensado" , Engineering Optimization, Vol. 49, Iss. 10, 2017, pp 1685-1703
  10. Storn, Rainer y Kenneth Price. "Evolución diferencial: una heurística simple y eficiente para la optimización global en espacios continuos" , Journal of global optimization 11.4 (1997): 341-359.
  11. Eberhart, Russ C., y James Kennedy. "Un nuevo optimizador que utiliza la teoría de enjambre de partículas" , Actas del sexto simposio internacional sobre micromáquinas y ciencia humana. Vol. 1. 1995.