92
Introducci´ on a la Computaci´ on Evolutiva Dr. Carlos A. Coello Coello Introducci´ on a la Computaci´ on Evolutiva Dr. Carlos A. Coello Coello Departamento de Computaci´ on CINVESTAV-IPN Av. IPN No. 2508 Col. San Pedro Zacatenco exico, D.F. 07300 email: [email protected] http: //delta.cs.cinvestav.mx/~ccoello Clase No. 15 2018

Introducci´on a la Computaci´on Evolutivadelta.cs.cinvestav.mx/~ccoello/compevol/clase15-2018.pdf · externo y un esquema que maneja restricciones dentro de la expresi´on usada

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Introduccion a la Computacion Evolutiva

Dr. Carlos A. Coello Coello

Departamento de Computacion

CINVESTAV-IPN

Av. IPN No. 2508

Col. San Pedro Zacatenco

Mexico, D.F. 07300

email: [email protected]

http: //delta.cs.cinvestav.mx/~ccoello

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Recocido Simulado

Esta heurıstica se basa en un modelo matematico propuestooriginalmente por Nicholas Metropolis et al. (1953). Este modelosimula la evolucion de un solido en un bano caliente, hasta alcanzarsu equilibrio termico.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Recocido Simulado

Kirkpatrick et al. (1983) y Cerny (1985) hicieron ver, de maneraindependiente, la analogıa entre el proceso de “recocido” propuestopor Metropolis y la optimizacion combinatoria, y propusieron eldenominado “algoritmo de recocido simulado”.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Recocido Simulado

El proceso que emula el recocido simulado consiste en elevarprimero la temperatura hasta un punto en el que sus atomospuedan moverse libremente (o sea, aleatoriamente) y,posteriormente, se disminuye gradualmente la temperaturaforzando a los atomos a rearreglarse de tal forma que se cristalicen.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Recocido Simulado

Durante este proceso, la energıa libre del sistema se minimiza y elhorario de enfriamiento es vital. Si se enfrıa al solido muyrapidamente, o si se enfrıa muy lentamente, no se formara el cristalde manera adecuada. En terminos de busqueda, puede decirse queen estos casos se llegarıa a un optimo local en vez de alcanzar eloptimo global.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Recocido Simulado

1. Select an initial (feasible) solution s0

2. Select an initial temperature t0 > 0

3. Select a cooling schedule CS

4. Repeat

Repeat

Randomly select s ∈ N(s0) (N = neighborhood structure)

δ = f(s)− f(s0) (f = objective function)

If δ < 0 then s0 ← s

Else

Generate random x (uniform distribution in the range (0, 1))

If x < exp(−δ/t) then s0 ← s

Until max. number of iterations ITER reached

t← CS(t)

5. Until stopping condition is met

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Recocido Simulado: Extensiones Multiobjetivo

Serafini [1994] propuso un enfoque basado en metas para resolverproblemas bi-objetivo usando recocido simulado. Se acepta a unindividuo con una probabilidad p. Se usa un archivo de solucionesno dominadas. Sin embargo, solo se usa no dominancia local, por loque se requiere un proceso posterior de filtrado para depurar elcontenido del archivo. Serafini experimento con diferentes funcionespara p (probabilidad de aceptar a un individuo).

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Recocido Simulado: Extensiones Multiobjetivo

Por ejemplo:

P (~x′, ~x, T ) = min{

1, emaxj{λj(fj(~x)−fj(~x′))/T}}

(1)

donde P (~x′, ~x, T ) es la probabilidad de aceptar a ~x′, dados ~x, y latemperatura T . Los pesos λj se inicializan a uno y se modifican a lolargo del proceso.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Recocido Simulado: Extensiones Multiobjetivo

Serafini tambien experimento con otras funciones de probabilidad,como por ejemplo “cone ordering”, que es similar al ordenamientolexicografico.

Su artıculo presenta tambien cierto analisis teorico acerca de laconvergencia del metodo basada en las diferentes funciones deprobabilidad propuestas.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Recocido Simulado: Extensiones Multiobjetivo

Ulungu [1993] propuso un metodo similar, llamado“Multi-Objective Simulated Annealing” (MOSA). En este caso, lafuncion de probabilidad de aceptacion de una solucion es:

P (~x′, ~x, T ) = min{

1, e∑kj=1 λj(fj(~x)−fj(~x′)/T )

}

(2)

donde P (~x′, ~x, T ) se define igual que antes, y k es el numero defunciones objetivo del problema. Los pesos λj se definennuevamente con base en las metas (o niveles de aspiracion) delusuario.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Recocido Simulado: Extensiones Multiobjetivo

Czyzak and Jaszkiewicz [1997] propusieron una tecnica llamada“Pareto Simulated Annealing” (PSA). Esta tecnica tambien usa unenfoque agregativo, pero en este caso se utiliza una poblacion pararealizar la busqueda. Se usa una poblacion secundaria tambien yquadtrees para el almacenamiento eficiente de vectores nodominados.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Recocido Simulado: Extensiones Multiobjetivo

Ruiz-Torres (1997) usa recocido simulado con dominancia dePareto como el criterio de seleccion en problemas bi-objetivo deprogramacion de horarios de maquinas paralelas. Se adoptan dostipos de busqueda en este caso: una que minimiza el numero detrabajos retrasados y otro que minimiza el tiempo de flujopromedio. Posteriormente, se aplica un buscador local paraexplorar el vecindario de las buenas soluciones.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Recocido Simulado: Extensiones Multiobjetivo

Hansen [1997] usa una funcion agregativa normalizada para unproblema en educacion. Como el problema resultante esmono-objetivo, aplica recocido simulado convencional con unesquema de enfriamiento geometrico. Algo interesante, sin embargo,es que se usa una funcion de comparticion de aptitud (en el espaciode las variables) para generar varias soluciones.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Recocido Simulado: Extensiones Multiobjetivo

Lucic y Teodorovic [1999] usan una funcion agregativa en unproblema de programacion de personal de una aerolınea. Se utilizaun umbral para determinar el equilibrio termico, que es el quedefine la convergencia del algoritmo. Este umbral se calcula conotra funcion agregativa en la cual la intencion es checar la mejoralograda en cada objetivo despues de un cierto numero deiteraciones (una epoca), de forma que el algoritmo se detengacuando la mejora sea mınima o inexistente.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Recocido Simulado: Extensiones Multiobjetivo

Suppapitnarm et al. [1999,2000] propusieron un enfoque en el quese usa dominancia de Pareto para seleccionar vectores nodominados, los cuales se almacenan en una poblacion secundaria.Aunque esta tecnica manipula una sola solucion a la vez, las quesean no dominadas con respecto al contenido del archivo, sealmacenan en este. Si una solucion nueva es retenida en el archivo,entonces se vuelve el nuevo punto inicial de busqueda.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Recocido Simulado: Extensiones Multiobjetivo

Karasakal y Koksalan [2000] propusieron el uso de recocidosimulado para resolver problemas bi-objetivo de programacion detareas en una sola maquina. En una primera serie de experimentos,se optimizan los dos objetivos por separado. En un segundoconjunto de experimentos, se usa una funcion agregativa no lineal.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Recocido Simulado: Extensiones Multiobjetivo

Nam y Park [2000] propusieron una version multi-objetivo delrecocido simulado basada en dominancia de Pareto. La principalnovedad de este trabajo es que se proponen seis criterios de costopara la probabilidad de transicion: (1) mınimo, (2) maximo, (3)aleatorio, (4) auto-adaptable, (5) promedio y (6) fijo. Despues derealizar un pequeno estudio comparativo, los autores concluyen quelos mejores criterios son el aleatorio, promedio y fijo. Se comparanresultados con respecto al NPGA, y se muestra que el recocidosimulado tiene problemas para mantener diversidad.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Recocido Simulado: Extensiones Multiobjetivo

En otro trabajo, Nam y Park [2002] proponen el Pareto-based CostSimulated Annealing (PCSA), el cual estima el costo de un estadomediante muestreo (ya sea del vecindario o de toda la poblacion).PCSA se compara con respecto al NPGA, al NSGA y al MOGAusando 18 problemas de prueba de baja dimensionalidad (dosfunciones objetivo, y entre 2 y 4 variables de decision). PCSAmuestra mejor desempeno que los otros algoritmos con respecto auna metrica de uniformidad, pero falla en los casos en los que elfrente de Pareto esta desconectado.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Recocido Simulado: Extensiones Multiobjetivo

Suman [2002,2003] propuso una version multi-objetivo del recocidosimulado basada en dominancia de Pareto, la cual usa un archivoexterno y un esquema que maneja restricciones dentro de laexpresion usada para determinar la probabilidad de moverse a uncierto estado. El criterio de aceptacion utiliza un vector de pesosque considera al numero de restricciones satisfechas por una ciertasolucion.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Recocido Simulado: Extensiones Multiobjetivo

Bandyopadhyay et al. (2008) propusieron AMOSA, que seleccionaindividuos con una probabilidad que depende de la cantidad dedominacion de los mismos, medida esta en terminos delhipervolumen. Este algoritmo usa un archivo externo.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Algunas Aplicaciones

Diseno de un sistema de manufactura celular (Czyzak, 1997).

Asignacion de horarios a enfermeras (Jaszkiewicz, 1997).

Optimizacion de portafolios de inversion (Chang, 1998).

Asignacion de vuelos a tripulaciones (Lucic & Teodorovic, 1999).

Diseno de barcos (Ray, 1995).

Optimizacion del marco de una bicicleta (Suppapitnarm, 1999).

Programacion de horarios de maquinas paralelas (Ruiz-Torres, 1997)

Ajuste de filtros analogos (Thompson, 2001)

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Para Saber Mas ...

B. Suman and P. Kumar, A survey of simulated annealing asa tool for single and multiobjective optimization, Journal ofthe Operational Research Society, Vol. 57, No. 10, pp. 1143–1160,October 2006.

Carlos A. Coello Coello, Gary B. Lamont and David A. VanVeldhuizen, Evolutionary Algorithms for SolvingMulti-Objective Problems, Second Edition, Springer, NewYork, ISBN 978-0-387-33254-3, September 2007.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Colonia de Hormigas

Esta metaheurıstica fue propuesta por Marco Dorigo a mediados delos 1990s y se basa en el comportamiento de las colonias dehormigas reales.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Colonia de Hormigas

Las hormigas depositan una sustancia quımica denominadaferomona, la cual influencia su comportamiento: las hormigastenderan a tomar rutas en donde hay una mayor cantidad deferomona. Las rutas de feromona pueden verse como un mecanismode comunicacion indirecta entre las hormigas.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Colonia de Hormigas

Desde una perspectiva computacional, el Sistemas de Hormigas (oAnt System) es un sistema multi-agente en el que las interaccionesde bajo nivel entre los agentes individuales produce uncomportamiento (emergente) complejo de parte del grupo (ocolonia) de hormigas.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Colonia de Hormigas

Las 3 ideas principales de las colonias reales de hormigas que sehan adoptado en esta heurıstica son las siguientes:

1. La comunicacion indirecta a traves de los rastros de feromona.

2. Las rutas mas cortas tienden a tener una tasa de crecimientode feromona mas alta.

3. Las hormigas tienen una mayor preferencia (con ciertaprobabilidad) por las rutas que tienen una mayor cantidad deferomona).

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Colonia de Hormigas

Adicionalmente, esta heurıstica presenta caracterısticas noexistentes en las colonias reales de hormigas. Por ejemplo:

1. Cada hormiga es capaz de estimar que tan lejos se encuentra deun cierto estado.

2. Las hormigas tienen informacion acerca del ambiente y la usanpara tomar decisiones. Por lo tanto, su “comportamiento” nosolo es adaptativo, sino tambien exhaustivo.

3. Las hormigas tienen memoria, puesto que esta es necesariapara asegurar que solo se generen soluciones factibles a cadapaso del algoritmo.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Colonia de Hormigas : Extensiones Multiobjetivo

Iredi et al. [2001] propusieron un algoritmo basado en la colonia dehormigas que usa varias poblaciones. La idea es usar coloniasheterogeneas de hormigas cada una de las cuales consideradiferentes pesos para una funcion agregativa.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Colonia de Hormigas : Extensiones Multiobjetivo

Gagne et al. [2000,2001] propusieron un enfoque en el cual losvalores heurısticos usados para decidir los movimientos de unahormiga toman en consideracion la existencia de varios objetivos.Sin embargo, cuando se actualizan los rastros de feromona, solo seconsidera un objetivo. Esta tecnica se aplica a la solucion de unproblema de programacion de tareas con una sola maquina.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Colonia de Hormigas : Extensiones Multiobjetivo

T’kindt et al. [2002] proponen un enfoque llamado SACO, el cualusa colonia de hormigas para resolver un problema deprogramacion de tareas en 2 maquinas. En este caso, se usatambien ordenamiento lexicografico, puesto que los objetivos seoptimizan por separado y secuencialmente.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Colonia de Hormigas : Extensiones Multiobjetivo

Shelokar et al. [2000,2002] proponen un algoritmo multi-objetivobasado en la colonia de hormigas, el cual aplican a la solucion tantode problemas combinatorios como continuos. Este enfoque puedeser considerado realmente como una version de SPEA en la que elmotor de busqueda es la colonia de hormigas, ya que incorpora lamayorıa de los mecanismos de este algoritmo (asignacion deaptitud, un archivo externo y un procedimiento de clusters parapodar el contenido del archivo externo cuando este esta saturado.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Colonia de Hormigas : Extensiones Multiobjetivo

Baran y Schaerer [2003] extendieron el algoritmo MACS-VRPTW(A Multiple Ant Colony System for Vehicle Routing Problems withTime Windows) [Gambardella, 1999] usando un enfoque basado enoptimalidad de Pareto. Un aspecto interesante de este trabajo esque el rastro de feromona se reinicializa al final de cada generacionusando los valores promedio del conjunto de optimos de Pareto.Esto busca mejorar las capacidades explorativas del algoritmo.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Colonia de Hormigas : Extensiones Multiobjetivo

Garcıa Martınez et al. [2007] proponen una version estatica deMONACO, en la que se incorpora la nocion de no dominanciajunto con un archivo externo que se usa para retener las solucionesno dominadas obtenidas hasta el momento. Cabe mencionar que losautores indican que la version original de MONACO NO producesoluciones no dominadas.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Colonia de Hormigas : Extensiones Multiobjetivo

Doerner et al. [2001,2004] propusieron un enfoque llamado ParetoAnt Colony Optimization (P-ACO), el cual se adopta para resolverproblemas de seleccion de portafolios de inversion. Un aspectointeresante de este enfoque es que usa quadtrees para identificar,almacenar y recuperar soluciones no dominadas.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Colonia de Hormigas : Extensiones Multiobjetivo

Guntsch y Middendorf [2003] propusieron el enfoque denominadoPopulation-based Ant Colony Optimization (PACO), el cual se usapara resolver problemas de programacion de tareas en una solamaquina. La idea de este enfoque fue propuesta originalmente en[Guntsch, 2002] en el contexto de optimizacion dinamica.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Colonia de Hormigas : Extensiones Multiobjetivo

Garcıa-Martınez et al. [2004,2007] realizan un estudio comparativoexhaustivo en el que incluyen 8 versiones multi-objetivo de lacolonia de hormigas, ademas de SPEA2 y el NSGA-II. Para elestudio comparativo, adoptan varias instancias del problema delviajero simetrico.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Colonia de Hormigas : Extensiones Multiobjetivo

Existen pocas propuestas para usar extensiones multiobjetivo deACO en espacios continuos.

Lo primero que debe resolverse en este caso es el optimizadormono-objetivo. La primera propuesta para extender ACO aespacios continuos fue la de Bilchev [1995]. Este algoritmocomienza por colocar un nido en algun sitio en un espacion-dimensional. Despues proyecta un grupo de vectores (hormigas)en el espacio de busqueda que rodea al nido. Tras variasiteraciones, se ajusta gradualmente la direccion de estos vectoreshacia areas prometedoras del espacio de busqueda.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Colonia de Hormigas : Extensiones Multiobjetivo

Tal vez la propuesta mas utilizada es la de Socha y Dorigo [2008],denominada ACOR. La idea fundamental de esta propuesta es eluso de un modelo de feromona basado en las funciones de densidadde probabilidad (PDFs, por sus siglas en ingles), en vez de usardstribuciones de probabilidad discretas.

Existen al menos otras dos propuestas, que son menos utilizadas:Continuous Interacting Ant Colony (CIAC) [Dreo and Siarry [2004]y Continuous ACO (CACO) [Pourtakdoust et al., 2004].

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Colonia de Hormigas : Extensiones Multiobjetivo

Al parecer, existen solo tres versiones multi-objetivo de ACO paraespacios continuos, las cuales seran descritas brevemente acontinuacion.

Angus [2007] propuso el Pareto-based Ant Colony Optimisation forMulti-Objective Function Optimization (PACO-MOFO).

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Colonia de Hormigas : Extensiones Multiobjetivo

PACO-MOFO se basa en el uso de ACOR y el CrowdingPopulation-based ACO (CPACO) [Angus, 2007]. El modelo deferomona adoptado por PACO-MOFO es similar al de ACOR yutiliza un operador de reemplazo basado en la distancia deagrupamiento (Restricted Tournament Selection (RTS)), peroademas incluye comparticion de aptitud, pues indica que el solo usodel agrupamiento no es suficiente para mantener diversidad.

RTS selecciona un subconjunto aleatorio de la poblacion (definidopor el tamano de la ventana de agrupamiento) y compara unanueva solucion con respecto a este subconjunto a fin de determinarla maxima similitud. Si la nueva solucion es mejor que la massimilar (se usa dominancia fuerte en este caso), se reemplaza a lasolucion mas similar; de lo contrario, se descarta la nueva solucion.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Colonia de Hormigas : Extensiones Multiobjetivo

PACO-MOFO se compara con respecto al NSGA-II en problemassencillos (dos objetivos y unas cuantas variables de decision usandolas summary-attainment surfaces de Knowles [2005].

Algo interesante es que el autor indica que no esperaba ganarle alNSGA-II, sino simplemente mostrar que su algoritmo podıaobtener resultados competitivos y logra eso en tres de los cuatroproblemas utilizados.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Colonia de Hormigas : Extensiones Multiobjetivo

La segunda propuesta es el MOACOR [Garcıa-Najera andBullinaria, 2007]. En este caso, se usa el concepto de dominancedepth [Deb et al., 2000] para preservar, en cada iteracion, a lassoluciones mas cercanas al frente de Pareto en el archivo deferomona.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Colonia de Hormigas : Extensiones Multiobjetivo

Como el archivo de feromona tiene un tamano constante, si elnumero de soluciones excede dicho tamano, se activa un estimadorde densidad basado en la distancia de agrupamiento del NSGA-II.Este mecanismo calcula la distancia de agrupamiento por solucion,y aquellos con los valores mas altos se remueven, a fin de mantenerel archivo dentro del tamano maximo permisible.

Los otros mecanismos de ACOR (incluyendo el usado para generarnuevas soluciones) se mantienen intactos en este algoritmo.

Se comparan resultados con respecto al NSGA-II y a MOPSOusando los problemas ZDT y algunos otros problemas massencillos. Sin embargo, no se usan metricas.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Colonia de Hormigas : Extensiones Multiobjetivo

La tercera propuesta es el Indicator-based Multi-Objective AntColony Optimization Algorithm for continuous search spaces(iMOACOR) propuesto por Falcon Cardona y Coello Coello [2016,2017].

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Colonia de Hormigas : Extensiones Multiobjetivo

iMOACOR se basa en ACOR y en el algoritmo de jerarquizacionbasado en el indicador R2 de Hernandez Gomez y Coello Coello[2013]. Sus dos rasgos mas distintivos son: (1) el uso de un archivode feromona que almacena la mejor solucion de acuerdo alalgoritmo R2-ranking y (2) un proceso de actualizacion de laferomona que promueve una competencia entre las nuevassoluciones y las almacenadas en el archivo hasta el momento.

Este algoritmo se comparo con respecto a MOEA/D, NSGA-III,SMS-EMOA (usando el algoritmo de HyPE) y MOACOR usandolos problemas DTLZ y WFG usando IGD+, hipervolumen yespaciado. iMOACOR fue superior a MOACOR y a SMS-EMOA yobtuvo resultados competitivos con respecto a MOEA/D yNSGA-III.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Algunas Aplicaciones

Optimizacion de una red para un sistema de distribucion de riego

(Mariano and Morales, 1999).

Ruteo de vehıculos (Gambardella et al., 1999).

Programacion de tareas (Iredi et al., 2001).

Programacion de horarios (Gravel et al. 2001).

Confiabilidad (Shelokar et al., 2002).

Optimizacion de portafolios de inversiom (Doerner et al., 2004).

Optimizacion de redes (Cardoso et al., 2003).

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Para Saber Mas ...

C. Garcıa-Martınez, O. Cordon and F. Herrera, A taxonomy andan empirical analysis of multiple objective ant colonyoptimization algorithms for the bi-criteria TSP, EuropeanJournal of Operational Research, Vol. 180, No. 1, pp. 116–148, July1, 2007.

Guillermo Leguizamon and Carlos A. Coello Coello,Multi-Objective Ant Colony Optimization: A Taxonomyand Review of Approaches, in Satchidanada Dehuri, SusmitaGhosh and Sung Bae Cho (Editors), Integration of SwarmIntelligence and Artificial Neural Network, Chapter 3, pp. 67–94,World Scientific, Singapore, 2011, ISBN 978-981-4280-14-3.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Optimizacion Mediante Cumulos de Partıculas

James Kennedy y Russell Eberhart [1995] propusieron un algoritmollamado particle swarm optimization (PSO), que se inspiro en lospatrones de vuelo de algunas aves que viajan en grupo. Estetambien es un algoritmo cumular.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Optimizacion Mediante Cumulos de Partıculas

La idea de esta tecnica es simular los movimientos de un grupo (opoblacion) de aves que intentan encontrar comida. La tecnicapuede verse como un algoritmo conductista distribuido que realizauna busqueda multidimensional. En este algoritmo, el movimientode cada partıcula (o individuo) se ve afectado por el del mejor desu grupo o de toda la poblacion (segun el esquema adoptado).

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Optimizacion Mediante Cumulos de Partıculas

1. For i = 1 to M (M = population size)Initialize P [i] randomly(P is the population of particles)Initialize V [i] = 0 (V = speed of each particle)Evaluate P [i]GBEST = Best particle found in P [i]

2. End For3. For i = 1 to M

PBESTS[i] = P [i](Initialize the “memory” of each particle)

4. End For

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Optimizacion Mediante Cumulos de Partıculas

5. RepeatFor i = 1 to M

V [i] = w × V [i] + C1 ×R1 × (PBESTS[i]− P [i])+C2 ×R2 × (PBESTS[GBEST ]− P [i])

(Calculate speed of each particle)(W = Inertia weight, C1 & C2 are positive constants)(R1 & R2 are random numbers in the range [0.,1])POP [i] = P [i] + V [i]

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Optimizacion Mediante Cumulos de Partıculas

If a particle gets outside the pre-defined hypercubethen it is reintegrated to its boundaries

Evaluate P [i]If new position is better then PBESTS[i] = P [i]GBEST = Best particle found in P [i]

End For6. Until stopping condition is reached

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Optimizacion Mediante Cumulos de Partıculas

En la simulacion, el comportamiento de cada partıcula es afectadoya sea por el mejor individuo local (o sea, dentro de ciertovecindario) o por el mejor individuo global. El enfoque es, portanto, poblacional, y adopta una medida de desempeno similar alvalor de aptitud usado con los algoritmos evolutivos.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Optimizacion Mediante Cumulos de Partıculas

El ajuste de los individuos es analogo al uso de un operador decruza. Adicionalmente, este enfoque introduce el uso de que lassoluciones potenciales vuelen a traves del hiperespacio (esto se usapara acelerar convergencia). Notese que el PSO permite que losindividuos se beneficien de sus experiencias pasadas.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Optimizacion Mediante Cumulos de Partıculas

En contraste, en un algoritmo evolutivo, normalmente la poblacionactual es la unica “memoria” usada por los individuos. PSO se hausado con exito en problemas tanto discretos como continuos y suanalogıa con los algoritmos evolutivos hace pensar que resultarelativamente facil extender el algoritmo al caso multi-objetivo. Sinembargo, el esquema de seleccion de lıderes introduce un grado decomplejidad un tanto inesperado y ha dado pie a una enormecantidad de propuestas.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

PSO: Versiones Multi-Objetivo

Moore y Chapman [1999] presentaron el primer intento porextender PSO a problemas multi-objetivo en un manuscrito nopublicado. Los autores enfatizan la importancia de efectuar tantouna busqueda individual, como una de grupo (usando elcomponente cognitivo y el social). Sin embargo, no adoptan unesquema para mantener diversidad.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

PSO: Versiones Multi-Objetivo

Ray y Liew [2002] propusieron el algoritmo de la denominadametafora cumular, el cual usa dominancia de Pareto y combinaconceptos de los algoritmos evolutivos con PSO. Este enfoque usaagrupamiento (crowding) para mantener diversidad y una cribamulti-nivel para manejar restricciones [Ray, 2000].

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

PSO: Versiones Multi-Objetivo

Parsopoulos y Vrahatis [2002] adoptaron una funcion agregativa(de hecho, implementan tres tipos de esquemas: una funcionagregativa lineal convencional, una funcion agregativa dinamica y elmetodo de agregamiento bang bang [Jin, 2001]).

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

PSO: Versiones Multi-Objetivo

En trabajo mas reciente, Parsopoulos et al. [2004] estudian unaversion multi-objetivo paralela del PSO denominada VectorEvaluated Particle Swarm (VEPSO). Este algoritmo es unavariante multi-cumular del PSO, la cual esta basada en VEGA.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

PSO: Versiones Multi-Objetivo

Hu y Eberhart [2002] propusieron el denominado “vecindariodinamico”, en el cual se optimiza solo un objetivo a la vez, usandoun esquema similar al ordenamiento lexicografico. En un trabajoposterior, Hu et al. [2003] adoptan una poblacion secundaria(llamada “memoria extendida”) e introducen algunas otras mejoras.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

PSO: Versiones Multi-Objetivo

Fieldsend y Singh [2002] propusieron un esquema que usa unarchivo elitista no acotado, en el cual se adopta una estructura dedatos especial denominada “arbol dominado” para almacenar a losindividuos no dominados obtenidos a lo largo del proceso debusqueda. Este archivo interactua con la poblacion primaria a finde definir guıas locales. Este enfoque adopta tambien un operadorde “turbulencia”, el cual consiste fundamentalmente de un operadorde mutacion que actua sobre la velocidad de las partıculas.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

PSO: Versiones Multi-Objetivo

Coello Coello et al. [2002, 2004] propusieron un esquema basado en la idea de

tener un repositorio global en el cual cada partıcula deposite sus experiencias

de vuelo despues de cada ciclo de vuelo. Adicionalmente, las actualizaciones al

repositorio se efectuan usando la rejilla adaptativa de PAES. Este repositorio es

utilizado por las partıculas para identificar un lıder que conduzca la busqueda.

El enfoque usa tambien un operador de mutacion que actua tanto en las

partıculas del cumulo como en el rango de cada variable de decision del

problema a resolverse.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

PSO: Versiones Multi-Objetivo

En trabajo mas reciente, Toscano Pulido y Coello Coello [2004]usan el concepto de dominancia de Pareto para determinar ladireccion de vuelo de una partıcula. Los autores adoptan tecnicasde clustering para dividir la poblacion de partıculas en varioscumulos, a fin de obtener una mejor distribucion de soluciones en elespacio de las variables de decision.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

PSO: Versiones Multi-Objetivo

Baltar y Fontane [2006] usan una variante del MOPSO [Coello,2004] para resolver problemas de calidad del agua. El cambioprincipal consiste en eliminar la rejilla adaptativa del algoritmooriginal, y calcular, en el espacio de las funcions objetivo, ladensidad de puntos alrededor de cada solucion almacenada en elrepositorio (esto parece ser similar a los nichos). Un aspectointeresante de este esquema es que se implemento en un formato dehoja electronica usando Microsoft Excel y Visual Basic.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

PSO: Versiones Multi-Objetivo

Tayal [2003] usa PSO con una funcion agregativa lineal pararesolver varios problemas de optimizacion en ingenierıa. Lasrestricciones son manejadas usando a traves del uso de una funcionde penalizacion externa, y los pesos para la funcion agregativalineal se varıan de una ejecucion a otra (es decir, se requieren variasejecuciones independientes para generar el frente de Pareto de unproblema).

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

PSO: Versiones Multi-Objetivo

Mostaghim y Teich [2003] propusieron un metodo sigma en el cuallos mejores guıas locales de cada partıcula son adoptados paramejorar la convergencia y diversidad de un PSO usado paraoptimizacion multi-objetivo. Los autores usan tambien un operadorde “turbulencia”, aunque en este caso se aplica en el espacio de lasvariables de decision.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

PSO: Versiones Multi-Objetivo

Li [2003a] propone un enfoque que incorpora los mecanismos principales del

NSGA-II en el PSO. Este enfoque combina la poblacion de partıculas y todas

las mejores posiciones personales de cada partıcula, y selecciona las mejores

partıculas entre ellas para conformar la siguiente poblacion. Tambien selecciona

aleatoriamente los lıderes de entre el conjunto de las mejores partıculas, con

base en dos mecanismos diferentes: un conteo de nichos y una distancia de

agrupamiento.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

PSO: Versiones Multi-Objetivo

Bartz-Beielstein et al. [2003] propusieron un esquema que comienzaa partir de la nocion de introducir elitismo (archivado) en el PSO.Se analizan diferentes metodos para seleccionar y borrar partıculasdel archivo, para generar una aproximacion satisfactoria del frentede Pareto.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

PSO: Versiones Multi-Objetivo

Chow and Tsui [2004] propusieron un algoritmo de aprendizajebasado en la respuesta de agentes autonomos. La idea esdescomponer la funcion de recompensa global en un conjunto defunciones de recompensa locales y, de esta forma, modelar elproceso de extraccion de respuestas como un problema deoptimizacion multi-objetivo. Se introduce entonces un PSOmodificado al que denominan “Multi-Species PSO”, el cualconsidera a cada funcion objetivo como un cumulo con una especie.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

PSO: Versiones Multi-Objetivo

Reyes and Coello [2005] propusieron un enfoque basado endominancia de Pareto y el uso de un factor de agrupamiento parala seleccion de lıderes (mediante un torneo binario). Esta propuestausa dos archivos externos: uno para almacenar los lıderes en usoactual para realizar el vuelo y otro para almacenar las solucionesfinales.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

PSO: Versiones Multi-Objetivo

Raquel y Naval [2005] incorporan el concepto de distancia de agrupamiento

para seleccionar al lıder global y para borrar partıculas del archivo externo que

retiene a las soluciones no dominadas globales. Cuando se selecciona un lıder, el

conjunto de soluciones no dominadas se ordena de forma descendente con

respecto al factor de agrupamiento, y se elige aleatoriamente una partıcula de

la parte superior de la lista

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

PSO: Versiones Multi-Objetivo

Janson y Merkle [2005] propusieron un esquema hıbridodenominado ClustMPSO, el cual combina PSO con tecnicas declustering para dividir a todas las partıculas en varios sub-cumulos.Para ello, usan el algoritmo K-means. Cada sub-cumulo tiene supropio frente no dominado y el frente no dominado total se obtienede la union de los frentes de todos los sub-cumulos.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

PSO: Versiones Multi-Objetivo

Branke y Mostaghim [2006] presentan un estudio sobre la influencia del mejor

personal en un MOPSO. Se analizan diferentes estrategias para actualizar al

lıder personal de cada partıcula en la poblacion. Los autores concluyen que la

seleccion de un lıder personal apropiado tiene un impacto significativo en el

desempeno de un MOPSO, y proponen tambien que se permita a cada

partıcula memorizar todas las mejores partıculas personales que ha encontrado.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

PSO: Versiones Multi-Objetivo

Santana-Quintero et al. [2006] propusieron un algoritmo hıbrido en el que se

usa PSO para generar unas pocas soluciones sobre el frente de Pareto (o muy

cerca de el), y se adoptan conjuntos difusos [Pawlak, 1982] como un mecanismo

de busqueda local que genera el resto del frente. Los autores adoptan PSO con

un tamano de poblacion muy pequeno (solo 5 partıculas). Los lıderes se

seleccionan de tal forma que cada objetivo se optimiza por separado (ignorando

los demas), mientras que el resto de las partıculas tratan de converger hacia la

“rodilla” del frente de Pareto.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

PSO: Versiones Multi-Objetivo

Peng y Zhang (2008) propusieron el multi-objective particle swarmoptimizer based on decomposition (MOPSO/D). Esta es una versiondel MOEA/D en la que el motor de busqueda es el PSO.MOPSO/D usa un operador de turbulencia (o mutacion) y adoptauna estrategia de archivado basada en la dominancia ε (Laumanns,2002) para almacenar las soluciones no dominadas obtenidasdurante la busqueda.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

PSO: Versiones Multi-Objetivo

Fuentes-Cabrera y Coello (2010) propusieron un micro-MOPSO,que usa una poblacion con solo 5 individuos y que realiza unnumero relativamente bajo de evaluaciones (3000). Esta tecnicaselecciona primero el lıder y despues selecciona el vecindario paraintegrar el cumulo. Tambien efectua un proceso de reinicializacionpara preservar la diversidad y usa dos archivos externos: uno paraalmacenar las soluciones que el algoritmo encuentra durante elproceso de busqueda y otro para almacenar las soluciones finalesque se reportan al final.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

PSO: Versiones Multi-Objetivo

Padhye et al. (2009) propusieron el uso de contribuciones alhipervolumen para guiar el mecanismo de seleccion de un MOPSO.Jiang y Cai (2009) propusieron el uso del hipervolumen para poderlas soluciones de un archivo en el contexto de un ε-MOPSO.Chaman y Coello (2014) propusieron el uso de la contribucion alhipervolumen de las soluciones almacenadas en un archivo externopara seleccionar los lıderes personales y globales de cada partıcula.Tambien propusieron un mecanismo para actualizar el archivoexterno al insertar nuevas soluciones no dominadas al mismo.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

PSO: Versiones Multi-Objetivo

Nebro et al. (2009) propusieron el Speed-constrained Multi-objectivePSO (SMPSO), el cual adopta el coeficiente de constriccion (Clerc& Kennedy, 2002) para limitar la velocidad de las partıculas. EsteMOPSO puede resolver problemas multi-frontales en los cualesfallan la mayor parte de los MOPSOs (v.g., problemasmulti-frontales).

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Algunas Aplicaciones de PSO Multi-Objetivo

Manejo optimo de mantos acuıferos (El-Ghandour & Elbeltagi,2014).

Optimizar el diseno de los perfiles de velocidad de operacionautomatica de un tren (Domınguez et al., 2014).

Planeacion de sistemas de distribucion electrica (Ganguly etal., 2013).

Agrupamiento en redes complejas (Gong et al., 2014).

Clasificacion parcial para analisis de severidad de accidentes(Qiu et al., 2014).

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Para Saber Mas ...

Margarita Reyes-Sierra and Carlos A. Coello Coello, Multi-Objective

Particle Swarm Optimizers: A Survey of the State-of-the-Art,

International Journal of Computational Intelligence Research, Vol. 2, No.

3, pp. 287–308, 2006.

Andries P. Engelbrecht, Fundamentals of Computational Swarm

Intelligence, John Wiley & Sons, Ltd, 2005, ISBN 978-0-470-09191-3.

Konstantinos E. Parsopoulos and Michael N. Vrahatis,

Multi-Objective Particles Swarm Optimization Approaches, in

Lam Thu Bui and Sameer Alam (editors), Multi-Objective Optimization

in Computational Intelligence: Theory and Practice, pp. 20–42,

Information Science Reference, Hershey, PA, USA, 2008.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Sistema Inmune Artificial

Nuestro sistema inmune protege nuestro organismo de las bacterias,los virus y otros patogenos externos. Su tarea principal es reconocertodas las celulas dentro del cuerpo y distingue entre las propias ylas externas (o antıgenos). El sistema inmune identifica a las celulasexternas y desarrolla mecanismos de defensa contra ellas(anticuerpos).

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Sistema Inmune Artificial

Si un patogeno externo (o sea, un antıgeno) entra al cuerpo, elsistema inmune lanza una respuesta especıfica contra el. Las celulasB especializadas deben interactuar con las celulas T auxiliares (otrotipo de celulas especializadas) para iniciar la produccion deanticuerpos.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Sistema Inmune Artificial

Los anticuerpos son especıficos a un solo tipo de antıgeno, y sutarea es inmobilizar los antıgenos, impidiendoles ası que nos causeninfecciones.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Sistema Inmune Artificial

Computacionalmente hablando, nuestro sistema inmune es unsistema inteligente altamente paralelo que es capaz de aprender yrecuperar luego lo aprendido (o sea que tiene “memoria”).

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Sistema Inmune Artificial

Los modelos artificiales del sistema inmune se han desarrolladodesde hace varios anos y suelen considerarse particularmente aptospara tareas de clasificacion y reconocimiento de patrones.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Sistema Inmune Artificial

Hughes Bersini y Francisco J. Varela fueron los primeros en aplicaralgoritmos basados en el sistema inmune a la solucion deproblemas, a principios de los 1990s [Bersini, 1991].

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Sistema Inmune Artificial

Stephanie Forrest y Alan S. Perelson desarrollaron tambien trabajopionero muy importante en torno a lo que hoy se conoce comoinmunologıa computacional.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Sistema Inmune Artificial

Por ejemplo, usaron algoritmos geneticos para estudiar lascapacidades para reconocer patrones de modelos del sistemainmune binarios, a inicios de los 1990s [Forrest, 1991].

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Sistema Inmune Artificial: Versiones

Multi-Objetivo

Smith et al. [1993] muestran que la comparticion de aptitud emergecuando se usa una emulacion del sistema inmune. Ademas, esteesquema resulta ser mas eficiente (computacionalmente hablando)que la comparticion de aptitud tradicional, ademas de no requeririnformacion adicional sobre el numero de nichos que se formaran.

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Sistema Inmune Artificial: Versiones

Multi-Objetivo

Este mismo enfoque ha sido utilizado para manejar restricciones enoptimizacion evolutiva [Hajela, 1995; Hajela, 1996], y ha sidohibridizado tambien con un algoritmo evolutivo multi-objetivo[Kurapati, 2000; Cui, 2001], e incluso ha sido paralelizado[Cruz-Cortes, 2004].

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Sistema Inmune Artificial: Versiones

Multi-Objetivo

Sin embargo, el trabajo que se considera que presento el primer uso directo de

un sistema inmune artificial para resolver problemas multi-objetivo, es el de

Yoo y Hajela [1999]. Este enfoque utiliza una funcion agregativa lineal para

combinar informacion de las funciones objetivo y de las restricciones en un solo

valor escalar que se adopta como la aptitud de un algoritmo genetico.

Posteriormente, los mejores disenos, con base en este valor, se definen como los

antıgenos y el resto de la poblacion se considero el repositorio de los

anticuerpos. La simulacion del sistema inmune se realiza como en un trabajo

previo de los autores en el cual se usa esta tecnica para manejar restricciones

[Hajela, 1996].

Clase No. 15 2018

Introduccion a la Computacion Evolutiva Dr. Carlos A. Coello Coello

Sistema Inmune Artificial: Versiones

Multi-Objetivo

Anchor et al. [2002] usan tanto ordenamiento lexicografico comoseleccion basada en Pareto en un algoritmo de programacionevolutiva combinado con un sistema inmune artificial, el cual se usapara detectar virus e intrusos en un sistema de computo. Estetrabajo, sin embargo, enfatiza la aplicacion y no el algoritmo, porlo que se dan pocos detalles de este.

Clase No. 15 2018