03 Algoritmos Genéticos
03 Algoritmos Genéticos
03.
ALGORITMOS
GENÉTICOS
Gen
Contienen información sobre la herencia, la
genética del individuo y determinan la forma en la
que se comporta y desarrolla. Además, pueden
interactuar entre ellos.
Algoritmos genéticos – Bases biológicas
El gen está construido por los
nucleótidos, los cuales son compuestos
químicos como la adenina, guanina,
citosina y tiamina. La información se
guarda en el gen según la forma como
estos químicos estén combinados y
agrupados.
Los Cromosomas son codificados por un arreglo de bits como se pude ver en la figura
Algoritmos genéticos - Terminología
Genes
Los genes son las "instrucciones" básicas para la construcción de un algoritmo genético. Un cromosoma es
una secuencia de genes, y estos pueden describir una posible solución a un problema, sin realmente ser la
solución. Un gen es una cadena de bits de longitud arbitraria. La cadena de bits es una representación
binaria.
La estructura de cada gen es definida en un registro de parámetros de fenotipo. Los parámetros de
fenotipo son instrucciones que permiten el mapeo entre el genotipo y fenotipo. Esto es, se codifica una
solución dentro de un cromosoma y se decodifica un cromosoma a una solución. La correlación entre
genotipo y fenotipo es necesaria para convertir el conjunto solución del modelo en una forma en que el
AG puede trabajar, y para convertir nuevos individuos del AG en una forma que el modelo puede evaluar.
Algoritmos genéticos - Terminología
Población
Una población es una colección de individuos. Una población consiste en un número de individuos de
prueba, así el fenotipo es un parámetro que delimita a los individuos y la información sobre el espacio de
búsqueda. Los aspectos importantes de la población son:
• La generación de la población inicial.
• El tamaño de la población.
La selección es un método que selecciona al azar los cromosomas de la población según su función de
evaluación. Cuanto mayor sea la función de Aptitud, la oportunidad de un individuo para ser seleccionado
será mayor. Esta presión en la selección es influenciada de tal manera que los mejores individuos son más
favorecidos. Esta presión de selección conduce al AG aun mejor valor de aptitud de la población en las
sucesivas generaciones.
Algoritmos genéticos - Terminología
Métodos de selección:
Selección por ruleta
Propuesto por DeJong, es posiblemente el método más utilizado desde los
orígenes de los Algoritmos Genéticos (Blickle & Thiele, 1995).
A cada uno de los individuos de la población se le asigna una parte
proporcional a su ajuste de una ruleta, de tal forma que la suma de todos
los porcentajes sea la unidad. Los mejores individuos recibirán una
porción de la ruleta mayor que la recibida por los peores. Generalmente,
la población está ordenada en base al ajuste, por lo que las porciones más
grandes se encuentran al inicio de la ruleta. Para seleccionar un individuo
basta con generar un número aleatorio del intervalo [0..1] y devolver el
individuo situado en esa posición de la ruleta.
Es un método muy sencillo pero ineficiente a medida que aumenta el tamaño de la población (su complejidad es O(n 2)).
Presenta además el inconveniente de que el peor individuo puede ser seleccionado más de una vez.
Algoritmos genéticos - Terminología
Métodos de selección:
Selección por torneo
La idea principal de este método de selección consiste en escoger a los individuos genéticos en base a comparaciones
directas entre sus genotipos.
Existen dos versiones de selección mediante torneo, el determinístico y el probabilístico.
En la versión determinística se selecciona al azar un número p de individuos (generalmente se escoge p=2). De entre los
individuos seleccionados se selecciona el más apto para pasarlo a la siguiente generación.
La versión probabilística únicamente se diferencia en el paso de selección del ganador del torneo. En vez de escoger
siempre el mejor se genera un número aleatorio del intervalo [0..1], si es mayor que un parámetro p (fijado para todo el
proceso evolutivo) se escoge el individuo más alto y en caso contrario el menos apto. Generalmente p toma valores en el
rango 0.5 < p ≤ 1.
Algoritmos genéticos - Terminología
Otros métodos de selección:
Esta técnica selecciona al azar uno de los padres de la población. En términos de
Selección aleatoria la ruptura de códigos genéticos, la selección al azar es un poco más disruptiva,
en promedio, con respecto a la selección por rueda de ruleta.
Selección por muestreo El Muestreo universal estocástico asegura una descendencia, que está más cerca de
estocástico universal lo que se requiere que la selección por rueda de ruleta.
Algoritmos genéticos - Terminología
Cruce:
Cruce es el proceso de tomar dos soluciones (Padres) y producir a
partir de ellos un descendiente (hijo). Después del proceso de
selección (reproducción), la población se enriquece con mejores
individuos. La Reproducción hace clones de buenas secuencias pero
no crear nuevos. El operador de cruce se aplica al grupo de individuos
seleccionados con la esperanza de que se crea una mejor
descendencia. Cruce es un operador de recombinación que consiste
de tres pasos:
• El operador de reproducción selecciona al azar un par de dos
cadenas individuales para el apareamiento.
• Un sitio transversal es seleccionado al azar a lo largo de la longitud
de la cadena.
• Finalmente, se intercambian los valores de posición entre las dos
cadenas tras el punto de cruce.
Algoritmos genéticos - Terminología
Métodos de cruce:
Cruce de punto simple
El algoritmo genético tradicional utiliza un punto único para el cruce, donde los dos
cromosomas de apareamiento se cortan una vez en los puntos correspondientes y
las secciones después de los cortes se intercambian.
Si se elige apropiadamente el punto, mejores hijos serán obtenidos combinando buenos padres.
Algoritmos genéticos - Terminología
Métodos de cruce:
Cruce de punto doble
En el cruce de dos puntos, se eligen dos puntos y el contenido entre estos puntos se
intercambia.
La adición de otros puntos de cruce reduce el rendimiento del AG. El problema con la adición de puntos de cruce
adicionales es que los bloques de construcción son más propensos a ser interrumpidos. Sin embargo, una ventaja de
tener más puntos de cruce es que el espacio del problema se puede buscar más a fondo.
Algoritmos genéticos - Terminología
Métodos de cruce:
Cruce multipunto
Hay dos formas de cruce multipunto. El primero es mediante puntos par de sitios
cruzados y el otro mediante puntos impar de sitios cruzados. En el caso de un
número par de sitios cruzados, los sitios cruzados se seleccionan al azar alrededor de
un círculo y la información se intercambia. En el caso de un número impar de sitios
cruzados, siempre se supone un punto de cruce diferente en el comienzo de la
cadena.
Algoritmos genéticos - Terminología
Métodos de cruce:
Cruce uniforme
El cruce uniforme es muy diferente del cruce de N-
puntos. Cada gen en la descendencia se crea
copiando el gen correspondiente de uno u otro
progenitor elegido de acuerdo con una máscara de
cruce binaria generada aleatoriamente de la misma
longitud que los cromosomas. Cuando hay un 1 en la
máscara de cruce, el gen se copia del primer padre, y
donde hay un 0 en la máscara el gen se copia del
segundo padre. Una nueva máscara de cruce se
genera aleatoriamente para cada par de padres. Los
descendientes, por lo tanto, contienen una mezcla de
genes de cada padre. El número de puntos de cruce
efectivos no es fijo, pero tendrá un promedio de L / 2
(donde L es la longitud del cromosoma).
Algoritmos genéticos - Terminología
Métodos de cruce:
Cruces específicos de codificaciones no binarias
Si se emplean genotipos compuestos por valores enteros o reales pueden deinirse otro tipo de
operadores de cruce:
❑Media: el gen de la descendencia toma el valor medio de los genes de los padres. Tiene la
desventaja de que únicamente se genera un descendiente en el cruce de dos padres.
❑Media geométrica: cada gen de la descendencia toma como valor la raíz cuadrada del
producto de los genes de los padres. Presenta el problema añadido de qué signo dar al
resultado si los padres tienen signos diferentes.
❑Extensión: se toma la diferencia existente entre los genes situados en las mismas posiciones
de los padres y se suma al valor más alto o se resta del valor más bajo. Solventa el problema
de generar un único descendiente. Una variante basada en este cruce son los Algoritmos
genéticos de evolución diferencial.
Algoritmos genéticos - Terminología
Mutación:
Introduce nuevas estructuras genéticas en la población
modificando al azar algunos de sus bloques de
construcción. La mutación ayuda a escapar de la
trampa de los mínimos locales y mantiene la diversidad
en la población. También mantiene la reserva genética
diversa, y así asegura la ergodicidad. Se dice que un
espacio de búsqueda es ergódico si existe una
probabilidad no nula de generar cualquier solución de
cualquier estado de población.
La mutación desempeña el papel de recuperar los materiales genéticos perdidos, así como de perturbar
aleatoriamente la información genética. La mutación se ha considerado tradicionalmente como un simple
operador de búsqueda. Si se supone que el cruce explora la solución actual para encontrar mejores,
entonces la mutación ayuda a explorar todo el espacio de búsqueda.
Algoritmos genéticos - Terminología
Mutación:
La mutación más usual es el reemplazo aleatorio. Este consiste en variar aleatoriamente un gen de un
cromosoma. Si se trabaja con codificaciones binarias, consistirá simplemente en negar un bit.
También es posible realizar la mutación intercambiando los valores de dos alelos del cromosoma.
Con otro tipo de codificaciones no binarias existen otras opciones:
❑Incrementar o decrementar a un gen una pequeña cantidad generada aleatoriamente.
❑Multiplicar un gen por un valor aleatorio próximo a 1.
Aunque no es lo más común, existen implementaciones de Algoritmos Genéticos en las que no todos los
individuos tienen los cromosomas de la misma longitud. Esto implica que no todos ellos codifican el
mismo conjunto de variables. En este caso existen mutaciones adicionales como puede ser añadir un
nuevo gen o eliminar uno ya existente.
Algoritmos genéticos - Terminología
EVALUACÍON
Función de aptitud (Fitness) :
La evaluación es una de las fases más importantes de los Algoritmos Genéticos. Se debe implementar una
función (de aptitud) que indique si los individuos de la población representan o no buenas soluciones al
problema planteado.
La función de aptitud establece una medida numérica de la bondad de una solución. puede considerarse
como la probabilidad de que ese individuo sobreviva hasta la edad de reproducción y se reproduzca.
Este procedimiento de evaluación será especíico del dominio del problema en el que se aplica el Algoritmo
Genético
Se pueden diferenciar cuatro tipos de evaluación o
fitness (Koza, 1992):
- Fitness Puro
- Fitness Estandarizado
- Fitness Ajustado
- Fitness Normalizado
Algoritmos genéticos - Terminología
Función de aptitud (Fitness) – Tipo 1:
Fitness Puro: r(i,t)
Es la medida de ajuste establecida en la terminología natural del propio problema.
Algoritmos genéticos - Terminología
Función de aptitud (Fitness) – Tipo 2:
Fitness Estandarizado. s(i,t)
Para solucionar la dualidad ante problemas de minimización o maximización se modiica el ajuste puro de
acuerdo a la siguiente fórmula:
• El tamaño de la población
• La representación de cada individuo
• El número de mezcla (número de padres que se unen para formar
descendencia)
• El proceso de selección de los individuos de la siguiente generación
• El procedimiento de recombinación
• La tasa de mutación
• La composición de la próxima generación
Algoritmos genéticos
Ventajas
• Simplicidad conceptual del mecanismo de exploración.
• Amplia aplicabilidad.
• Superiores a métodos tradicionales en muchos problemas del mundo real.
• Pueden incorporar conocimiento sobre el dominio del problema.
• Pueden hibridizarse con otras técnicas de búsqueda.
• Son robustas a los cambios dinámicos.
• En general, pueden auto-adaptar sus parámetros.
• Explotan de modo natural las ventajas del procesamiento paralelo retornar Mejor
Solución Encontrada.
Algoritmos genéticos
Desventajas
• Para problemas de alta complejidad la función de evaluación puede tornarse demasiado costosa
en términos de tiempo y recursos.
• Puede haber casos en los cuales dependiendo los parámetros que se utilicen para la evaluación el
algoritmo podría no llegar a converger en una solución óptima o bien terminar en una
convergencia prematura con resultados no satisfactorios.
• Se dice que no poseen una buena escalabilidad con la complejidad.
• La "mejor" solución lo es solo en comparación a otras soluciones por lo que no se tiene
demasiado claro un criterio de cuándo detenerse ya que no se cuenta con una solución específica.
• El diseño, la creación de la función de aptitud (fitness) y la selección de los criterios de mutación
entre otros, necesitan de cierta pericia y conocimiento del problema para obtener buenos
resultados.
• Depende enormemente de la representación de secuencia de atributos.
• Muchas operaciones más que otros algoritmos similares.
• Campo aún en estudio.
Algoritmos genéticos: Ilustración de operaciones
Problema.- Solución de sistemas de ecuaciones lineales con algoritmos genéticos
Un sistema de ecuaciones consta de n ecuaciones con m incógnitas. Los coeficientes de las incógnitas Xi están
representados por los valores ai,j, mientras que el término independiente de cada ecuación se representa con el valor bi.
Existen métodos matemáticos que permiten resolver el problema; sin embargo, cuando se incrementa el número de
ecuaciones y el número de incógnitas, esta resolución se complica. Los algoritmos genéticos constituyen una
alternativa que permite determinar si una solución es buena o no, y en qué medida.
Fundamentos de algoritmos genéticos.pdf, pág 33.
Algoritmos genéticos: Ilustración de operaciones
Problema.- Caso específico
Por ejemplo, se tiene el siguiente sistema de ecuaciones lineales
Representación matricial
En este sistema de ecuaciones de m incógnitas, cada individuo genético deberá codificar cada una de esas incógnitas.
Así, un individuo genético válido para la resolución, será:
Para seleccionar, se utiliza el algoritmo de torneo determinístico (p=2), por lo que se selecciona al azar dos individuos,
supóngase los individuos 3 y 8; luego, de estos el que presenta mejor fitness es el individuo 3, por lo que será
seleccionado como primer padre. El segundo padre se seleccionará al azar, por ejemplo el individuo número 7.
Efectuando el cruce en un punto, se tiene
Mejor
fitness que
los padres
Algoritmos genéticos: Ilustración de operaciones
Mutación
Se escoge al azar sobre que descendiente se va efectuar la mutación; supóngase, que se va efectuar sobre el primer
descendiente. Para el proceso, se genera un valor aleatorio en el intervalo [0..1] y, si este es menor que la tasa de
mutación Pm, se procede a la realización de la operación. Supóngase que en este caso se genera un valor de 0.013
que, al ser menor que un supuesto Pm=0.025, implicará que se modificará uno de los genes del individuo seleccionado.
Por ejemplo, suponiendo que se mute el segundo gen, el resultado de dicha mutación podría ser el siguiente:
Algoritmos genéticos: Ilustración de operaciones
Mutación
Una vez aplicados los operadores de cruce y mutación, los descendientes deberán ser
insertados en la población temporal, quedando así:
Algoritmos genéticos: Ilustración de operaciones
Selección – Cruce - Mutación
Se repite el proceso hasta completar la población que constituirá la nueva generación,
lográndose poblaciones similares a: