Está en la página 1de 18

APLICACIONES DE LOS ALGORITMOS GENTICOS EN LA INDUSTRIA Gmez Gmez, A.; Parreo Fernndez, J y Fernndez Quesada, I.

ESCUELA TCNICA SUPERIOR DE INGENIEROS INDUSTRIALES DE GIJN UNIVERSIDAD DE OVIEDO Edificio de Energa. Campus de Viesques 33204 Gijn (Asturias) e-mail: agomez@etsiig.uniovi.es

1. Introduccin En este trabajo, se van a comentar las principales aplicaciones de los algoritmos genticos (AGs) en el campo industrial. Entre las razones que justifican la utilizacin de los AGs en el campo industrial podramos destacar: 1. La amplia aplicabilidad que presentan, pues son capaces de buscar soluciones en entornos de elevada complejidad o en entorno cuya compresin no es plena. Y precisamente en la industria, es donde abundan problemas de difcil formulacin matemtica, lo que origina que los AGs sean ideales para este entorno (Michalewicz,96). 2. Su alta velocidad de clculo, en unos pocos segundos, se puede tener una solucin aceptable de un problema complejo. Esta caracterstica tambin es interesante desde un punto de vista industrial, pues la industria, en su actividad cotidiana est sometida a continuos cambios, por lo que los planes de produccin, se deben modificar varias veces al da, y para poder realizar estas modificaciones, se necesita una alta velocidad de clculo. El trabajo se ha organizado en los siguientes apartados: en el segundo se comentan las principales caractersticas de los AGs, y a continuacin se describen las aplicaciones en la resolucin del problema del viajante de comercio, en secuenciacin de ordenes de trabajo y en planificacin de turnos de trabajo. Por ltimo, se comentan las conclusiones. 2. Los Algoritmos genticos Los primeros trabajos sobre AGs datan de finales de los aos 60, y fueron realizados por Holland, quien consciente de la importancia que supona la seleccin natural, desarroll una tcnica que permita incorporarla a un programa de ordenador. Uno de sus objetivos iniciales era lograr que los ordenadores aprendieran por s mismos. A esta tcnica desarrollada por Holland se le llam 1

originariamente planes reproductivos, aunque posteriormente se hara popular bajo el nombre de algoritmos genticos tras la publicacin de su libro en 1975. Koza (1992) propuso la siguiente definicin para el AG: Es un algoritmo matemtico altamente paralelo que transforma un conjunto de objetos matemticos individuales, usando operaciones modeladas de acuerdo al principio Darwiniano de reproduccin y supervivencia del ms apto, y tras haberse presentado de forma natural una serie de operaciones genticas de entre las que destaca la recombinacin sexual. Cada uno de estos objetos matemticos suele ser una cadena de caracteres (letras o nmeros) de longitud fija que se ajusta al modelo de las cadenas de cromosomas, y se les asocia con una cierta funcin matemtica que refleja su aptitud. De una forma ms general, se pueden definir los AG de la siguiente manera: Son mtodos estocsticos de bsqueda ciega de soluciones cuasi-ptimas,

fundamentalmente orientados a resolucin de problemas de optimizacin. Para trabajar mantienen una poblacin de individuos, es decir, un conjunto de posibles soluciones al problema, la poblacin es sometida a una serie de transformaciones, para obtener nuevas soluciones, y a un proceso de seleccin orientado a favorecer a los mejores candidatos. De esta forma, las soluciones irn evolucionando, para ir mejorando y llegar a obtener la mejor solucin al problema. Los AGs adoptan un vocabulario tomado de la propia gentica natural, as pues se habla de individuos (genotipos o cromosomas) de una poblacin. Cada individuo representa una codificacin de la solucin potencial del problema a resolver, la traduccin de esta codificacin a una variable real es lo que se llama fenotipo. Otro aspecto importante de los AGs es que trabajan manteniendo una poblacin de soluciones potenciales del problema, pues otros mtodos de bsqueda procesan un solo punto del espacio de bsqueda. De esta forma los AGs buscan la seguridad en la cantidad, reduciendo de esta forma la posibilidad de alcanzar un falso ptimo. 2.1. Funcionamiento de los AGs El principio de funcionamiento de los AGs se basa en someter a una poblacin de individuos a una serie de transformaciones, para hacer una bsqueda, as como a un proceso de seleccin, que favorece a los mejores individuos de la misma. De esta manera, cada uno de los ciclos seleccintransformacin, sufridos por la poblacin, constituye una generacin; se espera que al cabo de un determinado nmero de generaciones, la poblacin halla evolucionado hacia la solucin ptima al

problema, o que al menos se est muy prximo a ella. Todo este ciclo puede verse claramente y de forma simplificada, en la figura 1.
n

Figura 1: Ciclo de un algoritmo gentico. Se parte de una poblacin de n individuos; el primer paso es hacer una seleccin que conduce a la poblacin auxiliar, tambin de n individuos. Este proceso de seleccin se aplica para determinar los individuos que sern elegidos como progenitores, y la eleccin de los mismos se hace en funcin de la aptitud de los individuos. Una vez obtenida la poblacin auxiliar, se escogen los individuos que realmente van a tener descendencia, s individuos, haciendo que se reproduzcan con ayuda de los operadores genticos. Estos causan una serie de transformaciones de alteracin y recombinacin en los individuos, para generar los s descendientes. Esta etapa se llama reproduccin. Por ltimo, como fin del ciclo, esta la operacin llamada reemplazo, el objetivo de esta fase es seleccionar n individuos de entre los n+s actuales. Para ello se realiza una nueva seleccin, que dejar como resultado n supervivientes, que constituyen la poblacin de la nueva generacin. Por lo tanto, y por aplicacin de las sucesivas etapas, cuyo funcionamiento interno se ver con mayor detalle en el apartado siguiente, se consigue hacer evolucionar la poblacin, pasando a una nueva generacin que habr mejorado la que se tena previamente. 2.2. Etapas del AG En este apartado se van a desarrollar, de una manera ms profunda, las etapas que se han ido mencionando anteriormente, y que son las que constituyen el AG. Se puede decir, por lo visto hasta el momento, que en un AG hay tres etapas bien diferenciadas: la seleccin, la reproduccin y el reemplazo (Goldberg,89).

2.2.1. ETAPA DE SELECCIN El algoritmo gentico trata de explorar las regiones ms prometedoras del espacio de bsqueda del problema. Al encontrar u na zona con pesos altos, sta se explora ms a fondo, pero hay que evitar que el algoritmo se estanque en una determinada zona, produciendo multitud de cadenas muy parecidas. De igual forma, se ha de evitar lo contrario, que el algoritmo distribuya tan uniformemente el espacio de bsqueda que casi se dejen de explorar las mejores zonas. Se trata de encontrar un equilibrio entre ambas posibilidades. Se busca que el algoritmo llege al ptimo rpidamente pero sin quedarse estancado en un mximo local. Lo que se debe hacer es seleccionar, adems de la poblacin con mayor peso, una fraccin de la de menor peso. Si slo seleccionramos unos pocos de los mejores, los muy buenos, a no ser que el problema sea muy simple, el algoritmo probablemente nunca funcione como esperamos, ya que se quedar estancado en un mximo local. En realidad, lo ms adecuado se resume en la siguiente frase "seleccionar de todo un poco, y esto sobre todo al principio, pero teniendo una mayor preferencia por los mejores, y esto sobre todo al final". Una convergencia demasiado rpida implica una menor exploracin del espacio de bsqueda, con lo que el algoritmo puede quedarse estancado en un mximo local. En cualquier caso, no ser algo tan sencillo como seleccionar nicamente las mejores soluciones, ser necesario arriesgarse a buscar en otras zonas. En definitiva, la seleccin se puede hacer de una forma tan radical como hacer que el 90% de las soluciones seleccionadas sean buenas y el 10% malas; sin embargo, la calidad de las soluciones que ofrecen estos mtodos no siempre es aceptable por lo que se suele recurrir a otros mtodos que seleccionen "de todo un poco" teniendo cada cadena una probabilidad de ser seleccionada proporcional a su peso, estos mtodos se vern a continuacin. 2.2.1.1. Mtodos de seleccin La forma de llevar a cabo el proceso de seleccin, es mediante un muestreo de la poblacin original. En principio se podra hacer una primera clasificacin de los muestreos, de la siguiente manera: Muestreo directo: Es un muestreo puramente determinista, y simplemente toma un subconjunto de elementos de la poblacin, con relacin a un cierto criterio establecido. Por ejemplo, se podra plantear escoger los k mejores elementos. 4

Muestreo aleatorio simple: Consiste en asignar a todos los individuos una misma probabilidad, la que les corresponda, y con esto realizar un ensayo de Bernoulli para obtener la muestra.

Muestreo estocstico: Se asigna, a cada individuo, una probabilidad, pero esta vez no todos tendrn la misma probabilidad, sino que la de cada uno depender de su aptitud, fijada por la funcin de evaluacin (fitness). Esta tcnica de muestreo es la ms utilizada, y existen diferentes variantes, siendo la ms importante la de muestreo por sorteo, para este tipo de muestreo, en primer lugar, se obtiene la probabilidad acumulada de cada individuo a partir de su probabilidad relativa. Una vez que se tengan todas las probabilidades acumuladas, se genera un nmero aleatorio entre 0 y 1, y en funcin de dicho nmero aleatorio y de la probabilidad acumulada obtenida se seleccionan los individuos (Michalewicz,96).

2.2.2. ETAPA DE REPRODUCCIN Una vez hecha la seleccin de una poblacin auxiliar, algunos de los individuos de dicha poblacin deben de reproducirse, y esto se consigue aplicndoles a dichos individuos los operadores genticos. Estos sufrirn una serie de transformaciones, para dar lugar a una descendencia, que se unir a la poblacin. Para la determinacin de los individuos que se decide reproducir, se realiza un ensayo de Bernoulli. No suele ser habitual trabajar dando de forma anticipada el nmero de individuos a reproducir, lo habitual es disponer de unas probabilidades de aplicacin de los operadores genticos, y a partir de dichos valores de probabilidad, se va decidiendo si cada individuo es reproducido o no. Obviamente, cuanto ms pequeo sea el valor de la probabilidad de dichos operadores, menor ser el nmero de individuos que se han reproducido, y por tanto menos descendientes habr en la poblacin y menos cambios sufrir la misma. Con esta forma de actuar, el nmero de individuos reproducidos, puede variar de una generacin a otra. Los encargados de realizar la reproduccin son fundamentalmente dos: el cruce y la mutacin. El operador de cruce, se encarga de realizar una bsqueda en profundidad, explorando para ello las buenas caractersticas de que disponga la poblacin actual, y el operador mutacin es el encargado de realizar una bsqueda en anchura, explorando para ello nuevos dominios en busca de mejores soluciones para el problema tratado. Con la mutacin se pretende garantizar el acceso a todos los puntos del espacio de bsqueda; esto da lugar a que este operador sea imprescindible en el AG. El operador cruce se aplica a parejas de individuos, que combinan sus caractersticas para dar lugar a una nueva pareja, los descendientes. Conviene recordar que los individuos que forman parte de la poblacin, son cadenas de valores, e incluso normalmente cadenas binarias, por lo cual, 5

el cruce deber de combinar dos cadenas, para obtener otras dos. Existen varias maneras de aplicar este operador, siendo la ms utilizada el Cruce simple, o de un punto: Es el ms sencillo y, uno de los ms usados. Se eligen dos individuos, y se cortan sus cromosomas en un mismo punto elegido aleatoriamente. Tomando como referencia ese punto se intercambian sus cadenas (figura 2).

Figura 2: Representacin del cruce simple. El operador mutacin acta sobre cromosomas individuales, realizando sobre ellos algn tipo de alteracin o modificacin. Al igual que en el caso del cruce, en la mutacin se pueden tener diversas variedades. Siendo la ms utilizada la llamada Mutacin Clsica, su funcionamiento se basa en asociar a cada uno de sus genes una probabilidad de cambio y, en funcin de sta se realiza la alteracin de ese alelo o, en caso contrario, se deja como est. 2.2.2. ETAPA DE REEMPLAZO Es la tercera etapa de los AGs. Tras la etapa anterior de reproduccin, la poblacin que constituye ahora el AG, est formada por los n individuos de partida a los que se han sumado los s individuos descendientes que se han generado. Por lo tanto la poblacin en este punto es de n+s individuos. Esta etapa ser pues la que lleve a cabo la seleccin de los n individuos que constituyan la nueva poblacin, existen varias formas de realizar esto. Reemplazo inmediato: Es el ms simple de todos. Los s descendientes sustituyen a sus progenitores. Reemplazo con factor de llenado: En este caso los s descendientes sustituyen a s individuos de la poblacin de progenitores, sin ningn tipo de criterio. Reemplazo por inclusin: En este reemplazo se juntan los s descendientes con los n individuos de la poblacin originaria, para hacer un muestreo de n individuos que constituirn la nueva poblacin.

2.3. Convergencia y terminacin del AG La forma ms usual de dar por concluida la ejecucin de un AG, es hacerlo proporcionando un mximo nmero de generaciones al AG, de tal manera que, una vez alcanzado dicho nmero de generaciones, se asume que se ha alcanzado una solucin, cuando menos, cercana al ptimo buscado. Es decir, se da por supuesto que el AG habr convergido despus de un nmero fijo de generaciones. El criterio comentado de finalizacin para el AG, es el ms sencillo, pero tambin puede resultar poco til en ciertos casos. Por ello, conviene en esos casos tener algn otro criterio de terminacin que sea ms adecuado e incluso ms preciso que el ya comentado. Algunos criterios estn basados en el valor de una tolerancia, de manera que cuando el progreso hecho por el algoritmo en una o varias generaciones sea menor que dicha tolerancia, entonces se termina la ejecucin del AG. La medida del progreso del AG, puede tomarse de la aptitud media de la poblacin. Otros criterios se basan en la propia convergencia de la poblacin, analizando para ello cada individuo y, cuando el porcentaje de individuos que convergen es suficiente, entonces se da por terminado el AG. 3. Aplicaciones de los AGs. En principio, los AGs se pueden utilizar con el fin de optimizar cualquier tipo de funcin calculable, independientemente de que sea analtica o digital. La utilizacin de esta tcnica no es recomendable en los campos donde se conocen mtodos deterministas de afrontar los problemas. Sin embargo, si una parte de un problema es de difcil cuantificacin, entonces las ventajas de los AGs suelen ser interesantes; pues, como ya se ha mencionado, estos algoritmos necesitan pocos conocimientos especficos del problema en estudio. Sus aplicaciones se suelen centrar en la resolucin de problemas NP completos, campo en el cual juegan un importante papel. A continuacin se van a describir algunos problemas en los cuales se pueden aplicar esta heurstica. 3.1. Problema del Viajante de Comercio Se parte de un viajante que debe recorrer m ciudades distintas. Estas deben ser recorridas una sola vez por el viajero, es decir, no puede pasar dos veces por la misma ciudad ni dejar ninguna sin recorrer. Adems, el recorrido debe ser cerrado, es decir, la ciudad en la que se inicia debe coincidir con la ciudad en la que finaliza. El objetivo del problema es hacer dicho recorrido con el menor coste posible.

Est claro que cada permutacin que se haga con las ciudades del recorrido ser una potencial solucin al problema. Es decir, las soluciones potenciales se diferenciarn unas de otras slo en el orden de los elementos. De este modo, queda definido el espacio de bsqueda. Son numerosos lo heursticos que se han desarrollado para el problema lamado TSP. La mayora de ellos se describen en el libro de Lawyer, Lenstra y Rinnooy (1985). La primera aproximacin al TSP a partir de AGs la efectu Brady (1985). Su intento fue seguido por Goldberg y Lingle (1985), Oliver, I.M., Smith, D.J. y Holland, J.R.C. (1987) y otros muchos. 3.1.1. CODIFICACIN DEL PROBLEMA. La codificacin del espacio de bsqueda no es obvia, ya que hay que tener en cuenta diversos factores. Lo que s parece claro, al menos a priori, es que la codificacin binaria no es l a ms apropiada, por su complejidad y la ineficiencia de los operadores genticos. Parece ms razonable pensar en una codificacin decimal, ms concretamente en una representacin mediante cadenas de nmeros enteros. De este modo, se obtiene una codificacin ms sencilla, que adems permite el uso de unos operadores genticos ms apropiados al problema. Esta codificacin es llamada representacin basada en la trayectoria. Cada entero de la cadena representa una ciudad. El orden de los enteros en la cadena n o es ms que el orden en que el viajante recorre las ciudades. Por ejemplo, si se tienen cuatro ciudades para recorrer, un posible orden sera: 2,4,3,1 y 2. La representacin de esta solucin potencial ser el siguiente individuo: (2, 4, 3, 1), queremos hacer notar que el individuo: (4, 3, 1, 2) representa la misma solucin, con la salvedad de que la ciudad de inicio de recorrido es distinta. Una vez decidida la codificacin, el siguiente paso es utilizar los operadores genticos ms adecuados para el problema que se intenta resolver y para el tipo de codificacin utilizada. Estos operadores deben ser fciles de aplicar y, adems, deben proporcionar individuos factibles, en caso contrario se tendra que tratar a estos individuos de forma especial, con el coste computacional que eso supondra. A continuacin se expondrn algunos operadores, adecuados en esta situacin: Partial matching crossover (PMX) basado en las investigaciones de Goldberg y Lingle, de 1985: en este cruce, dados dos cromosomas padres, el operador copia una subcadena de uno de los padres directamente a las mismas posiciones en el hijo. Las posiciones restantes se llenan con los valores que an no han sido utilizados en el mismo orden que se encuentran en uno de los padres. Por ejemplo, si tenemos dos cadenas p1(1,2,4,6,3,7,5,8) y p2(5,4,1,7,2,6,8,3) y si la subcadena seleccionada al azar de p1 para ser insertada en p2 es por ejemplo la (4,6,3), esta establece una 8

relacin con la subcadena (1,7,2) que ocupa las mismas posiciones en p2. Entonces la secuencia de operaciones transformaran p2 en (5,4,4,6,3,6,8,3), y luego, se elimina las repeticiones quedando (5,*,4,6,3,*,8,*). El ltimo paso, consiste en rellenar los huecos con nmeros que no figuren en la cadena; cada hueco es ocupado por un gen de la subcadena sustituida, por ejemplo, el 1 se introduce en el lugar del 4, quedando el individuo como (5,1,4,6,3,*,8,*). Continuando as, llegamos a (5,1,4,6,3,7,8,2). Order-crossover (OX) desarrollado por Davis en 1985: este cruce consiste en elegir para cada descendiente un tramo de uno de los progenitores y a la vez preservar el orden relativo de todos las ciudades del otro. Para el ejemplo anterior, y suponiendo que se elige la misma subcadena, la secuencia queda (*,*,4,6,3,*,*,*) y (*,*,1,7,2,*,*,*); a continuacin, para cada progenitor se parte de uno de los puntos de corte y se copian las ciudades del otro progenitor, conservando el orden relativo y omitiendo los que ya estn presentes; al llegar al final de la cadena, se contina por el inicio de la misma, hasta retornar al punto de partida. Nuestro ejemplo quedara de la forma siguiente: (7,2,4,6,3,8,5,1) y (6,3,1,7,2,5,8,4). Cycle-crossover (CX) propuesto por Oliver y otros en 1987: se trata, de que cada ciudad herede sucesivamente la posicin de uno de los progenitores. Supongamos los siguientes padres p1(1,2,3,4,5,6,7,8,9) y p2(4,5,2,1,8,7,6,9,3). Para la explicacin resulta de gran ayuda construir la tabla de posiciones, en este ejemplo, la tabla tiene la forma: 1 2 3 4 5 6 7 8 9 V w 1 2 3 4 5 6 7 8 9 4 3 9 1 2 7 6 5 8

y se opera completando los llamados ciclos de sucesin, el operador consiste en cuatro pasos: 1. Para el primer descendiente, se parte de la primer ciudad del primer progenitor: (1, x, x, x, x, x, x, x, x), eso obliga a darle al gen 4 el 4 puesto de ese descendiente, (1, x, x, 4, x, x, x, x, x), quedando as completa el primer ciclo de sucesin. 2. Se toma la segunda ciudad de uno de los progenitores al azar, por ejemplo el primero otra vez. Ello obliga a dar al gen 5 el 5 puesto, y eso a su vez obliga a dar al 8 el 8 puesto; al 9 el 9 puesto y al 3 el 3, lo que completa el segundo ciclo de sucesin y proporciona, p1(1, 2, 3, 4, 5, x, x, 8, 9).

3. Se recorre el ltimo ciclo de la siguiente manera: ahora se parte desde la 6 ciudad del segundo progenitor para obtener por fin el primer descendiente, p1(1, 2, 3, 4, 5, 7, 6, 8, 9). 4. El segundo descendiente se obtiene inmediatamente por complementariedad con el primero, p2(4, 5, 2, 1, 8, 6, 7, 9, 3) Operador de mutacin basado en el desplazamiento (DM) diseado por Michalewizc en 1996, comienza seleccionando una subcadena al azar. Dicha subcadena se extrae de la cadena, y se inserta en un lugar aleatorio. Por ejemplo, si consideramos la cadena representada por (1, 2, 3, 4, 5, 6, 7, 8, 9) y suponemos que se selecciona la subcadena (5, 6, 7), despus de quitar dicha subcadena tenemos (1, 2, 3, 4, 8, 9). Supongamos que aleatoriamente seleccionamos la ciudad 1 para insertar a partir de ella la subcadena extrada. Esto producira la cadena (1, 5, 6, 7, 2, 3, 4, 8, 9). Operador de mutacin basado en la insercin (ISM), este operador (Michalewizc, 96) escoge aleatoriamente una ciudad en la cadena, para a continuacin extraer dicha ciudad de la cadena, e insertarla en un lugar seleccionado al azar. Por ejemplo, si consideramos de nuevo la cadena (1, 2, 3, 4, 5, 6, 7, 8, 9) y suponiendo que se seleccione la ciudad 4, para colocarla a continuacin de la ciudad 7, el resultado sera: (1, 2, 3, 5, 6, 7, 4, 8, 9) 3.2. La aplicacin de los AGs en secuenciacin Debido a la complejidad e inters de los problemas de secuenciacin dentro de la industria, siempre se han buscado nuevas herramientas para afrontarlos, una de ellas es los Ags (Cheng et al,99). La primera aplicacin de AGs que resuelve problemas de secuenciacin fue realizada por Davis (Davis,85). Si bien este trabajo es sencillo, incorpora una serie de caractersticas que han determinado los siguientes avances en este campo; la ms importante fue el hecho de que el genotipo no contena la solucin, sino una codificacin de la misma. A raz de este trabajo han ido surgiendo otros entre los que se pueden citar: El enfoque propuesto por Storer (Storer et al,92) que se basa en generar, por medio de una regla de prioridad, mtodo SPT (Short processing time), una secuencia factible. Posteriormente y con el objetivo de producir diferentes soluciones para el problema, se modifican los tiempos de realizacin de las operaciones. En este caso, el genotipo se define como un vector de desviaciones con respecto al tiempo normal de operacin. Los pasos necesarios para la implementacin de esta metodologa son: 1. Con la ayuda del genotipo, se generan nuevos tiempos de operacin. 10

2.

Con ellos, se vuelve a aplicar la regla de prioridad, sta genera una nueva secuencia de fabricacin.

3.

Finalmente, se determina el fitness con la secuencia que se acaba de generar, pero ahora con los tiempos de proceso verdaderos. Como se puede apreciar, en esta algoritmo el vector de desviaciones indica de una forma

indirecta la secuencia ptima; no se utilizan operadores genticos especiales, se puede usar el cruce y la mutacin estndar. Otra de las aproximaciones ms utilizadas es la realizada por Dorndorf en 1995 (Dorndorf et al,95), este investigador ha diseado una solucin hbrida que utiliza dos tipos de metodologas. El principio de funcionamiento se basa en la utilizacin de un conjunto de reglas de prioridad, los AGs se emplean para encontrar la secuencia de reglas, que permite alcanzar el objetivo deseado. Este mtodo calcula la secuencia de fabricacin de forma normal, pero al llegar a un punto en que una mquina puede hacer ms de una operacin, para saber qu operacin realizar, se usan los AGs. La representacin binaria ms utilizada en la resolucin de los problemas de secuenciacin es la desarrollada por Nakano (Nakano et al,91). Su codificacin se basa en disear los genes de tal manera que indiquen la relacin de precedencia de las operaciones que se deben realizar en cada mquina. Un simple gen indica si la operacin i se realiza antes que la j o no, en el primer caso se representa como (i<j=1), y en el segundo como (i<j=0). Como cada pieza puede tener operaciones en todas las mquinas, necesitamos un cromosoma de dimensin m*n*(n-1)/2 (m = mquinas, n = piezas). El funcionamiento se entiende mejor con un ejemplo, supngase que se tienen tres piezas y tres mquinas, las operaciones de la primer pieza se numerarn (1,2,3), y las de la segunda pieza (4,5,6) y las de la tercera (7,8,9). Una codificacin correcta sera: 1<4 0 1<7 0 4<7 0 2<5 1 2<8 1 5<8 1 3<6 1 3<9 0 6<9 0

Su significado es: La operacin 4 se debe realizar antes que la 1, La operacin 7 se debe realizar antes que la 1, la operacin 7 se debe realizar antes que l a 4; la operacin 2 se debe realizar antes que la 5, y as sucesivamente. Los operadores genticos usados suelen ser los estndares, el problema que presenta esta codificacin reside en que no asegura la generacin de soluciones factibles. Se suelen introducir

11

mtodos para tratar las soluciones no factibles, el problema de esta solucin es que el coste computacional de este tratamiento es elevado. La tcnica de secuenciacin con AG ms utilizada es la permutacin con repeticin, su uso est justificado por proporcionar excelentes resultados y ser sencillos de implementar. Tiene su origen en la aproximacin realizada por Syswerda (Sysverda,91) al tratamiento de los problemas de flow-shop, siendo Fang (Fang,93) y Bierwirth (Bierwirth,95) los dos investigadores que han introducido este enfoque para el tratamiento de problemas de job-shop. El funcionamiento de este mtodo se entiende mejor con un ejemplo: Supongamos que tenemos que realizar dos piezas, las cuales necesitan para su fabricacin de tres operaciones; una posible codificacin del cromosoma que se encargue de representar una secuencia de fabricacin vlida sera segn este mtodo la siguiente: (1, 2, 2, 1, 1, 2). Esta codificacin debe entenderse como que el primer 1 incida la primera operacin de la primer pieza. El primer 2 incida la primera operacin de la segunda pieza. El segundo 2 incida la segunda operacin de la segunda pieza, y as sucesivamente. Como veremos esta codificacin permite que los operadores gentidos generen siempre individuos vlidos. Los operadores genticos que se suelen utilizar sobre esta representacin de los individuos presentan caractersticas especiales. Para realizar la mutacin, existen varios operadores que ofrecen buenas caractersticas, entre los ms utilizados cabe citar los propuestos por Syswerda (Syswerda,91). Mutacin de la posicin: Se selecciona dos operaciones de forma aleatoria, y la segunda se coloca justo delante de la primera. Mutacin del orden: Se seleccionan dos operaciones de forma aleatoria, y sus posiciones son intercambiadas Scramble Mutation: Suponiendo que el orden de los vecinos es importante, entonces se seleccionan, de forma aleatoria, subsistemas y se intercambian los ordenes de las operaciones dentro de ellos. En cuanto al operador de cruce el ms utilizado es el llamado cruce por orden generalizado (GOX), es una modificacin del operador OX. Su funcionamiento se explicar por medio de un ejemplo, supongamos que se tienen los dos padres siguientes: Padre1 (1,2,2,1,2,1) 12 Padre2 (1,1,2,2,1,2)

Se selecciona un subconjunto de uno de los padres, en este caso la parte subrayada del primero. Estas operaciones son borrados del 'Padre2', entonces este queda como: (1,X,2,X,1,2). Tras lo cual, las operaciones seleccionadas del 'Padre1' son introducidas en las posiciones libres del 'Padre2', quedando la soluciones final como: (1,2,2,1,1,2). 3.2. Planificacin de horarios de trabajo La planificacin de los horarios de trabajo (Timetabling) ha sido uno de los primeros problemas a los que se ha aplicado los AGs con notable xito. Como ejemplo de este tipo de aplicaciones se puede citar el problema de la planificacin de los exmenes o de las clases en Universidades, la asignacin de turnos de trabajo en empresas, etc. La primera aplicacin de AGs en este campo se realiz para planificar la plantilla de profesores en una universidad Italiana. La investigacin, dirigida por el Departamento de Electrnica e Informacin del Politcnico de Miln, demostr que los resultados de aplicar AGs a la resolucin de estos problemas, son equivalentes a los proporcionados por otras herramientas de inteligencia artificial como la bsqueda Tab, y mejores que los proporcionados por el recocido simulado (simulated annealing). El programa desarrollado por este grupo de investigadores s e est utilizando actualmente en algunas escuelas de Miln (Colorni et al,90). 3.1.2. DEFINICIN DEL PROBLEMA. En los problemas de planificacin horaria se busca que unos eventos (e1, e2,...) puedan llevarse a cabo en unos intervalos de tiempo prefijados (t1, t2,...). Por ejemplo, a la hora de planificar las fechas de los exmenes en una universidad, se considera que los eventos son los exmenes y los intervalos de tiempo representan el da y hora de celebracin del examen. Cuando se realiza la planificacin horaria de los exmenes surgen una serie de limitaciones al asignar los eventos a los intervalos de tiempo; por ejemplo, puede haber una restriccin del nmero de plazas, una limitacin del nmero de profesores, etc. En general, en los problemas reales se puede considerarse que existen tres grupos de limitaciones a la hora de disear la planificacin (limitaciones fuertes, dbiles y otras restricciones) estudiado por Fang en 1992. Por ejemplo, una limitacin fuerte puede ser: un mismo estudiante no puede tener ms de dos exmenes al mismo tiempo; una dbil: preferencia por no tener dos exmenes en la misma mitad del da; y una limitacin del grupo de otras restricciones puede ser: procurar que los exmenes se distribuyan de forma homognea a lo largo del periodo de exmenes. Cada uno de estos grupos tendr una ponderacin diferente en la funcin de evaluacin como se ver posteriormente.

13

3.1.2. M ETODOLOGAS DE SOLUCIN. El tipo de codificacin utilizada en estos problemas es muy similar a la utilizada en los problemas de secuenciacin comentados en el apartado anterior. Para explicarlo utilizaremos un ejemplo que consiste en la ordenacin de doce exmenes de forma que se puedan realizar en diez intervalos de tiempo, un ejemplo de esta codificacin es (1,3,9,6,2,10,1,6,2,7,5,4). Cada uno de los genes representa un examen, y el alelo representa en que intervalo de tiempo debe celebrarse el examen. La interpretacin del genotipo es la siguiente, el primer gen indica que el primer examen se debe celebrar en el primer intervalo temporal, el segundo gen informa que el segundo examen se tiene realizar en el tercer intervalo temporal, etc. La principal dificultad de este tipo de problema es el clculo del fitness, pues su coste computacional es muy elevado. Normalmente, para calcularlo se utiliza la frmula: f (t) = 1 1 + Wj v j (c, t)
j

Siendo Wj el peso que se da a cada una de las restricciones y v j(c, t) una variable dicotmica que vale '1' si la restriccin c es violada por la solucin t y '0' en caso contrario; asimismo, en esta frmula se suponen todas las penalizaciones positivas, en caso contrario podra suceder que el fitness fuese negativo y no se podra utilizar dicha funcin para calcularlo. Con estas aclaraciones, se puede deducir que la solucin proporcionada por la funcin es 1, si y slo si, son satisfechas todas las limitaciones, en caso contrario su valor es menor que la unidad. La fase de seleccin de los criadores presenta algunas peculiaridades, se utiliza una seleccin del tipo 'elitismo + ruleta'. Su funcionamiento se basa en el empleo del mtodo de la ruleta para la seleccin de las tres cuartas partes de los criadores, y el resto est compuesto por los mejores resultados obtenidos hasta el instante actual, los cuales son introducidos directamente en los criadores. Los operadores genticos utilizados para este tipo de problema no tienen peculiaridades destacables, para el cruce se suele utilizar el c ' ruce simple', aunque en algunas ocasiones tambin se utiliza el 'cruce uniforme'; en cuanto a la mutacin, el mtodo ms utilizado es la 'mutacin numrica estacionaria' (Goldberg,89). En los parmetros de los AGs, la principal caracterstica es que las frecuencias de cruce y de mutacin no son fijas, sino que varan linealmente.

14

Otra de las aportaciones realizadas por Fang en su tesis (Fang,92) es la modificacin de la funcin de fitness. Esta modificacin se basa en que cuando se llega a un determinado nivel de evolucin, las soluciones tienen unos valores muy prximos entre si, por lo cual el algoritmos gentico deja de evolucionar; para solventar este problema se suelen utilizar tcnicas de escalado, en concreto la tcnica que mejores resultados ofrece es el 'escalado inverso al cuadrado'. La formula de fitness resultante al aplicar esta tcnica es la siguiente:

f(t) =

1 1 + Wj v j (c, t) j
2

En base a estas ideas diferentes autores Corne (Corne et al,94) y Ross (Ross et al,94) han ido introduciendo sus variantes. La principal aportacin de Corne es la utilizacin de un cromosoma de longitud triple, pues en sus trabajos incorpora ms restricciones, la principal de ellas es la limitacin del nmero de aulas disponibles. En su codificacin, cada uno de los exmenes lo representa por medio de tres genes, siendo el significado de cada uno de ellos: instante de celebracin, clases que se deben reservar para el examen y profesorado encargado de vigilarlo. Los trabajos de Ross se han centrado en disminuir el tiempo de clculo del fitness. La solucin que Ross propone se basa en la utilizacin de la llamada 'delta evolucin'. La aportacin de este enfoque se basa en considerar simultneamente dos planificaciones horarias 'g' y 'h', que se diferencian solamente en unas pocas restricciones 'D'. El fitness de 'g' es igual al de 'h', salvo en lo referente a las restricciones 'D', si se conoce el fitness de g, el clculo del fitness de h es inmediato por medio de la frmula: f (h) = f (g) -

W v (c, g)
j j jD

W v (c, h)
j j j D

Otra forma distinta de establecer la planificacin es la propuesta por Burke (Burke et al,95). La base de su mtodo es la utilizacin de dos algoritmos heursticos, el primero se encarga de encontrar una serie de exmenes que se puedan realizar en el intervalo que se este analizando y el segundo se encarga de comprobar si existen aulas disponibles en esa fecha; estos algoritmos se utilizan para todos los intervalos temporales disponibles. El funcionamiento se puede ver en la figura 3:

15

Anterior periodo Algoritmo 1: Seleccin de examenes.

Algoritmo 2: Seleccin de aulas.

Siguiente periodo

Figura 3: Explicacin de la heurstica empleada (Burke et al,95). La clave del funcionamiento de este enfoque se encuentra en la generacin de la poblacin inicial, sta se genera en dos fases: Generar una ordenacin aleatoria de los exmenes. En funcin de esta ordenacin y empezando en el primer intervalo de tiempo, comenzar a realizar la planificacin de los exmenes. Como fcilmente se puede deducir, en esta fase inicial se produce una planificacin factible pero no se limita el nmero de intervalos temporales disponibles; como consecuencia de ello, el vector de soluciones generado es muy largo. En este planteamiento, la misin del AG es conseguir disminuir la dimensin del vector de soluciones, para lo cual se utilizan los operadores genticos, principalmente el cruce. Su funcionamiento es de la siguiente forma: Los exmenes que estn en ambos padres, se transfieren a los hijos de forma automtica. Para completar la planificacin de este periodo, se procede a seleccionar, de forma aleatoria, entre los dos padres otros exmenes de forma que la ocupacin de las aulas sea ptima. En esta evolucin, el papel de la mutacin se limita a seleccionar exmenes de periodos posteriores al presente e incorporarlos en el presente. El fitness de estos problemas depende de: La longitud del genotipo. El nmero de conflictos entre exmenes en periodos consecutivos.

4. Conclusiones En este trabajo, se ha analizado el principio de funcionamiento de los algoritmos genticos, as como algunas de sus aplicaciones en el entorno industrial. En concreto se han descrito aplicaciones 16

para la resolucin de los problemas de secuenciacin, planificacin de turnos y viajante de comercio. De cada uno de estos problemas se han comentado las principales tcnicas para abordarlos con AG, as como los operadores, tanto de cruce como de mutacin, ms utilizados.

Referencias bibliogrficas Bierwirth, C. (1995). "A generalized permutation approach to job-shop scheduling with genetic algorithms". Or Spektrum N 17, pp: 87-92. Brady, RM. (1985). Optimization strategies gleaned form biological evolution, Nature, 317, pp: 804-806. Burke, EK; Elliman, DG. y Weare, RF. (1995). "A Hybrid Genetic Algorithm for Highly Constrained Timetabling Problems" Departament of Computer Science. University of Nottingham. Nottingham, UK. Cheng, R.; Mitsuo, G. y Tsujimura, Y. (1999). A tutorial survey of job-shop scheduling problems using genetic algorithms, part II: hybrid genetic search strategies. Computers & Industrial Engineering, 36, pp: 343-364. Colorni, A.; Dorigo, M. y Maniezzo, V. (1990). Genetic Algorithms An Highly Constrained Problems: The Time-Table Case. Proceedings of the First International Workshop on Parallel Problem Solving from Nature, Dortmund, Germany, Lecture Notes in Computer Science 496, Springer- Verlag, pp: 55-59. Corne, D.; Ross, P. y Fang, H -L. (1994). "Fast Practical Evolutionary Timetabling". In Proceedings of the AISB Workshop on Evolutionary Computation. Springer Verlang. pp: 336-344. Davis, L. (1985). "Job-shop scheduling with genetic algorithms". In Proc. Int. Conf. on GAs, pp: 136-140. Dorndorf, U. y Pesch, E. (1995). "Evolution based learning in a job shop scheduling environment". Computers & Operations Research N22, pp: 25-40. Fang, H-L. (1992). Genetic algorithms for scheduling. MSc Dissertation. Department of Artificial Intelligence. University of Edinburgh. Fang,HL; Ross, P. y Corne, D. (1993). "A promising genetic algorithm approach to job-shop scheduling, rescheduling, and open-shop scheduling problems". Chap. 118. In: Proceedings of the Fifth International Conference On Genetic Algorithms. p:375-382. 17

Goldberg, DE. (1989). Genetic Algorithms in Search, Optimization and Machine Learning. Addison- Wesley. Goldberg, DE. y Lingle, R. (1985). Alleles, Loci, and the TSP. En the First International Conference on Genetic Algorithms, Lawrence Erlbaum Associates, Hillsdale, NJ. pp. 154-159. Holland, JJ. (1975) Adaptation in Natural and Artificial Systems, University of Michigan Press. Koza, JR (1992). Genetic Programming: On the Programming of Computers by Means of Natural Selection. The MIT Press. Lawler, EL.; Lenstra, JK.; Rinnooy Kan, A.H.G. y Shmoys, D B. (1985). The travelling Salesman Problem: A Guided Tour of Combinatorial Optimization. Wiley, Chichester. Michalewicz, Z. (1996). Genetic Algorithms + Data Structures = Evolution Programs. Springer Verlag. 3 Edicin. Nakano, R y Yamada, T. (1991). "Conventional Genetic Algorithm for Job Shop Problems". In Belew et al. (eds.), pp: 474-479. Oliver IM, Smith DJ y Holland JRC (1987). A Study of Permutation Crossover Operators on the Travelling Salesman Problem. En the Second International Conference on Genetic Algorithms, Lawrence Erlbaum Associates, Hillsdale, NJ. pp. 224-230. Ross, P.; Corne, D. y Fang, H-L, (1994). "Improving Evolutionary Timetabling with Delta Evaluation and Directed Mutation". En Parallel Problem Solving from Nature III. Springer Verlang. Storer, RH.; Wu, SD. y Vaccari, R. (1992). "Local Search in Problem Space for Sequencing Problems". En Fandel, G.; Gulledge, T. y Jones, A. (1992) New Directions for Operations Research in Manufacturing. Springer Verlag, Berlin Heidelberg. pp:587-597. Syswerda, G. (1991). "Schedule Optimizacion Using Genetic Algorithms". En Davis, L. (1991). Handbook of Genetic Algorithms. Van Nostrand Reinhold, New York, pp: 332-349.

18

También podría gustarte