Você está na página 1de 15

CAPTULO I NOCIONES PREELIMINARES

Los Algoritmos Genticos (AG) 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. Los principios bsicos de los Algoritmos Genticos fueron establecidos por Holland, y se encuentran bien descritos en varios textos de 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 sper individuos, cuya adaptacin es mucho mayor que la de cualquiera de sus ancestros. De esta manera, las especies evolucionan logrando 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 o 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. 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 probable es 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 de las mismas haciendo algoritmos hbridos entre stas y los Algoritmos Genticos.

CAPTULO II EL ALGORITMO GENTICO SIMPLE

El Algoritmo Gentico Simple, tambin denominado cannico se representa en la figura 2.1. 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 o 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.

Figura 2.1 Pseudo cdigo del Algoritmo Gentico Simple

Codificacin Se supone que los individuos (posibles soluciones del problema), pueden representarse como un conjunto de parmetros denominados genes, los cuales agrupados forman una cadena de valores o cromosoma. Si bien el alfabeto utilizado para representar los individuos no debe necesariamente estar constituido por {0, l}, buena parte de la teora en la que se fundamentan los Algoritmos Genticos utiliza dicho alfabeto. En trminos biolgicos, el conjunto de parmetros representando un cromosoma particular se denomina fenotipo. El fenotipo contiene la informacin requerida para construir un organismo, el cual se refiere como genotipo. Los mismos trminos se utilizan en el

campo de los Algoritmos Genticos. La adaptacin al problema de un individuo depende de la evaluacin del genotipo. Esta ltima puede inferirse a partir del fenotipo, es decir puede ser computada a partir del cromosoma, usando la funcin de evaluacin. La funcin de adaptacin debe ser diseada para cada problema de manera especfica. Dado un cromosoma particular, la funcin de adaptacin le asigna un nmero real, que se supone refleja el nivel de adaptacin al problema del individuo representado por el cromosoma. Durante la fase reproductiva se seleccionan los individuos de la poblacin para cruzarse y producir descendientes que constituirn, una vez mutados, la siguiente generacin de individuos. La seleccin de padres se efecta al azar usando un procedimiento que favorezca a los individuos mejor adaptados, ya que a cada individuo se le asigna una probabilidad de ser seleccionado que es proporcional a su funcin de adaptacin. Este procedimiento se dice que est basado en la ruleta sesgada. Segn dicho esquema, los individuos bien adaptados se escogern probablemente varias veces por generacin, mientras que los pobremente adaptados al problema no se escogern ms que de vez en cuando. Una vez seleccionados dos padres, sus cromosomas se combinan, utilizando habitualmente los operadores de cruce y mutacin. Las formas bsicas de dichos operadores se describen a continuacin. El operador de cruce toma dos padres seleccionados y corta sus cadenas de cromosomas en una posicin escogida al azar, para producir dos subcadenas iniciales y dos subcadenas finales. Despus se intercambian las subcadenas finales, producindose dos nuevos cromosomas completos. Esto se muestra en la figura 2.2. Ambos descendientes heredan genes de cada uno de los padres. Este operador se conoce como operador de cruce basado en un punto.

Figura 2.2. Operador de cruce basado en un punto

Habitualmente el operador de cruce no se aplica a todos los pares de individuos que han sido seleccionados para emparejarse, sino que se aplica de manera aleatoria, normalmente con una probabilidad comprendida entre 0.5 y 1.0. En el caso en que el operador de cruce no se aplique, la descendencia se obtiene simplemente duplicando los padres.

El operador de mutacin se aplica a cada hijo de manera individual, y consiste en la alteracin aleatoria (normalmente con probabilidad pequea) de cada gen componente del cromosoma. La figura 2.3 muestra la mutacin del quinto gen del cromosoma.

Figura 2.3. Operador de mutacin

Si bien puede en principio pensarse que el operador de cruce es ms importante que el operador de mutacin, ya que proporciona una exploracin rpida del espacio de bsqueda, ste ltimo asegura que ningn punto del espacio de bsqueda tenga una probabilidad cero de ser examinado, y es de capital importancia para asegurar la convergencia de los Algoritmos Genticos. Para criterios prcticos, es muy til la definicin de convergencia introducida en este campo por De Jong. Si el Algoritmo Gentico ha sido correctamente implementado, la poblacin evolucionar a lo largo de las generaciones sucesivas de tal manera que la adaptacin media extendida a todos los individuos de la poblacin, as como la adaptacin del mejor individuo se irn incrementando hacia el ptimo global. El concepto de convergencia est relacionado con la progresin hacia la uniformidad: un gen ha convergido cuando al menos el 95 % de los individuos de la poblacin comparten el mismo valor para dicho gen. Se dice que la poblacin converge cuando todos los genes han convergido. Se puede generalizar dicha definicin al caso en que al menos un poco de los individuos de la poblacin hayan convergido. La figura 2.4 muestra como vara la adaptacin media y la mejor adaptacin en un Algoritmo Gentico Simple tpico.

Figura 2.4. Adaptacin media y mejor adaptacin en un Algoritmo Gentico simple

A medida que el nmero de generaciones aumenta, es ms probable que la adaptacin media se aproxime a la del mejor individuo.

Ejemplo Como ilustracin de los diferentes componentes del Algoritmo Gentico Simple, supngase el problema adaptado de Goldberg de encontrar el mximo de la funcin f(z) = x para z = {1,2,...,32}. Evidentemente para lograr dicho ptimo, bastara actuar por bsqueda exhaustiva, dada la baja cardinalidad del espacio de bsqueda. Se trata por tanto de un mero ejemplo con el que se pretende ilustrar el comportamiento del algoritmo anteriormente descrito. Consultando el pseudo cdigo de la figura 2.1, se ve que el primer paso a efectuar consiste en determinar el tamao de la poblacin inicial, para despus obtener dicha poblacin al azar y computar la funcin de evaluacin de cada uno de sus individuos. Suponiendo que el alfabeto utilizado para codificar los individuos est constituido por {0, 1}, se necesitarn cadenas de longitud 5 para representar los 32 puntos del espacio de bsqueda. En la tabla 2.1 estn representados los 4 individuos que constituyen la poblacin inicial, junto con su funcin de adaptacin al problema, as como la probabilidad de que cada uno de dichos individuos sea seleccionado segn el modelo de ruleta sesgada para emparejarse. Volviendo a consultar el pseudo cdigo expresado en la figura 2.1, se puede ver que el siguiente paso consiste en la seleccin de 2 parejas de individuos.

Tabla 2.1 Poblacin inicial de la simulacin efectuada a mano correspondiente al Algoritmo Gentico simple.

Para ello es suficiente con obtener 4 nmeros reales provenientes de una distribucin de probabilidad uniforme en el intervalo [0, 1), y compararlos con la ltima columna de la Tabla 2.l. As por ejemplo, supngase que dichos 4 nmeros son 0.58, 0.84, 0.11 y 0.43. Esto significa que los individuos seleccionados para el cruce fueron el individuo 2 junto con el individuo 4, as como el individuo 1 junto con el individuo 2.

Para seguir con el Algoritmo Gentico Simple, se necesita determinar la probabilidad de cruce p. Supngase que p = 0.8. Valindose al igual que antes de 2 nmeros provenientes de la distribucin uniforme para este caso, se determinar si los emparejamientos anteriores se llevan a cabo. Admtase, por ejemplo, que los dos nmeros extrados sean menores que 0.8, decidindose por tanto efectuar el cruce entre las dos parejas. Para ello se escoger un nmero al azar entre l y L 1 (siendo L la longitud de la cadena utilizada para representar el individuo). Ntese que la restriccin impuesta al escoger el nmero entre 1 y L l, y no L, se realiza con la finalidad de que los descendientes no coincidan con los padres. Supngase, tal y como se indica en la tabla 2.2, que los puntos de cruce resulten ser 2 y 3. De esta manera se obtendran los 4 descendientes descritos en la tercera columna de la tabla 2.2. A continuacin siguiendo el seudo cdigo de la figura 2.1, se mutara con una probabilidad p, cercana a cero, cada uno de los bits de las cuatro cadenas de individuos. En este caso se supone que el nico bit mutado corresponde al primer gen del tercer individuo. En las dos ltimas columnas se pueden consultar los valores de los individuos, as como las funciones de adaptacin correspondientes. Como puede observarse, tanto el mejor individuo como la funcin de adaptacin media han mejorado sustancialmente al compararlos con los resultados de la Tabla 2.1.

Tabla 2.2. Poblacin en el tiempo 1, proveniente de efectuar los operadores de cruce y mutacin sobre los individuos expresados en la tabla 2.1, los cuales constituyen la poblacin en el tiempo 0.

CAPTULO III EXTENSIONES Y MODIFICACIONES DEL ALGORITMO GENTICO SIMPLE

En este captulo se introducen otras tcnicas referentes a la poblacin, funcin objetivo, seleccin, cruce y mutacin. Poblacin Tamao de la poblacin Una cuestin que puede plantearse es la relacionada con el tamao idneo de la poblacin. Parece intuitivo que las poblaciones pequeas corren el riesgo de no cubrir adecuadamente el espacio de bsqueda, mientras que el trabajar con poblaciones de gran tamao puede acarrear problemas relacionados con el excesivo costo computacional. Goldberg efectu un estudio terico, obteniendo como conclusin que el tamao ptimo de la poblacin para cadenas de longitud I, con codificacin binaria, crece exponencialmente con el tamao de la cadena. Este resultado traera como consecuencia que la aplicabilidad de los Algoritmos Genticos 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 l considerados. Poblacin inicial Habitualmente la poblacin inicial se escoge generando cadenas al azar, pudiendo contener cada gen uno de los posibles valores del alfabeto con probabilidad uniforme. Podra existir la pregunta sobre qu 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 Algoritmo Gentico. Sin embargo en algunos casos la desventaja resulta ser la prematura convergencia del algoritmo, queriendo indicar con esto la convergencia hacia ptimos locales. Funcin objetivo Dos aspectos que resultan cruciales en el comportamiento de los Algoritmos Genticos son la determinacin de una adecuada funcin de adaptacin o funcin objetivo, as como la codificacin utilizada. Idealmente interesara construir funciones objetivo con ciertas regularidades, es decir funciones objetivo que verifiquen que para dos individuos que se encuentren cercanos en el espacio de bsqueda sus respectivos valores en las funciones objetivo sean similares. Por otra parte una dificultad en el comportamiento del Algoritmo Gentico puede ser la existencia de gran cantidad de ptimos locales, as como el hecho de que el ptimo global se encuentre muy aislado.

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 una 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 puede 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 o 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. Otra tcnica que se ha venido utilizando en el caso en que la computacin de la funcin objetivo sea muy compleja es la denominada evaluacin aproximada de la funcin objetivo. En algunos casos la obtencin de n funciones objetivo aproximadas puede resultar mejor que la evaluacin exacta de una nica funcin objetivo (supuesto el caso de que la evaluacin aproximada resulta como mnimo n veces ms rpida que la evaluacin exacta). Un problema habitual en las ejecuciones de los Algoritmos Genticos surge debido a la velocidad con la que el algoritmo converge. En algunos casos la convergencia es muy rpida, lo que suele denominarse convergencia prematura, en la cual el algoritmo converge hacia ptimos locales, mientras que en otros casos el problema es justo el contrario, es decir, se produce una convergencia lenta del algoritmo. Una posible solucin a estos problemas pasa por efectuar transformaciones en la funcin objetivo. 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 sper-individuos 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. La idea de especies de organismos, ha sido imitada en el diseo de los Algoritmos Genticos en un mtodo propuesto por Goldberg y Richardson, utilizando una modificacin de la funcin objetivo de cada individuo, de tal manera que individuos que estn muy cercanos entre s devalen su funcin objetivo, con objeto de que la poblacin gane en diversidad.

Seleccin Para aplicar los operadores genticos se tiene que seleccionar un subconjunto de la poblacin. Algunas de las tcnicas disponibles son: Seleccin directa: toma elementos de acuerdo a un criterio objetivo, como son los x mejores, los x peores Seleccin aleatoria: puede ser realizada por seleccin equiprobable o seleccin estocstica. - Seleccin equiprobable: todos tienen la misma probabilidad de ser escogidos. - Seleccin estocstica: la probabilidad de que un individuo sea escogido depende de una heurstica. Los distintos procedimientos estocsticos son: - Seleccin por sorteo: cada individuo de la poblacin tiene asignado un rango proporcional (o inversamente proporcional) a su adaptacin. Se escoge un nmero aleatorio dentro del rango global, y el escogido es aqul que tenga dicho nmero dentro de su rango. La probabilidad de ser escogido es proporcional/inversamente proporcional al grado de adaptacin del individuo. - Seleccin por escaos: se divide el rango del nmero aleatorio en un nmero predeterminado de escaos. Los escaos se reparten de acuerdo con la ley d'Hont, tomando como puntuacin para repartir los escaos el grado de adaptacin. Se observa que es ms probable escoger un elemento de baja probabilidad por este mtodo que en el de seleccin por sorteo. - Seleccin por restos estocsticos: es igual al mtodo de seleccin de escaos, slo que los escaos no asignados directamente, es decir, aquellos en que se aplica directamente la ley d'Hont se asignan de forma aleatoria. La probabilidad de escoger un elemento de muy baja probabilidad es ms alta que en el de seleccin por escaos.
-

Por ruleta: 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 emplee un mtodo de seleccin directa basado en la posicin relativa de los individuos de la poblacin-.

Por torneo: escoge un subconjunto de individuos de acuerdo con una de las tcnicas anteriores -habitualmente, aleatoria o estocstica- y de entre ellos selecciona el ms adecuado por otra tcnica -habitualmente, determinstica de tipo el mejor o el peor-. Esta tcnica tiene la ventaja de que permite un cierto grado de elitismo -el mejor nunca va a morir, y los mejores tienen ms probabilidad de reproducirse y de emigrar que los peorespero sin producir una convergencia gentica prematura, si la poblacin es, al menos, un orden de magnitud superior al del nmero de elementos involucrados en el torneo.

Implementacin del elitismo Se denomina elitismo al proceso por el cual determinados elementos con una adaptacin especialmente buena tienen determinados privilegios -nunca mueren, proporcin alta de pasos en que se reproduce uno de la lite con otro al azar-... Sin embargo, en fases iniciales es peligroso, ya que puede producirse que una lite de sper- individuos acabe con la diversidad gentica del problema. Para ello, lo que se puede hacer es escalar la funcin de adaptacin en las primeras fases del algoritmo -de forma que las diferencias entre la lite y el pueblo sean menores- y superescalar la funcin de adaptacin al final del algoritmo, para evitar un bloqueo de la convergencia. Cruce Existen gran cantidad de tcnicas de cruce. Las tcnicas bsicas son: Cruce bsico: se selecciona un punto al azar de la cadena. La parte anterior del punto es copiada del genoma del padre y la posterior del de la madre. Cruce multipunto: igual que el cruce bsico, slo que estableciendo ms de un punto de cruce. Cruce segmentado: existe una probabilidad de que un cromosoma sea punto de un cruce. Conforme se va formando la nueva cadena del descendiente, para cada gen, se verifica si ah se va producir un cruce. Cruce uniforme: para cada gen de la cadena del descendiente existe una probabilidad de que el gen pertenezca al padre, y otra de que pertenezca a la madre. Cruces para permutacin: Existe una familia de cruces especficas para los problemas de permutacin, siendo algunos de ellos: - Cruce de mapeamiento parcial: toma una subsecuencia del genoma del padre y procura preservar el orden absoluto de los fenotipos -es decir, orden y posicin en el genoma- del resto del genoma lo ms parecido posible de la madre. Aparece tambin en la bibliografa como PMX. - Cruce de orden: toma una subsecuencia del genoma del padre y procura preservar el orden relativo de los fenotipos del resto del genoma lo ms parecido posible de la madre. Se puede encontrar en la bibliografa como OX. - Cruce de ciclo: Se toma el primer gen del genoma del padre, ponindolo en la primera posicin del hijo, y el primer gen del genoma de la madre,

ponindolo dentro del genoma del hijo en la posicin que ocupe en el genoma del padre. El fenotipo que est en la posicin que ocupa el gen del genoma del padre igual al primer gen del genoma de la madre se va a colocar en la posicin que ocupe en el genoma del padre, y as hasta rellenar el genoma del hijo. Este mtodo tambin es conocido en la bibliografa como CX. Es una buena idea que tanto la codificacin como la tcnica de cruce se hagan de manera que las caractersticas buenas se hereden o al menos no sea mucho peor que el peor de los padres. En problemas en los que, por ejemplo, la adaptacin es funcin de los pares de genes colaterales, el resultante del cruce uniforme tiene una adaptacin completamente aleatoria. Mutacin Existen varias tcnicas distintas de mutacin. Algunas de stas son: Mutacin de bit: existe una nica probabilidad de que se produzca una mutacin de algn bit. De producirse, el algoritmo toma aleatoriamente un bit, y lo invierte. Mutacin multibit: cada bit tiene una probabilidad de mutarse o no, que es calculada en cada pasada del operador de mutacin multibit. Mutacin de gen: igual que la mutacin de bit, solamente que, en vez de cambiar un bit, cambia un gen completo. Puede sumar un valor aleatorio, un valor constante, o introducir un gen aleatorio nuevo. Mutacin multigen: igual que la mutacin de multibit solamente que, en vez de cambiar un conjunto de bits, cambia un conjunto de genes. Puede sumar un valor aleatorio, un valor constante, o introducir un gen aleatorio nuevo. Mutacin de intercambio: existe una probabilidad de que se produzca una mutacin. De producirse, toma dos bits/genes aleatoriamente y los intercambia. Mutacin de barajado: existe una probabilidad de que se produzca una mutacin. De producirse, toma dos bits o dos genes aleatoriamente y baraja de forma aleatoria los bits -o genes, segn se hubiera escogido- comprendidos entre los dos. La bibliografa en ingls emplea el trmino scramble mutation, en mencin a un juego de mesa, mas la operacin que se realiza realmente es un barajado entre los dos genes.

CAPTULO IV SOFTWARE DE ALGORITMOS GENTICOS

Existen varios paquetes y bibliotecas de algoritmos genticos en el mercado, a continuacin se presentan algunos: GALOPPS Direccin primaria: GARAGe.cps.msu.edu/software/software-index.html Direccin para descargar va FTP: garage.cps.msu.edu/pub/GA/galopps/

GAGS Generador de aplicaciones basadas en algoritmos genticos, escrito en C++. Desarrollado por el grupo de J.J. Melero. Direccin primaria: kal-el.ugr.es/gags.html Direccin para descargar va FTP: kal-el.ugr.es/GAGS/.

FORTRAN GA Desarrollo de algoritmos genticos para Fortran. Direccin primaria: www.staff.uiuc.edu/~ carroll/ga.html.

GALIB Biblioteca de algoritmos genticos de Matthew. Conjunto de clases en C++ de algoritmos genticos. Direccin primaria: lancet.mit.edu/ga/

Direccin para descargar va FTP: lancet.mit.edu/pub/ga/

GAS Paquete para desarrollar aplicaciones de algoritmos genticos en Python. Direccin primaria: starship.skyport.net/crew/gandalf Direccin para descargar va FTP: ftp.coe.uga.edu/users/jae/ai.

GECO Conjunto de herramientas para LISP Direccin para descargar va FTP: ftp://ftp.aic.nrl.navy.mil/pub/galist/src/.

GPDATA Para desarrollar algoritmos genticos en C++. Direccin primaria: cs.ucl.ac.uk/genetic/papers/ Direccin para descargar va FTP: ftp.cs.bham.ac.uk/pub/authors/W.B.Langdon/gp-code/

GPJPP Bibliotecas de clases para desarrollar algoritmos genticos en Java Direccin primaria: www.turbopower.com/~ kimk/gpjpp.asp.

GP Kernel Biblioteca de clases para programacin gentica en C++. Direccin primaria: www.emk.e-technik.th-darmstadt.de/~ thomasw/gp.html.

LIL-GP Herramientas para programacin gentica en C. Direccin primaria: isl.msu.edu/GA/software/lil-gp/index.html Direccin para descargar va FTP: isl.cps.msu.edu/pub/GA/lilgp/

SUGAL SUnderland Genetic ALgorithm system. Para hacer experimentos con algoritmos genticos. Direccin primaria: www.trajan-software.demon.co.uk/sugal.htm.

GPsys Sistema de programacin gentica en Java. Direccin primaria: www.cs.ucl.ac.uk/staff/A.Qureshi/gpsys.html.