You are on page 1of 46

ALGORITMOS GENETICOS ÍNDICE

1. Introducción 1.1 Antecedentes 1.2 Definición 1.3 Problemática 1.4 Ventajas y Desventajas 1.5 Limitaciones 1.6 Como saber si es posible usar un Algoritmo Genético 1.7 Marco de Desarrollo 1.8 Comparación con otros Métodos de Optimización

2. El Algoritmo Genético Simple 2.1. Codificación 2.2. Ejemplo 3. Extensiones y Modificaciones del Algoritmo Genético Simple 3.1. Población 3.1.1. Tamaño de la población 3.1.2. Población inicial 3.2. Función objetivo 3.3. Selección 3.4. Cruce 3.5. Mutación

3.6. Reducción 3.7. Algoritmos Genéticos Paralelos 4. Lógica Borrosa (fuzzy logic) y Algoritmos Genéticos 4.1. Funciones Borrosas 4.2. Algoritmos Genéticos basados en Lógica Borrosa 5. Ejemplos de Aplicación 5.1 Ejemplo 1 5.2 Ejemplo 2 6. Conclusiones 7. Referencias (Bibliografía)

1. Introducción
1.1. Antecedentes El algoritmo genético es una técnica de búsqueda basada en la teoría de la evolución de Darwin, que ha cobrado tremenda popularidad en todo el mundo durante los últimos años. Se presentarán aquí los conceptos básicos que se requieren para abordarla, así como unos sencillos ejemplos que permitan a los lectores comprender cómo aplicarla al problema de su elección. En los últimos años, la comunidad científica internacional ha mostrado un creciente interés en una nueva técnica de búsqueda basada en la teoría de la evolución y que se conoce como el algoritmo genético. Esta técnica se basa en los mecanismos de selección que utiliza la naturaleza, de acuerdo a los cuales los individuos más aptos de una población son los que sobreviven, al adaptarse más fácilmente a los cambios que se producen en su entorno. Hoy en día se sabe que estos cambios se efectúan en los genes de un individuo (unidad básica de codificación de cada uno de los atributos de un ser vivo), y que sus atributos más 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 selección natural, y a fines de los 60s desarrolló una técnica que permitió incorporarla a un programa. Su objetivo era lograr que las computadoras aprendieran por sí mismas. A la técnica que inventó Holland se le llamó originalmente "planes reproductivos", pero se

hizo popular bajo el nombre "algoritmo genético" tras la publicación de su libro en 1975. Una definición bastante completa de un algoritmo genético es la propuesta por John Koza: "Es un algoritmo matemático altamente paralelo que transforma un conjunto de objetos matemáticos individuales con respecto al tiempo usando operaciones modeladas de acuerdo al principio Darwiniano de reproducción y supervivencia del más apto, y tras haberse presentado de forma natural una serie de operaciones genéticas de entre las que destaca la recombinación sexual. Cada uno de estos objetos matemáticos suele ser una cadena de caracteres (letras o números) de longitud fija que se ajusta al modelo de las cadenas de cromosomas, y se les asocia con una cierta función matemática que refleja su aptitud. "

1.2. Definición Los Algoritmos Genéticos (AGs) son métodos adaptativos que pueden usarse para resolver problemas de búsqueda y optimización. Están basados en el proceso genético de los organismos vivos. A lo largo de las generaciones, las poblaciones evolucionan en la naturaleza de acorde con los principios de la selección natural y la supervivencia de los más fuertes, postulados por Darwin. Por imitación de este proceso, los Algoritmos Genéticos son capaces de ir creando soluciones para problemas del mundo real. La evolución de dichas soluciones hacia valores óptimos del problema depende en buena medida de una adecuada codificación de las mismas. Un algoritmo genético consiste en una función matemática o una rutina de software que toma como entradas a los ejemplares y retorna como salidas cuales de ellos deben generar descendencia para la nueva generación. Versiones más complejas de algoritmos genéticos generan un ciclo iterativo que directamente toma a la especie (el total de los ejemplares) y crea una nueva generación que reemplaza a la antigua una cantidad de veces determinada por su propio diseño. Una de sus características principales es la de ir perfeccionando su propia heurística en el proceso de ejecución, por lo que no requiere largos períodos de entrenamiento especializado por parte del ser humano, principal defecto de otros métodos para solucionar problemas, como los Sistemas Expertos. 1.3. Problemática

Los principios básicos de los Algoritmos Genéticos fueron establecidos por Holland, y se encuentran bien descritos en varios textos . Goldberg, Davis, Michalewicz, Reeves. En la naturaleza los individuos de una población compiten entre sí en la búsqueda de recursos tales como comida, agua y refugio. Incluso los miembros de una misma especie compiten a menudo en la búsqueda de un compañero. Aquellos individuos que tienen más éxito en sobrevivir y en atraer compañeros tienen mayor probabilidad de generar un gran número de descendientes. Por el contrario individuos poco dotados producirán un menor número de descendientes. Esto significa que los genes de los individuos mejor adaptados se propagarán en sucesivas generaciones hacia un número de individuos creciente. La combinación de buenas características provenientes de diferentes ancestros, puede a veces producir descendientes "superindividuos", cuya adaptación es mucho mayor que la de cualquiera de sus ancestros. De esta manera, las especies evolucionan logrando unas características cada vez mejor adaptadas al entorno en el que viven. Los Algoritmos Genéticos usan una analogía directa con el comportamiento natural. Trabajan con una población de individuos, cada uno de los cuales representa una 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 esto equivaldría al grado de efectividad de un organismo para competir por unos determinados 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. Este cruce producirá nuevos individuos . descendientes de los anteriores . los cuales comparten algunas de las características de sus padres. Cuanto menor sea la adaptación de un individuo, menor será la probabilidad de que dicho individuo sea seleccionado para la reproducción, y por tanto de que su material genético se propague en sucesivas generaciones. De esta manera se produce una nueva población de posibles soluciones, la cual reemplaza a la anterior y verifica la interesante propiedad de que contiene una mayor 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 la población. Favoreciendo el cruce de los individuos mejor adaptados, van siendo exploradas las áreas más prometedoras del espacio de búsqueda. Si el Algoritmo Genético ha sido bien diseñado, la, población convergerá hacia una solución óptima del problema. 1.4. Ventajas y Desventajas

. Pueden converger prematuramente debido a una serie de problemas de diversa índole. Sin embargo. del problema. dependiendo en cierta medida de los parámetros que se utilicen tamaño de la población. Resulta sumamente fácil ejecutarlos en las modernas arquitecturas masivamente paralelas. lo más probable es que superen al Algoritmo Genético. o no converger en absoluto. en donde han mostrado ser muy eficientes y confiables. Como Saber si es Posible usar un Algoritmo Genético La aplicación más común de los algoritmos genéticos ha sido la solución de problemas de optimización.6. etc. Pueden tardar mucho en converger.resultan menos afectados por los máximos locales (falsas soluciones) que las técnicas tradicionales. Limitaciones El poder de los Algoritmos Genéticos proviene del hecho de que se trata de una técnica robusta.5.e. 1. 1. en vez de los típicos operadores determinísticos de las otras técnicas. en un tiempo competitivo con el resto de algoritmos de optimización combinatoria.. no todos los problemas pudieran ser apropiados para la técnica. y pueden tratar con éxito una gran variedad de problemas provenientes de diferentes áreas.No necesitan conocimientos específicos sobre el problema que intentan resolver. incluyendo aquellos en los que otros métodos encuentran dificultades.-. existe evidencia empírica de que se encuentran soluciones de un nivel aceptable.       Operan de forma simultánea con varias soluciones. y se recomienda en general tomar en cuenta las siguientes características del mismo antes de intentar usarla:  Su espacio de búsqueda (i. y funcionen bien. tanto en rapidez como en eficacia. En el caso de que existan técnicas especializadas para resolver un determinado problema. en vez de trabajar de forma secuencial como las técnicas tradicionales. Usan operadores probabilísticos. Cuando se usan para problemas de optimización maximizar una función objetivo. sus posibles soluciones) debe estar delimitado dentro de un cierto rango. número de generaciones. pueden efectuarse mejoras de las mismas hibridándolas con los Algoritmos Genéticos. Incluso en el caso en que dichas técnicas existan. El gran campo de aplicación de los Algoritmos Genéticos se relaciona con aquellos problemas para los cuales no existen técnicas especializadas. Si bien no se garantiza que el Algoritmo Genético encuentre la solución óptima.

Marco de Desarrollo Antes de continuar ahondando en la técnica de los Algoritmos Genéticos sería interesante dejarla situada dentro de un marco más amplio. La codificación más común de las soluciones es a través de cadenas binarias. de forma que sean estas últimas las que se propaguen con mayor rapidez. Sin embargo. El algoritmo genético únicamente maximiza. . La función de aptitud no es más que la función objetivo de nuestro problema de optimización. 1. y de "premiar" a las buenas. Una característica que debe tener esta función es que tiene ser capaz de "castigar" a las malas soluciones. Estrategias Evolutivas. también podrá intentarse usar la técnica con espacios de búsqueda continuos. Esta clasificación se basa sobre todo en detalles de desarrollo histórico más que en el hecho de un funcionamiento realmente diferente. El término Computación Evolutiva se refiere al estudio de los fundamentos y aplicaciones de ciertas técnicas heurísticas de búsqueda basadas en los principios naturales de la evolución. El primer punto es muy importante. Sistemas Clasificadores y Programación Genética. El primero de estos esquemas ha gozado de mucha popularidad debido a que es el que propuso originalmente Holland. Una gran variedad de algoritmos evolutivos han sido propuestos pero principalmente pueden clasificarse en: Algoritmos Genéticos. Las soluciones deben codificarse de una forma que resulte relativamente fácil de implementar en la computadora. por supuesto. aunque se han utilizado también números reales y letras. pero preferentemente cuando exista un rango de soluciones relativamente pequeño. que el recíproco de la función no genere una división por cero). reproducción y sustitución de individuos en una población. y lo más recomendable es intentar resolver problemas que tengan espacios de búsqueda discretos aunque éstos sean muy grandes. pero la minimización puede realizarse fácilmente utilizando el recíproco de la función maximizante (debe cuidarse. de hecho las bases biológicas en las que se apoyan son esencialmente las mismas.7. Las diferencias entre ellos se centra en los operadores que se usan en cada caso y en general en la forma de implementar la selección. y además porque resulta muy sencillo de implementar.  Debe poderse definir una función de aptitud que nos indique qué tan buena o mala es una cierta respuesta. Programación Evolutiva. Nos referimos a la rama de la Inteligencia Artificial que se ha denominado Computación Evolutiva.

La selección natural es el mecanismo mediante el cual los individuos mejor adaptados son los que tienen mayores posibilidades de reproducirse. Los Algoritmos Genéticos resuelven los problemas generando poblaciones sucesivas a las que se aplican los operadores de mutación y cruce. existen algunos puntos en los que se fundamentan:    La evolución es un proceso que opera a nivel de cromosomas. Y por último los Sistemas Clasificadores engloban el estudio de problemas en los que la solución buscada se corresponde con toda una población. Es en esta etapa donde se producen la mutación.Aunque los detalles de la evolución no han sido completamente comprendidos. y se trata de encontrar al individuo que represente a la mejor solución. La Programación Genética funciona igual que la técnica anterior pero se centra en el estudio de problemas cuya solución es un programa. y a nivel de fenotipo. Para finalizar se muestra un esquema en el que se sitúan las técnicas mencionadas con respecto a otros procedimientos de búsqueda conocidos. pasamos a comentar cada una de los algoritmos mencionados anteriormente. De forma breve. que es la causante de que los cromosomas de los hijos puedan ser diferentes a los de los padres. De manera que los individuos de la población son programas que se acercan más o menos a realizar una tarea que es la solución. Cada individuo es codificado como un conjunto de cromosomas. que combina los cromosomas de los padres para que los hijos tengan cromosomas diferentes. y el cruce. en cada caso. En este caso no se utiliza el operador de cruce. El proceso evolutivo tiene lugar en la etapa de la reproducción. en este caso el estudio se centra en conseguir operadores genéticos que imiten lo mejor posible a la naturaleza. Cada individuo representa una solución al problema. incluso hoy en día. para que el lector pueda tener una idea de las similitudes y diferencias entre ellos. y no a nivel de individuos. tomando la máxima importancia el operador de mutación. Estrategias Evolutivas se centran en el estudio de problemas de optimización e incluyen una visión del aprendizaje en dos niveles: a nivel de genotipo. . más que en la relación de los padres con su descendencia. La Programación Evolutiva es otro enfoque de los algoritmos genéticos.

Por ejemplo: Si tenemos la función "Es el doble de" . Sin embargo . éstos no son aplicables a problemas que posean algunas de estas características:   La función representativa del problema no es continua. La función representativa es dinámica: La relación entre las variable cambia dependiendo de los valores que tomen las mismas. Por ejemplo la función "Es mayor que" . Las reglas del tipo "X es igual a Y si el valor de X es chico. En este caso lo más conveniente es utilizarlo. resulta mas eficaz utilizar el algoritmo matemático directamente.5 de y si el valor de X es grande no se sabe que pasa para valores medios de X" . puede ser interpretada como Ecuación 2 Para resolver un problema que requiera como solución saber solamente cual número es mas grande. Los algoritmos genéticos pueden trabajar con todo tipo de funciones ya que encontrarán un mínimo aceptable si no es posible encontrar el óptimo.8 Comparación con otros métodos de optimización Algoritmos Genéticos y Matemáticos Existen problemas de optimización que pueden ser resueltos por la implementación de un algoritmo tradicional. Esta relación puede ser advertida o no. ésta puede ser interpretada como : Ecuación 1 Esto también es válido para funciones booleanas (retornan un valor de Verdadero o Falso ). En este caso el mismo no es computable. X es 1.1.

B. La solución consiste simplemente en buscar en la lista el número decimal y retornar el logaritmo dado. C y D en un paciente . C y D ¿Es factible que exista petróleo en la misma?. B . La " memorización " de una serie de datos no es otra cosa que la construcción en la memoria del equivalente a una base de datos en donde se busca la pregunta y se encuentra automáticamente la respuesta. De otra manera el simple cálculo de los mismos se vuelve imposible. .C.D . lo cual limita drásticamente el número de datos a utilizar. Se espera que ante la pregunta ¿Cuánto es siete por cinco? los niños respondan instantáneamente "35" sin tener que estar calculando mentalmente la multiplicación. Algoritmos Genéticos y Sistemas Expertos Un Sistema Experto es un programa de computadora que encuentra soluciones a problemas del tipo condicional con la estructura: Si ocurren los hechos A. B . Ejemplo: Generar una tabla que contenga todas las movidas de todos los partidos posibles de un juego de damas resultaría imposible de hacer en la práctica. La memorización de las tablas de multiplicar que se enseñan a los niños es otro ejemplo usual. ¿Cual será la enfermedad del sujeto? Ejemplo: Si el análisis geológico de una capa de suelo detecta la presencia de los compuestos químicos A . Algoritmos Genéticos y Métodos Enumerativos Existe la posibilidad teórica de encontrar soluciones a problemas a optimización enumerando todas las soluciones posibles para todos los casos y posteriormente buscando la misma en la base de datos resultante. un algoritmo genético puede ser diseñado para trabajar bajo estas condiciones. Este método es factible siempre que el número de valores sea manejable.no pueden ser convertidas en un algoritmo algebraico ya que existen valores que se desconocen. Los algoritmos genéticos usan heurística para la resolución de problemas . cual sería el valor del suceso E Ejemplo: Si un análisis médico detecta los síntomas A . Los problemas se limitan entonces a un sistema de búsqueda eficiente del caso concreto. Por ejemplo los libros con tablas de logaritmos tradicionales constan de una larga serie de cálculos para todos los valores usuales. A diferencia de un algoritmo tradicional .

Los Sistemas Expertos demostraron no ser útiles en este campo. y no se conoce el comportamiento de algunas de sus variables . es decir que las causas para arribar a una determinada conclusión no cambien . Algunos fueron exitosos y funcionaron bien . sino que la aparición de nueva información altera las pautas o reglas de inferencia de los resultados. Cada conocimiento nuevo implica reentrenar manualmente el sistema. ya que cada vez que esto sucede . Incluso se formaron en ese entonces varias compañías con el objeto específico de realizarlos y comercializarlos. Las condiciones básicas necesarias para la implementación efectiva de un sistema experto pueden observarse en el cuadro GA005. Si la información disponible de cierto asunto es limitada . pero las dificultades planteadas anteriormente no tardaron en aparecer. El Cuadro GA5 muestra las condiciones básicas necesarias para la implementación efectiva de un sistema experto Condiciones básicas necesarias para la implementación efectiva de un sistema experto . Por ende . Los Sistemas Expertos tuvieron su apogeo en la década de los 80`s . se requiere que los conocimientos estén disponibles. La necesidad permanentes de reevaluar las reglas por medio de expertos humanos lleva al sistema a una operatoria lenta y burocrática. Existen temas en los cuales la interrelación de ciertas variables no es conocida. En particular:   Existen temas en los cuales el conocimiento no es estático . aproximadamente de 1979 a 1985. que sean estructurados o factibles de ser estructurados ( convertidos a reglas heurísticas ) y que los hechos de la realidad sean relativamente estáticos . En esa época se los llegó a considerar verdaderas panaceas que resolverían muchos de los problemas cotidianos del hombre. las reglas deben ser provistas por un especialista ( o varios ) en el tema. los expertos deben reelaborrar las reglas . el Sistema experto tendrá grandes dificultades de programarse ya que sus reglas serán imprecisas.Si bien existen en la literatura ejemplos de la utilidad de ésta técnica . lo cual dificulta y retarda considerablemente la operatoria del sistema.

Difícilmente se encontrará un crítico de arte que pueda estructurar las razones por las cuales considera "buena" o "mala" a una obra de arte. Esto hace que les resulte muy difícil traducir sus pensamientos o su método deductivo a reglas que la computadora pueda interpretar. En general las palabras que pueda decir resultarán a los oídos del programador del Sistema como una serie de subjetividades imposibles de sistematizar. Existen numerosas personas que razonan por métodos empíricos. Por ejemplo: supóngase que se quiera programar un sistema experto para calificar obras de arte. Si bien la investigación básica de los algoritmos genéticos es contemporánea a la de los sistemas expertos . La idea del Sistema Experto como " resolvedor universal de problemas " quedó sepultada. se empezó a considerar a los Sistemas expertos como aptos solamente para entornos reducidos y con condiciones de ejecución acotadas. Los expertos no siempre estructuran su conocimiento. Un Sistema experto no podrá llegar a resultados valederos cuando los especialistas en un tema no puedan tener estructurados sus pensamientos. Luego de observar todo esto. la renovada importancia que se les dio en el .

El cerebro consta de unidades llamadas neuronas. se trata de poder analizar y reproducir el mecanismo de aprendizaje de sucesos que poseen los animales más evolucionados. aunque hay muy poco material disponible en este campo. llamados " capas " las cuales están relacionadas unas con otras. La red simula grupos de neuronas .ámbito científico se produjo en paralelo a la desvalorización que sufrieron estos últimos. la literatura sugiere que se podrían hacer modelos mixtos o híbridos en donde se combinen las ventajas de las redes neuronales y los algoritmos genéticos . Los algoritmos genéticos solo requieren el asesoramiento del experto para identificar las variables pertinentes . llamada " capa de salida " el valor resultante es tomado como el resultado de la red. lo que va modificando los mismos en su paso a través de la red Cuando los datos llegan a la última de las capas . Los Sistemas Expertos requieren la presencia del mismo ante cada modificación del entorno. si se las programara para este fin. las cuales están conectadas entre si formando una red (de ahí la denominación " red neuronal ") Concretamente. entre ellos como mecanismo de optimización. teniendo un peso o ponderación para los valores . llamada "capa de entradas" Cada capa transfiere la información a sus vecinas. se puede expresar que serían un modelo alternativo competitivo con los algoritmos genéticos . En rigor de verdades . Los algoritmos genéticos se revalorizaron ya que poseen las siguientes ventajas competitivas:   Solo necesitan asesoramiento del experto cuando se agregan o suprimen variables al modelo. aunque no es necesario que éstos definan sus valores ni sus relaciones (las reglas) iniciales o finales.. por lo que existe una preferencia en los investigadores en perfeccionar alguno de los dos modelos antes que tratar de unirlos. En este sentido. Los Sistemas Expertos solo trabajan con las reglas y valores que les dictan los seres humanos. La red puede ser entrenada para diversos usos . Los datos se introducen en la primera capa . Algoritmos Genéticos y Redes Neuronales Una red neuronal es el intento de poder realizar una simulación computacional del comportamiento de partes del cerebro humano mediante la réplica en pequeña escala de los patrones que éste desempeña para la formación de resultados a partir de los sucesos percibidos. Tal vez esto se deba al hecho que los GA y el estudio de las redes forman dos ramas o escuelas separadas dentro de la inteligencia artificial . .

a continuación dichos padres seleccionados se cruzarán generando dos hijos. Durante la ejecución del algoritmo.1. la cual asigna un número real a cada posible solución codificada. Como se verá a continuación. 1. los cuales en la evolución del Algoritmo Genético formarán parte de la siguiente población. Además se requiere una función de ajuste ó adaptación al problema. se representa en la Figura . los padres deben ser seleccionados para la reproducción. El resultado de la combinación de las anteriores funciones será un conjunto de individuos (posibles soluciones al problema). . que resulte adecuada al mismo.El Algoritmo Genético Simple El Algoritmo Genético Simple. 2. también denominado Canónico. sobre cada uno de los cuales actuará un operador de mutación. se necesita una codificación o representación del problema.

Figura 1 2. los cuales agrupados forman una ristra de valores (a menudo referida como cromosoma).1. la función de adaptación le asigna un número real. Si bien el alfabeto utilizado para representar los individuos no debe necesariamente estar constituido por el (0. La adaptación al problema de un individuo depende de la evaluación del genotipo. En términos biológicos. el cual se refiere como genotipo. usando la función de evaluación. Codificación Se supone que los individuos (posibles soluciones del problema). la siguiente generación de individuos. Durante la fase reproductiva se seleccionan los individuos de la población para cruzarse y producir descendientes. que se supone refleja el nivel de adaptación al problema del individuo representado por el cromosoma. Los mismos términos se utilizan en el campo de los Algoritmos Genéticos. una vez. es decir puede ser computada a partir del cromosoma. Dado un cromosoma particular. mutados. El fenotipo contiene la información requerida para construir un organismo. que constituirán. La selección de padres se efectúa al azar usando un procedimiento que favorezca a los . La función de adaptación debe ser diseñada para cada problema de manera específica. l). Esta última puede inferirse a partir del fenotipo. el conjunto de parámetros representando un cromosoma particular se denomina fenotipo. pueden representarse como un conjunto de parámetros (que denominaremos penes). buena parte de la teoría en la que se fundamentan los Algoritmos Genéticos utiliza dicho alfabeto.

y consiste en la alteración aleatoria (normalmente con probabilidad pequeña) de cada gen componente del cromosoma. ya que a cada individuo se le asigna una probabilidad de ser seleccionado que es proporcional a su función de adaptación. los individuos bien adaptados se escogerán probablemente varias veces por generación.0. para producir dos subristras iniciales y dos subristras finales. utilizando habitualmente los operadores de cruce y mutación. no se escogerán más que de vez en cuando. El operador de cruce. La Figura 3 muestra la mutación del quinto gen del cromosoma.5 y 1. la descendencia se obtiene simplemente duplicando los padres. Este procedimiento se dice que está basado en la ruleta sesgada. produciéndose dos nuevos cromosomas completos (véase la Figura 2). El operador de mutación se aplica a cada hijo de manera individual. coge dos padres seleccionados y corta sus ristras de cromosomas en una posición escogida al azar. Las formas básicas de dichos operadores se describen a continuación. sino que se aplica de manera aleatoria. mientras que. Ambos descendientes heredan genes de cada uno de los padres. Sí bien . Según dicho esquema. sus cromosomas se combinan. Después se intercambian las subristras finales. Este operador se conoce como operador de cruce basado en un punto. los pobremente adaptados al problema. En el caso en que el operador de cruce no se aplique. normalmente con una probabilidad comprendida entre 0. Una vez seleccionados dos padres. Habitualmente el operador de cruce no se aplica a todos los pares de individuos que han Figura 2 sido seleccionados para emparejarse.individuos mejor adaptados.

éste último asegura que ningún punto del espacio de búsqueda tenga probabilidad cero de ser examinado. la población evolucionará a lo largo de las generaciones sucesivas de tal manera que la adaptación media extendida a todos los individuos de la población. Si el Algoritmo Genético ha sido correctamente implementado.Figura 3 puede en principio pensarse que el operador de cruce es más importante que el operador de mutación. Para criterios prácticos. Se dice que la población converge cuando todos los genes han convergido. así como la adaptación del mejor individuo se irán incrementando hacia el óptimo global. ya que proporciona una exploración rápida del espacio de búsqueda. y es de capital importancia para asegurar la convergencia de los Algoritmos Genéticos. El concepto de convergencia está relacionado con la progresión hacia la uniformidad: un gen ha convergido cuando al menos el 95 % de los individuos de la población comparten el mismo valor para dicho gen. Se puede generalizar dicha definición al caso en que al menos un poco de los individuos de la población hayan convergido. . es muy útil la definición de convergencia introducida en este campo por De Jong en su tesis doctoral. La Figura 4 muestra como varía la adaptación media y la mejor adaptación en un Algoritmo Genético Simple típico.

Evidentemente para lograr dicho óptimo. adaptado de Goldberg de encontrar el máximo de la función f(z) = x2 sobre los enteros (1. Suponiendo que el alfabeto utilizado para codificar los individuos esté constituido por (0.2. es más probable que la adaptación media se aproxime a la del mejor individuo. Volviendo a consultar el pseudocódigo expresado en la Figura 1. Se trata por tanto de un mero ejemplo con el que pretendemos ilustrar el comportamiento del algoritmo anteriormente descrito.Figura 4 A medida que el número de generaciones aumenta. necesitaremos ristras de longitud 5 para representar los 32 puntos del espacio de búsqueda.32).. vemos que el primer paso a efectuar consiste en determinar el tamaño de la población inicial. para a continuación obtener dicha población al azar y computar la función de evaluación de cada uno de sus individuos. En la Tabla 1. Ejemplo Como ilustración de los diferentes componentes del Algoritmo Genético Simple. junto con su función de adaptación al problema. Para ello es suficiente. hemos representado los 4 individuos que constituyen la población inicial.. para emparejarse. según el modelo de ruleta sesgada . bastaría actuar por búsqueda exhaustiva. supongamos el problema .. 2.. dada la baja cardinalidad del espacio de búsqueda. con obtener 4 números reales provenientes de una distribución de probabilidad uniforme en el intervalo Tabla 1 . vemos que el siguiente paso consiste en la selección de 2 parejas de individuos. 1). Consultando él pseudocódigo de la Figura 1.2. así como la probabilidad de que cada uno de dichos individuos sea seleccionado .

determinaremos si los emparejamientos anteriores se llevan a cabo. Valiéndonos al igual que antes de. decidiéndose por tanto efectuar el cruce entre las dos parejas. Así por ejemplo. Admitamos. Como puede observarse. necesitamos determinar la probabilidad de cruce.8. tanto el mejor individuo como la función de adaptación media han mejorado sustancialmente al compararlos con los resultados de la Tabla 1. 0. Supongamos que se fije en p. p. 0. se realiza con la finalidad de que los descendientes no coincidan con los padres. Para seguir con el Algoritmo Genético Simple. l. Notése que la restricción impuesta al escoger el número entre 1 y l . tal y como se indica en la Tabla 2. De esta manera obtendríamos los 4 descendientes descritos en la tercera columna de la Tabla 2. . Esto significa que los individuos seleccionados para el cruce han sido: el individuo 2 junto con el individuo 4. A continuación siguiendo el pseudocódigo de la Figura 1. 1). así como las funciones de adaptación correspondientes. Supongamos.8. y compararlos con la última columna de la Tabla l. cada uno de los bit de las cuatro ristras de individuos.84. y no l. En este caso suponemos que el único bit mutado corresponde al primer gen del tercer individuo.11 y 0. Para ello escogeremos un número al azar entre l y 1 .43. En las dos últimas columnas se pueden consultar los valores de los individuos. = 0. 1 (siendo l la longitud de la ristra utilizada para representar el individuo). que los puntos de cruce resulten ser 2 y 3. p. mutaríamos con una probabilidad.58. números provenientes de la distribución uniforme.. que los dos números extraídos sean menores que 0. 2 en este caso. así como el individuo 1 junto con el individuo 2. supongamos que dichos 4 números hayan sido: 0. cercana a cero. por ejemplo.Tabla 2 (0.

mientras que el trabajar con poblaciones de gran tamaño puede acarrear problemas relacionados con el excesivo costo computacional.1. Este resultado traería como consecuencia que la aplicabilidad de los Algoritmos Genéticos en problemas reales sería muy limitada. Alander. Goldberg efectuó un estudio teórico. basándose en evidencia empírica sugiere que un tamaño de población comprendida entre l y 21 es suficiente para atacar con éxito los problemas por el considerados. Población inicial . 3. para a continuación introducir algunas variantes que se han ido proponiendo en trabajos desarrollados en estos últimos años.3.1.2. Parece intuitivo que las poblaciones pequeñas corren el riesgo de no cubrir adecuadamente el espacio de búsqueda. ya que resultarían no competitivos con otros métodos de optimización combinatoria. Población 3.1. Figura 5 3. con codificación binaria. crece exponencialmente con el tamaño de la ristra. Tamaño de la población Una cuestión que uno puede plantearse es la relacionada con el tamaño idóneo de la población.1. obteniendo como conclusión que el tamaño óptimo de la población para ristras de longitud I.Extensiones y Modificaciones del Algoritmo Genético Simple En este apartado se introducirán algunas extensiones y modificaciones del Algoritmo Genético Simple. Se comenzará dando un pseudocódigo para un Algoritmo Genético Abstracto (AGA).

a dichos individuos se les asigna una función objetivo igual a cero. así como la codificación utilizada. en la que 'aquellos individuos que no verifican las restricciones. Nos podríamos preguntar que es lo que sucedería si los individuos de la población inicial se obtuviesen como resultado de alguna técnica heurística o de optimización local. En los pocos trabajos que existen sobre este aspecto. La primera sería la que podríamos denominar absolutista. La regla. 3. Otra posibilidad consiste en reconstruir aquellos individuos que no verifican las restricciones.Habitualmente la población inicial se escoge generando ristras al azar. buena parte de los puntos del espacio de búsqueda representan individuos no válidos. y se siguen efectuando cruces y mutaciones hasta obtener individuos válidos. La idea general consiste en dividir la función objetivo del individuo por una cantidad (la penalización) que guarda relación con las restricciones que dicho individuo . queriendo indicar con esto la convergencia hacia óptimos locales. puede acelerar la convergencia del Algoritmo Genético. general para construir una buena función objetivo es que ésta debe reflejar el valor del individuo de una manera "real". Sin embargo en algunos casos la desventaja resulta ser la prematura convergencia del algoritmo. o bien. Otro enfoque está basado en la penalización de la función objetivo. pero en muchos problemas de optimización combinatoria. pudiendo contener cada gen uno de los posibles valores del alfabeto con probabilidad uniforme.2. se han propuesto varias soluciones. Idealmente nos interesaría construir funciones objetivo con "ciertas regularidades". es decir funciones objetivo que verifiquen que para dos individuos que se encuentren cercanos en el espacio de búsqueda. así como el hecho de que el óptimo global se encuentre muy aislado. Función objetivo Dos aspectos que resultan cruciales en el comportamiento de los Algoritmos Genéticos son la determinación de una adecuada función de adaptación o función objetivo. Por otra parte una dificultad en el comportamiento del Algoritmo Genético puede ser la existencia de gran cantidad de óptimos locales. se constata que esta inicialización no aleatoria de la población inicial. Para este planteamiento en el que los individuos están sometidos a restricciones. sus respectivos valores en las funciones objetivo sean similares. donde existe gran cantidad de restricciones. Dicha reconstrucción suele llevarse a cabo por medio de un nuevo operador que se acostumbra a denominar reparador. no son considerados como tales.

evaluación exacta). que a medida que avanza el algoritmo "dominan" a la población. de tal manera que individuos que estén muy cercanos entre sí devalúen su función objetivo. El problema de la convergencia prematura.viola. Por medio de una transformación de la función objetivo. En tal caso. lo que suele denominarse convergencia prematura. surge a menudo cuando la selección de individuos se realiza de manera proporcional a su función objetivo. En algunos casos la obtención de n funciones objetivo aproximadas puede resultar mejor que la evaluación exacta de una única función objetivo (supuesto el caso de que la evaluación aproximada resulta como mínimo n veces más rápida que la. Un problema habitual en las ejecuciones de los Algoritmos Genéticos surge debido a la velocidad con la que el algoritmo converge. ha sido imitada en el diseño de los Algoritmos Genéticos en un método propuesto por Goldberg y Richardson. es decir el coste asociado a la conversión de dicho individuo en otro que no viole ninguna restricción. pueden existir individuos con una adaptación al problema muy superior al resto. utilizando una modificación de la función objetivo de cada individuo. El problema de la lenta convergencia del algoritmo. La idea de especies de organismos. Dicha cantidad puede simplemente tener en cuenta el número de restricciones violadas ó bien el denominado costo esperado de reconstrucción. en la cual el algoritmo converge hacia óptimos locales. . es decir se produce una convergencia lenta del algoritmo. Otra técnica que se ha venido utilizando en el caso en que la computación de la función objetivo sea muy compleja es la denominada evaluación aproximada de la función objetivo. en este caso una comprensión del rango de variación de la función objetivo. mientras que en otros casos el problema es justo el contrario. se resolvería de manera análoga. En algunos casos la convergencia es muy rápida. pero en este caso efectuando una expansión del rango de la función objetivo. con objeto de que la población gane en diversidad. Una posible solución a estos problemas pasa por efectuar transformaciones en la función objetivo. se pretende que dichos "superindividuos" no lleguen a dominar a la población.

Función 3. en la cual cada individuo tiene una. con lo cual se produce una repartición más uniforme de la probabilidad de selección. Si denotamos por rango(g(I super j sub t)) el rango de la función objetivo del individuo (I super j sub t) cuando . que surge al aplicar la anterior función de selección. Denotando por (p super prop sub j. es la denominada función de selección proporcional a la función objetivo. probabilidad de ser seleccionado como padre que es proporcional al valor de su función objetivo. tal y como se ilustra en la Figura 6. pero no ante una traslación. Una de las maneras de superar el problema relacionado con la rápida convergencia proveniente de los superindividuos.3 Selección La función de selección de padres más utilizada. se tiene que: Función Esta función de selección es invariante ante un cambio de escala. es el efectuar la selección proporcional al rango del individuo.t) la probabilidad de que el individuo (I super j sub t) sea seleccionado como padre.

Un esquema de selección. el cual actúa de la manera siguiente: para. introducido por Brindle. gt denota la media. Otro posible refinamiento del modelo de selección proporcional. Cada vez que el individuo (I super j sub t) es seleccionado para el cruce. se tiene que Función La suma de los rangos. cada individuo If.. de.1)). Es . es el denominado muestreo estocástico con reemplazamiento del resto. donde.t) la probabilidad de que el individuo (I super j sub t) sea seleccionado como padre cuando la selección se efectúa proporcionalmente al rango del individuo. lambda(lambda + 1)/2. inicialiazado en g(I super j sub t)/gt.Figura 6 los individuos de la población han sido ordenados de menor a mayor (es decir el peor individuo tiene rango 1. La función de selección basada en el rango es invariante frente a la translación y al cambio de escala. y sea (p super rango sub j. El individuo en cuestión dejará de poder ser seleccionado en esa generación. dicho contador decrece en una cantidad c (c pertenece a (0. se introduce un contador. y que empíricamente ha proporcionado buenos resultados. en el cual cada individuo es seleccionado un número de veces que coincide con la parte entera del número esperado de ocurrencias de dicho suceso. constituye la constante de normalización. es el modelo de selección del valor esperado. 5. cuando su contador sea negativo. compitiendo los individuos por los restos. mientras que el individuo con mejor función objetivo tiene rango lambda). ) a función objetivo en la generación t.

igualmente espaciados y con comienzo aleatorio. mientras que la selección proporcional a la función objetivo. En el modelo de selección elitista se fuerza a que el mejor individuo de la población en el tiempo t. sea seleccionado como padre. constituye un procedimiento de selección de padres muy extendido y en el cual la idea consiste en escoger al azar un número de individuos de la población. si denotamos por n(I super j sub t) el número de veces que el individuo (I super j sub t) es seleccionado para el cruce. seleccionar el mejor individuo de este grupo. mantiene un paralelismo con el muestreo estratificado con fijación de compromiso. el cual utiliza un único giro de la ruleta siendo los sectores circulares proporcionales a la función objetivo. También el procedimiento de selección que hemos denominado muestreo estocástico con reemplazamiento del resto. este último tipo Figura 7 de selección de padres se relaciona con el muestreo sistemático. (con o sin reemplazamiento). La selección por torneo. está basada en el muestreo estratificado con fijación proporcional al tamaño. tamaño del torneo. tenemos que: Función Baker introduce un método denominado muestreo universal estocástico. Los individuos son seleccionados a partir de marcadores (véase Figura 7). y repetir el proceso hasta que el . Efectuando un paralelismo con los métodos de muestreo estadísticos.decir.

y en tal caso se ha utilizado una versión probabilística en la cual se permite la selección de individuos sin que necesariamente sean los mejores. en los cuales dichas probabilidades permanecen constantes (por ejemplo la selección basada en rangos). 3. Cruce El Algoritmo Genético Canónico descrito anteriormente utiliza el cruce basado en un punto. La ventaja de tener más de un punto de cruce radica en que el espacio de búsqueda puede ser explorado más fácilmente. Se han investigado otros operadores de cruce. .número de individuos seleccionados coincida con el tamaño de la población.4. los cromosomas (individuos) pueden contemplarse como un circuito en el cual se efectúa la selección aleatoria de dos puntos. Habitualmente el tamaño del torneo es 2. representaba una mejora mientras que añadir más puntos de cruce no beneficiaba el comportamiento del algoritmo. De Jong investigó el comportamiento del operador de cruce basado en múltiples puntos. siendo la principal desventaja el hecho de aumentar la probabilidad de ruptura de buenos esquemas. para posteriormente intercambiar las secciones que se encuentran a la derecha de dicho punto. En caso contrario se acostumbra a denominarlo extintivo. son recombinados por medio de la selección de un punto de corte. concluyendo que el cruce basado en dos puntos. en los cuales las probabilidades de selección varían de generación a generación. Una posible clasificación de procedimientos de selección de padres consistirá en: métodos de selección dinámicos. frente a métodos de selección estáticos. en el cual los dos individuos seleccionados para jugar el papel de padres. habitualmente teniendo en cuenta más de un punto de cruce. (por ejemplo la selección proporcional a la función objetivo). tal y como se indica en la Figura 8. Si se asegura que todos los individuos tienen asignada una probabilidad de selección distinta de cero el método de selección se denomina preservativo. En el operador de cruce basado en dos puntos.

en el cual uno de los puntos de corte se encuentra fijo al comienzo de la ristra que representa al individuo. el gen se copia del segundo padre. escogido de acuerdo ' a una "máscara de cruce" generada aleatoriamente.9. En la literatura. Cuando existe un l en la "máscara de cruce". En el denominado operador de cruce uniforme (Syswerda) cada gen. el término operador de cruce uniforme se relaciona con la obtención .Figura 8 Desde este punto de vista. en la descendencia se crea copiando el correspondiente gen de uno de los dos padres. el cruce basado en un punto. puede verse como un caso particular del cruce basado en dos puntos. mientras que cuando exista un 0 en la Figura 9 "máscara de cruce". el gen es copiado del primer padre. Véase Figura. tal y como se muestra en la Figura 10.

modifican el operador de cruce en el sentido del Simulated Annealing. Si tuviésemos en cuenta el valor de la función de adaptación de cada padre en el momento de generar la "máscara de cruce". tal y como se muestra en Figura 11. El concepto de "máscara de cruce" puede también servir para representar los cruces basados en un punto y basados en múltiples puntos. véase Larrañaga y Poza [26]. en el sentido de que cualquiera de los elementos del alfabeto tenga asociada la misma probabilidad. un operador de cruce basado en la función objetivo. Hablando en términos de la teoría de la probabilidad la máscara de cruce está compuesta por una muestra aleatoria de tamaño A extraída de una distribución de probabilidad de Bernouilli de parámetro l/2. de tal manera que cuanto mayor sea la función de adaptación de un individuo. De esta manera el operador de cruce se modifica definiendo un umbral de energía H. las cuales influencian la manera en la que se escogen los bits individuales. y una temperatura T. en el cual la "máscara de cruce" se interpreta como una muestra aleatoria de tamaño l proveniente de una distribución de Bernouilli de parámetro Función donde (I super j sub t) y I(super i sub t) denotan los padres seleccionados para ser cruzados. Sirag y Weiser. Según el operador propuesto el bit (i + . más probable sea heredar sus características. podríamos definir.Figura 10 de la "máscara de cruce" uniforme.

Por otra parte cuando el valor Figura 11 del parámetro temperatura se acerca a cero el hijo "resultante coincide prácticamente con uno de los padres. es decir con probabilidad cercana a la unidad los bits se van escogiendo alternativamente de cada padre. Holland. Schaffer y col. (tetha sub c)/T).5. decrecerá lentamente por medio de un programa de enfriamiento. Mutación La mutación se considera un operador básico. en la cual. Con altas temperaturas el comportamiento se asemeja al del operador de cruce uniforme. Davis. Por otra parte. con probabilidad exp( . donde T es el parámetro "temperatura" el cual. Levenick). Si bien se admite que el operador de cruce es el responsable de efectuar la búsqueda a lo largo del espacio de posibles soluciones. que proporciona un pequeño elemento de aleatoriedad en la vecindad (entorno) de los individuos de la población. al igual que en Simulated Annealing.1)-ésimo se tomará del padre opuesto al que se ha tomado el bit i-ésimo. también parece desprenderse de los experimentos efectuados por varios investigadores que el operador de mutación va ganando en importancia a medida que la población de individuos va convergiendo (Davis). la idea de que el cruce debería de ser más probable en algunas posiciones ha sido descrita por varios autores (Schaffer y Morishima. Encuentran que dicha evolución primitiva supera con creces a una evolución basada exclusivamente en la selección y el cruce. Otra conclusión de su . los definidos para el problema del agente de comercio. Existen otros operadores de cruce específicos para un determinado problema como son. el proceso evolutivo consta tan sólo de selección y mutación. encuentran que el efecto del cruce en la búsqueda es inferior al que previamente se esperaba. Utilizan la denominada evolución primitiva. por ejemplo. 3.

Schaffer y col. y los lambda individuos descendientes de los mismos. población. el proceso de reducción al tamaño original. Podemos también considerar otros procedimientos de reducción que se colocan entre los anteriores. es decir (t sub gr)=(lambda super -1). Así. (t sub rg) es decir en el porcentaje de hijos generados con respecto del tamaño de la. O bien los lambda individuos descendientes son los que forman parte de la población en el tiempo t + 1. si escogemos los (lambda sub 1) mejores de entre padres y descendientes.(l super 0. Pueden consultarse los trabajos de Ackley. Bramlette. Si bien en la idea primitiva de Holland [22] dicho reemplazamiento se efectuaba. Dicho proceso se suele hacer fundamentalmente de dos formas distintas.4535).trabajo es que la determinación del valor óptimo de la probabilidad de mutación es mucho más crucial que el relativo a la probabilidad de cruce. habitualmente dicho reemplazamiento se efectúa en bloque. algunos autores han obtenido mejores resultados experimentales modificando la probabilidad de mutación a medida que aumenta el número de iteraciones. De Jong recomienda la utilización de una probabilidad de mutación del bit de (l super -1). siguiendo lo que podemos denominar un criterio de reducción elitista de grado lambda. es una cuestión que ha sido motivo de varios trabajos. En su trabajo. por ejemplo.6. El concepto de reducción está ligado con el de tasa de reemplazamiento generacional. siendo l la longitud del string. Fogarty y Michalewicz y Janikow. donde lambda denota el número de individuos en la población. utilizan resultados experimentales para estimar la tasa óptima proporcional a l /(lambda super 0. De Jong [13] introdujo el concepto de tasa de reemplazamiento generacional con el objetivo de efectuar un solapamiento controlado entre padres e hijos. (t sub gr)= 1. Si bien en la mayoría de las implementaciones de Algoritmos Genéticos se asume que tanto la probabilidad de cruce como la de mutación permanecen constantes. (lambda sub 1)y restantes de entre los descendientes no seleccionados hasta el momento. o bien se escogen de entre los 2lambra individuos. Reducción Una vez obtenidos los individuos descendientes de una determinada población en el tiempo t. consiste en escoger lambda individuos de entre los Lambda individuos que forman parte de la población en el tiempo t. en . escogiéndose los lambda . es lo que se denomina reducción simple.9318). La búsqueda del valor óptimo para la probabilidad de mutación. de l en 1. 3. los lambda individuos más adaptados al problema.

~. en el cual para llevar a cabo el reemplazamiento generacional. de la población es seleccionada para ser cruzada. Estas selecciones aleatorias tienen en consideración el valor de la función objetivo de cada individuo. Cada cierto número de generaciones. selecciona al azar r1 individuos para la reproducción. a cabo un Algoritmo Genético. y menor es la probabilidad de que dicho individuo fallezca. Michalewicz introduce un algoritmo que denomina Algoritmo Genético Modificado. definiéndose un procedimiento por medio del cual se mueve el material genético de una "isla" a otra. es un asunto de capital importancia. un ejemplo de los cuales lo constituye GENITOR (Whitley y Kauth. Para una profundización sobre el tema puede consultarse Stender. t. obteniéndose de esta manera una fuente de diversidad genética.7. Se pueden distinguir diferentes modelos de islas en función de la comunicación entre las subpoblaciones. en la cual existe una subpoblación que es seleccionada como maestra (aquella que tiene mejor media en el valor de la función objetivo). La idea básica consiste en dividir la población total en varias subpoblaciones en cada una de las cuales se lleva. El resto de los lambda . La determinación de la. se efectúa un intercambio de información entre las subpoblaciones. Modelos de islas. así como r2 individuos (distintos de los anteriores) destinados a morir. 3. mayor es la probabilidad de que sea seleccionado para la reproducción. Este tipo de Algoritmos Genéticos se conocen bajo el nombre de SSGA (Steady State Genetie Algorithm). Cada subpopulación es una "isla". Los hijos resultantes podrán reemplazar a miembros de la población anterior. La introducción de la migración hace que los modelos de islas sean capaces de explotar las diferencias entre las diversas subpoblaciones. Algoritmos Genéticos Paralelos En este apartado se introducirán tres maneras diferentes de explotar el paralelismo de los Algoritmos Genéticos. Whitley). tasa de migración. por medio de los denominados modelos de islas. siendo las demás consideradas como esclavas. (MOD sub GA). proceso que se denomina migración. de tal manera que cuanto mayor es la función objetivo. Algunas comunicaciones típicas son las siguientes:  Comunicación en estrella. Todas las subpoblaciones esclavas mandan sus h1 mejores individuos . (r1 + r2) individuos son considerados como neutros y pasan directamente a formar parte de la población en la siguiente generación.cada paso una proporción. ya que de ella puede depender la convergencia prematura de la búsqueda.

Véase Figura 13. . Figura 12  Comunicación en red. Gorges-Schleuter. > 1) a la subpoblación maestra la cual a su vez manda sus h2 mejores individuos (h2 > 1) a cada una de las subpoblaciones esclavas. en la cual no existe una jerarquía entre las subpoblaciones. en la cual cada subpoblación envía sus h4 mejores individuos (h4 > 1). Véase Figura 14. El modelo de islas ha sido utilizado por varios autores (Whitley y Starkweather. mandando todas y cada una de ellas sus h3 (h3 > 1) mejores individuos al resto de las subpoblaciones.(h1. Véase Figura 12. Tanese). Figura 13  Comunicación en anillo. efectuándose la migración en un único sentido de flujo. a una población vecina.

su respuesta se parecería a: "En este momento hay 30 grados centigrados y se espera que para el resto del día la temperatura se eleve hasta los 35 grados . La lógica borrosa trata de poder incorporar métodos para que conceptos vagos puedan ser utilizados como funciones matemáticas. "Hace frio" "Hoy llovió mucho" "No llovió casi nada: Apenas unas gotitas" Si alguien responde a la pregunta en forma concreta .Figura 14 4. Esta ha tenido una utilidad práctica inmediata en los mecanismos de control de las maquinarias. El ser humano se maneja habitualmente con conceptos vagos . Esperamos oír algo similar cuando miramos la televisión . Una matemática estructurada para trabajar con conceptos precisos no puede entonces representar estos conceptos. para luego decaer a 20 grados a lo largo dela noche" Este tipo de respuesta parece extractada del parte meteorológico del noticiero. pero no tenemos la expectativa de hacerlo cuando le preguntamos al compañero de trabajo que acaba de llegar si hace calor afuera del edificio. Tenemos entonces que el hombre se maneja con términos vagos para muchas de las acciones de su vida. los cuales no pueden ser representados por la matemática tradicional. es factible que las respuestas sean del tipo:     "Hace mucho calor". Si se pregunta a una serie de personas acerca del estado del clima . Lógica borrosa (fuzzy logic) y algoritmos genéticos La lógica borrosa trata de acercar la matemática al lenguaje impreciso del hombre común. La lógica borrosa no es un mecanismo de optimización en .

Funciones Borrosas La lógica borrosa trabaja con las llamadas funciones borrosas . las cuales permiten efectuar las condiciones descriptas precedentemente.1. por lo que podríamos decir que se trata de un método optimizado de control. la programación del software es mas simple al igual que su mantenimiento. un dispositivo automático puede ser programado con órdenes del tipo expuesto en el Cuadro GA6 Tipo de Órdenes plausibles de ser implementadas en un contexto de lógica borrosa La formulación de este tipo de reglas es mucho mas sencilla de entender y explicar por los expertos humanos que deben introducir las mismas. La difusión que ha tenido en el mundo se le debe en gran parte a la incorporación que han hecho los japoneses durante la década de los 80's de estas técnicas en los productos que comercializan mundialmente . Así mismo . pero vuelve mas flexibles a los sistemas de control de los dispositivos electrónicos .si mismo .. (No es raro ver un lavarropas o una heladera de marca japonesa con el logotipo de Fuzzy Logic incorporado). en especial los electrodomésticos. 4. Si se utiliza lógica borrosa . .

Ejemplo: Para definir la función " mucho " dentro de una serie de valores se procede de la siguiente manera:  Se toma la serie . . Ecuación 6 Para facilitar los cálculos . Tenemos entonces que dada una serie variando de a0 hasta an elementos: Ecuación 3  Se establece como amplitud de la serie la diferencia del límite superior y el inferior: Ecuación 4  La función " mucho " queda definida como: Ecuación 5 En una serie de números naturales . A=(LS-LI) . Ejemplo: la serie de {-3 -2 -1 0 1 2 3 4 5} puede ser convertida en {0 1 2 3 4 5 6 7 8} sumándole 3 a todos los términos. se la ordena de mayor a menor y se extrae el valor mas grande y el valor mas chico. por lo que variará desde 0/1000 para x=0 hasta 1000/1000 para x=1000. A=(1000-0) . Estos valores corresponden al límite superior y al límite inferior de la serie. conviene convertirla en serie de números positivos sumando a cada término el valor máximo negativo. si la serie no comienza de 0 o contiene valores negativos. Tendremos entonces un rango de valores entre 0 y 1. cuyos valores estén entre 0 y 1000 . A=1000 La función " mucho " fue definida como x/A .

la ecuación 3 se transforma en: Ecuación 7 Donde LI0 y LS0 representan los límites originales.6} puede ser convertida en {0.3} restándole 3 a todos los términos.1. Estos límites se normalizan a LS1 y LI1 llevando la serie al rango {0..n}.5.4.2.La serie {3. Por ello . Ecuación 8 Veamos un caso concreto: Supongamos la siguiente serie de temperaturas: ÍTEM ( ti ) 1 2 3 4 5 6 7 8 9 10 11 12 9 10 11 12 13 14 15 16 17 18 9 10 3 5 7 9 11 14 16 18 22 25 27 29 HORA TEMPERATURA (GRADOS CELSIUS) .

blanco o negro. No existen . veamos como trabaja entonces la función " mucho " Ecuación 9 Observamos que en definitiva la función " mucho " retorna un número representativo del 96. pero no discriminar si eso es mucho o no.la función " Poco " puede ser descripta como la inversa de la función " mucho " .13 14 15 16 17 18 19 20 11 12 13 14 15 16 17 18 30 32 33 34 35 34 30 25 La pregunta que se sesea que se responda es ¿Hizo mucho calor a las 16 hs?. De la misma forma . volviéndose imprecisos los mismos ( de ahí la nomenclatura de lógica borrosa ) Dado que la función se acerca al 100% obtendremos como resultado que efectivamente hizo mucho calor a la hora señalada. Cuanto mas se acerque el número a 1 o 100% mas valedera será la afirmación.. Todos los valores intermedios caen bajo la categoría de "gris ". Un valor tendrá un " gris mas oscuro " ( que lo acercará al negro ) cuando su valor tienda a 1 . por lo que tendremos que : . entonces límites precisos para las categorías.85%. Cuanto mas se acerque a 0 . De la misma manera . Esta pregunta es imposible de responder por los métodos tradicionales ya que la computadora solo puede retornar el valor 34 . será un " gris mas claro " ( que lo acercará al blanco ) si tiende a 0. menos valedera será la misma. Solo en el caso que el resultado sea 0 o 1 (0% o 100%) se puede decir taxativamente que el enunciado es verdadero o falso.

Algoritmos Genéticos basados en Lógica borrosa Existe la posibilidad de planear la arquitectura de un GA para que sus funciones de convergencia y control.2.Ecuación 10 Ecuación 11 Dado que el resultado de la función se acerca al 0% obtendremos como resultado que NO hizo poco calor a la hora señalada. 4. Las diferencias entre un GA con y sin lógica borrosa pueden ser apreciadas en el Cuadro GA7 . Esto acarrearía por un lado la ventaja de la programación de las mismas. Ejemplo: Si se programa el GA para seleccionar los especímenes con valores " altos " . su implementación no es en si misma ni buena ni mala . aunque tendría un efecto en la supervivencia indistinta de ciertos especímenes con similar valor de la función borrosa aunque diferente valor absoluto. El GA estaría entonces programado para la supervivencia ante entornos borrosos. Sin lógica borrosa el segundo ejemplar sería mas competitivo que el primero y lo aniquilaría. dependiendo de los objetivos del programador y de los resultados esperados. Dado que el efecto de utilizar o no esta lógica cambia la arquitectura del GA . esto dará igual ponderación a un ejemplar con un 90% de performance (de la función "alto" ) que a uno con el 92% de la misma función. así como sus operadores genéticos estén basados en lógica borrosa.(Ambos son "altos").

3.1. 31. pero restringiendo a la variable x a tomar valores comprendidos entre 0 y 31. Obviamente el máximo se tiene para x = 31. donde f vale 961.2.30. No necesitamos saber algoritmos genéticos para resolver este problema... a x sólo le vamos a permitir tomar valores enteros. pero su sencillez hace que el algoritmo sea más fácil de comprender.Cuadro GA7 Diferencias entre un GA con y sin lógica borrosa 5.. . Ejemplo1 Veamos cómo funciona un algoritmo genético: Vamos a partir de una función f(x) muy sencilla: f(x)=x2 Imagina que deseas encontrar el valor de x que hace que la función f(x) alcance su valor máximo. Ejemplos de Aplicación 5.1.. Aún más. es decir: 0.

Así hasta 5 veces y obtendrás el primer individuo.1. la anterior (un 0) por 4. si sale cara.0) (0.1. Repite ahora la secuencia anterior para generar los individuos de la población restantes.1.0) (0. A cada posible valor de la variable x en representación binaria le vamos a llamar individuo.. la segunda (un 1) por 8 y la primera(un 0) por 16 y a continuación haz la suma: 11. Una manera de hacerlo es con la codificación binaria. Con esta codificación un posible valor de x es (0.1) (3) 12 18 15 24 26 1 (4) 144 324 225 576 676 1 (5) 6 3 2 5 4 1 Cada fila en la tabla 1 está asociada a un individuo de la población inicial.0.0. Una manera de generarla es aleatoriamente: coge una moneda y lánzala al aire.0. Una colección de individuos constituye lo que se denomina población y el número de individuos que la componen es el tamaño de la población.0.0) equivale a x = 0 y que (1. Debemos partir de una población inicial. la penúltima (un 1) por 2. ¿Cómo se interpreta esto? Muy sencillo: multiplica la última componente (un 1) por 1.0.1.0.0.1) (1. Para este ejemplo ilustrativo vamos a escoger 6 individuos.1. Nuestro siguiente paso es hacer competir a los individuos entre sí.SELECCION (1) 1 2 3 4 5 6 (2) (0.1. El significado de cada columna de la tabla es el siguiente: (1) = Número que le asignamos al individuo.0) (1.0. En total tienes que lanzar 5 * 6 = 30 veces la moneda.1).0.Lo primero que debemos hacer es encontrar una manera de codificar las posibles soluciones(posibles valores de x).1.0. .1.1. Tabla 1.0.1. Repite el lanzamiento de la moneda y tendremos la segunda componente del primer individuo (un 0 sí sale cara y un 1 sí sale cruz).1.1.0) (1. Este proceso se conoce como selección. Observa que (0. la primera componente del primer individuo es un 0 y en caso contrario un 1.1. La tabla 1 resume el proceso.0.1) equivale a x = 31. debemos escoger un tamaño de población.1.0. Una vez que tenemos codificada la solución.

por ejemplo. La población resultante se muestra en la columna (2) de la tabla 3. que en el torneo entre el individuo 1 y el 6 de la población inicial.0. Existen muchas variantes de este proceso de selección..1. Por ejemplo.0.0.1.0) (1. Calcula la media de f y obtendrás fmed=324. lo cual se ha realizado aleatoriamente. Dados dos individuos pareja se establece un punto de cruce aleatorio. se realiza el cruce. el primero de ellos ha recibido dos copias. En cuanto a la columna (5) ahora te lo explico. mientras que el segundo cae en el olvido.(2)= Individuo en codificación binaria. Una manera de realizar el proceso de selección es mediante un torneo entre dos. mientras que el otro hijo de la pareja conserva los tres primeros bits de la madre y hereda los dos últimos del padre. Tabla 3. Observa que el mejor individuo es el 5 con f = 676.1.0) (1.0) (0.0) (3) 5 3 2 6 1 4 (4) 1 3 3 1 1 1 Tras realizar la selección. Después de realizar el proceso de selección.1.1.0.0. Tabla 2.POBLACION TRAS EL CRUCE .CRUCE (1) 1 2 3 4 5 6 (2) (0.1. Una manera de hacerlo es mediante el cruce 1X: se forman parejas entre los individuos aleatoriamente de forma similar a la selección. que no es más que un número aleatorio entre 1 y 4 (la longitud del individuo menos 1). A cada individuo de la población se le asigna una pareja y entre ellos se establece un torneo: el mejor genera dos copias y el peor se desecha.3.. La columna (5) indica la pareja asignada a cada individuo. (3) = Valor de x.0) (1.0. en la pareja 2-3 el punto de cruce es 3.0) (1.1. la población que tenemos es la mostrada en la columna (2) de la tabla 2.0. lo que significa que un hijo de la pareja conserva los tres primeros bits del padre y hereda los dos últimos de la madre. (4) = Valor de f(x). aunque este método nos vale para ilustrar el ejemplo.1.1.1.0. Observa.

El siguiente paso es volver a realizar la selección y el cruce tomando como población inicial la de la tabla 3.0. pero el algoritmo no te confirma que lo sea.1. Además fmed ha subido de 324.0. con lo que podemos quedar estancados en un mínimo local no muy bueno.1. es introducir una mutación tras la selección y el cruce. existe la tendencia a la homegeinización de la población. ¿Qué quiere decir esto? Simplemente que los individuos después de la selección y el cruce son mejores que antes de estas transformaciones. Consideraciones adicionales En problemas reales en los que se aplican los algoritmos genéticos.(1) 1 2 3 4 5 6 (2) (0. Y ¿cuál es el óptimo?.0.0.0) (1. Esta manera de proceder se repite tantas veces como número de iteraciones tú fijes. Puede que obtengas el óptimo.1.0.1.0) (3) 10 28 14 16 26 18 (4) 100 784 196 256 676 324 En la columna (3) tienes el valor de x.1.3.0.3 a 389. Ejemplo 2 .1. si está bien construido. Una vez que has realizado la selección y el cruce escoges un número determinado de bits de la población y los alteras aleatoriamente. También es buena idea ir guardando la mejor solución de todas las iteraciones anteriores y al final quedarte con la mejor solución de las exploradas. Existen técnicas para contrarrestar esta "deriva genética".0) (1. El mecanismo más elemental.0) (1. En realidad un algoritmo genético no te garantiza la obtención del óptimo pero. es decir a que todos los individuos de la misma sean idénticos. aunque no siempre suficientemente eficaz. Así que quédate con la mejor solución de la última iteración. Fíjate en que ahora el valor máximo de f es 784 (para el individuo 2). mientras que antes de la selección y el cruce era de 676.0) (0. en la siguiente tienes el valor de f correspondiente. te proporcionará una solución razonablemente buena.1.1.0) (1.1.1. 2.0. Esto impide que el algoritmo siga explorando nuevas soluciones. En nuestro ejemplo consiste simplemente en cambiar algunos(s) bit(s) de 1 a 0 ó de 0 a 1.0.

32 1.78 0.60 0. tiendas de venta.58 0.85 0.25 0.73 0.02 1.82 0. en función de las inversiones totales (almacenes. en millones de pesos.55 0.28 0.40 0.41 0.90 Beneficio III 0 0.13 1. en 4 ciudades de las principales de México se decide iniciar una vigorosa campaña comercial: México en el centro.00 Beneficio IV 0 0.42 0. Guadalajara en el occidente y Veracruz en el oriente.23 1.50 0.60 0. III y IV. representantes.45 0.) Estos datos se ilustran en la tabla 2 y en la figura 4.25 0.33 0. lo primero que necesitamos determinar es cuál será el esquema a utilizarse para representar .96 1.Con la finalidad de aclarar mejor los conceptos cubiertos previamente.62 0.60 Tabla 1.90 0. publicidad.56 0. Así pues. Para simplificar los cálculos.38 Beneficio II 0 0.75 0.90 0.15 0. etc. Datos obtenidos con la investigación de mercado en cada una de las regiones en estudio 1) Representación: Para poder aplicar el algoritmo genético. Un estudio de mercado ha sido realizado en cada una de las zonas citadas y han sido establecidas curvas de ganancias medias. supondremos que las asignaciones de créditos o de inversiones deben hacerse por unidades de 1 millón de pesos.65 0.48 0.88 0. II.90 1.65 0.80 0. A esas 4 ciudades van a corresponder las zonas comerciales I. Monterrey en el noroeste. La pregunta es: ¿en dónde se deben de asignar los 10 millones de pesos de los que se dispone para que la ganancia total sea máxima? Inversión (en millones) 0 1 2 3 4 5 6 7 8 9 10 Beneficio I 0 0.20 0.53 0. presentaremos ahora una sencilla aplicación del algoritmo genético a un problema de optimización: Un grupo de financieros mexicanos ha resuelto invertir 10 millones de pesos en la nueva marca de vino "Carta Nueva".

. el algoritmo genético tendría que modificarse de manera mínima. se usará una función de ajuste que haga que los resultados producidos siempre se encuentren en el rango válido. y que tengan un beneficio máximo. en este caso. Debido a que en este caso los 4 bits utilizados para representar una solución pueden producir más valores de los que se necesitan. 3 millones en la zona II. Esta es la solución óptima. que será del 1%. Debe hacerse notar que. El tamaño de población manejado para este ejemplo será de 50 cromosomas. que realice el proceso inverso). Nótese que cuando no se viole ninguna restricción (i. 2) Función de Aptitud: Dado que el objetivo es obtener las inversiones que sumen 10. En este caso necesitamos 4 bits (2^4 = 16) para representar cada solución. si deseáramos analizar inversiones que sumen otra cantidad. se le asignará una probabilidad baja.. Bibliografía . que se calculan de acuerdo a los valores de la tabla 2. 4) Resultados: El resultado obtenido en una corrida típica es un beneficio de 1.las posibles soluciones del problema. podemos usar la siguiente función de aptitud penalizada: c1+c2+c3+c4 F(x)=------------500*V+1 donde c1.e. correspondiente a invertir 4 millones en la zona comercial I.e. El tiempo que le tomó al algoritmo genético encontrar este valor fue de sólo 13 segundos. 1 millón en la zona III y 2 millones en la zona IV. se requieren entonces 16 bits (4 x 4) por cada cromosoma. Como existen 4 valores independientes (uno por cada zona de estudio). la cual se obtuvo originalmente mediante programación dinámica. 5. porque cada una admite 11 valores posibles (de 0 a 10). Es importante hacer notar que se requiere una función de codificación (i.81 millones de pesos. cuando la suma de inversiones sea exactamente 10) la función de aptitud no será "castigada". que transforme el valor de la inversión a binario) y una de decodificación (i. y en unidades menores al millón. c3 y c4 son las ganancias por zona. mientras que la programación dinámica requeriría una cantidad tal de trabajo que prácticamente se volvería inoperante. La probabilidad que se dará a la misma será del 80%.e. y v es el valor absoluto de la diferencia entre la suma obtenida de las inversiones y 10. En cuanto a la mutación. c2. 3) Operadores: Se usará una cruza de 2 puntos. y se correrá el algoritmo genético durante 20 generaciones..

fciencias.iamnet.com/CapeCanaveral/8104/ivan.geocities.es/~rmarti/genet.mx/revista/soluciones/N17/Gold3.geocities.unam.mx/revista/soluciones/Coello2.htm  "Travelling Salesman problem using genetic algoritms" http://www.htm  "Construcción de bases de conocimiento con Computación Evolutiva" http://www.com/users/jcontre/genetic/ag. "Aplicaciones de la Computación Evolutiva" http://www.com/SiliconValley/7491/aplce_c.uv.lalena.fciencias.com/users/jcontre/genetic/operadores.html  "Introducción a los algoritmos genéticos" http://www.htm  "Introducción a la vida artificial" http://içgeocities.com/ai/TSP  "Algoritmos genéticos" http://www.unam.com/SiliconValley/9802/3d5ca400.htm  "Evaluación del comportamiento de los Algoritmos Genéticos" http://www.htm  "Operadores genéticos" http://www.htm  "Algoritmos Genéticos" http://www.(Tantas veces va el cántaro al agua hasta que se rompe)" http://homepages.iamnet.fciencias.mty.unam.html  "Los placeres existenciales de los algoritmos genéticos" http://www.mx/~lagrado/al-gen.mx/revista/soluciones/N17/Vlad1.html  "Algoritmos Genéticos" http://www.html  "Introducción.iamnet.com/users/jcontre/genetic/ag.itesm.htm .

Goldberg. 412 p.htm [1] Holland. Vol. 1975. s guide to Evolutionary Computation" http://gnomics.H. C..nl/~gusz/Flying_Circus/index. (Editor). 1989.. "Adaptation in Natural and Artificial Systems". [6] Davis. R. "Genetic Algorithms in Search. Addison. TCGA Report No. J.C.. 40. pp. B. "Genetic Programming. S. J. Optimization and Machine Learning". Van Nostrand Reinhold. Artificial Intelligence. 1992. 819 p. University of Michigan Press. IEEE Computer. L. 1993. 1991. and Petry. [4] Goldberg.com/MannaMouse. The University of Alabama. [8] Smith.P. "Handbook of Genetic Algorithms". pp. [10] Srinivas.E.es/~encore/www/top. "Genetic Algorithms: Principles of Natural Selection Applied to Computation". J. 1991. The Clearinghouse for Genetic Algorithms. M. [5] Booker. 91002. 385 p.. 235-282. 211 p. June 1994.E.leidenuniv. D. L. J. Science. June 1994.. "Classifier Systems and Genetic Algorithms".html  "The Hitch-Hiker.. and Alippi. "SGA-C : A C-language Implementation of a Simple Genetic Algorithm".. 261.E. pp.. [2] Koza.. 872-878.E. 1989. D. D. Ph. No. 28-43...H. 17-26. and Patnaik. The MIT Press. Treleaven.Wesley Publishing Company. 109 p...wi.L.B. pp. 5123.. [7] Forrest.A. IEEE Computer. and Holland. "Genetic Algorithms". L. On the Programming of Computers by Means of Natural Selection". August 13. [3] Buckles.E. "MannaMouse" http://www. Goldberg.. IEEE Computer Society Press.R.caplet.. 1992. May 14.. "Genetic Algorithms : A Survey". F. [9] Ribeiro Filho.html#parameters  "The flying circus" (contiene acceso al programa ejecutable Match) http://www.M. .udg. J. and Earickson. "Genetic-Algorithm Programming Environments".

E.J. [14] Porter. 1991. 1988. [15] Koza. J. Segunda Edición. The MIT Press. Morgan Kaufmann Publishers. pp. "Genetic Programming II : Automatic Discovery of Reusable Programs"... 1992. Morgan Kaufmann Publishers.Vico . G. A.D. (Editor). (Editor). 322 p. 60-3. K. Vol. Dr. Nº 5. 1993. y Faure. 3. Dobb's Journal of Software Tools for the Professional Programmer. 1977. 13. "Foundations of Genetic Algorithms 2". http://proinf. 311 p."Computación Evolutiva Basada en un modelo de codificaión implicita".net/permalink/jugar_al_ajedrez . R. 746 p. [16 ] Francisco J. CECSA.. [13] Kaufmann. L. pag 20-25. "Invitación a la Investigación de Operaciones". "Handling Huge Arrays".[11] Rawlins. México. 341 p. "Foundations of Genetic Algorithms". Varedas&Francisco J. Inteligencia Artificial.. [12] Whitley. No.