ALGORITMOS GENÉTICOS

Tamaño: px
Comenzar la demostración a partir de la página:

Download "ALGORITMOS GENÉTICOS"

Transcripción

1 1 Introducción ALGORITMOS GENÉTICOS 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 (1859). 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. Los principios básicos de los Algoritmos Genéticos fueron establecidos por Holland (1975), y se encuentran bien descritos en varios textos Goldberg (1989), Davis (1991), Michalewicz (1992), Reeves (1993). 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. El poder de los Algoritmos Genéticos proviene del hecho de que se trata de una técnica robusta, y pueden tratar con éxito una gran variedad de problemas provenientes de diferentes áreas, incluyendo aquellos en los que otros métodos encuentran dificultades. Si bien no se garantiza que el Algoritmo Genético encuentre la solución óptima del problema, existe evidencia empírica de que se encuentran soluciones de un nivel aceptable, en un tiempo competitivo con el resto de algoritmos de optimización combinatoria. En el caso de que existan técnicas especializadas para resolver un determinado problema, lo más probable es que superen al Algoritmo Genético, tanto en rapidez como en eficacia. El gran campo de aplicación de los Algoritmos Genéticos se relaciona con aquellos problemas para los cuales no existen técnicas especializadas. Incluso en el caso en que dichas técnicas existan, y funcionen bien, pueden efectuarse mejoras de las mismas hibridándolas con los Algoritmos Genéticos. La estructura de este capítulo es como sigue: en la siguiente sección se introduce por medio de 1

2 un ejemplo el denominado Algoritmo Genético Simple, también conocido como Algoritmo Genético Canónico, para a continuación, mostrar distintas extensiones y modificaciones del mismo, relativas a los operadores de selección, cruce, mutación y reducción, así como a la hibridación del Algoritmo Genético con otros algoritmos de búsqueda local, y a diversos modelos de Algoritmos Genéticos Distribuidos. En la siguiente sección nos preguntamos el motivo por el cual funcionan los Algoritmos Genéticos, demostrándose el teorema de los esquemas, y referenciándose algunos trabajos teóricos relacionados con las condiciones suficientes para garantizar la convergencia de dichos algoritmos hacia el óptimo global. Finalizamos el capítulo, mostrando operadores de cruce y mutación específicos para el problema del agente viajero. 2 El Algoritmo Genético Simple BEGIN /* Algoritmo Genetico Simple */ Generar una poblacion inicial. Computar la funcion de evaluacion de cada individuo. WHILE NOT Terminado DO BEGIN /* Producir nueva generacion */ FOR Tamaño poblacion/2 DO BEGIN /*Ciclo Reproductivo */ Seleccionar dos individuos de la anterior generacion, para el cruce (probabilidad de seleccion proporcional a la funcion de evaluacion del individuo). Cruzar con cierta probabilidad los dos individuos obteniendo dos descendientes. Mutar los dos descendientes con cierta probabilidad. Computar la funcion de evaluacion de los dos descendientes mutados. Insertar los dos descendientes mutados en la nueva generacion. END IF la poblacion ha convergido THEN Terminado := TRUE END END Figura 6.1: Pseudocódigo del Algoritmo Genético Simple El Algoritmo Genético Simple, también denominado Canónico, se representa en la figura 6.1. Como se verá a continuación, se necesita una codificación o representación del problema, que resulte adecuada al mismo. Además se requiere una función de ajuste ó adaptación al problema, la cual asigna un número real a cada posible solución codificada. Durante la ejecución del algoritmo, los padres deben ser seleccionados para la reproducción, a continuación dichos padres seleccionados se cruzarán generando dos hijos, sobre cada uno de los cuales actuará un operador de mutación. El resultado de la combinación de las anteriores funciones será un conjunto de individuos (posibles soluciones al problema), los cuales en la evolución del Algoritmo Genético formarán parte de la siguiente población. 2.1 Codificación Se supone que los individuos (posibles soluciones del problema), pueden representarse como un conjunto de parámetros (que denominaremos genes), los cuales agrupados forman una ristra de valores (a menudo referida como cromosoma). Si bien el alfabeto utilizado para representar los individuos no debe necesariamente estar constituido por el {0, 1}, buena parte de la teoría en la que se fundamentan los Algoritmos Genéticos utiliza dicho alfabeto. 2

3 En términos biológicos, el conjunto de parámetros representando un cromosoma particular se denomina fenotipo. El fenotipo contiene la información requerida para construir un organismo, el cual se refiere como genotipo. Los mismos términos se utilizan en el campo de los Algoritmos Genéticos. La adaptación al problema de un individuo depende de la evaluación del genotipo. Esta última puede inferirse a partir del fenotipo, es decir puede ser computada a partir del cromosoma, usando la función de evaluación. La función de adaptación debe ser diseñada para cada problema de manera específica. Dado un cromosoma particular, la función de adaptación le asigna un número real, que se supone refleja el nivel de adaptación al problema del individuo representado por el cromosoma. Durante la fase reproductiva se seleccionan los individuos de la población para cruzarse y producir descendientes, que constituirán, una vez mutados, la siguiente generación de individuos. La selección de padres se efectúa 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 función de adaptación. Este procedimiento se dice que está basado en la ruleta sesgada. Según dicho esquema, los individuos bien adaptados se escogerán probablemente varias veces por generación, mientras que los pobremente adaptados al problema, no se escogerán más que de vez en cuando. Una vez seleccionados dos padres, sus cromosomas se combinan, utilizando habitualmente los operadores de cruce y mutación. Las formas básicas de dichos operadores se describen a continuación. El operador de cruce, coge dos padres seleccionados y corta sus ristras de cromosomas en una posición escogida al azar, para producir dos subristras iniciales y dos subristras finales. Después se intercambian las subristras finales, produciéndose dos nuevos cromosomas completos (véase 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. Habitualmente el operador de cruce no se aplica a todos Punto de cruce Punto de cruce Padres Descendientes Figura 6.2: Operador de cruce basado en un punto 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 mutación se aplica a cada hijo de manera individual, y consiste en la alteración aleatoria (normalmente con probabilidad pequeña) de cada gen componente del cromosoma. La Figura 6.3 muestra la mutación del quinto gen del cromosoma. Si bien puede en principio pensarse gen mutado Descendiente Descendiente mutado Figura 6.3: Operador de mutación que el operador de cruce es más importante que el operador de mutación, ya que proporciona una exploración rápida del espacio de búsqueda, éste último asegura que ningún punto del espacio de búsqueda tenga probabilidad cero de ser examinado, y es de capital importancia para asegurar la convergencia de los Algoritmos Genéticos. Para criterios prácticos, es muy útil la definición de convergencia introducida en este campo por De Jong (1975) en su tesis doctoral. Si el Algoritmo Genético ha sido correctamente implementado, 3

4 Población x f(x) valor f(x)/ f(x) Probabilidad inicial valor (función (probabilidad de selección (fenotipos) genotipo adaptación) selección) acumulada Suma 1170 Media 293 Mejor 576 Tabla 6.1: Población inicial de la simulación efectuada a mano correspondiente al Algoritmo Genético Simple 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, así como la adaptación del mejor individuo se irán incrementando hacia el óptimo global. 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 dice que la población converge cuando todos los genes han convergido. Se puede generalizar dicha definición al caso en que al menos un β% de los individuos de la población hayan convergido. La Figura 2.4 muestra como varía la adaptación media y la mejor adaptación en un Algoritmo Adaptación Mejor Media Generaciones Figura 6.4: Adaptación media y mejor adaptación en un Algoritmo Genético Simple Genético Simple típico. A medida que el número de generaciones aumenta, es más probable que la adaptación media se aproxime a la del mejor individuo. 2.2 Ejemplo Como ilustración de los diferentes componentes del Algoritmo Genético Simple, supongamos el problema adaptado de Goldberg (1989) de encontrar el máximo de la función f(x) = x 2 sobre los enteros {1, 2,..., 32}. Evidentemente para lograr dicho óptimo, bastaría actuar por búsqueda exhaustiva, dada la baja cardinalidad del espacio de búsqueda. Se trata por tanto de un mero ejemplo con el que pretendemos ilustrar el comportamiento del algoritmo anteriormente descrito. Consultando el pseudocódigo de la Figura 6.1, 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. Suponiendo que el alfabeto utilizado para codificar los individuos esté constituido por {0, 1}, necesitaremos ristras de longitud 5 para representar los 32 puntos del espacio de búsqueda. En la Tabla 6.1, hemos representado los 4 individuos que constituyen la población inicial, junto con su función de adaptación al problema, así como la probabilidad de que cada uno de dichos individuos sea seleccionado según el modelo de ruleta sesgada para emparejarse. Volviendo a consultar el pseudocódigo expresado en la Figura 6.1, vemos que el siguiente paso consiste en la selección de 2 parejas de individuos. Para ello es suficiente, con obtener 4 números reales provenientes de una distribución de probabilidad uniforme en el intervalo [0, 1], y compararlos con la última columna de la Tabla 6.1. Así por ejemplo, supongamos que dichos 4 números hayan sido: 4

5 Emparejamiento Punto Descen- Nueva población x f(x) de los individuos de dientes descendientes valor función seleccionados cruce mutados genotipo adaptación Suma 2610 Media Mejor 841 Tabla 6.2: Población en el tiempo 1, proveniente de efectuar los operadores de cruce y mutación sobre los individuos expresados en la Tabla 6.1, los cuales constituyen la población en el tiempo ; 0.84; 0.11 y Esto significa que los individuos seleccionados para el cruce han sido: el individuo 2 junto con el individuo 4, así como el individuo 1 junto con el individuo 2. Para seguir con el Algoritmo Genético Simple, necesitamos determinar la probabilidad de cruce, p c. Supongamos que se fije en p c = 0.8. Valiéndonos al igual que antes de, 2 en este caso, números provenientes de la distribución uniforme, determinaremos si los emparejamientos anteriores se llevan a cabo. Admitamos, por ejemplo, que los dos números extraídos sean menores que 0.8, decidiéndose por tanto efectuar el cruce entre las dos parejas. Para ello escogeremos un número al azar entre 1 y l 1 (siendo l la longitud de la ristra utilizada para representar el individuo). Notése que la restricción impuesta al escoger el número entre 1 y l 1, y no l, se realiza con la finalidad de que los descendientes no coincidan con los padres. Supongamos, tal y como se indica en la Tabla 6.2, que los puntos de cruce resulten ser 2 y 3. De esta manera obtendríamos los 4 descendientes descritos en la tercera columna de la Tabla 6.2. A continuación siguiendo el pseudocódigo de la Figura 6.1, mutaríamos con una probabilidad, p m, cercana a cero, cada uno de los bit de las cuatro ristras de individuos. En este caso suponemos 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 adaptación correspondientes. Como puede observarse, tanto el mejor individuo como la función de adaptación media han mejorado sustancialmente al compararlos con los resultados de la Tabla Extensiones y Modificaciones del AGS 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, para a contin- BEGIN AGA Obtener la poblacion inicial al azar. WHILE NOT stop DO BEGIN Seleccionar padres de la poblacion. Producir hijos a partir de los padres seleccionados. Mutar los individuos hijos. Extender la poblacion añadiendo los hijos. Reducir la poblacion extendida. END END AGA Figura 6.5: Pseudocódigo del Algoritmo Genético Abstracto uación formalizar matemáticamente cada uno de los elementos integrantes del Algoritmo, así como las extensiones y modificaciones que se vayan presentando. Una versión del Algoritmo Genético Abstracto (AGA), puede ser como el de la Figura 6.5. Ya 5

6 que el principal dominio de aplicación de los Algoritmos Genéticos lo constituye la optimización de funciones, se introducen algunos conceptos básicos que se usarán a lo largo de este Capítulo. Dado un dominio finito D y una función f : D R, el problema de la optimización de la función f se refiere a encontrar el mejor valor de la función f en el dominio D. Se trata por tanto de encontrar x D para el cual f(x) f(y) y D. Ya que max{f(x)} = min{ f(x)} la restricción al problema de minimización no supone ninguna pérdida de generalización. En general, la tarea de optimización se complica debido a la existencia de óptimos locales (mínimos locales en nuestro caso). La función f tiene un mínimo local en ˆx D si se verifica la siguiente condición: E(x), entorno de x, tal que si y E(x), f(x) f(y). Diremos que e : D S l donde l log S D constituye una codificación, siendo la finalidad de la misma el representar los elementos de D por medio de ristras de elementos de S. A S se le denomina alfabeto, mientras que S l constituye el espacio de búsqueda. A la función f(x) = g(e(x)) se le denomina función objetivo. Es necesario que la función e sea inyectiva, para que los elementos de D sean discernibles. El AGA examinará un subconjunto del espacio de búsqueda, obteniendo una ristra x, cuya función objetivo g(x ) puede considerarse un estimador del min x S l g(x). Abusando del lenguaje de notación, designaremos por I a los elementos de S l. En lo que sigue se considerará un AGA como una 10 tupla: donde: P 0 = {I 1 0,..., I λ 0 } (S l ) λ λ l f sel f prod f mut f ext f red g ct AGA = (P 0, λ, l, f sel, f prod, f mut, f ext, f red, g, ct), población inicial, tamaño población, longitud de la representación, función de selección, función de producción de hijos, función de mutación, función de extensión, función de reducción, función objetivo, criterio de parada. En principio restringiremos nuestro AGA, imponiéndole la condición de que todas las poblaciones tengan el mismo tamaño. Obviamente una generalización sería el considerar que el tamaño depende de la generación, es decir λ t = P t. Denotaremos por P λ el conjunto de poblaciones de tamaño λ, a las que denominaremos poblaciones bien dimensionadas. La función de selección global, f sel, selecciona al azar y con reemplazamiento una colección de individuos y P λ a partir de una población x P λ : f sel : (α, x) y, donde α es un vector de dimensión λ constituído por valores escogidos aleatoriamente. La función de reproducción global, f prod, produce una población de descendientes z P λ a partir de individuos seleccionados y P λ por medio de un operador de cruce: f prod : (β, y) z, donde β es un vector de dimensión λ/2 de valores escogidos al azar entre los enteros {1,..., l 1} La función de reproducción se dice que está basada en un punto si los padres I i = (s 1,..., s l ) y I j = (b 1,..., b l ) producen hijos CH i,j;1 = (c 1,..., c l ) y CH i,j;2 = (d 1,..., d l ) verificándose : { sj si j m c j = si j > m b j (1) 6

7 { bj si j m d j = s j si j > m donde m es un número entero escogido al azar según una distribución uniforme discreta definida sobre el conjunto {1,..., l 1}. La función de mutación individual f ind mut, aplicada a I = (s 1,..., s l ), genera otro individuo MI = (sm 1,..., sm l ), es decir f ind mut (I) = MI, tal que j {1,..., l}, P (sm j = s j ) = 1 p m, donde p m es la probabilidad de mutación. La función de extensión, f ext, crea a partir de dos poblaciones x, z P λ, una población n P 2λ : f ext : (x, z) n Denotando por N i con i = 1,.., 2λ el i-ésimo individuo en n, por X k, con k = 1,..., λ el k-ésimo individuo en x, y por Z j con j = 1,..., λ el j-ésimo individuo en z, se tendrá: (2) { Xi si i λ N i = si i > λ Z i λ (3) La función de reducción global, f red, convierte una población n P 2λ en una población r P λ f red : n r. Nótese que r denota la población de individuos en el tiempo t + 1. La función de reducción es elitista de grado λ si la población en el tiempo t + 1 está constituida por los mejores λ individuos, de entre los λ individuos que constituyen la población en el tiempo t y los descendientes derivados de ellos. La función de reducción se denomina simple si la población en el tiempo t + 1 está formada por los descendientes derivados de la población en el tiempo t. 3.1 Población 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. Parece intuitivo que las poblaciones pequeñas corren el riesgo de no cubrir adecuadamente el espacio de búsqueda, mientras que el trabajar con poblaciones de gran tamaño puede acarrear problemas relacionados con el excesivo costo computacional. Goldberg (1989) efectuó un estudio teórico, obteniendo como conclusión que el tamaño óptimo de la población para ristras de longitud l, con codificación binaria, crece exponencialmente con el tamaño de la ristra. Este resultado traería como consecuencia que la aplicabilidad de los Algoritmos Genéticos en problemas reales sería muy limitada, ya que resultarían no competitivos con otros métodos de optimización combinatoria. Alander (1992), basándose en evidencia empírica sugiere que un tamaño de población comprendida entre l y 2l es suficiente para atacar con éxito los problemas por el considerados Población inicial Habitualmente la población inicial se escoge generando ristras al azar, pudiendo contener cada gen uno de los posibles valores del alfabeto con probabilidad uniforme. 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, se constata que esta inicialización no aleatoria de la población inicial, puede acelerar la convergencia del Algoritmo Genético. Sin embargo en algunos casos la desventaja resulta ser la prematura convergencia del algoritmo, queriendo indicar con ésto la convergencia hacia óptimos locales. 7

8 3.2 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, así como la codificación utilizada. 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, sus respectivos valores en las funciones objetivo sean similares. Por otra parte una dificultad en el comportamiento del Algoritmo Genético 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 función objetivo es que ésta debe reflejar el valor del individuo de una manera real, pero en muchos problemas de optimización combinatoria, donde existen gran cantidad de restricciones, buena parte de los puntos del espacio de búsqueda representan individuos no válidos. Para este planteamiento en el que los individuos están sometidos a restricciones, se han propuesto varias soluciones. La primera sería la que podríamos 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 válidos, o bien a dichos individuos se les asigna una función objetivo igual a cero. Otra posibilidad consiste en reconstruir aquellos individuos que no verifican las restricciones. Dicha reconstrucción suele llevarse a cabo por medio de un nuevo operador que se acostumbra a denominar reparador. Otro enfoque está basado en la penalización de la función objetivo. 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 viola. Dicha cantidad puede simplemente tener en cuenta el número de restricciones violadas ó bien el denominado costo esperado de reconstrucción, es decir el coste asociado a la conversión de dicho individuo en otro que no viole ninguna restricción. 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 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 evaluación exacta). Un problema habitual en las ejecuciones de los Algoritmos Genéticos surge debido a la velocidad con la que el algoritmo converge. En algunos casos la convergencia es muy rápida, 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 solución a estos problemas pasa por efectuar transformaciones en la función objetivo. El problema de la convergencia prematura, surge a menudo cuando la selección de individuos se realiza de manera proporcional a su función objetivo. En tal caso, pueden existir individuos con una adaptación al problema muy superior al resto, que a medida que avanza el algoritmo dominan a la población. Por medio de una transformación de la función objetivo, en este caso una comprensión del rango de variación de la función objetivo, se pretende que dichos superindividuos no lleguen a dominar a la población. El problema de la lenta convergencia del algoritmo, se resolvería de manera análoga, pero en este caso efectuando una expansión del rango de la función objetivo. La idea de especies de organismos, ha sido imitada en el diseño de los Algoritmos Genéticos en un método propuesto por Goldberg y Richardson (1987), utilizando una modificación de la función objetivo de cada individuo, de tal manera que individuos que estén muy cercanos entre sí devalúen su función objetivo, con objeto de que la población gane en diversidad. Por ejemplo, si denotamos por d(i j t, I i t) a la distancia de Hamming entre los individuos I j t e I i t, y 8

9 por K R + a un parámetro, podemos definir la siguiente función: { h(d(i j t, It)) i K d(i j t, I = t) i si d(i j t, It) i < K, 0 si d(i j t, It) i K. A continuación para cada individuo I j t, definimos σj t = i j h(d(ij t, It)), i valor que utilizaremos para devaluar la función objetivo del individuo en cuestión. Es decir, g (I j t ) = g(i j t )/σj t. De esta manera aquellos individuos que están cercanos entre sí verán devaluada la probabilidad de ser seleccionados como padres, aumentándose la probabilidad de los individuos que se encuentran más aislados. 3.3 Selección La función de selección de padres más utilizada es la denominada función de selección proporcional a la función objetivo, en la cual cada individuo tiene una probabilidad de ser seleccionado como padre que es proporcional al valor de su función objetivo. Denotando por p prop j,t la probabilidad de que el individuo I j t sea seleccionado como padre, se tiene que: p prop g(i j t ) j,t = λ j=1 g(ij t ). Esta función de selección es invariante ante un cambio de escala, pero no ante una traslación. Una de las maneras de superar el problema relacionado con la rápida convergencia proveniente de los superindividuos, que surge al aplicar la anterior función de selección, es el efectuar la selección proporcional al rango del individuo, con lo cual se produce una repartición más uniforme de la probabilidad de selección, tal y como se ilustra en la figura 6.6. Si denotamos por rango(g(i j t )) el rango prop rango P ( I j,t) P ( I j,t) I j,t I j,t Figura 6.6: Esquemas de selección de padres proporcional a la función objetivo (izquierda) y proporcional al rango de la función objetivo (derecha) de la función objetivo del individuo I j t cuando los individuos de la población han sido ordenados de menor a mayor (es decir el peor individuo tiene rango 1, mientras que el individuo con mejor función objetivo tiene rango λ), y sea p rango j,t la probabilidad de que el individuo I j t sea seleccionado como padre cuando la selección se efectúa proporcionalmente al rango del individuo, se tiene que p rango j,t = rango(g(ij t )) λ(λ + 1)/2. La suma de los rangos, λ(λ + 1)/2, constituye la constante de normalización. La función de selección basada en el rango es invariante frente a la translación y al cambio de escala. Otro posible refinamento del modelo de selección proporcional, es el modelo de selección del valor esperado, el cual actúa de la manera siguiente: para cada individuo I j t, se introduce un contador, inicializado en g(i j t )/ḡ t, donde ḡ t denota la media de la función objetivo en la generación t. Cada vez que el individuo I j t es seleccionado para el cruce, dicho contador decrece en una cantidad c (c (0, 5; 1)). El individuo en cuestión dejará de poder ser seleccionado en esa generación, cuando su contador sea negativo. Un esquema de selección, introducido por Brindle (1991), y que empíricamente ha proporcionado buenos resultados, es el denominado muestreo estocástico con reemplazamiento del resto, en el cual 9

10 cada individuo es seleccionado un número de veces que coincide con la parte entera del número esperado de ocurrencias de dicho suceso, compitiendo los individuos por los restos. Es decir, si denotamos por n(i j t ) el número de veces que el individuo I j t es seleccionado para el cruce, tenemos que: n(i j t ) = n 1 (I j t ) + n 2 (I j t ), donde n 1 (I j t ) = [g(i j t )/ḡ t ], y n 2 (I j t ) corresponde a la componente aleatoria que resulta de muestrear sobre los λ λ j=1 [g(ij t )/ḡ t ] restantes individuos, siendo el muestro proporcional a la función objetivo de cada individuo. Baker (1987) introduce un método denominado muestreo universal estocástico, el cual utiliza un único giro de la ruleta siendo los sectores circulares proporcionales a la función objetivo. Los individuos son seleccionados a partir de marcadores (véase Figura 6.7 ), igualmente espaciados y con comienzo aleatorio. Efectuando un paralelismo con los métodos de muestreo estadísticos, este último tipo de selección de t I 4 t I 1 t I 3 t I 2 Figura 6.7: Método de selección de padres denominado muestreo universal estocástico. El individuo I t 1 se escoge 2 veces, mientras que I t 3 e I t 4 son elegidos una única vez padres se relaciona con el muestreo sistemático, mientras que la selección proporcional a la función objetivo, está basada en el muestreo estratificado con afijación proporcional al tamaño. También el procedimiento de selección que hemos denominado muestreo estocástico con reemplazamiento del resto, mantiene un paralelismo con el muestreo estratificado con afijación de compromiso. 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. La selección por torneo, 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, tamaño del torneo, (con o sin reemplazamiento), seleccionar el mejor individuo de este grupo, y repetir el proceso hasta que el número de individuos seleccionados coincida con el tamaño de la población. Habitualmente el tamaño del torneo es 2, 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. Una posible clasificación de procedimientos de selección de padres consistirá en: métodos de selección dinámicos, en los cuales los probabilidades de selección varían de generación a generación, (por ejemplo la selección proporcional a la función objetivo), frente a métodos de selección estáticos, en los cuales dichas probabilidades permanecen constantes (por ejemplo la selección basada en rangos). 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 caso contrario se acostumbra a denominarlo extintivo. 10

11 3.4 Cruce El Algoritmo Genético Canónico descrito anteriormente, utiliza el cruce basado en un punto, en el cual los dos individuos seleccionados para jugar el papel de padres, son recombinados por medio de la selección de un punto de corte, para posteriormente intercambiar las secciones que se encuentran a la derecha de dicho punto. Se han investigado otros operadores de cruce, habitualmente teniendo en cuenta más de un punto de cruce. De Jong (1975) investigó el comportamiento del operador de cruce basado en múltiples puntos, concluyendo que el cruce basado en dos puntos, representaba una mejora mientras que añadir más puntos de cruce no beneficiaba el comportamiento del algoritmo. 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, siendo la principal desventaja el hecho de aumentar la probabilidad de ruptura de buenos esquemas. En el operador de cruce basado en dos puntos, los cromosomas (individuos) pueden contemplarse como un circuito en el cual se efectúa la selección aleatoria de dos puntos, tal y como se indica en la figura 6.8. Final Comienzo Segundo punto de corte Primer punto de corte Figura 6.8: Individuo visto como un circuito Desde este punto de vista, el cruce basado en un punto, puede verse como un caso particular del 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. Véase figura 6.9. En el denominado operador de cruce uniforme (Syswerda (1991)) cada gen en la descendencia se Padres Descendientes Figura 6.9: Operador de cruce basado en dos puntos crea copiando el correspondiente gen de uno de los dos padres, escogido de acuerdo a una máscara de cruce generada aleatoriamente. Cuando existe un 1 en la máscara de cruce, el gen es copiado del primer padre, mientras que cuando exista un 0 en la máscara, el gen se copia del segundo padre, tal y como se muestra en la figura En la literatura, el término operador de cruce uniforme se relaciona con la obtención de la máscara de cruce uniforme, en el sentido de que cualquiera de los elementos del alfabeto tenga asociada la misma probabilidad. 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 λ extraída de una distribución de probabilidad de Bernouilli de parámetro 1/2. 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, de tal manera que cuanto mayor sea la función de adaptación de un individuo, más probable sea heredar sus características, podríamos definir, véase Larrañaga y Poza (1994), un operador de cruce basado en la función objetivo, 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 p = g(i j t )/(g(i j t ) + g(i i t)) 11

12 Máscara de cruce Padre Descendiente Padre Figura 6.10: Operador de cruce uniforme donde I j t y I i t denotan los padres seleccionados para ser cruzados. 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, tal y como se muestra en figura 6.11 Sirag y Weiser (1987), modifican el operador de cruce en el sentido del Simulated Annealing. De Máscara de cruce Padre Descendiente Padre Figura 6.11: Máscaras de cruce para los operadores de cruce basados en 1 punto y en 2 puntos esta manera el operador de cruce se modifica definiendo un umbral de energia θ c, y una temperatura T, las cuales influencian la manera en la que se escogen los bits individuales. Según el operador propuesto el bit (i + 1)-ésimo se tomará del padre opuesto al que se ha tomado el bit i-ésimo, con probabilidad exp( θ c /T ), donde T es el parámetro temperatura el cual, al igual que en Simulated Annealing decrecerá lentamente por medio de un programa de enfriamiento. Con altas temperaturas el comportamiento se asemeja al del operador de cruce uniforme, es decir con probabilidad cercana a la unidad los bits se van escogiendo alternativamente de cada padre. Por otra parte cuando el valor del parámetro temperatura se acerca a cero el hijo resultante coincide prácticamente con uno de los padres. Existen otros operadores de cruce específicos para un determinado problema como son, por ejemplo, los definidos para el TSP, que se tratarán más adelante. Por otra parte, 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, 1987; Holland, 1975; Davis, 1985; Levenick, 1991). 3.5 Mutación La mutación se considera un operador básico, que proporciona un pequeño elemento de aleatoridad en la vecindad (entorno) de los individuos de la población. 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, 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, 1985). Schaffer y col. (1989) encuentran que el efecto del cruce en la búsqueda es inferior al que previamente se esperaba. Utilizan la denominada evolución primitiva, en la cual, el proceso evolutivo consta tan sólo de selección y mutación. 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 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. La búsqueda del valor óptimo para la probabilidad de mutación, es una cuestión que ha sido motivo 12

13 de varios trabajos. Así, De Jong (1975) recomienda la utilización de una probabilidad de mutación del bit de l 1, siendo l la longitud del string. Schaffer y col. (1989) utilizan resultados experimentales para estimar la tasa óptima proporcional a 1/λ l , donde λ denota el número de individuos en la población. 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, algunos autores han obtenido mejores resultados experimentales modificando la probabilidad de mutación a medida que aumenta el número de iteraciones. Pueden consultarse los trabajos de Ackley (1987), Bramlette (1991), Fogarty (1989) y Michalewicz y Janikow (1991). 3.6 Reducción Una vez obtenidos los individuos descendientes de una determinada población en el tiempo t, el proceso de reducción al tamaño original, consiste en escoger λ individuos de entre los λ individuos que forman parte de la población en el tiempo t, y los λ individuos descendientes de los mismos. Dicho proceso se suele hacer fundamentalmente de dos formas distintas. O bien los λ individuos descendientes son los que forman parte de la población en el tiempo t + 1, es lo que se denomina reducción simple, o bien se escogen de entre los 2λ individuos, los λ individuos más adaptados al problema, siguiendo lo que podemos denominar un criterio de reducción elitista de grado λ. Podemos tambien considerar otros procedimientos de reducción que se colocan entre los anteriores, por ejemplo, si escogemos los λ 1 mejores de entre padres y descendientes, escogiéndose los λ λ 1 restantes de entre los descendientes no seleccionados hasta el momento. El concepto de reducción está ligado con el de tasa de reemplazamiento generacional, t rg, es decir en el porcentaje de hijos generados con respecto del tamaño de la población. Si bien en la idea primitiva de Holland (1975) dicho reemplazamiento se efectuaba de 1 en 1, es decir t rg = λ 1, habitualmente dicho reemplazamiento se efectúa en bloque, t rg = 1. De Jong (1975) introdujo el concepto de tasa de reemplamiento generacional con el objetivo de efectuar un solapamiento controlado entre padres e hijos. En su trabajo, en cada paso una proporción, t rg, de la población es seleccionada para ser cruzada. Los hijos resultantes podrán reemplazar a miembros de la población anterior. Este tipo de Algoritmos Genéticos se conocen bajo el nombre de SSGA (Steady State Genetic Algorithm), un ejemplo de los cuales lo constituye GENITOR (Whitley y Kauth, 1988; Whitley, 1989). Michalewicz (1992) introduce un algoritmo que denomina Algoritmo Genético Modificado, MOD GA, en el cual para llevar a cabo el reemplazamiento generacional, selecciona al azar r 1 individuos para la reproducción, así como r 2 individuos (distintos de los anteriores) destinados a morir. Estas selecciones aleatorias tienen en consideración el valor de la función objetivo de cada individuo, de tal manera que cuanto mayor es la función objetivo, mayor es la probabilidad de que sea seleccionado para la reproducción, y menor es la probabilidad de que dicho individuo fallezca. El resto de los λ (r 1 + r 2 ) individuos son considerados como neutros y pasan directamente a formar parte de la población en la siguiente generación. 3.7 Algoritmos Genéticos Paralelos En este apartado se introducirán tres maneras diferentes de explotar el paralelismo de los Algoritmos Genéticos, por medio de los denominados modelos de islas. Para una profundización sobre el tema puede consultarse Stender (1993). Modelos de islas. La idea básica consiste en dividir la población total en varias subpoblaciones en cada una de las cuales se lleva a cabo un Algoritmo Genético. Cada cierto número de generaciones, se efectúa un intercambio de información entre las subpoblaciones, proceso que se denomina emigración. La introducción de la emigración hace que los modelos de islas sean capaces de explotar las diferencias entre las diversas subpoblaciones, obteniéndose de esta manera una fuente de diversidad genética. Cada subpopulación es una isla, definiéndose un procedimiento por medio del cual 13

14 se mueve el material genético de una isla a otra. La determinación de la tasa de migración, es un asunto de capital importancia, ya que de ella puede depender la convergencia prematura de la búsqueda. Se pueden distinguir diferentes modelos de islas en función de la comunicación entre las subpoblaciones. Algunas comunicaciones típicas son las siguientes: Comunicación en estrella, 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), siendo las demás consideradas como esclavas. Todas las subpoblaciones esclavas mandan sus h 1 mejores individuos (h 1 1) a la subpoblación maestra la cual a su vez manda sus h 2 mejores individuos (h 2 1) a cada una de las subpoblaciones esclavas. Véase figura Esclava Esclava Maestra Esclava Esclava Figura 6.12: Algoritmo Genético Paralelo. Modelo de Islas. Comunicación en estrella Comunicación en red, en la cual no existe una jerarquía entre las subpoblaciones, mandando todas y cada una de ellas sus h 3 (h 3 1) mejores individuos al resto de las subpoblaciones. Véase figura Subpobl. 1 Subpobl. 2 Subpobl. 3 Subpobl. 4 Figura 6.13: Algoritmo Genético Paralelo. Modelo de Islas. Comunicación en red Comunicación en anillo, en la cual cada subpoblación envía sus h 4 mejores individuos (h 4 1), a una población vecina, efectuándose la migración en un único sentido de flujo. Véase figura El modelo de islas ha sido utilizado por varios autores (Whitley y Starkweather, 1990; Gorges- Schleuter, 1989; Tanese, 1987). 3.8 Evaluación de Algoritmos Genéticos Las tres medidas de evaluación que se tratarán en este apartado, fueron introducidas por De Jong (1975), y se conocen como: evaluación on-line evaluación off-line 14

15 Subpobl. 1 Subpobl. 2 Subpobl. 3 Subpobl. 4 Figura 6.14: Algoritmo Genético Paralelo. Modelo de Islas. Comunicación en anillo evaluación basada en el mejor Si denotamos por v i (t) la función objetivo del i-ésimo individuo (i = 1,..., λ) en la t-ésima población, la evaluación on-line, después de T iteraciones, se denotará por v on-line (T ), y se define como T λ v on-line t=1 i=1 (T ) = v i(t). λt Es decir, la evaluación on-line mide el comportamiento medio de todas las ristras generadas hasta el tiempo T. La evaluación off-line se refiere al comportamiento del Algoritmo Genético en su proceso de convergencia hacia el óptimo. Así tendremos que si denotamos por v (t) al mejor valor de la función objetivo obtenido hasta el tiempo t (incluyendo dicho tiempo), y si v off-line (T ) denota la evaluación off-line después de T generaciones, tenemos que T v off-line t=1 (T ) = v (t). T La definición de evaluación basada en el mejor trata de evaluar el Algoritmo Genético por medio del mejor valor de la función de evaluación encontrado en la evolución. Se trata por tanto de la medida de evaluación usual al tratar de estudiar el comportamiento de cualquier técnica heurística. 4 Por qué funcionan? En este apartado se tratarán algunas cuestiones relacionadas con el porqué funcionan los Algoritmos Genéticos. El significado de la palabra funcionan se refiere al hecho de ser capaces de encontrar el óptimo de la función durante el proceso de búsqueda. Se estudiará en primer lugar el denominado Teorema de los esquemas, (Goldberg, 1989), adaptando la notación, para presentarlo en relación con distribuciones binomiales, para a continuación introducir la denominada Hipótesis de bloques, y finalizar referenciando algunos trabajos relativos a la convergencia de los Algoritmos Genéticos. 4.1 Teorema de los esquemas En lo que sigue se desarrollará el denominado Teorema de los esquemas para el caso del Algoritmo Genético Canónico, utilizando además un alfabeto binario. Dicho teorema utiliza el concepto de esquema, que introducimos a continuación. Supongamos un alfabeto binario S = {0, 1}. Para construir un esquema necesitamos ampliar el alfabeto anterior por medio del símbolo. Un esquema será cualquier ristra de caracteres formada a partir de elementos del alfabeto ampliado S, siendo S = {0, 1, }. Si la longitud de la ristra es l, 15

16 el número de esquemas existentes es 3 l, ya que cada posición puede ocuparse por cualquier de los tres elementos del alfabeto extendido S. Un esquema representa por tanto todas aquellas ristras que se asocian con él, en todas las posiciones distintas de las ocupadas por. Así por ejemplo considerando ristras de longitud 4, tenemos que el esquema Q = ( 1 0) se empareja con los cromosomas (0100), (0110), (1100)y(1110). Desde un punto de vista geométrico un esquema equivale a un hiperplano en el espacio de búsqueda. El esquema (0111) representa una única ristra, mientras que el esquema ( ) representa todas las ristras de longitud 4. Por otra parte cada esquema se empareja exactamente con 2 r ristras, donde r denota el número de símbolos contenidos en el esquema. Además cada ristra de longitud l se empareja con 2 l esquemas. Así por ejemplo el ristra (0100) se empareja con los siguientes 2 4 esquemas: (0100), ( 100), (0 00), (01 0), (010 ), ( 00), ( 1 0), ( 10 ), (0 0), (0 0 ), (01 ), ( 0), ( 0 ), ( 1 ), (0 ), ( ). Para desarrollar el Teorema de los esquemas necesitamos utilizar los conceptos de orden y longitud de un esquema, que se definen a continuación. El orden del esquema Q, se denota por o(q), y se refiere al número de posiciones ocupadas por 0 s, ó 1 s dentro del esquema. Se trata por tanto del número de posiciones fijas en el esquema. En otras palabras se trata de la longitud de la ristra menos el número de símbolos. Por ejemplo, los tres esquemas siguientes, Q 1 = ( 01 ), tienen los siguientes órdenes: Q 2 = ( 1), Q 3 = (110 ), o(q 1 ) = 2, o(q 2 ) = 1, y o(q 3 ) = 3. El concepto de orden del esquema se utiliza, como se verá con posterioridad, para calcular la probabilidad de supervivencia del esquema con relación al operador mutación. La longitud del esquema Q, se denota por medio de δ(q), y se define como la distancia entre la primera y la última posiciones fijas de la ristra. Dicho concepto define en cierto modo la compactibilidad de la información contenida en el esquema. Así por ejemplo δ(q 1 ) = 3 2 = 1, δ(q 2 ) = 4 4 = 0, y δ(q 3 ) = 3 1 = 2. El concepto anterior se utiliza para calcular la probabilidad de supervivencia del esquema frente al operador de cruce. Denotaremos por: λ, el tamaño de la población que se considerará constante a lo largo de la evolución, p c, la probabilidad de cruce, p m, la probabilidad de mutación. Por otra parte, ξ(q, t) denotará el número de ristras que en una determinada población en el tiempo t, se asocian con el esquema Q. Así por ejemplo si consideramos la población en el tiempo t, P t = {(0100), (1001), (1111), (0001)}, 16

17 y los dos esquemas siguientes tenemos que Q 1 = ( 01) y Q 2 = ( 0), ξ(q 1, t) = 2 y ξ(q 2, t) = 1. Otra propiedad del esquema es su adaptación en el tiempo t, la cual se denotará por eval(q, t) y se define como la media de la función objetivo de todas las ristras que en la población se asocian con el esquema Q. Sea F (t), la media de la función objetivo extendida a toda la población en el tiempo t. Es decir F (t) = F (t)/λ, siendo F (t) la suma de las funciones objetivo de todas los individuos en la población en el tiempo t. Con la notación introducida hasta el momento, podemos enunciar el Teorema de los esquemas de la siguiente manera. Teorema de los esquemas Si denotamos por E sel, cru, mut (ξ(q, t + 1)), el número esperado de individuos que se asocian con el esquema Q, en el tiempo t + 1, después de efectuar la selección, el cruce y la mutación en un Algoritmo Genético Canónico, se tiene que: E sel, cru, mut (ξ(q, t + 1)) ξ(q, t) eval(q, t)/f (t)[1 p c δ(q) l 1 o(q)p m]. La demostración se efectuará en tres pasos, en el primero de los cuales se estudiará el efecto de la selección basada en la ruleta sesgada, en el número esperado de individuos que se asocian con la ristra Q. Dicho número se denotará por E sel (ξ(q, t + 1)). A continuación se verá el efecto del cruce en dicho número esperado, el cual se denotará por E sel, cru (ξ(q, t + 1)), para finalmente tratar el efecto de la mutación, obteniéndose una cota inferior para E sel, cru, mut (ξ(q, t + 1)) Efecto selección Utilizando la notación anteriormente introducida, se tiene que la probabilidad de que un individuo seleccionado para cruzarse (suponemos que la selección se efectúa de manera proporcional a la función objetivo) se empareje con el esquema Q, se calculará por medio de eval(q, t)/f (t). El número esperado de individuos que a partir del anterior individuo seleccionado van a emparejarse con Q, será (eval(q, t)/f (t)) ξ(q, t). Al efectuarse λ selecciones, se tendrá que: E sel (ξ(q, t + 1)) = λ ξ(q, t) eval(q, t)/f (t). Teniendo en cuenta que F (t) = F (t)/λ, tendremos que: E sel (ξ(q, t + 1)) = ξ(q, t) eval(q, t)/f (t). Si se asume que la evaluación del esquema supera a la evaluación media extendida a toda la población en un ε%, es decir si entonces obtendremos que eval(q, t) = F (t) + εf (t)(ε > 0), E sel (ξ(q, t)) = ξ(q, 0) (1 + ε) t. Por tanto acabamos de obtener que el número medio esperado de individuos que se asocian con un esquema determinado Q en el tiempo t, crece de forma exponencial en función de la diferencia entre la evaluación media de dicho esquema con respecto a la evaluación media global. La anterior ecuación se conoce bajo el nombre de ecuación de crecimiento reproductivo de los esquemas. 17

18 Efecto cruce Denotando por p d,cruce(q), la probabilidad de que el esquema Q sea destruido por el operador de cruce, se tiene que p d,cruce (Q) = δ(q) l 1. En realidad como el operador de cruce se lleva a cabo con una cierta probabilidad p c, se tiene que p d,cruce (Q) = δ(q) l 1 p c, lo cual equivale a decir que la probabilidad de que el esquema Q sobreviva al cruce es p so, cruce (Q) = 1 p d,cruce (Q) = 1 δ(q) l 1 p c. En realidad la fórmula anterior nos proporciona una cota para la probabilidad de que sobreviva el esquema Q. Ello es debido a que, puede ocurrir que aunque el punto de corte se encuentre entre los símbolos comprendidos entre el primer y el último elemento distintos de, el esquema resultante no muera. Así por ejemplo, si consideramos los dos esquemas: S 1 = 1 0, S 2 = 1 0, independientemente del punto de corte, cualquiera de los esquemas resultantes coincide con los anteriores. De ahí que en realidad tenemos que: obteniéndose que Efecto mutación p so, cruce (Q) 1 δ(q) l 1 p c, E sel, cru [ξ(q, t + 1)] ξ(q, t) eval(q, t)/f (t) (1 δ(q) l 1 p c). Denotando por p so, mut (Q) a la probabilidad de que el esquema Q sobreviva al operador mutación, se tiene que p so, mut (Q) = (1 p m ) o(q). Al ser p m << 1, la anterior probabilidad de sobrevivir puede ser aproximada por p so,mut 1 o(q)p m. El efecto combinado de la selección, el operador de cruce y el operador de mutación nos proporciona el denominado Teorema de los esquemas. Es decir E sel, cru, mut [ξ(q, t + 1)] ξ(q, t) eval(q, t)/f (t) [1 δ(q) l 1 p c o(q)p m + δ(q) l 1 o(q)p cp m ]. ó bien suprimiendo el último término E sel, cru, mut [ξ(q, t + 1)] ξ(q, t) eval(q, t)/f (t)[1 δ(q) l 1 p c o(q)p m ]. La fórmula anterior nos proporciona una cota inferior del número esperado de individuos que se asocian con el esquema Q en la siguiente generación, expresado en función del número de individuos que se asocian con el esquema en la actual generación, así como de la adaptación del esquema relativa a la adaptación media de la población, el orden y la longitud del esquema, la longitud de las ristras, así como las probabilidades de cruce y mutación. Tal y como se desprende de la fórmula anterior, esquemas cortos, de bajo orden y con una adaptación al problema superior a la adaptación media, se espera que a medida que evoluciona el Algoritmo Genético, obtengan un incremento exponencial en el número de individuos que se asocian con los mismos. 18

19 4.2 Paralelismo implícito El hecho de que los Algoritmos Genéticos efectúen búsquedas robustas, se debe a que implícitamente muestrean hiperplanos. Es decir cada individuo, representado por medio de una codificación binaria, constituye un vértice del hipercubo que representa el espacio de búsqueda, y es a su vez un miembro de 2 l 1 diferentes hiperplanos, donde l es la longitud de la codificación binaria. Por otra parte existen un total de 3 l 1 hiperplanos particiones sobre el espacio de búsqueda total. Cada individuo no proporciona gran información si se examina por separado. Es por ello que la búsqueda basada en una población es crítica para los Algoritmos Genéticos. Una población de individuos, proporciona información sobre numerosos hiperplanos, estando los hiperplanos de bajo orden muestrados por numerosos puntos de la población. El hecho de que se muestreen muchos hiperplanos cuando se evalúa una población de ristras, se conoce como el paralelismo implícito o intrínseco de los Algoritmos Genéticos. Dicho paralelismo implícito, significa que muchas competiciones entre hiperplanos se efectúan simultáneamente. 4.3 Teoremas de convergencia Rudolph (1994) demuestra la no convergencia hacia el óptimo global del algoritmo genético canónico, así como la garantía, de convergencia expresada en términos probabilísticos, del algoritmo genético que mantiene a la mejor solución en la población. Davis y Principe (1993) extrapolan los fundamentos teóricos del algoritmo simulated annealing a un modelo de algoritmo genético basado en cadenas de Markov. Se efectúa un estudio de las matrices de transición de estados teniendo en cuenta en primer lugar tan sólo la reproducción, a continuación la reproducción y la mutación y finalmente la reproducción, la mutación y el cruce. Suzuki (1993) efectúa un estudio de la convergencia de los algoritmos genéticos por medio de cadenas de Markov. Los algoritmos genéticos estudiados presentan un criterio de reducción elitista modificado, según el cual se genera una población de λ individuos, incluyendo en ella al mejor individuo de la población en la generación anterior, obteniéndose los λ 1 individuos restantes por medio de las operaciones genéticas normales. Liepins (1992) demuestra la convergencia del algoritmo genético hacia poblaciones que contienen al óptimo, en el caso de algoritmos genéticos sin operador de mutación, pero en los cuales el reemplazamiento de individuos es elitista - el mejor individuo no se pierde nunca - y además se efectúa de tal manera que en cada paso cualquier punto del espacio sea potencialmente alcanzable por medio de la operación de cruce. Chakraborty y Dastidar (1993), presentan un modelo de fiabilidad estocástica de un esquema para el algoritmo genético binario con longitud de representación fija, y obtienen una estimación para el número de generaciones necesarias hasta obtener la convergencia. Eiben y col. (1990) modelan la evolución del algoritmo genético por medio de una cadena de Markov, obteniendo condiciones suficientes para la convergencia en probabilidad del procreso evolutivo hacia el óptimo global. 19

20 5 Operadores genéticos en el problema del agente viajero 5.1 Introducción El problema del agente viajero, también denominado TSP (Travelling Salesman Problem), consiste en -dada una colección de ciudades- determinar la gira de mínimo costo, visitando cada ciudad exactamente una vez y volviendo al punto de partida. Más precisamente, dado un número entero n 3 y dada una matriz C = (c ij ) M(n, n), con elementos c ij enteros no negativos, se trata de encontrar la permutación cíclica π de los enteros de 1 a n que minimiza n i=1 c iπ(i). A lo largo de los años el problema del agente viajero ha ocupado la mente de numerosos investigadores. Los motivos son varios. En primer lugar, el TSP es un problema muy sencillo de enunciar, pero muy difícil de resolver. En segundo lugar, el TSP es aplicable a una gran variedad de problemas de planificación. Finalmente, se ha convertido en una especie de problema test, es decir los nuevos métodos de optimización combinatoria son a menudo aplicados al TSP con objeto de tener una idea de sus potencialidades. Son numerosos los heurísticos que se han desarrollado para el TSP. La mayoría de ellos se describen en Lawler y col. (1985). La primera aproximación al TSP a partir de Algoritmos Genéticos la efectuó Brady (1985). Su intento fue seguido por Grefenstette y col. (1985), Goldberg y Lingle (1985), Oliver y col. (1987) y otros muchos. También han sido aplicados otros Algoritmos Evolutivos, véanse por ejemplo, Fogel (1988), Banzhaf (1990) y Ambati y col. (1991). Se pueden encontrar ejemplos de problemas para el TSP, en algunos casos con su solución, en una librería disponible via ftp, tecleando lo que sigue: ftp sfi.santafe.edu Name (sfi.santafe.edu: foobar): anonymous Password: < address > ftp> cd pub/ec/etc/data/tsp ftp> type binary ftp> get tsplib-1.2.tar.gz La librería fue compilada por Reinelt. (1991). Para más información sobre la misma, véase Reinelt Se expondrán distintas representaciones, así como diferentes operadores de cruce y mutación, que han sido utilizados para resolver el TSP por medio de Algoritmos Genéticos. 5.2 Representación basada en la trayectoria La representación basada en la trayectoria es la representación más natural de una gira. En ella, una gira se representa como una lista de n ciudades. Si la ciudad i es el j-ésimo elemento de la lista, la ciudad i es la j-ésima ciudad a visitar. Así por ejemplo, la gira se representará como ( ). Debido a que los operadores clásicos no funcionan con esta representación, se han definido otros operadores de cruce y mutación, algunos de los cuales se describen a continuación. Resultados experimentales con dichos operadores de cruce y mutación pueden consultarse en Larrañaga et al. (1999) Operadores de cruce Operador de cruce basado en una correspondencia parcial (PMX) El PMX lo introdujeron Goldberg y Lingle (1985). En él, una parte de la ristra representando a uno de los padres, se hace corresponder con una parte, de igual tamaño, de la ristra del otro padre, intercambiándose la información restante. 20

Computación Evolutiva: Técnicas de Selección

Computación Evolutiva: Técnicas de Selección Computación Evolutiva: Técnicas de Selección Dr. Gregorio Toscano Pulido Laboratorio de Tecnologías de Información Centro de Investigación y de Estudios Avanzados del IPN Cinvestav-Tamaulipas Dr. Gregorio

Más detalles

Algoritmos Genéticos. Introduccion a la Robótica Inteligente

Algoritmos Genéticos. Introduccion a la Robótica Inteligente Algoritmos Genéticos Introduccion a la Robótica Inteligente 7 Marzo 2014 (IRIN) AGs 7/03/2014 1 / 43 Índice 1 Introducción 2 Algoritmos Genéticos 3 Algunos Fundamentos Matemáticos 4 Conclusiones (IRIN)

Más detalles

Introducción a la Computación Evolutiva

Introducción a la Computación Evolutiva Introducción a la Computación Evolutiva Sección de Computación CINVESTAV-IPN Av. IPN No. 2508 Col. San Pedro Zacatenco México, D.F. 07300 email: ccoello@cs.cinvestav.mx http: //delta.cs.cinvestav.mx/~ccoello

Más detalles

Algoritmos Genéticos

Algoritmos Genéticos Introducción a la Computación Evolutiva Tercera Clase: Algoritmos Genéticos Algoritmos Genéticos Desarrollados en USA durante los años 70 Autores principales: J. Holland, K. DeJong, D. Goldberg Aplicados

Más detalles

Algoritmos Genéticos. Algoritmos Genéticos. Introducción a la Computación Evolutiva. Tercera Clase: Algoritmos Genéticos

Algoritmos Genéticos. Algoritmos Genéticos. Introducción a la Computación Evolutiva. Tercera Clase: Algoritmos Genéticos Introducción a la Computación Evolutiva Tercera Clase: Algoritmos Genéticos Algoritmos Genéticos Desarrollados en USA durante los años 70 Autores principales: J. Holland, K. DeJong, D. Goldberg Aplicados

Más detalles

Algoritmos Genéticos.

Algoritmos Genéticos. Algoritmos Genéticos. Miguel Cárdenas Montes, Antonio Gómez Iglesias Centro de Investigaciones Energéticas Medioambientales y Tecnológicas, Madrid, Spain miguel.cardenas@ciemat.es 15-19 de Octubre de 2011

Más detalles

ALGORITMOS GENETICOS ÍNDICE

ALGORITMOS GENETICOS ÍNDICE 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 2. Extensiones

Más detalles

[ Guía para recién llegados a los ALGORITMOS GENÉTICOS]

[ Guía para recién llegados a los ALGORITMOS GENÉTICOS] UVa Dpto. de Organización de Empresas Escuela de Ingenierías Industriales Elena Pérez www.eis.uva.es/elena [ Guía para recién llegados a los ALGORITMOS GENÉTICOS] El propósito de esta guía es dar soporte

Más detalles

Búsqueda Local. cbea (LSI-FIB-UPC) Inteligencia Artificial Curso 2011/2012 1 / 33

Búsqueda Local. cbea (LSI-FIB-UPC) Inteligencia Artificial Curso 2011/2012 1 / 33 Introducción Búsqueda Local A veces el camino para llegar a la solución no nos importa, buscamos en el espacio de soluciones Queremos la mejor de entre las soluciones posibles alcanzable en un tiempo razonable

Más detalles

ALGORITMOS GENÉTICOS

ALGORITMOS GENÉTICOS Arranz de la Peña, Jorge Universidad Carlos III 100025106@alumnos.uc3m.es ALGORITMOS GENÉTICOS Parra Truyol, Antonio Universidad Carlos III 100023822@alumnos.uc3m.es En este documento se pretende analizar

Más detalles

Algoritmos genéticos como métodos de aproximación analítica y búsqueda de óptimos locales

Algoritmos genéticos como métodos de aproximación analítica y búsqueda de óptimos locales Algoritmos genéticos como métodos de aproximación analítica y búsqueda de óptimos locales Jorge Salas Chacón A03804 Rubén Jiménez Goñi A93212 Juan Camilo Carrillo Casas A91369 Marco Vinicio Artavia Quesada

Más detalles

Métodos evolutivos de Optimización. Prof. Cesar de Prada Dpto. Ingeneiria de Sitemas y Automática Universidad de Valladolid

Métodos evolutivos de Optimización. Prof. Cesar de Prada Dpto. Ingeneiria de Sitemas y Automática Universidad de Valladolid Métodos evolutivos de Optimización Prof. Cesar de Prada Dpto. Ingeneiria de Sitemas y Automática Universidad de Valladolid Indice Introducción Método de Montecarlo Algoritmos genéticos Tabú Search Simulated

Más detalles

Introducción a los Algoritmos Genéticos. Tomás Arredondo Vidal 17/4/09

Introducción a los Algoritmos Genéticos. Tomás Arredondo Vidal 17/4/09 Introducción a los Algoritmos Genéticos Tomás Arredondo Vidal 17/4/09 Esta charla trata de lo siguiente: Introducción a algunos aspectos de los algoritmos genéticos. Introducción a algunas aplicaciones

Más detalles

Algoritmos Genéticos Y

Algoritmos Genéticos Y Algoritmos Genéticos Y Optimización n Heurística Dr. Adrian Will Grupo de Aplicaciones de Inteligencia Artificial Universidad Nacional de Tucumán awill@herrera.unt.edu.ar Operadores de Mutación El operador

Más detalles

&$3Ì78/2 $/*25,7026 (92/87,926 $9$1=$'26 3$5$ 763 6.1. INTRODUCCIÓN

&$3Ì78/2 $/*25,7026 (92/87,926 $9$1=$'26 3$5$ 763 6.1. INTRODUCCIÓN &$3Ì78/2 6.1. INTRODUCCIÓN Los primeros avances para solucionar el TSP, por medio de Algoritmos Evolutivos han sido introducidos por Goldberg y Lingle en [68] y Grefenstette en [72]. En éste área muchos

Más detalles

Capítulo IV ALGORITMOS GENÉTICOS

Capítulo IV ALGORITMOS GENÉTICOS Capítulo IV ALGORITMOS GENÉTICOS 4.1. INTRODUCCIÓN La estructura de un algoritmo genético simple se corresponde con la estructura de cualquier programa evolutivo (ver figura 1.1). Durante la iteración

Más detalles

Algoritmos Evolutivos

Algoritmos Evolutivos Algoritmos Evolutivos 2003-11-20 Cristóbal Romero, Pedro González y Sebastián Ventura 1.1 Introducción En general, cualquier tarea abstracta a realizar puede considerarse como la resolución de un problema

Más detalles

Desarrollo de un sistema capaz de optimizar rutas de entrega utilizando algoritmos genéticos

Desarrollo de un sistema capaz de optimizar rutas de entrega utilizando algoritmos genéticos MT 6 Desarrollo de un sistema capaz de optimizar rutas de entrega utilizando algoritmos genéticos Rosario Baltazar 1 Judith Esquivel Vázquez 2 Andrea Rada 3 Claudia Díaz 4 Resumen Durante los últimos 15

Más detalles

Apuntes de Inteligencia Artificial

Apuntes de Inteligencia Artificial PONTIFICIA UNIVERSIDAD CATÓLICA DEL ECUADOR FACULTAD DE INGENIERÍA Apuntes de Inteligencia Artificial Algoritmos Genéticos JORGE AGUILAR JARAMILLO Algoritmos Genéticos 8 Algoritmos Genéticos 8.1 Introducción

Más detalles

ESCUELA POLITÉCNICA NACIONAL

ESCUELA POLITÉCNICA NACIONAL ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA OPTIMIZACIÓN DE CONTROLADORES DIGITALES PID EN SISTEMAS DINÁMICOS USANDO ALGORITMOS GENÉTICOS PROYECTO PREVIO A LA OBTENCIÓN

Más detalles

Introducción a los Algoritmos Genéticos

Introducción a los Algoritmos Genéticos Introducción a los Algoritmos Genéticos Francisco José Ribadas Pena INTELIGENCIA ARTIFICIAL 5 Informática ribadas@uvigo.es 17 de octubre de 2005 c FJRP 2005 ccia IA Métodos de 8 < : 1 Introducción 9 =

Más detalles

Programación Genética

Programación Genética Programación Genética Programación Genética consiste en la evolución automática de programas usando ideas basadas en la selección natural (Darwin). No sólo se ha utilizado para generar programas, sino

Más detalles

Selección usando Algoritmos

Selección usando Algoritmos Capítulo 3 Selección usando Algoritmos Genéticos 3.1. Introducción En esta sección se aborda el uso de Algoritmos Genéticos (GA del inglés Genetic Algorithms) para selección de características. Así como

Más detalles

FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL PROBLEMA DE PROGRAMACIÓN DE ÓRDENES DE TRABAJO DE UNA EMPRESA DE ARTES GRÁFICAS

FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL PROBLEMA DE PROGRAMACIÓN DE ÓRDENES DE TRABAJO DE UNA EMPRESA DE ARTES GRÁFICAS FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL PROBLEMA DE PROGRAMACIÓN DE ÓRDENES DE TRABAJO DE UNA EMPRESA DE ARTES GRÁFICAS PROYECTO DE GRADO Javier mauricio gamboa salgado Código: 544004 John alexander

Más detalles

Representación, Codificación en un AG Población Inicial. Aptitud. Estrategia de Selección. Cruce, Mutación, Reemplazo. Condición de Parada.

Representación, Codificación en un AG Población Inicial. Aptitud. Estrategia de Selección. Cruce, Mutación, Reemplazo. Condición de Parada. Computación n Evolutiva: Algoritmos Genéticos 1.- Metaheurísticos. Computación Evolutiva: Algoritmos Genéticos 2.- Conceptos principales de un Algoritmo Genético 3.- Estructura de un Algoritmo Genético

Más detalles

Introducción a los Algoritmos Genéticos

Introducción a los Algoritmos Genéticos Marcos Gestal Pose Depto. Tecnologías de la Información y las Comunicaciones Universidade da Coruña http://sabia.tic.udc.es/ mgestal mgestal@udc.es Índice 1. Introducción 2 2. Orígenes 2 3. Bases Biológicas

Más detalles

Capítulo V ALGORITMOS EVOLUTIVOS AVANZADOS 5.1. INTRODUCCIÓN 5.2. ALGORITMOS EVOLUTIVOS AVANZADOS CON MÚLTIPLES PADRES Y MÚLTIPLES CROSSOVERS

Capítulo V ALGORITMOS EVOLUTIVOS AVANZADOS 5.1. INTRODUCCIÓN 5.2. ALGORITMOS EVOLUTIVOS AVANZADOS CON MÚLTIPLES PADRES Y MÚLTIPLES CROSSOVERS Capítulo V ALGORITMOS EVOLUTIVOS AVANZADOS 5.1. INTRODUCCIÓN En este capítulo se presentan algunas modificaciones al diseño de un algoritmo evolutivo para mejorar su performance. El hecho de innovar en

Más detalles

Temario III Algoritmos Combinatorios y Metaheurísticas

Temario III Algoritmos Combinatorios y Metaheurísticas Temario III Algoritmos Combinatorios y Metaheurísticas Verificación y Validación de Software UNCo 1 Contenidos Combinación de Datos de Test Algoritmos Combinatorios Metaheurísticas Búsqueda Tabú Algoritmos

Más detalles

RAID. Los detalles de las características segunda y tercera, cambian según los distintos niveles RAID. RAID 0 no soporta la tercera característica.

RAID. Los detalles de las características segunda y tercera, cambian según los distintos niveles RAID. RAID 0 no soporta la tercera característica. RAID Como se dijo anteriormente, el ritmo de mejora de prestaciones en memoria secundaria ha sido considerablemente menor que en procesadores y en memoria principal. Esta desigualdad ha hecho, quizás,

Más detalles

Procesamiento Digital de Imágenes. Pablo Roncagliolo B. Nº 22. Algoritmos Genéticos. prb@2007 2

Procesamiento Digital de Imágenes. Pablo Roncagliolo B. Nº 22. Algoritmos Genéticos. prb@2007 2 Procesamiento Digital de Imágenes Pablo Roncagliolo B. Nº 22 prb@2007 2 1 El núcleo de cada célula humana contiene una base de datos química. Esta base de datos contiene todas las instrucciones que la

Más detalles

Problemas indecidibles

Problemas indecidibles Capítulo 7 Problemas indecidibles 71 Codificación de máquinas de Turing Toda MT se puede codificar como una secuencia finita de ceros y unos En esta sección presentaremos una codificación válida para todas

Más detalles

Implementación del algoritmo UEGO sobre el entorno Matlab como alternativa al toolbox de optimización

Implementación del algoritmo UEGO sobre el entorno Matlab como alternativa al toolbox de optimización Implementación del algoritmo UEGO sobre el entorno Matlab como alternativa al toolbox de optimización Victoria Plaza Leiva Universidad de Almería Abstract Global optimization algorithms are widely used

Más detalles

Estructuras algebraicas

Estructuras algebraicas Tema 2 Estructuras algebraicas básicas 2.1. Operación interna Definición 29. Dados tres conjuntos A, B y C, se llama ley de composición en los conjuntos A y B y resultado en el conjunto C, y se denota

Más detalles

Desarrollo de algoritmos genéticos, de recocido simulado e híbridos para la planificación de un taller flexible

Desarrollo de algoritmos genéticos, de recocido simulado e híbridos para la planificación de un taller flexible X Congreso de Ingeniería de Organización Valencia, 7 y 8 de septiembre de 2006 Desarrollo de algoritmos genéticos, de recocido simulado e híbridos para la planificación de un taller flexible Sara Lumbreras

Más detalles

Máster Universitario en Ingeniería de Caminos, Canales y Puertos Introducción al Análisis Numérico

Máster Universitario en Ingeniería de Caminos, Canales y Puertos Introducción al Análisis Numérico Máster Universitario en Ingeniería de Caminos, Canales y Puertos Introducción al Análisis Numérico Departamento de Matemática Aplicada Universidad Granada Introducción El Cálculo o Análisis Numérico es

Más detalles

CAPITULO II. MARCO TEÓRICO. Actualmente todas las personas que tengan un capital considerable pueden invertir en

CAPITULO II. MARCO TEÓRICO. Actualmente todas las personas que tengan un capital considerable pueden invertir en CAPITULO II. MARCO TEÓRICO II.1. Mercados Financieros II.1.1 Marco histórico Actualmente todas las personas que tengan un capital considerable pueden invertir en acciones a fin de obtener ganancias rápidas

Más detalles

Matemáticas 2º BTO Aplicadas a las Ciencias Sociales

Matemáticas 2º BTO Aplicadas a las Ciencias Sociales Matemáticas 2º BTO Aplicadas a las Ciencias Sociales CONVOCATORIA EXTRAORDINARIA DE JUNIO 2014 MÍNIMOS: No son contenidos mínimos los señalados como de ampliación. I. PROBABILIDAD Y ESTADÍSTICA UNIDAD

Más detalles

Distribución Óptima de Horarios de Clases utilizando la técnica de Algoritmos Genéticos

Distribución Óptima de Horarios de Clases utilizando la técnica de Algoritmos Genéticos Distribución Óptima de Horarios de Clases utilizando la técnica de Algoritmos Genéticos Tesis Profesional Que para obtener el Título de Ingeniero en Computación Presenta CARLA LENINCA PACHECO AGÜERO Acatlima,

Más detalles

Introducción a los Algoritmos Genéticos y la Programación Genética

Introducción a los Algoritmos Genéticos y la Programación Genética Introducción a los Algoritmos Genéticos y la Programación Genética Marcos Gestal Daniel Rivero Juan Ramón Rabuñal Julián Dorado Alejandro Pazos + X + - + % * 6.21 4.73-1.68 % X * 5.67-3.85 Y + Y X 0.23

Más detalles

Computación Evolutiva: Algoritmos Genéticos

Computación Evolutiva: Algoritmos Genéticos Computación Evolutiva: Apuntes de la asignatura: Inteligencia Artificial Razonamiento Aproximado (Máster) Daniel Manrique Gamo Profesor Titular de Universidad Índice 1. Introducción 5 1.1. Bases de la

Más detalles

PROYECTO FIN DE CARRERA

PROYECTO FIN DE CARRERA UNIVERSIDAD DE CASTILLA LA MANCHA ESCUELA SUPERIOR DE INGENIERÍA INFORMÁTICA INGENIERÍA EN INFORMÁTICA PROYECTO FIN DE CARRERA Optimización y modelado del movimiento de un robot bípedo NAO usando técnicas

Más detalles

Apuntes de Matemática Discreta 7. Relaciones de Orden

Apuntes de Matemática Discreta 7. Relaciones de Orden Apuntes de Matemática Discreta 7. Relaciones de Orden Francisco José González Gutiérrez Cádiz, Octubre de 2004 Universidad de Cádiz Departamento de Matemáticas ii Lección 7 Relaciones de Orden Contenido

Más detalles

Modelo de un Algoritmo Genético con Selección Discriminatoria de Individuos bajo un Esquema de Ponderación de Probabilidades de Mutación

Modelo de un Algoritmo Genético con Selección Discriminatoria de Individuos bajo un Esquema de Ponderación de Probabilidades de Mutación Modelo de un Algoritmo Genético con Selección Discriminatoria de Individuos bajo un Esquema de Ponderación de Probabilidades de Mutación Victor Manuel Arroyo Apaza Orientador: Dr. Yván Jesús Túpac Valdivia

Más detalles

Espacio afín. Transformaciones afines y movimientos

Espacio afín. Transformaciones afines y movimientos Capítulo Espacio afín. Transformaciones afines y movimientos. Espacio afín y espacio afín métrico Definición. El espacio afín (tridimensional) está constituido por los siguientes elementos. El espacio

Más detalles

Algoritmos Genéticos Y

Algoritmos Genéticos Y Algoritmos Genéticos Y Optimización n Heurística Dr. Adrian Will Grupo de Aplicaciones de Inteligencia Artificial Universidad Nacional de Tucumán awill@herrera.unt.edu.ar Algoritmos Genéticos - Operadores

Más detalles

Un algoritmo genético híbrido para resolver el EternityII. Rico, Martin; Ros, Rodrigo Directora: Prof. Dra. Irene Loiseau

Un algoritmo genético híbrido para resolver el EternityII. Rico, Martin; Ros, Rodrigo Directora: Prof. Dra. Irene Loiseau Un algoritmo genético híbrido para resolver el EternityII Rico, Martin; Ros, Rodrigo Directora: Prof. Dra. Irene Loiseau Temas Temas Introducción Eternity II Historia Descripción Demo Metaheurísticas Algoritmos

Más detalles

Programación Lineal Entera

Programación Lineal Entera Programación Lineal Entera P.M. Mateo y David Lahoz 2 de julio de 2009 En este tema se presenta un tipo de problemas formalmente similares a los problemas de programación lineal, ya que en su descripción

Más detalles

Algoritmos Genéticos

Algoritmos Genéticos Algoritmos Genéticos AG un vistazo rápido Desarrollado: USA en 1970 s Primeros nombres: J. Holland, K. DeJong, D. Goldberg Típicamente aplicado a: Optimización discreta Características exhibidas: No demasiado

Más detalles

LIMITE DE SHANON PARA LA CAPACIDAD DE INFORMACIÓN

LIMITE DE SHANON PARA LA CAPACIDAD DE INFORMACIÓN CONVERSION ANALÓGICO A DIGITAL Con el paso del tiempo, las comunicaciones electrónicas han experimentado algunos cambios tecnológicos notables. Los sistemas tradicionales de comunicaciones electrónicas

Más detalles

UTgeNes - Framework para Implementación y Estudio de Algoritmos

UTgeNes - Framework para Implementación y Estudio de Algoritmos UTgeNes - Framework para Implementación y Estudio de Algoritmos Genéticos Abstract UTgeNes es un framework para la implementación y estudio de algoritmos genéticos propuesto para la realización de trabajos

Más detalles

EL DISEÑO FACTORIAL COMPLETO 2 k

EL DISEÑO FACTORIAL COMPLETO 2 k EL DISEÑO FACTORIAL COMPLETO 2 k Joan Ferré Grupo de Quimiometría y Cualimetría Departamento de Química Analítica y Química Orgánica Universidad Rovira i Virgili (Tarragona) INTRODUCCIÓN En el primer artículo

Más detalles

ALGEBRA LINEAL. Héctor Jairo Martínez R. Ana María Sanabria R.

ALGEBRA LINEAL. Héctor Jairo Martínez R. Ana María Sanabria R. ALGEBRA LINEAL Héctor Jairo Martínez R. Ana María Sanabria R. SEGUNDO SEMESTRE 8 Índice general. SISTEMAS DE ECUACIONES LINEALES.. Introducción................................................ Conceptos

Más detalles

ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS

ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS EtsiIngenio Inteligencia Artificial 1 Raposo López Alejandro Sánchez Palacios Manuel Resumen dibujo de grafos mediante algoritmos genéticos

Más detalles

Metaheurísticas: una visión global *

Metaheurísticas: una visión global * Metaheurísticas: una visión global * Belén Melián, José A. Moreno Pérez, J. Marcos Moreno Vega DEIOC. Universidad de La Laguna 38271 La Laguna {mbmelian,jamoreno,jmmoreno}@ull.es Resumen Las metaheurísticas

Más detalles

DESCRIPCIÓN DE POBLACIONES MENDELIANAS: EQUILIBRIO DE HARDY-WEINBERG

DESCRIPCIÓN DE POBLACIONES MENDELIANAS: EQUILIBRIO DE HARDY-WEINBERG DESCRIPCIÓN DE POBLACIONES MENDELIANAS: EQUILIBRIO DE HARDY-WEINBERG T. DOBZHANSKY G. H. HARDY CONCEPTO DE POBLACIÓN DESCRIPCIÓN ESTÁTICA DE POBLACIONES DESCRIPCIÓN DINÁMICA: EQUILIBRIO DE HARDY-WEINBERG

Más detalles

Algoritmos Genéticos. Aplicación al Juego de las N Reinas.

Algoritmos Genéticos. Aplicación al Juego de las N Reinas. Algoritmos Genéticos. Aplicación al Juego de las N Reinas. Juan Carlos Pozas Bustos NIA: 100025154 Univ.Carlos III de Madrid Ing.Telecomunicación España 100025154@alumnos.uc3m.es Términos generales En

Más detalles

CONTENIDOS MÍNIMOS BACHILLERATO

CONTENIDOS MÍNIMOS BACHILLERATO CONTENIDOS MÍNIMOS BACHILLERATO I.E.S. Vasco de la zarza Dpto. de Matemáticas CURSO 2013-14 ÍNDICE Primero de Bachillerato de Humanidades y CCSS...2 Primero de Bachillerato de Ciencias y Tecnología...5

Más detalles

A L G O R I T M O S E VO L U T I VO S A P L I C A D O S A L A G E N E R AC I Ó N D E H O R A R I O S PA R A C O L E G I O

A L G O R I T M O S E VO L U T I VO S A P L I C A D O S A L A G E N E R AC I Ó N D E H O R A R I O S PA R A C O L E G I O E S C U E L A P O L I T É C N I C A N A C I O N A L F A C U L T A D D E C I E N C I A S D E P A R T A M E N T O D E M A T E M Á T I C A S A L G O R I T M O S E VO L U T I VO S A P L I C A D O S A L A G

Más detalles

7. Conclusiones. 7.1 Resultados

7. Conclusiones. 7.1 Resultados 7. Conclusiones Una de las preguntas iniciales de este proyecto fue : Cuál es la importancia de resolver problemas NP-Completos?. Puede concluirse que el PAV como problema NP- Completo permite comprobar

Más detalles

Redes de Kohonen y la Determinación Genética de las Clases

Redes de Kohonen y la Determinación Genética de las Clases Redes de Kohonen y la Determinación Genética de las Clases Angel Kuri Instituto Tecnológico Autónomo de México Octubre de 2001 Redes Neuronales de Kohonen Las Redes de Kohonen, también llamadas Mapas Auto-Organizados

Más detalles

Métodos de promedios. Diplomado en Gestión Estratégica de las Finanzas Públicas MÉTODOS ESTADÍSTICOS PARA LA ESTIMACIÓN DE INGRESOS

Métodos de promedios. Diplomado en Gestión Estratégica de las Finanzas Públicas MÉTODOS ESTADÍSTICOS PARA LA ESTIMACIÓN DE INGRESOS MÉTODOS ESTADÍSTICOS PARA LA ESTIMACIÓN DE INGRESOS La estimación o proyección de ingresos futuros puede llevarse a cabo mediante diferentes métodos estadísticos de extrapolación, entre ellos: sistema

Más detalles

Introducción a los algoritmos genéticos y sus aplicaciones

Introducción a los algoritmos genéticos y sus aplicaciones Introducción a los algoritmos genéticos y sus aplicaciones Autora: Piedad Tolmos Rodríguez-Piñero Dirección: Paseo de los Artilleros s/n Madrid 28032 Teléfono: 91-3019901 E-Mail: tolmos@poseidon.fcjs.urjc.es

Más detalles

M O N O G R Á F I C O: D A R W I N

M O N O G R Á F I C O: D A R W I N http://www.sinewton.org/numeros ISSN: 1887-1984 Volumen 71, agosto de 2009, páginas 29 47 Resumen Palabras clave Abstract Keywords 1. Introducción Algoritmos Genéticos. Una visión práctica Belén Melián

Más detalles

Simulación Monte Carlo

Simulación Monte Carlo Simulación Monte Carlo Modelado estocástico Cuando se realiza un análisis estático a un proyecto, una serie de supuestos y variables producen un resultado de valor único. Mientras que un análisis estocástico

Más detalles

Diseño e Implementación de Algoritmos Genéticos Celulares para Problemas Complejos

Diseño e Implementación de Algoritmos Genéticos Celulares para Problemas Complejos TESIS DOCTORAL Diseño e Implementación de Algoritmos Genéticos Celulares para Problemas Complejos Autor Bernabé Dorronsoro Díaz Director Dr. Enrique Alba Torres Departamento Lenguajes y Ciencias de la

Más detalles

13. Técnicas de simulación mediante el método de Montecarlo

13. Técnicas de simulación mediante el método de Montecarlo 13. Técnicas de simulación mediante el método de Montecarlo Qué es la simulación? Proceso de simulación Simulación de eventos discretos Números aleatorios Qué es la simulación? Simulación = técnica que

Más detalles

Ingeniería Energética E-ISSN: 1815-5901 orestes@cipel.ispjae.edu.cu. Instituto Superior Politécnico José Antonio Echeverría. Cuba

Ingeniería Energética E-ISSN: 1815-5901 orestes@cipel.ispjae.edu.cu. Instituto Superior Politécnico José Antonio Echeverría. Cuba Ingeniería Energética E-ISSN: 1815-5901 orestes@cipel.ispjae.edu.cu Instituto Superior Politécnico José Antonio Echeverría Cuba Carvajal- Pérez, Raúl Nicolás Un Algoritmo Genético Especializado en Planeamiento

Más detalles

? 50 30 20 20 emplear NA 0,788 0,367879 se queda s a 150 275 70-125 se pone s en s a 15 58 200-43 se pone s en s a

? 50 30 20 20 emplear NA 0,788 0,367879 se queda s a 150 275 70-125 se pone s en s a 15 58 200-43 se pone s en s a 350 MR Versión 1 1 Prueba Parcial 1/5 UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADÉMICO ÁREA: INGENIERÍA MODELO DE RESPUESTA ASIGNATURA: Computación Evolutiva CÓDIGO: 350 MOMENTO: Primera Parcial VERSIÓN:

Más detalles

Curso: Métodos de Monte Carlo. Unidad 1, Sesión 2: Conceptos básicos

Curso: Métodos de Monte Carlo. Unidad 1, Sesión 2: Conceptos básicos Curso: Métodos de Monte Carlo. Unidad 1, Sesión 2: Conceptos básicos Departamento de Investigación Operativa Instituto de Computación, Facultad de Ingeniería Universidad de la República, Montevideo, Uruguay

Más detalles

OBJETIVOS. Estudiar los conceptos básicos de transmisión de señales de video y datos sobre redes de cable coaxial y fibra óptica.

OBJETIVOS. Estudiar los conceptos básicos de transmisión de señales de video y datos sobre redes de cable coaxial y fibra óptica. OBJETIVOS Estudiar los conceptos básicos de transmisión de señales de video y datos sobre redes de cable coaxial y fibra óptica. Analizar los diferentes tipos de arquitecturas utilizadas en el diseño de

Más detalles

Matemáticas Evolutivas: Algoritmos Genéticos

Matemáticas Evolutivas: Algoritmos Genéticos Matemáticas Evolutivas: Algoritmos Genéticos María Teresa Iglesias Otero Departamento de Matemáticas Universidade da Coruña Cuál es la mejor forma de...? cuál es el camino más corto a...? cuál es la más

Más detalles

Espacios Vectoriales

Espacios Vectoriales Espacios Vectoriales Departamento de Matemáticas, CCIR/ITESM 4 de enero de 2 Índice 3.. Objetivos................................................ 3.2. Motivación...............................................

Más detalles

Repaso de matrices, determinantes y sistemas de ecuaciones lineales

Repaso de matrices, determinantes y sistemas de ecuaciones lineales Tema 1 Repaso de matrices, determinantes y sistemas de ecuaciones lineales Comenzamos este primer tema con un problema de motivación. Problema: El aire puro está compuesto esencialmente por un 78 por ciento

Más detalles

Capítulo 12: Indexación y asociación

Capítulo 12: Indexación y asociación Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación

Más detalles

Probabilidad y sus aplicaciones en ingeniería informática

Probabilidad y sus aplicaciones en ingeniería informática Probabilidad y sus aplicaciones en ingeniería informática Víctor Hernández Eduardo Ramos Ildefonso Yáñez c Víctor Hernández, Eduardo Ramos, Ildefonso Yánez EDICIONES CDÉMICS Probabilidad y sus aplicaciones

Más detalles

TÉCNICAS HEURÍSTICAS Y METAHEURÍSTICAS DE OPTIMIZACIÓN

TÉCNICAS HEURÍSTICAS Y METAHEURÍSTICAS DE OPTIMIZACIÓN TÉCNICAS HEURÍSTICAS Y METAHEURÍSTICAS DE OPTIMIZACIÓN RAMÓN ALFONSO GALLEGO RENDÓN ANTONIO ESCOBAR ZULUAGA ELIANA MIRLEDY TORO OCAMPO Universidad Tecnológica de Pereira Pereira - Risaralda - Colombia

Más detalles

Computación Evolutiva Algoritmos Genéticos

Computación Evolutiva Algoritmos Genéticos UNL - FICH - Departamento de Informática - Ingeniería Informática Inteligencia Computacional Computación Evolutiva Algoritmos Genéticos Temas a tratar - Generalidades de los algoritmos de computación evolutiva.

Más detalles

Procesamiento Digital de Imágenes. Compresión de imágenes

Procesamiento Digital de Imágenes. Compresión de imágenes FICH, UNL - Departamento de Informática - Ingeniería Informática Procesamiento Digital de Imágenes Guía de Trabajos Prácticos 8 Compresión de imágenes 2010 1. Objetivos Analizar las características y el

Más detalles

Métodos Heurísticos en Inteligencia Artificial

Métodos Heurísticos en Inteligencia Artificial Métodos Heurísticos en Inteligencia Artificial Javier Ramírez rez-rodríguez Ana Lilia Laureano-Cruces Universidad Autónoma Metropolitana Métodos Heurísticos en Inteligencia Artificial Los problemas de

Más detalles

Ejemplo 1.2 En el capitulo anterior se demostró que el conjunto. V = IR 2 = {(x, y) : x, y IR}

Ejemplo 1.2 En el capitulo anterior se demostró que el conjunto. V = IR 2 = {(x, y) : x, y IR} Subespacios Capítulo 1 Definición 1.1 Subespacio Sea H un subconjunto no vacio de un espacio vectorial V K. Si H es un espacio vectorial sobre K bajo las operaciones de suma y multiplicación por escalar

Más detalles

SIMULACIÓN CAPITULO 3 LECTURA 6.3. SIMULACIÓN Y ANÁLISIS DE MODELOS ESTOCÁSTICOS Azarang M., Garcia E. Mc. Graw Hill. México 3.

SIMULACIÓN CAPITULO 3 LECTURA 6.3. SIMULACIÓN Y ANÁLISIS DE MODELOS ESTOCÁSTICOS Azarang M., Garcia E. Mc. Graw Hill. México 3. LECTURA 6.3 SIMULACIÓN Y ANÁLISIS DE MODELOS ESTOCÁSTICOS Azarang M., Garcia E. Mc. Graw Hill. México CAPITULO 3 SIMULACIÓN 3.1 INTRODUCCIÓN Simulación es el desarrollo de un modelo lógico-matemático de

Más detalles

Diseño de redes viales urbanas usando algoritmos genéticos. M. Angélica Pinninghoff J.* Eduardo Matthews D. * Héctor Díaz C.

Diseño de redes viales urbanas usando algoritmos genéticos. M. Angélica Pinninghoff J.* Eduardo Matthews D. * Héctor Díaz C. Diseño de redes viales urbanas usando algoritmos genéticos M. Angélica Pinninghoff J.* Eduardo Matthews D. * Héctor Díaz C. e-mail: mapinnin@inf.udec.cl * Departamento de Ingeniería Informática y Ciencias

Más detalles

German Flórez Larrahondo Miguel Eduardo Torres Moreno

German Flórez Larrahondo Miguel Eduardo Torres Moreno SIMULADOR PARA LA CONSTRUCCIÓN DE CIRCUITOS COMBINACIONALES POR MEDIO DE ALGORITMOS GENÉTICOS CON APLICACIÓN A UN SUMADOR DE 3 BITS, ORIENTADO A DISPOSITIVOS REPROGRAMABLES German Flórez Larrahondo Miguel

Más detalles

Apuntes de Matemática Discreta 9. Funciones

Apuntes de Matemática Discreta 9. Funciones Apuntes de Matemática Discreta 9. Funciones Francisco José González Gutiérrez Cádiz, Octubre de 004 Universidad de Cádiz Departamento de Matemáticas ii Lección 9 Funciones Contenido 9.1 Definiciones y

Más detalles

Tema 3: Variables aleatorias y vectores aleatorios bidimensionales

Tema 3: Variables aleatorias y vectores aleatorios bidimensionales Estadística 38 Tema 3: Variables aleatorias y vectores aleatorios bidimensionales El concepto de variable aleatoria surge de la necesidad de hacer más manejables matemáticamente los resultados de los experimentos

Más detalles

TABLAS DINAMICAS DE MORTALIDAD Y SUPERVIVENCIA

TABLAS DINAMICAS DE MORTALIDAD Y SUPERVIVENCIA TABLAS DINAMICAS DE MORTALIDAD Y SUPERVIVENCIA Ana Debón 1 Ramón Sala 2 Universitat de Valencia Resumen: Es una realidad que la esperanza de vida está aumentando en todos los países desarrollados. Así

Más detalles

TEMA 9: Desarrollo de la metodología de Taguchi

TEMA 9: Desarrollo de la metodología de Taguchi TEMA 9: Desarrollo de la metodología de Taguchi 1 La filosofía de la calidad de Taguchi 2 Control de calidad Off Line y On Line Calidad Off Line Calidad On Line 3 Función de pérdida 4 Razones señal-ruido

Más detalles

Unidad II: Números pseudoalealeatorios

Unidad II: Números pseudoalealeatorios 1 Unidad II: Números pseudoalealeatorios Generación de números aleatorios Un Número Aleatorio se define como un número al azar comprendido entre cero y uno. Su característica principal es que puede suceder

Más detalles

UNIVERSIDAD DE EXTREMADURA Departamento de Matemáticas. Matemáticas. Manuel Fernández García-Hierro Badajoz, Febrero 2008

UNIVERSIDAD DE EXTREMADURA Departamento de Matemáticas. Matemáticas. Manuel Fernández García-Hierro Badajoz, Febrero 2008 UNIVERSIDAD DE EXTREMADURA Departamento de Matemáticas Matemáticas Manuel Fernández García-Hierro Badajoz, Febrero 2008 Capítulo VI Concepto de error 6.1 Introducción Uno de los temas más importantes en

Más detalles

COMPUTACIÓN EVOLUTIVA (CE) PROGRAMACIÓN GENÉTICA EVOLUCIÓN GRAMATICAL PROGRAMACIÓN POR EXPRESIÓN GENÉTICA

COMPUTACIÓN EVOLUTIVA (CE) PROGRAMACIÓN GENÉTICA EVOLUCIÓN GRAMATICAL PROGRAMACIÓN POR EXPRESIÓN GENÉTICA COMPUTACIÓN EVOLUTIVA (CE) PROGRAMACIÓN GENÉTICA EVOLUCIÓN GRAMATICAL PROGRAMACIÓN POR EXPRESIÓN GENÉTICA Angel García Baños Escuela de Ingeniería de Sistemas y Computación Universidad del Valle 04 de

Más detalles

Capítulo VI MÉTODOS DE SOLUCIÓN PARA JOB SHOP SCHEDULING

Capítulo VI MÉTODOS DE SOLUCIÓN PARA JOB SHOP SCHEDULING Capítulo VI MÉTODOS DE SOLUCIÓN PARA JOB SHOP SCHEDULING 6.1. HEURÍSTICAS CONVENCIONALES El problema de job shop scheduling (JSSP) es un problema muy importante [69]; está entre los problemas de optimización

Más detalles

Capítulo 7: Distribuciones muestrales

Capítulo 7: Distribuciones muestrales Capítulo 7: Distribuciones muestrales Recordemos: Parámetro es una medida de resumen numérica que se calcularía usando todas las unidades de la población. Es un número fijo. Generalmente no lo conocemos.

Más detalles

Unidad 3 Generación de números aleatorios.

Unidad 3 Generación de números aleatorios. Unidad 3 Generación de números aleatorios. Ejercicio 1. Generadores de números aleatorios. La implementación de un buen generador de números aleatorios uniformemente distribuidos sobre el intervalo (0,

Más detalles

Análisis III. Joaquín M. Ortega Aramburu

Análisis III. Joaquín M. Ortega Aramburu Análisis III Joaquín M. Ortega Aramburu Septiembre de 1999 Actualizado en julio de 2001 2 Índice General 1 Continuidad en el espacio euclídeo 5 1.1 El espacio euclídeo R n...............................

Más detalles

SIMULACION. Formulación de modelos: solución obtenida de manera analítica

SIMULACION. Formulación de modelos: solución obtenida de manera analítica SIMULACION Formulación de modelos: solución obtenida de manera analítica Modelos analíticos: suposiciones simplificatorias, sus soluciones son inadecuadas para ponerlas en práctica. Simulación: Imitar

Más detalles

Simulación Computacional. Tema 1: Generación de números aleatorios

Simulación Computacional. Tema 1: Generación de números aleatorios Simulación Computacional Tema 1: Generación de números aleatorios Irene Tischer Escuela de Ingeniería y Computación Universidad del Valle, Cali Typeset by FoilTEX 1 Contenido 1. Secuencias pseudoaleatorias

Más detalles

FUNCIONES ARITMÉTICAS Y

FUNCIONES ARITMÉTICAS Y Tema 3 FUNCIONES ARITMÉTICAS Y LÓGICAS 3.. INTRODUCCIÓN Hasta ahora hemos visto como se podían minimizar funciones booleanas, y como se podían implementar a partir de puertas discretas. En los temas siguientes

Más detalles

2. Modelo de colas poissoniano con un servidor M/M/1. 3. Modelo con un servidor y capacidad finita M/M/1/K

2. Modelo de colas poissoniano con un servidor M/M/1. 3. Modelo con un servidor y capacidad finita M/M/1/K CONTENIDOS 1. Introducción a las colas poissonianas. 2. Modelo de colas poissoniano con un servidor M/M/1 3. Modelo con un servidor y capacidad finita M/M/1/K 4. Modelo con varios servidores M/M/c. Fórmula

Más detalles

Números aleatorios. Contenidos

Números aleatorios. Contenidos Números aleatorios. Contenidos 1. Descripción estadística de datos. 2. Generación de números aleatorios Números aleatorios con distribución uniforme. Números aleatorios con otras distribuciones. Método

Más detalles

Computación Evolutiva - Mutación: Cruza, Inversión y Mutación para Permutaciones

Computación Evolutiva - Mutación: Cruza, Inversión y Mutación para Permutaciones Computación Evolutiva - Mutación: Cruza, Inversión y Mutación para Permutaciones Dr. Gregorio Toscano Pulido Laboratorio de Tecnologías de Información Centro de Investigación y de Estudios Avanzados del

Más detalles