Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Temageneticos PDF
Temageneticos PDF
1 Introduccion
Los Algoritmos Geneticos (AGs) son metodos adaptativos que pueden usarse para resolver proble-
mas de busqueda y optimizacion. Estan basados en el proceso genetico de los organismos vivos. A
lo largo de las generaciones, las poblaciones evolucionan en la naturaleza de acorde con los princi-
pios de la seleccion natural y la supervivencia de los mas fuertes, postulados por Darwin (1859).
Por imitacion de este proceso, los Algoritmos Geneticos son capaces de ir creando soluciones para
problemas del mundo real. La evolucion de dichas soluciones hacia valores optimos del problema
depende en buena medida de una adecuada codificacion de las mismas.
Los principios basicos de los Algoritmos Geneticos fueron establecidos por Holland (1975), y se
encuentran bien descritos en varios textos Goldberg (1989), Davis (1991), Michalewicz (1992),
Reeves (1993) .
En la naturaleza los individuos de una poblacion compiten entre s en la busqueda de recursos tales
como comida, agua y refugio. Incluso los miembros de una misma especie compiten a menudo en
la busqueda de un companero. Aquellos individuos que tienen mas exito en sobrevivir y en atraer
companeros tienen mayor probabilidad de generar un gran numero de descendientes. Por el con-
trario individuos poco dotados produciran un menor numero de descendientes. Esto significa que los
genes de los individuos mejor adaptados se propagaran en sucesivas generaciones hacia un numero de
individuos creciente. La combinacion de buenas caractersticas provenientes de diferentes ancestros,
puede a veces producir descendientes superindividuos, cuya adaptacion es mucho mayor que la de
cualquiera de sus ancestros. De esta manera, las especies evolucionan logrando unas caractersticas
cada vez mejor adaptadas al entorno en el que viven.
Los Algoritmos Geneticos usan una analoga directa con el comportamiento natural. Trabajan con
una poblacion de individuos, cada uno de los cuales representa una solucion factible a un problema
dado. A cada individuo se le asigna un valor o puntuacion, relacionado con la bondad de dicha
solucion. En la naturaleza esto equivaldra al grado de efectividad de un organismo para compe-
tir por unos determinados recursos. Cuanto mayor sea la adaptacion de un individuo al problema,
mayor sera la probabilidad de que el mismo sea seleccionado para reproducirse, cruzando su material
genetico con otro individuo seleccionado de igual forma. Este cruce producira nuevos individuos
descendientes de los anteriores los cuales comparten algunas de las caractersticas de sus padres.
Cuanto menor sea la adaptacion de un individuo, menor sera la probabilidad de que dicho individuo
sea seleccionado para la reproduccion, y por tanto de que su material genetico se propague en suce-
sivas generaciones.
De esta manera se produce una nueva poblacion de posibles soluciones, la cual reemplaza a la anterior
y verifica la interesante propiedad de que contiene una mayor proporcion de buenas caractersticas en
comparacion con la poblacion anterior. As a lo largo de las generaciones las buenas caractersticas
se propagan a traves de la poblacion. Favoreciendo el cruce de los individuos mejor adaptados, van
siendo exploradas las areas mas prometedoras del espacio de busqueda. Si el Algoritmo Genetico
ha sido bien disenado, la poblacion convergera hacia una solucion optima del problema.
El poder de los Algoritmos Geneticos proviene del hecho de que se trata de una tecnica robusta,
y pueden tratar con exito una gran variedad de problemas provenientes de diferentes areas, in-
cluyendo aquellos en los que otros metodos encuentran dificultades. Si bien no se garantiza que el
Algoritmo Genetico encuentre la solucion optima del problema, existe evidencia emprica de que se
encuentran soluciones de un nivel aceptable, en un tiempo competitivo con el resto de algoritmos
de optimizacion combinatoria. En el caso de que existan tecnicas especializadas para resolver un
determinado problema, lo mas probable es que superen al Algoritmo Genetico, tanto en rapidez
como en eficacia. El gran campo de aplicacion de los Algoritmos Geneticos se relaciona con aque-
llos problemas para los cuales no existen tecnicas especializadas. Incluso en el caso en que dichas
tecnicas existan, y funcionen bien, pueden efectuarse mejoras de las mismas hibridandolas con los
Algoritmos Geneticos.
La estructura de este captulo es como sigue: en la siguiente seccion se introduce por medio de
1
un ejemplo el denominado Algoritmo Genetico Simple, tambien conocido como Algoritmo Genetico
Canonico, para a continuacion, mostrar distintas extensiones y modificaciones del mismo, relativas
a los operadores de seleccion, cruce, mutacion y reduccion, as como a la hibridacion del Algoritmo
Genetico con otros algoritmos de busqueda local, y a diversos modelos de Algoritmos Geneticos Dis-
tribuidos. En la siguiente seccion nos preguntamos el motivo por el cual funcionan los Algoritmos
Geneticos, demostrandose el teorema de los esquemas, y referenciandose algunos trabajos teoricos
relacionados con las condiciones suficientes para garantizar la convergencia de dichos algoritmos ha-
cia el optimo global. Finalizamos el captulo, mostrando operadores de cruce y mutacion especficos
para el problema del agente viajero .
2.1 Codificacion
Se supone que los individuos (posibles soluciones del problema), pueden representarse como un con-
junto de parametros (que denominaremos genes), los cuales agrupados forman una ristra de valores
(a menudo referida como cromosoma). Si bien el alfabeto utilizado para representar los individuos
no debe necesariamente estar constituido por el {0, 1}, buena parte de la teora en la que se funda-
mentan los Algoritmos Geneticos utiliza dicho alfabeto.
2
En terminos biologicos, el conjunto de parametros representando un cromosoma particular se de-
nomina fenotipo. El fenotipo contiene la informacion requerida para construir un organismo, el cual
se refiere como genotipo. Los mismos terminos se utilizan en el campo de los Algoritmos Geneticos.
La adaptacion al problema de un individuo depende de la evaluacion del genotipo. Esta ultima
puede inferirse a partir del fenotipo, es decir puede ser computada a partir del cromosoma, usando
la funcion de evaluacion.
La funcion de adaptacion debe ser disenada para cada problema de manera especfica. Dado un
cromosoma particular, la funcion de adaptacion le asigna un numero real, que se supone refleja el
nivel de adaptacion al problema del individuo representado por el cromosoma.
Durante la fase reproductiva se seleccionan los individuos de la poblacion para cruzarse y producir
descendientes, que constituiran, una vez mutados, la siguiente generacion de individuos. La se-
leccion de padres se efectua al azar usando un procedimiento que favorezca a los individuos mejor
adaptados, ya que a cada individuo se le asigna una probabilidad de ser seleccionado que es propor-
cional a su funcion de adaptacion. Este procedimiento se dice que esta basado en la ruleta sesgada.
Segun dicho esquema, los individuos bien adaptados se escogeran probablemente varias veces por
generacion, mientras que los pobremente adaptados al problema, no se escogeran mas que de vez en
cuando.
Una vez seleccionados dos padres, sus cromosomas se combinan, utilizando habitualmente los ope-
radores de cruce y mutacion. Las formas basicas de dichos operadores se describen a continuacion.
El operador de cruce, coge dos padres seleccionados y corta sus ristras de cromosomas en una posicion
escogida al azar, para producir dos subristras iniciales y dos subristras finales. Despues se inter-
cambian las subristras finales, produciendose dos nuevos cromosomas completos (vease la Figura
2.2). Ambos descendientes heredan genes de cada uno de los padres. Este operador se conoce como
operador de cruce basado en un punto. Habitualmente el operador de cruce no se aplica a todos
Punto de cruce Punto de cruce
Padres 1 0 1 0 0 0 1 1 1 0 0 0 1 1 0 1 0 0 1 0
Descendientes 1 0 1 0 0 1 0 0 1 0 0 0 1 1 0 0 1 1 1 0
los pares de individuos que han sido seleccionados para emparejarse, sino que se aplica de manera
aleatoria, normalmente con una probabilidad comprendida entre 0.5 y 1.0. En el caso en que el
operador de cruce no se aplique, la descendencia se obtiene simplemente duplicando los padres.
El operador de mutacion se aplica a cada hijo de manera individual, y consiste en la alteracion
aleatoria (normalmente con probabilidad pequena) de cada gen componente del cromosoma. La
Figura 6.3 muestra la mutacion del quinto gen del cromosoma. Si bien puede en principio pensarse
gen mutado
Descendiente 1 0 1 0 0 1 0 0 1 0
Descendiente mutado 1 0 1 0 1 1 0 0 1 0
que el operador de cruce es mas importante que el operador de mutacion, ya que proporciona una
exploracion rapida del espacio de busqueda, este ultimo asegura que ningun punto del espacio de
busqueda tenga probabilidad cero de ser examinado, y es de capital importancia para asegurar la
convergencia de los Algoritmos Geneticos.
Para criterios practicos, es muy util la definicion de convergencia introducida en este campo por De
Jong (1975) en su tesis doctoral. Si el Algoritmo Genetico ha sido correctamente implementado,
3
P
Poblacion x f (x) valor f (x)/ f (x) Probabilidad
inicial valor (funcion (probabilidad de seleccion
(fenotipos) genotipo adaptacion) seleccion) acumulada
1 01101 13 169 0.14 0.14
2 11000 24 576 0.49 0.63
3 01000 8 64 0.06 0.69
4 10011 19 361 0.31 1.00
Suma 1170
Media 293
Mejor 576
Tabla 6.1: Poblacion inicial de la simulacion efectuada a mano correspondiente al Algoritmo Genetico Simple
la poblacion evolucionara a lo largo de las generaciones sucesivas de tal manera que la adaptacion
media extendida a todos los individuos de la poblacion, as como la adaptacion del mejor individuo
se iran incrementando hacia el optimo global. El concepto de convergencia esta relacionado con la
progresion hacia la uniformidad: un gen ha convergido cuando al menos el 95 % de los individuos
de la poblacion comparten el mismo valor para dicho gen. Se dice que la poblacion converge cuando
todos los genes han convergido. Se puede generalizar dicha definicion al caso en que al menos un
% de los individuos de la poblacion hayan convergido.
La Figura 2.4 muestra como vara la adaptacion media y la mejor adaptacion en un Algoritmo
Adaptacin
Mejor
Media
Generaciones
0 20 40 60 80 100
Genetico Simple tpico. A medida que el numero de generaciones aumenta, es mas probable que la
adaptacion media se aproxime a la del mejor individuo.
2.2 Ejemplo
Como ilustracion de los diferentes componentes del Algoritmo Genetico Simple, supongamos el
problema adaptado de Goldberg (1989) de encontrar el maximo de la funcion f (x) = x 2 sobre
los enteros {1, 2, . . . , 32}. Evidentemente para lograr dicho optimo, bastara actuar por busqueda
exhaustiva, dada la baja cardinalidad del espacio de busqueda. Se trata por tanto de un mero
ejemplo con el que pretendemos ilustrar el comportamiento del algoritmo anteriormente descrito.
Consultando el pseudocodigo de la Figura 6.1, vemos que el primer paso a efectuar consiste en
determinar el tamano de la poblacion inicial, para a continuacion obtener dicha poblacion al azar y
computar la funcion de evaluacion de cada uno de sus individuos.
Suponiendo que el alfabeto utilizado para codificar los individuos este constituido por {0, 1}, nece-
sitaremos ristras de longitud 5 para representar los 32 puntos del espacio de busqueda.
En la Tabla 6.1, hemos representado los 4 individuos que constituyen la poblacion inicial, junto con
su funcion de adaptacion al problema, as como la probabilidad de que cada uno de dichos individuos
sea seleccionado segun el modelo de ruleta sesgada para emparejarse.
Volviendo a consultar el pseudocodigo expresado en la Figura 6.1, vemos que el siguiente paso con-
siste en la seleccion de 2 parejas de individuos. Para ello es suficiente, con obtener 4 numeros reales
provenientes de una distribucion de probabilidad uniforme en el intervalo [0, 1], y compararlos con
la ultima columna de la Tabla 6.1. As por ejemplo, supongamos que dichos 4 numeros hayan sido:
4
Emparejamiento Punto Descen- Nueva poblacion x f (x)
de los individuos de dientes descendientes valor funcion
seleccionados cruce mutados genotipo adaptacion
11000 2 11011 11011 27 729
10011 2 10000 10000 16 256
01101 3 01100 11100 28 784
11000 3 11101 11101 29 841
Suma 2610
Media 652.5
Mejor 841
Tabla 6.2: Poblacion en el tiempo 1, proveniente de efectuar los operadores de cruce y mutacion sobre los
individuos expresados en la Tabla 6.1, los cuales constituyen la poblacion en el tiempo 0
0.58; 0.84; 0.11 y 0.43. Esto significa que los individuos seleccionados para el cruce han sido: el
individuo 2 junto con el individuo 4, as como el individuo 1 junto con el individuo 2.
Para seguir con el Algoritmo Genetico Simple, necesitamos determinar la probabilidad de cruce, p c .
Supongamos que se fije en pc = 0.8. Valiendonos al igual que antes de, 2 en este caso, numeros
provenientes de la distribucion uniforme, determinaremos si los emparejamientos anteriores se llevan
a cabo. Admitamos, por ejemplo, que los dos numeros extrados sean menores que 0.8, decidiendose
por tanto efectuar el cruce entre las dos parejas. Para ello escogeremos un numero al azar entre
1 y l 1 (siendo l la longitud de la ristra utilizada para representar el individuo). Notese que la
restriccion impuesta al escoger el numero entre 1 y l 1, y no l, se realiza con la finalidad de que
los descendientes no coincidan con los padres.
Supongamos, tal y como se indica en la Tabla 6.2, que los puntos de cruce resulten ser 2 y 3. De
esta manera obtendramos los 4 descendientes descritos en la tercera columna de la Tabla 6.2. A
continuacion siguiendo el pseudocodigo de la Figura 6.1, mutaramos con una probabilidad, p m ,
cercana a cero, cada uno de los bit de las cuatro ristras de individuos. En este caso suponemos que
el unico bit mutado corresponde al primer gen del tercer individuo. En las dos ultimas columnas
se pueden consultar los valores de los individuos, as como las funciones de adaptacion correspondi-
entes. Como puede observarse, tanto el mejor individuo como la funcion de adaptacion media han
mejorado sustancialmente al compararlos con los resultados de la Tabla 6.1.
BEGIN AGA
Obtener la poblacion inicial al azar.
WHILE NOT stop DO
BEGIN
Seleccionar padres de la poblacion.
Producir hijos a partir de los padres seleccionados.
Mutar los individuos hijos.
Extender la poblacion anadiendo los hijos.
Reducir la poblacion extendida.
END
END AGA
uacion formalizar matematicamente cada uno de los elementos integrantes del Algoritmo, as como
las extensiones y modificaciones que se vayan presentando.
Una version del Algoritmo Genetico Abstracto (AGA), puede ser como el de la Figura 6.5. Ya
5
que el principal dominio de aplicacion de los Algoritmos Geneticos lo constituye la optimizacion de
funciones, se introducen algunos conceptos basicos que se usaran a lo largo de este Captulo.
Dado un dominio finito D y una funcion f : D <, el problema de la optimizacion de la funcion f
se refiere a encontrar el mejor valor de la funcion f en el dominio D. Se trata por tanto de encontrar
x D para el cual f (x) f (y) y D.
Ya que max{f (x)} = min{f (x)} la restriccion al problema de minimizacion no supone ninguna
perdida de generalizacion. En general, la tarea de optimizacion se complica debido a la existencia
de optimos locales (mnimos locales en nuestro caso).
La funcion f tiene un mnimo local en x D si se verifica la siguiente condicion:
E(x), entorno de x, tal que si y E(x), f (x) f (y).
Diremos que e : D S l donde l logkSk kDk constituye una codificacion, siendo la finalidad de
la misma el representar los elementos de D por medio de ristras de elementos de S. A S se le
denomina alfabeto, mientras que S l constituye el espacio de busqueda. A la funcion f (x) = g(e(x))
se le denomina funcion objetivo. Es necesario que la funcion e sea inyectiva, para que los elementos
de D sean discernibles.
El AGA examinara un subconjunto del espacio de busqueda, obteniendo una ristra x , cuya funcion
objetivo g(x ) puede considerarse un estimador del minxS l g(x).
Abusando del lenguaje de notacion, designaremos por I a los elementos de S l .
En lo que sigue se considerara un AGA como una 10tupla:
donde:
P0 = {I01 , . . . , I0 } (S l ) poblacion inicial,
tamano poblacion,
l longitud de la representacion,
fsel funcion de seleccion,
fprod funcion de produccion de hijos,
fmut funcion de mutacion,
fext funcion de extension,
fred funcion de reduccion,
g funcion objetivo,
ct criterio de parada.
En principio restringiremos nuestro AGA, imponiendole la condicion de que todas las poblaciones
tengan el mismo tamano. Obviamente una generalizacion sera el considerar que el tamano depende
de la generacion, es decir t =| Pt |. Denotaremos por P el conjunto de poblaciones de tamano ,
a las que denominaremos poblaciones bien dimensionadas.
La funcion de seleccion global, fsel , selecciona al azar y con reemplazamiento una coleccion de
individuos y P a partir de una poblacion x P :
fsel : (, x) y,
fprod : (, y) z,
donde es un vector de dimension /2 de valores escogidos al azar entre los enteros {1, ....., l 1}
La funcion de reproduccion se dice que esta basada en un punto si los padres I i = (s1 , ....., sl ) y
I j = (b1 , ....., bl ) producen hijos CH i,j;1 = (c1 , ....., cl ) y CH i,j;2 = (d1 , ....., dl ) verificandose :
sj si j m
cj = (1)
bj si j > m
6
bj si j m
dj = (2)
sj si j > m
donde m es un numero entero escogido al azar segun una distribucion uniforme discreta definida
sobre el conjunto {1, ....., l 1}.
La funcion de mutacion individual findmut , aplicada a I = (s1 , . . . , sl ), genera otro individuo
M I = (sm1 , . . . , sml ), es decir findmut (I) = M I, tal que j {1, . . . , l}, P (smj = sj ) = 1 pm ,
donde pm es la probabilidad de mutacion.
La funcion de extension, fext , crea a partir de dos poblaciones x, z P , una poblacion n P2 :
fext : (x, z) n
Denotando por Ni con i = 1, .., 2 el i-esimo individuo en n, por Xk , con k = 1, ..., el k-esimo
individuo en x, y por Zj con j = 1, ..., el j-esimo individuo en z, se tendra:
Xi si i
Ni = (3)
Zi si i >
fred : n r.
3.1 Poblacion
3.1.1 Tamano de la poblacion
Una cuestion que uno puede plantearse es la relacionada con el tamano idoneo de la poblacion.
Parece intuitivo que las poblaciones pequenas corren el riesgo de no cubrir adecuadamente el espa-
cio de busqueda, mientras que el trabajar con poblaciones de gran tamano puede acarrear problemas
relacionados con el excesivo costo computacional.
Goldberg (1989) efectuo un estudio teorico, obteniendo como conclusion que el tamano optimo de la
poblacion para ristras de longitud l, con codificacion binaria, crece exponencialmente con el tamano
de la ristra.
Este resultado traera como consecuencia que la aplicabilidad de los Algoritmos Geneticos en proble-
mas reales sera muy limitada, ya que resultaran no competitivos con otros metodos de optimizacion
combinatoria. Alander (1992), basandose en evidencia emprica sugiere que un tamano de poblacion
comprendida entre l y 2l es suficiente para atacar con exito los problemas por el considerados.
7
3.2 Funcion objetivo
Dos aspectos que resultan cruciales en el comportamiento de los Algoritmos Geneticos son la de-
terminacion de una adecuada funcion de adaptacion o funcion objetivo, as como la codificacion
utilizada.
Idealmente nos interesara construir funciones objetivo con ciertas regularidades, es decir fun-
ciones objetivo que verifiquen que para dos individuos que se encuentren cercanos en el espacio
de busqueda, sus respectivos valores en las funciones objetivo sean similares. Por otra parte una
dificultad en el comportamiento del Algoritmo Genetico puede ser la existencia de gran cantidad de
optimos locales, as como el hecho de que el optimo global se encuentre muy aislado.
La regla general para construir una buena funcion objetivo es que esta debe reflejar el valor del
individuo de una manera real, pero en muchos problemas de optimizacion combinatoria, donde
existen gran cantidad de restricciones, buena parte de los puntos del espacio de busqueda represen-
tan individuos no validos.
Para este planteamiento en el que los individuos estan sometidos a restricciones, se han propuesto
varias soluciones. La primera sera la que podramos denominar absolutista, en la que aquellos in-
dividuos que no verifican las restricciones, no son considerados como tales, y se siguen efectuando
cruces y mutaciones hasta obtener individuos validos, o bien a dichos individuos se les asigna una
funcion objetivo igual a cero.
Otra posibilidad consiste en reconstruir aquellos individuos que no verifican las restricciones. Dicha
reconstruccion suele llevarse a cabo por medio de un nuevo operador que se acostumbra a denominar
reparador.
Otro enfoque esta basado en la penalizacion de la funcion objetivo. La idea general consiste en
dividir la funcion objetivo del individuo por una cantidad (la penalizacion) que guarda relacion con
las restricciones que dicho individuo viola. Dicha cantidad puede simplemente tener en cuenta el
numero de restricciones violadas o bien el denominado costo esperado de reconstruccion, es decir el
coste asociado a la conversion de dicho individuo en otro que no viole ninguna restriccion.
Otra tecnica que se ha venido utilizando en el caso en que la computacion de la funcion objetivo
sea muy compleja es la denominada evaluacion aproximada de la funcion objetivo. En algunos casos
la obtencion de n funciones objetivo aproximadas puede resultar mejor que la evaluacion exacta de
una unica funcion objetivo (supuesto el caso de que la evaluacion aproximada resulta como mnimo
n veces mas rapida que la evaluacion exacta).
Un problema habitual en las ejecuciones de los Algoritmos Geneticos surge debido a la velocidad
con la que el algoritmo converge. En algunos casos la convergencia es muy rapida, lo que suele
denominarse convergencia prematura, en la cual el algoritmo converge hacia optimos locales, mien-
tras que en otros casos el problema es justo el contrario, es decir se produce una convergencia lenta
del algoritmo. Una posible solucion a estos problemas pasa por efectuar transformaciones en la
funcion objetivo. El problema de la convergencia prematura, surge a menudo cuando la seleccion
de individuos se realiza de manera proporcional a su funcion objetivo. En tal caso, pueden exis-
tir individuos con una adaptacion al problema muy superior al resto, que a medida que avanza el
algoritmo dominan a la poblacion. Por medio de una transformacion de la funcion objetivo, en
este caso una comprension del rango de variacion de la funcion objetivo, se pretende que dichos
superindividuos no lleguen a dominar a la poblacion.
El problema de la lenta convergencia del algoritmo, se resolvera de manera analoga, pero en este
caso efectuando una expansion del rango de la funcion objetivo.
La idea de especies de organismos, ha sido imitada en el diseno de los Algoritmos Geneticos en
un metodo propuesto por Goldberg y Richardson (1987), utilizando una modificacion de la funcion
objetivo de cada individuo, de tal manera que individuos que esten muy cercanos entre s devaluen
su funcion objetivo, con objeto de que la poblacion gane en diversidad.
Por ejemplo, si denotamos por d(Itj , Iti ) a la distancia de Hamming entre los individuos Itj e Iti , y
8
por K R+ a un parametro, podemos definir la siguiente funcion:
A continuacion para cada individuo Itj , definimos jt = i6=j h(d(Itj , Iti )), valor que utilizaremos
P
para devaluar la funcion objetivo del individuo en cuestion. Es decir, g (Itj ) = g(Itj )/jt . De esta
manera aquellos individuos que estan cercanos entre s veran devaluada la probabilidad de ser se-
leccionados como padres, aumentandose la probabilidad de los individuos que se encuentran mas
aislados.
3.3 Seleccion
La funcion de seleccion de padres mas utilizada es la denominada funcion de seleccion proporcional
a la funcion objetivo, en la cual cada individuo tiene una probabilidad de ser seleccionado como
padre que es proporcional al valor de su funcion objetivo.
Denotando por pprop
j,t la probabilidad de que el individuo Itj sea seleccionado como padre, se tiene
que:
g(I j )
pprop
j,t = P t j .
j=1 g(It )
Esta funcion de seleccion es invariante ante un cambio de escala, pero no ante una traslacion.
Una de las maneras de superar el problema relacionado con la rapida convergencia proveniente de
los superindividuos, que surge al aplicar la anterior funcion de seleccion, es el efectuar la seleccion
proporcional al rango del individuo, con lo cual se produce una reparticion mas uniforme de la pro-
babilidad de seleccion, tal y como se ilustra en la figura 6.6. Si denotamos por rango(g(I tj )) el rango
prop rango
P ( I j,t ) P ( I j,t )
I j,t I j,t
de la funcion objetivo del individuo Itj cuando los individuos de la poblacion han sido ordenados
de menor a mayor (es decir el peor individuo tiene rango 1, mientras que el individuo con mejor
funcion objetivo tiene rango ), y sea prango
j,t la probabilidad de que el individuo Itj sea seleccionado
como padre cuando la seleccion se efectua proporcionalmente al rango del individuo, se tiene que
j
rango(g(It ))
prango
j,t = .
( + 1)/2
9
cada individuo es seleccionado un numero de veces que coincide con la parte entera del numero
esperado de ocurrencias de dicho suceso, compitiendo los individuos por los restos. Es decir, si
denotamos por n(Itj ) el numero de veces que el individuo Itj es seleccionado para el cruce, tenemos
que:
n(Itj ) = n1 (Itj ) + n2 (Itj ), donde
n1 (Itj ) = [g(Itj )/gt ], y n2 (Itj ) corresponde a la componente aleatoria que resulta de muestrear sobre
P
los j=1 [g(Itj )/gt ] restantes individuos, siendo el muestro proporcional a la funcion objetivo de
cada individuo.
Baker (1987) introduce un metodo denominado muestreo universal estocastico, el cual utiliza un
unico giro de la ruleta siendo los sectores circulares proporcionales a la funcion objetivo. Los indi-
viduos son seleccionados a partir de marcadores (vease Figura 6.7 ), igualmente espaciados y con
comienzo aleatorio.
Efectuando un paralelismo con los metodos de muestreo estadsticos, este ultimo tipo de seleccion de
t
I4 t
I1
t
I3 I2
t
Figura 6.7: Metodo de seleccion de padres denominado muestreo universal estocastico. El individuo I 1t
se escoge 2 veces, mientras que I3t e I4t son elegidos una unica vez
padres se relaciona con el muestreo sistematico, mientras que la seleccion proporcional a la funcion
objetivo, esta basada en el muestreo estratificado con afijacion proporcional al tamano. Tambien el
procedimiento de seleccion que hemos denominado muestreo estocastico con reemplazamiento del
resto, mantiene un paralelismo con el muestreo estratificado con afijacion de compromiso.
En el modelo de seleccion elitista se fuerza a que el mejor individuo de la poblacion en el tiempo t,
sea seleccionado como padre.
La seleccion por torneo, constituye un procedimiento de seleccion de padres muy extendido y en el
cual la idea consiste en escoger al azar un numero de individuos de la poblacion, tamano del torneo,
(con o sin reemplazamiento), seleccionar el mejor individuo de este grupo, y repetir el proceso hasta
que el numero de individuos seleccionados coincida con el tamano de la poblacion. Habitualmente el
tamano del torneo es 2, y en tal caso se ha utilizado una version probabilstica en la cual se permite
la seleccion de individuos sin que necesariamente sean los mejores.
Una posible clasificacion de procedimientos de seleccion de padres consistira en: metodos de se-
leccion dinamicos, en los cuales los probabilidades de seleccion varan de generacion a generacion,
(por ejemplo la seleccion proporcional a la funcion objetivo), frente a metodos de seleccion estaticos,
en los cuales dichas probabilidades permanecen constantes (por ejemplo la seleccion basada en ran-
gos).
Si se asegura que todos los individuos tienen asignada una probabilidad de seleccion distinta de cero
el metodo de seleccion se denomina preservativo. En caso contrario se acostumbra a denominarlo
extintivo.
10
3.4 Cruce
El Algoritmo Genetico Canonico descrito anteriormente, utiliza el cruce basado en un punto, en el
cual los dos individuos seleccionados para jugar el papel de padres, son recombinados por medio de
la seleccion de un punto de corte, para posteriormente intercambiar las secciones que se encuentran
a la derecha de dicho punto.
Se han investigado otros operadores de cruce, habitualmente teniendo en cuenta mas de un punto de
cruce. De Jong (1975) investigo el comportamiento del operador de cruce basado en multiples puntos,
concluyendo que el cruce basado en dos puntos, representaba una mejora mientras que anadir mas
puntos de cruce no beneficiaba el comportamiento del algoritmo. La ventaja de tener mas de un
punto de cruce radica en que el espacio de busqueda puede ser explorado mas facilmente, siendo la
principal desventaja el hecho de aumentar la probabilidad de ruptura de buenos esquemas.
En el operador de cruce basado en dos puntos, los cromosomas (individuos) pueden contemplarse
como un circuito en el cual se efectua la seleccion aleatoria de dos puntos, tal y como se indica en
la figura 6.8.
Final Comienzo
Primer punto
de corte
Segundo punto
de corte
Desde este punto de vista, el cruce basado en un punto, puede verse como un caso particular del
cruce basado en dos puntos, en el cual uno de los puntos de corte se encuentra fijo al comienzo de
la ristra que representa al individuo. Vease figura 6.9.
En el denominado operador de cruce uniforme (Syswerda (1991)) cada gen en la descendencia se
crea copiando el correspondiente gen de uno de los dos padres, escogido de acuerdo a una mascara
de cruce generada aleatoriamente. Cuando existe un 1 en la mascara de cruce, el gen es copiado
del primer padre, mientras que cuando exista un 0 en la mascara, el gen se copia del segundo padre,
tal y como se muestra en la figura 2.10. En la literatura, el termino operador de cruce uniforme se
relaciona con la obtencion de la mascara de cruce uniforme, en el sentido de que cualquiera de los
elementos del alfabeto tenga asociada la misma probabilidad. Hablando en terminos de la teora de
la probabilidad la mascara de cruce esta compuesta por una muestra aleatoria de tamano extrada
de una distribucion de probabilidad de Bernouilli de parametro 1/2.
Si tuviesemos en cuenta el valor de la funcion de adaptacion de cada padre en el momento de generar
la mascara de cruce, de tal manera que cuanto mayor sea la funcion de adaptacion de un individuo,
mas probable sea heredar sus caractersticas, podramos definir, vease Larranaga y Poza (1994), un
operador de cruce basado en la funcion objetivo, en el cual la mascara de cruce se interpreta como
una muestra aleatoria de tamano l proveniente de una distribucion de Bernouilli de parametro
11
Mscara de cruce 1 0 0 1 0 0 1
Padre 1 1 1 0 1 1 0 1
Descendiente 1 0 0 1 1 1 1
Padre 2 0 0 0 1 1 1 0
donde Itj y Iti denotan los padres seleccionados para ser cruzados.
El concepto de mascara de cruce puede tambien servir para representar los cruces basados en un
punto y basados en multiples puntos, tal y como se muestra en figura 6.11
Sirag y Weiser (1987), modifican el operador de cruce en el sentido del Simulated Annealing. De
Mscara de cruce 1 1 1 0 0 0 0 1 1 0 0 0 1 1
Padre 1 1 0 1 1 0 0 1 1 0 1 1 0 0 1
Descendiente 1 0 1 0 1 1 1 1 0 0 0 1 0 1
Padre 2 1 0 0 0 1 1 1 1 0 0 0 1 1 1
Figura 6.11: Mascaras de cruce para los operadores de cruce basados en 1 punto y en 2 puntos
esta manera el operador de cruce se modifica definiendo un umbral de energia c , y una temperatura
T , las cuales influencian la manera en la que se escogen los bits individuales. Segun el operador
propuesto el bit (i + 1)-esimo se tomara del padre opuesto al que se ha tomado el bit i-esimo, con
probabilidad exp(c /T ), donde T es el parametro temperatura el cual, al igual que en Simulated
Annealing decrecera lentamente por medio de un programa de enfriamiento. Con altas temperaturas
el comportamiento se asemeja al del operador de cruce uniforme, es decir con probabilidad cercana
a la unidad los bits se van escogiendo alternativamente de cada padre. Por otra parte cuando el
valor del parametro temperatura se acerca a cero el hijo resultante coincide practicamente con uno
de los padres.
Existen otros operadores de cruce especficos para un determinado problema como son, por ejemplo,
los definidos para el TSP, que se trataran mas adelante.
Por otra parte, la idea de que el cruce debera de ser mas probable en algunas posiciones ha sido
descrita por varios autores (Schaffer y Morishima, 1987; Holland, 1975; Davis, 1985; Levenick, 1991).
3.5 Mutacion
La mutacion se considera un operador basico, que proporciona un pequeno elemento de aleatoridad
en la vecindad (entorno) de los individuos de la poblacion. Si bien se admite que el operador de cruce
es el responsable de efectuar la busqueda a lo largo del espacio de posibles soluciones, tambien parece
desprenderse de los experimentos efectuados por varios investigadores que el operador de mutacion
va ganando en importancia a medida que la poblacion de individuos va convergiendo (Davis, 1985).
Schaffer y col. (1989) encuentran que el efecto del cruce en la busqueda es inferior al que previamente
se esperaba. Utilizan la denominada evolucion primitiva, en la cual, el proceso evolutivo consta tan
solo de seleccion y mutacion. Encuentran que dicha evolucion primitiva supera con creces a una
evolucion basada exclusivamente en la seleccion y el cruce. Otra conclusion de su trabajo es que la
determinacion del valor optimo de la probabilidad de mutacion es mucho mas crucial que el relativo
a la probabilidad de cruce.
La busqueda del valor optimo para la probabilidad de mutacion, es una cuestion que ha sido motivo
12
de varios trabajos. As, De Jong (1975) recomienda la utilizacion de una probabilidad de mutacion
del bit de l1 , siendo l la longitud del string. Schaffer y col. (1989) utilizan resultados experimentales
para estimar la tasa optima proporcional a 1/0.9318 l0.4535 , donde denota el numero de individuos
en la poblacion.
Si bien en la mayora de las implementaciones de Algoritmos Geneticos se asume que tanto la
probabilidad de cruce como la de mutacion permanecen constantes, algunos autores han obtenido
mejores resultados experimentales modificando la probabilidad de mutacion a medida que aumenta
el numero de iteraciones. Pueden consultarse los trabajos de Ackley (1987), Bramlette (1991),
Fogarty (1989) y Michalewicz y Janikow (1991).
3.6 Reduccion
Una vez obtenidos los individuos descendientes de una determinada poblacion en el tiempo t, el
proceso de reduccion al tamano original, consiste en escoger individuos de entre los individuos
que forman parte de la poblacion en el tiempo t, y los individuos descendientes de los mismos.
Dicho proceso se suele hacer fundamentalmente de dos formas distintas.
O bien los individuos descendientes son los que forman parte de la poblacion en el tiempo t + 1, es
lo que se denomina reduccion simple, o bien se escogen de entre los 2 individuos, los individuos
mas adaptados al problema, siguiendo lo que podemos denominar un criterio de reduccion elitista
de grado . Podemos tambien considerar otros procedimientos de reduccion que se colocan entre los
anteriores, por ejemplo, si escogemos los 1 mejores de entre padres y descendientes, escogiendose
los 1 restantes de entre los descendientes no seleccionados hasta el momento.
El concepto de reduccion esta ligado con el de tasa de reemplazamiento generacional, t rg , es decir
en el porcentaje de hijos generados con respecto del tamano de la poblacion.
Si bien en la idea primitiva de Holland (1975) dicho reemplazamiento se efectuaba de 1 en 1, es
decir trg = 1 , habitualmente dicho reemplazamiento se efectua en bloque, trg = 1. De Jong
(1975) introdujo el concepto de tasa de reemplamiento generacional con el objetivo de efectuar un
solapamiento controlado entre padres e hijos. En su trabajo, en cada paso una proporcion, t rg , de
la poblacion es seleccionada para ser cruzada. Los hijos resultantes podran reemplazar a miembros
de la poblacion anterior. Este tipo de Algoritmos Geneticos se conocen bajo el nombre de SSGA
(Steady State Genetic Algorithm), un ejemplo de los cuales lo constituye GENITOR (Whitley y
Kauth, 1988; Whitley, 1989).
Michalewicz (1992) introduce un algoritmo que denomina Algoritmo Genetico Modificado, MOD GA ,
en el cual para llevar a cabo el reemplazamiento generacional, selecciona al azar r 1 individuos para
la reproduccion, as como r2 individuos (distintos de los anteriores) destinados a morir. Estas se-
lecciones aleatorias tienen en consideracion el valor de la funcion objetivo de cada individuo, de tal
manera que cuanto mayor es la funcion objetivo, mayor es la probabilidad de que sea seleccionado
para la reproduccion, y menor es la probabilidad de que dicho individuo fallezca. El resto de los
(r1 + r2 ) individuos son considerados como neutros y pasan directamente a formar parte de la
poblacion en la siguiente generacion.
Modelos de islas. La idea basica consiste en dividir la poblacion total en varias subpoblaciones
en cada una de las cuales se lleva a cabo un Algoritmo Genetico. Cada cierto numero de genera-
ciones, se efectua un intercambio de informacion entre las subpoblaciones, proceso que se denomina
emigracion. La introduccion de la emigracion hace que los modelos de islas sean capaces de explotar
las diferencias entre las diversas subpoblaciones, obteniendose de esta manera una fuente de diversi-
dad genetica. Cada subpopulacion es una isla, definiendose un procedimiento por medio del cual
13
se mueve el material genetico de una isla a otra. La determinacion de la tasa de migracion, es
un asunto de capital importancia, ya que de ella puede depender la convergencia prematura de la
busqueda.
Se pueden distinguir diferentes modelos de islas en funcion de la comunicacion entre las subpobla-
ciones. Algunas comunicaciones tpicas son las siguientes:
Comunicacion en estrella, en la cual existe una subpoblacion que es seleccionada como maestra
(aquella que tiene mejor media en el valor de la funcion objetivo), siendo las demas consideradas
como esclavas. Todas las subpoblaciones esclavas mandan sus h 1 mejores individuos (h1 1)
a la subpoblacion maestra la cual a su vez manda sus h2 mejores individuos (h2 1) a cada
una de las subpoblaciones esclavas. Vease figura 6.12.
Esclava Esclava
Maestra
Esclava Esclava
Comunicacion en red, en la cual no existe una jerarqua entre las subpoblaciones, mandando
todas y cada una de ellas sus h3 (h3 1) mejores individuos al resto de las subpoblaciones.
Vease figura 6.13.
Subpobl. 1 Subpobl. 2
Subpobl. 3 Subpobl. 4
Comunicacion en anillo, en la cual cada subpoblacion enva sus h 4 mejores individuos (h4 1),
a una poblacion vecina, efectuandose la migracion en un unico sentido de flujo. Vease figura
6.14.
El modelo de islas ha sido utilizado por varios autores (Whitley y Starkweather, 1990; Gorges-
Schleuter, 1989; Tanese, 1987).
14
Subpobl. 1 Subpobl. 2
Subpobl. 3 Subpobl. 4
Si denotamos por vi (t) la funcion objetivo del i-esimo individuo (i = 1, . . . , ) en la t-esima poblacion,
la evaluacion on-line, despues de T iteraciones, se denotara por v on-line (T ), y se define como
PT P
on-line t=1 i=1 vi (t)
v (T ) = .
T
Es decir, la evaluacion on-line mide el comportamiento medio de todas las ristras generadas hasta
el tiempo T .
La evaluacion off-line se refiere al comportamiento del Algoritmo Genetico en su proceso de con-
vergencia hacia el optimo. As tendremos que si denotamos por v (t) al mejor valor de la funcion
objetivo obtenido hasta el tiempo t (incluyendo dicho tiempo), y si v off-line (T ) denota la evaluacion
off-line despues de T generaciones, tenemos que
PT
off-line t=1 v (t)
v (T ) = .
T
La definicion de evaluacion basada en el mejor trata de evaluar el Algoritmo Genetico por medio del
mejor valor de la funcion de evaluacion encontrado en la evolucion. Se trata por tanto de la medida
de evaluacion usual al tratar de estudiar el comportamiento de cualquier tecnica heurstica.
15
el numero de esquemas existentes es 3l , ya que cada posicion puede ocuparse por cualquier de los
tres elementos del alfabeto extendido S 0 . Un esquema representa por tanto todas aquellas ristras
que se asocian con el, en todas las posiciones distintas de las ocupadas por .
As por ejemplo considerando ristras de longitud 4, tenemos que el esquema Q = (10) se empareja
con los cromosomas
(0100), (0110), (1100)y(1110).
Desde un punto de vista geometrico un esquema equivale a un hiperplano en el espacio de busqueda.
El esquema (0111) representa una unica ristra, mientras que el esquema ( ) representa todas
las ristras de longitud 4. Por otra parte cada esquema se empareja exactamente con 2 r ristras,
donde r denota el numero de smbolos contenidos en el esquema. Ademas cada ristra de longitud
l se empareja con 2l esquemas. As por ejemplo el ristra (0100) se empareja con los siguientes 2 4
esquemas:
(0100),
(100), (0 00), (01 0), (010),
( 00), (1 0), (10), (0 0), (0 0), (01 ),
( 0), ( 0), (1 ), (0 ),
( ).
Para desarrollar el Teorema de los esquemas necesitamos utilizar los conceptos de orden y longitud
de un esquema, que se definen a continuacion.
El orden del esquema Q, se denota por o(Q), y se refiere al numero de posiciones ocupadas por 0s,
o 1s dentro del esquema. Se trata por tanto del numero de posiciones fijas en el esquema. En
otras palabras se trata de la longitud de la ristra menos el numero de smbolos . Por ejemplo, los
tres esquemas siguientes,
Q1 = (01),
Q2 = ( 1),
Q3 = (110),
tienen los siguientes ordenes:
El concepto de orden del esquema se utiliza, como se vera con posterioridad, para calcular la prob-
abilidad de supervivencia del esquema con relacion al operador mutacion.
La longitud del esquema Q, se denota por medio de (Q), y se define como la distancia entre la
primera y la ultima posiciones fijas de la ristra. Dicho concepto define en cierto modo la com-
pactibilidad de la informacion contenida en el esquema. As por ejemplo
El concepto anterior se utiliza para calcular la probabilidad de supervivencia del esquema frente al
operador de cruce.
Denotaremos por:
, el tamano de la poblacion que se considerara constante a lo largo de la evolucion,
pc , la probabilidad de cruce,
pm , la probabilidad de mutacion.
Por otra parte, (Q, t) denotara el numero de ristras que en una determinada poblacion en el tiempo
t, se asocian con el esquema Q.
As por ejemplo si consideramos la poblacion en el tiempo t,
16
y los dos esquemas siguientes
Q1 = ( 01) y Q2 = ( 0),
tenemos que
(Q1 , t) = 2 y (Q2 , t) = 1.
Otra propiedad del esquema es su adaptacion en el tiempo t, la cual se denotara por eval(Q, t) y se
define como la media de la funcion objetivo de todas las ristras que en la poblacion se asocian con
el esquema Q.
Sea F (t), la media de la funcion objetivo extendida a toda la poblacion en el tiempo t. Es decir
F (t) = F (t)/, siendo F (t) la suma de las funciones objetivo de todas los individuos en la poblacion
en el tiempo t.
Con la notacion introducida hasta el momento, podemos enunciar el Teorema de los esquemas de la
siguiente manera.
Teorema de los esquemas Si denotamos por Esel, cru, mut ((Q, t + 1)), el numero esperado de
individuos que se asocian con el esquema Q, en el tiempo t + 1, despues de efectuar la seleccion, el
cruce y la mutacion en un Algoritmo Genetico Canonico, se tiene que:
(Q)
Esel, cru, mut ((Q, t + 1)) (Q, t) eval(Q, t)/F (t)[1 pc o(Q)pm ].
l1
La demostracion se efectuara en tres pasos, en el primero de los cuales se estudiara el efecto de la
seleccion basada en la ruleta sesgada, en el numero esperado de individuos que se asocian con la
ristra Q. Dicho numero se denotara por Esel ((Q, t + 1)). A continuacion se vera el efecto del cruce
en dicho numero esperado, el cual se denotara por Esel, cru ((Q, t + 1)), para finalmente tratar el
efecto de la mutacion, obteniendose una cota inferior para Esel, cru, mut ((Q, t + 1))
Efecto seleccion
Utilizando la notacion anteriormente introducida, se tiene que la probabilidad de que un
individuo seleccionado para cruzarse (suponemos que la seleccion se efectua de manera pro-
porcional a la funcion objetivo) se empareje con el esquema Q, se calculara por medio de
eval(Q, t)/F (t).
El numero esperado de individuos que a partir del anterior individuo seleccionado van a em-
parejarse con Q, sera (eval(Q, t)/F (t)) (Q, t). Al efectuarse selecciones, se tendra que:
Si se asume que la evaluacion del esquema supera a la evaluacion media extendida a toda la
poblacion en un %, es decir si
Por tanto acabamos de obtener que el numero medio esperado de individuos que se asocian
con un esquema determinado Q en el tiempo t, crece de forma exponencial en funcion de
la diferencia entre la evaluacion media de dicho esquema con respecto a la evaluacion media
global.
La anterior ecuacion se conoce bajo el nombre de ecuacion de crecimiento reproductivo de los
esquemas.
17
Efecto cruce
Denotando por pd,cruce (Q), la probabilidad de que el esquema Q sea destruido por el operador
de cruce, se tiene que
(Q)
pd,cruce (Q) = .
l1
En realidad como el operador de cruce se lleva a cabo con una cierta probabilidad p c , se tiene
que
(Q)
pd,cruce (Q) = pc ,
l1
lo cual equivale a decir que la probabilidad de que el esquema Q sobreviva al cruce es
(Q)
pso, cruce (Q) = 1 pd,cruce (Q) = 1 pc .
l1
En realidad la formula anterior nos proporciona una cota para la probabilidad de que sobreviva
el esquema Q. Ello es debido a que, puede ocurrir que aunque el punto de corte se encuentre
entre los smbolos comprendidos entre el primer y el ultimo elemento distintos de , el
esquema resultante no muera. As por ejemplo, si consideramos los dos esquemas:
S1 = 1 0,
S2 = 1 0,
independientemente del punto de corte, cualquiera de los esquemas resultantes coincide con
los anteriores. De ah que en realidad tenemos que:
(Q)
pso, cruce (Q) 1 pc ,
l1
obteniendose que
(Q)
Esel, cru [(Q, t + 1)] (Q, t) eval(Q, t)/F (t) (1 pc ).
l1
Efecto mutacion
Denotando por pso, mut (Q) a la probabilidad de que el esquema Q sobreviva al operador mu-
tacion, se tiene que pso, mut (Q) = (1 pm )o(Q) . Al ser pm << 1, la anterior probabilidad de
sobrevivir puede ser aproximada por
pso,mut 1 o(Q)pm .
18
4.2 Paralelismo implcito
El hecho de que los Algoritmos Geneticos efectuen busquedas robustas, se debe a que implcitamente
muestrean hiperplanos. Es decir cada individuo, representado por medio de una codificacion binaria,
constituye un vertice del hipercubo que representa el espacio de busqueda, y es a su vez un miembro
de 2l 1 diferentes hiperplanos, donde l es la longitud de la codificacion binaria. Por otra parte
existen un total de 3l 1 hiperplanos particiones sobre el espacio de busqueda total.
Cada individuo no proporciona gran informacion si se examina por separado. Es por ello que la
busqueda basada en una poblacion es crtica para los Algoritmos Geneticos. Una poblacion de indi-
viduos, proporciona informacion sobre numerosos hiperplanos, estando los hiperplanos de bajo orden
muestrados por numerosos puntos de la poblacion. El hecho de que se muestreen muchos hiperplanos
cuando se evalua una poblacion de ristras, se conoce como el paralelismo implcito o intrnseco de
los Algoritmos Geneticos. Dicho paralelismo implcito, significa que muchas competiciones entre
hiperplanos se efectuan simultaneamente.
19
5 Operadores geneticos en el problema del agente viajero
5.1 Introduccion
El problema del agente viajero, tambien denominado TSP (Travelling Salesman Problem), consiste
en -dada una coleccion de ciudades- determinar la gira de mnimo costo, visitando cada ciudad
exactamente una vez y volviendo al punto de partida.
Mas precisamente, dado un numero entero n 3 y dada una matriz C = (c ij ) M (n, n), con
elementos cij enterosPno negativos, se trata de encontrar la permutacion cclica de los enteros de
n
1 a n que minimiza i=1 ci(i) .
A lo largo de los anos el problema del agente viajero ha ocupado la mente de numerosos investi-
gadores. Los motivos son varios. En primer lugar, el TSP es un problema muy sencillo de enunciar,
pero muy difcil de resolver. En segundo lugar, el TSP es aplicable a una gran variedad de problemas
de planificacion. Finalmente, se ha convertido en una especie de problema test, es decir los nuevos
metodos de optimizacion combinatoria son a menudo aplicados al TSP con objeto de tener una idea
de sus potencialidades.
Son numerosos los heursticos que se han desarrollado para el TSP. La mayora de ellos se describen
en Lawler y col. (1985). La primera aproximacion al TSP a partir de Algoritmos Geneticos la
efectuo Brady (1985). Su intento fue seguido por Grefenstette y col. (1985), Goldberg y Lingle
(1985), Oliver y col. (1987) y otros muchos. Tambien han sido aplicados otros Algoritmos Evolu-
tivos, veanse por ejemplo, Fogel (1988), Banzhaf (1990) y Ambati y col. (1991). Se pueden encontrar
ejemplos de problemas para el TSP, en algunos casos con su solucion, en una librera disponible via
ftp, tecleando lo que sigue:
ftp sfi.santafe.edu
Name (sfi.santafe.edu: foobar): anonymous
Password: < e-mail address >
ftp> cd pub/EC/etc/data/TSP
ftp> type binary
ftp> get tsplib-1.2.tar.gz
La librera fue compilada por Reinelt. Para mas informacion sobre la misma, vease Reinelt
(1991).
Se expondran distintas representaciones, as como diferentes operadores de cruce y mutacion, que
han sido utilizados para resolver el TSP por medio de Algoritmos Geneticos.
20
Por ejemplo, si consideramos los dos padres siguientes:
(1 2 3 4 5 6 7 8) y
(3 7 5 1 6 8 2 4),
el operador PMX crea las giras descendientes de la siguiente manera. En primer lugar, selecciona
con probabilidad uniforme dos puntos de corte a lo largo de las ristras que representan las giras
padres. Supongamos que el primer punto de corte se selecciona entre el tercer y el cuarto elemento
de la gira, y el segundo entre el sexto y el septimo elemento:
(1 2 3 | 4 5 6 | 7 8) y
(3 7 5 | 1 6 8 | 2 4).
Se considera que existe una correspondencia biunvoca entre los elementos que forman parte de las
subristras comprendidas entre los puntos de corte. En nuestro ejemplo la correspondencia establecida
es la siguiente: 4 1, 5 6 y 6 8. A continuacion la subristra del primer padre se copia en
el segundo hijo. De forma analoga, la subristra del segundo padre se copia en el primer hijo,
obteniendose:
descendiente 1: (x x x | 1 6 8 | x x) y
descendiente 2: (x x x | 4 5 6 | x x).
En el siguiente paso el descendiente i-esimo (i=1,2) se rellena copiando los elementos del i-esimo
padre. En el caso de que una ciudad este ya presente en el descendiente, se reemplaza teniendo en
cuenta la correspondencia anterior. Por ejemplo el primer elemento del descendiente 1 sera un 1
al igual que el primer elemento del primer padre. Sin embargo, al existir un 1 en el descendiente
1 y teniendo en cuenta la correspondencia 1 4, se escoge la ciudad 4 como primer elemento
del descendiente 1. El segundo, tercer y septimo elementos del descendiente 1 pueden escogerse
del primer padre. Sin embargo, el ultimo elemento del descendiente 1 debera ser un 8, ciudad ya
presente. Teniendo en cuenta las correspondencias 8 6, y 6 5, se escoge en su lugar un 5. De
ah que
descendiente 1: (4 2 3 | 1 6 8 | 7 5).
En forma analoga, se obtiene:
descendiente 2: (3 7 8 | 4 5 6 | 2 1).
(1 ).
A continuacion debemos de considerar el ultimo elemento del descendiente. Ya que dicho elemento
debe ser escogido de uno de los padres, tan solo puede tratarse de un 8 o un 1. Al haber sido
seleccionado el 1 con anteriordad, se escoge el 8, con lo cual el descendiente estara constituido por
(1 8).
De forma analoga encontramos que el segundo y cuarto elemento del descendiente deben de ser
seleccionados del primer padre, lo cual resulta
(1 2 4 8).
21
Una vez concluido ese ciclo, consideramos a continuacion el tercer elemento del descendiente. Dicho
elemento puede ser escogido de cualquiera de los padres. Supongamos que lo seleccionamos del
segundo padre. Esto implica que los elementos quinto, sexto y septimo del descendiente deben
de escogerse del segundo padre, ya que constituyen un ciclo. De ah que se obtenga el siguiente
descendiente
(1 2 6 4 7 5 3 8).
22
5.2.6 Operador de cruce basado en la posicion (POS)
Syswerda (1991) propone tambien en conexion con problemas de secuenciacion, una segunda modi-
ficacion del operador OX1: el operador POS. El operador POS tambien comienza seleccionando al
azar un conjunto de posiciones en las giras padres. Sin embargo este operador impone, la posicion
de los elementos seleccionados, en los correspondientes elementos del otro padre.
Por ejemplo, si consideramos los padres
(1 2 3 4 5 6 7 8) y
(2 4 6 8 7 5 3 1),
y suponemos que se seleccionan las posiciones segunda, tercera y sexta, esto nos proporcionara los
siguientes descendientes:
(1 4 6 2 3 5 7 8) y
(4 2 3 8 7 6 5 1).
(1 2 3 4 5 6) y
(2 4 3 1 5 6),
la conexion de arcos correspondiente puede consultarse en la Tabla 6.3. El operador ER funciona
3. Si la ciudad de referencia tiene entradas en la lista de arcos se ira al paso 4, en caso contrario
al paso 5.
5. Si no quedan ciudades por visitar, parar el algoritmo. En otro caso, escoger al azar una ciudad
no visitada e ir al paso 2.
23
La primera gira descendiente se inicializa con una de las dos ciudades iniciales de sus giras
padres. Las ciudades iniciales 1 y 2 ambas tienen 4 arcos; escogemos al azar la ciudad 2.
La lista de ciudades para la ciudad 2 indica que los candidatos para convertirse en la siguiente
ciudad de referencia son las ciudades 1, 3, 4 y 6. Las ciudades 3, 4 y 6 tienen todas 2 arcos:
los tres iniciales menos la conexion con la ciudad 2. La ciudad 1 tiene tres arcos y por tanto
no se tiene en cuenta. Supongamos que se escoge al azar la ciudad 3.
La ciudad 3 esta conectada con la ciudad 1 y con la ciudad 4. Se escoge la ciudad 4 ya que es
la que menos arcos tiene.
La ciudad 4 tan solo tiene un arco, a la ciudad 5, la cual se escoge a continuacion como nueva
ciudad de referencia.
La ciudad 5 tiene arcos a las ciudades 1 y 6, las cuales tienen ambas tan solo 1 arco. Escogemos
al azar la ciudad 1.
La ciudad 1 debe ir a la ciudad 6.
La gira resultante es
(2 3 4 5 1 6),
la cual ha sido creada totalmente utilizando arcos tomados de las dos giras padres.
24
5.3 Operadores de mutacion
5.3.1 Operador de mutacion basado en el desplazamiento (DM)
El operador DM (Michalewizc, 1997) comienza seleccionando una subristra al azar. Dicha subristra
se extrae de la gira, y se inserta en un lugar aleatorio.
Por ejemplo, si consideramos la gira representada por
(1 2 3 4 5 6 7 8),
y suponemos que se selecciona la subristra (3 4 5), despues de quitar dicha subristra tenemos
(1 2 6 7 8).
Supongamos que aleatoriamente seleccionamos la ciudad 7 para insertar a partir de ella la subgira
extraida. Esto producira la gira:
(1 2 6 7 3 4 5 8).
(1 2 3 4 5 6 7 8),
y suponemos que seleccionamos al azar la tercera y la quinta ciudad. El resultado del operador EM
sobre la gira anterior sera
(1 2 5 4 3 6 7 8).
(1 2 3 4 5 6 7 8),
(1 2 5 4 3 6 7 8).
25
5.3.5 Operador de mutacion basado en la inversion (IVM)
El operador IVM (Fogel, 1988, 1993) es similar al operador DM. Se selecciona al azar una subgira,
para a continuacion y una vez extrada la misma, insertarla en orden contrario en una posicion
seleccionada aleatoriamente.
Por ejemplo, si consideramos la gira
(1 2 3 4 5 6 7 8),
y se supone que se escoge la subgira (3 4 5), para insertarla a continuacion de la ciudad 7, ob-
tendramos
(1 2 6 7 5 4 3 8).
(1 2 3 5 6 7 4 8).
i ciudad i i ciudad i
1 000 4 011
2 001 5 100
3 010 6 101
Tabla 6.4: Representacion binaria para un TSP con 6 ciudades
26
La combinacion de las distintas partes da como resultado
y suponemos que se mutan el primer y segundo bit, obtenemos como resultado la ristra:
(1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (2, 3), (2, 4), (2, 5), (2, 6),
(3, 4), (3, 5), (3, 6), (4, 5), (4, 6), (5, 6).
Entonces la gira 1 2 3 4 5 6, se representa por el vector binario
100011000100101.
A continuacion, algunos 1-s que tan solo aparecen en uno de los padres se anaden al descendiente,
para finalmente completarse la matriz de manera que el resultado sea una gira legal.
27
Por ejemplo, las giras padres 2 3 1 4 y 2 4 1 3 que se representan por medio de las
matrices:
0 0 0 1 0 0 1 0
1 0 1 1 1 0 1 1
y ,
1 0 0 1 0 0 0 0
0 0 0 0 1 0 1 0
despues de la primera fase dan como resultado:
0 0 0 0
1 0 1 1
.
0 0 0 0
0 0 0 0
Esta matriz puede completarse de 6 maneras diferentes, ya que la unica restriccion en la gira
descendiente es que comienza en la ciudad 2. Una posible gira descendiente es: 2 1 4 3,
la cual se representa por medio de:
0 0 1 1
1 0 1 1
0 0 0 0 .
0 0 1 0
Fox y McMahon no definen ningun operador de mutacion.
Seniw (1991) define otra representacion en la cual el elemento (i, j) de la matriz vale 1, si y solo si, en
la gira la ciudad j se visita inmediatamente despues de la ciudad i. Esto implica que una gira legal
se representa por medio de una matriz en la cual en cada fila y cada columna existe exactamente
un 1. Sin embargo, tal y como se vera en el ejemplo siguiente, una matriz que contiene exactamente
un 1 en cada fila y en cada columna no representa necesariamente un gira legal.
As por ejemplo, si consideramos las matrices
0 0 0 1 0 1 0 0
0 0 1 0 1 0 0 0
1 0 0 0 y 0
,
0 0 1
0 1 0 0 0 0 1 0
(3 5 7 6 4 8 2 1)
representa la gira
1 3 7 2 5 4 6 8.
Notese que toda gira tiene una unica representacion por medio de una lista de adyacencia. Sin
embargo, una lista de adyacencia puede no representar una gira.
As por ejemplo,
(3 5 7 6 2 4 1 8)
representa el siguiente conjunto de subgiras:
1 3 7, 2 5, 4 6 y 8.
28
Puede comprobarse que con esta representacion el operador de cruce basado en un punto puede dar
origen a giras ilegales. Para solventar esta problematica se han definido otros operadores de cruce
-Grefenstette y col. (1985)-.
L0 = (1 2 3 4 5 6 7 8).
T = (1 4 2 1 4 1 2 1)
El primer numero de T es el 1. Esto significa que para conseguir la primera ciudad de la gira,
se debe de coger el primer elemento de la lista L0 y a continuacion quitarlo de dicha lista. La
gira parcial es: 1, y la lista ordenada de ciudades actualizada sera:
L1 = (2 3 4 5 6 7 8).
L2 = (2 3 4 6 7 8).
Si continuamos de manera analoga hasta que quitemos todos los elementos de la lista ordenada de
ciudades, obtenemos la gira 1 5 3 2 8 4 7 6.
La ventaja de la representacion ordinal es que el operador de cruce basado en un punto funciona.
29
6 Notas bibliograficas
El primer libro escrito sobre algoritmos geneticos se debe a Holland (1975). El libro recoge el tra-
bajo llevado a cabo por investigadores de la Universidad de Michigan en relacion con los algoritmos
geneticos. Sin embargo hasta la publicacion del libro escrito por Goldberg (1989) no se llegan a
popularizar los algoritmos geneticos como una herramienta para la busqueda y la optimizacion. Con
posterioridad a este trabajo un gran numero de publicaciones (libros, revistas, informes internos de
investigacion, etc.) asi como de congresos y conferencias (International Conference on Genetic Al-
gorithms, Parallel Problem Solving from Nature, Congress on Evolutionary Computation, Genetic
and Evolutionary Computation Conference, etc.) se han ido desarrollando, convirtiendo a la com-
putacion evolutiva en general, y a los algoritmos geneticos en particular, en una de las areas mas
activas de la Inteligencia Artificial.
7 Recursos en internet
http://www.aic.nrl.navy.mil/galist
Se trata de un repositorio de informacion acerca de la investigacion relacionada con los algo-
ritmos geneticos y otras tecnicas de computacion evolutiva. En el mismo se pueden encon-
trar los mensajes semanales enviados por la lista de distribucion GA-list digest, al igual que
gran numero de implementaciones de algoritmos geneticos, y anuncios acerca de conferencias
cientficas relacionadas con la computacion evolutiva. Resultan tambien de interes los links a
distintos grupos de investigacion trabajando en este tema.
http://www.cs.gmu.edu/research/gag
Grupo de investigacion de la Universidad George Masson (Virginia) investigando sobre algo-
ritmos geneticos. El grupo esta dirigido por el Prof. De Jong.
http://ls11-www.informatik.uni-dortmund.de/Welcome-e.html
Grupo de investigacion de la Universidad de Dortmund (Alemania) trabajando sobre com-
putacion evolutiva, principalmente sobre estrategias evolutivas (Prof. Schwefel) y progra-
macion genetica (Prof. Banzhaf).
http://www-illigal.ge.uiuc.edu/index.html
Pagina web del grupo Illinois Genetic Algorithms Laboratory dirigido por el Prof. Goldberg.
http://www.cs.colostate.edu/ genitor
Pagina web del The Genitor Group grupo de investigacion de la Universidad de Colorado,
dirigido por el Prof. Whitley.
Ejercicios
2. El problema de la mochila 0 1
Dado un conjunto finito de items, cada uno de los cuales tiene asocido un peso y una ganancia,
seleccionar el subconjunto de items a incluir en una mochila capaz de soportar un peso
maximo finito cuya inclusion proporcione una ganancia maxima.
Sean n items y una mochila capaz de soportar un peso maximo C. Denotamos por b j el
beneficio obtenido al introducir el item j en la mochila, mientras que wj denota el peso asociado
30
Pn
a dicho item j. Se trata de seleccionar un subconjuto de items que maximicen Z = j=1 bj xj ,
Pn
sujeto a la restriccion j=1 wj xj C, siendo
1 si el item j seleccionado
xj =
0 si el item j no seleccionado
1. Elaboracion de un informe recogiendo los trabajos mas actuales en los que los algoritmos
geneticos han sido aplicados al problema de la ruta de vehculos. Se trata de gestionar de
manera eficiente un flota de vehculos que debe de satisfacer las peticiones diarias de una serie
de clientes.
2. Elaboracion de un informe recogiendo los trabajos mas actuales en los que los algoritmos
geneticos han sido aplicados al problema de la busqueda del filtro optimo en imagenes digitales.
3. Elaboracion de un informe recogiendo las caractersticas del software de libre distribucion
disponible en internet en relacion con los algoritmos geneticos.
Referencias
1. D.H. Ackley (1987). A Connectionist Machine for Genetic Hillclimbing, Kluwer Academic
Publishers.
31
2. J.T. Alander (1992). On optimal population size of genetic algorithms. Proceedings Com-
pEuro 1992, Computer Systems and Software Engineering, 6th Annual European Computer
Conference, 65-70.
3. B.K. Ambati, J. Ambati, M.M. Mokhtar (1991). Heuristic combinatorial optimization by sim-
ulated Darwinian evolution: A polynomial time algorithm for the traveling salesman problem,
Biological Cybernetics, 65, 31-35.
4. J.E. Baker (1987). Reducing bias and inefficiency in the selection algorithm. Proceedings of
the Second International Conference on Genetic Algorithms and Their Applications, 14-21.
5. W. Banzhaf (1990). The molecular traveling salesman, Biological Cybernetics, 64, 7-14.
6. R.M. Brady (1985). Optimization strategies gleaned from biological evolution, Nature, 317,
804-806.
7. M.F. Bramlette (1991). Initialization, mutation and selection methods in genetic algorithms
for function optimization. Proceedings of the Fourth International Conference on Genetic
Algorithms, 100-107.
8. A. Brindle (1991). Genetic algorithms for function optimization. Tesis doctoral, Universidad
de Alberta, Canada.
9. U.K. Chakraborty, D.G. Dastidar (1993). Using reliability analysis to estimate the number of
generations to convergence in genetic algorithms. Information Processing Letters, 46, 199-209.
10. C. Darwin (1859). On the Origin of Species by Means of Natural Selection, Murray, London.
11. L. Davis (1985). Applying adaptive algorithms to epistatic domains, en Proceedings of the
International Joint Conference on Artificial Intelligence, 162-164.
12. L. Davis (ed.) (1991). Handbook of Genetic Algorithms, Van Nostrand Reinhold, New York.
13. T.E. Davis, J.C. Principe (1993). A Markov chain framework for the simple genetic algorithm.
Evolutionary Computation, 1(3), 269-288.
14. K.A. De Jong (1975). An analysis of the behaviour of a class of genetic adaptive systems.
Tesis doctoral, University of Michigan.
15. A.E. Eiben, E.H.L. Aarts, K.M. Van Hee (1990). Global convergence of genetic algorithms: An
infinite Markov chain analysis. Computing Science Notes, Eindhoven University of Technology,
The Netherlands.
16. T.C. Fogarty (1989). Varying the probability of mutation in the genetic algorithm. Proceedings
of the Third International Conference on Genetic Algorithms, 104-109.
17. D. B. Fogel (1988). An evolutionary approach to the traveling salesman problem, Biological
Cybernetics, 60, 139-144.
18. D. B. Fogel (1993). Applying evolutionary programming to selected traveling salesman prob-
lems, Cybernetics and Systems, 24, 27-36.
19. M. S. Fox, M. B. McMahon (1987). Genetic operators for sequencing problems, en Rawlings,
G. (ed.) Foundations of Genetic Algorithms: First Workshop on the Foundations of Genetic
Algorithms and Classifier Systems, Morgan Kaufmann Publishers, Los Altos, CA, 284-300.
20. D.E. Goldberg (1989). Genetic Algorithms in Search, Optimization and Machine Learning,
Addison-Wesley, Reading, MA.
21. D. E. Goldberg, Jr. R. Lingle (1985). Alleles, loci and the traveling salesman problem, en Pro-
ceedings of the First International Conference on Genetic Algorithms and Their Applications,
154-159.
32
22. D.E. Goldberg, J.T. Richardson (1987). Genetic algorithms with sharing for multimodal
function optimization. Genetic Algorithms and their Applications: Proceedings of the Second
International Conference on Genetic Algorithms and Their Applications, 41-49.
24. J. Grefenstette, R. Gopal, B. Rosmaita, D. Van Gucht (1985). Genetic algorithms for the
traveling salesman problem, en Proceedings of the First International Conference on Genetic
Algorithms and Their Applications, 160-165.
25. J. Holland (1975). Adaptation in Natural and Artificial Systems, University of Michigan Press,
Ann Arbor.
26. P. Larranaga, M. Poza (1994). Structure learning of Bayesian network by genetic algorithms.
E. Diday (ed.), New Approaches in Classification and Data Analysis, Springer-Verlag, 300-307.
28. E.L. Lawler, J.K. Lenstra, A.H.G. Rinnooy Kan, D.B. Shmoys (eds.) (1985). The Traveling
Salesman Problem: A Guided Tour of Combinatorial Optimization, Wiley, Chichester.
29. G.E. Liepins (1992). On global convergence of genetic algorithms. Neural and Stochastic
Methods in Image and Signal Processing, 61-65.
30. Z. Michalewicz (1992). Genetic Algorithms + Data Structures = Evolution Programs, Springer-
Verlag, Berlin Heidelberg.
31. Z. Michalewicz, C.Z. Janikow (1991). Handling constraints in genetic algorithms. Proceedings
of the Fourth International Conference on Genetic Algorithms, 151-157.
32. H. Muhlenbein (1989). Parallel genetic algorithms, population genetics and combinatorial
optimization, en Proceedings on the Third International Conference on Genetic Algorithms,
416-421.
33. I.M. Oliver, D.J. Smith, J.R.C. Holland (1987). A study of permutation crossover opera-
tors on the TSP, en Genetic Algorithms and Their Applications: Proceedings of the Second
International Conference, 224-230.
34. C. Reeves (1993). Modern Heuristic Techniques for Combinatorial Problems, Blackwell Scien-
tific Publications.
35. G. Reinelt (1991). TSPLIB - A Traveling Salesman Library, ORSA Journal on Computing,
3(4), 376-384.
36. G. Rudolph (1994). Convergence analysis of canonical genetic algoritms. IEEE Transactions
on Neural Networks, 96-101.
37. J.D. Schaffer, R.A. Caruna, L.J. Eshelman, R. Das (1989). A study of control parameters af-
fecting online performance of genetic algorithms for function optimization. J.D. Schaffer (ed.),
Proceedings of the Third International Conference on Genetic Algorithms, Morgan Kaufmann,
51-60.
38. D. Seniw (1991). A genetic algorithm for the traveling salesman problem, M.Sc. Thesis,
University of North Carolina at Charlotte.
39. D.J. Sirag, P.T. Weisser (1987). Toward a unified thermodynamic genetic operator. Genetic
Algorithms and their applications: Proceedings of the Second International Conference on
Genetic Algorithms and Their Applications, 116-122.
40. J. Stender (1993). Parallel Genetic Algorithms: Theory and Applications, IOS Press.
33
41. J. Suzuki (1993). A construction of Bayesian networks from databases based on an MDL
Principle. Uncertainty in Artificial Intelligence, Proceedings of the Ninth Conference, 266-
273.
42. G. Syswerda (1991). Schedule optimization using genetic algorithms. L. Davis (ed.). Handbook
of Genetic Algorithms, Van Nostrand Reinhold, New York, 332-349.
43. R. Tanese (1987). Parallel genetic algorithm for a hypercube. Proceedings of the Second
International Conference on Genetic Algorithms, 177-183.
44. D. Whitley (1989). The GENITOR algorithm and selection pressure: Why rank-based allo-
cation of reproductive trials is best. Proceedings on the Third International Conference on
Genetic Algorithms, 116-121.
45. D. Whitley, J. Kauth (1988). GENITOR: A different genetic algorithm. Proceedings of the
Rocky Mountain Conference on Artificial Intelligence, Denver, CO, 118-130.
46. D. Whitley, T. Starkweather, D. Fuquay (1989). Scheduling problems and travelling sales-
man: The genetic edge recombination operator, en Proceedings on the Third International
Conference on Genetic Algorithms, 133-140.
47. D. Whitley, T. Starkweather (1990). Genitor II: A distributed genetic algorithm. Journal of
Experimental and Theorical Artificial Intelligence, 2, 189-214.
48. D. Whitley, T. Starkweather, D. Shaner (1991). The traveling salesman and sequence schedul-
ing: Quality solutions using genetic edge recombination, en Davis, L. (ed.) Handbook of
Genetic Algorithms, Van Nostrand Reinhold, New York, 350-372.
34