Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ANTOLOGIA
DE
BÚSQUEDA Y EXPLORACIÓN
,
HEURISTICA
2008
En cada capítulo los textos van precedidos de una presentación de sus temas. Se aspira
con ello a fijar la atención de nuestros lectores sobre algunos temas fundamentales que se
abordan para solucionar problemas de optimización y sobre los puntos más relevantes de
las técnicas tratadas.
Nos hemos esforzado por recopilar los textos de modo que, una vez extraídos de un
contexto más amplio, conserven su unidad temática y puedan ser comprendidos dentro de
sus propios límites. Pero obviamente los textos por su carácter breve tienen que ser situados
en su justa dimensión, y a esto tienden las presentaciones previas de cada capítulo. Por otra
parte hay en ellos referencias de diverso género: teórico, experimental o aplicaciones
prácticas. Es aquí donde el alumno puede explorar para aumentar sus conocimientos a fin
de que la lectura deje las menos lagunas posibles y sea, por tanto, más fructífera.
La finalidad del presente texto es, en última instancia, contribuir a que los lectores tomen
conciencia de la problemática de las cuestiones abordadas y de la necesidad de contar con
herramientas que les pennitan atacar problemas difíciles o muy dificiles que se presentan
con gran frecuencia en el ámbito de la inteligencia artificial. Nuestra antología pretende
también -en el campo que le corresponde- ayudar a los alumnos a que aprendan a distinguir
entre soluciones óptimas y soluciones de calidad que no necesariamente son óptimas pero
que en general son muy buenas si se aplican las técnicas adecuadamente.
Pág.
EL ALGORITMO DE RECOCIDO SIMULADO
Introducción 1
Recocido Simulado 3
Algunos conceptos preliminares 3
El proceso de recocido de un sólido 8
El algoritmo de recocido simulado 10
Aspectos generales del algoritmo 12
Ejemplo 1
Problema de conjunto independiente 13
Problema de conjunto independiente máximo 16
Análisis comparativo con un método exacto 18
Ejemplo 2
Problema de asignación cuadrático 19
Algoritmo de búsqueda local 24
Análisis comparativo de los dos métodos 26
Referencias 28
BÚSQUEDA TABU
Introducción 30
Búsqueda Tabú 33
Ejemplo 1
Problema de calendarización 41
Estrategia de oscilación 47
Memoria de termino intermedio y largo 48
Intensificación y diversificación 49
Criterios de aspiración 53
Ejemplo 2
Región marina 53
Solución y resultados 57
Conclusiones 58
Referencias 59
INTRODUCCIÓN
Durante muchos años se han hecho esfuerzos para resolver problemas de optimización
combinatoria, hay problemas para los que existen algoritmos rápidos y eficientes; por
ejemplo, el problema de programación lineal, flujo en redes, acoplamiento, etc. Sin
embargo, existen muchos problemas de optimización combinatoria para los que no se
conocen algoritmos eficientes que los resuelvan cuando el tamaño del problema es mediano
o de gran escala; por ejemplo, el problema del agente viajero, el problema de asignación
cuadrático, el problema de particionamiento, etc. Estos últimos problemas tienen más de 50
años de ser atacados, en la mayoría de los casos, por algoritmos desarrollados
especialmente para el problema específico y usando una diversidad de técnicas tales como
planos de corte, ramificación y acotamiento, enumeración implícita, programación
dinámica, relajación lagrangeana, etc. o combinaciones de las técnicas antes mencionadas.
Sin embargo, no se ha podido dar soluciones eficientes. También existe la necesidad de
producir métodos de aplicabilidad general y flexible para problemas de optimización
combinatoria que obtengan soluciones en un tiempo razonable.
2
de alta calidad puede requerir de mucho esfuerzo computacional. Una comparacton
importante que puede hacerse con respecto a si una técnica es general o no lo es, es la que
se presenta con respecto a la programación lineal y la programación dinámica. La
programación lineal es un modelo muy específico para solucionar problemas en donde la
función objetivo y las restricciones deben ser lineales; si el problema no cae dentro de este
esquema restringido, la programación lineal no puede aplicarse. Por otro lado, la
programación dinámica se puede usar para resolver muchos problemas de optimización y
su aplicabilidad depende de la habilidad que se tenga para definir las etapas del problema,
las ecuaciones recursivas, las variables de estado y las variables de decisión para un
problema específico. En este sentido, recocido simulado resulta ser análogo a la
programación dinámica. El uso y la calidad de sus resultados dependen del arte y la
habilidad con que se definan sus diferentes componentes como son: las evaluaciones de la
función objetivo'de la nueva solución con respecto a la anterior, la estructura de vecindades
y el programa de enfriamiento; así como también, el grado de refinamiento de la
implantación en la computadora.
RECOCIDO SIMULADO
3
Definición l. Una instancia de un problema de optimización combinatoria puede
fonnalizarse como una pareja (S,f), donde S denota el conjunto finito de todas las
soluciones posibles y f lafunción de costo, mapeo definido por
f:S-+R (1)
A la solución iopt se le llama una solución globalmente óptima y fopt = f(iopt) denota el
costo óptimo, mientras que Sopt denota el conjunto de soluciones óptimas. Un problema de
optimización combinatoria es un conjunto I de instancias.
Ejemplo l. (El Problema del Agente Viajero) Consideren ciudades y una matriz (dpg) de
orden n x n, cuyos elementos denotan la distancia entre cada par (p,q) de ciudades. Se
define un recorrido como una trayectoria cerrada que visita cada ciudad exactamente una
vez. El problema es encontrar el recorrido con longitud mínima.
En este problema, una solución está dada por una permutación cíclica
re= (rc(l), rc(2), ... , n(n)), donde rc(k) denota la ciudad a visitar después de la ciudad k, con
1
rc (k)7=k,l=l,2, ... ,n-lynn(k)=k, para toda k. Aquí n 1 (k) se entiende por la
aplicación de 1 veces la permutación n. Cada solución corresponde a un recorrido. El
espacio de soluciones está dado por
n
f(n) = Ldl,Jr (i)
i=l
4
En la Definición 1 se ha distinguido entre un problema y una instancia del problema. De
manera infonnal, una instancia está dada por los "datos de entrada" y la infonnación
suficiente para obtener una solución mientras que un problema es una colección de
instancias del mismo tipo.
(4)
que define para cada solución i E S un conjunto S¡ e S de soluciones que son "cercanas" a
i en algún sentido. El conjunto S, se llama vecindad de la solución i y cada j E S, se llama
un vecino de i. Además se supone que j E S; <=> i E S 1 .
Ejemplo 2. En el problema del agente viajero (vea Ejemplo 1) una estructura de vecindades
N k, llamada k-cambios, define para cada solución i una vecindad S; que consiste del
conjunto de soluciones que pueden obtenerse a partir de la solución i cambiando k arcos
del recorrido correspondiente a la solución i y remplazándolos por otros k arcos de tal
manera que nuevamente se obtenga un recorrido.
Si k = 2, entonces N 2 es la estructura de vecindades de 2-cambios. El 2-cambios
N 2 (p, q) puede verse como invertir el orden en el que las ciudades p y q se visitan en el
recorrido. Si el mecanismo 2-cambios N 2 (p,q) cambia una solución i en una solución¡,
entonces las permutaciones cíclicas n, y 1r1 están relacionadas de la siguiente manera. Sea
k denote el entero tal que n: (p) = q, 1 < k < n, entonces se tiene
Así,
5
¡si¡ =e= (n -l)(n- 2) para toda i. (7)
Además, cada solución j puede obtenerse a partir de cualquier solución i por n-2, 2-
cambios, es decir, para toda i, j E S existe una sucesión /0 ,11 , ••• , l n- 2 E S tal que
(8)
y re,.,, se obtiene desde n,k ,k= O, ... ,n-3, por un N 2 (p,q) cambios, donde
(9)
Comienza
INICIALIZA ( i¡nicwt)
i := ¡inicial
Repite
GENERA (j E S,)
si f(j) ::; .f(i) entonces i := j
hasta f(j):~ .f(i), para toda j E S¡
fin
6
optimalidad local.
De aquí se observa que, los algoritmos de búsqueda local terminan con un óptimo local a
menos que la estructura de vecindades sea exacta. Generalmente es dificil definir
estructuras de vecindades exactas, ya que la definición de una estructura de vecindades
exacta frecuentemente involucra hacer una búsqueda exhaustiva en todo el conjunto S .
La calidad del óptimo local obtenido por el algoritmo de búsqueda local, depende
fuertemente de la solución inicial y para muchos problemas de optimización combinatoria
no se tiene a la mano una solución inicial apropiada. Además la complejidad del problema,
en el peor de los casos, no se conoce para muchos problemas.
Entre las ventajas de usar el algoritmo de búsqueda local es que se puede aplicar de
manera general, a diferentes problemas específicos de optimización combinatoria, sin
alterar su estructura, ya que únicamente se requiere de especificar la función de costo y la
estructura de vecindades.
Algunas fonnas de relajar las desventajas del algoritmo de búsqueda local son las
siguientes:
7
• Introducir estructuras de vecindades complejas, de tal fom1a que se explore una parte
grande del conjunto de soluciones. A menudo encontrar una estructura de este tipo
reqmere de un conocimiento experto del problema de optimización combinatoria
tratado.
Esta última alternativa es la que se explora en el resto del trabajo ya que corresponde a la
filosofía del algoritmo de recocido simulado.
Pr{X = i} = -
1
-exp(-E¡
Z(T) k8 T
J, (12)
donde X es una variable aleatoria que denota el estado actual del sólido. Z(T) es una
constante de normalización llamada la función partición, que está definida como
Z(T) = Iexp(- EJ
k8 T
J, (13)
1
8
donde la sumatoria se extiende sobre todos los posibles estados y k 8 es una constante flsica
Por lo dicho anteriormente, el proceso de recocido consta de dos pasos fundamentales que
son:
• Incrementar la temperatura del baño térmico a un valor máximo.
• Decrementar cuidadosamente la temperatura del baño térmico hasta que las partículas
se reacomoden por sí mismas en un estado de mínima energía, denominado el estado
fundamental del sólido.
exp E¡ -E,·
(
J (14)
kRT '
9
Si la temperatura se baja poco a poco, el sólido puede alcanzar su equilibrio térmico en
cada temperatura. En el algoritmo de Metropolis esto se lleva a cabo generando un número
grande de transiciones para un valor dado de la temperatura.
Definición 6. Una transición es una acción combinada que transforma la solución actual en
una subsecuente. Esta acción consiste de los siguientes dos pasos: (i) aplicación del
mecanismo de generación, (ii) aplicación del criterio de aceptación.
10
Sea ek denote el valor del parámetro de control y Lk el número de transiciones generadas
en la k-ésima iteración del algoritmo de Metropolis. Entonces el algoritmo de recocido
simulado puede describirse en pseudo-código como se muestra abajo.
Comienza
INICIALIZA ( (itmcia"c 0 ,L0 )
k:= o
i : = ¡inicial
Repite
Para l := a Lk haz
Comienza
GENERA (j de S¡)
si f(j) ~ f(i) entonces i := j
sino
11
únicamente pequeñas desviaciones serán aceptadas y finalmente, cuando el valor de e se
aproxima a cero, no se aceptarán desviaciones. Este hecho significa que el algoritmo de
recocido simulado tiene la capacidad de escapar de mínimos locales.
12
éste es el camino más rápido para calcular las diferencias en el costo. La decisión de
aceptar la nueva solución se basa en un criterio de aceptación (vea Definición 5).
En general existe más de un conjunto independiente maximal para una gráfica dada.
También como se vio en los ejemplos, el número de nodos en los conjuntos independientes
maximales no es necesariamente el mismo.
aiGI = maxiii
IEQ
13
se llama el número independiente o de estabilidad de una gráfica G, y el conjunto 1 para el
que se obtiene este número se llama un conjunto independiente máximo. En la gráfica de la
Figura 1, la familia de conjuntos maximales está compuesta por:
{{1,5, 7}, {1,6}, {1,8}, {2,4,6}, {2,4,8}, {3,5}, {3,6}, {3,8}, {4,5}}
Figura l. Gráfica.
El algoritmo de recocido simulado puede usarse para atacar este problema y obtener
soluciones que no necesariamente son óptimas, pero se puede mostrar un comportamiento
muy favorable del método con respecto a instancias en las que se conoce la solución. Para
aplicar el algoritmo de recocido simulado se necesitan definir ciertos puntos que a
continuación se describen.
Para el caso del problema de conjunto independiente, se tiene que agregar adicionalmente
a la función objetivo, un costo para cuando se tengan soluciones infactibles; esto es,
subconjuntos de N que no necesariamente son conjuntos independientes. Para este
problema es apropiado particionar la familia de conjuntos de todos los subconjuntos de N
en dos subfamilias; la familia de soluciones factibles, es decir, la familia de conjuntos que
son independientes y la familia de subconjuntos que no son independientes. La
infactibilidad de algunas soluciones puede usarse ventajosamente por el algoritmo de
14
recocido simulado para evitar quedar atrapado en un conjunto independiente maximal de
menor cardinalidad a la del máximo.
(16)
donde A' denota el conjunto de arcos (u, v) E A con u, vE N' y A, denota el factor de
peso que debe ser mayor que 1 y juega el papel de penalización en el algoritmo. Las
soluciones factibles, únicamente contribuyen en el primer término de la función de
costo. Soluciones infactibles contribuyen en el segundo ténnino y por lo tanto bajan el
costo de la partición para puntos con igual cardinalidad. Así, el segundo término puede
verse corno una función de penalización que castiga la presencia de arcos entre nodos
de la partición.
(17)
15
Propósito: Obtiene un conjunto independiente maximal de la mayor cardinalidad posible
de la gráfica G( N, A) dada.
Descripción:
Paso 1: Tome e un valor grande apropiado.
Paso 2: Tome N' e {1,2, ... ,n} arbitrario.
Obtenga el valor correspondiente de la función objetivoJ(N').
Paso 3: Asigne el valor verdadero a la variable lógica CHANGE.
Paso 4: Si la variable CHANGE tiene valor falso, entonces pare.
Paso 5: Haga CHANGE igual a falso.
Paso 6: Repita los puntos 1-9 Le veces.
l. Seleccione un'número aleatorio u' E {1,2, ... ,n}.
2. Evalué el valor 8-f de la expresión (17) .
3. Si 8-f <O entonces vaya a 7.
4. Sea P(ó.J) = exp(- 8-f 1e).
5. Genere un número aleatorio x , uniformemente distribuido en (0, 1).
6. Si x :2: P(11f) entonces vaya a 9.
7. Haga N' ~N'U{u'} si u' ~N'o N' <e-N' -{u'}si u' EN'.
8. 8-f *O entonces CHANGE <e- verdadero.
9. Fin del paso 6.
Paso 7: Reduzca e e incremente r.
Paso 8: Vaya al paso 4.
Experiencia Computacional
Cabe mencionar que el tiempo de solución del algoritmo de recocido simulado es muy
variable, ya que depende en gran medida del valor inicial del parámetro de control e, del
número r de veces que se ejecuta el paso 6 (del algoritmo) y de la forma en que se reduzca
el parámetro e y se incremente el parámetro r. Para el análisis realizado aquí, se tomó un
valor inicial de e de tal manera que la tasa de aceptación de las permutaciones propuestas
16
fuera mayor o igual a 0.8 y los decrementos fueran del 0.1 (paso 7 del algoritmo). El
número r inicial que se tornó en cada caso fuer= n y los incrementos fueron de 0.05 (paso
7 del algoritmo).
15 20 30 40
10 2.05 2.64 3.20 4.48
30 50 70 90
15 2.16 3.15 4.47 5.50
40 80 120 160
20 3.22 4.83 5.69 6.96
60 120 240 350
30 3.57 5.78 6.17 7.26
80 240 320 600
40 4.24 5.89 6.69 7.94
lOO 200 400 800
5C 6.13 6.78 7.17 8.31
Num. EXACTO
!Nodos Nurn. Arcos 1 Tiernpo(seg.)
15 20 30 40
10 0.01 0.01 0.01 0.01
30 50 70 90
15 0.01 0.04 0.05 0.03
40 80 120 160
20 0.05 0.14 0.33 0.29
60 120 240 350
30 0.53 3.02 21.13 8.20
80 240 320 600
4C 2.57 336.82 125.00 4648.49
100 200 40C 800
50 ~0.18 1354.57 7326.73 -
17
Análisis Comparativo con un Método Exacto
Con el fin de hacer una comparación del algoritmo de recocido simulado con respecto a
un algoritmo exacto, se tomó un algoritmo enumerativo debido a Christofides (CHR 75] que
según estudios de Syslo [SYS83] es uno de los métodos exactos más "eficientes" con que
se cuenta en la actualidad para resolver el problema. Los tiempos obtenidos por este
algoritmo, tomando exactamente las mismas gráficas que se usaron con el algoritmo de
recocido simulado se reportan en la Tabla 2.
ALGORITMO
(eficiencia)
EXACTOREC. SIM.
n m
10 15 1.00 0.9954
20 1.00 0.9944
30 1.00 0.9256
40 1.00 0.9903
15 30 1.00 0.9830
50 1.00 0.9886
70 1.00 0.9871
90 1.00 0.9827
20 40 1.00 0.9865
80 1.00 0.9813
120 1.00 0.9818
160 1.00 0.9771
30 60 1.00 0.9892
120 l. OC 0.9867
240 1.00 0.981 o
350 1.00 0.9754
40 80 1.00 0.9834
240 1.00 0.9823
320 1.00 0.9942
600 1.00 0.9725
50100 l. OC 0.9791
200 1.00 0.9821
400 1.00 0.9802
18
z-zopt
eficiencia = 1- ~----"- (18)
2ort
Una variante importante del problema de localización clásico es cuando el costo asociado
por colocar una planta en un determinado lugar depende no únicamente de las distancias
entre plantas y de las demandas respectivas, sino también de la interacción con otras
plantas.
n n
donde n es una permutación del conjunto N= {2, ... ,n} y aik,b,k para i,k = 1,2, ... ,n, son
números reales. Equivalentemente, se desea encontrar una permutación n del conjunto N
que minimice el valor en (19).
Una forma sencilla de interpretar el problema planteado es suponer que existen n sitios
disponibles y se van ha construir n edificios en estos lugares. Sea aik la distancia entre el
sitio i y el sitio k y suponga que las cantidades bJ1 denoten el número de gentes por semana
que viajarán entre el edificio j y l. El problema es asignar los sitios de construcción de
manera que la distancia recorrida se minimice. Cada asignación puede describirse
matemáticamente como una permutación Jr del conjunto N= {1,2, ... ,n}. Mientras que el
19
producto a kb;r(t);r(k) describe la distancia semanal recorrida por la gente que viaja entre los
1
o 80 40 30
o 30 20
30 o 10
30 20 10 o
Observe que si se construye el edificio A en el sitio a, el edificio B en el sitio b, el
edificio e en el sitio e y el edificio D en el sitio d, entonces se obtendría el siguiente valor
de la función objetivo:
n n
z = LLatkbik = 137,200.
i~l k~l
n n
z = LLaikb;r(i);r(kl = 112,000.
i~l k~I
Otra interpretación del problema planteado consiste en suponer que n módulos se han
colocado en un tablero y se han conectado por medio de "alambres". Los módulos deben
colocarse de manera que la longitud total del alambre que los conecta sea mínima.
20
Denote la distancia entre las posiciones i y k en el tablero por aik • Sea b11 el número de
conexiones entre el módulo j y el módulo l. Entonces una permutación n del conjunto
N= {1,2, ... ,n} asigna una posición en el tablero a todo módulo. Sij se sitúa en la posición i
y l está situado en la posición k, el producto aikbJT(i)lT(kl es la longitud del alambre entre los
módulos j =n(i) y l = n(k). Por lo tanto la longitud total del alambrado es
n n
LLaikbJT(l)JT(kl'
l=l k=l
y el problema se reduce a
El algoritmo de recocido simulado puede usarse para atacar este problema y obtener
soluciones que no necesariamente son óptimas pero se puede mostrar un comportamiento
muy favorable del método con respecto a instancias que se conoce la solución, así como
para aquellas instancias que no se conoce la solución óptima pero se conoce una mejor
solución.
Para aplicar el algoritmo de recocido simulado se necesitan definir ciertos puntos que a
continuación se describen.
21
Como ya se ha mencionado, el espacio de soluciones consiste de todas las permutaciones
den elementos. Para cada pennutación n, se define la función de costo como
11 f1
donde !:c.f denota la diferencia en el costo entre la solución propuesta menos la solución
actual al hacer el intercambio. Si !:c.f <O, entonces Ji tiene un valor en la función objetivo
menor que 1r. Usando estas observaciones se puede establecer el algoritmo de recocido
simulado para el problema de asignación cuadrático como aparece abajo.
Experiencia Computacional
La prueba del algoritmo se llevó a cabo generando instancias del problema de asignación
cuadrático de manera aleatoria. Para la matriz A se generaron números aleatorios entre (0-
100) y para la matriz B se generaron números aleatorios entre (0-50). Para cada valor de n =
5, 6, 7, 8, 10, 12, 15, 20, 25 y 30 se generaron 100 instancias de manera aleatoria. La Tabla
4 reporta el tiempo promedio (en segundos).
22
Propósito: Obtener una permutación re que minimice el valor de la función en (19).
Descripción:
Paso 1: Tome e un valor grande apropiado.
Paso 2: Obtenga una permutación aleatoria n del conjunto {1,2, ... ,n}.
Obtenga el valor correspondiente de la función objetivo f(rc).
Paso 3: Asigne el valor verdadero a la variable lógica CHANGE.
Paso 4: Si la variable CHANGE tiene valor falso, entonces pare.
Paso 5: Haga CHANGE igual a falso.
Paso 6: Repita los puntos 1-9 r veces.
l. Tome una pennutación arbitraria de dos cambios re.
2. Evalué el valor 4! de la expresión (22)
3. Si 1'1/ <O entonces vaya a 7.
4. Sea P(1'1f) = exp(-4! 1e).
5. Genere un número aleatorio x, con distribución uniforme (O, 1).
6. Si x?: P(4f) entonces vaya a 9.
7. Acepte la nueva permutación re~ re, f(rc) ~ f(rc) + 4!.
8. Si 4! *O entonces CHANGE ~verdadero.
9. Fin del paso 6.
Paso 7: Reduzca e e incremente r.
Paso 6: Vaya al paso 4.
ALGORITMO
REC. SIM.
n tiempo (seg.)
5 1.73
6 2.25
7 2.98
8 3.79
10 6.40
12 12.73
15 15.21
20 20.04
25 28.62
30 43.65
Tabla 4.
23
Adicionalmente, paran= 5, 6, 7, 8, 12, 15, 20 y 30 se corrieron los problemas de prueba de
Nugent (vea [NUG68]). Los resultados de estas corridas aparecen en la Tabla 5.
Uno de los puntos importantes del algoritmo de recocido simulado es el hecho de que
cada que se ejecuta el Paso 6 del mismo, no solamente acepta permutaciones 1r para las
que se tenga un mejor valor objetivo, sino que también se aceptan con cierta probabilidad
permutaciones cuyo valor objetivo es más malo. Con el objeto de poder comparar los
resultados del algoritmo de recocido simulado con el algoritmo de búsqueda local
correspondiente, también se implantó este último en la computadora.
Experiencia Computacional
La prueba del algoritmo se llevó a cabo generando instancias del problema de asignación
cuadrático de manera aleatoria. Para la matriz A se generaron números aleatorios entre (0-
100) y para la matriz B se generaron números aleatorios entre (0-50). Para cada valor de de
n = 5, 6, 7, 8, 1O, 12, 15, 20 ,25 y 30 se generaron 100 instancias de manera aleatoria. La
Tabla 6 reporta el tiempo promedio (en segundos).
24
Propósito: Obtener una permutación 1r que minimice el valor de la función en (1).
Descripción:
Paso 1: Obtenga una permutación aleatoria 1r del conjunto {l,2, ... ,n}.
Obtenga el valor correspondiente de la función objetivo j(1r).
Paso 2: Asigne el valor verdadero a la variable lógica CHANGE.
Paso 3: Si la variable CHANGE tiene valor falso, entonces pare.
Paso 4: Haga CHANGE igual a falso.
Paso 5: Repita los puntos 1-6 n x (n -1) veces.
l. Tome una permutación arbitraria de dos cambios Ti.
2. Evalúe el valor !1f de la expresión (22)
3. Si !1f ¿O entonces vaya a 6.
4. Acepte la nueva permutación 1r +-Ti, j(1r) +---- .f(¡r) + !1f.
5. CHANGE +----verdadero.
6. Fin del paso 5.
Paso 6: Vaya al paso 3.
ALGORITMO
BUS. LOC.
n tiempo (seg.)
5 0.13
6 0.21
7 0.29
8 0.43
10 0.79
12 1.07
15 2.40
20 5.64
25 11.11
30 20.96
Tabla 6.
25
ALGORITMO BUSQUEDA LOCAL
Mejor Solución Valor Tiempo
n Conocida (seg.)
5 50(óptima) 50 0.11
6 86 (óptima) 86 0.22
7 148 (óptima) 148 0.28
8 214 (óptima) 214 0.33
12 578 (óptima) 592 1.32
15 1150(óptima) 1178 2.41
20 2570 2644 5.27
30 6124 6354 15.81
Cabe mencionar que el tiempo de solución del algoritmo de recocido simulado es muy
variable, ya que depende en gran medida del valor inicial del parámetro de control e, del
número r de veces que se ejecuta el paso 6 (del algoritmo) y de la forma en que se reduzca
el parámetro e y se incremente el parámetro r. Para el análisis realizado en este documento,
se tomó un valor inicial de e de tal manera que la tasa de aceptación de las permutaciones
propuestas fuera mayor o igual a 0.8 y los decrementos fueran del 0.1 (paso 7 del
algoritmo). El número r inicial que se tomó en cada caso fue r = 2 x n y los incrementos
fueron de 0.05 (paso 7 del algoritmo).
También se calculó la eficiencia de cada uno de los algoritmos por medio de la ecuación
(18).
Esta ecuación se usó para los valores den= 5, 6, 7, 8, 10 y 12. Para valores mayores ele n,
como no se puede calcular la solución óptima, la eficiencia se calculó tomando como base
el valor zrec, esto es, el valor objetivo que da el algoritmo ele recocido simulado y se usó la
ecuación equivalente:
1
1 .czencza = -
z-zre''
e,{'jo o
~--'C""-"
z rec
Los cálculos que aparecen en la Tabla 8 son con base en los promedios obtenidos en las
100 instancias resultas para cada valor de n de los valores en la función objetivo de la
solución correspondiente.
26
En la Tabla 8, puede observarse que las eficiencias del algoritmo de recocido simulado
son las más elevadas y los tiempos de ejecución del algoritmo de recocido simulado, crece
de manera razonable; incluso, para instancias pequeñas se obtienen tiempos de ejecución
más grandes que para el algoritmo heurístico. Esta situación cambia para valores de n
grandes.
Otra característica importante del algoritmo de recocido simulado es que las variaciones
en las soluciones obtenidas al resolver una misma instancia con soluciones iniciales
diferentes, es mucho menor que las variaciones en las soluciones que dan los otros dos
algoritmos, esto es, la solución del algoritmo de recocido simulado es menos dependiente
de la solución inicial proporcionada. En cambio para el algoritmo heurístico y más aún,
para el algoritmo de búsqueda local, las soluciones dependen en gran medida de la solución
con que se inicialice. Este comportamiento se puede observar en la Tabla 9 en donde se
muestran los resultados al ejecutar cada uno de los algoritmos 100 veces con soluciones
iniciales generadas de manera aleatoria para cada uno de los problemas de Nugent.
ALGORITMO
27
HEURISTICO REC. SIM. BUS. LOC.
n Mejor Media Peor Mejor Media Peor Mejor Media Peor
5 50 51.6 58 50 50.4 58 50 55.2 62
6 86 88.5 94 86 86.3 92 86 90.2 94
7 148 153.9 164 148 148.7 156 148 154.5 172
8 214 228 252 214 215.3 222 214 224.5 248
12 578 620.3 662 578 600.2 640 578 610.8 650
15 1188 1231 1294 1150 1172 1214 1150 1204 1290
20 2692 2749 2794 2570 2657 2728 2604 2680 2742
30 6488 6636 6766 6124 6333 6442 6242 6364 6496
REFERENCIAS
[AAR87] Aarts, E. y Korst, J., Boltzmann Machines and their Applications, Lecture Notes
in Computer Science 258, Springer-Verlag, 1987, pag. 34-50.
[AAR89] Aarts, E. y Korst, J., Simulated Annealing and Boltzmann Machines, Wiley,
1989.
[AH074] Aho, A.V., Hopcroft, J.E. y Ullman, J.D., The Design and Analysis ofCom¡mter
Algorithms, Addison-Wesley, 1974.
[BUR83] Burkard, R.E. y Bonniger, T. A Heuristic for Quadratic Boolean Programs with
Applications to Quadratic Assignment Problem, European Joumal of Operational Research
13, 1983, pag. 374-386.
[CHR 75] Christofides, N., Graph Theory: An Algorithmic Approach, Academic Press,
1975.
28
[GUT91] Gutiérrez Andrade, M.A., La Técnica de Recocido Simulado y sus Aplicaciones,
Tesis Doctoral, División de Estudios de Posgrado de la Facultad de Ingeniería, UNAM,
México, 1991.
[JOH89] Johnson, D.S., Aragon, C.R., McGeoch, L.A. y Schevon, C., Optimiza/ion by
Simulated Annealing: an Experimental Evaluation; Part 1, Graph Partitioning, Operations
Research 37, 1989, pag. 865-892.
[KIR83] Kirkpatrick, S., Gelatt C.D. y Vecchi, M.P., Optimization by Simulated Annealing,
Science 220, 1983, pag. 671-680.
[LAA88] Laarhoven P.J.M. van y Aarts E.H.L. Simulated Annealing: Theory and
Applications, Reidel, 1988.
(LOV88] Love, R.F., Morris, J.G., Wesolowsky, G.O., Facilities Location Models &
Methods, North-Holland, 1988.
[MIR86] Mirchandani, P.B. y Reilly, J.M., Spatial Nodes in Discrete Location Problems,
Annals of Operations Research 6, 1986, pag. 203-222.
[MIR90] Mirchandani, P.B. y Francis, R.L. editores, Discrete Location Theory, Wiley,
1990.
[SYS83] Syslo, M., Deo, N. y Kowalik, J., Discrete Optimiza/ion Algorithms with PASCAL
Programs, Prentice-Hall, 1983.
[TOD83] Toda, M., Kubo, R. y Sait6, N., Statistical Physics, Springer-Verlag, 1983.
29
BÚSQUEDA TABÚ: UN PROCEDIMIENTO
HEURÍSTICO PARA SOLUCIONAR PROBLEMAS DE
OPTIMIZACION COMBINATORIA
INTRODUCCIÓN
Los intentos por tratar con el problema de la explosión combinatoria han encontrado muchos
obstáculos. Por ejemplo, no es suficiente contar con un "conocimiento experto" para
manejarlos de manera efectiva, de igual manera no es suficiente confiar en el poder
computacional de alta velocidad de las super computadoras. Algunos problemas clásicos
donde la explosión combinatoria prevalece, muestran que un intento por generar todas las
alternativas relevantes por computadora no es una tarea factible. Así, por ejemplo, en el
problema del agente viajero, en el cual se tiene que salir de una ciudad y regresar a la misma
después de haber visitado (con costo mínimo de viaje) todas las demás ciudades, si se tienen n
ciudades en total que recorrer entonces existen (n-1)! soluciones factibles, y si una
computadora que pudiera ser programada para examinar soluciones a razón de un billón de
soluciones por segundo; la computadora terminaría su tarea, para n = 25 ciudades (que es un
problema pequeño para muchos casos prácticos) en alrededor de 19,674 años.
Al respecto Glover ( 1989) expone: "la clave para tratar con tales problemas es ir un paso
más allá de la aplicación directa de la destreza y del conocimiento del experto, y generar
recursos para un procedimiento especial (o marco) el cual monitorea y dirige el uso de esta
habilidad y conocimiento. Careciendo de tal procedimiento, las reglas expertas se pueden
empantanar, permitiendo un punto donde ninguna mejora puede percibirse, a menos de que
existan alternativas superiores."
30
Como por ejemplo el problema de asignación cuadrático, el problema de localización de
plantas, el problema del agente viajero, etc. Desde hace varias décadas han sido atacados por
algoritmos desarrollados especialmente para el problema específico y usando una diversidad
de técnicas tales como planos de corte, ramificación y acotamiento, enumeración implícita,
relajación Lagrangeana, partición de Benders, etc. o por combinaciones de las técnicas antes
mencionadas. Sin embargo, no pueden resolverse de manera exacta usando tiempo y espacio
de computadora razonable, aún cuando se tenga sólo un número moderado de variables. En la
actualidad, la investigación se ha dirigido hacia el diseño de buenas heurísticas, es decir,
algoritmos eficientes con respecto al tiempo de cómputo y al espacio de memoria, y con cierta
verosimilitud de entregar una solución "buena" esto es, relativamente cercana a la óptima
mediante el examen de sólo un pequeño subconjunto de soluciones del número total.
31
El propósito de este capítulo es presentar un algoritmo altamente eficiente en la solución de
problemas de optimización combinatoria denominado Búsqueda Tabú. Algunos elementos de
La Búsqueda Tabú son discutidos en un problema de calendarización. Otro ejemplo que se
tratará es el de "recolección de basura sólida en plataformas petroleras". La Búsqueda Tabú
(BT) es un procedimiento heurístico utilizado para resolver problemas de optimización de
gran escala, dicho procedimiento heurístico está diseñado para guiar a otros métodos (o a
procesos componentes) para escapar de la optirnalidad local. La BT ha obtenido soluciones
optimales o cercanas de la óptima en una amplia variedad de problemas clásicos.
La BT, junto con la técnica del recocido simulado y los algoritmos genéticos,.han sido
singularmente calificados ya desde hace tiempo por el Committee on Next Decade of
Operations Research (Condor ( 1988)) corno "extremadamente promisorios" para el
tratamiento futuro de aplicaciones prácticas. A últimas fechas han aparecido otras técnicas
como: el Grasp, PSO(particle swam optizacion, en español optimización por enjambre de
partículas), Scatter Search, etcétera.
En general se puede decir que la filosofía de la BT está basada en manejar y explotar una
colección de principios para resolver problemas de manera inteligente y tiene como elemento
principal el uso de memoria flexible. Desde cierto punto de vista, el uso de memoria flexible
involucra el proceso dual de crear y explotar estructuras para tomar ventaja de la "historia",
por lo que, se combinan las actividades de adquisición y mejoramiento de la información.
32
Las estructuras de memoria de la BT operan bajo cuatro dimensiones principales:
pertenencia, frecuencia, calidad e influencia. El papel de estos elementos en la creación de
procesos efectivos para resolver problemas es uno de los focos de atención de este trabajo. En
este artículo se desarrollan los elementos descritos para la elaboración de algoritmos originales
altamente eficientes para atacar problemas clásicos considerados en la literatura como
difíciles.
BÚSQUEDA TABÚ
Se desea moverse paso a paso desde una solución factible inicial de un problema de
optimización combinatoria hacia una solución que proporcione el valor mínimo de la función
objetivo C. Para esto se puede representar a cada solución por medio de un punto s (en algún
espacio, ver Figura 2) y se define una vecindad N('i) (ver Figura 2) para cada puntos como un
conjunto de soluciones adyacentes a la solución s.
El paso básico del procedimiento consiste en empezar desde un punto factibles y generar un
conjunto de soluciones en N(s), de estas se elige la mejor/ y se posiciona en este nuevo punto
ya sea que C(s) tenga o no mejor valor que C(s').
Hasta este punto se está cercano a las técnicas de mejoramiento local a excepción del hecho
de que se puede mover a una solución peor/ desdes.
33
región factible
punto estructura de
factible vecindades
movimiento tabú
34
3) en la presente iteración. La razón de ésta lista es la de excluir los movimientos que nos
pueden regresar a algún punto de una iteración anterior. Ahora bien, un movimiento
permanece corno tabú sólo durante un cierto número de iteraciones, de forma que se tiene que
T es una lista cíclica donde para cada movimiento s -+ s * el movimiento opuesto s • -+ s se
adiciona al final de T donde el movimiento más viejo en T se elimina.
Las condiciones tabú tienen la meta de prevenir ciclos e inducir la exploración de nuevas
regiones. La necesidad del significado de eliminar ciclos se debe a que, al moverse desde un
óptimo local, una elección irrestricta de movimientos (persiguiendo aquellos con evaluaciones
altas) pennite igualmente regresarse al mismo óptimo local (véase Figura 4).
Hay que apuntar, sin embargo, que la eliminación de ciclos no es la última meta en el
proceso de búsqueda. En algunos casos, una buena trayectoria de búsqueda resultará al
revisitar una solución encontrada anteriormente. El objetivo es el de continuar estimulando el
descubrimiento de nuevas soluciones de alta calidad corno se verá más adelante.
Ahora bien, las restricciones tabú no son inviolables bajo toda circunstancia. Cuando un
movimiento tabú proporciona una solución mejor que cualquier otra previamente encontrada,
su clasificación tabú puede eliminarse. La condición que permite dicha eliminación se llama
criterio de a~piración.
35
Es así como las restricciones tabú y el criterio de aspiración de la BT, juegan un papel dual
en la restricción y guía del proceso de búsqueda. Las restricciones tabú, permiten que un
movimiento sea admisible si no está clasificado como tabú, mientras que si el criterio de
aspiración se satisface, permite que un movimiento sea admisible aunque este clasificado
como tabú.
Para problemas grandes, donde las vecindades pueden tener muchos elementos, o para
problemas donde esos elementos son muy costosos para examinar, es de importancia el aislar
a un subconjunto de la vecindad, y examinar este conjunto en vez de la vecindad completa.
Esto puede realizarse en etapas, permitiendo al subconjunto de candidatos expanderse si los
niveles de aspiración no se encuentran.
El valor de movimiento por lo general proporciona una base fundamental para evaluar la
calidad de un movimiento, aunque otros criterios también son importantes como se verá más
adelante.
36
Dada la solución inicial el método realiza movimientos hasta que un tiempo de computadora
(tiempo _límite) específico transcurra. El movimiento que se realiza en cierta iteración se
encuentra revisando el valor de todos los movimientos candidatos para la solución actual. Un
movimiento se considera que es un candidato si los trabajos a intercambiarse están dentro de
una distancia específica (número de posiciones). Dado que se está minimizando, el mejor
movimiento candidato es aquel que posee el menor valor algebraico. De manera más precisa,
el mejor movimiento se selecciona del conjunto de movimientos admisibles. Un movimiento
es admisible si es no tabú o sí su status tabú puede eliminarse por medio del criterio de
aspiración. El mejor movimiento entonces se realiza y la estructura de datos tabú se actualiza.
El Esquema 1, nos presenta la forma de elección del mejor movimiento admisible, esto es,
dado un movimiento que es candidato, se elige al mejor de todos ellos considerando que si es
tabú debe de satisfacer el criterio de aspiración. En el Esquema 2, se continúa con el proceso
de búsqueda hasta que un criterio de paro se satisface; por lo general, consiste de un número
predeterminado de iteraciones.
Existen varias formas para crear las restricciones tabú, la Tabla 1 (Laguna et.al. ( 1990))
muestra una lista de posibles atributos de un intercambio de los objetos lf(i) y TC(¡) donde j > i,
y que corresponden a restricciones que pueden imponerse para prevenir movimientos inversos.
l. (lf(i), lf(j), i,J) Impide cualquier movimiento que resulte en una pennutación donde el
objeto TC(i) ocupe la posición i y el objeto TC(j) ocupe la posición).
2. (lf(i), i, TC(¡),j) Impide cualquier movimiento que resulte en una pennutación donde
cualquiera de los objetos ya sea TC(i) ocupe la posición i o el objeto lf(¡)
ocupe la posición).
3. (lf(i)) Impide a TC(i) regresarse a la posición i.
4. (TC(i), i) Impide a lf(i) regresarse a una posición k con k ~i.
37
Otra manera de identificar atributos de un movimiento de intercambio es el de introducir
información adicional, mediante no sólo hacer referencia de los elementos intercambiados,
sino también de las posiciones ocupadas por esos elementos en el momento de su cambio. Se
puede observar que las primeras restricciones van de menor a mayor en cuanto a que son
restrictivas, pero esto no se puede afirmar de manera uniforme. Ahora bien, no existe una
forma que se pueda decir que es la mejor, esto sólo se puede realizar mediante pruebas. En
ocasiones es importante asegurar que las condiciones puedan manejar los procesos de solución
de manera eficaz desde la vecindad actual.
La meta principal de las restricciones tabú es el permitir al método ir a puntos más allá de la
optimalidad local mientras se permita la realización de movimientos de alta calidad en cada
paso al mismo tiempo de que exista una negociación balanceada con respecto al esfuerzo
computacional al examinar muestras muy grandes, por lo que, en ocasiones es deseable
incrementar el porcentaje de movimientos posibles para que reciban una clasificación tabú.
Esto se puede lograr ya sea mediante el aumento en la pertenencia tabú o mediante el cambio
de la restricción tabú.
38
solución que la alcanzada hasta el momento se puede obtener, i. e., a un movimiento tabú se le
pennite ejecutarse si:
Ahora bien, otros criterios de aspiración pueden también proporcionar efectividad para
mejorar la búsqueda, como se verá más adelante. Una base para uno de esos criterios proviene
de introducir el concepto de influencia (Glover y Laguna (1993)), la cual mide el grado de
cambio inducido en la estructura de solución o de factibilidad. La influencia por lo general se
asocia con la idea de distancia del movimiento, i. e., donde un movimiento de gran distancia se
concibe como de mayor influencia.
Haga
Crear lista de candidatos {Ejecute mejor_movimiento};
Actualice condiciones de admisibilidad;
Mientras (Criterio de paro =Falso);
El método inicia con una solución heurística factible, que se guarda como la mejor
encontrada. Un paso crítico, el cual envuelve la orientación agresiva de la memoria de ténnino
corto, es la elección del mejor candidato admisible. La función mejor_movimiento es la que
identifica a un movimiento para el cual el valor del movimiento es el más pequeño. El
dominio de la función es el conjunto de todos los movimientos admisibles. El
mejor_movimiento no tiene que ser necesariamente uno que mejore. Primero, cada uno de los
movimientos de la lista de candidatos se evalúa en tumo.
39
Revisar el status tabú es el primer paso en la escena de la admisibilidad. Si el movimiento no
es tabú, es inmediatamente aceptado como admisible; de otra forma, el criterio de aspiración
da una oportunidad para eliminar el status tabú, proporcionando al movimiento una set,'Unda
oportunidad para clasificarse como admisible.
Cuando diferentes tipos de atributos se manejan de esta forma, pueden estar dados con pesos
distintos, dependiendo de su clasificación y edad, para determinar el status tabú de los
movimientos que lo contienen.
40
En muchas aplicaciones, el componente de término corto por sí mismo ha producido
soluciones superiores a aquellas encontradas mediante procedimientos alternativos, y el uso de
memoria de mayor término en esos casos se ha eludido. Ahora bien, la memoria de término
intermedio y largo puede ser importante para obtener mejores resultados para problemas
difíciles.
La memoria de ténnino intermedio y largo opera primariamente como una base de las
estrategias de intensificar y diversificar la búsqueda.
En el tiempo cero, N trabajos llegan a una máquina de capacidad ilimitada. Cada trabajo i (i
= 1, 2, ... ,N) requiere de l¡ unidades de tiempo en la máquina y tiene una penalización de retraso
por cada unidad de tiempo de p¡ a partir del tiempo cero; siJ es el costo de actualización de
calendarizar al trabajoj inmediatamente después del trabajo i. Dos trabajos falsos O y N+ 1 se
incluyen en cada calendario, donde to = fN+I = O y po = PN+I = O. Los costos s0J y Suv+ 1 se
consideran como los costos de la puesta inicial y de limpieza respectivamente. Un calendario
tiene la fonna:
donde
Se conoce que la solución óptima para este problema es 13,500 para n = (0,2, 1,4,3,5,6),
recuérdese que los trabajos O y 6 son sólo trabajos falsos y de aquí en adelante se omitirán, i.e.
se tomará por ejemplo, el calendario 7r = (2, 1,4,3,5) en lugar de 7r = (0,2, 1,4,3,5,6). En este
ejemplo se considerará el criterio 2 de la Tabla 1, i.e., (7r(i),i,7r0),J) impide cualquier
movimiento que resulte en un calendario donde cualquiera de los trabajos ya sea 7r(i) ocupe la
posición i o el trabajo 7r0) ocupe la posición}, además se tienen las siguientes condiciones:
41
Trabajo Duración Penalización Radio Orden
i {¡ t/p¡ Natural
1 3 700 .004286 n:(5)
2 4 800 .005 n:(4)
3 1 100 .01 n:(3)
4 4 300 .0133 n:(2)
5 5 200 .025 n:(J)
En este ejemplo las vecindades completas se examinan, es decir, se realizan las evaluaciones
completas de los cambios de los pares hacia adelante a una distancia de uno. Entonces el
mejor cambio se realiza, en este caso el que dé el valor mínimo en la función objetivo y no sea
42
movimiento tabú o en el caso de que sea movimiento tabú, para que sea admisible debe de
satisfacer el criterio de aspiración. Para este caso el criterio de aspiración se cumple si el valor
de la función objetivo mejora sobre todos los valores anteriormente encontrados.
La matriz tabú se construye al inicio del procedimiento, donde las filas de la matriz
representan las posiciones y las columnas a los trabajos y se actualiza en cada iteración
durante la fase de mejoramiento del algoritmo. Si un elemento (i,j) pertenece a esta matriz en
una iteración dada, no se le permite realizar el cambio del trabajo i a la posiciónj. Recuérdese
que es posible vencer la restricción tabú en el caso de que se satisfaga el criterio de aspiración.
26 K
22 K
20 K
lx K
16 l\
?
Val le profundo. Optimo
J.) l\ Opt1rno' Locales. 1..\ ¡..;
Global
Figura 6. Representación gráfica de todos los posibles valores de la función objetivo del
ejemplo.
43
Matriz Tabú Matriz de
Frecuencias
000007 00010
000070 00001
000000 00000
000000 00000
000000 00000
Observe que existen dos movimientos admisibles que nos proporcionan los mejores valores
de la función objetivo, por lo que, se puede escoger cualquiera de los dos, en este caso se elige
el primero i. e., el movimiento que nos proporciona el calendario Jr=(4, 5, 3, 2, 1) como punto
inicial para la siguiente iteración.
Matriz Matriz de
Tabú Frecuencias
00006 00010
00067 00101
00700 00001
00000 00000
00000 00000
44
Matriz Matriz de
Tabú Frecuencias
00005 00010
00056 oo 1 o 1
00607 o 1 oo 1
07000 00001
00000 00000
En este caso, observe que el movimiento que nos proporciona el calendario 1f=(4,3,2,5, 1) es
el movimiento que toma el valor objetivo más pequeño en la vecindad por lo que, se toma
como punto inicial para la siguiente iteración.
Matriz Matriz de
Tabú Frecuencias
00004 00010
00045 oo 1 o 1
00506 o 1 oo 1
06007 1 ooo 1
70000 00001
45
Matriz Matriz de
Tabú Frecuencias
00003 00010
00034 00101
07405 1 1 oo 1
75006 1 1 oo 1
60000 00001
Note que en esta iteración los movimientos que proporcionan los calendarios JC=(4,2,3, 1,5) y
7[=(4,3,1,2,5) son movimientos tabú pero ambos satisfacen el criterio de aspiración por lo que
se toma como punto inicial para la siguiente iteración el calendario con valor más pequeño en
la vecindad.
Matriz Matriz de
Tabú Frecuencias
00002 00010
00723 1 o1 o 1
76304 1 1 1 o1
64005 1 1 oo 1
50000 00001
46
Iteración TC F(rc) Tabú=1 Mejor
Admisible
10 (2, 1,4,3,5) 13500 ***
11 (1,2,4,3,5) 14100 1
(2,4, 1,3,5) 15500 1
(2,1,3,4,5) 14000 1
(2, 1,4,5,3) 14700 *
Matriz Matriz de
Tabú Frecuencias
60030 1 1 o1 o
36250 21111
25400 12 1 1 1
14700 1 1 1 o2
00007 00101
Como se conoce de antemano la solución óptima del problema, se observa que esta se
presenta en la iteración 1O y se señala por un triple asterisco. En general, si en alguna iteración
ya no existen puntos admisibles y no se ha satisfecho el criterio de paro, se tendría que utilizar
las funciones de memoria de término intermedio (intensificación) y de término largo
(diversificación), que se verán en la siguiente sección, para continuar con la búsqueda.
Una aproximación que está unida a los orígenes de la BT y que proporciona un interjuego
efectivo entre la intensificación y la diversificación es la estrategia de oscilación.
Estrategia de Oscilación
47
definición de vecindad se extiende o el criterio de evaluación para seleccionar movimientos se
modifica, para permitir que se pueda cruzar esa frontera. La aproximación entonces procede
para una profundidad específica más allá de la frontera y entonces se regresa. En este punto la
frontera de nuevo se aproxima y se cruza, esta vez desde la dirección opuesta, procediendo a
un nuevo punto en tumo. El proceso de aproximar y cruzar repetidamente la frontera desde
diferentes direcciones crea una forma de oscilación que es la que le da el nombre a la
estrategia. El control sobre esta oscilación se establece mediante el generar evaluaciones y
reglas de movimientos modificadas, dependiendo de la región en la cual se está actualmente
navegando y de la dirección de la búsqueda.
48
función de memoria de término largo, emplea principios que son inversos a los de la
función de término intermedio. La memoria de término largo se utiliza para producir un punto
inicial de búsqueda en una nueva región, mediante el penalizar las características que la
memoria de término intermedio encuentra que prevalecen en la región actual de búsqueda.
Intensificación y Diversificación
La fase de intensificación proporciona una forma simple para enfocar la búsqueda alrededor
de la mejor solución (o conjunto de soluciones élites) hasta el momento.
Para entender la importancia de estos recursos de la BT, consideraremos dos corridas del
ejemplo numérico considerado en la sección anterior pero variando los valores de algunos de
los parámetros iniciales.
Corrida 1
Como se puede observar, en la iteración 3 se llegó a un óptimo local, el cual está dado por el
calendario lf=(3,2,1,4,5) con un valor objetivo de 14900, y en la iteración 4 también se llega a
49
otro óptimo local dado por el calendario n=(l,2,3,4,5) con igual valor objetivo, pero en éste
último caso se tiene que el punto es tabú y además no se tienen soluciones admisibles. Se
puede entonces pensar en escoger a éste último óptimo local para intensificar la búsqueda
dentro de la región por lo que se toma como punto de arranque y se inicializa la tabla tabú para
continuar la búsqueda, pero se observa que en la iteración 1O se cae en un ciclo, y no existe
mejoramiento por lo que se puede considerar que se está en un valle profundo.
Ahora bien, en este ejemplo la búsqueda pudo estar muy restringida debido al valor de la
longitud tabú que es muy alto, por lo que se realizó una segunda corrida:
Corrida 2
Las dos corridas anteriores indican la necesidad de contar con elementos que nos pennitan
salir de este tipo de entrampamientos suboptimales, por lo que se debe de recurrir a un análisis
50
retrospectivo del proceso de búsqueda que nos pueda proporcionar un reconocimiento de
patrones de comportamiento para poder identificar regiones no visitadas.
2 o 3 o 2
o 4 o 3 o
4 o 4 o 5
o 3 o 4 o
2 o 2 o 2
Una forma de "aprender" qué regiones no se han visitado, es el observar la frecuencia con la
cual un cierto trabajo no se ha seleccionado para una posición particular, así por ejemplo, se
tiene que el trabajo 1 no se ha localizado en las posiciones 2 y 4, que el trabajo 3 se ha
localizado más frecuentemente en la posición 3 de los calendarios, etcétera.
51
Iteración ][ F(n) Tabú=l Mejor
Admisible
o (2,3,5,1,4) 18500 *
1 (2, 1,5,3,4) 16300 *
(5,3,2,1,4) 23100
(2,3,4,1,5) 17300
2 (5,1,2,3,4) 23400
(2,3,5,1,4) 18500 1
(2, 1,4,3,5) 13500 *
Una implantación sencilla de tal técnica se puede realizar de la siguiente manera: Primero, se
cuenta el número de veces que cada movimiento digamos m se ha realizado en orden a
calcular su frecuenciaf(m). Entonces una penalización p(m) se asocia a cada movimiento de la
siguiente manera:
52
si m alcanza un criterio de aspiraci n
p(m)={ O
w.f(m) de otra forma
El peso w depende del problema, del tipo de movimiento y de la vecindad. Como se puede
observar, la función de penalización depende directamente del criterio de aspiración, por lo
que ahora nos enfocaremos a este concepto.
Criterios de Aspiración
Siguiendo a Glover y Laguna (1993), las aspiraciones son de dos clases: a.'!piraciones de
movimiento y aspiraciones de atributo. Una aspiración de movimiento, cuando se satisface,
revoca la clasificación tabú del movimiento. Una aspiración de atributo, cuando se satisface
revoca el status tabú del atributo. En éste último caso el movimiento puede o no cambiar su
clasificación tabú, dependiendo de sí la restricción tabú puede activarse por más de un
atributo. Así entonces se pueden tener los siguientes criterios de aspiración:
Aspiración por Default: Si todos los movimientos posibles son clasificados como
tabú, entonces el movimiento "menos tabú" se selecciona.
EJEMPL02
53
Toda esta producción se lleva a cabo mediante una importante infraestructura que en lo
particular consideramos obsoleta y peligrosa en nuestros días, aunque el estudio se realizó
hace varios años. Toda esta infraestructura marina y submarina formada principalmente por
las plantas de producción, perforación, medición, rebombeo e inyección, así como de una
gran red de duetos submarinos para la conducción de hidrocarburos.
La actividad en las plataformas marinas se realiza durante las 24 hrs. del día de los 365
días del año, generándose una gran cantidad de desechos industriales, y domésticos,
clasificándose éstos en biodegradables (restos de alimentos) y no biodegradables (chatarra,
plásticos, madera, etc.).
Para el tratamiento de estos desechos se cuenta con equipos anticontaminantes abordo de
las plataformas como son: trituradores de alimentos, compactadores e incineradores de
1
basura •
Solamente los restos de alimentos son vertidos al mar después de ser triturados y el
volumen de desechos restante se enviaba a la terminal marítima de Dos Bocas, Tabasco,
contando para ello con el apoyo de barcos abastecedores de gran capacidad. Cabe
mencionar que no eran barcos de PEMEX sino que se alquilaban y si no era muy "legal" el
capitán en la ruta nos costaba a los mexicanos varios millones de pesos.
o
LITORAL •
C.-\i'>lPECHI:
n:cn
~07_,
CD. D"F:L
54
Objetivo
Información
Por motivos de "seguridad nacional", muchos datos son ficticios pero se ha tratado de que
sean congruentes entre sí para que proporcionen una idea de la magnitud del problema real,
el resto de la información ha sido obtenida de las diversas publicaciones de PEMEX.
De acuerdo con las actividades que se realizan, los complejos de producción generan en
ese entonces en promedio 440 toneladas de desechos sólidos por mes, que representaban el
70% del total de desechos generados en el área marina. La recolección de chatarra y
desechos sólidos en cada complejo de producción se llevaba a cabo dos veces al mes, por
un barco dedicado exclusivamente a esa actividad. Para cumplir con las normas
internacionales, la capacidad de recolección debería ser 1.1 veces el volumen de desechos
generados, por lo que los barcos recolectores de deberían contar con una capacidad de 250
tonelada. Como nonna mínima (se podrían contratar barcos mucho mayores y con precios
mayores).
Las distancias entre las plataformas y los centros de acopio se muestran en las Tablas 2.2
y 2.3.
1 2 3 4 5 6 7 8 9 10 11
1 o 89.04 78.78 78.37 81.07 79.59 79.57 84.33 87.90 103.2 166.9
2 89.04 o 51.50 56.35 59.00 61.50 80.40 78.80 78.25 78.15 150.3
3 78.78 51.50 o 5.60 8.50 10.80 29.90 28.23 28.00 31.90 104.7
4 78.37 56.35 5.60 o 3.80 5.40 24.60 22.80 23.00 28.90 101.4
5 81.07 59.00 8.50 3.80 o 2.50 21.80 19.60 19.10 25.11 98.30
6 79.59 61.50 10.80 5.40 2.50 o 19.60 17.70 17.60 25.30 96.70
7 79.57 80.40 29.90 24.60 21.80 19.60 o 4.60 9.40 25.80 86.50
8 84.33 78.80 28.23 22.80 19.60 17.70 4.60 o 4.80 21.10 83.80
9 87.90 78.25 28.00 23.00 19.10 17.60 9.40 4.80 o 16.10 81.10
10 103.2 78.15 31.90 28.90 25.11 25.30 25.80 21.10 16.10 o 73.40
11 166.9 150.3 104.7 101.4 98.30 96.70 86.50 83.80 81.10 73.40 o
Tabla 2.1. Distancias de las plataformas a Cd. del Carmen(Kms.)l: Cd. del Cannen,
Rebombeo,3: POL-A ,4:ABKATUN-N, 5: ABKATUN-D ,6: ABKATUN-A, 7:
NOHOCH-A, 8: AKAL-C, 9: AKAL-J, 10: KU-A, 11: Cayo Arcas.
55
1 2 3 4 5 6 7 8 9 10 11
o 70.60 120.0 125.2 130.0 133.1 149.0 148.0 148.1 148.7 227.1
70.60 o 51.50 56.35 59.00 61.50 80.40 78.80 78.25 78.15 150.3
120.0 51.50 o 5.60 8.50 10.80 29.90 28.23 28.00 31.90 104.7
125.2 56.35 5.60 o 3.80 5.40 24.60 22.80 23.00 28.90 101.4
130.0 59.00 8.50 3.80 o 2.50 21.80 19.60 19.10 25.11 98.30
133.1 61.50 10.80 5.40 2.50 o 19.60 17.70 17.60 25.30 96.70
149.0 80.40 29.90 24.60 21.80 19.60 o 4.60 9.40 25.80 86.50
148.0 78.80 28.23 22.80 19.60 17.70 4.60 o 4.80 21.10 83.80
148.1 78.25 28.00 23.00 19.10 17.60 9.40 4.80 o 16.10 81.10
148.7 78.15 31.90 28.90 25.11 25.30 25.80 21.10 16.10 o 73.40
96.70 150.3 104.7 101.4 98.30 96.70 86.50 83.80 81.10 73.40 o
Tabla 2.3. Distancias de las plataformas a Dos Bocas(Kms.).l: Dos Bocas, 2: Rebombeo,
3: POL-A, 4: ABKATUN-N, 5: ABKATUN-D6: ABKATUN-A, 7: NOHOCH-A, 8:
AKAL-C, 9: AKAL-J, 10: KU-A, 11: Cayo Arcas.
~-
!!
lJ-
o
11
1
1
1
,--
!.a.
1
' '
• 1'
1
1
'
1
'
1
- - - - - - ,- - ~- - - - - - -· - - ·- - - - - - -· . - - - r - - - - - - - .. - "'"'
'
'
.1,¡ L !
-·
MI ,M 1
~J.¡
1
1
1
1
1
- - - - --- ·--- _...-- - r - - - -
DOSBOC.1$
56
Solución y Resultados del Ejemplo
Lo que se desea es conocer las rutas óptimas (trayectorias de costo mínimo, véase Figura
9), por lo que se plantearon dos problemas del agente viajero en la forma (P 1) descrito
anteriormente y se resolvieron usando la técnica de la búsqueda tabú con longitud tabú
igual a 5 y una estructura de vecindades formada por las permutaciones hacia adelante de al
menos una posición, se utilizó una PC386 sin coprocesador así como un paquete comercial
donde se corrieron los métodos de ramificación y acotamiento (branch and bound (B.B)) y
de la ruta del ángulo mayor (greatest angle tour (G.A.T.)), encontrándose los resultados
dados en la Tabla 2.4.
Cabe observar que el número de iteraciones utilizadas por la B.T. para encontrar los
valores óptimos globales fueron de 4 para el problema de Cd. del Carmen y de 9 para el
problema de Dos Bocas, además para el problema de Cd. del Carmen el método de la ruta
del ángulo mayor fue del 97.7% de eficiencia respecto a la solución óptima global.
------------
DOS~
-·----
'
57
Conclusiones del Problema Ejemplo.
Como se puede observar, si se saliera de Cd. del Cam1en se tendría un ahono al ailo de
$54279.75, pero esta diferencia no justificaría la construcción de un centro de acopio en
Cd. del Cannen en el corto plazo puesto que, este tipo de obra requiere cumplir con
condiciones específicas establecidas por la nonnatividad nacional e intemacional en
materia ambiental, por tanto, se deberá seguir utilizando la tenninal marítima de Dos Bocas
como centro de acopio, pero aplicando la ruta óptima encontrad y se deben realizar más
estudios en beneficio de México.
***Los autores desean agradecer muy en especial en especial al lng. Alejandro González
Silva así como a la A.M.I.M.E. Cd. del Carmen, y a los Ingenieros: Flores Kaufrnan J.,
Lara Vences L.M., Peralta Rodríguez J.M., Olvera Sánchez F. y Bemal González E., por su
apoyo proporcionado sin el cual no hubiera sido posible el presente ejemplo.
CONCLUSIONES
En este capítulo se enfocó la atención al análisis de la técnica de la BT, observando que esta
técnica es aplicable a todo tipo de problemas de programación combinatoria.
58
Las adaptaciones del método de BT son muy variadas y aún con las estructuras más sencillas
del mismo se pueden obtener "buenas soluciones".
REFERENCIAS
Committee on the Next Decade of Operations Research (Condor 1988), Operations Reseach:
The Next Decade. Ops. Res., 36 pp. 1-15.
de los Cobos Silva S. (1994), La Técnica de la Búsqueda Tabú y sus Aplicaciones, Tesis de
Doctorado, Posgrado de Ingeniería, UNAM, México.
Glover F. (1989), Tabu Search, Part !, ORSA Joumal on Computing, 1:3, pp. 190-206.
Glover F. (1990a), Tabu Search, Partll, ORSA Joumal on Computing, 2:1, pp. 4-31.
Glover F. and Laguna M. (1993), Tabu Search, Modern Heuristic Techniques fór
Combinatoria! Problems, Colín R. Reeves(Ed.), Blackwell Scientific Publications, Oxtord,
pp. 70-150.
Laguna M., Bames J. W. and Glover F. (1990), Tabu Search.for a Single Machine Scheduling
Problem, Technical report Guly), Advanced Knowledge Systems Group of U S, West
Advanced Technologies.
59
OPTIMIZACIÓN POR ENJAMBRE DE PARTÍCULAS
INTRODUCCIÓN
PSO es un método adaptativo que utiliza agentes o partículas los cuales se mueven a
través del espacio de búsqueda (véase Figuras 1-4.) utilizando los principios de:
Evaluación, Comparación e Imitación.
60
+Evaluación: La tendencia al estímulo de evaluar, es la principal característica de los
organismos vivos. El aprendizaje no ocurre a menos que el organismo pueda evaluar, puede
distinguir características del medio ambiente que atraen o características que repelen. Desde
este punto de vista, el aprendizaje puede definirse como un cambio que posibilita al
organismo mejorar la evaluación promedio de su medio ambiente.
+Comparación: Los estándares del comportamiento social se realizan mediante la
comparación con otros.
+Imitación: Lorenz asegura que sólo los seres humanos y algunas aves son capaces de
imitar. La imitación es central para la adquisición y mantenimiento de las habilidades
mentales. Para mayor detalle se puede consultarse [5].
Para resolver problemas, se propone el utilizar PSO con un manejo dinámico de las
partículas, lo que permite el romper ciclos y diversificar la búsqueda. Para resolver este
problema se considerará que una partícula-solución está dada de la forma:
P = (p(l ), P(2), ... ,p(n)) donde PG)EO, j=l,2, ... ,n,
entonces definimos un movimiento de la forma:
Pt+l = Pt + Vt+!,
donde:
Q: Espacio factible de soluciones
Vt+J=a{Vt+ rand(O,<pl)[ f3'(j,t)- p(j,t)]+ rand(O,<p2)[ W(g,t)- p(j,t)]+}
V1 : Velocidad en el tiempo t,
V1+1 : Velocidad en el tiempo t+ 1,
p(j,t) : Partículaj-ésima generada en el tiempo t,
W(g,t) : Partícula con el mejor valor de todas en el tiempo t,
W(j,t): Partículaj-ésima con el mejor valor hasta el tiempo t,
rand(O,<p): Valor aleatorio de distribución uniforme en el intervalo [O,<p],
a : Parámetro de escala, donde <p=<p 1+<p2 > 4.
o o
o o o
o o
o
o o o o
o o
o o o
o o
o
o
o
Figura 1. Enjambre (subconjunto de puntos en el conjunto factible)
61
p~
o
o o o
o o
o
o o o o
o o Xi
o o o
o o
o
o o
Figura 2. P g: Mejor posición global, ><i: Posición de la i-ésima patírula.
PgQ
o
o o o
o o
o
o o o o
o 0 Xi
~
o o
o o
o Vi
o o
Figura 3. En el tiempo (iterooón) T, 'v1: Velocidad del a i-ésima patírula.
62
PgQ .... ... ... o
0- ........ ? o
... ~?~Regreso a~n
o
o 'a...... o
o
o :\ ... ... ,.. ... ... ~
""O;xi
o o o ~tació:)~
o
inercia Vi
o
o
Figura 4. Ejemplo gráfico ele la "comunicación" intEf-intra partíOJias del enjambre.
Para resolver problemas, se propone el utilizar PSO con un manejo dinámico de las
partículas, lo que permite el romper ciclos y diversificar la búsqueda. Para resolver este
problema se considerará que una partícula-solución está dada de la forma:
~ = (~(1), ~(2), ... ,~(n)) donde ~G)E[l, 2~*j +l],j=1,2, ... ,n,
~t+I = ~~ + Vt+"
donde:
Vt+ 1=a{V1+ rand(O,<p 1)[ p>(j,t)- ~(j,t)]+ rand(O,<p2)[ P'(g,t)-l)(j,t)]+}
V1 : Velocidad en el tiempo t,
Vt+t: Velocidad en el tiempo t+l,
~(j,t): Partículaj-ésirna generada en el tiempo t,
p>(g,t) : Partícula con el mejor valor de todas en el tiempo t,
13 '(j,t) : Partícula j-ésirna con el mejor valor hasta el tiempo t,
rand(O,<p ): Valor aleatorio de distribución uniforme en el intervalo [O,<p ],
a : Parámetro de escala,
63
donde <p=<p 1+<p2 > 4.
Los costos que intervienen en el modelo son de: ordenación, adquisición e inventario. Un
costo fijo K se carga cada vez que se realiza una orden. Un costo por línea ki. se produce
cada vez que se carga el artículo j en la orden correspondiente. El costo debido al inventario
se carga sobre el inventario promedio durante un ciclo y está dado por:
CP = Yí (l:j h¡ d¡· t¡) donde: hi, d¡ y ti son el inventario promedio, la demanda promedio y
el tiempo del ciclo del artículo j respectivamente. De lo anterior se tiene que el costo total
por unidad de tiempo es:
64
Resultados Computacionales
Cabe señalar que no existe adaptación reportada hasta el momento de la técnica PSO al
problema de inventarios multiproducto. Esta adaptación probó su robustez para encontrar
buenas soluciones al compararse contra algoritmos eficientes reportados en la literatura, en
particular se compararon los siguientes:
KyR: [c.f. 4], BT:[c.f. 2,6], PSO: algoritmo propuesto.
Para probar el algoritmo propuesto se corrieron para cada instancia los tres algoritmos. Se
generaron 100 instancias aleatorias para cada una de los tamaños n = 5, 10, 15, 20, 25 y 30,
con los siguientes rangos de las variables:
Se puede observar de la tabla que las eficiencias del algoritmo PSO son bastante buenas,
con respecto al número de iteraciones que se realizaron fueron de 2n donde n es el número
de artículos considerados. Cabe señalar que en [4] compararon la efectividad de varios
algoritmos generando 132000 ejemplos y cubriendo 132 clases diferentes. En la Tabla 1 se
presenta un ejemplo tomado de [4] donde se reportan los mejores resultados encontrados
por los diferentes métodos.
En este trabajo se enfocó la atención al análisis de la técnica de PSO, observando que esta
técnica es aplicable a todo tipo de optimización en especial a problemas de programación
combinatoria.
65
Se propuso de manera original un algoritmo de solución para el problema de inventarios
multiproducto con demanda determinística mediante el esquema de PSO descubriendo
buenas soluciones, aunque como se puede observar de la Tabla 1, PSO no proporciona el
mejor resultado, se tiene que la codificación de PSO es mucho más sencilla y el tiempo de
ejecución es mucho más rápido. Cabe mencionar que hay que realizar más investigación
sobre la cantidad de partículas a utilizarse así como el de llevar un control sobre las
vecindades de búsqueda y los demás parámetros de PSO.
1
El presente capítulo fue presentado parcialmente en los diversos eventos y con la
colaboración de: Dr. Federico González Santoyo (UMSNH), la Dra. Blanca Rosa Pérez
Salvador (UAM-1) y del Dr. Javier Trejas Z. y el Dr. Mario Villalobos de la Universidad
de Costa Rica.
Introducción
66
Regresión No Lineal
Dadas dos variables x y y observadas sobren objetos, donde x es una variable explicativa
y y es una variable a explicar que depende de x, se quiere describir la relación de
dependencia de y respecto a x mediante una función f; es decir, se quiere establecer la
relación funcional y = f(x) +e, donde & es un ténnino de error {en este trabajo no
supondremos que & sigue alguna distribución en particular}. La función f depende
generalmente de ciertos parámetros, cuyo vector denotaremos e por lo que escribiremos a
la función de regresión./{9).
Se quiere minimizar el criterio de mínimos cuadrados, el cuál mide la calidad de la
aproximación funcional propuesta:
2
S(9) = llY -f(xJII = Li=I n [y¡- i{a¡(x¡)f
donde x = (x~, ... ,xn)t y y = (y 1, ••• ,y0 )t son los vectores de las observaciones de las variables, y
11 • 11 es la norma Euclídea usual.
Salvo cuando f{o¡ es una función lineal, se conoce una solución general a este problema.
Debe notarse que en algunos casos la función ./{o¡ no es en sí lineal pero el problema de
regresión se puede linea/izarse. Por ejemplo, el modelo y = e1 e{ 2 x + s) es linealizable
aplicando logaritmo natural, obteniéndose y'= e3 + e2 X+ E: donde: y'= ln y y e3 = ln e l.
Sin embargo, el modelo y = e 1 e{ 02 x} + & no es linealizable mediante la función
logaritmo, ya que el error & es aditivo.
En este trabajo no nos ocuparemos de los modelos que son linealizables, ya que éstos se
resuelven fácilmente mediante la regresión lineal clásica.
Ejemplo didáctico
y=8le-o2x
67
La figura 1 muestra las curvas de nivel del criterio S(O) para este conjunto de datos, y se
puede apreciar la presencia de dos mínimos locales de S(O) uno al frente y otro al fondo de
la figura l.
--
-.
1
~~
1
o
1
-0.2
Resultados comparativos
Conclusiones ejemplo:
68
%Funciones usadas: función, tl,
clear all
Beta1 =rand(np,n);
for i=1:np;
for j=l :n;
íf (round(Betal (í,j))*2*(Data(i,4)+ 1)>=2*(Data(í,4)+ 1));
Betal (í,j)=(round(Betal (i,j))*2*(Data(i,4)+ 1)-1 );
elseíf (round(Betal(í,j))*2*(Data(i,4)+ 1)<=O;
Betal(i,j)=l;
el se
Betal(í,j)=(round(Betal (i,j))*2*(Data(í,4)+ 1));
end
end
end
Beta1 (1 ,:)= 1;
for j=l :n;
Betal (2,j)=2*(Data(i,4)+ 1);
end
Beta1(np,:)=O;
69
mejBeta(l :np,l :n)=Betal(l :np, 1:n);
[tll fll]=funcion(Datos,mejBeta(l,:));
[t12 fl2]=funcion(Datos,mejBeta(2,:));
iffll <fl2,
mejBeta(np+ l,:)=mejBeta(l,:);
else mejBeta(np+ 1,:)=mejBeta(2,:);
end
for i=3:np,
[tll fll]=funcion(Datos,mejBeta(i,:));
[tl2 fl2]=funcion(Datos,mejBeta(np+ 1,:));
if fll <fl2,
mejBeta(np+ l,:)=mejBeta(i,:);
end
end
~o---------------------------------------------------------------------
num=l;
while num<iter,
70
[tll fl1]=funcion(Datos,Beta1(i,:));
[t12 fl2]=funcion(Datos,Beta2(i,: ));
iffl1>fl2,
Beta 1(i,: )=Beta2(i,: );
end
end
[t11 fll]=funcion(Datos,mejBeta(l,:));
[t 12 fl2]=funcion(Datos,mejBeta(2,:) );
iffl1 <fl2,
mejBeta(np+ 1,:)=mejBeta(l,:);
else mejBeta(np+ 1,:)=mejBeta(2,:);
end
for i=3:np,
[tll fll]=funcion(Datos,mejBeta(i,:));
[tl2 fl2]=funcion(Datos,mejBeta(np+ 1,:));
iffll <fl2,
mejBeta(np+ 1,:)=mejBeta(i,:);
end
end
num=num+l
end
mejBeta
REFERENCIAS
Antoniadis, A.; Berruyer, J.; Carmona, R. (1992) Régression Non Linéaire et Applications.
Economica, Paris.
Bates, D.M.; Watts, D.G. (1988) Nonlinear Regression Analysis and its Applications.John
Wiley \& Sons, New York.
71
de-los-Cobos-Silva S.; Pérez Salvador B.R.; Gutiérrez Andrade M. A.; Ordorica Mellado
M. (1997) "Búsqueda Tabú: Metaprocedimiento de Mejora para el Problema de Inventarios
Multiproducto", Memorias del X Simposio Internacional de Métodos Matemáticos
Aplicados a Las Ciencias} Liberia, Costa Rica. W. Castillo y J. Trejos (Eds.), pp: 97-106.
Draper, N.R.; Smith, H. (1968) Applied Regression Analysis. John Wiley \& Sons, New
York.
Kennedy, J.: Eberhart, R.C. (2000) "Intelligent Swarm Systems". Academic Press, New
York.
Kaspi M. and Rodenblatt M.J. (1985) "The Effectiveness of Heuristic Algoritlun for Multi-
Item Inventory Systems with Joint Replenishment Costs" Intemational Joumal of
Production Research 23, pp. 109-116.
Kennedy, J.: Eberhart, R.C.; Shi Y. (2001) "Swarm Intelligence". Margan Kaufmann.
Marquardt, D.W. (1963) "An algorithm for least squares estimation of nonlinear
parameters", Joumal ofthe Society for Industrial and Applied Mathematics 2: 431-441.
Tomassone, R.; Audrain, S.; Lesquoy, E.; Millier, C. (1992) La Régression. Des Nouveaux
Regards sur une Ancienne Méthode Statistique. Masson, París.
Trejos, J.; Murillo, A.; Piza, E. (1998) "Global stochastic optimization for partitioning",
In: A. Rizzi et al. (Eds.) Advances un Data Science and Classification, Springer-Verlag,
Berlin.
72
Trejos-Zelaya, J.; de-los-Cobos, S. S.; Villalobos, M. (2001) "Aplicación de la Búsqueda
Tabú en Regresión No Lineal" t VIII Congreso Latinoamericano de Probabilidades y
Estadística Matemática, 12-16 de noviembre, La Habana, Cuba.
Trejos, J.; Goddard, J.; Piza, E.; de-los-Cobos, S. S.(2002) " Clasificación de Datos
Numéricos Mediante Optimización por Enjambre de Partículas". 5th. International
Conference of Operations Research, March 4-8, Havana, Cuba.
73
ALGORITMOS GENÉTICOS Y PROGRAMACIÓN
EVOLUTIVA
INTRODUCCION
Los algoritmos genéticos hacen énfasis a la evolución genética mientras que los
programas evolutivos a la evolución de la conducta o comportamiento. La respuesta sobre
cuál algoritmo es el mejor para ser aplicado depende del problema a resolver [ 1].
l. Que todos ellos se basan en una población inicial, misma que representa a un conjunto de
soluciones potenciales a un problema.
2. Que existe comunicación e intercambio de información entre los individuos de la
población; ésta es el resultado de los operadores de búsqueda aplicados a los individuos. A
estos operadores de búsqueda se les conoce como operadores genéticos [ 1].
74
en los cromosomas de la especie. Por ejemplo, en el reino animal, hay especies cuyo color
de piel ha ido evolucionando con el tiempo de tal fonna que se mimetizan en el medio
ambiente en el que viven y pasan desapercibidos a otras especies que podrían devorarlos, o
crean nuevos mecanismos de defensa para su supervivencia [3].
La importancia de estas técnicas radica en que existen una serie de problemas interesantes
para los cuales los algoritmos tradicionales no representan soluciones factibles; muchos son
problemas de optimización y métodos como los algoritmos genéticos o la programación
evolutiva han sido aplicados dando buenos resultados [4].
Existen problemas típicos de optimización que se pueden abordar desde esta perspectiva;
algunos de ellos se mencionan a continuación:
El problema del agente viajero, el cual consiste en dadas N ciudades que tiene que visitar
un vendedor, encontrar el camino más corto para, partiendo de una de ellas, visitarlas todas
sin pasar más de una vez por cada una y volviendo finalmente a la ciudad de partida. La
complejidad radica en la gran cantidad de posibles caminos, muchos de ellos de longitud
similar. Para N ciudades, el número de rutas alternativas es de N!/2N.
75
ALGORITMOS GENÉTICOS
Otro ejemplo es la búsqueda Random, estrategia que explora todo el espacio de búsqueda,
ignorando explotar solo aquellas regiones en el espacio que tienden a ser buenas candidatas
a la solución buscada [3].
76
solución óptima al problema. Esto no es sencillo de definir, una aproximación consiste en
determinar un número máximo de generaciones de acuerdo a una ardua tarea de
experimentación o detener el algoritmo cuando la población se haya estabilizado, es decir,
cuando todos o la mayoría de los individuos tengan la misma aptitud (fitness). Hablando en
términos de problemas de optimización, la población se estabiliza cuando ya no se pueda
minimizar más la función objetivo que se persigue.
El fitness es una función de evaluación definida sobre los cromosomas que indica la
aptitud de cada uno, es decir, qué tan bueno es cada cromosoma como solución al
problema. En adelante se hará mención a la aptitud como la función de fitness del
algoritmo.
Operadores Genéticos
Los operadores genéticos que se aplican en estos algoritmos son: selección, cruzamiento
y mutación. A continuación se explicarán estos operadores de forma general ya que
dependiendo del problema a veces se hacen algunas variaciones. (Información basada de
las citas [2,3].)
Métodos de Selección
77
Hay muchos métodos para asignar un número de descendencia basada en un rango. Por
ejemplo, Backer tomo un valor (MAX) definido por el usuario, como el límite superior para
el valor esperado de descendencia y una curva lineal a través de MAX tal que el área bajo
la curva igualara al tamaño de la población. De forma que se pueda fácilmente determinar
la diferencia entre los números esperados de descendencia entre individuos adyacentes. Por
ejemplo, para MAX=2.0 y el tamaño de la población igual a 50 la diferencia entre los
números esperados de descendencia entre individuos adyacentes puede ser de 0.04 (tamaño
de la población/MAX), otra posibilidad es tomar un parámetro q definido por el usuario y
definir una función lineal, por ejemplo,
Ambas funciones regresan la probabilidad de que un individuo que está ranqueado sea
seleccionado en una selección simple, si el rango=l significa que es el mejor individuo, si
el rango=tamaño de la población es el peor individuo.
L tam _ poh
i~l
pro b(1.) = l
Implica que
si r=O (por lo tanto q=1/tamaño _población) hay una presión de no selección en todo: todos
los individuos tienen la misma probabilidad de selección, de otra forma si
q - r(tamaño _población - 1) =O
Para la función no lineal q no depende del tamaño de la población, los valores mayores de
q implican fuerte presión selectiva del algoritmo; el valor de q se encuentra dentro del
rango entre O y l.
78
Un método de selección adicional es el de selección por torneo, el cual combina la idea
de ranqueo en una eficiente e interesante forma. Este método selecciona algún número k de
individuos y selecciona el mejor de este conjunto de k elementos en la siguiente
generación. Este proceso es repetido tantas veces como el tamaño de la población, es claro
que los valores mayores de k incrementan la presión selectiva de este procedimiento, un
valor típicamente aceptado para muchas aplicaciones es k =2.
Otro proceso clásico de la reproducción se comporta como una rueda de ruleta donde
cada ranura tiene tamaños diferentes proporcionales al valor de fitness, es decir, de acuerdo
a su aptitud. La técnica es llamada roulette-wheel parent se!ection y selecciona el candidato
a ser reproducido. La técnica puede ser implementada mediante un algoritmo como se
describe a continuación:
5
?4%
4 3
10% 4%
79
No. de Cadena Fitness % con respecto Fitness acumulado
cromosoma cromosómica al total
1 01110 8 16 8
2 11000 15 30 23
3 00100 2 4 25
4 10010 5 10 30
5 01100 12 24 42
6 00011 8 16 50
Elitismo
Este método de selección guarda al mejor individuo de entre todas las generaciones, la
forma en que selecciona a dicho individuo es la siguiente: en la primera generación, basado
en la función de fitness, guarda al mejor individuo, en la siguiente generación encuentra al
mejor y al peor individuo, si el mejor de esta generación supera al ya seleccionado se
reemplaza al anterior individuo por éste, en caso contrario remplaza el peor individuo de la
población actual con el mejor de la generación anterior, este proceso se aplica el número
máximo de generaciones definidas por el usuario.
80
Cruzamiento
Una descendencia tiene dos padres y heredan genes de ambos, el principal operador que
simula esto es el cruzamiento. En este método se seleccionan a los padres por medio de una
probabilidad de cruzamiento, el sitio de cruzamiento es seleccionado aleatoriamente. Véase
figura 2.
CRUZAMIENTO
---7
ltltltltltltlol
En este ejemplo se observa que el sitio de cruzamiento fue el 4, donde la parte terminal
del primer cromosoma es ahora la parte terminal del segundo y la parte terminal del
segundo cromosoma pasa a ser ahora la parte terminal del primero.
Existen otros tipos de cruzamiento, por ejemplo están los de 2 puntos de cruzamiento.
Cuando se usan 2 puntos de cruzamiento, se procede de manera similar, pero en este caso
el intercambio se realiza en la forma mostrada en la figura 3.
CRUZAMIENTO
---7
ltlllllllolllll
sitios de cruzarrúento descendientes
Figura 3. Cruzamiento
81
En la figura 3 se usaron 2 puntos de cruzamiento entre 2 individuos. En este caso se
mantienen los genes de los extremos, y se intercambian los del centro. También aquí existe
la posibilidad de que uno o ambos puntos de cruzamiento se encuentren en los extremos de
la cadena, en cuyo caso se hará un cruzamiento usando un solo punto, o ningún
cruzamiento, según corresponda. [2 ,3]
Mutación
Al igual que el cruzamiento, la mutación se maneja como un porcentaje que indica con
qué frecuencia se efectuará, aunque se distingue de la primera por ocurrir mucho más
esporádicamente (el porcentaje de cruzamiento normalmente es de más del 60%, mientras
que el de mutación normalmente nunca supera el 5%, lo cual no sucede en la programación
evolutiva).
Ejemplos
82
1000~----~------~----~------~
800
600
400
200
o~~---J------~------~------~
o 10 20 30 40
83
No. de Población Cromosoma con Sitio de Nueva X xz
cromos. inicial el que se cruza cruzamiento población
1 01001 2 4 01000 8 64
2 11000 1 4 11001 25 625
2 11000 4 2 11011 27 729
4 10011 2 2 10000 16 256
Sum 1674
Pro m ~19
2. En este ejemplo se aplicarán los pasos descritos en los algoritmos genéticos para un
problema de optimización utilizando una codificación binaria para números reales, se
explica su codificación y se aplican los operadores genéticos de mutación y cruzamiento
descritos anteriormente.[3]
2.5
-,¡;_
1.5
0.5
o
-0.5
-1
-1 -0.5 o 0.5 1.5 2
84
La representación de los cromosomas se hace de la siguiente manera: cada cromosoma
representa un valor real de la variable x y ésta se presenta como una cadena. La cadena
es un número binario cuyo tamaño depende de la precisión que requiera el problema, en
este caso es necesario 6 dígitos después del punto decimal. El dominio de la variable es
de tamaño 3, por lo tanto, el rango [-1,2] debe ser dividido en 3* 1000000 tamaños de
rangos iguales; esto significa que son necesarios 22 bits para representar a cada
cromosoma, es decir,
l. convertir la cadena binaria de base 2 a base 1O, este resultado se denominará x'
2. encontrar su correspondiente número real x con la siguiente fórmula:
x = -1 + x' * (3/(2 22 -1))
donde el -1 representa el límite inferior del rango donde corren las x 's y el 3 al
tamaño del dominio
La función de evaluación juega el papel del medio ambiente, teniendo así un conjunto
de soluciones potenciales en términos de la misma.
85
X¡= 0.637197
X2 = -0.958973
X3 = 1.627888
así
X3'= 1.721638
f(x 3 ')= -0.082257
V2 = (00000 1 01110000000010000)
V3 = ( 111 00 1 00000 111111 000 10 1)
86
obteniendo estos cromosomas mejores evaluaciones que la de sus padres.
Los parámetros con los que se obtuvo la optimización de la función fueron los
siguientes:
Tamaño de la población= 50
Probabilidad de cruzamiento = 0.25
Probabilidad de mutación= 0.001
Número de generaciones = 150
87
En una representación binaria de n ciudades cada ciudad puede ser codificada como
una cadena de log2n bits; un cromosoma es una cadena de n*log2 n bits, es decir, cada
cromosoma representa un recorrido para el vendedor viajero. Existen una serie de
problemas con los operadores genéticos descritos en los ejemplos anteriores para la
solución de este ejemplo, en una mutación puede resultar una secuencia de ciudades la
cual no es un recorrido válido ya que se puede tener la misma ciudad dos veces dentro
de la misma secuencia; por otro lado, con 20 ciudades, donde se necesitan 5 bits para
representar una ciudad, algunas secuencias no corresponden a alguna ciudad válida, por
ejemplo 10101 ya que debido a que sólo existen 20 ciudades este número binario
representaría la ciudad 21, similares problemas se presentan con el cruzamiento. Para
este tipo de casos es necesario modificar el algoritmo de mutación haciendo un
algoritmo de rectificación, detectando los resultados no válidos y moviendo a los
cromosomas a un espacio de posibles soluciones válidas. Para este problema conviene
más una codificación de números enteros que binarios donde los algoritmos de
corrección funcionan más fácilmente que con la representación binaria.
Las estrategias evolutivas son algoritmos que tratan de imitar los pnncrp10s de la
evolución natural como un método para resolver problemas de optimización. Estas se
desarrollaron en Alemania durante los años 60's.
1
Un problema de optimización es regular si la función objetivo fes continua, el dominio de la
función es un conjunto cen-ado.
88
Teorema de convergencia: Para cr>O y dado un problema de optimización re!,rular con
f opt > -00 (minimización) ó f opt < -00 (maximización)
Este teorema afirma que el óptimo global es encontrado con la probabilidad de uno con
un suficiente tiempo de búsqueda, sin embargo no provee ninguna pista para la razón de
convergencia (cociente entre la distancia cubierta respecto al óptimo y el número de
generaciones necesarias) [3].
Estas estrategias estudiadas por lngo Rechenberg y Hans- Paul Schwefel derivaron a la
programación evolutiva [3].
89
Diferencias entre estas Técnicas
Son dos las diferencias importantes entre estas técnicas, las cuales se describen a
continuación:
Una es la forma de codificación de las soluciones potenciales del problema, las cuales en
la programación evolutiva se realizan mediante estructuras más naturales para el problema
y no con números binarios como es el caso de los algoritmos genéticos. Además éstos
últimos mantienen un tamaño fijo en la representación de los cromosomas. Eso usualmente
implica que los operadores genéticos tienen que ser diseñados especialmente para el
problema.
La otra diferencia tiene que ver con los operadores genéticos que se aplican. Se les llama
padres a dos individuos de la población que se seleccionan aleatoriamente para aplicarles
operadores genéticos para su reproducción o modificación de su composición genética. Los
operadores estándar son mutación y cruzamiento. En este punto existe también una
diferencia entre las dos técnicas, los algoritmos genéticos generalmente usan operadores de
cruzamiento y mutación, dando mayor importancia al cruzamiento, mientras que la
computación evolutiva utiliza diferentes formas de mutación.
Algoritmo Genético
comienza
t=O
inicializa P(t) {Pes la población en la generación t, se codifica de forma binaria y el ta-}
evalua P(t) {maño de los cromosomas es tijo}
mientras t<núm_generaciones haz
comienza
t=t+l
selecciona padres de P(t-1)
selecciona a quien se elimina de P(t-1)
crea P(t): reproduce a los padres seleccionados
evalua P(t)
termina
termina
90
Programación Evolutiva
comienza
t=O
inicializa P(t) {Pes la población en la generación t, su representación no es binaria\
evalua P(t)
mientras t<núm_generaciones haz
comienza
t=t+1
selecciona a quien se elimina de P(t-1)
crea P(t): aplica mutación
evalua P(t)
termina
tennina
Al igual que en el caso de las redes neuronales, el esquema puede parecer excesivamente
sencillo comparado con el punto de vista biológico, sin embargo ha permitido soluciones a
problemas complejos que no son fáciles de resolver con otras técnicas.
Métodos Heurísticos
Existen algunos métodos heurísticos que guían al usuario en la selección apropiada de las
estructuras de datos y operadores genéticos para un problema particular.
Hay algunos métodos disponibles para definir una población inicial: una es la
inicialización de forma aleatoria o usar la salida de algún algoritmo detenninístico para
inicializar la población. Hay también algunas reglas heurísticas generales para la definición
de valores de los parámetros usados en estos algoritmos; para muchas aplicaciones de
algoritmos genéticos el tamaño de la población oscila entre 50 y 100 individuos, la
probabilidad de cruzamiento entre 0.65 y 1 y la probabilidad de mutación entre 0.001 y
0.01; algunas reglas heurísticas sirven para variar los valores de estos parámetros durante el
proceso de evolución [3].
Tanto para los algoritmos genéticos como para la programación evolutiva, estos
algoritmos tienen ventajas y desventajas las cuales se mencionan a continuación:
91
•Operan de forma simultánea con varias soluciones, en vez de trabajar de forma secuencial
como las técnicas tradicionales.
•Cuando se usan para problemas de optimización -maximizar una función objetivo- resultan
menos afectados por los máximos locales, falsas soluciones, que las técnicas tradicionales.
•Resulta sumamente fácil ejecutarlos en las modernas arquitecturas masivamente paralelas.
•Usan operadores probabilísticos, en vez de los típicos operadores determinísticos de las
otras técnicas.
•Pueden tardar mucho en converger, o no converger en absoluto, dependiendo en cierta
medida de los parámetros que se utilicen -tamaño de la población, número de generaciones,
etc. [3].
EJEMPLO l.
f(x) = x + 5*sin(3*x)+8*cos(5*x)
92
Definiciones
l. Un individuo es un punto dentro del intervalo donde se desea encontrar el valor máximo
2. El Genotipo (características de cada individuo), es un punto en el intervalo en el que se
desea calcular el máximo.
3. La Adaptación de un individuo al medio es la proximidad de la imagen de ese punto por
la función al extremo máximo.
4. La Población inicial es el conjunto de puntos en el momento en el que se inicia el
algoritmo. Por lo general se definen de forma aleatoria.
5. El Hijo de dos individuos es un punto que está entre ambos puntos padres (de aquí el
nombre de genético, se toman los individuos mejor adaptados, y se crean nuevos
puntos que estén entre esos dos puntos, se puede decir que el hijo hereda el código
genético de los dos padres y por tanto sus propiedades de adaptación al medio.) Para
crear nuevos hijos se toman los individuos mejor adaptados.
6. El Número máximo de la población es el número de individuos que soporta ese medio.
7. Muerte, desaparecen del conjunto de puntos algunos puntos escogidos al azar, dando
preferencia a los que están menos adaptados.
8. Mutación, son individuos nuevos que se añaden a la población con código genético
cambiado, sirven para que la especie no se estanquen en un máximo local. Se utilizan
probabilidades para que se mueran los individuos menos adaptados y se reproduzcan los
más adaptados.
9. Cruzamiento, son individuos nuevos que se añaden a la población con código genético
obtenido de la combinación del código genético de dos padres.
Observaciones
Solución al Problema:
Valores de inicio
93
fitness y se aplican los siguientes operadores genéticos: mutación y cruzamientos para crear
nuevos individuos de los que existen en la población.
A continuación se grafica la población inicial de tamaño 20 (Fig. 2). Los puntos verdes
son la población inicial generada de forma aleatoria (20 puntos )
25
20
15
10
5 t /\
1 1 1
1 1 1
o 11 1
V \1
-=· +/
~
-1 o L_____;:.¡___ _ ¡ _ _ _ . . . . . J . _ _ . . . . . J . __ __.__---l..._ _ J . __ __¡_ _t . __ _ _
o 2 4 6 3 10 12 14 16 13 20
Fig. 2 Población inicial
En la Fig. 3 se muestran de color rojo los valores obtenidos en la primera generación. Los
puntos verdes siguen siendo los iniciales graficados en la Fig. 2
94
A continuación se presenta la tabla con los valores de los mejores individuos por cada
generación.
95
A 1i /\ 1\B
25
1\ 1,
1
¡\ 1
20 (\ {',1 1{' 11 11 1 1 .l
1 1
11 '¡ .,i 1 1\ 1(''¡ 1 1(\ 1 1 1 \1
••,
'¡ 1\
,' 1
1
1
1
1
r·,
11
1 1 1 ',
\]
l 1
1
1 1 '·..'
l,j
11
'¡11
11
•)
1}
1,1
¡}
-10L---~---L--~----L---~--~--~L---~---L--~
o 2 G 8 10 12 1-l 16 18 20
Figura 4. Mejores individuos de las generaciones de la 1 a la 13
En la Fig. 4 se grafica un punto color verde oscuro que representa el valor máximo
obtenido. El cual se obtuvo en las generaciones de la 24 a la 50, las generaciones de la 14 a
la 23 están muy cerca del valor máximo obtenido, por lo tanto no se notan los puntos en la
gráfica 5
96
Referencias
EJEMPL02
Con respecto al número de capas ocultas, se ha demostrado que las redes neuronales del
tipo perceptron, con una capa oculta tienen la capacidad de distinguir entre conjuntos de
patrones complejos [1], por lo tanto queda cubierta esta decisión. Para las conexiones entre
los nodos, se aplica el criterio más común, el de conectar cada nodo de la capa de entrada
contra todos los nodos de la capa oculta y cada nodo de la capa oculta contra todos los
nodos de salida.
97
Queda entonces la determinación de los nodos ocultos. Como no hay un método para
escoger los nodos ocultos, una forma común de proceder es mediante un proceso tardado de
acierto y error, intentar con diferentes valores y ver cuál perceptron da mejores resultados,
después de encontrar sus pesos en cada caso. Para encontrar los pesos numéricos
habitualmente se hace uso del algoritmo de retropropagación. Este algoritmo se basa en el
método de gradiente descendente y requiere una función de transferencia diferenciable, así
como de fijar ciertos parámetros como la tasa de aprendizaje.
Esta forma de determinar el número de nodos ocultos es muy engorrosa, se podría pensar
en escoger un número "grande" de nodos ocultos, sin embargo, esto ocasionaría un
problema importante. El propósito del perceptron es fungir como un clasificador para
predecir si un ejemplo pertenece o no a una clase. Lo importante entonces es lo que se
llama "su poder de generalización" sobre los casos nuevos, es decir, qué tan bien clasifica
sobre casos no vistos previamente. Cuando el número de nodos ocultos es demasiado
grande, puede ocurrir un fenómeno donde el perceptron clasifica muy bien sobre los
ejemplos conocidos que se usaron para determinar los pesos, pero no sobre nuevos
ejemplos. Lo idóneo sería adoptar otro enfoque en la determinación de un perceptron que
podría especificar todos los parámetros involucrados simultáneamente, tanto la arquitectura
como los pesos numéricos. Es aquí donde entra la computación evolutiva para la solución a
este problema.
El primero de estos trabajos es el publicado por David J. Montana 1995[2], quien usó
algoritmos genéticos para escoger únicamente los pesos numéricos de una red neuronal. El
problema a resolver con la red era un problema de clasificación, el cual consistía en
proporcionarle a la red un conjunto de ejemplos para el entrenamiento para que después
ésta seleccionara la clase adecuada para un ejemplo ajeno al conjunto de entrenamiento.
Se trabajó con dos tipos de redes neuronales, para este caso sólo se mencionará la
arquitectura de nuestro interés, la cual fue una red neuronal perceptron multicapa, con una
capa de entrada, una oculta y una de salida, las conexiones se hicieron hacia adelante de
una capa hacia otra, con una función de transferencia sigmoidal y una función de fitness
igual al error cuadrático medio.
98
una vez localizada esta zona, aplicó retropropagación para encontrar el pico del óptimo
global. Otra ventaja de estos algoritmos es su generalidad ya que con pequeños cambios
pueden ser usados para entrenar diferentes variedades de redes.
99
Otro trabajo que se consideró fue el de Angeline, Saunders y Pollack, 1994[3], que
aunque no trabajaron con una red neuronal perceptron utilizaron un programa evolutivo
llamado GNARL (GeNeralized Acquisition of Recurrent Links), para definir la topología
donde fmáx es el valor máximo de la función de fitness para el problema a resolver, U(O, 1)
es una variable uniforme aleatoria en el intervalo (0, 1). Las redes con alta temperatura eran
mutadas más severamente que aquellas con baja temperatura.
Los tipos de mutaciones que ocuparon fueron los siguientes: adicionar kl nodos ocultos
con una probabilidad de adición, borrar k2 nodos ocultos con una probabilidad de borrado,
adicionar k3 ligas con una probabilidad de adición de ligas y borrar k4 ligas con su
probabilidad correspondiente, los nodos borrados se eliminan con las ligas que le inciden y
las nuevas ligas creadas se inicializaron con 0[3]. Estas mutaciones son más complejas que
las analizadas en el capítulo anterior cuando se describieron los algoritmos genéticos y es
debido a que se deben definir de acuerdo a la tarea a resolver.
GNARL se aplicó a diferentes problemas de control logrando mejores resultados que con
un algoritmo genético. Uno de los experimentos fue maximizar el número de piezas de
comida que recolecta una hormiga en un tiempo dado. Cada hormiga es controlada por una
red neuronal recurrente con dos nodos de entrada y cuatro nodos de salida. Los nodos de
entrada significan la ausencia o presencia de comida directamente enfrente de la honniga y
los nodos de salida significan las acciones de la hormiga (hacia la derecha, izquierda, etc),
el fitness es el número de piezas tornadas en 200 pasos de tiempo, una corrida fue
considerada cuando la red tomo más de 80 de las 89 piezas de comida en el enrejado. Este
expe1imento uso una población de tamaño 100, cada individuo es representado por una red
neuronal recurrente.
100
El siguiente trabajo a mencionar es el realizado por Goddard, López y Ruffiner, donde
aplicaron un programa evolutivo para la determinación de una red perceptron para el
diagnóstico médico, en específico, para desordenes cardiacos, la red una vez definida debía
decidir si existía la presencia o ausencia de enfermedad cardiaca. La base de datos utilizada
consistía de 13 atributos y 303 ejemplos, descartando aquellos ejemplos con problemas,
quedando finalmente 270.
Aplicaron dos métodos con el programa evolutivo, uno donde se utilizó el programa
evolutivo con tres diferentes funciones de aptitud, y el segundo donde se aplicó una forma
de hibridación utilizando el algoritmo de retropropagación y el programa evolutivo.
2
)L.error
ECM=-----~
Núm._ patrones
L:ierrori
EAM = --=::_:______ _:___
Núm._ patrones
Definieron una población de tamaño 1O, el número de generaciones fue de 150 y para el
híbrido se aplicaron 495 épocas de retropropagación en cada individuo en cada generación,
el retropropagación fue inicializado en cada generación con el mejor individuo, este trabajó
demostró lo conveniente de utilizar métodos híbridos ya que los resultados fueron mejores
con respecto a el programa evolutivo[ 4].
101
El último trabajo a mencionar es el de Xin Yao y Young Liu, 1997[ 5] quienes proponen
un programa evolutivo con cromosomas de longitud variable, donde cada individuo
representa la arquitectura de una red neuronal tomando en cuenta el número de capas
ocultas, el número de conexiones y sus pesos correspondientes, este programa evolutivo
consta de cinco operadores de mutación y un tipo de selección denominada de rango (rank-
based).
Este programa evolutivo se aplicó en el problema del espiral el cual consta de 194 ejemplos
y se consiguió la región formada lo más cercano posible al espiral con 14 nodos ocultos y
131 conexiones, este algoritmo también es aplicable al diagnósticos médicos, aunque no se
reportan resultados[5].
Los trabajos mencionados en la sección anterior son una muestra representativa de lo que
se ha hecho para definir la arquitectura de una red neuronal y es en estos trabajos donde
surge la siguiente propuesta para la solución del problema.
Como se mencionó al principio se ha demostrado que con una capa oculta un perceptron
multicapa tiene la capacidad de distinguir entre conjuntos de patrones complejos [ 1], es por
esto que se decidió trabajar con un perceptron de tres capas, es decir, la capa de entrada,
una oculta y la de salida.
Los trabajos expuestos trabajan con una función de transferencia sigmoidal, y coinciden
en usar el error cuadrático medio en la función de fitness, parámetros que se toman en esta
propuesta.
De acuerdo al trabajo de Angeline y colaboradores, se decidió trabajar con un programa
evolutivo en lugar del algoritmo genético propuesto por Montana. Cabe recordar que ellos
trabajaron con redes recurrentes y no con perceptron multicapa.
Es importante mencionar que todos los autores revisados en la sección anterior trabajaron
con cromosomas de longitud fija, a excepción de Angeline y colaboradores, (mencionando
nuevamente que la red con la que trabajaron fue recurrente.) y Xin Yao y Young Liu
quienes trabajaron con redes neuronales con más de una capa oculta.
102
Se coincide con tres operadores de mutación usados por Xin Yao y Y oung Liu, el de
adición y eliminación de nodos ocultos, pero no con el resto de operadores incluyendo el
de selección.
Para aplicar un programa evolutivo en un caso concreto, primero hay que decidir cómo se
va a modelar el problema; esto implica la codificación de las soluciones potenciales del
problema. En nuestro caso, la idea del programa evolutivo es definir una población de
cromosomas en donde cada cromosoma represente un perceptron mutlicapa. Consideremos
al perceptron multicapa con una sola capa oculta donde el número de nodos ocultos pueden
variar. El número de nodos de entrada y de salida son constantes, dependiendo del
problema considerado. Un cromosoma deberá codificar el número de nodos ocultos que
tendrá esa capa y los pesos que unen a los nodos de entrada con los de la capa oculta, y los
de ésta hacia los nodos de salida, así como los pesos de los sesgos que se definieron en la
capa de entrada y en la capa oculta. Esto nos lleva a la necesidad de considerar cromosomas
con una longitud variable. Cada cromosoma, o perceptron multicapa, está implementado
como una lista donde cada elemento de la lista representa conceptualmente un nodo oculto
del perceptron multicapa.
La información que se guarda en un elemento de la lista son los valores de los pesos
numéricos sobre las conexiones que llegan al nodo oculto de los nodos de entrada y los que
salen de los nodos ocultos hacia los nodos de salida. Un cromosoma típico se muestra en la
Fig. 1 junto con el perceptron multicapa que representa.
103
yl j salida
aptitud =O
relaptitud =O
acumaptitud -O
ap _sesgl u 71
*crom
,- ~
.J;
/
/
_.r
/Q
-
-U.7 /
t
1 \
-0.9 \\
1 /_... 1 \
en capa oculta
~sesgo t
x2
entrada
104
j
POBLl\CIÓN
struct Genotyp e{
Nodo_oculto* crom; nrnax
~at ap _sesg[NSALL aptitud
mt nmax; re!aptitud TAMAÑC
float aptitud; acum.a.Ptitud POBLAC.
float relaptitud; ap sesg¡,,,.-71
float acumaptitud; *erom 1
}
Inicio
Generación=O
Inicializar la población
Evaluar cada cromosoma
Guardar el mejor cromosoma
Mientras (generación<MAXGENS)
Inicio
Seleccionar la nueva población
Aplicar Mutación Estructural
Aplicar Mutación de los pesos
Evaluar cada cromosoma
Guardar el mejor cromosoma
Generación=Generación+ 1
Fin
Fin
Tabla l. Algoritmo Principal del programa evolutivo
105
A continuación se describen los operadores con mayor detalle.
Inicialización de la Población
Función de Evaluación
-0.12+0.074*xl+0.017*x2
-0.59+0.146*x 1+0.93 7*x2
zl =f(-O.l2+0.074*xl +0.017*x2)
z2=f( -0.59+0.146*x 1+0. 93 7*x2)
Finalmente, para calcular la salida del nodo en la capa de salida, se vuelve a aplicar la
función de transferencia al producto interno del vector de los pesos que entran en el nodo
con el vector (1, zl, z2), dando:
yl =f((0.7-0.7*zl-0.9*z2)
ECM=2:(yi-di) 2
donde la suma es sobre todos los patrones de los datos, yi es la salida del perceptron
multicapa para el patrón i calculado como se describió anteriormente, y di es la salida
deseada, que seria el valor que queremos asociar con el patrón.
106
La segunda función calcula cuántos errores tiene el perceptron rnulticapa al clasificar, es
decir, cuántos datos están mal clasificados. Una ventaja del programa evolutivo sobre un
perceptron rnulticapa en este contexto es la posibilidad de usar funciones de aptitud no
diferenciables, corno ésta. Para encontrar el mejor perceptron multicapa para cualquiera de
las dos funciones de evaluación, hay que minimizar cada una de ellas. El campo de aptitud
en la estructura de datos corresponde al valor de la función de evaluación.
Para escoger una nueva población se aplica el proceso conocido como la rueda de la
ruleta, sin embargo, es importante mencionar que no es el único método que existe. La idea
esencial es particionar un disco en sectores en proporción a la aptitud de cada cromosoma.
Se gira el disco, y de acuerdo al sector donde éste para, se escoge el cromosoma
correspondiente. Esto se lleva a cabo de la siguiente manera. Primero encuentra la aptitud
total de la población sumando todas las aptitudes menos el del último cromosoma. Después
calcula la aptitud relativa de cada cromosoma dividiendo la aptitud de ese cromosoma entre
la aptitud total. Luego, con la aptitud relativa calcula la aptitud acumulada: se inicializa la
aptitud acumulada del primer cromosoma con su aptitud relativa y se calcula la aptitud
acumulada del siguiente cromosoma sumando su aptitud relativa más la acumulada del
cromosoma anterior y así sucesivamente para cada cromosoma. Esta aptitud acumulada
representa la proporción de cada cromosoma.
Para simular el giro del disco se genera un número aleatorio x, entre O y 1, y se elige el
cromosoma cuya aptitud acumulada correspondiente contiene a x. Este proceso se repite el
número de cromosomas existentes. Los cromosomas que ocupan una porción mayor del
disco tienen más probabilidad de ser escogidos para la nueva población, sin embargo, no
excluye la elección de cromosomas con peor aptitud. Al final de este proceso el arreglo que
representa la nueva población puede quedar con cromosomas repetidos. La aptitud relativa
y la acumulada son campos de la estructura que se guardan en el arreglo (Fig. 2).
Mutación Estructural
107
2. Eliminar, para equilibrar el efecto que pudiera tener la función Adiciona, y para reducir
el número de nodos ocultos en un cromosoma, se define otro operador de nombre Eliminar.
De forma similar se genera un número aleatorio y se compara con la probabilidad de
eliminación definida por el usuario, si dicho número es menor se elimina el primer nodo de
la lista del cromosoma en cuestión.
En los dos casos se reduce linealmente el parámetro de probabilidad de su valor inicial a un
valor pequeño definido por el usuario, conforme evoluciona el algoritmo; con esto, al final
de la corrida no es necesario modificar la arquitectura del perceptron multicapa.
Mutación Paramétrica
Para modificar los pesos de un cromosoma, se aplica un operador a los pesos de un nodo
oculto del cromosoma. Esto quiere decir que para cada nodo oculto de un cromosoma se
genera un número aleatorio y si éste es menor a la probabilidad de mutación definida por el
usuario, se modifican los pesos agrupados en el nodo; en caso contrario se conserva el
mismo valor de los pesos. Si se decide cambiar el valor de un peso se le agrega el valor
generado por una gaussiana, con media O y varianza definida por el usuario. La varianza
está reducida linealmente conforme evoluciona el algoritmo; esto se hace para evitar
perturbaciones "grandes" a los pesos lo cual no es benéfico al final de la corrida.
Referencias
[1] Mohamad H. Hassoun, "Fundamentals ofartificial Neural Networks", The MIT Press
1995
[2) David J. Montana, "Neural Network Weight Selection Using Genetic
Algorithms", capitulo 5 de Intelligent Hybrid Systems, Goonatilake and Khebbal
(Eds.), John Wiley & Sons, 1995.
(3] Peter J. Angeline, Gregory M. Saunders y Jordan B. Pollack, "An Evolutionary
Algorithm that Constructs Recurrent Neural Networks", IEEE Transactions on
Neural Networks, 5 (1), pp. 54-65, 1994.
[4] John Goddard, Irineo López, Leonardo Rufiner, "Diagnóstico de cardiopatías mediante
redes neuronales y algoritmos genéticos", Revista Argentina de Bioingeniería, Vol.2,
No.2, 11-19, 1996.
[5) Xin Yao, Young Liu. Towards Designing Artificial Neural Networks by Evolution,
1999
[6] Xin Yao "Evolving artificial Neural Networks" Proc. ofthe IEEE, 87(9); pp 1423-1447,
108
Sept. 1999
[7] Fréderic Gruau "Genetic Programing ofNeural Networks: Theory and Practice".
Capítulo 13 de Intelligent Hybrid Systems, Goonatilake and Khebbal, John Willey &
Sons, 1995.
[8] David B. Fogel. "Evolutionary computation. Toward a New Philosophy ofMachine
Intelligence" The Instituteof electrical and electronic engineers, New york, 1995
Resultados
Base de datos creada por R. A. Fisher y donada por Michael Marshall en julio de 1988[ 1].
Esta base de datos es quizá, la más conocida en la literatura de reconocimiento de patrones.
Consta de 150 ejemplos, 3 clases y 4 atributos, la distribución de los ejemplos es, 50
ejemplos para cada clase. No se cuentan con datos perdidos. Cada clase se refiere a un tipo
de planta iris, las cuales son las siguientes: iris setosa, iris versicolor e iris virginica. Una
clase (iris setosa) es linealmente separable de las otras dos, lo cual se puede observar en la
gráfica 1, sin embargo la clase iris versicolor e iris virginica cuentan con ejemplos
traslapados evitando ser linealmente separables entre sí. Los atributos son el largo y ancho
del sépalo y el largo y ancho del pétalo.
:u
2.0
,.
1
.. -·
•• ••
·-
....·-
¡tu
.:¡
J
~ 1.0 -
--··.
o.s ......
••
...-·
.........
0.0
0.0 1.0 2.0 3.0 4.0 s.o ó.O 1.0
109
En [2] se reporta el 100% de clasificación de la clase iris setosa y muy pocos ejemplos
mal clasificados para el resto de las clases.
Base de datos original del Instituto Nacional de Diabetes y Enfermedades del Riñón y
Digestivas su donante: Vincent Sigillito, Applied Physics Laboratory, The Johns Hopkins
University, su fecha de recepción es del9 de mayo de 1990.[1]
l. Número de embarazos
2. Concentración de glucosa en plasma a dos horas en una prueba de tolerancia oral a la
glucosa.
3. Presión sanguínea diastólica (mm Hg)
4. Medición del pliegue en el tríceps (mm)
5. Insulina en Serum 2 horas (mu U/ml)
6. Índice de masa corpórea (peso en Kg/( estatura en m) 2 )
7. Función de pedigree de diabetes
8. Edad (años)
3. Desordenes Cardiacos
110
l. Edad
2. Sexo
3. Dolor de pecho (4 valores)
4. Presión sanguínea en reposos
5. Colesterol (mg/dl)
6. Nivel de azúcar en sangre> 120mg/d1 (en ayunas)
7. Resultados electrocardiográficos en reposo (valores 0,1,2)
8. Máxima frecuencia cardiaca alcanzada
9. Angina inducida por ejercicio
1O. Depresión del segmento ST inducida por ejercicio con respecto al reposo
11. Pendiente del segmento ST (pico del ejercicio)
12. No. De vasos mayores coloreados por t1uoroscopia (0-3)
13. Tha1.:3=normal, 6=defecto fijo, 7=defecto reversible
El conjunto de datos original contenía 303 ejemplos pero algunos fueron descariados
quedando tan solo 270, existen dos clases: presencia o ausencia de enfennedad cardiaca. La
distribución de ejemplos de cada clase es la siguiente: 150 ejemplos son sanos lo cual
corresponde al 55.56% del total y 120 ejemplos corresponden a la clase de enfennos lo cual
equivale a un 44.44% del total.
Los mejores resultados publicados en [4] sobre esta base de datos es del 81% de aciertos
sobre los datos de prueba utilizando un algoritmo híbrido (algoritmo genético y
retropropagación) y del 77.5% utilizando únicamente un algoritmo genético.
Peterson Bamey es una base de datos que reporta las cuatro primeras formantes
generadas por la señal de la voz de 33 hombres, 28 mujeres y 15 niños, teniendo un total de
76 personas produciendo dos repeticiones de 10 vocales obteniendo así 1520 muestras de
voz en el idioma inglés[5].
1 IY [i]
2 IH [I]
3 EH [e]
4 AE [ae]
5 AH [A]
6 AA [a]
7 AO [o]
8 UH [U]
9 uw [u]
10 ER [3]
111
Existen ejemplos en la base de datos donde los expertos no logran identificar a que vocal
pertenecen por lo tanto estos han sido eliminados, para probar el algoritmo propuesto se
escogieron los ejemplos de las dos vocales más difíciles de clasificar: UH y UW debido al
gran traslape de sus datos, en la gráfica 2 se muestra su distribución y se decidió eliminar
el primer atributo ya que se considera Fl, F2 y F3 las tormantes con mayor información.
1800
1600
1400
1200
1000
F2
800
600
400
200
o +----+----+----!------\
o 200 400 600 800
Fl
•UH UW
Del total de ejemplos de la base de datos original se tomaron 275, de los cuales 132
corresponden a la clase UH y 143 a la clase UW
5. Localización de proteínas
Esta base de datos es creada por Kenta Nakai del Institue of Molecular and Cellular
Biology Osaka, University y donada por Paul Horton en 1996[1]. Consta de 336 ejemplos y
siete atributos, los cuales se mencionan a continuación:
No existen valores perdidos. Las clases son el sitio de localización de proteínas, son ocho
que a continuación se mencionan con la distribución de los ejemplos:
112
cp (citoplasma) 143
im (membrana interior sin señal de secuencia) 77
pp (perisplasma) 52
imU (menbrana interna, sin hendidura en la señal de secuencia) 35
om (membrana externa) 20
omL (membrana externa lipoproteina) 5
imL (membrana interna lipoproteina) 2
imS (membrana interna, con hendidura en la señal de secuencia) 2
6. Reconocimiento de vino
1) Alcohol
2) Ma1ic acid
3) ash
4) Alcalinity of ash
5) Magnesio
6) Total phenols
7) Flavanoids
8) Nonflavanoid phenols
9) Proanthocyanins
1O)lntensidad del color
ll)Matiz
12)00280/00315 de vinos diluidos
13)Proline
Clase 1 59 ejemplos
Clase 2 71 ejemplos
Clase 3 48 ejemplos
113
ROA 100%
QDA 99.4%
LOA 98.9%
INN 96.1%
Referencias
RESULTADOS
Tabla 1
114
El número de ejemplos de entrenamiento corresponde al 70% de los ejemplos totales y el
30% restante corresponde a los ejemplos de prueba.
Tabla 2
La última columna reporta el tiempo que tardo el programa evolutivo en ejecutarse con
los parámetros indicados, cabe mencionarse que el programa se ejecutó en una PC
pentium, con 32 megas de RAM bajo ambiente windows
Tabla 3
115
En la tabla 4 se reportan los porcentajes de aciertos de los ejemplos de entrenamiento y de
los de prueba, además del fitness final calculado y del número de nodos ocultos encontrado
por el programa evolutivo en cuestión, incluyendo nuevamente los datos de los porcentajes
de aciertos reportados en otros trabajos utilizando otros algoritmos para clasificación
Es importante notar que en los resultados reportados para la base de datos de los
desordenes cardíacos siempre se trabajo un algoritmo genético con longitud fija equivalente
a 13 nodos ocultos y también recordar que el programa evolutivo nos proporciona el
número de nodos ocultos y los pesos de las conexiones del perceptron multicapa.
116