Вы находитесь на странице: 1из 18

1

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

2
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 seleccin-
transformacin, 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

3
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
s n
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).

4
2.2.1. ETAPA DE SELECCIN
El algoritmo gentico trata de explorar las regiones ms prometedoras del espacio de
bsqueda del problema. Al encontrar una 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.

5
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,

6
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.

7
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.

8
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 l 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 la
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 no 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

9
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 1 2 3 4 5 6 7 8 9
w 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).

10
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.

11
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 1<7 4<7 2<5 2<8 5<8 3<6 3<9 6<9
0 0 0 1 1 1 1 0 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 la 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

12
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) Padre2 (1,1,2,2,1,2)

13
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 se 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.

14
3.1.2. METODOLOGAS 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 + Wv (c, t )
j j
j


Siendo W
j
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 ' cruce 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.

15
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 + Wv (c, t)
j j
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) - Wv (c, g) + Wv (c, h)
j j
j D
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:

16
Algoritmo 1:
Seleccin de examenes.
Algoritmo 2:
Seleccin de aulas.
Siguiente periodo
Anterior 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

17
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.

18
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, DB. (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.