Introducci´on a la Computaci´on...

72
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. 19 2014

Transcript of Introducci´on a la Computaci´on...

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. 19 2014

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

Cultural Algorithms

Some social researchers have suggested that culture might besymbolically encoded and transmitted within and betweenpopulations, as another inheritance mechanism. Using this idea,Robert Reynolds (1994) developed a computational model in whichcultural evolution is seen as an inheritance process that operates attwo levels: the micro-evolutionary and the macro-evolutionarylevels.

Clase No. 19 2014

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

Cultural Algorithms

At the micro-evolutionary level, individuals are described in termsof “behavioral traits” (which can be socially acceptable orunacceptable). These behavioral traits are passed from generationto generation using several socially motivated operators. At themacro-evolutionary level, individuals are able to generate “mappa”,or generalized descriptions of their experiences. Individual mappacan be merged and modified to form “group mappa” using a set ofgeneric or problem specific operators. Both levels share acommunication link.

Clase No. 19 2014

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

Cultural Algorithms (pseudo-code)

1. t = 0 (t = iteration counter)

2. Initialize POP (0) (POP = Population)

3. Initialize BELF (0) (BELF = Belief Network)

4. Initialize CHAN(0) (CHAN = Communication Channel)

5. Evaluate POP (0)

6. t=1

Repeat

Communicate (POP (0), BELF (t))

Adjust (BELF (t))

Communicate (BELF (t), POP (t))

Modulate Fitness (BELF (t), POP (t))

t ← t + 1

Select POP (t) from POP (t− 1)

Evolve POP (t)

Evaluate POP (t)

Until Stopping Condition is Reached

Clase No. 19 2014

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

Cultural Algorithms

It is possible to extend a cultural algorithm to multiobjectiveoptimization problems if nondominance is incorporated in theacceptance mechanism of the approach.

The approach could work in a similar way to some proposals toextend the ant system to handle multiple objectives. In this case,an individual’s cultural component could lead it to a localnondominated solution, and the global mechanism of the approach(intended for sharing group’s solving experiences and behaviors)could lead the population towards global nondominated solutions.

Clase No. 19 2014

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

Cultural Algorithms

The same acceptance mechanism could incorporate additionalcriteria to encourage a smooth distribution of nondominatedsolutions (e.g., make unacceptable a nondominated solutiongenerated in a region of the search space that is already too denselypopulated).

Clase No. 19 2014

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

Cultural Algorithms

There are only 2 known efforts to use cultural algorithms to solve

multiobjective optimization problems:

1. The shell available at:

http://zeus.cs.wayne.edu/~sms/caep/cultural.html

However, in this shell a simple linear combination of weights is used

to aggregate multiple objectives into a single scalar value.

2. The algorithm (based on Pareto dominance and using a secondary

population) proposed by Coello Coello & Landa Becerra (2003).

Clase No. 19 2014

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

Some Applications of

Multiobjective Cultural Algorithms

Only test functions and some engineering optimization problems (Coello

& Landa, 2003a).

The main motivation for using cultural algorithms in multiobjective

optimization should be to reduce computational cost. The use of domain

knowledge extracted during the evolutionary process should allow faster

convergence rates, but no proposals in that direction are currently

available.

Clase No. 19 2014

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

To Know More About

Multiobjective Cultural Algorithms

Ricardo Landa-Becerra, Luis V. Santana-Quintero and Carlos A.Coello Coello, Knowledge Incorporation in Multi-ObjectiveEvolutionary Algorithms, in Ashish Ghosh, SatchidanandaDehuri and Susmita Ghosh (editors), Multi-objective EvolutionaryAlgorithms for Knowledge Discovery from Data Bases, pp. 23–46,Springer, Berlin, 2008, ISBN 978-3-540-77466-2.

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. 19 2014

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

Promising areas of future research

Can we produce MOEAs that perform a very low number ofobjective function evaluations and can handle problems of largedimensionality?

Will we ever listen to practitioners when designing our MOEAs(i.e., is it really required to produce the “true” Pareto front ofa problem, or a quick approximation is good enough)?

Can we provide a solid theoretical foundation to this field?

Clase No. 19 2014

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

Promising areas of future research

There are plenty of fundamental questions that remain unanswered.For example:

What are the sources of difficulty of a multi-objectiveoptimization problem for a MOEA?

Can we benefit from hybridizing multi-objective metaheuristicswith mathematical programming techniques.

Can we use alternative mechanisms into an evolutionaryalgorithms to generate nondominated solutions without relyingon Pareto ranking?

Clase No. 19 2014

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

Promising areas of future research

How to deal with uncertainty?

How to deal with dynamic multi-objective optimizationproblems?

What about incorporating preferences from the user?

Clase No. 19 2014

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

To know more about evolutionary

multiobjective optimization

Please visit our EMOO repository located at:

http://delta.cs.cinvestav.mx/˜ccoello/EMOO

with a mirror at:

http://www.lania.mx/˜ccoello/EMOO

Clase No. 19 2014

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

To know more about evolutionary

multiobjective optimization

Clase No. 19 2014

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

To know more about evolutionary

multiobjective optimization

The EMOO repository currently contains:

Over 7150 bibliographic references including 255 PhD theses,over 3160 journal papers and over 2790 conference papers.

Contact info of 78 EMOO researchers

Public domain implementations of SPEA, NSGA, NSGA-II,the microGA, MOPSO, MISA and PAES, among others.

Clase No. 19 2014

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

Algoritmos Memeticos

Pablo Moscato introdujo el concepto de “algoritmo memetico en1989, para denotar el uso de buscadores locales combinados conestrategias poblacionales.

Clase No. 19 2014

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

Algoritmos Memeticos

El termino “memetico” tiene sus raıces en la palabra “meme”, lacual fue introducida por Richard Dawkins en su libro The SelfishGene. Dawkins define a un meme como una “unidad de imitacion”en la transmision cultural. Por tanto, un algoritmo memeticopuede verse como un enfoque que intenta de imitar la evolucioncultural en vez de la evolucion biologica.

Clase No. 19 2014

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

Algoritmos Memeticos

La diferencia principal entre los algoritmos memeticos y losalgoritmos evolutivos es en la forma en la que se transmite lainformacion. Mientras que los genes pasan intactos, los memestıpicamente son adaptados por los individuos que los transmiten.

Clase No. 19 2014

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

Algoritmos Memeticos

El acetato siguiente muestra a un algoritmo memetico generico (LSdenota la busqueda local). Se hace notar que la posicion exacta delbuscador local dentro del algoritmo evolutivo depende deldisenador del algoritmo. La busqueda local efectuada esta,evidentemente, acotada, a fin de que el tiempo computacionalrequerido por el algoritmo no resulte excesivo.

Clase No. 19 2014

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

Algoritmos Memeticos

1: procedure Memetic EA(N , g, fm(~x))2: Randomly initialize population Pg with N individuals3: Evaluate fitness fm(~x) of each individual ~x in Pg4: while Termination condition false do5: g = g + 1; number of generation6: Select P′g from P(g−1) based on fitness7: Apply genetic operators to P′g → P′′g8: Local Search in P′′g neighborhood; P′′g → P′′′g9: Evaluate fitness fm(~x) of each individual in (P′′g, P′′′g)

10: Select Pg from (Pg−1, P′g, P′′g, P′′′g)11: end while12: end procedure

Clase No. 19 2014

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

Algoritmos Memeticos

Evidentemente, el balance entre la busqueda que hace el algoritmoevolutivo y la del buscador local es crıtica para lograr buenosresultados, y es tema de investigacion en la actualidad. Asımismo,la definicion de buenos buscadores locales para espacios continuoses un tema en el que varios investigadores se encuentran trabajandoactualmente.

Clase No. 19 2014

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

Algoritmos Memeticos

Hay varias preguntas que se plantean al disenar algoritmosmemeticos:

1. ¿Que tan frecuentemente deben usarse la busqueda local conbase en una probabilidad PLS?

2. ¿Durante cuanto tiempo T debe ejecutarse el buscador local?

Clase No. 19 2014

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

Algoritmos Memeticos

3. ¿Sobre que k soluciones debe aplicarse la busqueda local dadoun vecindario N(~x), donde ~x es una solucion actual?

4. ¿Que tan eficiente debe ser el buscador local, con respecto a suefectividad?

Clase No. 19 2014

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

Algoritmos Memeticos

5. ¿Como deben relacionarse los operadores de recombinacion ymutacion de un algoritmo evolutivo con el buscador local?

6. ¿Debiera usarse un esquema de asignacion de aptitudLamarckiano o uno Baldwiniano?

Clase No. 19 2014

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

Algoritmos Memeticos

Cuando se usa Lamarckismo, el mejor resultado obtenido con elexplorador local sustituye a la solucion base (o sea, aquella a partirde la cual se inicio la busqueda local). Cuando se usa elBaldwinismo, la aptitud de la mejor solucion obtenida por elexplorador local es usada por el individuo base, pero el valor de talsolucion no reemplaza a dicho individuo base. El enfoqueLamarckiano es el mas comun en los algoritmos memeticos.

Clase No. 19 2014

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

Algoritmos Memeticos

Hart [1994] analizo los aspectos generales de algunas de estaspreguntas en el contexto mono-objetivo. Otros autores han sugeridoque la estructura de vecindario que se adopte puede tener muchasformas distintas, e incluso se puede modificar dinamicamentedurante la ejecucion.

Clase No. 19 2014

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

Coevolucion

En la naturaleza existen organismos que tienen una relacionsimbiotica con otros organismos. La Simbiosis se define como el“fenomeno mediante el cual dos organismos disimilares vivenıntimamente juntos en una relacion mutuamente benefica”. En lacomunidad de computacion evolutiva se han desarrollado algoritmosque adoptan simbiosis, aunque son relativamente escasos.

Clase No. 19 2014

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

Coevolucion

Llamamos coevolucion a un cambio en la composicion genetica deuna especie (o grupo de especies) como respuesta a un cambiogenetico de otra. En un sentido mas general, la coevolucion serefiere a un cambio evolutivo recıproco entre especies queinteractuan entre sı.

Clase No. 19 2014

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

Coevolucion

El termino coevolucion suele atribuırsele a Ehrlich y Raven,quienes publicaron un artıculo sobre sus estudios de las mariposasy las plantas a mediados de los 1960s [Ehrlich, 1964]. Las relacionesentre las poblaciones de dos especies distintas A y B pueden serdescritas considerando todos los tipos posibles de interacciones.

Clase No. 19 2014

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

Coevolucion

Tales interacciones pueden ser positivas o negativas, dependiendode las consecuencias que esta produzca en la poblacion. La tabladel acetato siguiente muestra todas las posibles interacciones entredos especies diferentes.

Clase No. 19 2014

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

Coevolucion

A B

Neutralism 0 0 Populations A and B are independent

and don’t interact

Mutualism + + Both species benefit from the relationship

Commensalism + 0 One species benefits from the relationship but

the other is neither harmed nor benefited

Competition - - Both species have a negative effect on each other

since they are competing for the same resources

Predation + - The predator (A) benefits while the prey (B)

is negatively affected

Parasitism + - The parasite (A) benefits while the host (B)

is negatively affected

Clase No. 19 2014

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

Coevolucion

La comunidad de computacion evolutiva ha desarrollado variosenfoques coevolutivos en los que normalmente dos o mas especies serelacionan entre sı usando alguno de los esquemas indicadosanteriormente. Asımismo, en la mayorıa de los casos, tales especiesevolucionan independientemente a traves de un algoritmo evolutivo(normalmente un algoritmo genetico).

Clase No. 19 2014

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

Coevolucion

El aspecto clave en estos algoritmos coevolutivos es que la aptitudde un individuo en una poblacion depende de los individuos de unapoblacion diferente. De hecho, podemos decir que un algoritmo escoevolutivo si presenta esta propiedad.

Clase No. 19 2014

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

Coevolucion

Existen dos clases principales de algoritmos coevolutivos en laliteratura especializada:

1. Aquellos basados en relaciones de competencia (denominadacoevolucion competitiva): En este caso, la aptitud de unindividuo es el resultado de “encuentros” con otros individuos[Paredis, 1998]. Este tipo de esquema coevolutivo se haadoptado normalmente para los juegos.

Clase No. 19 2014

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

Coevolucion

2. Aquellos basados en relaciones de cooperacion (denominadacoevolucion cooperativa): En este caso, la aptitud de unindividuo es el resultado de una colaboracion con individuos deotras especies (o poblaciones) [Potter, 1994]. Este tipo deesquema coevolutivo se ha adoptado normalmente para resolverproblemas de optimizacion.

Clase No. 19 2014

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

Coevolucion

Existen varios trabajos en la literatura especializada que usan lacoevolucion y la simbiosis en un algoritmo evolutivo. Paredis[1995,1998] proporciona una muy buena introduccion a lacoevolucion, discutiendo primero la aptitud competitiva.

Clase No. 19 2014

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

Coevolucion

Este tipo de aptitud se obtiene mediante calculos que dependen encierto grado de la poblacion actual. La dependencia puede sermınima (por ejemplo, se puede depender de un solo miembro de lapoblacion) o exhaustiva (o sea, se puede depender de toda lapoblacion y combinar sus aptitudes en un solo valor escalar).

Clase No. 19 2014

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

Coevolucion

Cuatro ejemplos de funciones de aptitud competitivas incluyen:competencia total (todos vs. todos), competencia bipartita (uno vs.uno o posiblemente uno vs. muchos), aptitud de torneo (torneobinario con eliminacion de un solo elemento, la cual no debeconfundirse con la seleccion de torneo), y la competencia elitista(todos vs. el mejor). Estos esquemas se ilustran graficamente en elacetato siguiente.

Clase No. 19 2014

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

Coevolucion

BipartiteAll vs. All

Tournament All vs. Best

Clase No. 19 2014

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

Coevolucion

La aptitud competitiva se ha aplicado extensamente en los juegosevolutivos. Algunos de los juegos en donde se han usado algoritmosevolutivos son: Gato [Angeline, 1993], Otelo [Chong, 2005], Awari[Davis, 2002], Poquer [Billings, 2001], Backgammon [Pollack, 1996]y el dilema del prisionero [Chong, 2005a].

Clase No. 19 2014

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

Coevolucion

Otra forma de coevolucion es el denominado modelodepredador-presa. Un ejemplo de este modelo lo encontramos enel trabajo que hizo Danny Hillis con las redes de ordenamiento(sorting networks) [Hillis, 1990]. En este caso, se usaron dospoblaciones, una conteniendo las redes de ordenamiento y la otraconsistente en un conjunto de listas con 16 numeros para serordenados.

Clase No. 19 2014

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

Coevolucion

Estas poblaciones estaban distribuidas geograficamente sobre uncumulo de computadoras. En cada computadora, se aplicaba unconjunto de redes de ordenamiento a un conjunto de listas. Laaptitud de una red era el porcentaje de listas que eran ordenadas,mientras que la aptitud de una lista era el porcentaje de redes queno podıan ordenarlas. Este tipo de interaccion de aptitud inversa estıpica en un modelo depredador-presa.

Clase No. 19 2014

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

Coevolucion

Hillis encontro que sus soluciones coevolucionadas eran mejores quelas obtenidas con un algoritmo evolutivo tradicional. Esto loatribuyo a dos razones. Primero, puesto que las poblaciones estancambiando constantemente, esto motiva una mayor exploracion yevita la convergencia prematura. La otra razon es que el chequeo deaptitud es mas eficiente porque el enfoque es en las listas que nopudo ordenar correctamente.

Clase No. 19 2014

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

Coevolucion

Paredis [1995,1998] introdujo el algoritmo genetico coevolutivo(CGA). Este algoritmo esta basado en el modelo depredador-presa,en el que se usa una poblacion de soluciones y otra de pruebas (osea, soluciones de ejemplo).

Clase No. 19 2014

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

Coevolucion

Primero se inicializan las dos poblaciones (soluciones y pruebas), yluego se generan valores de aptitud para cada una, viendo que tanbien se comparan con respecto a 20 individuos aleatorios de lapoblacion opuesta (se asigna 1 o 0 por cada exito o falla).

Clase No. 19 2014

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

Coevolucion

Estos resultados se almacenan en una historia para cada individuoy la aptitud es el promedio de estos 20 resultados. En cadageneracion (a las que Paredis llama ciclos), se seleccionan 20soluciones y pruebas, haciendo que el individuo mas apto tenga unaprobabilidad 1.5 veces mayor de ser elegido sobre el de aptitudmedia.

Clase No. 19 2014

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

Coevolucion

Si la solucion es exitosa con la prueba seleccionada, recibe un 1; delo contrario, recibe 0. La historia de ambas se actualiza. La historialleva un registro de los 20 resultados mas recientes de los“encuentros”. Despues de 20 encuentros, se eligen dos padres de lapoblacion de soluciones. Los padres se recombinan y el hijo esmutado.

Clase No. 19 2014

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

Coevolucion

La aptitud del hijo se determina y el hijo es insertado en lapoblacion en la jerarquıa apropiada, posiblemente reemplazando auno de sus padres. Esta es una estrategia de seleccion (µ+ 1). Losparametros usados por el autor son, como el mismo admite,totalmente arbitrarios.

Clase No. 19 2014

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

Coevolucion

Paredis no evoluciona sus pruebas a proposito, puesto que estasfueron disenadas especıficamente para moldear el espacio debusqueda. Sin embargo, menciona que hay ocasiones en que laspruebas podrıan ser evolucionadas tambien.

Clase No. 19 2014

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

Coevolucion

Algunas de las aplicaciones del CGA incluyen: clasificacion, controlde procesos, planeacion de rutas de robots, satisfaccion derestricciones, clasificacion de densidad y simbiosis. En el caso de laclasificacion, el control de procesos y la planeacion de rutas derobots, se evolucionan redes neuronales.

Clase No. 19 2014

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

Coevolucion

El ejemplo de clasificacion usa ejemplos de entrenamientoinalterados para la poblacion de pruebas, mientras que los otros dosejemplos hacen evolucionar a las soluciones de prueba. El problemade satisfaccion de restricciones usa como poblacion de pruebas lasrestricciones y adopta arreglos de variables como las soluciones.

Clase No. 19 2014

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

Coevolucion

El CGA supera los resultados de un AG en estos problemas. Parala clasificacion de densidad, Paredis coevoluciona automatascelulares con cadenas de bits, a fin de clasificar la densidad de unosen cada cadena. Luego se aleja del modelo depredador-presa yaplica el CGA de forma simbiotica, de tal forma que las dospoblaciones proporcionan retroalimentacion positiva de aptitud, envez de que esta sea negativa.

Clase No. 19 2014

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

Coevolucion

Paredis uso simbiosis para tratar de determinar la mejorrepresentacion genetica para un individuo en un problema. Esteproblema intenta colocar genes con los enlaces mas fuertes de formaconsecutiva, a fin de preservar intactas las buenas solucionesdespues de aplicar la cruza.

Clase No. 19 2014

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

Coevolucion

En este caso, las soluciones se evolucionaron junto con lasrepresentaciones. Este esquema realmente intenta ligarexplıcitamente los buenos bloques constructores en el cromosoma yresulta exitoso en la creacion de mejores soluciones.

Clase No. 19 2014

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

Coevolucion

Un subconjunto interesante de los algoritmos coevolutivos es el delos algoritmo cooperativos (CCGA). Este tipo de algoritmos fueronpropuestos originalmente por Potter y de Jong [1994], y consistende un enfoque simbiotico, pero en vez de usar una poblacion desoluciones y otra de pruebas, se evolucionan poblaciones deespecies.

Clase No. 19 2014

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

Coevolucion

Para formar una solucion, se selecciona un individuo de cadaespecie y se combina con los demas individuos seleccionados. Lasolucion se evalua y las especies que conformaron la solucion recibenuna puntuacion con base en la aptitud de la solucion combinada.

Clase No. 19 2014

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

Coevolucion

Potter y de Jong propusieron dos algoritmos: el CCGA-1 y elCCGA-2. El primero, inicializa cada poblacion de especies y asignala aptitud inicial combinando cada miembro de una sobpoblacioncon individuos aleatorios de las otras subpoblaciones. Luego, cadauna de las especies se coevoluciona en un esquema del tipo “roundrobin”, usando un AG tradicional.

Clase No. 19 2014

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

Coevolucion

La aptitud de los miembros de cada sobpoblacion evolucionada seobtienen de combinarlos con el mejor individuo de las otrassobpoblaciones y de obtener la aptitud del individuo. Se hace notarque este modelo de asignacion de credito tiene varios problemas,tales como el sub-muestreo, pero fue creado unicamente como unpunto de partida en el cual basar la efectividad de las versionesposteriores del algoritmo.

Clase No. 19 2014

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

Coevolucion

CCGA-1 supero a un AG estandar cuando las especiesrepresentaron funciones que fueron independientes entre sı, perotuvo un mal desempeno cuando las funciones tenıan dependencias.El algoritmo del CCGA-1 se muestra en el acetato siguiente.

Clase No. 19 2014

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

Coevolucion

1: procedure CCGA-1(N , g, fk(~x))

2: for Each species s do

3: P′s(g) = Randomly initialize population

4: Evaluate fitness of each individual in P′s(g)5: end for

6: while Termination condition = false do

7: g = g + 1

8: for Each species s do

9: Select P′s(g) from P′s(g − 1) based on fitness

10: Apply genetic operators to P′s(g)11: Evaluate fitness of each individual in P′s(g)12: end for

13: end while

14: end procedure

Clase No. 19 2014

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

Coevolucion

A fin de superar estas deficiencias, se creo un nuevo esquema deasignacion de credito. Ademas de crear un individuo, tal y como sedescribio antes, se crea un segundo individuo, seleccionando unmiembro al azar de cada subpoblacion para combinarlo con dichoindividuo. La mejor aptitud de entre los dos individuos es la que seasigna al hijo. Esto dio pie a CCGA-2, cuyo algoritmo se muestraen el acetato siguiente.

Clase No. 19 2014

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

1: procedure CCGA-2(N , g, fk(~x))

2: for Each species s do

3: P′s(g) = Randomly initialize population

4: Evaluate fitness of each individual in P′s(g)5: end for

6: while Termination condition = false do

7: g = g + 1

8: for Each species s do

9: Select P′s1(g) from P′s(g − 1) based on fitness

10: Select P′s2(g) from P′s(g − 1) at random

11: if P′s1(g) is most fit then

12: Let P′s(g) = P′s1(g)

13: else

14: Let P′s(g) = P′s2(g)

15: end if

16: Apply genetic operators to P′s(g)17: Evaluate fitness of each individual in P′s(g)18: end for

19: end while

20: end procedure

Clase No. 19 2014

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

Coevolucion

Este algoritmo tuvo buen desempeno tanto en funciones condependencias como en las que no tenıan dependencias. En general,el diseno del CCGA proporciona un mapeo natural paraarquitecturas paralelas de grano grueso.

Clase No. 19 2014

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

Coevolucion

Este tipo de esquema puede ser particularmente util en algunasaplicaciones tales como, por ejemplo, la programacion de tareas demantenimiento de motores de aviones, en el cual cada miembro dela poblacion es una solucion total.

Clase No. 19 2014

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

Coevolucion

Wallin et al. [2005] introdujeron un algoritmo coevolutivocooperativo que se basa en el concepto de endosimbiosis. Laendosimbiosis se refiere a la relacion simbiotica entre un organimsoy otro que vive adentro del cuerpo del huesped. En los algoritmosevolutivos, el uso de coevolucion competitiva puede evitar que laspoblaciones se estanquen, usando co-especies para mantener lapresion evolutiva.

Clase No. 19 2014

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

Coevolucion

Wallin et al. [2005] propusieron el Symbiotic CoevolutionaryAlgorithm (SCA), el cual usa dos especies: los huespedes y losparasitos. Los huespedes son una solucion completa, mientras queel parasito es una solucion parcial.

Clase No. 19 2014

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

Coevolucion

Para que se pueda evaluar un parasito, debe estar ligado a unhuesped. El parasito esta conformado por dos cadenas. La primeracadena es un numero binario con codificacion de Gray, cuyo fin esdirigir los valores parasıticos a una posicion dentro del huesped.

Clase No. 19 2014

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

Coevolucion

La segunda cadena es el valor parasıtico que se usa para reemplazaruna porcion de la cadena del huesped. Otras implementacionespueden incluir el uso de operadores Booleanos (p.ej., AND, OR,XOR) para combinar el huesped y el parasito.

Clase No. 19 2014

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

Coevolucion

Wallin et al. [2005] generan un numero igual de parasitos yhuespedes, y efectuan un chequeo todos contra todos, en el cualcada huesped se asocia con cada parasito de forma individual y seevalua. Se usa un esquema de seleccion (µ+ λ), de forma que los|µ| mejores de las combinaciones evaluadas constituyen el conjuntode candidatos al apareamiento para la siguiente generacion dehuespedes.

Clase No. 19 2014

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

Coevolucion

Las k mejores soluciones se almacenan en un archivo externo.Despues de que se forma la siguiente generacion de huespedes, losparasitos deben ser evolucionados. Los parasitos se reproducenprimero asexualmente. El algoritmo aplica entonces mutacion.Finalmente, se usa seleccion de ruleta para elegir la siguientegeneracion de parasitos.

Clase No. 19 2014

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

Coevolucion

Los autores comparan su SCA con respecto a un AG generacionalen problemas de 64 y 128 bits que pueden descomponerse, pero sondeceptivos. Se usan parasitos de 4, 7, 12 y 17 bits en losexperimentos. Los autores reportan que a menor tamano de losparasitos (o sea, 4 y 7), los resultados son mejores.

Clase No. 19 2014

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

Coevolucion

Se hace notar que a pesar del vınculo simbiotico entre los parasitosy sus huespedes, estrictamente hablando no hay coevolucion en estecaso, puesto que solo se evolucionan los huespedes, puesto que losparasitos simplemente son mutados.

Clase No. 19 2014