guía para recién llegados a los algoritmos … perez vazquez_archivos/files... · de todas ellas,...

27
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 a nuestras publicaciones y sugerir algunas lecturas para ayudar a los recién llegados a los Algoritmos Genéticos. Universidad de Valladolid (2010)

Upload: trandien

Post on 11-Oct-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Guía para recién llegados a los ALGORITMOS … Perez Vazquez_archivos/files... · De todas ellas, los algoritmos genéticos son los que han tenido un mayor interés, tanto por parte

   

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 a nuestras publicaciones y   sugerir algunas  lecturas para ayudar a los recién llegados a los Algoritmos Genéticos.  

Universidad de Valladolid (2010) 

Page 2: Guía para recién llegados a los ALGORITMOS … Perez Vazquez_archivos/files... · De todas ellas, los algoritmos genéticos son los que han tenido un mayor interés, tanto por parte

Guía para recién llegados a los Algoritmos Genéticos. Elena Pérez (2010)      1 

Universidad de Valladolid. Dpto. Organización de Empresas: Escuela de Ingenierías Industriales

 

Contenido 

1. Introducción .................................................................................................................. 2 2. La selección natural y la evolución de las especies ...................................................... 2 3. Los algoritmos evolutivos ............................................................................................ 3 4. Conceptos básicos en biología y en algoritmos genéticos ............................................ 4 5. Estructura de los algoritmos genéticos ......................................................................... 6 

5.1 Descripción del problema a resolver ...................................................................... 7 5.2 Codificación de las soluciones ............................................................................... 8 

5.2.1 Codificación binaria ........................................................................................ 8 5.2.2 Codificación simbólica .................................................................................... 8 5.2.3 Codificación permutacional ............................................................................. 9 5.2.4 Codificación permutacional con repetición ..................................................... 9 5.2.5 Codificación real ............................................................................................. 9 

5.3 Inicialización .......................................................................................................... 9 5.4 Selección ............................................................................................................... 10 

5.4.1 Métodos proporcionales a la calidad. ............................................................ 10 5.4.2 Métodos basados en el orden o métodos de ordenación. ............................... 12 5.4.3 Métodos basados en competiciones o torneos. .............................................. 13 

5.5 Operadores genéticos: Reproducción ................................................................... 14 5.5.1  Operadores Cruce ..................................................................................... 15 5.5.2  Operadores Mutación. .............................................................................. 18 

5.6 Sustitución ............................................................................................................ 20 6. ¿Por qué funcionan los algoritmos genéticos? ........................................................... 21 

6.1. El teorema fundamental de los algoritmos genéticos .......................................... 21 6.2. La hipótesis de los bloques constitutivos ............................................................ 24 6.3. El paralelismo implícito ...................................................................................... 24 

7. Algoritmos genéticos en la práctica ......................................................................... 25 Agradecimientos ............................................................................................................. 25 Bibliografía ..................................................................................................................... 25 

Page 3: Guía para recién llegados a los ALGORITMOS … Perez Vazquez_archivos/files... · De todas ellas, los algoritmos genéticos son los que han tenido un mayor interés, tanto por parte

Guía para recién llegados a los Algoritmos Genéticos. Elena Pérez (2010)      2 

Universidad de Valladolid. Dpto. Organización de Empresas: Escuela de Ingenierías Industriales

1. Introducción Los algoritmos genéticos pertenecen a los denominados algoritmos evolutivos. El denominador común de todos ellos es la imitación de los mecanismos que dirigen el proceso evolutivo de las especies según las leyes de Darwin, y su adaptación al problema que se debe resolver.

Dentro de este campo, la primera técnica desarrollada fue la programación evolutiva, después aparecieron las estrategias evolutivas, los algoritmos genéticos y, por último, la programación genética. De todas ellas, los algoritmos genéticos son los que han tenido un mayor interés, tanto por parte de los investigadores como del sector industrial, por los buenos resultados obtenidos y por su fácil adaptación a las condiciones reales de trabajo.

Los algoritmos genéticos resuelven problemas de optimización en los que hay que maximizar o minimizar una función objetivo sujeta a unas restricciones, sin que se deba cumplir ninguna condición, tal como la de derivabilidad o convexidad. Por otro lado, también tienen aplicación en temas de aprendizaje donde están especialmente adaptados por su carácter evolutivo.

La principal diferencia de los algoritmos genéticos con otras metaheurísticas de optimización (como la búsqueda tabu, el recocido simulado, etc) es la utilización de conjuntos de soluciones de forma simultánea durante la búsqueda. Mediante la reproducción, que es el proceso que caracteriza a todos los algoritmos evolutivos, se consigue una mejora de las características de las soluciones que forman parte de la población de una generación a la siguiente, tal y como sucede en la naturaleza. De esta forma, el mejor individuo de la población (esto es, el individuo mejor adaptado a las condiciones medioambientales) tiene mayores probabilidades de sobrevivir, acceder a unos recursos limitados como es la comida, y reproducirse. Mediante la reproducción sexual, en contraposición de la asexual, existe un intercambio del material genético de ambos padres, lo que permite que los descendientes puedan heredar las buenas características que hacen de sus padres los mejores. Por el contrario, los individuos peor adaptados tenderán a desaparecer, y con ellos esas características que no les permitieron adaptarse y sobrevivir.

Resumiendo, los algoritmos genéticos hacen evolucionar a las soluciones iniciales mediante la aplicación del proceso selectivo que imita a la naturaleza y de los denominados operadores genéticos que permiten imitar los procesos genéticos que se dan en la reproducción sexual.

Para introducir a nuestros lectores a los algoritmos genéticos, en primer lugar, hacemos referencia a su inspiración en la evolución natural de las especies. Después, recorremos brevemente la historia de los algoritmos evolutivos. A continuación, definimos una serie de términos básicos con los que es necesario estar familiarizado y describimos los procesos de un algoritmo genético. Finalmente, analizamos los motivos por los que los algoritmos genéticos funcionan.

2. La selección natural y la evolución de las especies No se puede comenzar a hablar de la evolución de las especies sin repetir las palabras que removieron los cimientos de las tradiciones occidentales sobre el origen del hombre.

“Probablemente todos los seres orgánicos que hayan vivido nunca sobre esta tierra han descendido de alguna única forma primordial, a la que se infundió vida por primera vez.... Esta opinión sobre el origen de la vida tiene su grandeza... porque mientras este planeta ha ido dando vueltas de acuerdo con la ley fija de la gravedad, a partir de un inicio tan sencillo han evolucionado y siguen evolucionando formas sin fin, las más bellas y las más maravillosas.” (Darwin, 1859. Párrafo tomado de Sagan, 1980)

El pilar fundamental del descubrimiento realizado, de forma simultánea, por Charles Darwin y Alfred Russel Wallace, es que el mecanismo de la evolución es la selección natural. Las

Page 4: Guía para recién llegados a los ALGORITMOS … Perez Vazquez_archivos/files... · De todas ellas, los algoritmos genéticos son los que han tenido un mayor interés, tanto por parte

Guía para recién llegados a los Algoritmos Genéticos. Elena Pérez (2010)      3 

Universidad de Valladolid. Dpto. Organización de Empresas: Escuela de Ingenierías Industriales

mutaciones aumentan las probabilidades de supervivencia, obteniéndose una serie de lentas transformaciones de una forma de vida en otra, que origina nuevas especies.

El medio ambiente es el que selecciona las pocas mutaciones que se producen durante la autoreproducción de las células y durante la reproducción sexual. Aquellos individuos con características más favorables para la supervivencia y la reproducción, al tener un mayor acceso a los recursos limitados del entorno, no sólo tendrán un mayor número de descendientes, sino que también serán capaces de transmitir a sus descendientes estas características, dando lugar a un cambio adaptativo en la población. La teoría de la selección natural predice el cambio evolutivo hacia las características más apropiadas para el entorno en el que viven los organismos.

La esencia de la teoría del Origen de las Especies de Charles Darwin, se recoge en las siguientes premisas (Fang 1994):

1. En la reproducción sexual, cada individuo pasa parte de sus rasgos genéticos a sus descendientes.

2. Además, la naturaleza produce individuos con algunos rasgos diferentes debido a cambios llamados mutaciones, generalmente producidos de forma aleatoria.

3. Los individuos mejor adaptados tienen mayor descendencia que aquellos peor adaptados. Esto dirige a la población hacia rasgos favorables.

4. A lo largo de grandes periodos de tiempo, la variación puede acumularse, produciendo nuevas especies cuyos rasgos les hace especialmente adaptables a un nicho ecológico particular.

Se puede decir que los secretos que entraña la evolución son dos: la muerte y el tiempo. Por un lado, la muerte elimina una cantidad ingente de formas vivas que estaban imperfectamente adaptadas al medio ambiente. Por otro, el tiempo permite ir acumulando las pequeñas mutaciones accidentales que resultan ser beneficiosas.

3. Los algoritmos evolutivos Los algoritmos evolutivos surgieron a principios de la década de los 60 (Fraser, 1957; Bremermann et al., 1966; Reed, 1967; Bäck et al., 1997; y Fogel, 1998), basándose en los principios de la evolución natural de las especies y en el desarrollo del conocimiento de los conceptos de la genética. Los mecanismos naturales, que si bien no se conocen en su totalidad, si lo son sus objetivos y funcionamiento básico, permiten a las especies evolucionar y adaptarse al entorno.

Con el auge que tomaron estas teorías, y por medio de los descubrimientos de nuevas tecnologías que permitían un desarrollo computacional y matemático mucho más avanzado, empezaron a investigarse teorías y algoritmos artificiales que emulaban los mecanismos naturales siendo una fecha importante 1975 con los trabajos de Holland.

A partir de esta fecha, los estudios sobre algoritmos evolutivos, en cualquiera de sus facetas, se han incrementado de tal forma que ya es difícil encontrar un área de investigación en la que no hayan irrumpido con gran fuerza. Es posible encontrar estudios en ámbitos tan diversos como finanzas, inversión, educación, transporte, redes de comunicación, planificación, logística, producción, etc., (Biethahn, 1995).

Se puede hacer una clasificación de los diferentes algoritmos evolutivos según el año de su primera publicación.

Así, los primeros desarrollos fueron realizados por Fogel (1966) y se denominaron programación evolutiva. El proceso general es el siguiente: En primer lugar se generan las N soluciones de la primera población, después de la inicialización, todos los individuos se recombinan asexualmente formando N nuevas soluciones, utilizando únicamente el proceso de

Page 5: Guía para recién llegados a los ALGORITMOS … Perez Vazquez_archivos/files... · De todas ellas, los algoritmos genéticos son los que han tenido un mayor interés, tanto por parte

Guía para recién llegados a los Algoritmos Genéticos. Elena Pérez (2010)      4 

Universidad de Valladolid. Dpto. Organización de Empresas: Escuela de Ingenierías Industriales

mutación, es decir, no hay intercambio de material genético puesto que en este caso no existe el concepto de padres. Las formas de mutación son muy flexibles y pueden producir perturbaciones similares a las producidas por la recombinación sexual.

Las estrategias evolutivas fueron desarrolladas por Rechenberg (1973). Originalmente constaban de sistemas de selección y mutación sobre una población de un único individuo, denominándose (1+1, ES), donde el individuo de la población siguiente era el mejor de entre el padre y el hijo. Posteriormente Schwefel introdujo la recombinación sexual y poblaciones con más de un individuo, μ>1. El número de hijos creados será λ, con λ>μ. La supervivencia seleccionaba a los mejores de:

− La población de hijos, denominado (μ,λ).

− De las poblaciones padres e hijos, denominado (μ+λ).

Posteriormente y desde 1975, los algoritmos genéticos han sido muy importantes dentro de las técnicas evolutivas. Tradicionalmente han utilizado codificaciones independientes al problema, como son las cadenas binarias, sin embargo, muchas de las aplicaciones recientes se han centrado en otras representaciones tales como grafos, listas ordenadas, números reales, etc. Para la formación de los descendientes la reproducción es sexual, es decir, hay intercambio del material genético de los padres mediante los operadores genéticos, cruce y mutación. En este caso, el operador mutación se considera un operador de segundo orden frente al operador cruce, como principal diferencia con las técnicas evolutivas anteriores.

Se puede decir que los algoritmos genéticos son métodos metaheurísticos poco convencionales. Esto es debido a que trabajan con un conjunto de soluciones al mismo tiempo, imitando los procesos que se llevan a cabo en la evolución natural de las especies. Esta es la principal diferencia con otras metaheurísticas tales como la búsqueda tabu, el recocido simulado, etc. donde una única solución es modificada hasta alcanzar un cierto criterio de parada.

En los últimos años se están desarrollando las técnicas de programación genética. En este caso la representación es más compleja el ser estructuras jerarquizadas y de tamaño variable (Koza, 1993). La población está formada por cientos o miles de dichas estructuras que son unidos por operadores apropiados pretendiéndose encontrar aquella combinación mejor adaptada a un determinado problema.

Los algoritmos genéticos es el campo de los algoritmos evolutivos que ha tenido un mayor desarrollo. Prueba de ello es el gran número de publicaciones existentes en revistas de gran prestigio como, por ejemplo, Management Science, Operational Research, etc., y por la creación de grandes conferencias internacionales bianuales: International Conference on Genetic Algorithms, Parallel Problem Solving from Nature, Foundations of Genetic Algorithms.

4. Conceptos básicos en biología y en algoritmos genéticos En esta sección explicamos el significado que tienen en los algoritmos genéticos una serie de conceptos clave en biología. En la tabla 1 se definen una serie de términos con los que conviene estar familiarizados: genotipo, fenotipo, cromosoma, etc. Mediante el sencillo problema del vendedor o viajante de comercio (TSP1) vamos a ir aclarando cada uno de estos conceptos.

El problema del viajante de comercio consiste resolver el orden en el que una persona que debe visitar todas y cada una de las ciudades definidas y sólo una vez, con el objetivo de minimizar la distancia recorrida. La definición del problema incluye una matriz de distancias entre las ciudades (ver tabla 2).

- La solución es el recorrido que debe hacer el comercial. 1 TSP: Travelling Salesman Problem

Page 6: Guía para recién llegados a los ALGORITMOS … Perez Vazquez_archivos/files... · De todas ellas, los algoritmos genéticos son los que han tenido un mayor interés, tanto por parte

Guía para recién llegados a los Algoritmos Genéticos. Elena Pérez (2010)      5 

Universidad de Valladolid. Dpto. Organización de Empresas: Escuela de Ingenierías Industriales

- El cromosoma será una cadena de longitud 5 y formada por números enteros: [-, -, -, -, -].

- El genotipo será una permutación de 5 números enteros. Una posible solución es la cadena [1 2 3 4 5], que indicará que el orden en el que el comercial debe visitar las ciudades es: en primer lugar la ciudad codificada por el número 1, después por la 2, y así sucesivamente hasta llegar a la ciudad 5, terminando el viaje volviendo a la ciudad de partida. Sin embargo, esta forma de dar la solución no nos servirá de nada si previamente no hemos establecido la norma de codificación. En nuestro caso, Barcelona será codificada por el número 1, Granada por el 2, Madrid por el 3, Sevilla por el 4, y Valladolid por el 5.

- El fenotipo será la ruta específica, [Barcelona, Granada, Madrid, Sevilla, Valladolid, Barcelona], esto es, la solución decodificada.

- Los Genes serán cada uno de los números enteros que forman la cadena.

- Los Loci serán las posiciones de la cadena y que darán el orden relativo, la primera posición está ocupada por el número 1 (Barcelona), la posición 2 por el número 2 (Granada), lo que nos indica que después de visitar Barcelona el comercial debe ir hacia la ciudad de Granada.

Tabla 1. Paralelismo entre los términos biológicos y los algoritmos evolutivos

Término Descripción

Ser vivo Ente natural formado por cromosomas

Solución Elemento básico del algoritmo

Genotipo Conjunto de factores heredados en un individuo

Solución codificada del problema a resolver

Fenotipo

La dependencia con el ambiente en que el genotipo funciona en la práctica

La solución decodificada y que adquiere significado cuando se utiliza conjunta con los datos del problema

Cromosoma Estructura que transporta los factores hereditarios o genes

Cadena de caracteres donde se almacena la solución codificada

Gen Unidad de recombinación: el segmento más corto en que el cromosoma puede dividirse

Número real o binario cuya unión forma el cromosoma

Loci Cada una de las posiciones que puede ocupar un gen dentro del cromosoma

Cada una de las posiciones en la cadena de codificación

Generación Cada uno de los reemplazos que se origina cuando se tiene descendientes.

Iteración Cada uno de los pasos en que se divide la búsqueda

Page 7: Guía para recién llegados a los ALGORITMOS … Perez Vazquez_archivos/files... · De todas ellas, los algoritmos genéticos son los que han tenido un mayor interés, tanto por parte

Guía para recién llegados a los Algoritmos Genéticos. Elena Pérez (2010)      6 

Universidad de Valladolid. Dpto. Organización de Empresas: Escuela de Ingenierías Industriales

Tabla 2. Datos de distancias para un ejemplo del TSP

Barcelona Granada Madrid Sevilla

Barcelona

Granada 868

Madrid 621 434

Sevilla 1046 256 538

Valladolid 663 627 193 589

La forma de codificar las soluciones de un problema es crítica para un correcto funcionamiento de los algoritmos, como se verá más adelante. Aunque lo más importante es que todas las posibles soluciones al problema (espacio de búsqueda) tengan una posible codificación. Para nuestro ejemplo, el número de posibles soluciones en n!, donde n representa al número total de ciudades por visitar, es decir, 5! = 120 diferentes circuitos. La codificación utilizada cumple esta condición.

5. Estructura de los algoritmos genéticos El pseudo código de un algoritmo genético es el siguientes:.

1. Elegir la población inicial de individuos

2. Evaluar la función objetivo (fitness) de cada individuo de la población

3. Repetir en esta población hasta terminar (límite de tiempo, alcanzar un valor en la función objetivo, etc.)

1. Seleccionar los mejores individuos para la reproducción (padres).

2. Crear nuevos individuos (hijos) a través de los operadores cruce y mutación.

3. Evaluar la función objetivo en los hijos.

4. Reemplazar los padres por los hijos

En la figura 1 se muestra el diagrama de flujo simplificado con las partes más importantes de un algoritmo genético clásico: selección, reproducción y sustitución. Aparte de estos procesos, que pertenecen al núcleo principal y exclusivo de los algoritmos genéticos, existen otros, de igual importancia, que sirven de apoyo a los anteriores: descripción del problema a resolver, codificación de sus soluciones e inicialización. Selección y codificación son los puntos críticos de un algoritmo genético.

Page 8: Guía para recién llegados a los ALGORITMOS … Perez Vazquez_archivos/files... · De todas ellas, los algoritmos genéticos son los que han tenido un mayor interés, tanto por parte

Guía para recién llegados a los Algoritmos Genéticos. Elena Pérez (2010)      7 

Universidad de Valladolid. Dpto. Organización de Empresas: Escuela de Ingenierías Industriales

Figura 1. Estructura general de un algoritmo genético

5.1 Descripción del problema a resolver El primer proceso que debemos realizar es la formulación completa del problema a resolver: la función o funciones objetivo, las restricciones a las que está sujeto el problema y que restringirán zonas del espacio de búsqueda, etc.

En la mayoría de los problemas de optimización existe una función natural que determina el valor de una solución. Dicha función puede utilizarse directamente como función de calidad (fitness function) del algoritmo genético si cumple que todos los valores que asigna a las soluciones son positivos y la función está definida de tal forma que el problema sea de maximización.

Si la función natural no verifica alguna de estas características, tendremos que adaptarla para su uso (Goldberg, 1989). Si la función está definida de forma que el problema es de minimización, existen técnicas para su transformación a un problema de maximización.

Por ejemplo, dada una función de costes g(x), una función de beneficio f(x) puede definirse según la siguiente ecuación:

⎩⎨⎧ <−

=casosdeResto

Cmax)x(gCuando)x(gCmax)x(f

0,

siendo Cmax un coeficiente de entrada cuyo valor es el mayor valor observado hasta el momento o el mayor valor observado en las últimas k generaciones.

Cuando existe la posibilidad de valores negativos, la transformación de la función podría ser de la siguiente forma:

⎩⎨⎧ >++

=casosdeResto

Cmin)x(uCuandoCmin)x(u)x(f

00

,

siendo Cmin un coeficiente de entrada cuyo valor es el valor absoluto del peor valor de u(x) encontrado hasta el momento o el valor absoluto del peor valor de u(x) encontrado en las ultimas k generaciones., y u(x) es la función natural.

Selección

Reproducción

Sustitución

Población de Padres

Descendientes

Gen

erac

ión

t+1

Población inicialGeneración t

Page 9: Guía para recién llegados a los ALGORITMOS … Perez Vazquez_archivos/files... · De todas ellas, los algoritmos genéticos son los que han tenido un mayor interés, tanto por parte

Guía para recién llegados a los Algoritmos Genéticos. Elena Pérez (2010)      8 

Universidad de Valladolid. Dpto. Organización de Empresas: Escuela de Ingenierías Industriales

5.2 Codificación de las soluciones Existen distintos tipos de codificaciones de las soluciones: binarias, simbólicas, permutacional, (también conocida como codificación simbólica basada en el orden2), la permutacional con repetición y la real. La codificación depende del problema que se quiere resolver. Según Fang (1994) las normas básicas a tener en cuenta para el diseño de una codificación óptima se pueden resumir en:

1. Cada solución del problema tendrá su correspondiente cadena codificada.

2. Para cada cadena codificada producida mediante los operadores genéticos existirá su correspondiente solución decodificada.

3. Codificación y solución se corresponderán una a una, es decir no habrá redundancia.

4. La codificación deberá permitir heredar de padres a hijos las características inherentes a los primeros.

5.2.1 Codificación binaria

Tradicionalmente la codificación binaria ha sido la más utilizada por la facilidad que ofrece el desarrollo de programas informáticos y porque permite la aplicación de sencillos operadores genéticos. Además, la mayor parte de la teoría subyacente en los algoritmos genéticos está desarrollada para la codificación binaria, aunque existen ampliaciones a otros tipos de representaciones.

Dentro de la codificación mediante números binarios cabe destacar el código Gray, utilizado en lugar del binario porque la separación que existe en el espacio codificado entre soluciones adyacentes en el espacio decodificado siempre es 1, como se puede observar en la tabla 3, utilizando la distancia hamming como medida de separación. Para las soluciones adyacentes 2 y 3, la distancia es 2 en código binario, mientras que en el código Gray es 1. Esto tiene importancia a la hora de aplicar los operadores genéticos, ya que pequeñas modificaciones en la codificación pueden provocar grandes movimientos en el espacio de soluciones decodificadas.

Un inconveniente de la codificación binaria es su falta de adaptabilidad a muchos tipos de problemas. Esto no quiere decir que no se puedan codificar de esta forma, sino que el esfuerzo que se debe hacer para ello disminuye la eficiencia del algoritmo. Por ello existen otros tipos de codificaciones que aprovechan mejor las características propias de cada tipo de problema, llamadas codificaciones simbólicas.

Tabla 3. Tipos de codificación binaria

Código Binario Código Gray 1 00 00 2 01 01 3 10 11 4 11 10

5.2.2 Codificación simbólica

La idea básica de la codificación simbólica se debe a Syswerda (1991a) y ha permitido un mayor grado de libertad para la codificación de problemas. Pero, tal y como aseguró Davis

2 En Escalada-Imaz y Torres-Velázquez (1997) se encuentra un amplio estudio de los algoritmos genéticos desarrollados para representaciones basadas en orden.

Page 10: Guía para recién llegados a los ALGORITMOS … Perez Vazquez_archivos/files... · De todas ellas, los algoritmos genéticos son los que han tenido un mayor interés, tanto por parte

Guía para recién llegados a los Algoritmos Genéticos. Elena Pérez (2010)      9 

Universidad de Valladolid. Dpto. Organización de Empresas: Escuela de Ingenierías Industriales

(1991), hay que tener en cuenta que esta decisión es un factor crítico a la hora de diseñar un buen algoritmo genético, hasta el punto que una decisión inapropiada puede llevarnos al fracaso.

5.2.3 Codificación permutacional

La codificación permutacional ya la hemos visto con el ejemplo del viajante de comercio, donde a cada ciudad que debe visitar se le asignaba un número entero. Una posible solución se obtiene mediante una permutación de los n números enteros que tenemos, y el espacio de búsqueda estará formado por n!, siendo n las ciudades del problema. Esta codificación también sirve para problemas de programación de operaciones (scheduling) del tipo flow shop permutacional. En este caso, cada número entero representa a uno de los trabajos que debe ser secuenciados, y la permutación es el orden en que los trabajos serán realizados sobre las máquinas o centro de trabajo.

5.2.4 Codificación permutacional con repetición

La codificación permutacional con repetición consiste en números enteros que se repiten tantas veces como el problema lo necesite. Se utiliza, entre otros problemas, para la programación de operaciones del tipo flow shop genérico y el job shop. Donde cada trabajo (representado por un número entero) se divide en operaciones que deben ser realizadas en máquinas o centros de trabajo diferentes y en un orden dado. El número de operaciones de cada trabajo nos dará las veces que el número entero que lo representa debe repetirse en la cadena de codificación. Por ejemplo, una solución codificada para un problema de 3 trabajos con 3 operaciones cada uno de ellos será: [1 3 1 2 2 3 3 1 2], tres números enteros y cada uno de ellos tres veces repetido. La decodificación tendrá en cuenta el orden de las repeticiones dentro de la cadena. Así la primera operación a secuenciar será la primera de la pieza 1, después secuenciaremos la primera de la pieza 3, a continuación la segunda operación de la pieza 1, la primera de la pieza 2, la segunda de la 2, etc.

5.2.5 Codificación real

La codificación real utiliza número reales y suele ser una codificación directa, es decir donde el valor de la solución es directamente el valor de en la cadena.

5.3 Inicialización Según Michalewicz (1995) la forma más eficaz para obtener los individuos (cadenas codificadas) que formarán parte de la primera iteración es la generación aleatoria. De esta forma, se podrá obtener una población inicial uniformemente distribuida por el espacio de búsqueda mejorando la exploración. Sin embargo, la calidad media de las soluciones generadas de esta forma será baja necesitando más pasos (iteraciones o generaciones) para ser mejoradas.

Otra posible forma de inicialización, será utilizar una o varias heurísticas más sencillas capaces de encontrar diferentes soluciones que pasarán a ser parte de la población inicial. El problema que nos encontramos con este método es que podemos generar soluciones en zonas muy determinadas del espacio de búsqueda perdiendo poder exploratorio. Por otro lado, el beneficio será que ya partimos de soluciones de algún modo mejoradas.

Naturalmente, esta capacidad de exploración inicial dependerá de la relación entre el número de soluciones potenciales totales y el número de individuos que formarán parte de la población. Por lo tanto, siguiendo este razonamiento, cuanto menor sea este ratio, mayor será el poder exploratorio del algoritmo. Pero por otra parte, cuanto mayor sea el número de soluciones con la que se trabaja menor será la velocidad de búsqueda, retrasando la convergencia del proceso y necesitando un mayor número de generaciones, iteraciones, lo que provocará unas mayores

Page 11: Guía para recién llegados a los ALGORITMOS … Perez Vazquez_archivos/files... · De todas ellas, los algoritmos genéticos son los que han tenido un mayor interés, tanto por parte

Guía para recién llegados a los Algoritmos Genéticos. Elena Pérez (2010)      10 

Universidad de Valladolid. Dpto. Organización de Empresas: Escuela de Ingenierías Industriales

necesidades computacionales y temporales. Por tanto, esta decisión será un compromiso entre exploración y explotación del espacio de búsqueda.

5.4 Selección En la naturaleza, la selección sirve para determinar qué individuos sobreviven y se reproducen y cuales desaparecerán por una incorrecta adaptación al entorno. Este proceso es imitado mediante los métodos de selección. El proceso de selección es el que ha despertado un mayor interés a juzgar por la gran cantidad de estudios y métodos desarrollados.

Los métodos de selección, basándose en la calidad de las soluciones (adaptación de los individuos), seleccionan a los mejores individuos (soluciones) para que se reproduzcan, formado parte de la población de padres. Por el contrario, los peores individuos (soluciones) no serán seleccionados y desaparecerán de la búsqueda. Este proceso permite que una misma solución pase varias copias a la población de padres. Se trata, por tanto, de un muestreo sin sustitución.

Un concepto de gran importancia es la presión selectiva, que indica el grado con el que las mejores soluciones son favorecidas para formar parte de la población padre. A mayor presión selectiva, más se favorecerá a los mejores individuos y, por lo tanto, tendrán un mayor número de copias en la población padre. Esta presión dirige al algoritmo hacia poblaciones cada vez mejor adaptadas al problema.

El ratio de convergencia de un algoritmo genético está en gran parte determinado por la magnitud de la presión selectiva. Con una alta presión selectiva se obtiene un mayor ratio de convergencia, con el inconveniente de aumentar la probabilidad de convergencia prematura hacia un subóptimo. Y por el contrario, si la presión es demasiado baja, el ratio de convergencia disminuirá y el algoritmo tardará más tiempo en encontrar la solución óptima, si es que la encuentra. En el caso más extremo, donde la presión selectiva es nula, es decir, todos los individuos tienen la misma probabilidad de sobrevivir, se producirá una búsqueda aleatoria por todo el espacio de soluciones.

Los métodos existentes en la actualidad se dividen en tres, los basados en la calidad, en el orden y los que realizan la selección mediante torneos o competiciones. A continuación y basándose en los trabajos de Goldberg (1989) y Michalewicz (1995), se describirán los principales métodos de selección:

5.4.1 Métodos proporcionales a la calidad.

En este caso, la selección de padres se realiza teniendo en cuenta la magnitud de la calidad de las soluciones respecto de la del resto de la población. Por esto, superindividuos, es decir, los que tienen una calidad bastante superior a la del resto de la población, rápidamente coparán los puestos de la población de padres con un gran número de copias. El resultado es una pérdida de la diversidad en la población y una prematura convergencia. Dentro de esta categoría cabe destacar:

− Selección proporcional o método de la ruleta, desarrollado en un principio por Holland en 1975, y ampliamente analizado por otros autores como Brindle en su Tesis Doctoral en 1981 y Goldberg (1989). La probabilidad de selección pi, para el individuo i está dada por la siguiente ecuación:

∑=

= n

jj

ii

f

fp

1

siendo fi la calidad del individuo i, y n el tamaño de la población.

Page 12: Guía para recién llegados a los ALGORITMOS … Perez Vazquez_archivos/files... · De todas ellas, los algoritmos genéticos son los que han tenido un mayor interés, tanto por parte

Guía para recién llegados a los Algoritmos Genéticos. Elena Pérez (2010)      11 

Universidad de Valladolid. Dpto. Organización de Empresas: Escuela de Ingenierías Industriales

La representación gráfica de este sistema es una ruleta dividida en n áreas cada una de ellas proporcional a la calidad de cada individuo de la población. La selección consistirá rotar n veces la ruleta y la zona donde caiga el marcador indicará el individuo seleccionado para reproducirse (Figura 2).

Figura 2. Método de selección proporcional a la calidad

De esta forma, los individuos con mayor calidad relativa tendrán mayores probabilidades de ser seleccionados para la población de padres, y además más de una vez. Por lo que se presenta el problema de superindividuos y, por lo tanto, de convergencia prematura. Para evitarlo se desarrollaron los siguientes métodos.

− Selección estocástica por restos, que asigna directamente a cada individuo un número de copias en la población de padres igual a [pi × n], redondeando al menor entero más cercano, y con los restos, se aplica el método proporcional para obtener las copias vacantes. También fue desarrollado por Brindle, en cuyo estudió consideró las posibilidades de aceptar individuos repetidos o realizar un muestreo sin sustitución.

− Selección estocástica universal, similar al método de la ruleta, pero en lugar de tener una ruleta con un único marcador, se tienen n marcadores igualmente distanciados (Figura 3), y mediante una tirada se selecciona a los n individuos.

Figura 3. Método de selección estocástico universal

La transcripción al lenguaje matemático parte de un número aleatorio r del que se obtienen, mediante la siguiente ecuación los rj necesarios para compararlos con las probabilidades acumuladas, pi, de cada individuo. Fue desarrollado por Baker en 1987.

kjrrj

1−+= j = 1,…, n

El efecto de estos tipos de selección depende en gran medida del rango de la calidad de la población. Existe, por ello, la posibilidad de tener que modificar dichos rangos, modificando la función de calidad. Goldberg (1989) desarrolló diferentes formas de escalar la calidad.

1 2

3

4

5

678

9

10

1 2

3

4

5

678

9

10

Page 13: Guía para recién llegados a los ALGORITMOS … Perez Vazquez_archivos/files... · De todas ellas, los algoritmos genéticos son los que han tenido un mayor interés, tanto por parte

Guía para recién llegados a los Algoritmos Genéticos. Elena Pérez (2010)      12 

Universidad de Valladolid. Dpto. Organización de Empresas: Escuela de Ingenierías Industriales

5.4.2 Métodos basados en el orden o métodos de ordenación.

Estos métodos seleccionan a los individuos no en función de la magnitud absoluta de su calidad, sino de la posición que ocupan en una lista ordenada cuando se les clasifica según ella. Esto origina que la presión selectiva sea independiente de los rangos en los que se mueve la calidad3, y que el número esperado de hijos dependa únicamente de la posición, eliminando así el efecto pernicioso de los superindividuos.

- Selección por ordenación lineal, propuesto por Baker (1985). Donde la probabilidad para el individuo situado en la posición i-ésima de una clasificación realizada según el orden decreciente de calidades será:

⎥⎦

⎤⎢⎣

⎡−

+−

×=

×−−=

)n(n,r

nnrq

r)i(q)i(p

120

12

11

siendo n el tamaño de la población y r el parámetro que permite controlar la presión selectiva. Un r=0 indicará presión selectiva nula, ya que todos los individuos tendrán la misma probabilidad de ser seleccionados. Para el máximo valor de r (presión selectiva máxima), la probabilidad de cada individuo será:

⎥⎦⎤

⎢⎣⎡

−−

−×=1112

ni

n)i(p

Se comprueba que el individuo de mayor calidad, es decir, el primero en la clasificación, tiene un valor esperado de hijos de 2, mientras que para el peor individuo, es 0.

- Selección por ordenación no lineal desarrollado por Michalewicz (1995). En este caso, la diferencia entre las probabilidades de selección para individuos situados en posiciones adyacentes en la clasificación, no es igual a lo largo de toda la ordenación. Se rige por la ecuación:

11 −−×= i)q(q)i(p q ∈(0,1)

donde q es el parámetro que permite controlar la presión selectiva. Si dicho parámetro aumenta, la presión aumentará, y por lo tanto la diferencia entre las probabilidades de los individuos adyacentes aumentará según disminuyen sus posiciones dentro de la clasificación. De esta forma estaremos dando mayor peso (importancia) a los individuos mejor clasificados, existiendo apenas diferencia entre los peores.

3 Whitley (Whitley, 1989) analiza varias causas por las que el método de ordenación mejora a los demás y compara su comportamiento frente al teorema del esquema.

Page 14: Guía para recién llegados a los ALGORITMOS … Perez Vazquez_archivos/files... · De todas ellas, los algoritmos genéticos son los que han tenido un mayor interés, tanto por parte

Guía para recién llegados a los Algoritmos Genéticos. Elena Pérez (2010)      13 

Universidad de Valladolid. Dpto. Organización de Empresas: Escuela de Ingenierías Industriales

5.4.3 Métodos basados en competiciones o torneos.

Fueron inicialmente desarrollados por Brindle en 1981. En este caso, en cada paso se selecciona el nuevo padre mediante un torneo que se establece entre z individuos seleccionados de forma aleatoria, siendo éste el de mayor calidad. Es un muestreo con repetición. El proceso se repetirá hasta que la población de padres esté completa. Inicialmente Brindle utilizó un z = 2 (torneo binario), que es el de menor presión selectiva. Para aumentar dicha aumentaremos el valor de z, es decir, aumentar los individuos que compiten por cada puesto.

Horn (Horn et al., 1994) recoge modificaciones a los métodos de torneo especialmente diseñados para los problemas multimodales4 y multiobjetivo5, donde se necesita controlar la cantidad de individuos a los que se permite pasar a la siguiente población dependiendo de su distribución en el espacio de búsqueda. Es decir, si se tiene una gran cantidad de individuos o soluciones en determinadas partes del espacio de búsqueda, no se permiten más individuos en esas zonas. Así se pretende que el algoritmo busque de forma más amplia, limitando la posibilidad de que toda la población caiga en una única zona de alta calidad.

Para problemas multimodales, destacan la selección por torneo de Boltzmann6 y la selección por torneo con actualización continua7. Para problemas multiobjetivo se utilizan torneos que tienen en cuenta la superficie de Pareto.

Al elegir el tipo de selección a utilizar, hay que tener en cuenta el tipo de problema a estudiar y algunas características importantes de cada uno de estos métodos, como por ejemplo las estudiadas por De la Maza y Tidor (1993). Estos autores analizan dos aspectos importantes de los métodos de selección, como son su comportamiento frente a modificaciones en la función de calidad, en cuanto a la escala y a la traslación de valores.

Es importante estudiar cómo afectan las modificaciones de la escala en los métodos, ya que según converge el método en las últimas etapas, la escala de calidad de la población se reduce, de forma que la presión selectiva se modifica.

Asimismo, la traslación de los valores de la función de calidad es también importante, puesto que en algunas ocasiones hace falta modificar la función objetivo de un problema de optimización para que sea válido como función de calidad del algoritmo.

Como ya hemos visto, una de las modificaciones propuesta por Goldberg (1989) es la suma de una cantidad, siendo el resultado una traslación de valores, que dependiendo de la magnitud de dicha cantidad puede hacer que la calidad real del individuo sea despreciable, por lo que el método no sea capaz de distinguir a los mejores individuos.

Los estudios llevados a cabo por los citados autores, demuestran que los métodos proporcionales son invariante frente a la escala, pero sí se ven influidos por la traslación de valores. Por el contrario, los métodos de ordenación y de torneo son invariantes tanto frente a la escala como a la traslación.

En un nivel más teórico Goldberg y Ded (1991) comparan diferentes características de los métodos de selección. Sus recomendaciones más relevantes se pueden resumir en:

4 Los problemas multimodales se caracterizan por tener varios óptimos locales y globales, por lo que los métodos tradicionales de optimización suelen caen atrapados en uno de los muchos óptimos locales obteniéndose bajos rendimientos. Además, dada las condiciones de trabajo puede ser necesario encontrar más de un óptimo global y de entre ellos seleccionar el que mejor se adapte a las condiciones reales del problema (Pérez et al., 2001). 5 Los problemas multiobjetivo necesitan de un tratamiento especial para tener en cuenta todos los objetivos al mismo tiempo. Aunque inicialmente se propuso la idea de obtener una única función objetivo resultante de la suma ponderada de las funciones objetivo, se ha demostrado que el comportamiento de la búsqueda depende del rango en que se mueva cada objetivo. Los métodos basados en poblaciones están especialmente adaptados a este tipo de problemas ya que se puede establecer la frontera de Pareto, y trabajar sobre ella (Pérez et al. 2000). 6 Mahfound (1994) realizó un análisis bastante completo del método. 7 Un amplio estudio con diferentes modalidades es el realizado por Oei et al (1991).

Page 15: Guía para recién llegados a los ALGORITMOS … Perez Vazquez_archivos/files... · De todas ellas, los algoritmos genéticos son los que han tenido un mayor interés, tanto por parte

Guía para recién llegados a los Algoritmos Genéticos. Elena Pérez (2010)      14 

Universidad de Valladolid. Dpto. Organización de Empresas: Escuela de Ingenierías Industriales

- Utilizar en las primeras generaciones bajos ratios de presión selectiva para prevenir la convergencia prematura.

- Por el contrario, según evoluciona el sistema se deberían utilizar ratios cada vez mayores junto con algún operador mutación, para redescubrir los bloques constitutivos8 perdidos durante el proceso.

- Preservar la diversidad tanto espacial como temporal mediante métodos de selección que permitan la especialización.

- Eliminar el ruido en la evaluación y muestreo de individuos mediante la competición.

Las dos primeras conclusiones comparten la idea en la que se basan los modelos del recocido simulado, al principio una alta temperatura para que cualquier solución pueda ser aceptada (fase de alta exploración), y después una disminución lenta para que cada vez sea más difícil aceptar malas soluciones (fase de explotación). .

También hay estudios que analizan el comportamiento de los sistemas de selección ante situaciones en las que la función de calidad no es determinista; es decir, en entornos ruidosos Miller y Goldberg (1997) presentan formas para medir el efecto del ruido dependiendo de su origen y de su magnitud, y de esta forma poder elegir el método más apropiado.

Aparte de los métodos mencionados, cabe destacar algunas estrategias utilizadas para aumentar el rendimiento de los algoritmos genéticos relacionadas con el fortalecimiento de los mejores individuos. El método elitista propuesto por De Jong en 1975, consiste en pasar una copia del mejor individuo directamente a la siguiente población; de esta forma se previene su posible desaparición al llevar a cabo la recombinación. Michalewicz (1995) destaca otra posibilidad, la denominada modelo del valor esperado, donde a cada individuo se le asigna un contador que se decrementa al sufrir cruce o mutación. Cuando el contador cae hasta cero, ese individuo ya no está disponible para su selección nunca más. De esta forma eliminamos zonas del espacio de búsqueda suficientemente analizadas ya.

Otra técnica que permite también mejorar el rendimiento es hibridizar los sistemas de selección, es decir, en un mismo algoritmo combinar el efecto de varios métodos de selección. De esta forma Baker (1985) utilizó un umbral máximo de convergencia para activar el método de ordenación y así disminuir la velocidad de convergencia, y un umbral mínimo para desactivar este método y continuar con el método proporcional a la calidad por defecto.

5.5 Operadores genéticos: Reproducción En los algoritmos genéticos, la reproducción se realiza, en primer lugar, intercambiando el material genético de los dos padres mediante un operador cruce apropiado, y después sobre las dos cadenas que se obtienen se realiza la mutación. El resultado son dos nuevas cadenas con propiedades de ambos padres y alguna mutación aleatoria.

Por lo tanto, los principales operadores de reproducción son los de cruce y de mutación, que deben estar adaptados al tipo de codificación seleccionada para resolver el problema. Además, existe otro tercer tipo de operador llamado de inversión. A continuación mostraremos los operadores más importantes para algunas codificaciones9.

8 La teoría matemática en la que se basa el funcionamiento de los algoritmos genéticos y que desarrollará en la sección X.5, tiene como pilar fundamental lo que se han denominado bloques constitutivos, que son segmentos de la cadena que son especialmente buenos y que dirigen la búsqueda hacia las zonas de mayor calidad. 9 Aunque es imposible una revisión completa de todos los operadores genéticos existentes, Michalewicz (Michalewicz, 1995) recoge los más importantes.

Page 16: Guía para recién llegados a los ALGORITMOS … Perez Vazquez_archivos/files... · De todas ellas, los algoritmos genéticos son los que han tenido un mayor interés, tanto por parte

Guía para recién llegados a los Algoritmos Genéticos. Elena Pérez (2010)      15 

Universidad de Valladolid. Dpto. Organización de Empresas: Escuela de Ingenierías Industriales

5.5.1 Operadores Cruce

El operador cruce es el que juega el papel más importante dentro de los operadores genéticos, ya que permite el intercambio de características de una generación a la siguiente; es decir, el que hace evolucionar a las especies. Su realización es probabilística, se le asigna una probabilidad (pc)para que se pueda ejecutar. Su valor depende del tipo de problema, de la representación utilizada, y de muchos factores más. Inicialmente el valor dado fue del 60% (Goldberg, 1989), pero han surgido muchos estudios de cómo adaptar estas probabilidades al estado del proceso genético (Michalewicz, 1995).

Es importante considerar que el operador cruce realiza dos trabajos, los denominados mecanismo e idea (Jones, 1995).

La idea del cruce se basa en el hecho de que cada uno de los padres seleccionados tiene una probabilidad mayor que la media de la generación actual, de ofrecer un mejor material genético. La razón principal de mantener un conjunto de soluciones y utilizar el cruce es formar cada vez mejores individuos y combinarlos a su vez para conseguir otros nuevos aún mejores: cumplir el teorema de los bloques constitutivos. Si la idea del cruce así definida no se desarrolla en el algoritmo elegido, entonces no merece la pena gastar recursos en mantener una población de soluciones.

El mecanismo del cruce es el proceso por el que se lleva a cabo la idea. Es decir, la forma del intercambio, la aplicación literal de los métodos para la implementación de cada operador cruce que serán explicados a continuación.

Es importante separar estos dos conceptos del cruce ya que si un algoritmo realiza sólo el mecanismo, el resultado final es tal que no importa entonces que los padres seleccionados sean los mejores, al no aprovecharse sus buenas características. Se puede hablar de macromutación de los padres: cambio de la mayor parte del material genético de cada uno de los padres por otro que, en principio, no les aporta beneficios, tal y como pasa en las mutaciones.

Existe otro método menos estudiado de producir hijos, pero en cuyo proceso no están implicados directamente dos padres. Fue desarrollado inicialmente por Syswerda en 1993 y modificado por Eshelman y Schaffer (1993). Consiste en la creación de los hijos teniendo en cuenta toda la información que proporciona el total de individuos de la generación actual. Para crear los nuevos individuos, se observa la frecuencia de los valores existentes en cada posición, y por medio de dicha frecuencia se van construyendo los hijos de forma estocástica.

Dentro de la gran cantidad de operadores cruce existentes, citaremos los básicos para las codificaciones: binaria, permutacional y permutacional con repetición.

- Operador con un punto de cruce. Es el operador clásico para la codificación binaria y del que han surgido los demás. Se genera un número aleatorio que determinará el punto de corte, o punto de intercambio de los cromosomas, según se muestra en la figura 4.

Figura 4. Operador cruce 1-punto

- Operador con N puntos de cruce. Es una ampliación del anterior. En este caso se determinan n puntos de cruce para lo que se deberán generar n números aleatorios.

Padre 1

Padre 2

Hijo 1

Hijo 2

0 1 1 0 1 0 1 0 0 0 0 1 1 1

1 1 1 0 1 0 0 1 0 1 1 0 0 1

0 1 1 0 1 0 1 1 0 1 1 0 0 1

1 1 1 0 1 0 0 0 0 0 0 1 1 1

Page 17: Guía para recién llegados a los ALGORITMOS … Perez Vazquez_archivos/files... · De todas ellas, los algoritmos genéticos son los que han tenido un mayor interés, tanto por parte

Guía para recién llegados a los Algoritmos Genéticos. Elena Pérez (2010)      16 

Universidad de Valladolid. Dpto. Organización de Empresas: Escuela de Ingenierías Industriales

- Operador cruce uniforme. Es la generalización de los operadores anteriores. Cada gen tiene una probabilidad del 50% de ser intercambiado por el correspondiente del otro padre, utilizándose para ello una máscara (Figura 5).

Fue desarrollado por primera vez por Ackeley en 1987, y posteriormente Syswerda (1989) realizó un estudio comparativo entre este operador y los operadores 1-punto y 2-puntos. La conclusión fue que el cruce uniforme funciona mejor que los otros dos en estudio.

Figura 5. Operador cruce uniforme

- Operador cruce ordenado (OX)10. Desarrollado inicialmente por Davis en 1985 para la codificación permutacional, ha sido uno de los operadores clásicos para este tipo de representación, siendo ampliamente utilizado en la bibliografía.

Se selecciona de forma aleatoria un segmento de las cadenas que serán las únicas que permanecerán inalteradas en las cadenas de los hijos. Los números enteros de cada padre que han quedado fuera son las que se intercambian. Para completar el resto de la cadena de los hijos, se necesita una cadena auxiliar, para el hijo 1 formada por los genes del padre 2 y para el hijo 2 formada por los del padre 1, comenzando a rellenarlo con los números que están a continuación del segundo corte y tomando la cadena como si fuese circular (Figura 6).

En el ejemplo, la cadena auxiliar correspondiente al hijo 1 será: [ 2 1 3 7 4 5 6 9 8]. Se tachan los números ya presentes en el hijo 1, ( 4 5 6), para asegurar la formación de hijos válidos, es decir [2 1 3 7 4 5 6 9 8], y con los restantes se comienza a rellenar al hijo por su segundo corte. La operación a seguir con el hijo 2 es similar. Para el hijo 2 será [7 8 9 1 2 3 4 5 6].

- Cruce generalizado basado en el orden (GOX)11. Desarrollado por Bierwirth et al. (1996) para la codificación permutacional con repetición.

10 Order Crossover 11 Generalized Order Crossover.

Padre 1

Padre 2

Hijo 1

Hijo 2

0 1 1 0 1 0 1 0 0 0 0 1 1 1

1 1 1 0 1 0 0 1 0 1 1 0 0 1

0 1 1 0 1 0 1 1 0 1 1 1 1 1

1 1 1 0 1 0 0 0 0 0 0 0 0 1

Máscara 1 1 0 1 1 1 1 0 0 0 0 1 1 01 1 0 1 1 1 1 0 0 0 0 1 1 01 1 0 1 1 1 1 0 0 0 0 1 1 0

Page 18: Guía para recién llegados a los ALGORITMOS … Perez Vazquez_archivos/files... · De todas ellas, los algoritmos genéticos son los que han tenido un mayor interés, tanto por parte

Guía para recién llegados a los Algoritmos Genéticos. Elena Pérez (2010)      17 

Universidad de Valladolid. Dpto. Organización de Empresas: Escuela de Ingenierías Industriales

Figura 6. Operador cruce ordenado

Como en el operador anterior, se seleccionan dos posiciones en la cadena mediante dos números aleatorios que determinan una subcadena en cada padre. La subcadena (3 1 1) del padre 1 va a pasar sin cambios al hijo 1, el resto de sus posiciones las heredará del padre 2. Para formar hijos válidos los números enteros del padre 1 que se van a intercambiar se tachan de la cadena de números enteros del padre 2 que pasan al hijo 1, es decir el segundo 3, el primer y segundo 1, [2 1 1 3 2 1 2 3 3]. La subcadena del hijo 1 se insertará detrás del mismo número que en la que estaba en el padre 1, en este caso la subcadena está detrás del segundo 2, por lo que el hijo 2 será: [ 2 3 2 ( 3 1 1 ) 1 2 3 ]. (Figura 7).

Figura 7. Operador cruce generalizado basado en el orden

Estos son sólo algunos de los operadores cruce de los muchos que existen. Como se puede comprobar, es de gran importancia que estén adaptados a la codificación utilizada para resolver el problema, puesto que de no ser así se presentaría el problema de la obtención de hijos no válidos. Como ilustración se aplicará el operador cruce 1-punto a un problema del vendedor que debe visitar 9 ciudades (Figura 8).

Figura 8. Obtención de hijos no válidos por un operador curce incorrecto

Padre 1

Padre 2

Hijo 1

Hijo 2

1 2 3 4 5 6 7 8 9

7 4 5 6 9 8 2 1 3

3 4 5 6 9 8 7 1 2

7 9 8 4 5 6 2 1 3

Padre 1

Padre 2

3 2 2 3 1 1 2 3 1

2 1 1 3 2 1 2 3 3

Hijo 1

Hijo 2 2 3 1 1 3 2 1 2 3

2 3 2 3 1 1 1 2 3

Padre 1

Padre 2

Hijo 1

Hijo 2

1 2 3 4 5 6 7 8 9

7 4 5 6 9 8 2 1 3

7 4 5 4 5 6 7 8 9

1 2 3 6 9 8 2 1 3

Page 19: Guía para recién llegados a los ALGORITMOS … Perez Vazquez_archivos/files... · De todas ellas, los algoritmos genéticos son los que han tenido un mayor interés, tanto por parte

Guía para recién llegados a los Algoritmos Genéticos. Elena Pérez (2010)      18 

Universidad de Valladolid. Dpto. Organización de Empresas: Escuela de Ingenierías Industriales

Se obtiene una solución que visitará dos veces las ciudades 1, 2 y 3, y que por el contrario no visitará las 4, 5 y 7. Por lo tanto son soluciones que no se cumplen las condiciones del problema.

5.5.2 Operadores Mutación.

Mientras el operador cruce combina aquellas buenas características de los individuos llevando a cabo la explotación de las áreas beneficiosas detectadas por la selección, el operador mutación incluye la diversidad en la búsqueda facilitando la exploración de áreas aún no tratadas. Por lo tanto se puede decir que la principal característica de este operador es permitir que todos los individuos del espacio de búsqueda tengan una probabilidad de ser explorados mayor de cero. Además, su funcionamiento permite recuperar características de los individuos que por medio de la selección y el cruce podrían haber perdido, cayendo en el olvido y que, aún siendo buenas características, sería imposible recuperar sin la acción del operador mutación.

Existe una gran cantidad de operadores mutación. A continuación, se desarrollan algunos.

- Mutación estándar. Es el operador por excelencia utilizado en la codificación binaria. La probabilidad de aplicación (pm)s muy baja, para no incluir demasiada diversidad en la búsqueda y perder de esta forma la dirección de la misma. Según los estudios realizados por Holland, la probabilidad aceptable sería la comprendida entre 0.1 y 1%. Esta probabilidad se aplicará bit a bit, a diferencia de los operadores cruce que se refieren a cada pareja o incluso a otros operadores mutación, generalmente los aplicados sobre codificaciones no binarias, donde se aplicará sobre cada cadena o individuo.

El proceso es sencillo y consiste en mutar el bit correspondiente según la probabilidad de mutación asignada (Figura 9).

Figura 9. Operador mutación estandar

- Mutación no uniforme. Desarrollado para codificaciones reales. Como demuestra Michelewicz (1995), el operador mutación estándar actúa de diferente forma en la codificación binaria que en la codificación real, de tal forma que el operador así diseñado actúa de una forma mucho más aleatoria para la codificación real que para la binaria, donde cambiar un bit aleatoriamente no implica producir un valor totalmente aleatorio del dominio. Para evitar este efecto se diseñó la mutación no uniforme.

Dado un cromosoma formado por m variables, St={v1, v2, v3,..., vk,... ,vm}, cuyo elemento vk es seleccionado para mutar, el cromosoma resultante es de la forma St+1={v1, v2, v3,..., v´k,... ,vm}, donde:

( )( )⎩

⎨⎧

−Δ+−Δ+

=10

essiLB,tvesaleatorionúmerounsiUB,tv

kk

kk´k ν

νν

con UB y LB, el rango superior e inferior respectivamente del dominio de la variable vk. El valor Δ(t,y) devuelve un valor comprendido entre 0 e y:

1 0 1 0 0 0 1 0 1 0 1

1 0 0 0 0 0 1 1 1 0 1

Page 20: Guía para recién llegados a los ALGORITMOS … Perez Vazquez_archivos/files... · De todas ellas, los algoritmos genéticos son los que han tenido un mayor interés, tanto por parte

Guía para recién llegados a los Algoritmos Genéticos. Elena Pérez (2010)      19 

Universidad de Valladolid. Dpto. Organización de Empresas: Escuela de Ingenierías Industriales

⎪⎪⎪

⎪⎪⎪

−×=Δ−

iteracióndenúmeroelsobreadependencidedograb

esgeneraciondetotalnúmeroT

yentrealeatorionúmeror

)r(y)y,t(b)

Tt

(

10

11

Se recomienda b=5. Esto supone que en las generaciones iniciales, el operador mutación suma una cantidad mayor que en las finales. El objetivo es incentivar la exploración en las generaciones iniciales y la explotación en las finales, una búsqueda intensiva, más localizada.

La adaptación del método al caso binario es sencilla. Se tiene un cromosoma binario de tal forma que el bit que muta está dado por ∇(t,n):

⎣ ⎦

⎡ ⎤⎪⎩

⎪⎨

Δ

Δ=∇

1

0

essi)n,t(

esaleatorionúmerounsi)n,t()n,t(

El símbolo ⎡x⎤ indica que se busca al entero mayor más cercano a x, y ⎣x⎦ el entero menor más cercano. En este caso, asignando al parámetro b el valor 1.5, se busca que en las primeras generaciones muten los bits más significativos de la cadena para aumentar la capacidad exploratoria del algoritmo, mientras que en las últimas etapas se mutarán los menos significativos para dar más importancia a la búsqueda local.

- Mutación basada en el orden (OBM)12. Este operador está diseñado para que pueda trabajar tanto con codificaciones permutacionales como con las permutacionales con repetición. Consiste en el intercambio de los valores de dos posiciones seleccionadas aleatoriamente (Figura 10).

Figura 10. Operador mutación OBM (codificación permutacional con repetición)

- Mutación por permutación de un subconjunto (SSM13). Desarrollado por Davis (Davis, 1991) para la codificación permutacional, pero que es directamente aplicable también a la permutacional con repetición. Se seleccionan dos posiciones de la cadena correspondiente al individuo que tiene que mutar, y los valores comprendidos entre ellas se permutan de forma aleatoria, dejando el resto del cromosoma igual (Figura 11):

Figura 11. Operador mutación SSM (codificación permutacional)

12 Order Based Mutation. 13 Scramble Sublist Mutation.

3 2 2 3 1 1 2 3 1

3 2 3 3 1 1 2 2 1

1 2 4 6 5 3 7 9 8

1 2 4 6 7 5 3 9 8

Page 21: Guía para recién llegados a los ALGORITMOS … Perez Vazquez_archivos/files... · De todas ellas, los algoritmos genéticos son los que han tenido un mayor interés, tanto por parte

Guía para recién llegados a los Algoritmos Genéticos. Elena Pérez (2010)      20 

Universidad de Valladolid. Dpto. Organización de Empresas: Escuela de Ingenierías Industriales

1. Operador Inversión.

En algunas ocasiones, como es el caso de problemas de engaño14 en la codificación utilizada, se recomienda el uso de otro operador, denominado operador inversión. Su proceso es sencillo pero hay que tener en cuenta que es un operador que afecta a la codificación, no al contenido de la cadena. El proceso se presenta en la Figura 12, donde se muestra un cromosoma binario y además la posición de cada bit situado encima del cromosoma. Se trata de una representación extendida de la solución donde a parte de dar la información para la calidad, se da información necesaria para su decodificación.

Se seleccionan dos puntos en el cromosoma y las posiciones situadas entre los puntos seleccionados son invertidas. La probabilidad recomendada para la aplicación de este operador es del 75%.

Figura 12. Operador inversión

La calidad del cromosoma sigue siendo la misma, ya que lo único que se invierte son las posiciones ocupadas por los valores. En el ejemplo anterior se ha mostrado el caso binario, pero es aplicable a cualquier codificación. Goldberg (1989) y Michalewicz (1995) presentan estudios sobre este operador y posibles modificaciones en su utilización para mejorar su rendimiento.

Goldberg (1989) realizó la aplicación del operador inversión de dos formas; continua, donde todos los individuos tienen la misma probabilidad, o colectiva, donde la población total se divide en dos subpoblaciones aplicándose la inversión sólo a una de ellas y con los mismos puntos de inversión, de forma que se evita la proliferación de subpoblaciones que no interactuan entre sí.

Hemos visto que los operadores genéticos se aplican según unas probabilidades (pc y pm). Si durante el proceso evolutivo una pareja no debe pasar por el operador cruce, directamente pasarán a la población de hijos sin sufrir ningún tipo de modificación, tampoco se aplicará la mutación.

5.6 Sustitución En este punto destacamos que existen dos tipos diferentes de algoritmos genéticos según sea el proceso de la reproducción y que afectará a la forma de aplicar la sustitución.

- Algoritmos genético generacionales. Donde de la población inicial formada por N individuos se obtienen N padres que son recombinados mediante los operadores genéticos apropiados para dar lugar a N hijos. Después, estos N hijos sustituirán directamente a la población inicial siendo así la población de partida de la siguiente generación cerrando el ciclo.

- Algoritmos genéticos de creación continua. En esta técnica se seleccionan dos individuos para obtener dos hijos, siendo incorporados a la población mediante la sustitución de uno o dos individuos. La sustitución puede ser:

14 Se puede definir engaño (deception) como la característica que tiene la codificación utilizada para que los bloques constitutivos proporcionen una información errónea al proceso, desviándolo por tanto de la dirección hacia las zonas de óptimos. Para más información consultar (Whitley, 1991); (Goldberg et al., 1991) y (Forrest y Mitchell, 1993).

1 2 3 4 5 6 7 8

1 2 6 5 4 3 7 8

0 1 1 1 0 1 0 1

0 1 1 0 1 1 0 1

Page 22: Guía para recién llegados a los ALGORITMOS … Perez Vazquez_archivos/files... · De todas ellas, los algoritmos genéticos son los que han tenido un mayor interés, tanto por parte

Guía para recién llegados a los Algoritmos Genéticos. Elena Pérez (2010)      21 

Universidad de Valladolid. Dpto. Organización de Empresas: Escuela de Ingenierías Industriales

1. Totalmente aleatoria. Todos tienen la misma probabilidad.

2. Seleccionando directamente al peor o peores individuos.

3. Mediante técnicas de clasificación u ordenación.

Una modificación destacable de esta técnica se denomina creación continua sin duplicados desarrollada por Whitley (1989b) para el programa GENITOR, y por Syswerda (1989), cuya principal característica es que evitan trabajar con individuos duplicados al descartar hijos ya presentes en la población. El principal beneficio de esta técnica frente a las convencionales, es el uso más eficiente de la población al evaluar sólo individuos diferentes. El inconveniente más importante es el aumento de tiempo del proceso por la identificación y eliminación de copias.

La principal diferencia entre los algoritmos genéticos generacionales y los de creación continua es que cuando se crea un buen individuo, éste estará disponible para el proceso inmediatamente, mientras que en el reemplazo generacional hay que esperar a la siguiente generación.

En los estudios que llevó a cabo De Jong en 1975, demostró que el modelo con G=1, es decir el generacional, era mejor para los problemas de optimización.

Por último destacar el proceso elitista ampliamente utilizados en los algoritmos genéticos generacionales. Que este método cuando se ha formado ya la población de hijos que será la población de partida de la siguiente generación se elimina al peor individuo y en su lugar pasa directamente al mejor individuo de la población inicial de la generación anterior. De esta forma, el proceso tendrá siempre una copia, al menos, de la mejor solución encontrada en cada momento, por si por el efecto de la selección y de los operadores genéticos, ésta se perdiera.

6. ¿Por qué funcionan los algoritmos genéticos? En esta sección se describirán los fundamentos matemáticos de los algoritmos genéticos,

que permitirán comprobar su potencia real y ayudarán a entender cómo funcionan y el por qué de las modificaciones que se deben hacer para que los algoritmos genéticos se puedan adaptar a cada tipo de problema. Para los desarrollos matemáticos siguientes se ha supuesto un algoritmo genético generacional con representación binaria, operador de un punto de cruce y mutación estándar.

6.1. El teorema fundamental de los algoritmos genéticos El teorema fundamental o teorema del esquema está basado en el concepto del mismo nombre. La notación normalmente utilizada representa un esquema como un cromosoma construido a partir de ceros, unos y el símbolo de comodín #, que indica que su valor puede ser 0 ó 1. Por ejemplo, el cromosoma # 0 1 1 # 0 indica que tiene cuatro posiciones cuyos valores son fijos y otras dos variables.

Un esquema representa a un conjunto de cromosomas que tienen una serie de características comunes entre ellos, las posiciones fijas. De esta forma, el esquema anterior representa a los siguientes cromosomas:

Esquema # 0 1 1 # 0

Cromosoma 0 0 1 1 0 0

“ 1 0 1 1 0 0

“ 0 0 1 1 1 0

“ 1 0 1 1 1 0

Es decir, un esquema representa a 2n cromosomas, en el alfabeto binario. Para otros alfabetos será cn, donde c es la cardinalidad del alfabeto y n el número de comodines que hay en el

Page 23: Guía para recién llegados a los ALGORITMOS … Perez Vazquez_archivos/files... · De todas ellas, los algoritmos genéticos son los que han tenido un mayor interés, tanto por parte

Guía para recién llegados a los Algoritmos Genéticos. Elena Pérez (2010)      22 

Universidad de Valladolid. Dpto. Organización de Empresas: Escuela de Ingenierías Industriales

esquema. Por otro lado, el número de diferentes esquemas de longitud k que existen es (c+1)k, ya que el lenguaje en el que se basa está formado por los símbolos propios del alfabeto c y el comodín #. Así los posibles esquemas presentes en un cromosoma de longitud 2, serán:

0 0 0 1 0 # # 0 1 1 1 0 1 # # 1 # #

En cambio, un cromosoma de longitud k estará representado por 2k diferentes esquemas. Por ejemplo, el cromosoma 0 0 1, pertenece a los esquemas siguientes:

0 0 # 0 # 1 # 0 1 0 # # # 0 # # # 1 0 0 1 # # #

Otros conceptos necesarios para el desarrollo del teorema es el de orden de un esquema y su longitud. El orden de un esquema S, conocido como o( S ), es el número de posiciones fijas en el esquema, así # 0 1 1 # 0 tiene un orden de 4. La longitud de un esquema S, representado por δ( S ), es la distancia entre la primera y última posición fija, por ello los esquemas con una única posición fija tienen la longitud cero. Por ejemplo:

Esquema S1 # 0 1 1 # 0 o(S1) = 4 y δ(S1) = (6-2) = 4

Esquema S2 1 1 1 0 1 # # 0 0 1 o(S2) = 8 y δ(S2) = (10-1) = 9

Por m(H, t) se entiende la frecuencia del esquema H en la generación t; en otras palabras, el número de veces que aparece el esquema H en la generación t. Dicha frecuencia para la generación (t + 1) cambiará bajo los efectos de la selección, reproducción y de los operadores genéticos.

Otra propiedad de un esquema es su calidad media representada por eval(H,t)15, que da la calidad media de todos los cromosomas representados por ese esquema y que están presentes en la generación t. Supuesto que existen p cromosomas pertenecientes al esquema H, la calidad media estará representado por:

∑=

=p

j

j

pf

)t,H(eval1

El primer paso de un algoritmo es la selección. Se considerará una selección proporcional a la calidad, es decir, durante la selección un cromosoma es copiado en la población padre de acuerdo a su calidad. Por tanto, en la siguiente generación se espera tener m(H, t+1) representaciones del esquema H:

f)t,H(eval*)t,H(m)t,H(m

N*f

)t,H(eval*)t,H(m)t,H(mN

ii

=+

=+

∑=

1

1

1

siendo N el tamaño de la población, ya que en la selección proporcional el valor esperado de copias de un cromosoma es igual a la probabilidad de ser seleccionado por el número de padres que se elijan, al estar en el caso de reemplazo generacional el número de padres es N.

La ecuación anterior indica que el número de esquemas crece o disminuye según sea la calidad del esquema respecto a la calidad media de la población. Si la calidad es superior a la media, el número de copias será mayor que 1 y, por tanto, la cantidad de esquemas del tipo H crecerá. Al contrario, si la calidad es inferior a la media, entonces el número de esquemas decrecerá. Esto se puede entender mejor si representamos la frecuencia del esquema en la generación t+1, respecto al ratio ε:

15 Siguiendo la notación utilizada en Michalewicz (Michalewicz, 1995).

Page 24: Guía para recién llegados a los ALGORITMOS … Perez Vazquez_archivos/files... · De todas ellas, los algoritmos genéticos son los que han tenido un mayor interés, tanto por parte

Guía para recién llegados a los Algoritmos Genéticos. Elena Pérez (2010)      23 

Universidad de Valladolid. Dpto. Organización de Empresas: Escuela de Ingenierías Industriales

)()t,H(m)t,H(mf

)f)t,H(eval( εε +×=+⇒−= 11

Se observa que si la calidad media del esquema es mayor que la calidad media de la población, ε tiene un valor mayor que cero, y por tanto la frecuencia aumentará. Pero si además se estudia cómo es esta evolución desde la generación inicial, se ve que es exponencial, como se comprueba en la siguiente ecuación:

t)(),H(m)t,H(m ε+×=+ 111

Por lo tanto, la selección proporcional favorece el aumento de los individuos mejor adaptados pero, como ya se ha dicho, los métodos de ordenación también cumple este teorema aumentando el número de individuos adaptados de una generación a las siguientes.

El efecto del operador cruce sobre los esquemas se debe a la posibilidad que surge al aplicar el cruce sobre los cromosomas seleccionados haciendo que se rompa el esquema al que pertenecen, disminuyendo la frecuencia de ocurrencia en posteriores generaciones.

Un ejemplo de una ruptura por cruce la tenemos en los siguientes cromosomas:

Padres Hijos

H=1 # # # 1 0 ⇒ 1 0 | 0 1 1 0 0 1 0 1 1 0

0 1 | 1 1 1 1 1 0 1 1 1 1

El esquema representado por H está presente en el primer padre. Sin embargo dicho cromosoma desaparece cuando se aplica el operador cruce. La cuantificación de esta ruptura depende de la longitud del esquema, δ( H ), la longitud de la cadena y la probabilidad de aplicar el operador cruce, pc. La probabilidad de supervivencia del esquema H después del operador cruce será:

11

−×−=

l)H(pp ccruces

δ

De la misma forma que el operador cruce rompe el esquema, el operador mutación también puede romperlo. Esto ocurrirá cuando el bit a mutar sea uno de los que permanecen fijos en el esquema. Por ello, la probabilidad de supervivencia frente a la mutación será función de la probabilidad de mutación, pm, y el número de posiciones fijas en el esquema, o(H):

)H(oms )p(p

mutación−= 1 como pm<<1 ⇒ ms p)H(op

mutación×−≈1

Considerando despreciable el término cruzado del cruce con la mutación, la frecuencia del esquema H en la generación t + 1, después de todo el proceso, se muestra en la siguiente ecuación:

⎥⎦⎤

⎢⎣⎡ ×−

−×−××≥+ mc p)H(o

l)H(p

f)t,H(eval)t,H(m)t,H(m

111 δ

Llegados a este punto ya es posible enunciar el teorema fundamental de los algoritmos genéticos:

Los esquemas cortos, de orden bajo y calidad superior a la media de la población, reciben un crecimiento exponencial de representantes en posteriores generaciones de un algoritmo genético.

El teorema fundamental sugiere que los alfabetos deben tener la menor cardinalidad posible para aumentar el rendimiento del algoritmo, ya que maximizan el número de esquemas disponibles para el proceso genético.

Page 25: Guía para recién llegados a los ALGORITMOS … Perez Vazquez_archivos/files... · De todas ellas, los algoritmos genéticos son los que han tenido un mayor interés, tanto por parte

Guía para recién llegados a los Algoritmos Genéticos. Elena Pérez (2010)      24 

Universidad de Valladolid. Dpto. Organización de Empresas: Escuela de Ingenierías Industriales

6.2. La hipótesis de los bloques constitutivos El teorema fundamental permite formular una serie de ideas acerca de por qué los algoritmos genéticos funcionan. Del apartado anterior se concluye que los esquemas altamente adaptados, de bajo orden y cortos, son de gran importancia en el proceso genético, ya que son los que van a dominar a la población llevándola hacia regiones de alta calidad. Dichos esquemas son tan importantes en el proceso que, incluso, reciben un nombre propio: bloques constitutivos o básicos.

La fuerza de los algoritmos genéticos está en la posibilidad de combinar los bloques constitutivos para formar cada vez mejores individuos. Pero quien tiene realmente la responsabilidad de crear dichos bloques es la representación seleccionada. Si en una codificación de un algoritmo genético no existen dichos bloques constitutivos, el proceso no será dirigido y por lo tanto no se podrá asegurar un resultado óptimo.

6.3. El paralelismo implícito Como se demostró anteriormente, un cromosoma representa a 2k esquemas diferentes cuando su longitud es k. Por lo tanto, se puede establecer un límite superior y otro inferior para contabilizar el número de esquemas totales que son procesados en una población formada por n individuos de longitud k. Para el límite superior se supondrá que todos los cromosomas de la población son distintos y que además los esquemas procesados por cada individuos son, así mismo, diferentes en su conjunto. Entonces el límite superior será n×2k. Para el límite inferior se supondrá todo lo contrario, es decir, que todos los individuos son iguales y por lo tanto el número mínimo de esquemas procesados es de 2k.

Los cálculos desarrollados tanto por Holland como por Goldberg para delimitar el valor del número de esquemas procesados, se escapan de los objetivos del presente libro, por lo que tan solo se citarán sus resultados y se dará una breve explicación de su significado. Goldberg (1989) desarrolla los cálculos necesarios para su estimación, y Bertoni y Dorigo (1993) hacen una revisión completa de los cálculos de Goldberg dando otro límite aún más aproximado que los anteriores. Holland estableció el límite inferior en:

kcn×1

3

considerando una población formada por n individuos siendo n = c1 × 2k , k la longitud de los cromosomas y c1 una constante entera pequeña. Es decir, el orden de magnitud de los esquemas procesados en una población de n individuos es al menos de n3, y no de n como cabría esperar en un principio. A esto se le llama paralelismo implícito, ya que se procesan más esquemas que individuos tiene la población. Ya se ha analizado la importancia que tienen los esquemas en el desarrollo y la potencia de búsqueda de los algoritmos genéticos, siendo importante delimitar el valor mínimo de dichos esquemas.

Goldberg delimitó el número z de esquemas de una longitud determinada ks, que son los esquemas que tendrán una probabilidad de sobrevivir al cruce y a la mutación mayor o igual que un ps determinado. Con esta estimación se puede conocer el número de bloques constitutivos que son procesados al mismo tiempo en cada generación, y por ello esta estimación es más interesante. El número de tales esquemas ns fue delimitado a 221 −×+−× sk

s )kk(n , siendo el

tamaño de la población 2/2 skn = , por lo que el límite inferior es:

41 3n)kk( s ×+−

Es decir, el orden de magnitud de los bloques constitutivos procesados sigue siendo de n3. Se refuerza así el concepto de paralelismo implícito.

Page 26: Guía para recién llegados a los ALGORITMOS … Perez Vazquez_archivos/files... · De todas ellas, los algoritmos genéticos son los que han tenido un mayor interés, tanto por parte

Guía para recién llegados a los Algoritmos Genéticos. Elena Pérez (2010)      25 

Universidad de Valladolid. Dpto. Organización de Empresas: Escuela de Ingenierías Industriales

7. Algoritmos genéticos en la práctica 

El gran desarrollo que han tenido los algoritmos genéticos se debe al gran número de aplicaciones reales donde se han obtenido buenos resultados, aunque su parte teórica aún no se conozca del todo. Originalmente esta falta de sólidas bases ha sido una traba para el desarrollo de técnicas de optimización. Sin embargo, desde los años 50 y debido a la creciente necesidad por parte de las empresas de obtener resultados aún a costa de exactitud ha generado que la práctica esté mucho más desarrollada que la teoría.

Podemos hacer un recorrido por algunas de las aplicaciones que existen en diferentes campos:

Industria: Equilibrado de cargas (Fulk, 93); Planificación multiobjetivo (Busc, 91); programación de operaciones (Matt, 96).

Servicios financieros: Estudio de riesgos (Hugh, 90); detección de fraude en créditos (Foga, 92);Selección de carteras de inversión (Nobl, 90).

Tráfico: Establecimiento de rutas de vehículos (Kada, 91); programación del despegue de aviones (Abra, 93).

Energía: Optimización de las redes de distribución de energía eléctrica (Ader, 85).

Educación: Problemas de asignación aula-clase (Colo, 92); programación de exámenes (Ross, 94).

Telecomunicaciones: Diseño de redes de área local (Kear, 95).

Salud pública: Programación de pacientes en un hospital (Abla, 95).

Agradecimientos Este trabajo ha sido financiado por la Junta de Castilla y León (VA003B08)

Bibliografía Bäck, T.; Hammel, U. y Schwefel, H. (1997). “Evolutionary computation: Comments on the history and current state”. En Fogel, D.B. (Ed).

Baker, J.E. (1985). ”Adaptive selection methods for genetic algorithms”. Proceedings of the first International Conference on Genetic Algorithms and their applications. John J. Gefenstette (Ed.). Lawrence Erlbaum. New Jersey. Pag. 101-111.

Bertoni, A. y Dorigo, M. (1993). “Implicit parallelism in genetic algorithms”. Artificial Intelligence, Vol. 61 2.

Biethahn, J. y Nissen, V. (Co-Eds). (1995). Evolutionary algorithms in management applications. Springer. New York.

Davis, L. (1989). ”Adapting operator probabilities in genetic algorithms”. Proceedings of the third international conference on Genetic Algorithms. J. David Schaffer (Ed.). Kaufmann. San Mateo. Pag. 375-378.

Davis, L. (ed).(1991). Handbook of genetics algorithms. Van Nostrand. New York.

Fang H. (1994). Genetic Algorithms in Timetabling and Scheduling, Doctoral dissertation, Department of Artificial Intelligence, University of Edinburg

Page 27: Guía para recién llegados a los ALGORITMOS … Perez Vazquez_archivos/files... · De todas ellas, los algoritmos genéticos son los que han tenido un mayor interés, tanto por parte

Guía para recién llegados a los Algoritmos Genéticos. Elena Pérez (2010)      26 

Universidad de Valladolid. Dpto. Organización de Empresas: Escuela de Ingenierías Industriales

Forrest, S. y Mitchell, M. (1991). ”What makes a problem hard for a genetic algorithm? Some anomalous results and their explanation”. Manuscrito enviado para su publicación en Machine Learning.

Forrest, S. y Mitchell, M. (1993). ”Relative building-block fitness and building block hypothesis”. Foundations of Genetic Algorithms 2. Whitley D.L. (Ed). Kaufmann. San Mateo. Pag. 109-126.

Fulkerson, W. (1993): Scheduling assembly lines. Personal comunication.

Goldberg, D.E. (1989). Genetic algorithms in search, optimization, and machine learning. Addison-Wesley. Massachusetts

Goldberg, D.E. y Deb, K. (1991). ”A comparative analysis on selection schemes used in genetic algorithms”. Foundations of Genetic Algorithms 1. Rawlins G.(Ed). Kaufmann. San Mateo. Pag. 69-93.

Goldberg, D.E.; Deb, K.; Kargupta, H. y Harik, G. (1993). “Rapid, accurate optimization of difficult problems using fast messy genetic algorithms”. Proceedings of the fifth international conference on Genetic Algorithms. Stephanie Forrest (Ed.). Kaufmann. San Mateo. Pag. 56-64.

Herrera, F.; Lozano, M. y Verdegay, J.L. (1994). Algoritmos genéticos: fundamentos, extensiones y aplicaciones. Technical Report #DECSAI 94105. Universidad de Granada.

Holland, J.H. (1992). “Algoritmos genéticos”. Investigación y Ciencia. Septiembre 38-86.

Mattfeld, D.C. (1996). Evolutionary search and the job shop. Investigations on genetic algorithms for production scheduling. Springer. Berlin.

Michalewicz, Z. (1995). Genetic algorithms + data structures = Evolution Programs. Springer. Berlin.

Oei, C.K.; Goldberg, D.E. y Chang, S.J. (1991). Tournament selection, niching and the preservation of diversity. IlliGAL Report Nº 91011. University of Illinois at Urbana-Champaign.

Sagan, C. (1982). Cosmos. Planeta.

Syswerda, G. (1989). “Uniform crossover in genetic algorithms “.Proceedings of the third international conference on Genetic Algorithms. Schaffer, J. D. (Ed.). Kaufmann. San Mateo. Pag. 2-9.

Syswerda, G. (1991). “A study of reproduction in generational and steady-state genetic algorithms”. Foundations of Genetic Algorithms 1. Rawlins G.(Ed). Kaufmann. San Mateo. Pag. 94-101.

Whitley, L.D. (1989b). “The GENITOR Algorithm and selection pressure”. Proceedings of the third international conference on Genetic Algorithms. J. David Schaffer (Ed.). Kaufmann. San Mateo. Pag. 116-121.

Whitley, L.D. (1991). ”Fundamental principles of deception in genetic search”. Foundations of Genetic Algorithms. Rawlins G.(Ed). Kaufmann. San Mateo. Pag. 221-241.