¿QUE ES UN ALGORITMO GENETICO?       El algoritmo genético es una técnica de búsqueda basada en la teoría de laevolución d...
Consiste en una función matemática o una rutina de software que tomacomo entradas a los ejemplares y retorna como salidas ...
de buenas características provenientes de diferentes ancestros, puede a veces producirdescendientes "superindividuos", cuy...
ALGORITMO GENETICO SIMPLE    El Algoritmo Genético Simple, también denominado Canónico, se necesita unacodificación o repr...
Generar una población inicial y computar la funciónde evaluación de cada individuoWHILE NOT Terminado DOBEGIN /* Producir ...
genotipo. Esta última puede inferirse a partir del fenotipo, es decir puede sercomputada a partir del cromosoma, usando la...
espacio de búsqueda tenga probabilidad cero de ser examinado, y es de capitalimportancia para asegurar la convergencia de ...
Sin embargo también pueden existir representaciones que codifiquendirectamente cada parámetro con un valor entero, real o ...
son copiados hacia la siguiente generación en caso de que no surja nada        mejor).    •   Selección proporcional a la ...
•   Selección por estado estacionario: la descendencia de los individuos         seleccionados en cada generación vuelven ...
intercambia las colas entre los dos individuos para generar nuevos         descendientes. De esta manera ambos descendient...
•   Cruce Uniforme: completamente distinta a las técnicas anteriores. Cada         gen de la descendencia tiene las mismas...
MUTACION     Una vez que la selección ha elegido a los individuos aptos, éstos deben seralterados aleatoriamente con la es...
factor exterior al algoritmo genético.La mutación de un individuo provoca quealgunos de sus genes, generalmente uno solo, ...
CONCLUSION       De todo lo anteriormente dicho se puede decir que la principal ventaja de losalgoritmos genéticos radica ...
16
Upcoming SlideShare
Loading in...5
×

Algoritmo genetico

749

Published on

Algoritmo Genetico en Inteligencia Artificial

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
749
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
41
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Algoritmo genetico

  1. 1. ¿QUE ES UN ALGORITMO GENETICO? El algoritmo genético es una técnica de búsqueda basada en la teoría de laevolución de Darwin, que ha cobrado tremenda popularidad en todo el mundo durantelos últimos años. En los últimos años, la comunidad científica internacional hamostrado un creciente interés en una nueva técnica de búsqueda basada en la teoría dela evolución y que se conoce como el algoritmo genético. Esta técnica se basa en losmecanismos de selección que utiliza la naturaleza, de acuerdo a los cuales losindividuos más aptos de una población son los que sobreviven, al adaptarse másfácilmente a los cambios que se producen en su entorno. Un investigador de la Universidad de Michigan llamado John Holland eraconsciente de la importancia de la selección natural, y a fines de los 60sdesarrolló una técnica que permitió incorporarla a un programa. Su objetivo eralograr que las computadoras aprendieran por sí mismas. A la técnica que inventóHolland se le llamó originalmente "planes reproductivos", pero se hizo popular bajoel nombre "algoritmo genético" tras la publicación de su libro en 1975. Los Algoritmos Genéticos (AGs) son métodos adaptativos que pueden usarsepara resolver problemas de búsqueda y optimización. Están basados en el procesogenético de los organismos vivos. A lo largo de las generaciones, las poblacionesevolucionan en la naturaleza de acorde con los principios de la selección naturaly la supervivencia de los más fuertes, postulados por Darwin. Por imitación deeste proceso, los Algoritmos Genéticos son capaces de ir creando soluciones paraproblemas del mundo real. La evolución de dichas soluciones hacia valores óptimosdel problema depende en buena medida de una adecuada codificación de las mismas.1
  2. 2. Consiste en una función matemática o una rutina de software que tomacomo entradas a los ejemplares y retorna como salidas cuáles de ellos debengenerar descendencia para la nueva generación. Es una técnica de programaciónque imita a la evolución biológica como estrategia para resolver problemas. Esuna serie de pasos organizados que describe el proceso que se debe seguir, paradar solución a un problema específico. En los años 1970, de la mano de JohnHenry Holland, surgió una de las líneas más prometedoras de la inteligenciaartificial, la de los algoritmos genéticos. Son llamados así porque se inspiran enla evolución biológica y su base genético-molecular. Estos algoritmos hacenevolucionar una población de individuos sometiéndola a acciones aleatoriassemejantes a las que actúan en la evolución biológica (mutaciones yrecombinaciones genéticas), así como también a una Selección de acuerdo conalgún criterio, en función del cual se decide cuáles son los individuos másadaptados, que sobreviven, y cuáles los menos aptos, que son descartados. Son métodos adaptativo usados en la búsqueda de optimización deparámetros basados en la reproducción sexual y en el principio de lasupervivencia del más apto. Estos son algoritmos de búsquedas basadas en lamecánica de selección natural y de la genética natural. Para alcanzar lasolución de un problema se parte de un conjunto inicial de individuos, llamadospoblación, generado de manera aleatoria. Cada uno de estos individuosrepresenta una posible solución al problema. Problemática En la naturaleza los individuos de una población compiten entre sí en labúsqueda de recursos tales como comida, agua y refugio. Incluso los miembros deuna misma especie compiten a menudo en la búsqueda de un compañero. Aquellosindividuos que tienen más éxito en sobrevivir y en atraer compañeros tienen mayorprobabilidad de generar un gran número de descendientes. Por el contrario individuospoco dotados producirán un menor número de descendientes. Esto significa que los genes de los individuos mejor adaptados se propagaránen sucesivas generaciones hacia un número de individuos creciente. La combinación2
  3. 3. de buenas características provenientes de diferentes ancestros, puede a veces producirdescendientes "superindividuos", cuya adaptación es mucho mayor que la decualquiera de sus ancestros. De esta manera, las especies evolucionan logrando unascaracterísticas cada vez mejor adaptadas al entorno en el que viven. Los Algoritmos Genéticos usan una analogía directa con el comportamientonatural. Trabajan con una población de individuos, cada uno de los cuales representauna solución factible a un problema dado. A cada individuo se le asigna un valor ópuntuación, relacionado con la bondad de dicha solución. En la naturaleza estoequivaldría al grado de efectividad de un organismo para competir por unosdeterminados recursos. Cuanto mayor sea la adaptación de un individuo al problema,mayor será la probabilidad de que el mismo sea seleccionado para reproducirse,cruzando su material genético con otro individuo seleccionado de igual forma. Estecruce producirá nuevos individuos. descendientes de los anteriores . los cualescomparten algunas de las características de sus padres. Cuanto menor sea laadaptación de un individuo, menor será la probabilidad de que dicho individuo seaseleccionado para la reproducción, y por tanto de que su material genético sepropague en sucesivas generaciones. De esta manera se produce una nueva población de posibles soluciones, lacual reemplaza a la anterior y verifica la interesante propiedad de que contiene unamayor proporción de buenas características en comparación con la población anterior.Así a lo largo de las generaciones las buenas características se propagan a través de lapoblación. Favoreciendo el cruce de los individuos mejor adaptados, van siendoexploradas las áreas más prometedoras del espacio de búsqueda. Si el AlgoritmoGenético ha sido bien diseñado, la, población convergerá hacia una solución óptimadel problema.3
  4. 4. ALGORITMO GENETICO SIMPLE El Algoritmo Genético Simple, también denominado Canónico, se necesita unacodificación o representación del problema, que resulte adecuada al mismo. Ademásse requiere una función de ajuste o adaptación al problema, la cual asigna un númeroreal a cada posible solución codificada. Durante la ejecución del algoritmo, los padresdeben ser seleccionados para la reproducción, a continuación dichos padresseleccionados se cruzarán generando dos hijos, sobre cada uno de los cuales actuaráun operador de mutación. El resultado de la combinación de las anteriores funcionesserá un conjunto de individuos (posibles soluciones al problema), los cuales en laevolución del Algoritmo Genético formarán parte de la siguiente población.Algoritmo SimpleBEGIN /* Algoritmo Genético Simple */4
  5. 5. Generar una población inicial y computar la funciónde evaluación de cada individuoWHILE NOT Terminado DOBEGIN /* Producir nueva generación */FOR Tamañopoblación/2 DOBEGIN /*Ciclo Reproductivo */Seleccionar dos individuos de la anterior generación, para el cruce (probabilidad deselección proporcional a la función de evaluación del individuo) Cruzar con ciertaprobabilidad los dos individuos obteniendo dos descendientes Mutar los dosdescendientes con cierta probabilidad Computar la función de evaluación de los dosdescendientes mutadosInsertar los dos descendientes mutados en la nueva generaciónENDIF la población ha convergido THENTerminado:= TRUEENDEND Evolución de los Algoritmos Genéticos Simples Se supone que los individuos (posibles soluciones del problema), puedenrepresentarse como un con junto de parámetros (que denominaremos genes), loscuales agrupados forman una ristra de valores (a menudo referida como cromosoma).Si bien el alfabeto utilizado para representar los individuos no debe necesariamenteestar constituido por el 0 y 1 buena parte de la teoría en la que se fundamentan losAlgoritmos Genéticos utiliza dicho alfabeto. En términos biológicos, el conjunto deparámetros representando un cromosoma particular se denomina fenotipo. El fenotipocontiene la información requerida para construir un organismo, el cual se refierecomo genotipo. Los mismos términos se utilizan en el campo de los AlgoritmosGenéticos. La adaptación al problema de un individuo depende de la evaluación del5
  6. 6. genotipo. Esta última puede inferirse a partir del fenotipo, es decir puede sercomputada a partir del cromosoma, usando la función de evaluación. La función de adaptación debe ser diseñada para cada problema de maneraespecífica. Dado un cromosoma particular, la función de adaptación le asigna unnúmero real, que se supone refleja el nivel de adaptación al problema del individuorepresentado por el cromosoma. Durante la fase reproductiva se seleccionan losindividuos de la población para cruzarse y producir descendientes, que constituirán,una vez mutados, la siguiente generación de individuos. La selección de padres seefectuar al azar usando un procedimiento que favorezca a los individuos mejoradaptados, ya que a cada individuo se le asigna una probabilidad de ser seleccionadoque es proporcional a su función de adaptación. Este procedimiento se dice que está basado en la ruleta sesgada. Según dichoesquema, los individuos bien adaptados se escogerán probablemente varias veces porgeneración, mientras que los pobremente adaptados al problema, no se escogerán másque de vez en cuando. Una vez seleccionados dos padres, sus cromosomas secombinan, utilizando habitualmente los operadores de cruce y nutación. Las formasbásicas de dichos operadores se describen a continuación. El operador de cruce, cogedos padres seleccionados y corta sus ristras de cromosomas en una posición escogidaal azar, para producir dos subristras iniciales y dos subristrasnales. Ambosdescendientes heredan genes de cada uno de los padres. Este operador se conocecomo operador de cruce basado en un punto. Habitualmente el operador de cruce nose aplica a todos los pares de individuos que han sido seleccionados para emparejarse,sino que se aplica de manera aleatoria, normalmente con una probabilidadcomprendida entre 0.5 y 1.0. En el caso en que el operador de cruce no se aplique, ladescendencia se obtiene simplemente duplicando los padres. El operador de mutación se aplica a cada hijo de manera individual, y consiste enla alteración aleatoria (normalmente con probabilidad pequeña) de cada gencomponente del cromosoma. Si bien puede en principio pensarse que el operador decruce es más importante que el operador de mutación, ya que proporciona unaexploración rápida del espacio de búsqueda, este último asegura que ningún punto del6
  7. 7. espacio de búsqueda tenga probabilidad cero de ser examinado, y es de capitalimportancia para asegurar la convergencia de los Algoritmos Genéticos. GEN Y CROMOSOMAS Se refiere a un candidato a solución del problema, que a menudo se codificacomo una cadena de bits.Individuos de la población –cromosomas representados porun conjunto de parámetros -genes- utilizando un cierto alfabeto -{0, 1}-. Función de adaptación para cada cromosoma devuelve un número real, que sesupone es proporcional a la adaptación del individuo al problema.Cualquier soluciónpotencial a un problema puede ser presentada dando valores a una serie deparámetros. El conjunto de parámetros (genes en la terminología de algoritmosGenéticos) se codifica en una cadena de valores denominada cromosomas. Elconjunto de parámetros representados por un cromosoma particular recibe el nombrede genotipo. El genotipo contiene la información necesaria para la construcción delorganismo, es decir, la solución real al problema, denominada fenotipo. Desde los primeros trabajos de Jhon Holland la codificación suele hacersemediante valores binario. Se asigna un determinado número de bit a cada parámetro yse realiza un discretizacion de la variable representa da por cada gen. El número debits asignados dependerá del grado de ajuste que se desee alcanzar. Evidentementeno todos los parámetros tienen porque estar codificados con el mismo número debits.Cada uno de los bits pertenecientes a un gen suele recibir el nombre de alelo. La siguiente figura muestra un ejemplo de un individuo binario que codifica 3parámetros.7
  8. 8. Sin embargo también pueden existir representaciones que codifiquendirectamente cada parámetro con un valor entero, real o en punto flotante SELECCIÓN Los algoritmos de selección serán los encargados de escoger queindividuos van a disponer de oportunidades de reproducirse o no. Puesto que setrata de imitar lo que ocurre en la naturaleza, se ha de otorgar un mayornúmero de oportunidades de reproducción a los individuos más aptos. Por lotanto la selección de un individuo estará relacionada con su valor de ajuste. Nose debe sin embargo eliminar por completo las opciones de reproducción de losindividuos menos aptos, pues en pocas generaciones de la población se volveríahomogénea. Una opción bastante común consiste en seleccionar el primero de losindividuos participantes Métodos de selección Un algoritmo genético puede utilizar muchas técnicas diferentes paraseleccionar a los individuos que deben copiarse hacia la siguiente generación,pero abajo se listan algunos de los más comunes. Algunos de estos métodos sonmutuamente exclusivos, pero otros pueden utilizarse en combinación, algo que sehace a menudo. • Selección elitista: se garantiza la selección de los miembros más aptos de cada generación. (La mayoría de los AGs no utilizan elitismo puro, sino que usan una forma modificada por la que el individuo mejor, o algunos de los mejores,8
  9. 9. son copiados hacia la siguiente generación en caso de que no surja nada mejor). • Selección proporcional a la aptitud: los individuos más aptos tienen más probabilidad de ser seleccionados, pero no la certeza. • Selección por rueda de ruleta: una forma de selección proporcional a la aptitud en la que la probabilidad de que un individuo sea seleccionado es proporcional a la diferencia entre su aptitud y la de sus competidores. (Conceptualmente, esto puede representarse como un juego de ruleta -cada individuo obtiene una sección de la ruleta, pero los más aptos obtienen secciones mayores que las de los menos aptos. Luego la ruleta se hace girar, y en cada vez se elige al individuo que ``posea la sección en la que se pare la ruleta). • Selección escalada: al incrementarse la aptitud media de la población, la fuerza de la presión selectiva también aumenta y la función de aptitud se hace más discriminadora. Este método puede ser útil para seleccionar más tarde, cuando todos los individuos tengan una aptitud relativamente alta y sólo les distingan pequeñas diferencias en la aptitud. • Selección por torneo: se eligen subgrupos de individuos de la población, y los miembros de cada subgrupo compiten entre ellos. Sólo se elige a un individuo de cada subgrupo para la reproducción. • Selección por rango: a cada individuo de la población se le asigna un rango numérico basado en su aptitud, y la selección se basa en este ranking, en lugar de las diferencias absolutas en aptitud. La ventaja de este método es que puede evitar que individuos muy aptos ganen dominancia al principio a expensas de los menos aptos, lo que reduciría la diversidad genética de la población y podría obstaculizar la búsqueda de una solución aceptable. • Selección generacional: la descendencia de los individuos seleccionados en cada generación se convierte en toda la siguiente generación. No se conservan individuos entre las generaciones.9
  10. 10. • Selección por estado estacionario: la descendencia de los individuos seleccionados en cada generación vuelven al acervo genético preexistente, reemplazando a algunos de los miembros menos aptos de la siguiente generación. Se conservan algunos individuos entre generaciones. • Selección jerárquica: los individuos atraviesan múltiples rondas de selección en cada generación. Las evaluaciones de los primeros niveles son más rápidas y menos discriminatorias, mientras que los que sobreviven hasta niveles más altos son evaluados más rigurosamente. La ventaja de este método es que reduce el tiempo total de cálculo al utilizar una evaluación más rápida y menos selectiva para eliminar a la mayoría de los individuos que se muestran poco o nada prometedores, y sometiendo a una evaluación de aptitud más rigurosa y computacionalmente más costosa sólo a los que sobreviven a esta prueba inicial. CRUCE Se trata de una reproducción de tipo sexual. Se genera una descendencia a partirdel mismo número de individuo (generalmente 2) de la generación anterior. Una vezseleccionados los individuos, estos son recombinados para reproducir la descendíaque ese insertara en la siguiente generación. Es una estrategia de reproducción sexual,su importancia para la transición entre generaciones es elevada puesto que las tasas decruce con las que se suele trabajar rondan el 90%. La idea principal del cruce es que si se toman dos individuos correctamenteadaptados al medio y se obtiene descendencia que comparta genes de ambos, existe laposibilidad de lo que lo genes heredado sean precisamente causantes de la bondad delos padres. Al compartir las características buenas de dos individuos, lasdescendencias, o al menos parte de ellas, debería tener una bondad mayor que cadauno de los padres por separados. Existen varios tipos de cruce: • Cruce de 1 punto: una vez seleccionados dos individuos se cortan sus cromosomas por un punto seleccionado aleatoriamente para generar segmentos diferenciado en cada uno de ellos. La cabeza y la cola. Se10
  11. 11. intercambia las colas entre los dos individuos para generar nuevos descendientes. De esta manera ambos descendientes heredan información genética de los padres, tal como aparece en la siguiente figura. • Cruce de 2 puntos: se trata de una generalización del cruce de un punto. En vez de cortar por un único punto los cromosomas de los padres, se realizan dos cortes. Deberá tenerse en cuenta que ninguno de estos puntos de corte coincidan con el extremo de los cromosomas para garantiza que se originen 3 segmentos. Para generar la descendencia se escoge el segmento central de uno de los padres y los segmentos laterales del otro padre:11
  12. 12. • Cruce Uniforme: completamente distinta a las técnicas anteriores. Cada gen de la descendencia tiene las mismas probabilidades de pertenecer a uno u otro padre. La técnica implica la generación de una máscara de cruce con valores binarios. Si en una de las posiciones de mascara hay un 1, el gen situado en esa posición en uno de los descendientes se copia del primer padre. Si por el contrario hay un 0 el gen se copia del segundo padre. Para reproducir el segundo descendiente se intercambian los papeles de los padres, o bien se intercambian la interpretación de los unos y los ceros de la máscara de cruce. La descendencia contiene una mezcla de genes de los 2 padres.12
  13. 13. MUTACION Una vez que la selección ha elegido a los individuos aptos, éstos deben seralterados aleatoriamente con la esperanza de mejorar su aptitud para lasiguiente generación. Existen dos estrategias básicas para llevar esto a cabo. Laprimera y más sencilla se llama mutación. Al igual que una mutación en los seresvivos cambia un gen por otro, una mutación en un algoritmo genético tambiéncausa pequeñas alteraciones en puntos concretos del código de un individuo. Se define mutación como una variación de las informaciones contenidas en elcódigo genético -habitualmente, un cambio de un gen a otro producido por algún13
  14. 14. factor exterior al algoritmo genético.La mutación de un individuo provoca quealgunos de sus genes, generalmente uno solo, varié su valor de forma aleatoria. Lamutación generalmente suele utilizar de manera conjunta con el operador de cruce.Primeramente se seleccionan los individuos de la población para generar el cruce. Siel cruce es exitosos entonces uno de los descendientes, o ambos, se muta con ciertaprobabilidad pm. Se imita de esta manera el comportamiento que se da en lanaturaleza, pues cuando se genera la descendencia siempre se produce algún tipo deerror, por lo general sin mayor transcendencia.14
  15. 15. CONCLUSION De todo lo anteriormente dicho se puede decir que la principal ventaja de losalgoritmos genéticos radica en su sencillez. Se requiere poca información sobre elespacio de búsqueda ya que se trabaja sobre un conjunto de soluciones o parámetroscodificados (hipótesis o individuos). Se busca una solución por aproximación de lapoblación, en lugar de una aproximación punto a punto. Con un control adecuadopodemos mejorar la aptitud promedio de la población, obteniendo nuevos y mejoresindividuos y, por lo tanto, mejores soluciones. Se consigue un equilibrio entre la eficacia y la eficiencia. Este equilibrio esconfigurable mediante los parámetros y operaciones usados en el algoritmo. Así, porejemplo, bajando el valor del umbral conseguiremos una rápida solución a cambio deperder en “calidad”. Si aumentamos dicho valor, tendremos una mejor solución acambio de un mayor tiempo consumido en la búsqueda. Es decir, obtenemos unabuena relación entre la calidad de la solución y el costo. La programación mediante algoritmos genéticos suponen un nuevo enfoqueque permite abarcar todas aquellas áreas de aplicación donde no sepamos cómoresolver un problema.15
  16. 16. 16

×