Sie sind auf Seite 1von 58

Algoritmos Genticos

Fernando Berzal, berzal@acm.org

Algoritmos Genticos
La estructura bsica de un algoritmo gentico
Componentes de un algoritmo gentico
 Tcnicas de representacin
 Operadores de cruce
 Operadores de mutacin
 Mecanismos de seleccin
Los parmetros de un algoritmo gentico
Otras representaciones
 Representacin entera y permutaciones
 Representacin real
 Representacin en rbol (programacin gentica)
1

Algoritmos genticos
A finales de los 1950s y principios de los 1960s,
el bilogo ingls Alex S. Fraser (1923-2002)
public una serie de trabajos sobre la evolucin
de sistemas biolgicos en una computadora digital,
sirviendo de inspiracin para los algoritmos genticos:
Fraser, A. S., "Simulation of genetic systems by
automatic digital computers. I. Introduction,"
Aust. J. Biol. Sci., vol. 10, pp. 484491, 1957.
2

Algoritmos genticos
Hans-Joachin Bremermann (1926-1996)
fue el primero en ver la evolucin como
un proceso de optimizacin, adems de
realizar una de las primeras simulaciones
con cadenas binarias que se procesaban
por medio de reproduccin, seleccin y
mutacin (predecesor de los algoritmos genticos).

Bremermann, H.J. (1962): Optimization through


evolution and recombination. In: Self-Organizing
systems 1962, edited M.C. Yovitts et al., Spartan Books,
Washington, D.C. pp. 93106.

Algoritmos genticos
John Henry Holland (1929-) desarrolla
a principios de los 1960s los planes
reproductivos y adaptativos en un
intento por hacer que las computadoras
aprendan imitando el proceso de la evolucin.
John H. Holland (1962):
"Outline for a logical theory of adaptive systems",
JACM 9(3):297314. DOI 10.1145/321127.321128
John H. Holland (1975):
Adaptation in Natural and Artificial Systems.
The University of Michigan Press, 1975
4
ISBN 0472084607

Algoritmos genticos
Rasgos fenotpicos


Diferencias fsicas y de comportamiento que afectan a


la respuesta de un individuo a su entorno.

En la naturaleza, parcialmente determinadas por la


herencia, parcialmente derivados por factores
relacionados con el desarrollo de individuo.

Si los rasgos fenotpicos incrementan las posibilidades


de reproduccin y pueden heredarse, tendern a
incrementarse en subsecuentes generaciones
y servir de base a nuevas combinaciones de rasgos.

Algoritmos genticos
Evolucin natural


La poblacin consiste en un conjunto de individuos.

Los individuos son seleccionados (combinaciones de


rasgos mejor adaptados tienden a incrementarse en la
poblacin).

La poblacin evoluciona (la seleccin natural se


combina con la variacin introducida por cambios
aleatorios [una fuente de diversidad]).
6

Algoritmos genticos


Se hace evolucionar una poblacin de individuos


(cada uno de los cuales representa una posible solucin).

La poblacin se somete a acciones aleatorias


semejantes a las de la evolucin biolgica
(mutaciones y recombinaciones genticas).

Los individuos se seleccionan de acuerdo con una


funcin de adaptacin en funcin del cual se decide
qu individuos sobreviven (los ms adaptados)
y cules son descartados (los menos aptos).
7

Algoritmos genticos
Caractersticas esenciales
(de cualquier algoritmo evolutivo)


Algoritmos de tipo
generar y probar [generate & test].

Algoritmos estocsticos basados en poblaciones


(comportamiento no determinista).

Operadores de variacin (cruce y mutacin)


crean la diversidad necesaria.

La seleccin reduce la diversidad


(hacia soluciones de calidad).

Algoritmos genticos
Caractersticas esenciales





Inicializacin
(generacin aleatoria de una poblacin inicial)
Variacin
(operadores de cruce y mutacin)
Evaluacin
(aptitud [fitness] de cada individuo)
Seleccin
(seleccin probabilstica)

Algoritmos genticos
Fases



Inicializacin
Evaluacin

Repeticin
 Seleccin
 Cruce
 Mutacin
 Evaluacin
 Reemplazo
10

Algoritmos genticos
Algoritmo gentico clsico
t 0
poblacin(t) poblacinInicial
EVALUAR(poblacin(t))
while not (condicin de terminacin)
t t + 1
poblacin(t) SELECCIONAR(poblacin(t-1))
poblacin(t) CRUZAR(poblacin(t))
poblacin(t) MUTAR(poblacin(t))
EVALUAR(poblacin(t))
return poblacin(t)

11

Algoritmos genticos
Seleccin, cruce & mutacin

12

Algoritmos genticos
Ejemplo: El problema de las N reinas

Fenotipo:
Configuracin del tablero.

Genotipo:
Permutacin de enteros.

1 3 5 2 6 4 7 8
13

Algoritmos genticos
Ejemplo: El problema de las N reinas


Funcin de evaluacin:
Nmero de parejas de reinas que no se atacan.
Definicin alternativa como problema de minimizacin:
 Penalizacin de una reina =
Nmero de reinas a las que ataca directamente.
 Penalizacin del tablero =
Suma de las penalizaciones de todas las reinas.
 Fitness = - penalizacin del tablero.
14

Algoritmos genticos
Ejemplo: El problema de las N reinas


Operador de mutacin:
Pequea variacin en una permutacin.
Ejemplo:
Intercambio de dos posiciones elegidas al azar.

1 3 5 2 6 4 7 8

1 3 7 2 6 4 5 8

15

Algoritmos genticos
Ejemplo: El problema de las N reinas


Operador de cruce:
Combinacin de dos permutaciones
 Elegir un punto de cruce al azar.
 Copiar la primera parte de ambas.
 Rellenar la segunda parte usando el otro padre: se
aaden valores desde el punto de cruce, en el orden
en el que aparecen y saltando los que ya estn.

1 3 5 2 6 4 7 8
8 7 6 5 4 3 2 1

1 3 5 4 2 8 7 6
8 7 6 2 4 1 3 5

16

Algoritmos genticos
Componentes de un algoritmo gentico

http://eodev.sourceforge.net/

17

Algoritmos genticos
Componentes de un algoritmo gentico


Representacin de las soluciones del problema.

Funcin de evaluacin (fitness/aptitud).

Mecanismo de creacin de la poblacin inicial.

Operadores genticos (cruce & mutacin).

Mecanismo de seleccin [probabilstica].

Valores para los distintos parmetros del algoritmo.

18

Tcnicas de representacin
Gentica bsica
 La informacin necesaria para la construccin de un
ser vivo viene codificada en su genoma (ADN).
 El genotipo determina el fenotipo.
 La correspondencia entre genes y rasgos fenotpicos es
compleja:
 Un gen puede afectar a muchos rasgos [pleiotropy].
 Muchos genes pueden afectar a un rasgo [polygeny].
 Pequeos cambios en el genotipo pueden provocar
pequeos cambios en el fenotipo del organismo
(p.ej. altura, color de pelo, color de ojos).
19

Tcnicas de representacin
Gentica bsica
Ejemplo: Homo sapiens

20

Tcnicas de representacin
Cdigo gentico
 Las protenas son secuencias construidas a partir de 20
aminocidos diferentes.
 El ADN es una doble hlice helicoidal formada por parejas
de nucletidos que contienen bases nitrogenadas:
 2 purnicas: adenina (A) y guanina (G)
 2 pirimidnicas: timina (T) y citosina (C)
NOTA: En el ARN, el uracilo (U) sustituye a la timina (T).
 Tripletas de nucletidos forman codones, cada uno de los
cuales codifica un aminocido especfico.
 Para todas la formas de vida en la Tierra,
el cdigo gentico es el mismo
21

Tcnicas de representacin

22

Tcnicas de representacin
Biologa Molecular

Genotipo

Fenotipo

Lamarck estaba
equivocado

23

Tcnicas de representacin
Histricamente, diferentes tipos de algoritmos evolutivos
se han asociado a diferentes tcnicas de representacin:


Cadenas de bits (algoritmos genticos)

Vectores de nmeros reales (estrategias de evolucin)

Mquinas de estados (programacin evolutiva)

rboles LISP (programacin gentica)


24

Tcnicas de representacin
Seleccin de la representacin adecuada


Las diferencias entre una tcnica de representacin y


otra no son demasiado relevantes en la prctica.

Se ha de escoger la representacin que mejor se


adapte al problema que pretendemos resolver.


Los operadores de variacin (cruce y mutacin) se


escogen de acuerdo a la representacin escogida.

La seleccin se basa en el valor de fitness de las


soluciones candidatas, por lo que es independiente
de la representacin.
25

Tcnicas de representacin
Seleccin de la representacin adecuada
Las soluciones candidatas (individuos)
 se evalan de acuerdo a su fenotipo (comportamiento).
 se codifican de acuerdo a su genotipo (cromosomas).
Codificacin
Fenotipo

Genotipo
Decodificacin




La decodificacin es 1 a 1
(la codificacin, no necesariamente).
Para ser capaces de encontrar la solucin ptima,
toda posible solucin ha de poder representarse.

26

Tcnicas de representacin
Codificacin binaria
Fenotipo
Codificacin
(representacin)

Genotipo {0,1}L
10010001
10010010
010001001
011101001

Decodificacin
27

Tcnicas de representacin
Codificacin binaria
Representacin tradicional

Cromosoma: Cadena de bits que representa a cada


individuo de la poblacin.

Gen: Cada posicin de la cadena.

Alelo: Valor de un gen.

28

Funcin de evaluacin
La funcin de evaluacin [fitness]


representa la funcin objetivo de nuestro problema


de optimizacin.

asigna valores reales a cada fenotipo.

se utiliza de base para realizar la seleccin

Cuanto ms discrimine, mejor (valores diferentes).

Normalmente, pretenderemos maximizar el valor de


fitness (aunque algunos problemas se plantean mejor
como problemas de minimizacin y la conversin
resulta trivial).
29

Poblacin inicial


La inicializacin de la poblacin suele ser aleatoria.

Conviene asegurar una mezcla adecuada de todos los


alelos posibles (esto es, incluir en la poblacin inicial
valores diferentes para todos los genes).

Pueden utilizarse, como semilla, soluciones existentes


y soluciones obtenidas utilizando heursticas
(dependientes del problema concreto).

30

Operadores genticos


Nos permiten generar nuevas soluciones candidatas.

Se suelen clasificar en funcin de su aridad (esto es,


de su nmero de entradas):
 Aridad 1: Operadores de mutacin.
 Aridad>1: Operadores de recombinacin.
 Aridad=2: Operadores de cruce.

La seleccin de operadores concretos depende del


mecanismo de representacin escogido.
31

Operadores de mutacin
Mutacin (gentica)
 Ocasionalmente, se producen errores en la replicacin
del material gentico
 Un hijo puede tener material gentico que no proviene
de ninguno de sus padres (no heredado)
 En la naturaleza, la mutacin puede ser
 Catastrfica (hijo no viable)
 Neutral (no influencia su fitness)
 Ventajosa (nueva caracterstica beneficiosa)
NOTA: La redundancia en el cdigo gentico
sirve de mecanismo de control de errores

32

Operadores de mutacin

http://en.wikipedia.org/wiki/Mutation

33

Operadores de mutacin


Los operadores de mutacin actan sobre el genotipo.

Es esencial su aleatoriedad (lo que los diferencia de


otros operadores heursticos unarios).

Su importancia vara dependiendo del tipo de


algoritmo evolutivo:
 En los algoritmos genticos, preservan e introducen
diversidad en la poblacin.
 En programacin gentica, apenas se utilizan.
 En programacin evolutiva clsica, son los nicos
operadores de variacin utilizados.
34

Operadores de mutacin
Mutacin estndar
Dado un cromosoma, se altera el valor de cada gen con
una probabilidad pm
pm se denomina probabilidad de mutacin.

35

Operadores de cruce
Meiosis
(produccin de gametos)




Las parejas de cromosomas se alinean y duplican.


Los cromosomas homlogos se reparten en dos
clulas hijas, se enlazan en un centrmero e
intercambian partes de ellos (se cruzan).
Como resultado, se obtienen 4 clulas haploides.

36

Operadores de cruce
Sperm cell from Father

Egg cell from Mother

New person cell (zygote)

37

Operadores de cruce





Combinan informacin de los padres para crear


nuevos descendientes.
La seleccin de qu informacin de los padres se
combina es estocstica.
Muchos descendientes pueden ser peores que los
padres (en trminos de la funcin de fitness).
Se espera que algunos de ellos sean mejores al
combinar los elementos de sus genotipos que
conducen a la obtencin de mejores fenotipos.
NOTA: Este principio se ha utilizado durante
milenios en agricultura y ganadera para la
seleccin de variedades de plantas y razas de
animales (incluidos los domsticos).

38

Operadores de cruce

39

Operadores de cruce
Cruce en un punto
[1-point crossover]




Se selecciona un punto de cruce aleatoriamente.


Se dividen los padres en ese punto.
Se crean hijos intercambiando partes de los cromosomas.

40

Operadores de cruce
Cruce en un punto
[1-point crossover]
Limitacin: Depende del orden en el que aparecen los genes
 Es ms probable que sigan juntos genes que estn cerca.
 Nunca mantiene juntos los genes de extremos opuestos.
Este sesgo posicional puede aprovecharse si conocemos
algo sobre la estructura de las soluciones de nuestro
problema, aunque no suele ser el caso
41

Operadores de cruce
Cruce en n puntos
[n-point crossover]




Se eligen n puntos de cruce aleatoriamente.


Se fragmentan los cromosomas en esos puntos.
Se juntan fragmentos, alternando los padres.

42

Operadores de cruce
Cruce uniforme
[uniform crossover]
 Se elige al azar el padre del que proviene cada gen para
el primer hijo (el segundo hijo es el inverso)
 La herencia de un gen es ahora independiente de su
posicin en el cromosoma (se eliminar el sesgo
posicional del cruce en n puntos).

43

Operadores de recombinacin
Se pueden disear operadores de recombinacin que
combinen informacin de ms de dos padres (no estamos
restringidos por lo que ocurre en la Naturaleza):
Poco frecuentes, aunque a veces son tiles
Tipos
 Basados en las frecuencias de los alelos
(votacin p-sexual, generalizacin del cruce uniforme)
 Basados en la segmentacin de los padres
(cruce diagonal, generalizacin del cruce en n puntos)
 Basados en operaciones numricas sobre alelos con
valores reales (p.ej. centro de masas)
44

Operadores de cruce
Cruce o mutacin? El eterno debate
Depende del problema pero, en general:


Suele ser bueno utilizar ambos operadores:

Se puede utilizar un algoritmo evolutivo que slo


emplee mutacin, pero no un algoritmo que slo use
recombinacin.

45

Operadores de cruce
Cruce o mutacin? El eterno debate






El operador de cruce explora el espacio de bsqueda


(descubre reas prometedoras lejos de los padres).
El operador de mutacin explota lo que ya hemos
descubierto (permanece cerca del rea de los padres).
Slo el cruce puede combinar lo mejor de dos padres.
Slo la mutacin puede introducir nuevos alelos en la
poblacin (el cruce no cambia la proporcin de alelos
en la poblacin).
Para llegar realmente al ptimo, puede que
necesitemos una mutacin afortunada

46

Mecanismos de seleccin
Analoga con la evolucin:


El entorno dispone de recursos limitados (esto es, slo


puede dar soporte a un nmero finito de individuos).

Los individuos tienen instintos bsicos de reproduccin.

Es inevitable la existencia de algn tipo de seleccin:


Aquellos individuos que compiten por los recursos
de forma ms efectiva tienen ms posibilidades de
reproducirse.
47

Mecanismos de seleccin


La poblacin
contiene un conjunto de posibles soluciones.
suele tener un tamao fijo.

Algunos algoritmos evolutivos establecen una


distribucin espacial sobre la poblacin
(p.ej. grids o nichos).

La seleccin suele considerar la poblacin en su


conjunto y la probabilidad de reproduccin se define
sobre la generacin actual de la poblacin.

48

Mecanismos de seleccin


Se asignan probabilidades de seleccin a los individuos


de la poblacin (padres) en funcin de su fitness.

Se suele emplear un mecanismo de seleccin


estocstico:
 Los mejores individuos es ms probable que se
seleccionen (aunque nada lo garantiza).
 Incluso el peor individuo de la poblacin puede ser
seleccionado.

La seleccin estocstica nos ayuda a escapar de


ptimos locales.
49

Mecanismos de seleccin
Seleccin proporcional (ruleta)


Idea: Los mejores individuos tienen ms posibilidades


de reproducirse (de manera proporcional a su fitness).

Implementacin: Ruleta
 A cada individuo
se le asigna una parte
proporcional de la ruleta.
 Se gira la ruleta n veces
para seleccionar una poblacin de n individuos.
50

Mecanismos de seleccin
Seleccin proporcional (ruleta)
fitness(A)=3
fitness(B)=1
fitness(C)=2

B
A

1/6
17%
3/6
50%

2/6
33%

51

Mecanismos de seleccin
Seleccin proporcional (ruleta)

[Goldberg 1989]
52

Mecanismos de seleccin
Algoritmo gentico estndar


Seleccionar dos padres.

Con probabilidad pc, cruzar


los padres (si no, simplemente
se copian).
pc tpicamente entre 0.6 y 0.9

Para cada descendiente, se muta


cada bit independientemente con
probabilidad pm.
pm tpicamente entre
1/tamao de la poblacin y
1/longitud del cromosoma

53

Mecanismos de seleccin
Algoritmo gentico estndar
Cruce

Mutacin

54

Mecanismos de seleccin
Seleccin de supervivientes (a.k.a. reemplazo)


La mayora de los algoritmos evolutivos utilizan una


poblacin de tamao fijo, por lo que hay que definir
una forma de crear la siguiente generacin a partir del
conjunto de individuos disponibles (padres e hijos).

La seleccin final suele ser determinstica:


 Basada en el fitness (slo los mejores sobreviven).
 Basada en la edad (la generacin de descendientes
sustituye por completo a sus padres).
55

Mecanismos de seleccin


En ocasiones, se combinan fitness y edad: elitismo


(el mejor individuo siempre sobrevive, sea padre o hijo).

Ha sido demostrado que un algoritmo gentico requiere


elitismo para poder converger al ptimo global.
Gnter Rudolph: Convergence Analysis of
Canonical Genetic Algorithms. IEEE Transactions
on Neural Networks, 5:96-101, January 1994.

56

Mecanismos de seleccin
Modelos poblacionales


Modelo generacional [SGA: standard GA]


Cada individuo vive durante una nica generacin;
i.e. el conjunto completo de padres es reemplazado.

Modelo estacionario [SSGA: steady-state GA]


En cada generacin se crea un nico descendiente,
que reemplaza a un miembro de la poblacin inicial
(p.ej. peor fitness, FIFO o aleatorio).

Gap generacional = Fraccin reemplazada de la poblacin


gap(SGA) = 1

vs. gap(SSGA) = 1 / tamao de la poblacin

57

Mecanismos de seleccin
La seleccin, por tanto, opera en dos sitios:
 Seleccin de padres (para crear descendientes)
 Seleccin de supervivientes (siguiente generacin)
Los operadores de seleccin operan sobre individuos y
son independientes de su representacin.
Una vez determinadas las probabilidades de seleccin, se
pueden utilizar distintos algoritmos para implementar el
proceso de seleccin [de padres]
58

Mecanismos de seleccin
Nmero esperado de copias de un individuo i:
E( ni ) = f(i) / f

Tamao de la poblacin
f(i)
Fitness del individuo I
f
Fitness medio de la poblacin
Algoritmo de la ruleta
Dada la distribucin de pobabilidades de seleccin, girar
la rules n veces para realizar n selecciones
 No garantiza que se obtenga el valor esperado de ni
59

Mecanismos de seleccin
Nmero esperado de copias de un individuo i:
E( ni ) = f(i) / f

Tamao de la poblacin
f(i)
Fitness del individuo I
f Fitness medio de la poblacin
Algoritmo SUS de James Baker (1987)
[Stochastic Universal Sampling]
Se usa la ruleta una nica vez
y se seleccionan n elementos equiespaciados
 Garantiza que floor(E(ni)) ni ceil(E(ni))
60

Mecanismos de seleccin
La seleccin proporcional presenta algunos problemas:


Un individuo muy apto puede expandirse rpidamente


si el resto de la poblacin en mucho peor
(convergencia prematura)

Cuando los valores de fitness son similares,


el proceso de seleccin pierde presin.

Las probabilidades de seleccin son muy susceptibles


ante la trasposicin de la funcin de fitness.
61

Mecanismos de seleccin
Trasposicin en la funcin de fitness
y su influencia en la seleccin proporcional

62

Mecanismos de seleccin
Cambiar la escala de la funcin de fitness
puede solucionar los dos ltimos problemas:


Windowing: f(i) = f(i) - t


donde t es el peor fitness en esta generacin
(o las ltimas n generaciones)
Sigma Scaling: f(i) = max( f(i) ( f - c f ), 0.0)
donde c es una constante, normalmente c=2.0

63

Mecanismos de seleccin
Seleccin basada en el ranking
Para eliminar los problemas de la seleccin proporcional,
las probabilidades de seleccin se basan en valores
relativos en vez de en los valores absolutos de fitness.


Se ordena la poblacin de acuerdo a su fitness y las


probabilidades de seleccin se basan en el ranking
(ranking para el mejor, 1 para el peor).

NOTA:
Idea similar a los tests no paramtricos en Estadstica.

64

Mecanismos de seleccin
Ranking lineal




Parametrizado por el factor s: 1.0 < s 2.0


El factor s mide la ventaja del mejor individuo
(el nmero de descendientes que le tocan en un SGA).

65

Mecanismos de seleccin
Ranking exponencial





El ranking lineal tiene una presin selectiva limitada.


El ranking exponencial permite asignar ms de dos
desdendientes al mejor individuo de la poblacin.
La constante c se utiliza para normalizar de acuerdo al
tamao de la poblacin.

66

Mecanismos de seleccin
Seleccin por torneo
Los mtodos anteriores se basan en estadsticas de la
poblacin en su conjunto
 Pueden suponer un cuello de botella en su paralelizacin.
 Dependen de la existencia de una funcin de fitness
(que puede no existir en determinados problemas).
IDEA BSICA:
 Seleccionar k miembros al azar y escoger el mejor.
 Repetir las veces que haga falta.
67

Mecanismos de seleccin
Seleccin por torneo
La probabilidad de seleccionar un individuo depender de
 El ranking del individuo.
 El tamao de la muestra k
(cuanto mayor sea k, mayor presin de seleccin)
 El mtodo de muestreo
(el muestreo sin reemplazo aumenta la presin selectiva)
 Si el mejor individuo siempre gana (determinista) o si
esto sucede con probabilidad p (probabilstica).
Si k=2, el tiempo necesario para que el mejor individuo cope la
poblacin es el mismo que con ranking lineal usando s = 2p

68

Parmetros
Ejemplo
El problema de las N reinas

Una posible eleccin de


los parmetros de un algoritmo gentico.

69

Parmetros
Fases de la ejecucin de un algoritmo gentico ideal:
Generaciones iniciales:
Distribucin aleatoria de la poblacin.
Generaciones intermedias:
Poblacin cerca de las colinas.

Generaciones finales:
Poblacin concentrada en las
cimas de las colinas ms altas.

70

Parmetros

Mejor fitness en la poblacin

Evolucin tpica del fitness


durante la ejecucin de un algoritmo gentico:

Tiempo (nmero de generaciones)


71

Parmetros

Mejor fitness en la poblacin

Merece la pena una ejecucin larga?


Depende (a veces, pueden obtenerse mejores
resultados con varias ejecuciones ms cortas). Progreso en
la segunda
mitad de la
ejecucin
Progreso en
la primera
mitad de la
ejecucin
Tiempo (nmero de generaciones)

t=1/2

72

Parmetros

Mejor fitness en la poblacin

Merece la pena invertir en la inicializacin?


Depende (puede que s, si existen tcnicas adecuadas
para encontrar buenas soluciones iniciales).

F Fitness de las soluciones encontradas


utilizando mtodos alternativos.
tF Tiempo necesario para alcanzar
el nivel F usando inicializacin aleatoria.
tF

Tiempo (nmero de generaciones)


73

Otras representaciones


Codificacin Gray (sigue siendo codificacin binaria)


Motivacin: Pequeos cambios en el genotipo
causan pequeos cambios en el fenotipo.

Vectores de nmeros (reales o enteros)


Codificacin habitual cuando las variables de
nuestro problema son numricas (codificacin
directa, aunque habr que definir operadores
genticos adecuados).

74

Representacin entera


Los operadores de cruce (en n puntos y uniforme) se


pueden seguir utilizando.

El operador de mutacin se modifica en funcin de la


situacin:
 Valores ordinales: Se hace que sea ms probable
cambiar a valores cercanos en la escala.
 Valores categricos: Seleccin aleatoria uniforme.

75

Permutaciones


Los problemas de ordenacin/secuenciacin son


especiales (p.ej. TSP, QAP): lo importante es
establecer qu elementos aparecen junto a otros.

Los operadores de cruce y mutacin habituales dan


lugar a soluciones inadmisibles, por lo que los
operadores de mutacin deben cambiar al menos dos
valores y los de cruce han de disearse
especficamente para problemas de este tipo.

NOTA: La probabilidad de mutacin ahora se referir


a cromosomas completos, no a genes individuales
76

Permutaciones
Operadores de mutacin (1/2)


Insercin: Elegir dos alelos aleatoriamente y colocar


el segundo justo despus del primero.

Intercambio: Seleccionar dos alelos aleatoriamente e


intercambiarlos.

NOTA: Observe como cada operador de mutacin afecta de


forma diferente al orden relativo y a las relaciones de adyacencia.

77

Permutaciones
Operadores de mutacin (2/2)


Inversin: Seleccionar dos alelos aleatoriamente e


invertir la cadena entre ellos.

Revuelto [scramble]: Seleccionar un subconjunto


de genes y reordenar aleatoriamente los alelos (el
subconjunto no tiene por qu ser contiguo).

NOTA: Observe como cada operador de mutacin afecta de


forma diferente al orden relativo y a las relaciones de adyacencia.

78

Permutaciones
Operadores de cruce
Cruce de orden
(se preserva el orden relativo de los elementos)




Seleccionar una parte arbitraria del primer padre.


Copiar esta parte en el hijo.
Copiar los nmeros que no estn en la primera parte
empezando desde el punto de cruce.
utilizando el orden en el que aparecen en el 2 padre
volviendo al principio del cromosoma cuando
hayamos llegado al final.

El segundo hijo se crea intercambiando los papeles de los padres.

79

Permutaciones
Operadores de cruce
Cruce de orden
(se preserva el orden relativo de los elementos)
Seleccin del primer padre

Copia del segundo padre

80

Permutaciones
Operadores de cruce
PMX [Partially-Mapped Crossover]
A partir de los padres P1 y P2:
1. Elegir un segmento aleatorio y copiar desde P1.
2. Desde el primer punto de cruce, buscar elementos de
ese segmento en P2 que no se han copiado.
3. Para cada uno de esos elementos i, buscar qu
elemento j se ha copiado en su lugar desde P1.
4. Colocar i en la posicin ocupada j de P2 (sabemos que
no estar ah, ya que lo hemos copiado ya).
5. Si el lugar ocupado por j en P2 ya se ha rellenado en
el hijo (k), poner i en la posicin ocupada por k en P2.
81
6. El resto de elementos se rellena de P2.

Permutaciones
Operadores de cruce
PMX [Partially-Mapped Crossover]

82

Permutaciones
Operadores de cruce
Cruce de ciclos [cycle crossover]
Cada alelo viene de un padre con su posicin:
1. Formar un ciclo de alelos de la siguiente forma:
a) Comenzar con el primer alelo de P1.
b) Mirar el alelo que est en la misma posicin en P2.
c) Ir a la posicin con el mismo alelo en P1.
d) Aadir este alelo al ciclo.
e) Repetir b)-d) hasta que lleguemos al primer alelo.
2. Poner los alelos del ciclo en las posiciones que tienen en
el primer padre.
83
3. Coger el siguiente ciclo del otro padre.

Permutaciones
Operadores de cruce
Cruce de ciclos [cycle crossover]
1.

Identificacin de ciclos:

2.

Copia de ciclos alternativos en el hijo:

84

Permutaciones
Operadores de cruce
Recombinacin de aristas [edge recombination]
Se construye una tabla con las aristas presentes en los dos
padres, marcando las comunes.
Ejemplo: [1 2 3 4 5 6 7 8 9] y [9 3 7 8 2 6 5 1 4]

85

Permutaciones
Operadores de cruce
Recombinacin de aristas [edge recombination]

86

Representacin real
La tpica en muchos problemas de optimizacin.
Ejemplo: Funcin de Ackley

1 n 2
xi
f ( x) = 20 exp 0.2
n
i =1

1 n
exp cos(2xi ) + 20 + e

n i =1

87

Representacin real


Dado que los nmeros reales se representan en binario


en el ordenador, el nmero de bits utilizado para
representar cada valor determina la precisin mxima
de la solucin.
Si usamos L bits, cualquier z [x,y] se representa
por una cadena de L bits (a1,,aL) {0,1}L
: {0,1}L [x,y] define la representacin

y x L1
( a1 ,..., a L ) = x + L
( aL j 2 j ) [ x, y ]
2 1 j =0


Slo se representan 2L valores (de un conjunto infinito).88

Representacin real
Operadores de mutacin

x = x1 , ..., xl x = x1 , ..., xl
xi , xi [LBi , UBi ]


Mutacin uniforme (anloga a la mutacin binaria o a


la inicializacin aleatoria de valores enteros).

xi elegido aleatoriamente del intervalo [LBi , UBi ]




Mutacin no uniforme (muchas alternativas posibles),


p.ej. aadir una variacin aleatoria para cada variable
utilizando una distribucin normal N(0,)
y truncae al intervalo vlido para cada variable.

89

Representacin real
Operadores de cruce


Valores discretos:
 Cada alelo proviene de uno de sus padres.
 Se puede usar el cruce uniforme o en n puntos.

Valores intermedios:
Se recombinan los valores de los padres x e y:
zi = xi + (1 - ) yi
donde el parmetro (0 1) puede ser constante
(cruce aritmtico uniforme), variable (p.ej. en funcin
de la generacin en la que nos encontremos) o,
90
incluso, aleatorio.

Representacin real
Cruce aritmtico nico
[single arithmetic crossover]
 Seleccionar un gen concreto al azar (k).
x1 , ..., xk 1 , yk + (1 ) xk , ..., xn
 Primer hijo:
y1 , ..., yk 1 , xk + (1 ) yk , ..., yn
 Segundo hijo:

= 0.5

91

Representacin real
Cruce aritmtico simple
[simple arithmetic crossover]
 Seleccionar un gen concreto al azar (k).
 Combinar a partir del gen k:
x , ..., x , y
+ (1 ) x
, ..., y + (1 ) x
1
k
k +1
k +1
n
n


A la inversa para el otro hijo.

= 0.5

92

Representacin real
Cruce aritmtico completo
[whole arithmetic crossover]
 Variante ms utilizada
r
r
 El primer hijo es x + (1 ) y
r
r
 El segundo hijo es (1 ) x + y
= 0.5

93

Programacin gentica

94

Programacin gentica




Aunque los primeros intentos por hacer evolucionar


programas se remontan a los 1950s y 1960s, hasta los 1980
no se obtuvieron resultados satisfactorios.
Joseph F. Hicklin (1986) us reproduccin y mutacin para
generar programas en LISP.
Cory Fujiki y John Dickinson (1987) hicieron evolucionar
sentencias condicionales para representar estrategias en
problemas de teora de juegos.
Nichael Lynn Cramer (1985) y, posteriormente, John R. Koza
(1989) propusieron, de forma independiente, el uso de una
representacin en rbol sobre la que se implement un
operador de cruce que permita intercambiar subrboles
entre los diferentes programas de una poblacin
95
generada al azar.

Programacin gentica
La propuesta de Koza fue la que se acab imponiendo y,
ms tarde, se denomin Programacin Gentica.


Nichael Lynn Cramer (1985): Representation for the


Adaptive Generation of Simple Sequential Programs.
1st International Conference on Genetic Algorithms and their
Applications, CMU, Pittsburgh, PA, July 24-26, 1985.
http://homepages.sover.net/~nichael/nlc-publications/icga85/index.html

John R. Koza (1989): Hierarchical genetic algorithms


operating on populations of computer programs.
IJCAI89, 11th International Joint Conference on
Artificial Intelligence, volume 1, pages 768-774,
Detroit, Michigan, August 20-25, 1989.
96
http://www.genetic-programming.com/jkpdf/ijcai1989.pdf

Programacin gentica
Idea bsica: representacin basada en rboles.

2 + ( x + 3)

5
+
1

97

Programacin gentica
Idea bsica: representacin basada en rboles.
(x true) (( x y ) (z (x y)))

98

Programacin gentica
Idea bsica: representacin basada en rboles.
i =1;
while (i < 20) {
i = i +1;
}

99

Programacin gentica
Caractersticas


Cromosomas representados por estructuras no lineales.

Cromosomas de tamao variable.

Necesita poblaciones enormes (miles de individuos).

Lentitud.

Mutacin posible pero no necesaria (discutible).


100

Programacin gentica
Algoritmo gentico

Programacin gentica

101

Programacin gentica
Cruce
Intercambio de subrboles


Se selecciona un nodo
aleatoriamente de cada
uno de los padres
(nodos internos con P=0.9,
cualquiera con probabilidad P=0.1).

Se intercambian los subrboles que tienen como raz


el nodo seleccionado.

NOTA: Siempre genera rboles sintcticamente vlidos.

102

Programacin gentica
Cruce
Padres

Hijos

103

Programacin gentica
Mutacin
Mutacin de subrboles


Se selecciona un nodo al azar


(con probabilidad uniforme).

Se elimina el subrbol que tiene como


raz el nodo seleccionado y se inserta
un nuevo subrbol generado aleatoriamente.

Un parmetro controla la profundidad mxima del


subrbol generado aleatoriamente (el descendiente
puede tener una profundidad mayor que el padre).

104

Programacin gentica
Mutacin
Parmetros


Probabilidad pm de escoger
mutacin frente a recombinacin.
 pm = 0 [Koza1992]
 pm = 0.05 [Banzhaf et al. 1998]

Probabilidad de escoger un
nodo interno como raz del
subrbol reemplazado.
105

Programacin gentica
Seleccin


Proporcional al fitness de cada individuo.

Seleccin no uniforme en poblaciones grandes


 Poblacin dividida en dos grupos
 Grupo 1: Mejor x% de la poblacin
 Grupo 2: El otro (100-x)% de la poblacin
x% distinto para poblaciones de distinto tamao
1000, 2000, 4000, 8000 32%, 16%, 8%, 4%
 80% de las operaciones de seleccin sobre
el grupo 1 (20% restante del grupo 2).

106

Programacin gentica
Inicializacin


rboles de profundidad mxima Dmax

50% de rboles completos


(cada rama del rbol con profundidad Dmax).



Nodos a profundidad < Dmax : Funciones.


Nodos a profundidad = Dmax : Terminales.

50% de rboles de profundidad variable


(ramas del rbol de profundidad Dmax).



Nodos a profundidad < Dmax : Funciones y terminales.


Nodos a profundidad = Dmax : Terminales.

107

Programacin gentica
Abotargamiento [bloat]: survival of the fattest


El tamao de los rboles tiende a crecer


a lo largo del tiempo.

Se necesitan contramedidas para evitarlo:




Prohibicin de operadores genticos que den como


resultado hijos demasiado grandes.

Presin para mantener la parsimonia, p.ej.


penalizacin por ser demasiado grande.
108

Programacin gentica
Aplicaciones

Regresin simblica

Controladores para robots


 Slo algunos rboles son realmente ejecutables.
 La ejecucin puede cambiar el entorno (fitness).
 Clculo del fitness mediante simulacin (costosa).
 Pese a todo, suele funcionar
109

Programacin gentica
MetaGP


Idea: Hacer evolucionar un sistema de programacin


gentica usando programacin gentica.
Jrgen Schmidhuber, Dirk Dickmanns & Andreas Winklhofer (1987):
Der genetische Algorithmus: Eine Implementierung in Prolog.
Tech. Univ. Munich, 1987.
http://people.idsia.ch/~juergen/geneticprogramming.html

EURISKO ya haca algo similar en 1983


Douglas Lenat (1983):
"EURISKO: A program that learns new heuristics and domain
concepts". Artificial Intelligence 21:6198.
DOI 10.1016/S0004-3702(83)80005-8

110

Bibliografa
Lecturas recomendadas


A.E. Eiben & J.E.Smith:


Introduction to
Evolutionary Computing
Springer, 2nd printing, 2007
ISBN 3540401849
http://www.cs.vu.nl/~gusz/ecbook/ecbook.html

[Captulo 3: Genetic algorithms]


Lecturas opcionales
[Captulo 6: Genetic programming]
[Captulo 8: Parameter control]

111

Bibliografa
Bibliografa en castellano


Carlos Artemio Coello Coello:


Introduccin a la Computacin Evolutiva.
CINVESTAV-IPN, 2014.
http://delta.cs.cinvestav.mx/~ccoello/compevol/apuntes.pdf
[Captulo
[Captulo
[Captulo
[Captulo
[Captulo

5:
6:
7:
8:
9:

La importancia de la representacin]
Tcnicas de seleccin]
Tcnicas de cruza (sic)]
Mutacin]
Ajuste de parmetros]

112

Bibliografa
Bibliografa complementaria


Melanie Mitchell:
An Introduction to
Genetic Algorithms
MIT Press, 1996.
ISBN 0262133164

David E. Goldberg:
Genetic Algorithms in Search,
Optimization & Machine Learning.
Addison-Wesley, 1989.
ISBN 0201157675

113

Bibliografa
Bibliografa complementaria


John R. Koza:
Genetic Programming:
On the Programming of Computers
by Means of Natural Selection.
MIT Press, 1992.
ISBN 0-262-11170-5

114