Professional Documents
Culture Documents
Ingeniera de Telecomunicacin
N.I.A.: 100027597
Introduccin
Muchos problemas de optimizacin que aparecen en los mbitos de las ingenieras son muy difciles de solucionar por medio de tcnicas tradicionales, por lo que a menudo se aplican algoritmos evolutivos, inspirados en la naturaleza, que recogen un conjunto de modelos basados en la evolucin de los seres vivos. El inicio de la utilizacin de las estrategias evolutivas en la solucin de este tipo de problemas data del ao 1960 cuando John Holland plante la posibilidad de incorporar los mecanismos naturales de seleccin y supervivencia a la resolucin de problemas de Inteligencia Artificial (Adaptation in Natural and Artificial Systems). Esta investigacin fue fundamentalmente acadmica, siendo su realizacin prctica en aquella poca muy difcil. La simulacin de procesos de evolucin natural de las especies da como resultado una tcnica de optimizacin estocstica que posteriormente fue llamada algoritmos evolutivos, y que fueron enmarcados dentro de las tcnicas no convencionales de optimizacin para problemas del mundo real. A partir de la creacin de estas estrategias evolutivas aparecieron otras vas de investigacin como son: Algoritmos Genticos (Goldberg), Programacin Gentica (Koza), Programacin Evolutiva (Fogel), y Estrategias de Evolucin (Rechenberg/Schwefel), en donde la estrategia de evolucin ms conocida hoy en da son los algoritmos genticos. Los algoritmos genticos constituyen una tcnica poderosa de bsqueda y optimizacin con un comportamiento altamente paralelo, inspirado en el principio darviniano de seleccin natural y reproduccin gentica. En este principio de seleccin de los individuos ms aptos, tienen mayor longevidad y por tanto mayor probabilidad de reproduccin. Los individuos descendientes de estos individuos tienen una mayor posibilidad de transmitir sus cdigos genticos a las prximas generaciones. La aparicin de computadores de grandes prestaciones y bajo coste a mediados de los 80 permite aplicar los algoritmos evolutivos a la resolucin de ciertos problemas de ingeniera que antes eran inabordables, y a partir de entonces el desarrollo de estas tcnicas ha sido continuo. Actualmente los algoritmos genticos han cobrado gran importancia por su potencial como una tcnica importante para la solucin de problemas complejos, siendo aplicados constantemente en la ingeniera. Las aplicaciones de los algoritmos genticos han sido muy conocidas en reas como diseo de circuitos, clculo de estrategias de mercado, reconocimiento de patrones, acstica, ingeniera aeroespacial, astronoma y astrofsica, qumica, juegos, programacin y secuenciacin de operaciones, contabilidad lineal de procesos, programacin de rutas, interpolacin de superficies, tecnologa de grupos, facilidad en diseo y localizacin, transporte de materiales y muchos otros problemas que involucran de alguna manera procesos de optimizacin.
Computacin evolutiva
La computacin evolutiva es una rama de la computacin emergente que engloba tcnicas que simulan la evolucin natural, y constituye un enfoque alternativo para abordar problemas complejos de bsqueda y aprendizaje a travs de modelos computacionales de procesos evolutivos. Parte de un hecho observado en la naturaleza: los organismos vivos poseen una destreza consumada en la resolucin de los problemas que se les presentan, y obtienen sus habilidades, casi sin proponrselo, a travs del mecanismo de la evolucin natural. La evolucin se produce, en casi todos los organismos, como consecuencia de dos procesos primarios: la seleccin natural y la reproduccin (cruce). La evolucin natural es un proceso de cambio sobre una poblacin reproductiva que contiene variedades de individuos con algunas caractersticas heredables y en donde algunas variedades difieren en su aptitud (xito reproductivo).
Fondo Histrico
En 1859, Darwin publica su libro El origen de las especies que levant agrias polmica en el mundo cientfico por las revolucionarias teoras que sostenan que las especies evolucionan acorde al medio, para adaptarse a ste. De esta manera el universo pasaba de ser una creacin de Dios esttica y perfecta y se planteaba como un conjunto de individuos en constante competicin y evolucin para poder perpetuar su especie en el tiempo. Las especies se crean, evolucionan y desaparecen si no se adaptan de forma que solo los mejores, los ms aptos, los que mejor se adapten al medio sobreviven para perpetuar sus aptitudes.
De acuerdo con esta visin de la evolucin, la computacin ve en dicho marco un claro proceso de optimizacin: se toman los individuos mejores adaptados mejores soluciones temporales , se cruzan mezclan, generando nuevos individuos nuevas soluciones que contendrn parte del cdigo gentico informacin de sus antecesores, y el promedio de adaptacin de toda la poblacin se mejora. Originada a finales de los aos 50 con los trabajos de Bremermann, Friedberg, Box y otros, el campo permaneci en desconocimiento por tres dcadas debido a la ausencia de una plataforma computacional poderosa y defectos metodolgicos de los primeros mtodos (Fogel), hasta que la llegada de los nuevos trabajos de Holland, Rechenberg, Schwefel y Fogel cambiaron lentamente el escenario. Hoy en da el incremento de su empleo en la ciencia es exponencial. La computacin evolutiva se ha convertido en un concepto general adaptable para resolucin de problemas, en especial problemas difciles de optimizacin, gracias entre otros factores a que aade flexibilidad y adaptabilidad en la resolucin, combinables con la robustez y las ventajas de la bsqueda global.
Algoritmos Evolutivos
Este trmino es empleado para describir sistemas de resolucin de problemas de optimizacin o bsqueda basados en el ordenador empleando modelos computacionales de algn mecanismo de evolucin conocido como elemento clave en su diseo e implementacin. Los algoritmos evolutivos trabajan con una poblacin de individuos, que representan soluciones candidatas a un problema. Esta poblacin se somete a ciertas transformaciones y despus a un proceso de seleccin, que favorece a los mejores. Cada ciclo de transformacin y seleccin constituye una generacin, de forma que despus de cierto nmero de generaciones se espera que el mejor individuo de la poblacin est cerca de la solucin buscada. Los algoritmos evolutivos combinan la bsqueda aleatoria, dada por las transformaciones de la poblacin, con una bsqueda dirigida dada por la seleccin. Principales Componentes: Poblacin de individuos, que son una representacin (no necesariamente directa) de posibles soluciones. Procedimiento de seleccin basado en la aptitud de los individuos para resolver el problema. Procedimiento de transformacin para construir nuevos individuos a partir de los anteriores. La estructura general de los algoritmos evolutivos responde al siguiente esquema:
t :=0; Inicializar P(t); Evaluar P(t) While no se termine do begin P(t) := variacin [P(t)]; evaluar [P(t)]; P(t+1) := seleccionar [P(t) Q]; t:=t+1; end
Caractersticas La caracterstica fundamental de los algoritmos evolutivos radica en los mtodos de generacin de soluciones: se parte de un conjunto de soluciones iniciales y se van empleando un conjunto de operadores de bsqueda para ir refinando la solucin final. Para realizar dicho refinamiento de las soluciones, se pueden utilizar tcnicas clsicas Dcomo el seguimiento del gradiente (Hill Climbing) D complementadas con mecanismos biolgicos de exploracin: poblacin de soluciones, operadores genticos. Clasificacin Existen las siguientes modificaciones sobre el esquema general: Estrategias Evolutivas: Tcnica desarrollada por Rechenberg y Schwefel y extendida por Herdy, Kursawe, Ostermeier, Rudolph, y otros, fue diseada inicialmente con la meta de resolver problemas de optimizacin discretos y continuos, principalmente experimentales y considerados difciles. Trabaja con vectores de nmeros reales Dcon desviaciones estndarD que codifican las posibles soluciones de problemas numricos. Utiliza recombinacin o cruce (crossover aritmtico), mutacin y la operacin de seleccin, ya sea determinstica o probabilstica, elimina las peores soluciones de la poblacin y no genera copia de aquellos individuos con una aptitud por debajo de la aptitud promedio. Programacin Evolutiva: Tcnica introducida por Fogel y extendida por Burgin, Atmar y otros, inicialmente fue diseada como un intento de crear inteligencia artificial. La representacin del problema se realiza mediante nmeros reales (cualquier estructura de datos), y emplea los mecanismos de mutacin y seleccin. El procedimiento es muy similar a las estrategias evolutivas con la diferencia de que no emplea la recombinacin, de tal forma que son denominadas en conjunto algoritmos evolutivos como una manera de diferenciarlas de los algoritmos genticos. Algoritmos Genticos: Modelan el proceso de evolucin como una sucesin de frecuentes cambios en los genes, con soluciones anlogas a cromosomas. Trabajan con una poblacin de cadenas binarias para la representacin del problema, y el espacio de soluciones posibles es explorado aplicando transformaciones a stas soluciones candidatas tal y como se observa en los organismos vivientes: cruce, inversin y mutacin. Como mtodo de seleccin emplean en mecanismo de la ruleta (a veces con elitismo). Constituyen el paradigma ms completo de la computacin evolutiva ya que
resumen de modo natural todas las ideas fundamentales de dicho enfoque. Son muy flexibles ya que pueden adoptar con facilidad nuevas ideas, generales o especficas, que surjan dentro del campo de la computacin evolutiva. Adems, se pueden hibridar fcilmente con otros paradigmas y enfoques, aunque no tengan ninguna relacin con la computacin evolutiva. Se trata del paradigma con mayor base terica.
NOTA: El diagrama de funcionamiento de los algoritmos genticos responde al siguiente esquema:
Si Generacin Poblacin Inicial Evaluacin de la Funcin Objetivo Criterios de Optimizacin alcanzados ? Mejor Individuo
No
Solucin
Inicio
Seleccin
Recombinacin
hahghsdh
Mutacin
Programacin gentica: Desarrollada por Koza, los individuos son programas o autmatas de longitud variable, descritos mediante Expresiones-S de LISP representadas habitualmente como rboles, y como operadores de variacin emplea crossover y modificacin, adems de mecanismos de seleccin.
Algoritmos genticos
Estructura general
Los algoritmos genticos son estrategias de bsqueda estocstica basados en el mecanismo de seleccin natural y en algunos casos se involucran aspectos de gentica natural, imitando a la evolucin biolgica como estrategia para resolver problemas Los algoritmos genticos difieren de las estrategias de bsqueda convencionales en que estos (los AGs) trabajan sobre un conjunto de potenciales soluciones, llamado poblacin. Esta poblacin esta compuesta de una serie de soluciones llamadas individuos y un individuo esta conformado por una serie de posiciones que representan cada una de las variables involucradas en los procesos de optimizacin y que son llamados cromosomas. Estos cromosomas estn compuestos por una cadena de smbolos que en muchos casos esta presentada en nmeros binarios. En una algoritmo gentico cada individuo esta definido como una estructura de datos que representa una posible solucin del espacio de bsqueda del problema. Las estrategias de evolucin trabajan sobre los individuos, que representan las soluciones del problema, por lo que estos evolucionan a travs de generaciones. Dentro de la poblacin cada individuo es diferenciado de acuerdo con su valor de aptitud, que es obtenido usando algunas medidas de acuerdo con el problema a resolver. Para la obtencin de las prximas generaciones se crean nuevos individuos, llamados hijos, utilizando dos estrategias de evolucin bsicas como son el operador de cruce y el de mutacin (empleadas generalmente de forma aleatoria). Una nueva generacin es obtenida mediante la utilizacin del operador de seleccin, que bsicamente se realiza sobre los valores de aptitud de los individuos, sobre la poblacin obtenida tras el cruce y la mutacin. El operador de seleccin debe mantener constante el nmero de individuos de la poblacin, y a travs de las generaciones el individuo con mayor valor de aptitud tiene mayores posibilidades de ser seleccionado en la siguiente generacin. Entre el conjunto de soluciones candidatas generadas aleatoriamente muchas no funcionarn en absoluto y sern eliminadas; sin embargo, por puro azar, unas pocas pueden resultar prometedoras y pueden mostrar actividad, aunque slo sea actividad dbil e imperfecta, hacia la solucin del problema. Estas candidatas prometedoras se conservan y se les permite reproducirse. Se realizan mltiples copias de ellas, pero las copias no son perfectas; se introducen cambios aleatorios durante el proceso de copia. Esta descendencia prosigue con la siguiente generacin, formando un nuevo acervo de soluciones candidatas que son nuevamente sometidas a una ronda de evaluacin de aptitud. Las candidatas que han empeorado o no han mejorado con los cambios en su cdigo son eliminadas de nuevo; pero, de nuevo por puro azar, las variaciones aleatorias introducidas en la poblacin pueden haber mejorado a algunos individuos, convirtindolos en mejores soluciones del problema, ms completas o ms eficientes. De nuevo, se seleccionan y copian estos individuos vencedores hacia la siguiente generacin con cambios aleatorios, y el proceso se repite. Las expectativas son que la aptitud media de la poblacin se incrementar en cada ronda y, por tanto, repitiendo este proceso cientos o miles de rondas, pueden descubrirse soluciones muy buenas del problema; en otras palabras, tras varias iteraciones el algoritmo converge al individuo con mejor valor de aptitud, el cual representara el ptimo o subptimo del problema.
Representacin para la solucin del problema: Para la solucin de un problema en particular es importante definir una estructura del cromosoma de acuerdo con el espacio de bsqueda. En el caso de los algoritmos genticos la representacin ms utilizada es la representacin binaria, debido a su facilidad de manipulacin por los operadores genticos, su fcil transformacin en nmeros enteros o reales, adems de la facilidad que da para la demostracin de teoremas. La codificacin de nmeros reales en cadenas de nmeros binarios se debe hacer teniendo en cuenta el siguiente proceso y la precisin requerida para la solucin del problema: xi [ai , bi ] en donde el rango de la variable debe quedar dividida en (bi ai ) 10 p , donde p es la precisin requerida por el proceso (determinando as su potencia) La longitud de la cadena binaria de caracteres denotada por mi, para cada variable es calculada como 2 mi 1 < (bi ai ) 10 p < 2 mi 1 Decodificacin del cromosoma: Para determinar el nmero real que la cadena binaria de caracteres representa. Es importante tener en cuenta que la cadena no representa un nmero real, sino que este nmero binario etiqueta un nmero dentro del intervalo inicialmente fijado. Evaluacin de un individuo: Nos muestra el valor de aptitud de cada uno de los individuos. Esta aptitud viene dada por una funcin que es la unin entre el mundo natural y el problema a resolver matemticamente. Esta funcin de aptitud es particular para cada problema particular a resolver y representa para un algoritmo gentico lo que el medio ambiente representa para los humanos.
Seleccin escalada: al incrementarse la aptitud media de la poblacin, la fuerza de la presin selectiva tambin aumenta y la funcin de aptitud se hace ms discriminadora. Este mtodo puede ser til para seleccionar ms tarde, cuando todos los individuos tengan una aptitud relativamente alta y slo les distingan pequeas diferencias en la aptitud. Seleccin por torneo: se eligen subgrupos de individuos de la poblacin, y los miembros de cada subgrupo compiten entre ellos. Slo se elige a un individuo de cada subgrupo para la reproduccin. Seleccin por rango: a cada individuo de la poblacin se le asigna un rango numrico basado en su aptitud, y la seleccin se basa en este ranking, en lugar de las diferencias absolutas en aptitud. La ventaja de este mtodo es que puede evitar que individuos muy aptos ganen dominancia al principio a expensas de los menos aptos, lo que reducira la diversidad gentica de la poblacin y podra obstaculizar la bsqueda de una solucin aceptable. Seleccin generacional: la descendencia de los individuos seleccionados en cada generacin se convierte en toda la siguiente generacin. No se conservan individuos entre las generaciones. Seleccin por estado estacionario: la descendencia de los individuos seleccionados en cada generacin vuelven al acervo gentico preexistente, reemplazando a algunos de los miembros menos aptos de la siguiente generacin. Se conservan algunos individuos entre generaciones. Seleccin jerrquica: los individuos atraviesan mltiples rondas de seleccin en cada generacin. Las evaluaciones de los primeros niveles son ms rpidas y menos discriminatorias, mientras que los que sobreviven hasta niveles ms altos son evaluados ms rigurosamente. La ventaja de este mtodo es que reduce el tiempo total de clculo al utilizar una evaluacin ms rpida y menos selectiva para eliminar a la mayora de los individuos que se muestran poco o nada prometedores, y sometiendo a una evaluacin de aptitud ms rigurosa y computacionalmente ms costosa slo a los que sobreviven a esta prueba inicial.
los padres o al valor en esa posicin del genoma del otro padre, elegido con un 50% de probabilidad. Los operadores genticos en este caso son operadores con memoria, guardando en cada iteracin los cdigos genticos de los mejores individuos a travs de las generaciones. Los procesos de evolucin darviniana generalmente son procesos mimticos a travs de las generaciones.
Cruce y mutacin
Efecto de estos dos operadores genticos en los individuos de una poblacin de cadenas de 8 bits.
Image crossov er
Proceso de cruce: el punto de intercambio se establece entre las posiciones quinta y sexta del genoma, produciendo un nuevo individuo que es hbrido de sus progenitores.
Image mutation
Individuo sufriendo una mutacin en la posicin 4, cambiando el 0 de esa posicin de su genoma por un 1.
problemas como ste en la vida real. La no linealidad es la norma, donde cambiar un componente puede tener efectos en cadena en todo el sistema, y donde cambios mltiples que, individualmente, son perjudiciales, en combinacin pueden conducir hacia mejoras en la aptitud mucho mayores. La no linealidad produce una explosin combinatoria en el nmero de posibilidades. El paralelismo implcito de los AGs les permite superar incluso este enorme nmero de posibilidades, y encontrar con xito resultados ptimos o muy buenos en un corto periodo de tiempo, tras muestrear directamente slo regiones pequeas del vasto paisaje adaptativo. Otra ventaja notable de los algoritmos genticos es que se desenvuelven bien en problemas con un paisaje adaptativo complejo: aqullos en los que la funcin de aptitud es discontinua, ruidosa, cambia con el tiempo, o tiene muchos ptimos locales. La mayora de los problemas prcticos tienen un espacio de soluciones enorme, imposible de explorar exhaustivamente; el reto se convierte entonces en cmo evitar los ptimos locales, es decir, las soluciones que son mejores que todas las que son similares a ella, pero que no son mejores que otras soluciones distintas situadas en algn otro lugar del espacio de soluciones. Muchos algoritmos de bsqueda pueden quedar atrapados en los ptimos locales. Los algoritmos evolutivos, por otro lado, han demostrado su efectividad al escapar de los ptimos locales y descubrir el ptimo global incluso en paisajes adaptativos muy escabrosos y complejos. Los cuatro componentes principales de los AGs -paralelismo, seleccin, mutacin y cruzamiento- trabajan juntos para conseguir esto. Otra rea en el que destacan los algoritmos genticos es su habilidad para manipular muchos parmetros simultneamente. Muchos problemas de la vida real no pueden definirse en trminos de un nico valor que hay que minimizar o maximizar, sino que deben expresarse en trminos de mltiples objetivos, a menudo involucrando contrapartidas: uno slo puede mejorar a expensas de otro. Los AGs son muy buenos resolviendo estos problemas: en particular, su uso del paralelismo les permite producir mltiples soluciones, igualmente buenas, al mismo problema, donde posiblemente una solucin candidata optimiza un parmetro y otra candidata optimiza uno distinto, y luego un supervisor humano puede seleccionar una de esas candidatas para su utilizacin. Si una solucin particular a un problema con mltiples objetivos optimiza un parmetro hasta el punto en el que ese parmetro no puede mejorarse ms sin causar una correspondiente prdida de calidad en algn otro parmetro, esa solucin se llama ptimo paretiano o no dominada. Finalmente, una de las cualidades de los algoritmos genticos que, a primera vista, puede parecer un desastre, resulta ser una de sus ventajas: a saber, los AGs no saben nada de los problemas que deben resolver. En lugar de utilizar informacin especfica conocida a priori para guiar cada paso y realizar cambios guiados expresamente hacia la mejora, los AGs realizan cambios aleatorios en sus soluciones candidatas y luego utilizan la funcin de aptitud para determinar si esos cambios producen una mejora. Como sus decisiones estn basadas en la aleatoriedad, todos los caminos de bsqueda posibles estn abiertos tericamente a un AG; en contraste, cualquier estrategia de resolucin de problemas que dependa de un conocimiento previo, debe inevitablemente comenzar descartando muchos caminos a priori, perdiendo as cualquier solucin novedosa que pueda existir. Los AGs, al carecer de ideas preconcebidas basadas en creencias establecidas sobre cmo deben hacerse las cosas o sobre lo que de ninguna manera podra funcionar, los AGs no tienen este problema. De manera similar, cualquier tcnica que dependa de conocimiento previo fracasar cuando no est disponible tal conocimiento, pero, de nuevo, los AGs no se ven afectados negativamente por la ignorancia. Mediante sus componentes de paralelismo, cruzamiento y mutacin,
pueden viajar extensamente por el paisaje adaptativo, explorando regiones que algoritmos producidos con inteligencia podran no haber tenido en cuenta, y revelando potencialmente soluciones asombrosas y creativas.
competidores emerge muy pronto en el curso de la ejecucin, se puede reproducir tan abundantemente que merme la diversidad de la poblacin demasiado pronto, provocando que el algoritmo converja hacia el ptimo local que representa ese individuo, en lugar de rastrear el paisaje adaptativo lo bastante a fondo para encontrar el ptimo global. Esto es un problema especialmente comn en las poblaciones pequeas, donde incluso una variacin aleatoria en el ritmo de reproduccin puede provocar que un genotipo se haga dominante sobre los otros. Los mtodos ms comunes implementados por los investigadores en AGs para solucionar este problema implican controlar la fuerza selectiva, para no proporcionar tanta ventaja a los individuos excesivamente aptos. La seleccin escalada, por rango y por torneo son tres de los mtodos principales para conseguir esto. Finalmente, varios investigadores aconsejan no utilizar algoritmos genticos en problemas resolubles de manera analtica. No es que los algoritmos genticos no puedan encontrar soluciones buenas para estos problemas; simplemente es que los mtodos analticos tradicionales consumen mucho menos tiempo y potencia computacional que los AGs y, a diferencia de los AGs, a menudo est demostrado matemticamente que ofrecen la nica solucin exacta.