Está en la página 1de 13

Computacin bioinspirada

Computacin evolutiva
Jos M. Sempere
Departamento de Sistemas Informticos y Computacin
Universidad Politcnica de Valencia

Computacin Evolutiva
1.
2.
3.
4.
5.
6.
7.
8.

Algunos paradigmas evolutivos: Darwin, Lamarck y Baldwin


Principales paradigmas de la computacin evolutiva
Esquema genrico de los algoritmos evolutivos
Operadores genticos y de seleccin. Mecanismos de competicin
Estrategias Evolutivas
Algoritmos Genticos
Programacin Gentica y Evolutiva
Sistemas de Aprendizaje de Clasificacin

Bibliografa
T. Mitchell.
Mitchell. Machine Learning.
Learning. McGrawMcGraw-Hill. 1997.
A.Y.
A.Y. Zomaya (Ed.)
Ed.) Handbook of NatureNature-Inpired and Innovative Computing.
Computing. Springer.
Springer. 2006.
L. Kallel,
Kallel, B. Naudts,
Naudts, A. Rogers (Eds.)
Eds.) Theoretical Aspects of Evolutionary Computing.
Computing.
Springer.
Springer. 2001

Evolucin biolgica: Darwin, Lamarck y Baldwin


Si existen organismos que se reproducen, y
Si la progenie hereda caractersticas de sus progenitores, y
Si existen variaciones de caractersticas y
Si el medio ambiente no admite a todos los miembros de una poblacin en
crecimiento
Entonces aquellos miembros de la poblacin con caractersticas menos adaptadas
(segn lo determine su medio ambiente) morirn con mayor probabilidad y
Entonces aquellos miembros con caractersticas mejor adaptadas sobrevivirn
ms probablemente.
Charles Robert Darwin
(1809-1882)

El resultado de la repeticin de este esquema a lo largo del tiempo es


la evolucin de las especies.

Los individuos pueden adquirir o mejorar caracteres fsicos durante


su vida y stos son transmitidos a su descendencia.
De esta forma, las especies evolucionan acumulando los
caracteres tiles que han adquirido en vida sus antepasados.

Jean Baptiste Lamarck


(1744-1829)

Evolucin biolgica: Darwin, Lamarck y Baldwin


El efecto Baldwin: interrelacin entre aprendizaje y evolucin
si existen cambios en el ambiente, la evolucin tiende a favorecer
individuos con la capacidad de aprender a adaptarse al nuevo
medio ambiente acelerando cambios genticos entre individuos
parecidos
James Mark Baldwin
(1861-1934)

Las tres anteriores teoras han influenciado e inspirado distintos aspectos de la


Computacin Evolutiva

Principales paradigmas de la computacin evolutiva


Estrategias evolutivas
Algoritmos genticos
Programacin gentica
Programacin evolutiva
Sistemas de aprendizaje de clasificacin (Learning Classifier Systems)
Las anteriores aproximaciones tienen en comn algunos aspectos:
(1)
(2)
(3)
(4)
(5)

Participan o se inspiran en algunas teoras biolgicas sobre la evolucin


Incorporan el concepto de poblacin de individuos
Incorporan el concepto de capacidad de un individuo (fitness)
Siguen el ciclo de nacimiento/defuncin de individuos
Incorporan tcnicas para la herencia, la reproduccin, la variacin y la
seleccin/competicin entre individuos

Un esquema genrico para la computacin evolutiva


Resolucin de un problema
Paso 0: Construir una representacin (individuo) para las soluciones
potenciales del problema (codificacin)
t0
Paso 1: Crear aleatoriamente una poblacin inicial de individuos P(t)
Paso 2: Evaluar la capacidad de cada individuo (fitness evaluation)
Paso 3: Si la condicin de terminacin se cumple ir al Paso 5
Paso 4: Aplicar operadores genticos y de seleccin sobre P(t)
(opcionalmente) Aplicar mecanismos de competicin
(opcionalmente) Aplicar algoritmos de bsqueda local
t t+1
Ir al paso 2
Paso 5: (opcionalmente) Si no se reinicia el proceso ir al paso 7
Paso 6: t 0
Generar una poblacin inicial modificada P(t)
Ir al Paso 2
Paso 7: Considerad el mejor individuo de P(t) como la solucin a

De los fenotipos a los genotipos


Dado el problema definiremos F como el espacio de soluciones del problema
(fenotipos) y G como el espacio de soluciones codificadas del problema (genotipos)

x
x1

x2
x3
xn

poblacin inicial

operadores genticos

g es una funcin de codificacin es una funcin de reproduccin


es una funcin de seleccin
es una funcin de reemplazamiento

Operadores Genticos
Recombinacin (crossover)
La recombinacin pretende recoger la informacin almacenada por dos
individuos y transmitirla a un descendiente.
Si tomamos cadenas binarias podemos establecer (entre otras) dos
operaciones
(a) Cruce puntual (point crossover)
10010101101 100101
01101001011 001101
(punto de cruce)

10010101101 001101

(a) Cruce uniforme (uniform crossover)


mscara 001001001001001001
padres 111111111111111111
000000000000000000

110110110110110110

Operadores Genticos
Recombinacin
Si tomamos vectores n-dimensionales podemos establecer (entre otras) las
siguientes operaciones
(x1, x2, , xn)
(padres)
(y1, y2, , yn)

(z1, z2, , zn) (descendiente)

(a) Recombinacin aritmtica

(b) Recombinacin geomtrica

( x + yi )
zi = i
2

zi = xi yi

(c) Recombinacin plana


zi = xi + (1 ) yi
( es un valor aleatorio entre 0 y 1)

(e) Recombinacin borrosa (fuzzy)

(d) Recombinacin BLX-


zi = ri + ( si ri )
ri = min ( xi , yi ) xi yi
si = max ( xi , yi ) xi yi
( y son valores aleatorios entre 0 y 1)

zi = Q( xi , yi )
(Q es una conectiva borrosa)

Operadores Genticos
Mutacin
La mutacin pretende introducir ciertas componentes de aleatoriedad
en las nuevas poblaciones con el fin de favorecer las bsquedas locales
evitando que los algoritmos tiendan a mnimos locales.
(a) En cadenas binarias
1001010110 1 100101

1001010110 0 100101

(punto de mutacin)
(b) En vectores n-dimensionales
zi = xi + N i (0, i )
(Ni(a,b) es una distribucin Gaussiana)

Operadores de seleccin
La seleccin de individuos para poblaciones futuras se basa en un anlisis de
su funcin de capacidad (fitness). La funcin de capacidad es totalmente
dependiente del problema que se est intentando resolver (i.e., en clasificacin
de patrones el nmero de aciertos, en juegos interactivos el nmero de partidas
ganadas, etc.). Una vez evaluada la capacidad de cada individuo podemos
establecer distintos criterios de seleccin. La mayora de ellos se basan en
establecer para cada individuo una probabilidad de ser seleccionado de acuerdo
con la siguiente frmula

pi =

fi

jP

donde P denota la poblacin en curso, i es un individuo de la poblacin y fi es el


valor de su funcin de capacidad.

Operadores de seleccin
Algunos criterios (operadores) de seleccin son los siguientes
Mtodo de la ruleta: Girar la siguiente ruleta para seleccionar al individuo
2
3
4
1
p1
Seleccin mediante ranking: Se ordenan los individuos de acuerdo con su
funcin de capacidad. Se asignan nuevas probabilidades de acuerdo con
el orden preestablecido y se aplica el mtodo de la ruleta.
Seleccin mediante torneo: Se seleccionan k individuos de la poblacin
(aleatoriamente). Se selecciona el mejor de los k individuos.

Mecanismos de competicin
Los mecanismos de competicin se aplican cuando se desea eliminar algunos
individuos de la poblacin con el objetivo de que sta no crezca de forma
incontrolada. Tambin se aplican para refinar ms los mecanismos de seleccin
de forma que sta se haga sobre los mejores individuos. Habitualmente, la
generacin de nuevos individuos reemplazan a una fraccin de individuos de
la poblacin.
Algunos mecanismos de competicin son los siguientes:
Elitismo: Los n individuos mejores (generados o ya existentes) pasan
a la siguiente poblacin.
Truncamiento: Se selecciona un porcentaje de los mejores individuos
a cuyos padres se les aplica los operadores de seleccin
para la siguiente generacin.

Algoritmos de bsqueda local


Los algoritmos de bsqueda local permiten incrementar de forma iterativa
las soluciones que ofrece una poblacin en curso. Se utilizan habitualmente
en los algoritmos genticos.
Algunos algoritmos de bsqueda local son los siguientes:
next ascent bit-climbing
steepest ascent bit-climbing
random bit-climbing
Evolucin Lamarckiana
Efecto Baldwin
(1+1)-ES
random mutation hill-climbing
random walk with uniform distribution
quad search
consecutive exchange

Estrategias Evolutivas
Las estrategias evolutivas fueron desarrolladas a principios de los 60 por
Rechenberg y Schwefel como un mtodo de resolucin de problemas de
optimizacin en ingeniera
Habitualmente trabajan con espacios de genotipos igual a Rn
Se utilizan los siguientes parmetros:
Tamao de la poblacin inicial
Tamao de la poblacin descendente
Tamao de la familia (padres) (1 )
Un individuo de la poblacin se define por el par (x,) donde x es un punto
en el espacio Rn definido por (x1, x2, , xn) y es un vector de desviaciones
definido como (1, 2, , n).

Algunas Estrategias Evolutivas


La estrategia evolutiva (1+1)

Se la conoce tambin como estrategia evolutiva con dos individuos.


En el momento t=0 se genera una poblacin con un nico individuo.
Se genera una poblacin con nico descendiente mediante un operador
de mutacin.
De los dos individuos, se selecciona el que mejor funcin de capacidad obtenga
y se contina hasta satisfacer la condicin de terminacin

Algunas Estrategias Evolutivas


La estrategia evolutiva (+1)

Se parte de una poblacin inicial de > 1 individuos


Se seleccionan aleatoriamente dos individuos de la poblacin y se genera un
descendiente (generalmente a partir de recombinacin)
Se aplica el operador de seleccin para eliminar el peor de los +1 individuos
de la poblacin y se contina hasta satisfacer la condicin de terminacin

Algunas Estrategias Evolutivas


La estrategia evolutiva (+)
Es una generalizacin de la estrategia (+1)
Se parte de una poblacin inicial de > individuos
Se generan individuos a partir de los padres iniciales
(generalmente a partir de recombinacin)
Los individuos nuevos son mutados
Se aplica el operador de seleccin para eliminar los peores individuos de los
+1 existentes en la poblacin y se contina hasta satisfacer la condicin de
terminacin

Algunas Estrategias Evolutivas


La estrategia evolutiva (,)
Es una modificacin de la estrategia (+)
Se parte de una poblacin inicial de individuos
Se generan > individuos a partir de los padres iniciales
(generalmente a partir de recombinacin)
Los individuos nuevos son mutados
Se aplica el operador de seleccin sobre los individuos hasta reducir la nueva
poblacin a y se contina hasta satisfacer la condicin de terminacin

Algunas Estrategias Evolutivas


Otras estrategias evolutivas
En la actualidad se estn explorando nuevas estrategias evolutivas que
combinan las estrategias anteriores. Algunas tcnicas bajo estudio son
las siguientes:
Combinar las sustituciones de las poblaciones y .
Introducir parmetros de caducidad:
Cada individuo tiene una cuota de vida (i.e., dos o tres generaciones)
Cada individuo tiene una cuota de fertilidad
Cada individuo tiene un nmero mximo de antecesores, etc.

10

Algoritmos genticos
Los algoritmos genticos fueron desarrollados a finales de los 60 por
J. Holland y sus colaboradores. Posteriormente, fueron redefinidos por
De Yong, Goldberg, Michalewicz y otros.
El Algoritmo Gentico Simple (SGA) difiere de otras aproximaciones como
las Estrategias Evolutivas o los Algoritmos Evolutivos en los dos siguientes
aspectos:
1. Se utiliza un espacio de bsqueda de genotipos que se representan
como cadenas binarias (Paso 0 del algoritmo)
2. Se utiliza la siguiente secuencia para la seleccin y la aplicacin de
operadores (Paso 4 del algoritmo)
Seleccin estocstica
Recombinacin
Mutacin

Algunas variantes de los algoritmos genticos


SGA con elitismo
GA hbridos
Genitor
CHC

GENOCOP
Criaderos de GA
GAVaPS

Algoritmos de niching

niching
Los algoritmos de niching intentan dar solucin a los problemas relacionados
con
(1) Mantener la diversidad de la poblacin
(2) Converger a varias soluciones
(3) Prevenir una convergencia prematura cuando slo se exige una
solucin
Algunos mecanismos utilizados son los de (1) crowding, (2) fitness sharing,
(3) mating restriction, (4) deterministic crowding, (5) probabilistic crowding,
etc.

11

Programacin gentica
La programacin gentica es una tcnica de optimizacin evolutiva propuesta
inicialmente por Koza en 1992.
Las principales diferencias con otras aproximaciones son:
1. Las soluciones se representan como rboles (Paso 0 del algoritmo)
(que permiten describir programas en LISP, funciones, estructuras
de programacin, etc.)
2. La aplicacin de seleccin y aplicacin de operadores obedece al
siguiente esquema (Paso 4 del algoritmo)
i=0
Repetir
Elegir operador (PS, PC, PM)
Aplicar operador (seleccin, recombinacin, mutacin)
i = i+1
hasta i = n

Programacin evolutiva
La programacin gentica es otra tcnica evolutiva propuesta por Fogel y
sus colaboradores en 1966.
Las principales diferencias con otras aproximaciones son:
1. Las soluciones se representan mediante mquinas de estados
finitos (autmatas) (Paso 0 del algoritmo)
2. No se utiliza recombinacin como operador gentico
(Paso 4 del algoritmo)

El esquema genrico se asimila a una estrategia evolutiva (+) donde se


aplica una mutacin de tipo estadstico (gaussiana) sobre individuos y
la seleccin se realiza mediante torneo.

12

Sistemas de aprendizaje de clasificacin


Bsicamente son sistemas de aprendizaje basado en reglas donde las reglas
se generan y modifican mediante algoritmos genticos.
Actualmente existen dos aproximaciones relevantes:
(1) La aproximacin de Pittsburg (propuesta por Bacardit y Garrel en 2003)
(2) La aproximacin de Michigan
Las principales diferencias con otras aproximaciones son:
1. Las soluciones se representan mediante mquinas de estados
finitos (autmatas) (Paso 0 del algoritmo)
2. No se utiliza recombinacin como operador gentico
(Paso 4 del algoritmo)

13

También podría gustarte