Está en la página 1de 30

ALGORITMOS GENTICOS

En lugar de envidiar la naturaleza


debemos emularla Holland

Algoritmos genticos
Algoritmos basados en los principios de la evolucin
natural
Se utilizan en problemas donde no se pueden encontrar
soluciones o estas no son satisfactorias
Funcionamiento bsico:Se genera de forma aleatoria
una poblacin inicial de soluciones potenciales, se entra
en un proceso iterativo que trasforma la poblacin a
travs de:
una evaluacin de las soluciones que forman la
poblacin
seleccin de las mejores y reproduccin
recombinacin de estas formando una nueva
poblacin

Componentes de un algoritmo
gentico
Una representacin gentica de las soluciones del
problema
Una forma de crear una poblacin inicial de soluciones
Una funcin de evaluacin capaz de medir la bondad de
cualquier solucin
Un conjunto de operadores genticos como reglas de
transicin probabilsticas para guiar la bsqueda
El valor de unos parmetros de entrada que el algoritmo
gentico utilizar para guiar su evolucin

Esquema bsico
Procedimiento AG
Inicio
t:=0;
inicializar P(t);
evaluar P(t);
mientras (no condicin de terminacin) hacer
t:=t+1;
reproducir P(t-1) en P(t);
recombinar P(t);
evaluar P(t);
Fin_mientras;
Fin.
Esquema bsico
Representacin
Cadenas binarias (generalmente) de longitud determinada
por el nmero de variables existentes en una solucin y el
nmero de bits necesarios para representarlas;
cromosomas o estructuras



Ejemplo: maximizar f(x)=x
2
(0- 31)
Representacin en binario
Los cromosomas estn compuestos por genes; el valor de
un gen se denomina alelo y a su posicin locus
1 0 1 0
Representacin
Cada iteracin ser una generacin; c
i
t
= (b
i1
t
...b
il
t
)
representa el cromosoma c
i
de la generacin t, b ser un
gen o un elemento del vocabulario elegido.

Podemos representar un individuo X
i
t
en una generacin
determinada t, como la terna:
X
i
t
=(c
i
t
,x
i
t
,f
i
t
)
x
i
t
es la decodificacin del cromosoma (fenotipo) y f
i
t
es
la adecuacin de la solucin
Obtencin de la poblacin inicial
Conjunto de individuos de nmero m, (m parmetro)
P(t)= {X
i
t
,....X
i
t
}
Inicializacin de un individuo X
i
0
consiste en asignar un
valor aleatorio a cada uno de los genes b
ij
0
, con la
decodificacin obtenemos su fenotipo x
i
0
y f
i
0
lo
obtendremos a travs de la funcin de evaluacin.
0 1 1 0 1
1 1 0 0 0
0 1 0 0 0
1 0 0 1 1
m = 4
Funcin de evaluacin
Objetivo: medir la adecuacin de una solucin en una
generacin t

La funcin de evaluacin se corresponde con la funcin
objetivo del problema

Dado un cromosoma c
i
t
, y su fenotipo x
i
t
podemos
obtener su adecuacin f
i
t
como:

f
i
t
=eval(c
i
t
)=f(x
i
t
)


Funcin de evaluacin
Codificacin
c
i

Decodificacin
x
i

Fitness
f
i
01101 13 169
11000 24 576
01000 8 64
10011 19 361
1170
f
i
t
=eval(c
i
t
)=f(x
i
t
) en este caso f(x) =x
2
Operadores Genticos
Reproduccin: Incluye un algoritmo de seleccin y un
algoritmo de muestreo
- El algoritmo de seleccin asigna una probabilidad de
seleccin a cada cromosoma
- El algoritmo de muestreo produce copias de los
cromosomas de la generacin t-1 a la generacin t
Los cromosomas con mayor probabilidad de seleccin se
reproducirn un nmero de veces mayor y tendrn mayor
repercusin en las siguientes generaciones.
Operadores Genticos: seleccin y
muestreo
c
i
c
i

Fitness % del total
01101 13 169 14.4
11000 24 576 49.2
01000 8 64 5.5
10011 19 361 30.9
1170 100
1 copia
0 copias
2 copias
1 copia
Operadores Genticos: esquemas
de seleccin y muestreo
Basado en el rango:
Se mantiene el porcentaje de la poblacin.
Los M peores se substituyen por la descendencia de los mejores.
Diferentes variantes
Rueda de ruleta:
Los cromosomas de la generacin actual en una cantidad
proporcional a su bondad
Seleccin de torneo:
Se escoge aleatoriamente un nmero T de individuos, gana el que
mejor se adapta, se repite hasta obtener el nmero de individuos
deseados
Operadores genticos: rueda de
ruleta
Operadores Genticos: cruce
Cruce:
Dependiendo de una probabilidad inicial, probabilidad
de cruce seleccionamos de forma aleatoria los
cromosomas que van a participar en el apareamiento
A continuacin aplicamos alguna tcnica de cruce, por
ejemplo el cruce simple
1 1 0 0 0
1 0 0 1 1
1 0 0 0 0
1 1 0 1 1
Operadores Genticos: cruce
Cruce de n puntos:
los cromosomas se cortan por n puntos
aleatorios y se intercambia el material gentico
Cruce uniforme:
cada gen se obtiene de la madre o del padre de
forma aleatoria
Operadores Genticos: cruce
Operadores Genticos: mutacin
Mutacin:
Su objetivo es producir diversidad en la poblacin
Teniendo en cuenta una probabilidad, probabilidad de
mutacin, y de forma aleatoria se altera un bit o gen de
un cromosoma



Una vez aplicados los operadores, se evala de nuevo la
poblacin
Operadores Genticos
Parmetros:
Tamao de la poblacin
Nmero de generaciones
Probabilidad de cruce
Probabilidad de mutacin

Ejemplo: valores aceptados para funciones de
optimizacin
Tamao de la poblacin: 50-100
Probabilidad de cruce: 0.60
Probabilidad de mutacin: 0.001
EL problema de la mochila
N objetos para meter en una mochila
Cada objeto i, tiene un pero p
i
, y si se mete en la
mochila produce un beneficio b
i
Objetivo: Llenar la mochila obteniendo el
mximo beneficio:
Maximizar sujeto a

s s n i
i i
x b
1
C x p
n i
i i
s

s s 1
{ } 0 , 0 , 1 , 0 > > e
i i i
p b x
El problema de la mochila
Representacin
X=(x
1
, x
2
,...x
n
) xi pertenece a (0,1)

!! Pueden haber individuos que no cumplen las restriciones!!
Funcin de evaluacin:

si

en otro caso

s s

n i
i i
x b C
1
C x b
n i
i i
>

s s 1

s s n i
i i
x b
1
Problema de la mochila
Con la funcin de evaluacin eliminamos
las soluciones no factibles
Se generan individuos de forma aleatoria
El operador de cruce, se puede usar el
cruce simple
Se puede seguir el esquema general
Fundamentos de AG
Esquema: patrn de similitud que describe un
subconjunto de cadenas con similitudes en ciertas
posiciones
Aumentamos el vocabulario con el smbolo *, en
las posiciones en las que aparece este smbolo
puede haber cualquier elemento del alfabeto
inicial.
Orden de un esquema O(E): nmero de
posiciones fijas en l
Fundamentos de AG
Longitud de un esquema L(E): distancia entre la
primera y la ltima posicin definida en el
esquema
Cada ristra pertenece a todas las regiones
(esquemas) en las cuales aparece cualquiera de
sus bits
El nmero de esquemas procesados tilmente por
un algoritmo gentico que maneje una poblacin
de n individuos es del orden de m
3
. Paralelismo
implcito

Fundamentos de AG
Aplicacin del operador seleccin: La
probabilidad de seleccionar un cromosoma
perteneciente a un esquema E, viene dada por el
cociente entre la adecuacin media de los
representantes de un esquema y la adecuacin
media de la poblacin en un instante t.
m(E,t+1)= m(E,t) . f
pro
(E)/f
pro

m(E,t) nmero de representantes del esquema E
en la generacin t

Fundamentos de AG
Aplicacin del operador cruce:
Si A=B No se destruye ningn esquema
Si el orden del esquema es cero, no ser destruido
nunca
Si la longitud del esquema es uno la probabilidad
de que sea destruido es 1/m-1
Si la longitud del esquema es dos la
probabilidad es 2/m-1. En general L(E)/m-1
Teniendo en cuenta la probabilidad de aplicar el
cruce P
c
L(E)/m-1
Fundamentos de AG
Aplicacin del operador mutacin:
P
m
probabilidad de mutacin, 1-P
m
probabilidad
de que un gen sobreviva
O(E) . P
m
probabilidad de que sobrevivan todos
los de un cromosoma
Si consideramos un esquema por encima de la
media e%, el efecto del operador reproduccin,
en cada generacin los esquemas por encima de
la media reciben un incremento exponencial de
sus representantes
m(E,t+1) = m(E,0)(1+e)
t


Fundamentos de AG
Si consideramos tambin el efecto del operador cruce y
mutacin:
m(E,t+1) >= m(E,t) . (f
pro
(E)/f
pro
). [1-P
c
L(e)/(m-1)-
O(E)P
m

Teorema del esquema:

Los esquemas de longitud corta, orden bajo y adecuacin
por encima de la media reciben un incremento
exponencial en subsiguientes generaciones de un
algoritmo gentico
Fundamentos de AG
Tutoriales
http://geneura.ugr.es/~jmerelo/ie
http://www.cs.qub.ac.uk/~/M.Sullivan/ga/ga_index.html
http://polaris.lcc.uma.es/~ccottap/semEC/
http://cs.felk.cvut.cz/~xobitko/ga/
http://lisisu02.fis.usal.es/~curdoc7/

Se encuentran un tutoriales sobre algoritmos genticos, y
direcciones donde se pueden encontrar algoritmos
simples, con los que se puede jugar cambiando
parmetros del algoritmo