introduccion a la computaci´ on...

78
Introducci ´ on a la Computaci ´ on Evolutiva Carlos A. Coello Coello [email protected] CINVESTAV-IPN Evolutionary Computation Group (EVOCINV) Departamento de Computaci ´ on Av. IPN No. 2508, Col. San Pedro Zacatenco exico, D.F. 07360, MEXICO Clase 7 Carlos A. Coello Coello Introducci ´ on a los Algoritmos Gen ´ eticos

Upload: others

Post on 13-Aug-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Introduccion a la Computacion Evolutiva

Carlos A. Coello Coello

[email protected]

Evolutionary Computation Group (EVOCINV)Departamento de Computacion

Av. IPN No. 2508, Col. San Pedro ZacatencoMexico, D.F. 07360, MEXICO

Clase 7

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 2: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Jerarquıas no Lineales

Fue propuesta por Michalewicz [1996]. Se usa:

probi = q(1− q)jerarquıai−1

donde:probi es la probabilidad de que el individuo i sea seleccionado.q ∈ [0 . . . 1] es el factor de presion de seleccion, jerarquıai es lajerarquıa del individuo i .

Zbigniew Michalewicz, “Genetic Algorithms + DataStructures = Evolution Programs”, Springer-Verlag, ThirdEdition, New York, USA, 1996.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 3: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Jerarquıas no Lineales

Al igual que con las jerarquıas lineales, se asigna la jerarquıamas baja al peor individuo y la mas alta al mejor.

Una vez que se conoce la probabilidad de que un individuo seaseleccionado, podemos calcular su valor esperadomultiplicando dicho valor por n (tamano de la poblacion).

Posteriormente, podemos aplicar cualquier tecnica deseleccion proporcional.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 4: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Jerarquıas no Lineales

Thomas Back advirtio que las probabilidades obtenidas coneste metodo no suman uno.

Tambien noto que la tecnica puede hacerse practicamenteidentica al torneo, dependiendo del valor de q que se use.

Valores grandes de q implican una mayor presion de seleccion.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 5: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Jerarquıas no Lineales

Michalewicz [1996] advierte que la suma de probabilidadespuede hacerse igual a 1 si usamos:

probi = c ∗ q(1− q)jerarquıai−1

donde:

c =1

1− (1− q)M

y M es el tamano de la poblacion.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 6: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Seleccion Competitiva

En este caso, la aptitud de un individuo se determina mediante susinteracciones con otros miembros de la poblacion, o con otros miembros deuna poblacion separada que evoluciona concurrentemente.

Esta tecnica ha sido utilizada por Hillis [1992], Angeline & Pollack [1993] ySebald & Schlenzig [1994].

Puede verse como un esquema co-evolutivo: las aptitudes de dos individuosdependen mutuamente entre sı.

W.D. Hillis, “Co-evolving parasites improves simulated evolution as an optimization procedure”, in C. Langton,C. Taylor, J. Farmer and S. Rasmussen (Editors), Artificial Life II, pp. 313–324, Addison-Wesley, Reading,Massachusetts, USA, 1992.

Peter J. Angeline and Jordan B. Pollack, “Competitive Environments Evolve Better Solutions for ComplexTasks”, in Stephanie Forrest (Editor), Proceedings of the Fifth International Conference on Genetic Algorithms,Morgan Kaufmann Publishers, San Mateo, California, USA, July 1993.

Anthony V. Sebald and Jennifer Schlenzig, “Minimax design of neural net controllers for highly uncertainplants”, IEEE Transactions on Neural Networks, Vol. 5, No. 1, pp. 73–82, January 1994.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 7: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Clasificaciones de Tecnicas de Seleccion

Back y Hoffmeister [1991] distinguen entre:

1. Metodos Estaticos: Requieren que las probabilidades de seleccionpermanezcan constantes entre generaciones. Ejemplo: jerarquıaslineales.

2. Metodos Dinamicos: No se requiere que las probabilidades deseleccion permanezcan constantes. Ejemplo: seleccion proporcional

Thomas Back and Frank Hoffmeister, “Extended Selection Mechanisms inGenetic Algorithms”, in Richard K. Belew and Lashon B. Booker (Editors),Proceedings of the Fourth International Conference on Genetic Algorithms,pp. 92–99, Morgan Kaufmann Publishers, San Mateo, California, USA, July1991.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 8: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Clasificaciones de Tecnicas de Seleccion

Otros investigadores distinguen entre:1. Seleccion Preservativa: Requiere una probabilidad de

seleccion distinta de cero para cada individuo.2. Seleccion Extintiva: Puede asignar una probabilidad de

seleccion de cero a algun individuo.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 9: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Clasificaciones de Tecnicas de Seleccion

A su vez, las tecnicas extintivas se dividen en:1. Seleccion Izquierda: Se impide a los mejores individuos

reproducirse a fin de evitar convergencia prematura.2. Seleccion Derecha: No se tiene control explıcito sobre la

capacidad reproductiva de los individuos mas aptos.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 10: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Clasificaciones de Tecnicas de Seleccion

Adicionalmente, algunas tecnicas de seleccion son puras en elsentido de que a los padres se les permite reproducirsesolamente en una generacion (es decir, el tiempo de vida decada individuo esta limitado a solo una generacion,independientemente de su aptitud).

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 11: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Tecnicas de Cruza

En los sistemas biologicos, la cruza es un proceso complejo que ocurre entreparejas de cromosomas.

Estos cromosomas se alinean, luego se fraccionan en ciertas partes y,posteriormente, intercambian fragmentos entre sı.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 12: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Tecnicas de Cruza

En computacion evolutiva se simula la cruza intercambiandosegmentos de cadenas lineales de longitud fija (loscromosomas).

Aunque hemos visto tecnicas de cruza basicas pararepresentacion binaria, estas son generalizables a alfabetos decardinalidad mayor, si bien en algunos casos requieren deciertas modificaciones.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 13: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Tecnicas de Cruza

Comenzaremos por revisar las 3 tecnicas basicas de cruza:1. Cruza de un punto2. Cruza de dos puntos3. Cruza uniforme

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 14: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruza de un Punto

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 15: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruza de un Punto

Propuesta por Holland [1975].

No suele usarse mucho en la practica debido a sus limitantesteoricas.

Puede demostrarse, por ejemplo, que hay varios esquemasque no pueden formarse bajo esta tecnica de cruza.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 16: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruza de un Punto

Definamos a δ como la longitud de definicion de un esquema.

δ(H) = distancia entre la primera y la ultima posicion fija de unesquema H.

Ejemplo:δ(∗11 ∗ 0 ∗ 0∗) = 7− 2 = 5δ(∗ ∗ 1 ∗ ∗ ∗ ∗∗) = 0

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 17: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruza de un Punto

La cruza de un punto destruye esquemas en los que la longitud de definiciones alta.

Esto produce el denominado “sesgo posicional”: los esquemas que puedencrearse o destruirse por la cruza dependen fuertemente de la localizacion delos bits en el cromosoma [Eshelman et al., 1989].

Larry J. Eshelman, Richard A. Caruana and J. David Schaffer, “Biases in the Crossover Landscape’, in J. DavidSchaffer (Editor), Proceedings of the Third International Conference on Genetic Algorithms, pp. 10–19, MorganKaufmann Publishers, San Mateo, California, USA, 1989.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 18: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruza de un Punto

El problema fundamental de la cruza de un punto es quepresupone que los bloques constructores son esquemas cortosy de bajo orden, y cuando esto no sucede (p.ej., con cadenaslargas), este operador suele no proporcionar resultadosapropiados.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 19: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruza de un Punto

Obviamente, las aplicaciones del mundo real suelen requerircadenas largas.

La cruza de un punto trata tambien preferencialmente algunasposiciones del cromosoma, como por ejemplo los extremos deuna cadena.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 20: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruza de un Punto

La cruza de un punto suele preservar tambien los “hitchhikers”,que son bits que no son parte del esquema deseado, pero quedebido a su similitud con ellos gozan de los beneficios de lacruza.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 21: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruza de Dos Puntos

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 22: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruza de Dos Puntos

De Jong [1975] fue el primero en implementar una cruza de n puntos, comouna generalizacion de la cruza de un punto.

El valor n = 2 es el que minimiza los efectos disruptivos (o destructivos) de lacruza y de ahı que sea usado con gran frecuencia.

A. K. De Jong, “An Analysis of the Behavior of a Class of GeneticAdaptive Systems”, PhD thesis, University of Michigan, Ann Arbor, USA,1975.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 23: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruza de Dos Puntos

No existe consenso en torno al uso de valores para n que seanmayores o iguales a 3.

Los estudios empıricos al respecto [De Jong, 1975; Eshelmanet al., 1989] proporcionan resultados que no resultanconcluyentes respecto a las ventajas o desventajas de usardichos valores.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 24: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruza de Dos Puntos

En general, sin embargo, es aceptado que la cruza de dospuntos es mejor que la cruza de un punto.

Asimismo, el incrementar el valor de n se asocia con un mayorefecto disruptivo de la cruza.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 25: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruza Uniforme

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 26: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruza Uniforme

Fue propuesta originalmente por Ackley [1987], aunque se le suele atribuir aSyswerda [1989].

En este caso, el numero de puntos de cruza no se fija previamente.

La cruza uniforme tiene un mayor efecto disruptivo que cualquiera de las doscruzas anteriores.

David H. Ackley, “A Connectionist Machine for Genetic Hillclimbing”,Kluwer Academic Publishers, Boston, Massachusetts, USA, 1987.

Gilbert Syswerda, “Uniform Crossover in Genetic Algorithms”, in J. DavidSchaffer (Editor), Proceedings of the Third International Conference onGenetic Algorithms, pp 2–9, Morgan Kaufmann Publishers, San Mateo,California, USA, 1989.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 27: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruza Uniforme

Suele usarse con Pc = 0.5.

Algunos investigadores, sin embargo, sugieren usar valoresmas pequenos de Pc [Spears & De Jong, 1991].

Cuando se usa Pc = 0.5, hay una alta probabilidad de quetodo tipo de cadena binaria de longitud L sea generada comomascara de copiado de bits.

William M. Spears and Kenneth A. De Jong, “An Analysis of Multi-PointCrossover”, in Gregory E. Rawlins (Editor), Foundations of GeneticAlgorithms, pp. 301–315, Morgan Kaufmann Publishers, San Mateo,California, USA, 1991.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 28: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruza Acentuada

Propuesta por Schaffer y Morishima [1987].

En vez de calcular directamente la mascara (o patron) decruza, la idea es usar una cadena binaria de “marcas” paraindicar la localizacion de los puntos de cruza.

La idea fue sugerida por Holland [1975], aunque en un sentidodistinto.

J. David Schaffer and Amy Morishima, “An Adaptive CrossoverDistribution Mechanism for Genetic Algorithms”, in John J. Grefenstette(Editor), Genetic Algorithms and Their Applications: Proceedings of theSecond International Conference on Genetic Algorithms, pp. 36–48,Lawrence Erlbaum Associates, Hillsdale, New Jersey, USA, July 1987.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 29: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruza Acentuada

La informacion extra se agrega al cromosoma de manera queel numero y localizaciones de los puntos de cruza pueda serobjeto de manipulacion por el algoritmo genetico.

Por tanto, las cadenas tendran una longitud del doble de sutamano original.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 30: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruza Acentuada

Marcamos con “1” las posiciones donde hay cruza y con “0” lasposiciones donde no la hay.

Se suelen usar signos de admiracion (!) para facilitar laescritura de las cadenas.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 31: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruza Acentuada

Ejemplo:Cromosoma:

0 1 1 0 0 0 1 1 0 0 : 0 1 0 0 1 0 0 0 0 0cadena original puntos de cruza

L = 10 L = 10

Puede interpretarse como:

01!100!01100

↑ ↑Aquı se efectua la cruza

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 32: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruza Acentuada

Algoritmo

1 Copiar los bits de cada padre hacia sus hijos, de uno en uno.2 En el momento en que se encuentra un signo de admiracion en

cualquiera de los padres, se efectua la cruza (es decir, se invierte laprocedencia de los bits en los hijos).

3 Cuando esto ocurre, los signos de admiracion se copian tambien a loshijos, justo antes de que la cruza se efectue.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 33: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruza Acentuada

Ejemplo:Antes de la cruza:P1 = a a a a a a a! b b b b b b bP2 = c c c c! d d d d d d! e e e e

Despues de la cruza:H1 = a a a a d d d b b b e e e eH2 = c c c c! a a a! d d d! b b b b

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 34: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruza Acentuada

Solo se usa la primera parte de la cadena para calcular laaptitud, pero se espera que la seleccion, cruza y mutaciontengan un efecto positivo sobre los puntos de cruza.

La mutacion actua sobre los dos segmentos cromosomicos.

Las probabilidades de que aparezcan unos en el segundosegmento se determinan de manera distinta a las del primero.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 35: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruza Acentuada

La tecnica reporto buenos resultados en un pequeno conjunto de funcionesde prueba.

Sin embargo, no hay evidencia contundente acerca de su efectividad.

Esta tecnica tiene una buena inspiracion biologica, porque estas marcas decruza efectivamente existen en la naturaleza y se co-evolucionan junto conlos cromosomas.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 36: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Sesgos de la Cruza

El “sesgo” de la cruza se refiere a las tendencias de este operador haciafavorecer o no un cierto tipo de busqueda.

La busqueda aleatoria es la unica que no presenta ningun tipo de sesgo.

Desde hace algun tiempo, se ha determinado que se requiere de algun tipode sesgo para que una tecnica de busqueda sea efectiva [Mitchell, 1980].

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 37: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Sesgos de la Cruza

En algoritmos geneticos, se suelen considerar 2 tipos de sesgopara la cruza:

1. Distribucional2. Posicional

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 38: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Sesgos de la Cruza

Sesgo Distribucional

El sesgo distribucional se refiere al numero de sımbolostransmitidos durante una recombinacion. Asimismo, se refierea la medida en la que algunas cantidades tienen mastendencia a ocurrir que otras.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 39: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Sesgos de la Cruza

Sesgo Distribucional

El sesgo distribucional es importante porque esta correla-cionado con el numero potencial de esquemas de cada padreque pueden ser recombinados por el operador de cruza.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 40: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Sesgos de la Cruza

Sesgo DistribucionalLa cruza de un punto y la de dos puntos no tienen sesgodistribucional.

La cruza de n puntos (n > 2) tiene un sesgo distribucionalmoderado.

La cruza uniforme tiene un sesgo distribucional muy fuerte.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 41: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Sesgos de la Cruza

Sesgo Posicional

El sesgo posicional caracteriza en que medida la probabilidadde que un conjunto de sımbolos se transmitan intactos durantela recombinacion depende de las posiciones relativas de losmismos en el cromosoma.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 42: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Sesgos de la Cruza

Sesgo Posicional

El sesgo posicional es importante porque indica queesquemas es mas probable que se hereden de padres a hijos.

Tambien indica la medida en la que estos esquemasapareceran en nuevos contextos.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 43: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Sesgos de la Cruza

Sesgo PosicionalLa cruza de un punto tiene un fuerte sesgo posicional.

Todo parece indicar que la cruza de n puntos tiene tambien unsesgo posicional fuerte, aunque este varıa en funcion de n.

La cruza uniforme no tiene sesgo posicional.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 44: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Variantes de la Cruza

En la practica, diversos aspectos de la cruza suelenmodificarse para mejorar su desempeno.

Una variante, por ejemplo, consiste en retener solo a uno delos dos hijos producidos por una cruza sexual.

Holland [1975] describe una tecnica de este tipo.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 45: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Variantes de la Cruza

Estudios empıricos han mostrado, sin embargo, que retener alos 2 hijos producidos por una cruza sexual reducesustancialmente la perdida de diversidad en la poblacion[Booker, 1982].

Lashon B. Booker, “Intelligent Behavior as an Adaptation to the TaskEnvironment”, PhD thesis, Logic of Computers Group, University ofMichigan, Ann Arbor, Michigan, USA, 1982.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 46: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Variantes de la Cruza

Otra variante muy comun es la de restringir los puntos de cruzaa aquellas posiciones en las que los padres difieran.

A esta tecnica se le conoce como sustitucion reducida[Booker, 1987].

El objetivo es mejorar la capacidad de la cruza para producirhijos que sean distintos a sus padres.

Lashon B. Booker, “Improving Search in GeneticAlgorithms”, in Lawrence Davis (Editor), Genetic Algorithmsand Simulated Annealing, Morgan Kaufmann Publishers, SanMateo, California, USA, 1987.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 47: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Variantes de la Cruza

Otra variante interesante es la llamada cruza con barajeo(shuffle crossover) [Eshelman et al., 1989].

En este caso, se aplica un operador de permutacion a unaparte de las cadenas de los padres antes de efectuar la cruza.

Despues de la cruza, se aplica la permutacion inversa a fin derestaurar el orden original de los bits.

Larry J. Eshelman, Richard A. Caruana and J. David Schaffer, “Biases in theCrossover Landscape”, in J. David Schaffer (Editor), Proceedings of theThird International Conference on Genetic Algorithms, pp. 10–19, MorganKaufmann Publishers, San Mateo, California, USA, 1989.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 48: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Variantes de la Cruza

Cruza con BarajeoLa cruza con barajeo tiene como objeto contrarrestar latendencia de la cruza de n puntos (n >= 1) a causar con masfrecuencia disrupcion en los conjuntos de bits que estandispersos que en los que estan juntos.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 49: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Variantes de la Cruza

Cruza SegmentadaPropuesta por Eshelman et al. [1989].

Es una variante de la cruza de n puntos en la cual el numerode puntos de cruza no es constante.

Se usa una probabilidad s de que una subcadena tenga suextremidad derecha en una cierta posicion subsecuente a suinicio.

Larry J. Eshelman, Richard A. Caruana and J. David Schaffer, “Biases in theCrossover Landscape”, in J. David Schaffer (Editor), Proceedings of theThird International Conference on Genetic Algorithms, pp. 10–19, MorganKaufmann Publishers, San Mateo, California, USA, 1989.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 50: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Variantes de la Cruza

Cruza SegmentadaIniciando de la primera posicion del cromosoma (a esta posicion ladenotaremos con i), se genera aleatoriamente un numero real q ∈ [0, 1] y unnumero natural j tal que:

i < j <= L

L es la longitud de la cadena.

El valor q es considerado como la probabilidad de aceptar a j como un puntode cruza.

Dependiendo de la relacion entre s y q, el punto j puede o no ser aceptado.De esta forma, el numero de puntos de cruza varıa.

Usualmente, se acepta j como un punto de cruza si se cumple que q <= s.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 51: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Variantes de la Cruza

Cruzas con Varios PadresAunque no son comunes en los algoritmos geneticos, existentambien operadores de cruza que usan varios padres. Porejemplo:

Multi-parent uniform crossover [Furuya & Haftka, 1993].Diagonal crossover [Eiben et al., 1995].Scanning crossover [Eiben et al., 1995].

H. Furuya and R. Haftka, “Genetic algorithms for placing actuators onspace structures”, in Stephanie Forrest (Editor), Proceedings of the 5thInternational Conference on Genetic Algorithms, pp. 536–542, MorganKaufmann Publishers, San Mateo, California, USA, 1993.

A. E. Eiben, Cees H. M. van Kemenade and Joost N. Kok, “Orgy in theComputer: Multi-Parent Reproduction in Genetic Algorithms”, inProceedings of the Third European Conference on Advances in Artificial Life,pp. 934–945, Springer-Verlag, London, UK, June, 1995.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 52: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Formas de Apareamiento

Otro punto interesante a considerar son las tecnicas deapareamiento (es decir, quien puede recombinarse con quien).

A continuacion revisaremos rapidamente las formas mascomunes de apareamiento, de acuerdo a Goldberg [1989].

David E. Goldberg, “Genetic Algorithms in Search, Optimization andMachine Learning”, Addison-Wesley Publishing Co., Reading,Massachusetts, USA, 1989.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 53: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Formas de Apareamiento

Random Mating (aleatorio):Se eligen los individuos aleatoriamente, con la mismaprobabilidad.Inbreeding (entre parientes):Se recombinan individuos similaresLine Breeding (semental):Un solo super-individuo (aptitud alta) se recombina conuna poblacion base y sus hijos se seleccionan comopadres.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 54: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Formas de Apareamiento

Outbreeding(entre desconocidos):Solo se recombinan individuos muy diferentes.Self-fertilization (auto-fertilizacion):Un individuo se recombina con sı mismo.Cloning (clonacion):Un individuo se copia sin modificaciones

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 55: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Formas de Apareamiento

Positive assorting mating:Se recombinan individuos similares.Negative assorting mating:Se recombinan individuos diferentes.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 56: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Comportamiento Deseable de la Cruza

Todos los operadores de cruza descritos anteriormente, siguenel principio Mendeliano de la herencia: cada gene que tiene unhijo, es una copia de un gene heredado de alguno de suspadres.

Cabe mencionar, sin embargo, que esto no tiene que ser ası encomputacion evolutiva.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 57: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Comportamiento Deseable de la Cruza

Algunos investigadores han destacado que el enfasis de lacruza debe ser el poder generar todas las posiblescombinaciones de bits (de longitud L) que hayan en el espaciode busqueda del problema [Radcliffe, 1991].

Nicholas J. Radcliffe, “Forma Analysis and Random RespectfulRecombination”, in Richard K. Belew and Lashon B. Booker (Editors),Proceedings of the Fourth International Conference on Genetic Algorithms,pp. 222–229, Morgan Kaufmann Publishers, San Mateo, California, USA,July 1991.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 58: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Comportamiento Deseable de la Cruza

Dada una cierta representacion binaria, ni la cruza de unpunto, ni la de n puntos son capaces de lograr esto (generarcualquier combinacion de bits posible).

La cruza uniforme, sin embargo, sı puede hacerlo.

Algunos investigadores han propuesto otras variantes de lacruza motivados por este problema.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 59: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Comportamiento Deseable de la Cruza

Radcliffe [1991] propuso una tecnica denominadarecombinacion respetuosa aleatoria.

Segun esta tecnica, se genera un hijo copiando los bits en losque sus padres son identicos, y eligiendo luego, valores al azarpara llenar las posiciones siguientes.

Si se usan cadenas binarias, y Pc = 0.5, la cruza uniforme esequivalente a esta recombinacion.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 60: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruza para Representaciones Alternativas

Programacion GeneticaPermutacionesRepresentacion real

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 61: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Programacion Genetica

Al usarse representacion de arbol, la cruza sigue funcionando de maneramuy similar a la cruza convencional, solo que en este caso, se intercambiansub-arboles entre los 2 padres.

El primer hijo se produce borrandole al primer padre el fragmento indicadopor el punto de cruza e insertando el fragmento (sub-arbol) correspondientedel segundo padre.

El segundo hijo se produce de manera analoga.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 62: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Programacion Genetica

Ejemplo: Dados los 2 padres siguientes

Las expresiones S de estos 2 padres son:(OR (NOT D1) (AND D0 D1)) y(OR (OR D1 (NOT D0)) (AND (NOT D0) (NOT D1)))

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 63: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Programacion Genetica

Si el punto de cruza del primer padre es 2, y el del segundo es6, entonces los hijos resultantes seran:

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 64: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Programacion Genetica

Observaciones:

Tipicamente, los 2 padres seran de tamanos distintos.Los padres son seleccionados mediante alguna de lastecnicas que vimos antes.Suele limitarse la profundidad maxima de un arbol.La raız es un punto de cruza valido.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 65: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruzas para Permutaciones

Al efectuar cruza entre 2 cadenas que usan representacion depermutaciones, los hijos invariablemente seran no validos.

La representacion de permutaciones se usa frecuentemente enproblemas de optimizacion combinatoria, como el del viajero.

Ejemplo de una permutacion: 1 2 3 4 5 6 7 8 9

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 66: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruzas para Permutaciones

Order CrossoverPartially Mapped CrossoverPosition-Based CrossoverOrder-Based CrossoverCycle CrossoverOtros

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 67: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruzas para Permutaciones

Order Crossover (OX)Fue propuesta por Davis [1985].

Algoritmo (los padres son P1 y P2)

1. Seleccionar (aleatoriamente) una sub-cadena de P1.2. Producir un hijo copiando la sub-cadena en las posiciones

correspondientes a P1.3. Las posiciones restantes se dejan en blanco.

Lawrence Davis, “Job Shop Scheduling with Genetic Algorithms”, in JohnJ. Grefenstette (Editor), Proceedings of the First International Conference onGenetic Algorithms, pp. 136–140, Lawrence Erlbaum Associates, Hillsdale,New Jersey, USA, July 1985.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 68: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruzas para Permutaciones

Order Crossover (OX) (Algoritmo Parte 2)4. Borrar los valores que ya se encuentren en la sub-cadena

de P2. La secuencia resultante contiene los valoresfaltantes.

5. Colocar los valores en posiciones no conocidas del hijo deizquierda a derecha.

6. Para obtener el segundo hijo, se repiten los pasos del 1 al5, pero tomando ahora la sub-cadena de P2.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 69: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruzas para Permutaciones

Order Crossover (OX) Ejemplo (Parte 1)

P1 = 9 8 4 5 6 7 1 2 3 10

P2 = 8 7 1 2 3 10 9 5 4 6

Sub-cadena elegida: 5 6 7 1 (de P1)

Primer hijo:

H1 = X X X 5 6 7 1 X X X

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 70: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruzas para Permutaciones

Order Crossover (OX) Ejemplo (Parte 2)Borrar de P2 la sub-cadena tomada de P1:

P2′ = 8 X X 2 3 10 9 X 4 X

Determinar los valores faltantes de H1 sustituyendo (deizquierda a derecha) los valores que aparecen en P2’:

H1 = 8 2 3 5 6 7 1 10 9 4

Para obtener H2, el procedimiento es similar, aunque ahora lasub-cadena se tomara de P2 y la sustitucion se hara a partir deP1’.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 71: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruzas para Permutaciones

Partially Mapped Crossover (PMX)Fue propuesta por Goldberg y Lingle [1985] y tiene ciertassimilitudes con OX.

Partially Mapped Crossover (Algoritmo Parte 1)1. Elegir aleatoriamente dos puntos de cruza.2. Intercambiar estos 2 segmentos en los hijos que se

generan (como la cruza de 2 puntos convencional).

David E. Goldberg and Robet Lingle, Jr., “Alleles, Loci, and the TravelingSalesman Problem”, in John J. Grefenstette (Editor), Proceedings of theFirst International Conference on Genetic Algorithms and Their Applications,pp. 154–159, Lawrence Erlbaum Associates, Hillsdale, New Jersey, USA,1985.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 72: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruzas para Permutaciones

Partially Mapped Crossover (Algoritmo Parte 2)3. El resto de las cadenas que conforman los hijos se

obtienen haciendo mapeos entre los 2 padres:a) Si un valor no esta contenido en el segmento

intercambiado, permanece igual.b) Si esta contenido en el segmento intercambiado, entonces

se sustituye por el valor que tenga dicho segmento en elotro padre.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 73: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruzas para Permutaciones

Partially Mapped Crossover (Ejemplo Parte 1)Dados:

P1 = 9 8 4 | 5 6 7 | 1 3 2 10

P2 = 8 7 1 | 2 3 10 | 9 5 4 6

Los hijos son:

H1 = X X X | 2 3 10 | X X X X

H2 = X X X | 5 6 7 | X X X X

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 74: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruzas para Permutaciones

Partially Mapped Crossover (Ejemplo Parte 2)Para completar H1 y H2, copiamos primero los valores que noestan en el segmento intercambiado:

H1 = 9 8 4 | 2 3 10 | 1 X X X

H2 = 8 X 1 | 5 6 7 | 9 X 4 X

Ahora mapeamos los valores restantes:

H1 = 9 8 4 2 3 10 1 6 5 7

H2 = 8 10 1 5 6 7 9 2 4 3

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 75: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruzas para Permutaciones

Position-based CrossoverPropuesta por Syswerda [1991] como una adaptacion de lacruza uniforme para permutaciones.

Algoritmo (Parte 1)

1. Seleccionar (al azar) un conjunto de posiciones de P1 (nonecesariamente consecutivas).

2. Producir un hijo borrando de P1 todos los valores, exceptoaquellos que hayan sido seleccionados en el paso anterior.

Gilbert Syswerda, “Schedule Optimization using Genetic Algorithms, inLawrence Davis (Editor), Handbook of Genetic Algorithms, Chapter 21, pp.332–349, Van Nostrand Reinhold, New York, USA, 1991.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 76: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruzas para Permutaciones

Position-based Crossover (Algoritmo Parte 2)3. Borrar los valores seleccionados de P2. La secuencia

resultante de valores se usara para completar el hijo.4. Colocar en el hijo los valores faltantes de izquierda a

derecha, de acuerdo a la secuencia de P2.5. Repetir los pasos del 1 al 4, pero tomando ahora la

secuencia de P2.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 77: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruzas para Permutaciones

Position-based Crossover (Ejemplo Parte 1)Dados:

P1 = 9 8 4 5 6 7 1 2 3 10

P2 = 8 7 1 2 3 10 9 5 4 6

Valores elegidos de P1 : 8 6 2 10

Producir un hijo:

H1 = X 8 X X 6 X X 2 X 10

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos

Page 78: Introduccion a la Computaci´ on Evolutiva´delta.cs.cinvestav.mx/~ccoello/compevol/clase7-cinvestav...En computacion evolutiva se simula la cruza intercambiando´ segmentos de cadenas

Cruzas para Permutaciones

Position-based Crossover (Ejemplo Parte 2)Borrar de P2 la secuencia usada para H1:

P2′ = X 7 1 X 3 X 9 5 4 X

Sustituir de izquierda a derecha los valores que aparecen enP2’:

H1 = 7 8 1 3 6 9 5 2 4 10

Para obtener H2, el procedimiento es similar, pero la secuenciase toma ahora de P2 y la sustitucion se hace a partir de P1’.

Carlos A. Coello Coello Introduccion a los Algoritmos Geneticos