21
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

Utp i_ay_se_s10_algoritmo genéticos_

Embed Size (px)

Citation preview

Page 1: Utp i_ay_se_s10_algoritmo genéticos_

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

Page 2: Utp i_ay_se_s10_algoritmo genéticos_

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

Page 3: Utp i_ay_se_s10_algoritmo genéticos_

• 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

Page 4: Utp i_ay_se_s10_algoritmo genéticos_

• 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

Page 5: Utp i_ay_se_s10_algoritmo genéticos_

• 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

Page 6: Utp i_ay_se_s10_algoritmo genéticos_

• 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

Page 7: Utp i_ay_se_s10_algoritmo genéticos_

• 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

Page 8: Utp i_ay_se_s10_algoritmo genéticos_

• 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

Page 9: Utp i_ay_se_s10_algoritmo genéticos_

• 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

Page 10: Utp i_ay_se_s10_algoritmo genéticos_

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

Page 11: Utp i_ay_se_s10_algoritmo genéticos_

• 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

Page 12: Utp i_ay_se_s10_algoritmo genéticos_

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).

Page 13: Utp i_ay_se_s10_algoritmo genéticos_

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.

Page 14: Utp i_ay_se_s10_algoritmo genéticos_

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

Page 15: Utp i_ay_se_s10_algoritmo genéticos_

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

Page 16: Utp i_ay_se_s10_algoritmo genéticos_

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

Page 17: Utp i_ay_se_s10_algoritmo genéticos_

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, escritoen 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 clasesen 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

Page 18: Utp i_ay_se_s10_algoritmo genéticos_

SOFTWAREGPDATA

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.

Page 19: Utp i_ay_se_s10_algoritmo genéticos_

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.

Page 20: Utp i_ay_se_s10_algoritmo genéticos_

TAREA1. 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ásdebe colocarse una copia en su Carpeta personal del Dropbox.

Plazo de entrega:En la última sesión de aprendizaje.

Page 21: Utp i_ay_se_s10_algoritmo genéticos_

Sesión 10. Algoritmos Genéticos

Inteligencia Artificial y Sistemas Expertos

http://utpiayse.blogspot.com