You are on page 1of 9

ALGORITMOS GENTICOS

INTRODUCCION Antecedentes
El algoritmo gentico es una tcnica de bsqueda basada en la teora de la evolucin de Darwin, que ha cobrado tremenda popularidad en todo el mundo durante los ltimos aos. Se presentan aqu los conceptos bsicos que se requieren para abordarla, para comprender cmo aplicarla al problema que se planteara. En los ltimos aos, la comunidad cientfica internacional ha mostrado un creciente inters en una nueva tcnica de bsqueda basada en la teora de la evolucin y que se conoce como el algoritmo gentico. Esta tcnica se basa en los mecanismos de seleccin que utiliza la naturaleza, de acuerdo a los cuales los individuos ms aptos de una poblacin son los que sobreviven, al adaptarse ms fcilmente a los cambios que se producen en su entorno. Hoy en da se sabe que estos cambios se efectan en los genes de un individuo (unidad bsica de codificacin de cada uno de los atributos de un ser vivo), y que sus atributos ms deseables (i.e., los que le permiten adaptarse mejor a su entorno) se transmiten a sus descendientes cuando ste se reproduce sexualmente. Un investigador de la Universidad de Michigan llamado John Holland era consciente de la importancia de la seleccin natural, y a fines de los 60s desarroll una tcnica que permiti incorporarla a un programa. Su objetivo era lograr que las computadoras aprendieran por s mismas. A la tcnica que invent Holland se le llam originalmente "planes reproductivos", pero se hizo popular bajo el nombre "algoritmo gentico" tras la publicacin de su libro en 1975. Una definicin bastante completa de un algoritmo gentico es la propuesta por John Koza:"Es un algoritmo matemtico altamente paralelo que transforma un conjunto de objetos matemticos individuales con respecto al tiempo usando operaciones modeladas de acuerdo al principio Darwiniano de reproduccin y supervivencia del ms apto, y tras haberse presentado

de forma natural una serie de operaciones genticas de entre las que destaca la recombinacin sexual. Cada uno de estos objetos matemticos suele ser una cadena de caracteres (letras o nmeros) de longitud fija que se ajusta al modelo de las cadenas de cromosomas, y se les asocia con una cierta funcin matemtica que refleja su aptitud. "

Definicin Los Algoritmos Genticos (AGs) son mtodos adaptativos que pueden usarse para resolver problemas de bsqueda y optimizacin. Estn basados en el proceso gentico de los organismos vivos. A lo largo de las generaciones, las poblaciones evolucionan en la naturaleza de acorde con los principios de la seleccin natural y la supervivencia de los ms fuertes, postulados por Darwin. Por imitacin de este proceso, los Algoritmos Genticos son capaces de ir creando soluciones para problemas del mundo real. La evolucin de dichas soluciones hacia valores ptimos del problema depende en buena medida de una adecuada codificacin de las mismas. Un algoritmo gentico consiste en una funcin matemtica o una rutina de software que toma como entradas a los ejemplares y retorna como salidas cules de ellos deben generar descendencia para la nueva generacin. Versiones ms complejas de algoritmos genticos generan un ciclo iterativo que directamente toma a la especie (el total de los ejemplares) y crea una nueva generacin que reemplaza a la antigua una cantidad de veces determinada por su propio diseo. Una de sus caractersticas principales es la de ir perfeccionando su propia heurstica en el proceso de ejecucin, por lo que no requiere largos perodos de entrenamiento especializado por parte del ser humano, principal defecto de otros mtodos para solucionar problemas, como los Sistemas Expertos.

FUNDAMENTOS
Los principios bsicos de los Algoritmos Genticos fueron establecidos por Holland, y se encuentran bien descritos en varios textos. Goldberg, Davis, Michalewicz, Reeves. En la naturaleza los individuos de una poblacin compiten entre s en la bsqueda de recursos tales como comida, agua y refugio. Incluso los miembros de una misma especie compiten a menudo en la bsqueda de un compaero. Aquellos individuos que tienen ms xito en sobrevivir y en atraer compaeros tienen mayor probabilidad de generar un gran nmero de descendientes. Por el contrario individuos poco dotados producirn un menor nmero de descendientes. Esto significa que los genes de los individuos mejor adaptados se propagarn en sucesivas generaciones hacia un nmero de individuos creciente. La combinacin de buenas caractersticas provenientes de diferentes ancestros, puede a veces producir descendientes "superindividuos", cuya adaptacin es mucho mayor que la de cualquiera de sus ancestros. De esta manera, las especies evolucionan logrando unas caractersticas cada vez mejor adaptadas al entorno en el que viven.

Los Algoritmos Genticos usan una analoga directa con el comportamiento natural. Trabajan con una poblacin de individuos, cada uno de los cuales representa una solucin factible a un problema dado. A cada individuo se le asigna un valor puntuacin, relacionado con la bondad de dicha solucin. En la naturaleza esto equivaldra al grado de efectividad de un organismo para competir por unos determinados recursos. Cuanto mayor sea la adaptacin de un individuo al problema, mayor ser la probabilidad de que el mismo sea seleccionado para reproducirse, cruzando su material gentico con otro individuo seleccionado de igual forma. Este cruce producir nuevos individuos, descendientes de los anteriores, los cuales comparten algunas de las caractersticas de sus padres. Cuanto menor sea la adaptacin de un individuo, menor ser la probabilidad de que dicho individuo sea seleccionado para la reproduccin, y por tanto de que su material gentico se propague en sucesivas generaciones. De esta manera se produce una nueva poblacin de posibles soluciones, la cual reemplaza a la anterior y verifica la interesante propiedad de que contiene una mayor proporcin de buenas caractersticas en comparacin con la poblacin anterior. As a lo largo de las generaciones las buenas caractersticas se propagan a travs de la poblacin. Favoreciendo el cruce de los individuos mejor adaptados, van siendo exploradas las reas ms prometedoras del espacio de bsqueda. Si el Algoritmo Gentico ha sido bien diseado, la, poblacin converger hacia una solucin ptima del problema.

BASE TEORICA Y MATEMTICA


El Algoritmo Gentico Simple

Como se ver a continuacin, se necesita una codificacin o representacin del problema, que resulte adecuada al mismo. Adems se requiere una funcin de ajuste adaptacin al problema, la cual asigna un nmero real a cada posible solucin codificada. Durante la ejecucin del algoritmo, los padres deben ser seleccionados para la reproduccin, a continuacin dichos padres seleccionados se cruzarn generando dos hijos, sobre cada uno de los cuales actuar un operador de mutacin. El resultado de la combinacin de las anteriores funciones ser un conjunto de individuos (posibles soluciones al problema), los cuales en la evolucin del Algoritmo Gentico formarn parte de la siguiente poblacin.

Principales Elementos Los principales elementos de un algoritmo gentico son:


Esquema de codificacin, o sea la manera en que se representa una posible solucin al problema. Funcin de evaluacin, que indica si un individuo es apto para resolver el problema planteado. Tres operadores bsicos: reproduccin, cruce y mutacin. Parmetros que controlan el desempeo del algoritmo gentico: probabilidad de cruce, probabilidad de mutacin, tamao de la poblacin, nmero de generaciones, etc.

En la prctica, la codificacin ms comn de las soluciones es mediante cadenas binarias, aunque se han utilizado tambin nmeros reales y letras o caracteres para representar los cromosomas. El primero de estos esquemas ha gozado de mucha popularidad debido a que fue el que propuso originalmente John Holland, y porque resulta fcil implementar. Operaciones sencillas de bits permiten efectuar el cruce, la mutacin y otras operaciones. A pesar de que gran cantidad de investigaciones se realizaron en cadenas de longitud variable y otras estructuras, la mayor cantidad de algoritmos genticos se ha enfocado en cadenas de caracteres de longitud fija. Tipos de Representacin Durante los primeros aos el tipo de representacin utilizado era siempre binario, debido a que se adapta perfectamente al tipo de operaciones y el tipo de operadores que se utilizan en un AG. Sin embargo, las representaciones binarias no son siempre efectivas por lo que se empezaron a utilizar otro tipo de representaciones. En general, una representacin ha de ser capaz de identificar las caractersticas constituyentes de un conjunto de soluciones, de forma que distintas representaciones dan lugar a distintas perspectivas y por tanto distintas soluciones. Podemos considerar tres tipos bsicos de representaciones: Representacin binaria: Cada gen es un valor 1 0. 101101 Representacin entera: Cada gen es un valor entero. 1 0 3 -1 0 4 Representacin real: Cada gen es un valor real. 1,78 2,6 7 0 -1,2 6,5 Tamao de la Poblacin Goldberg efectu un estudio terico, obteniendo como conclusin que el tamao ptimo de la poblacin para ristras de longitud I, con codificacin binaria, crece exponencialmente con el tamao de la ristra. Este resultado traera como consecuencia que la aplicabilidad de los AG en problemas reales sera muy limitada, ya que resultaran no competitivos con otros mtodos de optimizacin combinatoria. Alander, basndose en evidencia emprica sugiere que un tamao de poblacin comprendida entre l y 21 es suficiente para atacar con xito los problemas por los considerados.

Poblacin Inicial Habitualmente la poblacin inicial se escoge generando ristras al azar, pudiendo contener cada gen uno de los posibles valores del alfabeto con probabilidad uniforme. Se podra preguntar que es lo que sucedera si los individuos de la poblacin inicial se obtuviesen como resultado de alguna tcnica heurstica o de optimizacin local. En los pocos trabajos que existen sobre este aspecto, se constata que esta inicializacin no aleatoria de la poblacin inicial, puede acelerar la convergencia del AG. Sin embargo en algunos casos la desventaja resulta ser la prematura convergencia del algoritmo, queriendo indicar con esto la convergencia hacia ptimos locales. La poblacin inicial de un AG puede ser creada de muy diversas formas, desde generar aleatoriamente el valor de cada gen para cada individuo, utilizar una funcin vida o generar alguna parte de cada individuo y luego aplicar una bsqueda local. Funcin Objetivo Dos aspectos que resultan cruciales en el comportamiento de los AG son la determinacin de una adecuada funcin de adaptacin o funcin objetivo, as como la codificacin utilizada. La regla general para construir una buena funcin objetivo es que sta debe reflejar el valor del individuo de una manera real, pero en muchos problemas de optimizacin combinatoria, donde existe gran cantidad de restricciones, buena parte de los puntos del espacio de bsqueda representan individuos no vlidos. Para este planteamiento en el que los individuos estn sometidos a restricciones, se han propuesto varias soluciones. La primera sera la que se podra denominar absolutista, en la que aquellos individuos que no verifican las restricciones, no son considerados como tales, y se siguen efectuando cruces y mutaciones hasta obtener individuos vlidos, o bien, a dichos individuos se les asigna una funcin objetivo igual a cero. Otra posibilidad consiste en reconstruir aquellos individuos que no verifican las restricciones. Dicha reconstruccin suele llevarse a cabo por medio de un nuevo operador que se acostumbra a denominar reparador. Otro enfoque est basado en la penalizacin de la funcin objetivo. La idea general consiste en dividir la funcin objetivo del individuo por una cantidad (la penalizacin) que guarda relacin con las restricciones que dicho individuo viola. Dicha cantidad puede simplemente tener en cuenta el nmero de restricciones violadas bien el denominado costo esperado de reconstruccin, es decir el coste asociado a la conversin de dicho individuo en otro que no viole ninguna restriccin. Un problema habitual en las ejecuciones de los AG surge debido a la velocidad con la que el algoritmo converge. El problema de la convergencia prematura, surge a menudo cuando la seleccin de individuos se realiza de manera proporcional a su funcin objetivo. En tal caso, pueden existir individuos con una adaptacin al problema muy superior al resto, que a medida que avanza el algoritmo dominan a la poblacin. Por medio de una transformacin de la funcin objetivo, en este caso una comprensin del rango de variacin

de la funcin objetivo, se pretende que dichos superindividuos no lleguen a dominar a la poblacin. El problema de la lenta convergencia del algoritmo, se resolvera de manera anloga, pero en este caso efectuando una expansin del rango de la funcin objetivo. Operador de Seleccin El operador de Seleccin es el encargado de transmitir y conservar aquellas caractersticas de las soluciones que se consideran valiosas a lo largo de las generaciones. El principal medio para que la informacin til se transmita es que aquellos individuos mejor adaptados (mejor valor de funcin de evaluacin) tengan ms probabilidades de reproducirse. Sin embargo, es necesario tambin incluir un factor aleatorio que permita reproducirse a individuos que aunque no estn muy bien adaptados, puedan contener alguna informacin til para posteriores generaciones, con el objeto de mantener as tambin una cierta diversidad en cada poblacin. Algunas de las tcnicas de las cuales se dispone son las siguientes: Ruleta o Seleccin Proporcional: Con este mtodo la probabilidad que tiene un individuo de reproducirse es proporcional a su valor de funcin de evaluacin, es decir, a su adaptacin. En este mtodo se define un rango con las caractersticas de la seleccin por sorteo. El nmero al azar ser un nmero aleatorio forzosamente menor que el tamao del rango. El elemento escogido ser aquel en cuyo rango est el nmero resultante de sumar el nmero aleatorio con el resultado total que sirvi para escoger el elemento anterior. El comportamiento es similar al de una ruleta, donde se define un avance cada tirada a partir de la posicin actual. Tiene la ventaja de que no es posible escoger dos veces consecutivas el mismo elemento, y que puede ser forzado a que sea alta la probabilidad de que no sean elementos prximos en la poblacin esto ltimo no es una ventaja de por s; salvo que algunos de los otros operadores genticos, es mejor utilizar un mtodo de seleccin directa basado en la posicin relativa de los individuos de la poblacin-. Seleccin por Ranking: Desarrollado por Whitley(1989) consiste en calcular las probabilidades de reproduccin atendiendo a la ordenacin de la poblacin por el valor de adaptacin en vez de atender simplemente a su valor de adecuacin. Estas probabilidades se pueden calcular de diversas formas, aunque el mtodo habitual es el ranking lineal (Baker (1985)). Seleccin por Torneo: Reporta un valor computacional muy bajo debido a su sencillez. Se selecciona un grupo de t individuos (normalmente t = 2, torneo binario) y se genera un nmero aleatorio entre 0 y 1. Si este nmero es menor que un cierto umbral K (usualmente 0,75), se selecciona para reproducirse al individuo con mejor adaptacin, y si este nmero es menor que K, se selecciona, por el contrario, al individuo con peor adaptacin. Esta tcnica tiene la ventaja de que permite un cierto grado de elitismo -el mejor nunca va a morir.

Operador de Cruce El operador de cruce permite realizar una exploracin de toda la informacin almacenada hasta el momento en la poblacin y combinarla para crear mejores individuos. Dentro de los mtodos habituales destacamos los siguientes: Cruce de un punto: Es el mtodo de cruce ms sencillo. Se selecciona una posicin en las cadenas de los progenitores, y se intercambian los genes a la izquierda de esta posicin.

Cruce de n puntos: Es una generalizacin del mtodo anterior. Se seleccionan varias posiciones (n) en las cadenas de los progenitores y se intercambian los genes a ambos lados de estas posiciones. Cruce Uniforme: Se realiza un test aleatorio para decidir de cual de los progenitores se toma cada posicin de la cadena. Cruces para permutacin: Existe una familia de cruces especficas para los problemas de permutacin, siendo algunos de ellos: o Cruce de mapeamiento parcial o Cruce de orden o Cruce de ciclo

Operador de Mutacin El objetivo del operador de mutacin es producir nuevas soluciones a partir de la modificacin de un cierto nmero de genes de una solucin existente, con la intencin de fomentar la variabilidad dentro de la poblacin. Existen muy diversas formas de realizar la mutacin, desde la ms sencilla (Puntual), donde cada gen muta aleatoriamente con independencia del resto de genes, hasta configuraciones ms complejas donde se tienen en cuanta la estructura del problema y la relacin entre los distintos genes. Schaffer y col. encuentran que el efecto del cruce en la bsqueda es inferior al que previamente se esperaba. Utilizan la denominada evolucin primitiva, en la cual, el proceso evolutivo consta tan slo de seleccin y mutacin. Encuentran que dicha evolucin primitiva supera con creces a una evolucin basada exclusivamente en la seleccin y el cruce.

VENTAJAS Y DESVENTAJAS
No necesitan conocimientos especficos sobre el problema que intentan resolver. Operan de forma simultnea con varias soluciones, en vez de trabajar de forma secuencial como las tcnicas tradicionales. Cuando se usan para problemas de optimizacin maximizar una funcin objetivo- resultan menos afectados por los mximos locales (falsas soluciones) que las tcnicas tradicionales. Resulta sumamente fcil ejecutarlos en las modernas arquitecturas masivamente paralelas. Usan operadores probabilsticos, en vez de los tpicos operadores determinsticos de las otras tcnicas.

Pueden tardar mucho en converger, o no converger en absoluto, dependiendo en cierta medida de los parmetros que se utilicen tamao de la poblacin, nmero de generaciones, etc.-. Pueden converger prematuramente debido a una serie de problemas de diversa ndole.

LIMITACIONES
El poder de los Algoritmos Genticos proviene del hecho de que se trata de una tcnica robusta, y pueden tratar con xito una gran variedad de problemas provenientes de diferentes reas, incluyendo aquellos en los que otros mtodos encuentran dificultades. Si bien no se garantiza que el Algoritmo Gentico encuentre la solucin ptima, del problema, existe evidencia emprica de que se encuentran soluciones de un nivel aceptable, en un tiempo competitivo con el resto de algoritmos de optimizacin combinatoria. En el caso de que existan tcnicas especializadas para resolver un determinado problema, lo ms probables que superen al Algoritmo Gentico, tanto en rapidez como en eficacia. El gran campo de aplicacin de los Algoritmos Genticos se relaciona con aquellos problemas para los cuales no existen tcnicas especializadas. Incluso en el caso en que dichas tcnicas existan, y funcionen bien, pueden efectuarse mejoras delas mismas hibridndolas con los Algoritmos Genticos.

COMO SABER SI ES POSIBLE UTILIZAR UN ALGORITMO GENETICO


La aplicacin ms comn de los algoritmos genticos ha sido la solucin de problemas de optimizacin, en donde han mostrado ser muy eficientes y confiables. Sin embargo, no todos los problemas pudieran ser apropiados para la tcnica, y se recomienda en general tomar en cuenta las siguientes caractersticas del mismo antes de intentar usarla: Su espacio de bsqueda (i.e., sus posibles soluciones) debe estar delimitado dentro de un cierto rango. Debe poderse definir una funcin de aptitud que nos indique qu tan buena o mala es una cierta respuesta. Las soluciones deben codificarse de una forma que resulte relativamente fcil de implementar en la computadora. El primer punto es muy importante, y lo ms recomendable es intentar resolver problemas que tengan espacios de bsqueda discretos aunque stos sean muy grandes. Sin embargo, tambin podr intentarse usar la tcnica con espacios de bsqueda continuos, pero preferentemente cuando exista un rango de soluciones relativamente pequeo.

UNIVERSIDAD MAYOR DE SAN SIMN


Facultad de Ciencia y Tecnologa
Ing. De Sistemas

INTEGRANTES: Aguirre Ovando Jorge Gustavo Berrios Arnez Meliz Adriana Ojeda Gmez Juan Carlos Pary Yucra Andrea Ruth DOCENTE: Lic. Garca Prez Carmen Rosa MATERIA: SISTEMAS EXPERTOS FECHA: 31 de mayo de 2012

Cbba-Bolivia

You might also like