Escolar Documentos
Profissional Documentos
Cultura Documentos
NACIONAL
ESCUELA SUPERIOR DE CÓMPUTO
REDES NEURONALES
ARTIFICIALES I
Algoritmos Genéticos
Profesor:
M. en .C. José Luis Calderón
Osorno
Antecedentes históricos
• Su nombre se deriva de 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.
ALGORITMOS
Definiciones
ALGORITMOS
Descripción general
ALGORITMOS
Características
ALGORITMOS
Características
ALGORITMOS
Diferencias con otros
métodos
• 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.
ALGORITMOS
Algoritmo genético
básico
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
ALGORITMOS
Puntos a considerar en un
AG básico
• 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).
ALGORITMOS
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).
ALGORITMOS
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.
ALGORITMOS
Operadores genéticos:
CRUZA
Operador que consiste en unir en 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:
ALGORITMOS
Operadores genéticos:
MUTACIÓN
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”:
ALGORITMOS
Operadores genéticos:
REEMPLAZO
ALGORITMOS
SOFTWARE
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/
ALGORITMOS
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.
ALGORITMOS
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.
ALGORITMOS
Dudas ???
Hasta la próxima !!!