ALGORITMOS GENÉTICOS “En lugar de envidiar la naturaleza
debemos emularla” Holland
Algoritmos genéticos
• Algoritmos basados en los principios de la evolución natural
• Se utilizan en problemas donde no se pueden encontrar soluciones o estas no son satisfactorias
• Funcionamiento básico:Se genera de forma aleatoria una población inicial de soluciones potenciales, se entra en un proceso iterativo que trasforma la población a través de:
– una evaluación de las soluciones que forman la población
– selección de las “mejores” y reproducción – recombinación de estas formando una nueva
población
Componentes de un algoritmo genético
• Una representación genética de las soluciones del problema
• Una forma de crear una población inicial de soluciones
• Una función de evaluación capaz de medir la bondad de cualquier solución
• Un conjunto de operadores genéticos como reglas de transición probabilísticas para guiar la búsqueda
• El valor de unos parámetros de entrada que el algoritmo genético utilizará para guiar su evolución
Esquema básico
Procedimiento AGInicio
t:=0;inicializar P(t);evaluar P(t);mientras (no condición de terminación) hacer
t:=t+1;reproducir P(t-1) en P(t);recombinar P(t);evaluar P(t);
Fin_mientras;Fin.
Esquema básico
Representación
• Cadenas binarias (generalmente) de longitud determinada por el número de variables existentes en una solución y el número de bits necesarios para representarlas; cromosomas o estructuras
• Ejemplo: maximizar f(x)=x2 (0- 31) • Representación en binario• Los cromosomas están compuestos por genes; el valor de
un gen se denomina alelo y a su posición locus
1 0 1 0
Representación
• Cada iteración será una generación; cit = (bi1
t...bilt)
representa el cromosoma ci de la generación t, b será un gen o un elemento del vocabulario elegido.
• Podemos representar un individuo Xit en una generación
determinada t, como la terna:
Xit=(ci
t,xit,fi
t)
• xit es la decodificación del cromosoma (fenotipo) y fi
t es
la adecuación de la solución
Obtención de la población inicial
• Conjunto de individuos de número m, (m parámetro) P(t)= {Xi
t,....Xit}
• Inicialización de un individuo Xi0 consiste en asignar un
valor aleatorio a cada uno de los genes bij0, con la
decodificación obtenemos su fenotipo xi0 y fi
0 lo
obtendremos a través de la función de evaluación.
0 1 1 0 1
1 1 0 0 0
0 1 0 0 0
1 0 0 1 1
m = 4
Función de evaluación
• Objetivo: medir la adecuación de una solución en una generación t
• La función de evaluación se corresponde con la función objetivo del problema
• Dado un cromosoma cit, y su fenotipo xi
t podemos obtener su adecuación fi
t como:
• fit=eval(ci
t)=f(xit)
Función de evaluación
Codificación
ci
Decodificaciónxi
Fitnessfi
01101 13 169
11000 24 576
01000 8 64
10011 19 361
1170
fit=eval(ci
t)=f(xit) en este caso f(x) =x2
Operadores Genéticos
Reproducción: Incluye un algoritmo de selección y un algoritmo de muestreo
El algoritmo de selección asigna una probabilidad de selección a cada cromosoma
El algoritmo de muestreo produce copias de los cromosomas de la generación t-1 a la generación t
Los cromosomas con mayor probabilidad de selección se reproducirán un número de veces mayor y tendrán mayor repercusión en las siguientes generaciones.
Operadores Genéticos: selección y muestreo
ci ciFitness % del total
01101 13 169 14.4
11000 24 576 49.2
01000 8 64 5.5
10011 19 361 30.9
1170 1001 copia
0 copias
2 copias
1 copia
Operadores Genéticos: esquemas de selección y muestreo
• Basado en el rango:
– Se mantiene el porcentaje de la población.
– Los M peores se substituyen por la descendencia de los mejores.
– Diferentes variantes
• Rueda de ruleta:
– Los cromosomas de la generación actual en una cantidad proporcional a su “bondad”
• Selección de torneo:
– Se escoge aleatoriamente un número T de individuos, gana el que mejor se adapta, se repite hasta obtener el número de individuos deseados
Operadores genéticos: rueda de ruleta
Operadores Genéticos: cruce
• Cruce: – Dependiendo de una probabilidad inicial, probabilidad
de cruce seleccionamos de forma aleatoria los cromosomas que van a participar en el apareamiento
– A continuación aplicamos alguna técnica 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 Genéticos: cruce
• Cruce de n puntos: – los cromosomas se cortan por n puntos
aleatorios y se intercambia el material genético
• Cruce uniforme: – cada gen se obtiene de la madre o del padre de
forma aleatoria
Operadores Genéticos: cruce
Operadores Genéticos: mutación
• Mutación:
– Su objetivo es producir diversidad en la población
– Teniendo en cuenta una probabilidad, probabilidad de mutación, y de forma aleatoria se altera un bit o gen de un cromosoma
• Una vez aplicados los operadores, se evalúa de nuevo la población
Operadores Genéticos
• Parámetros: – Tamaño de la población– Número de generaciones– Probabilidad de cruce– Probabilidad de mutación
• Ejemplo: valores aceptados para funciones de optimización– Tamaño de la población: 50-100– Probabilidad de cruce: 0.60– Probabilidad de mutación: 0.001
EL problema de la mochila
• N objetos para meter en una mochila
• Cada objeto i, tiene un pero pi, y si se mete en la mochila produce un beneficio bi
• Objetivo: Llenar la mochila obteniendo el máximo beneficio:
• Maximizar sujeto a ni
ii xb1
Cxpni
ii 1
0,0,1,0 iii pbx
El problema de la mochila
• Representación
X=(x1, x2,...xn) xi pertenece a (0,1)
!! Pueden haber individuos que no cumplen las restriciones!!
• Función de evaluación:
si
en otro caso
ni
ii xbC1
Cxbni
ii 1
ni
ii xb1
Problema de la mochila
• Con la función de evaluación 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: patrón de similitud que describe un subconjunto de cadenas con similitudes en ciertas posiciones
• Aumentamos el vocabulario con el símbolo *, en las posiciones en las que aparece este símbolo puede haber cualquier elemento del alfabeto inicial.
• Orden de un esquema O(E): número de posiciones fijas en él
Fundamentos de AG
• Longitud de un esquema L(E): distancia entre la primera y la última posición definida en el esquema
• Cada ristra pertenece a todas las regiones (esquemas) en las cuales aparece cualquiera de sus bits
• El número de esquemas procesados útilmente por un algoritmo genético que maneje una población de n individuos es del orden de m3. Paralelismo implícito
Fundamentos de AG
• Aplicación del operador selección: La probabilidad de seleccionar un cromosoma perteneciente a un esquema E, viene dada por el cociente entre la adecuación media de los representantes de un esquema y la adecuación media de la población en un instante t.
• m(E,t+1)= m(E,t) . fpro(E)/fpro
• m(E,t) número de representantes del esquema E en la generación t
Fundamentos de AG
• Aplicación del operador cruce:• Si A=B No se destruye ningún 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 Pc L(E)/m-1
Fundamentos de AG
• Aplicación del operador mutación: • Pm probabilidad de mutación, 1-Pm probabilidad de que un
gen sobreviva• O(E) . Pm probabilidad de que sobrevivan todos los de un
cromosoma• Si consideramos un esquema por encima de la media e%,
el efecto del operador reproducción, en cada generación 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 también el efecto del operador cruce y mutación:
• m(E,t+1) >= m(E,t) . (fpro(E)/fpro ). [1-PcL(e)/(m-1)-O(E)Pm
Teorema del esquema:
Los esquemas de longitud corta, orden bajo y adecuación por encima de la media reciben un incremento exponencial en subsiguientes generaciones de un algoritmo genético
Fundamentos de AG
Tutoriales
http://geneura.ugr.es/~jmerelo/iehttp://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 genéticos, y direcciones donde se pueden encontrar algoritmos simples, con los que se puede “jugar” cambiando parámetros del algoritmo
Top Related