1. Ing. José C. Benítez P.
(basado en Algoritmos Genéticos (Calderón, 2009))
Inteligencia Artificial y Sistemas Expertos
(CT12)
Algoritmos Genéticos
Sesión 10
2. Sesión 10. Temas
Algoritmos Genéticos
Antecedentes históricos
Definiciones
Descripción general
Características
Diferencias con otros métodos
Algoritmo genético básico
Puntos a considerar en un AG básico
Operadores genéticos
Software
3. • Su nombre se deriva porque que están basados en modelos
de cambio genético en una población de individuos.
• Tienen como fundamento los principios de selección natural
y supervivencia, postulados por Darwin en su libro El origen
de las especies publicado en 1859.
• Se reconoce a Holland como su fundador quien, en 1975,
intuyó la posibilidad de incorporar la semántica de la
evolución natural a procesos de optimización, surgiendo así
los principios de esta técnica.
• Se encuentran bien descritos en textos de Goldberg, Davis,
Michalewicz y Reeves.
Antecedentes históricos
4. • Los AG puede verse como una familia de
procedimientos de búsqueda adaptativos.
• Los AG son un método de optimización mediante
procesos de búsqueda.
• El Algoritmo Genético es un proceso de cómputo que
emula la forma de actuar de la evolución biológica.
Definiciones
5. • La idea básica es generar un conjunto con algunas de las
posibles soluciones. Cada PS va a ser llamada individuo, y a
dicho conjunto se le denominará población.
• Cada individuo tiene una información asociada a él. Tiene
asociada una función de adaptación que determina el grado
de adaptación de un individuo. A dicha información se le
denomina código genético.
• Las características de los individuos, sean beneficiosas o no, se
van a denominar fenotipos. La información asociada a un
individuo se compone de partes indivisibles denominados
cromosomas.
Descripción general
6. • Un fenotipo puede estar en más de un cromosoma, en cuyo
caso puede ser que el hijo herede un fenotipo que no tenía ni
el padre ni la madre, sino una combinación de ambos.
• En caso de que el hijo tenga parte de los genes del padre y
parte de los genes de la madre que intervienen en un fenotipo,
se va a crear una característica nueva asociada a ese fenotipo.
Descripción general
7. • Son algoritmos estocásticos, es decir, dos ejecuciones distintas
pueden dar dos soluciones distintas.
• Son algoritmos de búsqueda múltiple, luego dan varias
soluciones.
• Son algoritmos que hacen una barrida mayor al subespacio de
posibles soluciones válidas.
• A diferencia de los otros algoritmos, cuya convergencia y
resultado final son fuertemente dependientes de la posición
inicial, la convergencia del algoritmo genético es poco sensible
a la población inicial si esta se escoge de forma aleatoria y es lo
suficientemente grande.
Características
8. • Por su grado de penetración casi nulo, la curva de
convergencia asociada al algoritmo presenta una convergencia
excepcionalmente rápida al principio, que casi enseguida se
bloquea. Esto de debe a que el algoritmo genético es excelente
descartando sub espacios realmente malos.
• La optimización es función de la representación de los datos.
• Es una búsqueda pparamétricamente robusta. Esto quiere
decir que sólo si se escoge realmente mal los parámetros del
algoritmo, éste no va a converger.
Características
9. • Trabajan con un conjunto de parámetros codificados
y no con los parámetros mismos.
• Inician la búsqueda desde un conjunto de puntos, no
de uno solo.
• Usan una función a optimizar en lugar de la derivada
u otro conocimiento adicional.
• Usan reglas de transición probabilísticas no
determinísticas.
Diferencias con otros métodos
10. PROCEDIMIENTO AG
tiempo = 0
inicializa_población(tiempo)
evalúa_población(tiempo)
mientras no condición_de_terminación
tiempo = tiempo + 1
construye_población(tiempo) a partir de población(tiempo – 1) usando
selección
modifica_población(tiempo) usando operadores genéticos
evalúa_población(tiempo)
reemplazar
fin mientras
Algoritmo genético básico
11. • Codificación de los parámetros de un problema.
• Función de aptitud. Es base para determinar qué individuos
(soluciones) tienen mayor o menor probabilidad de sobrevivir.
• Criterios de tamaño de población. Balance entre una población
muy pequeña (convergencia a un máximo local) y una
población muy grande (mayor utilización de recursos
computacionales).
• Criterio de selección. Los individuos son escogidos de acuerdo a
su aptitud. Los más aptos tienen mayor probabilidad de
contribuir con una o más copias en la siguiente generación
(simulación de la selección natural).
Puntos a considerar en un AG básico
12. Puntos a considerar en un AG básico
• Criterio de paro. Normalmente cuando un porcentaje alto
de la población converge a un valor. Si con ese valor no se
llega a la medida esperada, entonces se toma una pequeña
proporción y se inyecta ”diversidad genética'' (se generan
aleatoriamente nuevos individuos), o inclusive se reemplaza
completamente la población.
• Operadores genéticos. Los principales son:
Cruza (crossover),
Mutación,
Selección (algunos autores lo consideran como tal) y
Reemplazo (aunque existen más).
13. Operadores genéticos: SELECCIÓN
Proceso que escoge los miembros de la población que serán
utilizados para la reproducción. Su meta es dar más
oportunidades de selección a los miembros más aptos de la
población.
Lo más común es implementar una “ruleta con truco” para elegir
a los individuos, donde los más aptos tienen una mayor parte en
la ruleta, por lo tanto, más probabilidad de ser escogidos.
Existen otros métodos como el “torneo” en que dos individuos
son elegidos aleatoriamente y se escoge al más apto.
14. Operador que consiste en unir de alguna forma los
cromosomas de dos padres para formar dos descendientes.
Lo más sencillo es implementar cruza de un punto, que toma
dos individuos y corta sus cromosomas en una posición
seleccionada al azar, para producir dos segmentos anteriores y
dos posteriores, los posteriores se intercambian para obtener
dos cromosomas nuevos, como se ve en la siguiente figura:
Operadores genéticos: CRUZA
15. Se encarga de modificar en forma aleatoria uno o más genes
del cromosoma de un descendiente.
La siguiente figura muestra el quinto gen siendo mutado, a lo
que se conoce como “mutación sencilla”:
Operadores genéticos: MUTACIÓN
16. Es el método por el cual se insertan los hijos en la población,
por ejemplo mediante la eliminación del individuo más débil o
al azar.
Operadores genéticos: REEMPLAZO
17. Existen varios paquetes y bibliotecas de algoritmos genéticos en el
mercado, a continuación se presentan algunos:
GAGS
Generador de aplicaciones basadas en algoritmos genéticos, escrito
en C++. Desarrollado por el grupo de J.J. Melero.
Dirección primaria: kal-el.ugr.es/gags.html
Dirección para descargar vía FTP:kal-el.ugr.es/GAGS/.
GALIB
Biblioteca de algoritmos genéticos de Matthew. Conjunto de clases
en C++ de algoritmos genéticos.
Dirección primaria: lancet.mit.edu/ga/
Dirección para descargar vía FTP:lancet.mit.edu/pub/ga/
SOFTWARE
18. SOFTWARE
GPDATA
Para desarrollar algoritmos genéticos en C++.
Dirección primaria:cs.ucl.ac.uk/genetic/papers/
Dirección para descargar vía FTP:
ftp.cs.bham.ac.uk/pub/authors/W.B.Langdon/gp-code/
GPJPP
Bibliotecas de clases para desarrollar algoritmos genéticos
en Java
Dirección primaria: www.turbopower.com/~ kimk/gpjpp.asp.
19. SOFTWARE
LIL-GP
Herramientas para programación genética en C.
Dirección primaria: isl.msu.edu/GA/software/lil-gp/index.html
Dirección para descargar vía FTP: isl.cps.msu.edu/pub/GA/lilgp/
GPsys
Sistema de programación genética en Java.
Dirección primaria: www.cs.ucl.ac.uk/staff/A.Qureshi/gpsys.html.
20. TAREA
1. Describir una herramientas para programación genética
2. Mostrar la aplicación de una herramienta para PG.
Presentación:
El desarrollo de esta tarea debe presentarse impreso y además
debe colocarse una copia en su Carpeta personal del Dropbox.
Plazo de entrega:
En la última sesión de aprendizaje.