algoritmos geneticos

9
UNAM FESC INGENIERÍA QUÍMICA TEMAS SELECTOS DE INTELIGENCIA ARTIFICIAL II JAIR CADENAS LÁZARO ALGORITMOS GENÉTICOS Los objetivos que perseguían John Holland y sus colegas de la Universidad de Michigan cuando concibieron los algoritmos genéticos, eran dos: (1) abstraer y explicar rigurosamente el proceso adaptativo de los sistemas naturales, y (2) diseñar sistemas artificiales que retuvieran los mecanismos más importantes de los sistemas naturales. En este sentido, podemos decir que los algoritmos genéticos son Algoritmos de búsqueda basados en los mecanismos de selección natural y genética natural. Combinan la supervivencia de los más compatibles entre las estructuras de cadenas, con una estructura de información ya aleatorizada, intercambiada para construir un algoritmo de búsqueda con algunas de las capacidades de innovación de la búsqueda humana. Básicamente, el Algoritmo Genético funciona como sigue: en cada generación, se crea un conjunto nuevo de “criaturas artificiales” (cadenas) utilizando bits y partes más adecuadas del progenitor. Esto involucra un proceso aleatorio que no es, en absoluto, simple. La novedad que introducen los Algoritmos Genéticos es que explotan eficientemente la información histórica para especular sobre nuevos puntos de búsqueda, esperando un funcionamiento mejorado. Fueron desarrollados por John Holland y Rechemberg que crearon algoritmos de optimización imitando los principios básicos de la naturaleza. Estos algoritmos se utilizan con éxito para gran variedad de problemas que no permiten una solución eficiente a través de la aplicación de técnicas convencionales. Tiene asimismo aplicaciones variadas en ingeniería, como es el diseño de piezas (turbinas, rotores, etc.), diseño y control de redes, planificación de tareas, síntesis de mecanismos, diseño de tolerancias, etc. y aplicaciones en otros gremios como en sistemas de computación paralelos (paralelización automática de programas

Upload: jx-kdnas

Post on 08-Nov-2015

6 views

Category:

Documents


1 download

DESCRIPTION

Algoritmos geneticos

TRANSCRIPT

UNAM FESCINGENIERA QUMICATEMAS SELECTOS DE INTELIGENCIA ARTIFICIAL IIJAIR CADENAS LZAROALGORITMOS GENTICOS

Los objetivos que perseguan John Holland y sus colegas de la Universidad de Michigan cuando concibieron los algoritmos genticos, eran dos: (1) abstraer y explicar rigurosamente el proceso adaptativo de los sistemas naturales, y (2) disear sistemas artificiales que retuvieran los mecanismos ms importantes de los sistemas naturales. En este sentido, podemos decir que los algoritmos genticos sonAlgoritmos de bsqueda basados en los mecanismos de seleccin natural y gentica natural. Combinan la supervivencia de los ms compatibles entre las estructuras de cadenas, con una estructura de informacin ya aleatorizada, intercambiada para construir un algoritmo de bsqueda con algunas de las capacidades de innovacin de la bsqueda humana.Bsicamente, el Algoritmo Gentico funciona como sigue: en cada generacin, se crea un conjunto nuevo de criaturas artificiales (cadenas) utilizando bits y partes ms adecuadas del progenitor. Esto involucra un proceso aleatorio que no es, en absoluto, simple. La novedad que introducen los Algoritmos Genticos es que explotan eficientemente la informacin histrica para especular sobre nuevos puntos de bsqueda, esperando un funcionamiento mejorado.Fueron desarrollados por John Holland y Rechemberg que crearon algoritmos de optimizacin imitando los principios bsicos de la naturaleza. Estos algoritmos se utilizan con xito para gran variedad de problemas que no permiten una solucin eficiente a travs de la aplicacin de tcnicas convencionales.Tiene asimismo aplicaciones variadas en ingeniera, como es el diseo de piezas (turbinas, rotores, etc.), diseo y control de redes, planificacin de tareas, sntesis de mecanismos, diseo de tolerancias, etc. y aplicaciones en otros gremios como en sistemas de computacin paralelos (paralelizacin automtica de programas secuenciales), qumica (optimizacin de procesos de produccin, diseo tecnolgico y de instalaciones), negocios y comercio (modelizacin de sistemas econmicos complejos, prediccin de mercados), medicina (anlisis de datos en medicina, diagnstico automtico) o gestin (anlisis de datos en gestin, asistentes de gestin, sistemas automticos de decisin).Codificacin de ProblemasCualquier solucin potencial a un problema puede ser presentada dando valores a una serie de parmetros. El conjunto de todos los parmetros (genes en la terminologa de Algoritmos Gen ticos) se codifica en una cadena de valores denominada cromosoma.El conjunto de los parmetros representado por un cromosoma particular recibe el nombre de genotipo. El genotipo contiene la informacin necesaria para la construccin del organismo, es decir, la solucin real al problema, denominada fenotipo. Por ejemplo, en trminos biolgicos, la informacin gentica contenida en el ADN de un individuo seria el genotipo, mientras que la expresin de ese ADN (el propio individuo) sera el fenotipo.Desde los primeros trabajos de John Holland la codificacin suele hacerse mediante valores binarios. Se asigna un determinado nmero de bits a cada parmetro y se realiza una discretizacion de la variable representada por cada gen. El nmero de bits asignados depender del grado de ajuste que se desee alcanzar. Evidentemente no todos los parmetros tienen porque estar codificados con el mismo nmero de bits. Cada uno de los bits pertenecientes a un gen suele recibir el nombre de alelo.Sin embargo, tambin pueden existir representaciones que codifiquen directamente cada parmetro con un valor entero, real o en punto flotante. A pesar de que se acusa a estas representaciones de degradar el paralelismo implcito de las representaciones binarias, permiten el desarrollo de operadores gen ticos ms especficos al campo de aplicacin del Algoritmo Gentico.La eleccin de la codificacin depender tambin del problema a resolver pues puede darse la situacin en la que la resolucin de un caso sea ms ptimo el uso de una codificacin basada en nmeros reales mientras que esa codificacin complique la solucin en otro caso. As pues hay que estudiar la codificacin ms ptima segn el caso que se est estudiando.Un ejemplo tpico de la aplicacin de los Algoritmos Genticos es la optimizacin de los pesos de una red de neuronas artificiales. La codificacin de la red en forma de cromosoma (fig. 4) es tan sencilla como asignar un gen del cromosoma a cada uno de los pesos de la red. Tambin se podran aadir genes que indicasen el nmero de capas de la red, y el nmero de elementos de procesado en cada capa.Operadores GenticosPara el paso de una generacin a la siguiente se aplican una serie de operadores genticos. Los ms empleados son los operadores de seleccin, cruce, copia y mutacin. En el caso de no trabajar con una poblacin intermedia temporal tambin cobran relevancia los algoritmos de reemplazo.1. SeleccinLos algoritmos de seleccin sern los encargados de escoger que individuos van a disponer de oportunidades de reproducirse y cules no. Puesto que se trata de imitar lo que ocurre en la naturaleza, se ha de otorgar un mayor nmero de oportunidades de reproduccin a los individuos ms aptos. Por lo tanto la seleccin de un individuo estar relacionada con su valor de ajuste. No se debe sin embargo eliminar por completo las opciones de reproduccin de los individuos menos aptos, pues en pocas generaciones la poblacin se volvera homognea.Una opcin bastante comn consiste en seleccionar el primero de los individuos participantes en el cruce mediante alguno de los mtodos expuestos a continuacin y el segundo de manera aleatoria.1.1. Seleccin por ruletaPropuesto por DeJong, es posiblemente el mtodo ms utilizado desde los orgenes de los Algoritmos Gen ticos [Blickle and Thiele, 1995]. A cada uno de los individuos de la poblacin 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 recibirn una porcin de la ruleta mayor que la recibida por los peores. Generalmente la poblacin est ordenada en base al ajuste por lo que las porciones ms grandes se encuentran al inicio de la ruleta. Para seleccionar un individuo basta con generar un nmero aleatorio del intervalo [0...1] y devolver el individuo situado en esa posicin de la ruleta. Esta posicin se suele obtener recorriendo los individuos de la poblacin y acumulando sus proporciones de ruleta hasta que la suma exceda el valor obtenido.Es un mtodo muy sencillo, pero ineficiente a medida que aumenta el tamao de la poblacin (su complejidad es O(n2)). Presenta adems el inconveniente de que el peor individuo puede ser seleccionado ms de una vez.1.2. Seleccin por torneoLa idea principal de este mtodo consiste en realizar la seleccin en base a comparaciones directas entre individuos. Existen dos versiones de seleccin mediante torneo: Determinstica ProbabilsticaEn la versin determinstica se selecciona al azar un nmero p de individuos (generalmente se escoge p = 2). De entre los individuos seleccionados se selecciona el ms apto para pasarlo a la siguiente generacin.La versin probabilstica nicamente se diferencia en el paso de seleccin del ganador del torneo. En vez de escoger siempre el mejor se genera un nmero aleatorio del intervalo [0..1], si es mayor que un parmetro p (fijado para todo el proceso evolutivo) se escoge el individuo ms alto y en caso contrario el menos apto. Generalmente p toma valores en el rango 0,5 < p 1.Variando el nmero de individuos que participan en cada torneo se puede modificar la presin de seleccin. Cuando participan muchos individuos en cada torneo, la presin de seleccin es elevada y los peores individuos apenas tienen oportunidades de reproduccin. Un caso particular es el elitismo global. Se trata de un torneo en el que participan todos los individuos de la poblacin con lo cual la seleccin se vuelve totalmente determinstica. Cuando el tamao del torneo es reducido, la presin de seleccin disminuye y los peores individuos tienen ms oportunidades de ser seleccionados.Elegir uno u otro mtodo de seleccin determinara la estrategia de bsqueda del Algoritmo Gentico. Si se opta por un mtodo con una alta presin de seleccin se centra la bsqueda de las soluciones en un entorno prximo a las mejores soluciones actuales. Por el contrario, optando por una presin de seleccin menor se deja el camino abierto para la exploracin de nuevas regiones del espacio de bsqueda.Existen muchos otros algoritmos de seleccin. Unos buscan mejorar la eficiencia computacional, otros el nmero de veces que los mejores o peores individuos pueden ser seleccionados. Algunos de estos algoritmos son muestreo determinstico, escalamiento sigma, seleccin por jerarquas, estado uniforme, sobrante estocstico, brecha generacional, etc.2. CruceUna vez seleccionados los individuos, estos son recombinados para producir la descendencia que se insertara en la siguiente generacin. Tal y como se ha indicado anteriormente el cruce es una estrategia de reproduccin sexual. Su importancia para la transicin entre generaciones es elevada puesto que las tasas de cruce con las que se suele trabajar rondan el 90%.Los diferentes mtodos de cruce podrn operar de dos formas diferentes. Si se opta por una estrategia destructiva los descendientes se insertarn en la poblacin temporal aunque sus padres tengan mejor ajuste (trabajando con una nica poblacin esta comparacin se realizar con los individuos a reemplazar). Por el contrario utilizando una estrategia no destructiva la descendencia pasar a la siguiente generacin nicamente si supera la bondad del ajuste de los padres (o de los individuos a reemplazar). La idea principal del cruce se basa en que, si se toman dos individuos correctamente adaptados al medio y se obtiene una descendencia que comparta genes de ambos, existe la posibilidad de que los genes heredados sean precisamente los causantes de la bondad de los padres.Al compartir las caractersticas buenas de dos individuos, la descendencia, o al menos parte de ella, debera tener una bondad mayor que cada uno de los padres por separado. Si el cruce no agrupa las mejores caractersticas en uno de los hijos y la descendencia tiene un peor ajuste que los padres no significa que se est dando un paso atrs. Optando por una estrategia de cruce no destructiva garantizamos que pasen a la siguiente generacin los mejores individuos. Si, an con un ajuste peor, se opta por insertar a la descendencia, y puesto que los genes de los padres continuarn en la poblacin - aunque dispersos y posiblemente levemente modificados por la mutacin - en posteriores cruces se podrn volver a obtener estos padres, recuperando as la bondad previamente perdida. 3. Algoritmos de ReemplazoCuando en vez de trabajar con una poblacin temporal se hace con una nica poblacin, sobre la que se realizan las selecciones e inserciones, deber tenerse en cuenta que para insertar un nuevo individuo deber de eliminarse previamente otro de la poblacin. Existen diferentes mtodos de reemplazo:Aleatorio: el nuevo individuo se inserta en un lugar cualquiera de la poblacin.Reemplazo de padres: se obtiene espacio para la nueva descendencia liberando el espacio ocupado por los padres.Reemplazo de similares: una vez obtenido el ajuste de la descendencia se selecciona un grupo de individuos (entre seis y diez) de la poblacin con un ajuste similar. Se reemplazan aleatoriamente los que sean necesarios.Reemplazo de los peores: de entre un porcentaje de los peores individuos de la poblacin se seleccionan4. CopiaLa copia es la otra estrategia reproductiva para la obtencin de una nueva generacin a partir de la anterior. A diferencia del cruce, se trata de una estrategia de reproduccin asexual. Consiste simplemente en la copia de un individuo en la nueva generacin.El porcentaje de copias de una generacin a la siguiente es relativamente reducido, pues en caso contrario se corre el riesgo de una convergencia prematura de la poblacin hacia ese individuo. De esta manera el tamao efectivo de la poblacin se reducira notablemente y la bsqueda en el espacio del problema se focalizara en el entorno de ese individuo. Lo que generalmente se suele hacer es seleccionar dos individuos para el cruce, y si este finalmente no tiene lugar, se insertan en la siguiente generacin los individuos seleccionados.5. MutacinLa mutacin de un individuo provoca que alguno de sus genes, generalmente uno slo, vare su valor de forma aleatoria. Aunque se pueden seleccionar los individuos directamente de la poblacin actual y mutarlos antes de introducirlos en la nueva poblacin, la mutacin se suele utilizar de manera conjunta con el operador de cruce. Primeramente se seleccionan dos individuos de la poblacin para realizar el cruce. Si el cruce tiene xito entonces uno de los descendientes, o ambos, se muta con cierta probabilidad Pm. Se imita de esta manera el comportamiento que se da en la naturaleza, pues cuando se genera la descendencia siempre se produce algn tipo de error, por lo general sin mayor trascendencia, en el paso de la carga gentica de padres a hijos.La probabilidad de mutacin es muy baja, generalmente menor al 1%. Esto se debe sobre todo a que los individuos suelen tener un ajuste menor despus de mutados. Sin embargo se realizan mutaciones para garantizar que ningn punto del espacio de bsqueda tenga una probabilidad nula de ser examinado.PARMETROS DE LOS ALGORITMOS GENTICOS.Para el estudio de los algoritmos genticos hay que tener en cuenta una serie de parmetros:1 Tamao de la PoblacinEste parmetro nos indica el nmero de cromosomas que tenemos en nuestra poblacin para una generacin determinada. En caso de que esta medida sea insuficiente, el algoritmo gentico tiene pocas posibilidades de realizar reproducciones con lo que se realizara una bsqueda de soluciones escasa y poco ptima. Por otro lado si la poblacin es excesiva, el algoritmo gentico ser excesivamente lento. De hecho estudios revelan que hay un lmite a partir del cual es ineficiente elevar el tamao de la poblacin puesto que no se consigue una mayor velocidad en la resolucin del problema.2 Probabilidad de CruceIndica la frecuencia con la que se producen cruces entre los cromosomas padre es decir, que haya probabilidad de reproduccin entre ellos. En caso de que no exista probabilidad de reproduccin, los hijos sern copias exactas se los padres. En caso de haberla, los hijos tendrn partes de los cromosomas de los padres. Si la probabilidad de cruce es del 100% el hijo se crea totalmente por cruce, no por partes.3 Probabilidad de MutacinNos indica la frecuencia con la que los genes de un cromosoma son mutados. Si no hay mutacin, los descendientes son los mismos que haba tras la reproduccin. En caso de que haya mutaciones, parte del cromosoma descendiente es modificado y si la probabilidad de mutacin es del 100%, la totalidad del cromosoma se cambia. En este caso, no se cambian simplemente unos bits del cromosoma sino que se cambian todos, lo que significa que se produce una inversin en el cromosoma y no una mutacin por lo que la poblacin degenera muy rpidamente.AlgoritmoDesarrollado por John H. Holland, el algoritmo gentico opera entonces a nivel de genotipo de las soluciones mediante la siguiente secuencia: 1. Comenzar con una poblacin inicial, la cual puede ser generada de manera aleatoria. 2. Calcular el fitness (aptitud) de cada individuo. 3. Aplicar el operador de seleccin con base en el fitness de la poblacin. 4. Aplicar los operadores genticos de reproduccin, cruce y mutacin a la poblacin actual para generar a la poblacin de la siguiente generacin. 5. Ir al paso 2 hasta que la condicin de parada se satisfaga. 6. Cuando se cumple la condicin de parada, se devuelve al mejor individuo encontrado (bien el mejor de todas las generaciones, bien el mejor de la ltima generacin).Al igual que en muchas otras heursticas, el comportamiento del algoritmo gentico es altamente dependiente de los parmetros iniciales (tamao de la poblacin, porcentaje de cruce, porcentaje de mutacin, nmero de generaciones, etc.), por lo que ser necesario ajustar esos parmetros para tratar de mejorar la solucin para los objetivos del problema.A cada iteracin de este proceso se le denomina una generacin. Un algoritmo gentico tpicamente se itera de 50 a 500 o incluso ms generaciones. El conjunto entero de generaciones se denomina una ejecucin. Al final de una ejecucin existen a menudo uno o varios cromosomas altamente adecuados en la poblacin, y que pueden ser elegidos como solucin al problema.La funcin de evaluacin o de fitness de un problema es realmente la funcin que se desea optimizar.Su diseo es junto con el del genotipo, una de las caractersticas ms importantes a la hora de encontrar la mejor solucin a un problema.