1. Sistemas Inteligentes
y Redes Neuronales
(SI01)
Ing. José C. Benítez P.
(versión original de José L. Calderón O.)
(SI01)
Algoritmos Genéticos
Sesión 10
2. Sesión 10. Temas
Algoritmos Genéticos
Antecedentes históricosAntecedentes históricos
DefinicionesDefiniciones
Descripción generalDescripción general
CaracterísticasCaracterísticas
Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P. 2
CaracterísticasCaracterísticas
Diferencias con otros métodosDiferencias con otros métodos
Algoritmo genético básicoAlgoritmo genético básico
Puntos a considerar en un AG básicoPuntos a considerar en un AG básico
OperadoresOperadores genéticosgenéticos
SoftwareSoftware
3. •• Su nombre se deriva porque que están basados en modelosSu nombre se deriva porque que están basados en modelos
de cambio genético en una población de individuosde cambio genético en una población de individuos..
•• Tienen como fundamento losTienen como fundamento los principios de selección naturalprincipios de selección natural
y supervivenciay supervivencia, postulados por Darwin en su libro, postulados por Darwin en su libro El origenEl origen
de las especiesde las especies publicado en 1859.publicado en 1859.
Antecedentes históricosAntecedentes históricos
de las especiesde las especies publicado en 1859.publicado en 1859.
•• Se reconoce aSe reconoce a HollandHolland como su fundador quien, en 1975,como su fundador quien, en 1975,
intuyó la posibilidad de incorporar la semántica de laintuyó la posibilidad de incorporar la semántica de la
evolución natural a procesos de optimizaciónevolución natural a procesos de optimización, surgiendo así, surgiendo así
los principios de esta técnicalos principios de esta técnica..
•• Se encuentran bien descritos en textos deSe encuentran bien descritos en textos de GoldbergGoldberg, Davis,, Davis,
MichalewiczMichalewicz yy ReevesReeves..
3Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.
4. •• LosLos AG puede verse como una familia deAG puede verse como una familia de
procedimientos de búsqueda adaptativos.procedimientos de búsqueda adaptativos.
•• LosLos AG son un método de optimización medianteAG son un método de optimización mediante
procesos de búsqueda.procesos de búsqueda.
DefinicionesDefiniciones
procesos de búsqueda.procesos de búsqueda.
•• ElEl AlgoritmoAlgoritmo GenéticoGenético es un proceso de cómputo quees un proceso de cómputo que
emula la forma de actuar de la evolución biológicaemula la forma de actuar de la evolución biológica..
4Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.
5. •• La idea básica esLa idea básica es generargenerar un conjunto con algunas de lasun conjunto con algunas de las
posibles soluciones. Cada PS va a ser llamadaposibles soluciones. Cada PS va a ser llamada individuoindividuo, y a, y a
dicho conjunto se le denominarádicho conjunto se le denominará poblaciónpoblación..
•• Cada individuo tiene una información asociada a él.Cada individuo tiene una información asociada a él. TieneTiene
asociada unaasociada una función de adaptaciónfunción de adaptación queque determina el gradodetermina el grado
Descripción generalDescripción general
asociada unaasociada una función de adaptaciónfunción de adaptación queque determina el gradodetermina el grado
de adaptación de un individuo. A dicha información se lde adaptación de un individuo. A dicha información se lee
denominadenomina código genéticocódigo genético..
•• Las características de los individuos, sean beneficiosas o no, seLas características de los individuos, sean beneficiosas o no, se
van a denominarvan a denominar fenotiposfenotipos. La información asociada a un. La información asociada a un
individuo se compone de partes indivisibles denominadosindividuo se compone de partes indivisibles denominados
cromosomascromosomas..
5Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.
6. •• Un fenotipo puede estar en más de un cromosoma, en cuyoUn fenotipo puede estar en más de un cromosoma, en cuyo
caso puede ser que el hijo herede un fenotipo que no tenía nicaso puede ser que el hijo herede un fenotipo que no tenía ni
el padre ni la madre, sino una combinación de ambos.el padre ni la madre, sino una combinación de ambos.
Descripción generalDescripción general
•• En caso de que el hijo tenga parte de los genes del padre yEn 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,parte de los genes de la madre que intervienen en un fenotipo,
se va a crear una característica nueva asociada a ese fenotipo.se va a crear una característica nueva asociada a ese fenotipo.
6Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.
7. •• SonSon algoritmos estocásticosalgoritmos estocásticos, es decir, d, es decir, dos ejecuciones distintasos ejecuciones distintas
pueden dar dos soluciones distintas.pueden dar dos soluciones distintas.
•• SonSon algoritmos de búsqueda múltiplealgoritmos de búsqueda múltiple, luego dan varias, luego dan varias
soluciones.soluciones.
•• SSonon algoritmos que hacen una barrida mayor alalgoritmos que hacen una barrida mayor al subespaciosubespacio dede
CaracterísticasCaracterísticas
•• SSonon algoritmos que hacen una barrida mayor alalgoritmos que hacen una barrida mayor al subespaciosubespacio dede
posibles soluciones válidasposibles soluciones válidas..
•• AA diferencia de los otros algoritmos, cuya convergencia ydiferencia de los otros algoritmos, cuya convergencia y
resultado final son fuertemente dependientes de la posiciónresultado final son fuertemente dependientes de la posición
inicial,inicial, la convergencia del algoritmola convergencia del algoritmo genéticogenético es poco sensiblees poco sensible
a la población iniciala la población inicial si esta se escoge de forma aleatoria y es losi esta se escoge de forma aleatoria y es lo
suficientemente grande.suficientemente grande.
7Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.
8. •• Por su grado de penetración casi nulo, la curva dePor su grado de penetración casi nulo, la curva de
convergencia asociada al algoritmo presenta unaconvergencia asociada al algoritmo presenta una convergenciaconvergencia
excepcionalmente rápida al principioexcepcionalmente rápida al principio, que casi enseguida se, que casi enseguida se
bloquea. Esto de debe a que el algoritmo genético es excelentebloquea. Esto de debe a que el algoritmo genético es excelente
descartandodescartando sub espaciossub espacios realmente malos.realmente malos.
CaracterísticasCaracterísticas
descartandodescartando sub espaciossub espacios realmente malos.realmente malos.
•• La optimizaciónLa optimización es función de la representación de los datoses función de la representación de los datos..
•• Es unaEs una búsqueda pbúsqueda pparamétricamenteparamétricamente robustarobusta. Esto quiere. Esto quiere
decir quedecir que sólo si sesólo si se escoge realmente mal los parámetros delescoge realmente mal los parámetros del
algoritmoalgoritmo, éste no va a converger, éste no va a converger..
8Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.
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.
Diferencias con otros métodosDiferencias con otros métodos
• 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.
9Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.
10. PROCEDIMIENTO AG
tiempo = 0
inicializa_población(tiempo)
evalúa_población(tiempo)
mientras no condición_de_terminación
Algoritmo genético básicoAlgoritmo genético básico
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
10Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.
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
Puntos a considerar en un AG básicoPuntos a considerar en un AG básico
• 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).
11Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.
12. Puntos a considerar en un AG básicoPuntos a considerar en un AG básico
•• CriterioCriterio de paro.de paro. Normalmente cuando un porcentaje altoNormalmente cuando un porcentaje alto
de la población converge a un valor. Si con ese valor no sede la población converge a un valor. Si con ese valor no se
llega a la medida esperadllega a la medida esperadaa, entonces se toma una pequeña, entonces se toma una pequeña
proporción y se inyectaproporción y se inyecta ””diversidad genética'' (se generandiversidad genética'' (se generan
aleatoriamente nuevos individuos), o inclusive se reemplazaaleatoriamente nuevos individuos), o inclusive se reemplaza
completamente la población.completamente la población.completamente la población.completamente la población.
•• OperadoresOperadores genéticos.genéticos. Los principales son:Los principales son:
CruzaCruza (crossover(crossover),),
MMutaciónutación,,
SelecciónSelección ((algunos autores lo consideran como tal) yalgunos autores lo consideran como tal) y
ReemplazoReemplazo (aunque existen más).(aunque existen más).
12Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.
13. Operadores genéticos:Operadores genéticos: SELECCIÓNSELECCIÓ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.
13Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.
14. Operador queOperador que consisteconsiste en uniren unir de algunade alguna forma losforma los
cromosomas de dos padres para formar dos descendientes.cromosomas de dos padres para formar dos descendientes.
Lo más sencillo esLo más sencillo es implementarimplementar cruza de un puntocruza de un punto, que toma, que toma
dos individuosdos individuos y corta sus cromosomas en una posicióny corta sus cromosomas en una posición
seleccionada al azar, para producir dos segmentos anteriores yseleccionada al azar, para producir dos segmentos anteriores y
dos posteriores, los posteriores se intercambian para obtenerdos posteriores, los posteriores se intercambian para obtener
Operadores genéticos:Operadores genéticos: CRUZACRUZA
dos posteriores, los posteriores se intercambian para obtenerdos posteriores, los posteriores se intercambian para obtener
dos cromosomas nuevosdos cromosomas nuevos, como se ve en la siguiente figura:, como se ve en la siguiente figura:
14Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.
15. Se encarga de modificar en forma aleatoria uno o más genesSe encarga de modificar en forma aleatoria uno o más genes
del cromosoma de un descendiente.del cromosoma de un descendiente.
La siguiente figura muestra el quinto gen siendo mutado, a loLa siguiente figura muestra el quinto gen siendo mutado, a lo
que se conoce como “mutación sencilla”:que se conoce como “mutación sencilla”:
Operadores genéticos:Operadores genéticos: MUTACIÓNMUTACIÓN
que se conoce como “mutación sencilla”:que se conoce como “mutación sencilla”:
15Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.
16. Es el método por el cual se insertan los hijos en la población,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 opor ejemplo mediante la eliminación del individuo más débil o
al azaral azar..
Operadores genéticos:Operadores genéticos: REEMPLAZOREEMPLAZO
16Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.
17. Existen varios paquetes y bibliotecas de algoritmos genéticos en elExisten varios paquetes y bibliotecas de algoritmos genéticos en el
mercado, a continuación se presentan algunos:mercado, a continuación se presentan algunos:
GAGSGAGS
GeneradorGenerador dede aplicacionesaplicaciones basadasbasadas enen algoritmosalgoritmos genéticos,genéticos, escritoescrito
enen C++C++.. DesarrolladoDesarrollado porpor elel grupogrupo dede JJ..JJ.. MeleroMelero..
DirecciónDirección primariaprimaria:: kalkal--elel..ugrugr..es/gagses/gags..htmlhtml
SOFTWARESOFTWARE
DirecciónDirección primariaprimaria:: kalkal--elel..ugrugr..es/gagses/gags..htmlhtml
DirecciónDirección parapara descargardescargar víavía FTPFTP::kalkal--elel..ugrugr..es/GAGS/es/GAGS/..
GALIBGALIB
BibliotecaBiblioteca dede algoritmosalgoritmos genéticosgenéticos dede MatthewMatthew.. ConjuntoConjunto dede clasesclases
enen C++C++ dede algoritmosalgoritmos genéticosgenéticos..
DirecciónDirección primariaprimaria:: lancetlancet..mitmit..edu/edu/gaga//
DirecciónDirección parapara descargardescargar víavía FTPFTP::lancetlancet..mitmit..edu/pub/edu/pub/gaga//
17Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.
18. SOFTWARESOFTWARE
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.
18Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.
19. SOFTWARESOFTWARE
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/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.
19Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.
20. TAREATAREA
1. Describir una herramientas para programación genética
2. Mostrar la aplicación de una herramienta para PG.
PresentaciónPresentación::PresentaciónPresentación::
El desarrollo de esta tarea debe colocarse en su Carpeta personal
del Dropbox.
PlazoPlazo dede entregaentrega::
Viernes: 07/05/16 hasta las 18:30 hrs.
20Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P.
21. Sesión 10. Algoritmos Genéticos
Sistemas Inteligentes y Redes Neuronales
Sistemas Inteligentes y Redes Neuronales - Prof. Ing. José C. Benítez P. 21