Your SlideShare is downloading. ×
Estudio de técnicas de búsqueda por vecindad a muy gran escala
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Estudio de técnicas de búsqueda por vecindad a muy gran escala

239

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
239
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Estudio de técnicas de búsqueda por vecindad a muy gran escala Ravindra K. Ahuja Departamento de ingeniería industrial y de sistemas Universidad de Florida Gainesville, FL 32611, USA ahuja@ufl.edu Özlem Ergun Centro de investigación operativa Instituto tecnológico de Massachussets Cambridge, MA 02139, USA ozie@mit.edu James B. Orlin Escuela Sloan de dirección Instituto tecnológico de Massachussets Cambridge, MA 02139, USA jorlin@mit.edu Abraham P. Punnen Departamento de matemáticas, estadística y ciencias informáticas Universidad de New Brunswick Saint John, New Brunswick, Canada E2L 4L5 punnen@unbsj.ca (22 de julio de 1999) (Revisado el 11 de octubre de 2000) 1
  • 2. Estudio de técnicas de búsqueda por vecindad a muy gran escala Ravindra K. Ahuja, Özlem Ergun, James B. Orlin, Abraham P. Punnen ResumenMuchos problemas de optimización de interés práctico resultan intratables mediante técnicas de cálculo.Ante esta dificultad, los algoritmos heurísticos (o de aproximación) se revelan como un medio útil parasu resolución, ya que permiten obtener soluciones casi óptimas en un tiempo razonable. Los algoritmosde mejora son algoritmos heurísticos que, por lo general, parten de una solución factible y tratan dehallar, por medio de iteraciones, una solución aún mejor. Los algoritmos de búsqueda por vecindad(también llamados algoritmos de búsqueda local) constituyen un tipo bastante amplio de algoritmos demejora en los que en cada iteración se obtiene una solución mejorada buscando en la "vecindad" de lasolución existente. Un aspecto crítico del diseño de esta clase de algoritmos es la elección de laestructura de la vecindad; es decir, el modo en el que se va a definir ésta. Como regla general, cuantomás amplia sea la vecindad, mayor será tanto la calidad de las soluciones localmente óptimas como laprecisión de la solución final que se obtenga. Pero, al mismo tiempo, cuanto más amplia sea la vecindad,más tiempo será necesario para realizar la búsqueda dentro de ella en cada iteración. Por esta razón, unavecindad muy amplia produce necesariamente una heurística más eficaz, a menos que la búsqueda serealice de un modo muy eficiente. El presente estudio se concentra en algoritmos de búsqueda local enlos que el tamaño de la vecindad es “muy grande” con respecto al tamaño de los datos y en los que labúsqueda local se hace con criterios de máxima eficiencia. En él se analizan tres tipos muy amplios dealgoritmos de búsqueda por vecindad a muy gran escala (VLSN: Very Large-Scale Neighborhood): (1)métodos de profundidad variable en los que la búsqueda local se realiza de modo heurístico, (2)aplicación de la programación dinámica o de técnicas de flujo de redes a vecindades amplias, y (3)vecindades grandes inducidas por restricciones del problema original que pueden resolverse en tiempopolinómico.1. Introducción Muchos problemas de optimización de interés práctico resultan intratables mediante técnicasde cálculo. Ante esta dificultad, los algoritmos heurísticos (o de aproximación) se revelan como unmedio útil para su resolución, ya que permiten obtener soluciones casi óptimas en un tiempo razonable.Los trabajos dedicados a algoritmos heurísticos suelen dividir éstos en dos amplias categorías:algoritmos de construcción (o constructivos) y algoritmos de mejora. Los primeros montan una soluciónpartiendo de cero, mediante la asignación de valores a una o varias variables de decisión al mismotiempo, mientras que los algoritmos de mejora parten de una solución factible y tratan de hallar una 2
  • 3. mejor por medio de iteraciones. Los algoritmos de búsqueda por vecindad (también llamados algoritmosde búsqueda local) constituyen un tipo bastante amplio de algoritmos de mejora en los que en cadaiteración se obtiene una solución mejorada buscando en la "vecindad" de la solución existente. Elpresente estudio se concentra en algoritmos de búsqueda local en los que el tamaño de la vecindad es“muy grande” con respecto al tamaño de los datos y en los que la búsqueda local se hace con criterios demáxima eficacia. En instancias grandes de problemas, la búsqueda de este tipo de vecindades de modoexplícito resulta poco práctica, lo que hace necesario realizar la búsqueda en un segmento más pequeñode la vecindad o bien desarrollar algoritmos que resulten eficaces en búsquedas de modo implícito en lavecindad. Un aspecto crítico del diseño de esta clase de algoritmos es la elección de la estructura de lavecindad (es decir, el modo en el que se va a definir ésta), ya que del tipo de estructura que se elijadependerá el que la búsqueda de vecindad desarrolle soluciones altamente precisas o soluciones conóptimos locales muy pobres. Como regla general, cuanto más amplia sea la vecindad, mayor será tanto lacalidad de las soluciones localmente óptimas como la precisión de la solución final que se obtenga. Pero,al mismo tiempo, cuanto más amplia sea la vecindad, más tiempo será necesario para realizar labúsqueda dentro de ella en cada iteración. Dado que se suelen ejecutar varios algoritmos de búsquedalocal con distintos puntos de partida, la mayor duración de los tiempos de ejecución para cada iteraciónrequiere un menor número de ejecuciones por tiempo unitario. Por esta razón, una vecindad muy ampliaproduce necesariamente una heurística más eficaz, a menos que la búsqueda se realice de un modo muyeficiente. Varios de los métodos más utilizados por su alta eficiencia en investigación operativa puedenentenderse como técnicas de búsqueda por vecindad a gran escala. Así, por ejemplo, si contemplamos elalgoritmo simplex para la resolución de programas lineales como un algoritmo de búsqueda local,tendremos que la generación de columnas es a su vez un método de búsqueda por vecindad a granescala, al igual que ocurre con las técnicas de extrapolación empleadas para la resolución de muchosproblemas de flujo de redes. El algoritmo de cancelación del ciclo de coste negativo que se usa pararesolver el problema del flujo de coste mínimo y el algoritmo del camino de aumento que resuelveproblemas de ajuste son dos ejemplos de ello. En el presente estudio, hemos clasificado los métodos de vecindad a gran escala en tres categoríasque pueden coincidir parcialmente. La primera de ellas comprende los métodos de profundidad variable:una serie de algoritmos que se centran en vecindades exponencialmente grandes en las que realizanbúsquedas parciales por medio de la heurística. La segunda categoría comprende algoritmos de mejorabasados en flujos de red; métodos de búsqueda local que emplean técnicas de flujo de red paraidentificar posibilidades de mejora en la vecindad. Por último, en la tercera categoría se analizanvecindades para problemas NP-difíciles inducidos por subconjuntos de restricciones de los problemasque se pueden resolver en tiempo polinómico. Aunque hemos introducido el concepto de búsqueda por 3
  • 4. vecindad a gran escala al hacer referencia a técnicas de generación de columnas para programas linealesy a técnicas de extrapolación para flujos de redes, no se insiste sobre los programas lineales. Por elcontrario, el estudio se concentra en la aplicación de técnicas de búsqueda por vecindad a gran escala aproblemas de optimización NP-difíciles. Esta monografía se halla estructurada del modo que a continuación se describe. En el apartado 2 seincluye una breve descripción general de la búsqueda local. El apartado 3 comprende un análisis demétodos de profundidad variable. El apartado 4 trata sobre algoritmos de búsqueda por vecindad a granescala basados en técnicas de flujo de redes. En el apartado 5 se analizan técnicas eficientes para laresolución de supuestos especiales de problemas NP-difíciles de optimización combinatoria, así como devecindades muy amplias basadas en ellos. El apartado 6 describe las mediciones de vecindades, quepueden servir de guía para el desarrollo de algoritmos de búsqueda local con respecto a una vecindaddada. Por último, en el apartado 7 se analiza el rendimiento computacional de varios de los algoritmosvistos en los apartados anteriores.2. Búsqueda local: esquema general Comenzaremos por introducir formalmente un problema de optimización combinatoria, junto con elconcepto de vecindad. Existen diversas maneras de representar este tipo de problemas, todas ellasbasadas en métodos de representación del conjunto de soluciones factibles. En este apartado,representaremos el conjunto de soluciones factibles como subconjuntos de un conjunto finito,formulándolo del siguiente modo: Sea E = {1, 2,..., m} un conjunto finito. En general, la cardinalidad de un conjunto S se indicamediante |S|. Supongamos, además, que F ⊆ 2E, donde 2E indica el conjunto formado por todos lossubconjuntos de E. Los elementos de F se denominan soluciones factibles. Sea f: F → ℜ, llamándose ala función f la función objetivo. Con estos datos, una instancia de un problema de optimizacióncombinatoria (POC) se representará del siguiente modo: Minimizar {f(S) : S ∈ F}. Damos por hecho que la familia F no nos viene dada explícitamente mediante el listado de todos suselementos; sino que se halla representada en una forma compacta de tamaño polinómico en m. El par (F,f) indica una instancia de un problema de optimización combinatoria. En la mayor parte de losproblemas que veremos, la función de coste es una función lineal; es decir, existe un vector f1, f2,…, fmtal que, para todos los conjuntos factibles, S, f(S) = Σi∈Sfi. Supongamos que (F, f) es una instancia de un problema de optimización combinatoria. La funciónde vecindad es un punto de definición del mapa N: F→ 2E. En esta función, cada valor de S ∈ F tiene 4
  • 5. asociado un subconjunto N(S) de E. El conjunto N(S) recibe el nombre de vecindad de la solución S, ypodemos suponer, sin pérdida de generalidad, que S ∈ N(S). Se dice que una solución S* ∈ F eslocalmente óptima con respecto a una función de vecindad N cuando f(S*) ≤ f(S) para todo S ∈ N(S*).Asimismo, se dice que N(S) es exponencial cuando |N(S)| crece de manera exponencial en m a medidaque el valor de esta última se incrementa. A lo largo de la mayor parte de este estudio, veremosvecindades de tamaño exponencial, además de vecindades cuyo tamaño es demasiado amplio pararealizar en ellas búsquedas explícitas en la práctica. Así, por ejemplo, una vecindad con m3 elementosresultará demasiado amplia para una búsqueda en la práctica si m tiene un valor alto (por ejemplo,superior a un millón). Nos referiremos a las técnicas de búsqueda por vecindad empleando dichasvecindades como algoritmos de búsqueda por vecindad a muy gran escala o algoritmos de búsquedaVLSN. Para dos soluciones S y T, llamaremos S – T al conjunto de elementos que se encuentran en S perono en T. La distancia d(S, T) la definiremos como |S - T| + |T - S|, que es el número de elementos de Eque se encuentran en S o en T, pero no en ambos. Ocasionalmente, podremos permitir que lasvecindades incluyan también soluciones no factibles. Por ejemplo, en el caso anterior podemos hacerque la vecindad de un recorrido incluya cada uno de los itinerarios obtenidos mediante la supresión deuno de los vértices del mismo. Para resaltar el hecho de que una vecindad contenga otros elementosademás del itinerario, daremos, como norma general, una descripción combinatoria de las soluciones nofactibles permitidas en la búsqueda. Nos referiremos a estas estructuras combinatorias no factibles comoestructuras de referencia. Un camino de Hamilton sería un ejemplo de este tipo de estructuras. Podemos imaginar un algoritmo de búsqueda por vecindad (para un problema de minimización decostes)como compuesto de tres partes: (i) Un grafo de vecindad (NG) definido con respecto a una instancia de problema específica, donde NG es un grafo dirigido con un nodo para cada solución factible que se cree (o una instancia de una estructura de referencia no factible), y que consta de un arco (S, T) siempre que T ∈ N(S). (ii) Un método de búsqueda del grafo de vecindad en cada iteración. (iii) Un método que permita determinar cuál es el siguiente nodo del grafo de vecindad que se elegirá en la búsqueda del paso anterior. Nos referiremos a este nodo como solución básica.El algoritmo termina cuando S es una solución localmente óptima con respecto a la vecindad dada.(Véase [1] para un estudio extensivo). A continuación definiremos dos vecindades basadas en la distancia. La primera es Nk(S) = {T ∈ F :d(S, T) ≤ k}. Nos referiremos a estas vecindades como vecindades de distancia-k. 5
  • 6. En determinadas instancias de problemas, dos soluciones factibles cualesquiera tienen la mismacardinalidad, como ocurre en el problema del viajante de comercio (TSP: Travelling Salesman Problem),donde cada solución factible S representa un recorrido en un grafo completo por un número n deciudades, por lo que tiene un número n de arcos (véase [48] para más detalles sobre el TSP). Como reglageneral, afirmamos que se puede obtener T mediante un intercambio simple de S cuando |S - T| = |T - S|= 1; y que se puede obtener mediante un k-intercambio cuando |T - S| = |S - T| = k. Definimos lavecindad de k- intercambios de S como {T : |S - T| = |T - S| ≤ k}. Si dos soluciones factiblescualesquiera tienen la misma cardinalidad, la vecindad de k-intercambios de S será igual a N2k(S). Unejemplo típico de vecindad de k-intercambios aplicada al problema del viajante de comercio es lavecindad de doble intercambio, también conocida como vecindad 2-opt. En el grafo correspondiente aella, cada uno de los nodos representa un recorrido, y dos recorridos serán vecinos cuando se puedaobtener uno a partir del otro mediante un intercambio doble. Aplicando un método de búsquedaexhaustiva (o con algunos atajos), la siguiente solución básica será una solución de mejora. De Nm(S) = F, se desprende que realizar búsquedas en la vecindad de distancia k puede resultar más complicada a medida que el valor de k aumente. Por lo general, ocurre que esta vecindad crece exponencialmente cuando k no es un valor fijo, y que hallar la mejor solución (o incluso una solución mejorada) es NP-difícil cuando el problema original es también NP-difícil.3. Métodos de profundidad variable Para k = 1 ó 2, se pueden realizar búsquedas eficaces en las vecindades de k-intercambios (o, demodo similar, las de distancia k), aunque la media de los óptimos locales que se obtienen suele resultarinsuficiente. En cambio, para valores más altos de k, las vecindades de k-intercambios producen mejoresóptimos locales, pero el esfuerzo necesario para realizar la búsqueda puede ser excesivo. Los métodos deprofundidad variable son técnicas que permiten realizar búsquedas parciales en las vecindades de k-intercambios. El objetivo de esta búsqueda parcial consiste en hallar soluciones que sean vecinas en elvalor de la función objetivo a los óptimos globales, y que a la vez sean capaces de reducir drásticamenteel tiempo de búsqueda en la vecindad, si bien no suelen garantizar óptimos locales. En los algoritmos debúsqueda por vecindad a muy gran escala, entran en juego varios tipos de algoritmos para realizarbúsquedas parciales en la vecindad de k-intercambios. En este apartado analizaremos el algoritmo de Liny Kernighan [50] para el TSP, así como otras heurísticas de profundidad variable aplicadas a búsquedasen vecindades de k-intercambio en distintos problemas de optimización combinatoria. El apartadosiguiente está dedicado a la descripción de otros enfoques que, en tiempo polinómico, permiten realizarbúsquedas de modo implícito en un subconjunto de tamaño exponencial de la vecindad de k-intercambiocuando k no es un valor fijo. 6
  • 7. Antes de pasar a describir el algoritmo de Lin y Kernighan, veremos algunos aspectos relativos a lanotación. Posteriormente, explicaremos el modo de generalizar dicho algoritmo a métodos deprofundidad variable (y a "ejection chains") para resolver heurísticamente problemas de optimizacióncombinatoria. Supongamos que T y T’ son subconjuntos de E, aunque no necesariamente factibles. Unaruta que vaya de T a T’ será una secuencia T = T1, …, TK = T’ tal que d(Tj, Tj+1) = 1 para j = 1 a K - 1. Los métodos de profundidad variable se basan en una subrutina Move que tiene las siguientes características: 1. En cada iteración, esta subrutina crea un subconjunto Tj y posiblemente también un subconjunto factible Sj a partir del par de entrada (Sj-1,Tj-1) conforme a determinados criterios de búsqueda. El subconjunto Tj puede ser factible o no serlo. Representaremos esta operación como Move (Sj-1,Tj-1) = (Sj, Tj) 2. d(Tj, Tj+1) = 1 para todo j = 1 a K - 1. 3. Tj cumple las propiedades adicionales, dependiendo del enfoque de profundidad variable. Llamemos T al recorrido actual del problema del viajante de comercio, suponiendo, sin pérdida degeneralidad, que T visita las ciudades siguiendo el orden 1, 2, 3,…, n, 1. Podemos definir la vecindad deintercambio-2 para T como la sustitución de los vértices (i, j), y (k, l) por otros dos; (i, k) y (j, l), o bien(i, l) y (j, k) para formar otro recorrido T’. Obsérvese que d(T, T’) = 4. La vecindad de intercambio-2 sepuede describir de un modo más formal aplicando 4 operaciones de la subrutina Move, en las que laprimera de ellas suprime del recorrido el vértice (i, j), la segunda inserta el vértice (i, k), la tercerasuprime el vértice (k, l) y la cuarta y última inserta el vértice (j, l). Llamemos G = (N, A) a un grafo no dirigido en los nodos n; y P = v1, …, vn a un camino deHamilton de G con n nodos. Por otra parte, un stem and cycle (término acuñado por Glover [30]) es unsubgrafo expandido de n arcos que se obtiene añadiendo un arco (i, j) a un camino de Hamilton, en elque i es un nodo extremo del camino. Obsérvese que, al ser i y j los nodos extremos del camino, laestructura stem and cycle es un ciclo de Hamilton, o, de modo equivalente, un recorrido. Si T es uncamino o una estructura del tipo mencionado, indicaremos su longitud total por medio de f(T). La heurística de Lin y Kernighan permite la sustitución de un total de n vértices al moverse de unrecorrido S a un recorrido T; es decir, d(S, T) equivale a un valor arbitrario k = 2n. El algoritmocomienza por suprimir un vértice del recorrido original T1 construyendo un camino de Hamilton T2. Enlo sucesivo, uno de los puntos extremos de T2 será constante y permanecerá constante hasta el fin de laiteración. El otro punto extremo se selecciona al comenzar la búsqueda. El movimiento par inserta unextremo en el camino de Hamilton T2j que incide en el punto extremo no constante para obtener una 7
  • 8. estructura stem and cycle T2j+1. Por su parte, los movimientos impares de la iteración suprimen unextremo de la estructura stem and cycle existente T2j-1 para obtener un camino de Hamilton T2j. De cadacamino de Hamilton T2j se construye implícitamente un recorrido factible S2j uniendo los dos nodosextremos. Al final de la iteración de Lin y Kernighan obtenemos el nuevo recorrido de la solución baseSi, de modo que f(Si) =f(S2j) para todo j. A continuación describiremos con mayor detalle los pasos del algoritmo de Lin y Kernighan. Cuandose produce un movimiento par, el vértice que se va a añadir es el de longitud mínima, que incide sobre elpunto extremo no constante, lo que se añade al camino de Hamilton T2j únicamente si f(S)-f(T2j+1) > 0.El algoritmo de Lin y Kernighan [50] describe también un medio de mejorar la forma de elegir estevértice. La elección del vértice que se va a añadir al camino de Hamilton T2j se realiza maximizandof(T2j) – f(T2j+2). Por otra parte, los vértices que se van a suprimir en los movimientos impares vienendeterminados exclusivamente por la estructura stem and cycle T2j-1 creada en el movimiento anterior, demodo que T2j sea un camino de Hamilton. A la hora de elegir los vértices que se van a añadir, también sepueden tener en cuenta otras restricciones. Varios estudios han considerado distintas combinaciones derestricciones, como que un vértice ya suprimido no se pueda volver a añadir o que un vértice añadidopreviamente no pueda suprimirse en un movimiento posterior. Por último, el algoritmo de Lin yKernighan termina con un óptimo local cuando no hay posibilidad de construir un recorrido que lomejore tras considerar todos los nodos como el nodo fijo original. Veamos una ilustración del algoritmo de Lin y Kernighan con un ejemplo numérico, partiendodel recorrido de 10 nodos que muestra la figura 1(a). El algoritmo suprime primero el arco (1, 2)creando el camino de Hamilton de la figura 1(b). A continuación se añade el arco (2, 6), lo que da comoresultado la estructura stem and cycle de la figura 1(c). 8
  • 9. Figura 1. Ilustración del algoritmo de Lin y Kernighan (a) Recorrido con 10 nodos. (b) Camino de Hamilton. (c) Estructura stem and cycle.Al suprimir el vértice (6, 5) de esta estructura obtenemos un camino de Hamilton, mientras que siañadimos el vértice (5, 8) tenemos otra estructura stem and cycle. Los movimientos de inserción devértices en la heurística de Lin y Kernighan se hallan guiados por criterios de costes basados en el"beneficio acumulativo", definiéndose los movimientos de supresión de vértices únicamente conintención de generar la estructura del camino. El algoritmo de Lin y Kernighan alcanza un óptimo localcuando, después de haber considerado todos los nodos como el nodo de inicio, no se obtienensoluciones de mejora. Diversas variantes de este algoritmo han dado lugar a soluciones heurísticas de gran calidad. Se 9
  • 10. trata de algoritmos que recurren a distintas mejoras, como los movimientos 2-opt, 3-opt y 4-optespecial. ([29], [41], [42], [50], [51], [52], [64]) a fin de obtener un itinerario que no se podría diseñarmediante los movimientos básicos de la heurística de Lin y Kernighan. Asimismo, se empleanestructuras de datos capaces de actualizar de modo eficiente los itinerarios, y así poder lograr tanto laeficiencia computacional como la calidad de la solución ([24], [42]). Papadimitriou [54] ha demostradoque el problema de determinar un óptimo local con respecto a una versión del algoritmo de Lin yKernighan es un problema PLS-completo. Podemos definir los métodos de profundidad variable para el TSP mediante un procedimiento degeneralización de la heurística de Lin y Kernighan. Se trata de un procedimiento que toma como datosde partida un itinerario factible S, aplicando a continuación la función Move más arriba. En cadaiteración, esta función crea el par (Tj, Sj), en el que el subconjunto Tj puede ser una solución factible, obien ser una instancia no factible de una estructura de referencia; y el subconjunto Sj es factible. Acontinuación, se invoca la función Move para r iteraciones, dependiendo el valor de r de la regladirectriz adecuada. Por último, el procedimiento de búsqueda de profundidad variable da comoresultado el subconjunto factible Sk que tenga el mejor valor de función objetivo hallado en labúsqueda. Procedimiento: búsqueda de profundidad variable (S); Inicio: S1 := T1 := S; para j := 2 a r (Tj, Sj) = Move(S j-1, Tj-1); seleccionar el conjunto Sk que minimice (f(Sj): 1 ≤ j ≤ r); Final Este tipo concreto de búsqueda de profundidad variables se basa en una heurística llamada “Move”,que crea de forma sistemática un itinerario de soluciones comenzando por la solución inicial. Al tratarsede un marco bastante flexible, existen varias formas de diseñar este procedimiento. Las característicasdel diseño de Move pueden suponer la diferencia entre una heurística capaz de proporcionar resultadosy otra que no lo sea tanto. En el procedimiento arriba descrito, hemos supuesto que Move crea en cada fase una soluciónsimple. En realidad, esta heurística ofrece la posibilidad de crear soluciones factibles múltiples en cadafase ([30], [61]) o ninguna solución factible en una fase determinada ([30], [58]). Muchos métodos de profundidad variable requieren las soluciones intermedias Tj para podercumplir ciertas propiedades topológicas (o estructurales). En el algoritmo de Lin y Kernighan, por 10
  • 11. ejemplo, es necesario que para cada valor impar de j, Tj sea una estructura stem and cycle, así como que,para cada valor par de j, Tj sea un camino de Hamilton. En el siguiente apartado veremos tambiénejemplos en los que Tj cumple otras propiedades que no son estructurales; como, por ejemplo, las quedependen del orden de los índices. Glover [30] consideró una clase estructurada de métodos de profundidad variable llamadosejection chains y basados en métodos de itinerarios alternativos clásicos, ampliando y generalizando lasideas de Lin y Kernighan. En palabras de Glover: “De modo muy esquemático, una ejection chain seinicia seleccionando un conjunto de elementos que van a experimentar un cambio de estado (e.g, ocuparnuevas posiciones, recibir nuevos valores o ambas cosas). Este cambio tendrá por efecto identificar unaserie de conjuntos distintos, que tengan la propiedad de que los elementos de al menos uno de ellosdeben ser “eyectados” de su estado actual. Por lo general, los pasos de cambio de estado y de eyecciónse alternan, y las opciones existentes para cada uno de ellos dependerán del efecto cumulativo de lospasos previos (estando influido generalmente, aunque no siempre, por el paso inmediatamente anterior).En algunos casos, una secuencia en cascada de operaciones indica que se ha producido un efectodominó. La terminología de la "ejection chain" pretende sugerir, no limitar; proporcionando un hiloconductor que sirva para vincular una serie de procedimientos útiles para sacar el máximo partido dela estructura sin fijar reglas de admisión que excluyan otros tipos de clasificaciones.” (La cursiva es unañadido). En el presente estudio, emplearemos una definición más restrictiva de las ejection chains. Así,nos referiremos al método de profundidad variable como una ejection chain si: (i) |T1| = |T3| = |T5| =…= n, y: (ii) |T 2| = |T4| = |T6| =…= n +1 (o n-1).Para cada valor par de j, si |Tj| = |S|- 1, Tj se obtiene a partir de Tj-1 eyectando un elemento. De otromodo, |Tj| = |S|+1, y Tj+1 se obtiene eyectando un elemento a partir de Tj. Muchos de los métodos deprofundidad variable publicados en estudios pueden contemplarse como ejection chains. Estos métodossuelen suponer la construcción de diferentes estructuras de referencia, junto con una serie de reglas quepermitan obtener distintas soluciones factibles. Por lo que sabemos, todos los métodos de profundidadvariable aplicados al problema del viajante de comercio de los que tenemos noticia puedencontemplarse como ejection chains. Podemos suponer que los nodos del grafo de vecindad referido a la vecindad de Lin yKernighan se hallan compuestos por caminos y estructuras de stem-and-cycle. (Recuérdese que lositinerarios son también instancias de stem-and cycle. Los puntos finales de cada vértice del grafo devecindad enlazarían un camino con una estructura stem and cycle. La técnica de búsqueda sería la 11
  • 12. propuesta por Lin y Kernighan [44], y el proceso de selección consistiría en elegir el mejor de lositinerarios hallados al realizar la búsqueda. Por consiguiente, las estructuras de referencia descritas paralas ejection chains serían los nodos del grafo de vecindad de las técnicas de ejection chain. Toda técnicaen la que la siguiente solución básica sea mucho mayor que la distancia unitaria desde la soluciónbásica existente es un "método de profundidad variable". Una ejection chain es un método deprofundidad variable en el que los vecinos se caracterizan por ser subconjuntos los unos de los otros (yen los que, por tanto, un elemento se eyecta al trasladarse del más grande al más pequeño). En el método descrito anteriormente, las técnicas de profundidad variable se basan en la funciónMove. También es posible crear subconjuntos de tamaño exponencial de Nk en los que se realicenbúsquedas mediante flujos de redes. En estas vecindades, se puede también llegar a cualquier vecinomediante una secuencia de funciones Move en un grafo de vecindad adecuadamente definido. Convienetener presente que, en el caso del algoritmo de Lin y Kernighan, la vecindad es de tamaño polinómico, yque es la propia búsqueda la que lleva a obtener soluciones sustancialmente diferentes de la soluciónbásica. En el siguiente apartado analizaremos estas técnicas basadas en flujos de redes, algunas de lascuales pueden también contemplarse como técnicas de ejection chain cuando existe un medio natural deasociar una ejection chain (una secuencia alternativa de adiciones y supresiones) a elementos de lavecindad ([30], [31], [58], [21]). Los algoritmos basados en la profundidad variable y en la ejection chain se han aplicado conéxito a la obtención de soluciones válidas para diversos problemas de optimización combinatoria.Autores como Glover [30], Rego [61], Zachariasen y Dum [83], Johnson y McGeoch [42], Mak yMorton [51], y Pesch y Glover [55] han utilizado estos algoritmos para la resolución del problema delviajante de comercio. El problema del enrutamiento de vehículos ha sido tratado por Rego y Roucairol[63] y Rego [62], mientras que Dondorf y Pesch [13] han propuesto la solución a algoritmos declustering mediante ejection chains. Por su parte, Yagiura et al. ([80]) han considerado la aplicación demétodos de profundidad variable al problema de las asignaciones en general, al igual que distintasvariantes de la ejection chain [79]. Asimismo, Laguna et al. [47] aplican algoritmos cortos de estructuraejection chain al problema de las asignaciones multinivel en general. Estas técnicas se aplican también alproblema de la partición del grafo uniforme ([16], [20], [44], [53]), al problema de las asignaciones porcategorías ([3]), al problema de asignación de canal ([17]), y al de distribución de turnos de enfermería-([14]). Por último, Sourd [70] aplica una clase muy general de procedimientos de mejora de vecindadesa muy gran escala en los que la distancia entre dos vecinos depende de las tareas programadas enmáquinas no relacionadas. El desarrollo de estas vecindades se lleva a cabo mediante la generación deárboles de enumeración parciales, aunque de tamaño grande, basados en las soluciones existentes y 12
  • 13. buscados por heurística.4. Algoritmos de mejora basados en flujos de redes En este apartado estudiaremos algoritmos locales de mejora en los que la búsqueda porvecindades se lleva a cabo mediante algoritmos basados en flujos de redes. Las técnicas de flujos deredes empleadas para identificar vecindades de mejora pueden agruparse en tres categorías: (i) métodosde búsqueda de ciclo de coste mínimo; (ii) métodos basados en la programación dinámica o en la técnicadel camino más corto; y (iii) métodos basados en la búsqueda de asignaciones y ajustes de coste mínimo.Las vecindades definidas por ciclos pueden contemplarse como generalizaciones de vecindades de dosintercambios, mientras que las basadas en asignaciones se pueden entender como generalizaciones devecindades a partir de inserciones. En los tres subapartados que siguen, se ofrecen definiciones generalesde estas vecindades exponenciales, describiéndose además los algoritmos de flujos de redes empleadosen la búsqueda de vecindades mejoradas. En muchos de los problemas, la vecindad de mejora sedetermina aplicando un algoritmo de flujos de redes a un grafo relacionado, lo que se conoce como grafode mejora.4.1 Vecindades definidas por ciclos En este subapartado, comenzaremos por definir un problema de partición genérica, para acontinuación pasar a definir la vecindad de dos intercambios y la vecindad de intercambio cíclico. Sea A = {a1, a2, a3, …, an} un conjunto formado por n elementos. El conjunto {S1, S2, S3, …, SK}define una Kpartición de A f A cuando cada conjunto Sj es no vacío, los conjuntos no se hallanagrupados por pares, y su punto de unión es A. Para cualquier subconjunto S de A, llamaremos d[S] alcoste de S. Por tanto, el problema de partición consiste en hallar una partición de A en tantossubconjuntos de K como sean necesarios para minimizar Σk d[Sk]. Sea {S1, S2, S3, …, SK} cualquier partición factible. Diremos entonces que {T1, T2, T3, …, TK}será un 2-vecino de {S1, S2, S3, …, SK} cuando pueda obtenerse intercambiando dos elementos que seencuentren en subconjuntos diferentes. La vecindad de dos intercambios de {S1, S2, S3, …, SK} se hallaformada por todas las vecindades-2 de {S1, S2, S3, …, SK}. De donde deducimos que {T1, T2, T3, …, TK}es una vecindad cíclica de {S1, S2, S3, …, SK} cuando se pueda obtener transfiriendo elementos simples alo largo de una secuencia de subconjuntos de k ≤ K en S. Sea también (Sh1, Sm2, Sn3, …, Spk) unasecuencia de k subconjuntos tal que hace necesario que h = p, que es el último subconjunto de lasecuencia idéntico a Sh1. A esta transferencia de elementos la llamaremos intercambio cíclico, quedando 13
  • 14. ilustrada en la figura 2. En el presente ejemplo, el nodo 9 pasa del subconjunto S1 al subconjunto S4; elnodo 2 se transfiere del subconjunto S4 al subconjunto S5, el nodo 3 pasa del subconjunto S5 al S3 y,finalmente, el intercambio se completa transfiriendo el nodo 14 del subconjunto S3 al S1. De un modoanálogo puede definirse un vecino de camino. Desde un punto de vista matemático, no resulta difícilconvertir un intercambio de camino en un intercambio cíclico añadiendo los nodos de prueba adecuados.Por lo general, el número de vecindades cíclicas es sustancialmente mayor que el de vecindades de dosintercambios (2-vecindades). Mientras que hay O(n2) 2-vecindades para un valor fijo de k, existen O(nK)vecinos cíclicos. Si se permite que la variación de k sea paralela a la de n, tendremos un númeroexponencial de vecinos cíclicos. Thompson [75], Thompson y Orlin [76], y Thompson y Psaraftis [77] han mostrado la forma deobtener una vecindad mejorada en la vecindad de intercambio cíclico hallando un ciclo de "subconjuntono agrupado" de coste negativo en un grafo de mejora. Expondremos a continuación cómo construirdicho grafo. Sea A = {a1, a2,…, an} que es el conjunto de elementos que componen el problema departición del conjunto original, y llamemos S[i] al subconjunto en el que se encuentra el elemento ai. Elgrafo de mejora es un grafo G = (V, E) en el que V = {1, 2,…, n} es un conjunto de nodos que secorresponde con los índices de los elementos de A del problema original. Sea asimismo E = {(i, j): S[i]≠ S[j]}, donde un arco (i, j) corresponde a la transferencia del nodo i desde S[i] a S[j] y a la supresión dej desde S[j]. Para cada arco (i, j) ∈ E, haremos que c[i, j] = d[{i} ∪ S[j]{j}] – d[S[j]], es decir, elincremento en el coste de S[j] cuando se añade i al conjunto y se suprime j. Decimos que un ciclo W en 14
  • 15. G no está agrupado en el subconjunto cuando, para cada par i y j de los nodos de W, S[i] ≠ S[j], esdecir, los elementos de A correspondientes a los elementos de W se encuentran todos en subconjuntosdiferentes. Existe una correspondencia entre el mantenimiento de costes uno a uno en los intercambioscíclicos del problema de la partición y el mantenimiento en los ciclos no asignados en el subconjunto delgrafo de mejora. Concretamente existe, para cada intercambio cíclico de coste negativo, un ciclo noasignado en el subconjunto del grafo de mejora. Desgraciadamente, el problema consistente endeterminar si hay un ciclo no asignado en el subconjunto del grafo de mejora es un problema NP-completo, y el consistente en hallar un ciclo no asignado en el subconjunto de coste negativo es NP-difícil. (Véase, por ejemplo, Thompson [75], Thompson y Orlin [76], y Thompson y Psaraftis [77].) Aun cuando este último problema sea NP-difícil, existen heurísticas que han demostrado sueficacia en la búsqueda del grafo. (Véase, por ejemplo, Thompson y Psaraftis [77] y Ahuja et al. [2].) La búsqueda por vecindad de intercambio cíclico se aplica con éxito a varios problemas deoptimización combinatoria que pueden caracterizarse como problemas de partición específica.Thompson y Psaraftis [77], Gendreau et al. [25], y Fahrion y Wrede [19] resuelven el problema delenrutamiento de vehículos mediante este tipo de búsqueda, mientras que Frangioni et al. [23] aplicanintercambios cíclicos a la programación de máquinas en periodos mínimos. Thompson y Psaraftis [77]han demostrado también la aplicación de este método a problemas de programación . Por su parte, Ahujaet al. [2], empleando intercambios cíclicos, han desarrollado las mejores soluciones existentes para unconjunto ampliamente usado de instancias de referencia en problemas de árboles de expansión mínimacapacitados. La idea de hallar soluciones de mejora mediante la determinación de ciclos de coste negativo engrafos de mejoras se ha aplicado también en otros contextos. Talluri [74] identifica intercambios deahorro de costes de equipo entre turnos de vuelos en problemas de asignación diaria de flota aéreahallando ciclos de coste negativo en una red relacionada. El problema de asignación de flota puedeplantearse como un problema de flujo multiservicio entero sujeto a restricciones de lado, en el que cadaservicio hace referencia a un tipo de flota. Talluri considera una solución dada restringida a dos únicostipos de flota, buscando a partir de ella mejoras que puedan obtenerse mediante el intercambio de unnúmero de vuelos entre ambos tipos de flota. Así, desarrolla un grafo de mejora asociado, demostrandoque las vecindades de mejora se corresponden con los ciclos de coste negativo del grafo de mejora.Schneur y Orlin [68] y Rockafellar [65] resuelven el problema de flujo multiservicio lineal detectandoflujo y enviándolos iterativamente por los ciclos de coste negativo. Esta técnica se extiende, de hecho, ala heurística de mejora basada en ciclos para el problema de flujo multiservicio entero. En [81], Wayneofrece un algoritmo de cancelación de ciclo para resolver el problema del flujo de coste mínimogeneralizado. Firla et al. [22] introducen un grafo de mejora para la intersección de dos programas 15
  • 16. enteros cualesquiera. Los caminos y ciclos de esta red corresponden a posibilidades de mejora desoluciones factibles. Además, esta red da lugar a una definición algorítmica del problema del b-ajuste depeso bipartito. Los algoritmos analizados por Glover y Punnen [28] y Yeo [78] permiten construiritinerarios del viajante de comercio que resultan mejores que un número exponencial de itinerarios.Estos algoritmos se pueden contemplar, asimismo, como el cálculo de un ciclo de coste mínimo en unared considerada de capas especiales implícitamente considerada. Veremos esta heurística de forma másdetallada en el apartado 5.4.2 Vecindades definidas por caminos (o por programación dinámica) A continuación analizaremos tres tipos distintos de algoritmos de búsqueda por vecindadbasados en caminos más cortos o en programación dinámica, tomando como contexto el problema delviajante de comercio. Aplicados al mismo, podemos contemplar estos enfoques de búsqueda porvecindad como: (i) adición y supresión de vértices secuencialmente, (ii) aceptación en intercambiosparalelos múltiples, entendiendo definido cada intercambio como la permuta del orden actual de dosciudades en un recorrido, y (iii) cambios cíclicos en el itinerario existente. Veamos estas vecindades conmayor detalle.4.2.1 Creación de un nuevo vecino mediante la adición o supresión de arcos secuencialmente Examinaremos en primer lugar una clase de métodos basados en el camino más corto, queconsideran los vecinos obtenidos añadiendo o suprimiendo vértices alternativamente del itinerarioexistente. Se trata de métodos que realizan de modo exhaustivo búsquedas en la vecindad de ejectionchain tratada en el apartado 3, con el añadido de restricciones adicionales en los vértices. Parasimplificar, damos por hecho que el itinerario S pasa por las ciudades siguiendo el orden 1, 2, 3, …, n, 1.Empleando la terminología del apartado 3, llamaremos itinerario T a un vecino de k-intercambios de S, yal camino que va desde S a T, la secuencia S = T1, …, TK = T. Estas vecindades corresponden asoluciones por aproximaciones sucesivas creadas mediante los caminos pares e impares descritos enPunnen y Glover [58] entre varias otras vecindades y soluciones por aproximaciones sucesivasconstruidas a partir de diversas clases de estructuras de camino. La solución por aproximacionessucesivas generada por los caminos impares ya fue desarrollada de modo independiente por Firla etal.[21]. A efectos ilustrativos de este tipo de solución generada a partir de caminos tanto pares comoimpares, veamos el siguiente algoritmo: (i) Se elimina el vértice (n, 1) para obtener un camino de Hamilton T2 y se añade el vértice 16
  • 17. (1, i) desde el nodo 1 al nodo i (donde i > 2) para obtener una estructura stem and cycle T3 . (ii) El actual nodo terminal del camino es el nodo i. Se elimina el vértice (i, i-1) y se añade el vértice (i-1, j) para i < j < n, creando primero un camino de Hamilton y a continuación una estructura stem and cycle. (iii) Se comprueba si se ha alcanzado un criterio de terminación. Si se alcanza, se sigue al paso (iv). Si no, se define i = j y se vuelve al paso (ii). (iii) Se elimina el vértice (j, j-1) y se añade el vértice final (j-1, n) para completar el recorrido. Figura 3. Ilustración del intercambio de camino alternativo. La figura 3 ilustra este proceso en un itinerario de 9 nodos S = (1, 2,…, 9, 1). Elprocedimiento de intercambio de camino se inicia con la supresión del vértice (n, 1) y la adición delvértice (1, 4). A continuación se elimina el vértice (3, 4) y se añade el vértice (3, 7). Por último, secrea el nuevo itinerario T suprimiendo el vértice (6, 7) y añadiendo el vértice (6, 9). En la figura3(a) los vértices añadidos aparecen representados mediante líneas en negrita y los eliminadosmediante una raya sobre el vértice. La figura 3(b) ilustra el nuevo itinerario que se obtiene tras elintercambio de camino. Firla et al.[21], Glover [30] y Punnen y Glover [58] han demostrado que se puede obtener unasolución de mejora para esta vecindad en tiempo O(n2), hallando en un grafo de mejora un caminode longitud mínima par o impar. Describimos aquí un grafo de mejora que permite identificar lamejor vecindad de un itinerario hallando un camino más corto con un número de nodos par o impar.Recordemos que S = (1, 2, 3,…, n, 1) es el itinerario existente del problema del viajante de 17
  • 18. comercio con n nodos. El grafo de mejora es un grafo G = (V, E) en el que V = {1, 2,…, n}, lo quecorresponde a los nodos del problema original, y donde E = {(i, j) : 1 = i < j-1 < n} es un conjuntode arcos dirigidos. Los arcos (1, j) ∈ E (de modo que 2 < j = n) corresponden a la supresión delvértice (n, 1) y a la adición del vértice (1, j), y los arcos (i, j) ∈ E (de modo que 1 < i < j-1 < n)corresponden a la supresión del vértice (i-1, i) y la adición del vértice (i-1, j) en el recorrido originalS. Si d[i, j] es el coste de trasladarse de la ciudad i a la ciudad j cuando asociamos un coste c[1, j] =-d[n, 1] + d[1, j].a cada arco (1, j) ∈ E de modo que 2 < j = n y un coste c[i, j] = -d[i-1, i] + d[i-1, j] acada arco (i, j) ∈ E tal que 1 < i < j-1 < n. Por último, hallar un camino de coste negativo G desde elnodo 1 a n permite identificar un intercambio k provechoso. Por otra parte, en [58] se examinan soluciones por aproximaciones sucesivas creadas apartir de caminos pares e impares, nuevas estructuras de caminos, como caminos cortados ycaminos inversos, que llevan a distintas soluciones por aproximaciones sucesivas, y estructuras dereferencia. El tamaño de la vecindad generada únicamente por caminos pares e impares es Ω (n2n).Las técnicas que aceleran la búsqueda en vecindades son importantes incluso en vecindades cuyotamaño no sea exponencial. Así, por ejemplo, gracias al empleo de un algoritmo del camino máscorto en un grafo de mejora acíclico, Glover [31] ha obtenido una clase con los mejoresmovimientos 4-opt en tiempo O(n2).4.2.2 Creación de un nuevo vecino mediante intercambios compuestos La segunda clase de algoritmos de búsqueda local definidos mediante intercambios decaminos consiste en una generalización de la vecindad de intercambio. Dado un itinerario delproblema del viajante de comercio T = (1, 2, 3,…, n, 1) con un número n de nodos, la vecindad deintercambio generará soluciones intercambiando las posiciones de los nodos i y j por 1 ≤ i ≤ j ≤ n.Por ejemplo, supongamos que i = 3 y que j = 6, T = (1, 2, 6, 4, 5, 3, 7,…, n, 1) es un vecino) de Tbajo la operación de intercambio. Se dice que dos operaciones de intercambio que conecten el nodoi con j, y el nodo k con l son independientes cuando max{i, j} < min{k, l}, ó cuando min{i, j} >max{k, l}. Entonces, una vecindad a gran escala en el itinerario T se puede definir componiendo (esdecir, tomando en su totalidad) un número arbitrario de operaciones de intercambio individuales. Congram et al. [9] y Potts y van de Velde [57] aplicaron esta vecindad de intercambioscompuestos al problema de la programación de la lentitud ponderada total de una máquina y al delviajante de comercio (TSP), respectivamente, llamando a este enfoque dynasearch. En su estudio,Congram et al. [9] demuestran que el tamaño de la vecindad es O(2n-1) y presentan una recursión deprogramación dinámica capaz de hallar la mejor vecindad en tiempo O(n3). Hurink [40] aplica un 18
  • 19. supuesto especial de la vecindad de intercambio compuesto en la que sólo se permite sustituir paresadyacentes en el contexto de problemas de funcionamiento de una única máquina, y demuestra quees posible obtener un vecino de mejora en tiempo O(n2) hallando el camino más corto en el grafo demejora apropiado. A continuación describiremos un grafo de mejora que nos sirva de ayuda en la búsqueda de lavecindad de intercambio compuesto. Sea T = (1, 2, 3,…, n, 1) un itinerario del viajante de comerciode n nodos. El grafo de mejora es un grafo G = (V, E), donde (i) V = {1, 2,…, n, 1 , 2 ,…, n} es aun conjunto de nodos correspondiente a los nodos del problema original y una copia de éstos, y (ii)E es un conjunto de arcos dirigidos (i, j) ∪ (j, k), en el que un arco (i, j) corresponde alintercambio de los nodos i y j, y un arco (j, k) indica que el nodo k es el primer nodo del siguienteintercambio. Así, por ejemplo, un camino de tres arcos (i, j), (j, k), (k, l) ) en G representa dosoperaciones de intercambio que cambian el nodo i por el j, y el nodo k por l. Para construir elconjunto de arcos E, se tiene en cuenta cada par de nodos (i, j) y (j, k) en V, añadiéndose el arco (i,j) a E si, y solamente si, j > i.> 1. El arco (j, k) se añade a E si, y solamente si, j = 1 y k > j ó j > 1 yk > j + 1. Para cada arco (i, j) ∈ E, se asocia un coste c[i, j] equivalente al incremento neto en elcoste óptimo del itinerario del viajante de comercio tras suprimir los vértices (i-1, i), (i, i+1), (j–1, j)y (j, j+1) y añadir los vértices (i-1, j), (j, i+1), (j-1, i) y (i, j+1). En otras palabras, si d[i, j] es el costede trasladarse del nodo i al nodo j en el problema original, y d[n, n+1] = d[n, 1], tenemos que: c[i, j] = (-d[i-1, i] – d[i, j] - d[j, j+1] ) + (d[i-1, j] + d[j, i] + d[i, j+1]) para j = i+1, y c[i, j] = (-d[i-1, i] – d[i, i+1] - d [j-1, j] - d[j, j+1] ) + (d[i-1, j] + d[j, i+1] + d[j-1, i] + d[i, j+1]) para j > i+1. El coste c[j, k] de todos los vértices (j, k) se define como igual a 0. Vemos que hallar el mejor vecino de un itinerario en el TSP para la vecindad de intercambiocompuesto equivale a hallar el camino más corto en el grafo de mejora y, por tanto, precisa un tiempoO(n2). Obsérvese que, al ser el TSP un problema cíclico, uno de los nodos se mantiene fijo durante elintercambio. En la construcción más arriba expuesta del grafo de mejora, suponemos, sin pérdida degeneralidad, que no se permite mover el nodo 1, por lo que la búsqueda por vecindad se realiza hallandoel camino más corto desde el nodo 1 al nodo n o al nodo n. La recursión de programación dinámica queofrecen Congram et al. [9] para realizar búsquedas en la vecindad llevará igualmente un tiempo O(n2)cuando se aplique al problema del viajante de comercio. El algoritmo del camino más corto visto arribaemplea un tiempo O(n3) cuando se aplica al problema de la programación del retraso ponderado total, yaque ese tiempo O(n3) es el que se precisa para calcular los costes de los arcos. 19
  • 20. 4.2.3 Creación de un nuevo vecino mediante un intercambio cíclico La última clase de algoritmos de búsqueda local que trataremos en este apartado se basa en untipo de intercambio cíclico de itinerarios piramidales (Carlier y Villon [8]). Se dice que un itinerario espiramidal cuando comienza en la ciudad 1, visita a continuación las ciudades en orden creciente hastallegar a la ciudad n, y termina volviendo a la ciudad 1 pasando por las restantes ciudades en ordendecreciente. Supongamos que T(i) representa la ciudad situada en la posición i-ésima del itinerario T. Unrecorrido T es un vecino piramidal de un recorrido T cuando existe un número entero p tal que: (i) 0 ≤ p ≤ n, (ii) T (1) T (2) = T(i2),…, T (p) = T(ip) con i1 < i2 <…< ip y (iii) T(p+1) = T(j1), T(p+2) = T(j2),…, T(n) = T(jn-p) con j1 > j2 >…> jn-p.Así, por ejemplo, si el itinerario T = (1, 2, 3, 4, 5, 1), el itinerario T = (1, 3, 5, 4, 2, 1) será un vecinopiramidal. Esta vecindad presenta el inconveniente de que (1, 2) y (1, n) pertenecen a todos lositinerarios. Para superarla, Carlier y Villon [8] consideran las rotaciones n asociadas a un itinerario dado.El tamaño de esta vecindad es θ(n2n-1) y en ella puede realizarse una búsqueda en un tiempo O(n3)utilizando n iteraciones de un algoritmo del camino más corto en el grafo de mejora. Describiremos a continuación un grafo de mejora en el que puede hallarse el mejor vecinopiramidal para el TSP resolviendo éste conforme al camino más corto de dicho grafo. Llamemos T = (1,2, 3, …, n, 1) a un recorrido del viajante de comercio con n nodos. El grafo de mejora es un grafo G =(V, E) donde (i) V = {1, 2, …, n, 1, 2,…, n} corresponde a los nodos del problema original y a unacopia de los mismos, y (ii) E es un conjunto de arcos dirigidos (i, j) ∪ (j, k), donde un arco (i, j)corresponde a que los nodos i a j se hallen en un orden consecutivo, y un arco (j, k) corresponde a omitirlos nodos j + 1 a k - 1 y añadirlos en orden inverso al final del itinerario. Para construir el conjunto dearcos E, se tiene en cuenta cada par de nodos en V (i, j) y (j, k). El arco (i, j) se añade a E si, ysolamente si, i ≤ j, y el arco (j, k) se añade a E si, y solamente si, j < k + 1. Para cada arco (i, j) ∈ E,asociamos un coste c[i, j] ] que sea equivalente al incremento neto en el coste del vecino piramidal delitinerario del TSP tras haber añadido el vértice (j+1, i-1,) cuando el itinerario pase en orden inverso porlas ciudades previamente omitidas. Para cada arco (j, k) ∈ E, asociamos un coste c[j, k] que seaequivalente al incremento neto en el coste óptimo del itinerario del TSP tras haber añadido el vértice (j,k) y haber suprimido los vértices (j, j+1) y (k-1, k). Dicho de otro modo, si d[i, j] es el coste dedesplazarse de la ciudad i a la ciudad j en el problema original, entonces, para i < j y j < n-1: c[i, j] = d[j+1, i-1], 20
  • 21. c[j, k] = -d[j, j+1] – d[k-1, k] + d[j, k]. Visto esto, y teniendo en cuenta que es preciso poner especial cuidado a la hora de calcular elcoste de los vértices en los que uno de sus puntos extremos sea 1, 1, n, o n, ya podemos realizar labúsqueda en la vecindad hallando un camino más corto desde el nodo 1 al nodo n o al n. Carlier y Villon[8] demuestran también que, si un itinerario es el óptimo local de la vecindad arriba expuesta, será unóptimo local para la vecindad de dos intercambios. Además de estas tres clases de vecindades, también se ha empleado la programación dinámicapara determinar soluciones óptimas a supuestos especiales del problema del viajante de comercio. Así,Simonetti y Balas [69] resuelven el TSP por medio de ventanas de tiempo, aplicando ciertos tipos derestricciones de precedencia con una técnica de programación dinámica. Burkard et al. [6], por su parte,ponen de manifiesto que, para todo un conjunto de itinerarios de estructura especial que puedenrepresentarse por medio de árboles de prioridad, es posible resolver el TSP en tiempo polinómicoaplicando una técnica de programación dinámica. También demuestran que se puede representar elconjunto de itinerarios piramidales mediante árboles de prioridad y que existe un algoritmo O(n2) para elcálculo del itinerario piramidal más corto. Estos resultados se analizan de modo más detallado en elapartado 5.4.3 Vecindades definidas mediante asignaciones y ajustes En este apartado analizaremos una estructura de vecindad exponencial definida por la obtención deasignaciones de costes mínimos en un grafo mejorado, ilustrando este tipo de vecindad en el contexto delproblema del viajante de comercio (TSP). Asimismo, demostraremos que la vecindad de la asignación sepuede generalizar a vecindades definidas por la obtención de ajustes de coste mínimo en un grafo demejora no bipartito. Para demostrar esta generalización recurriremos al problema de la partición delconjunto. La vecindad de asignación en el problema del viajante de comercio se puede contemplar comouna generalización de la vecindad simple que se define retirando un nodo del itinerario y reinsertándolode manera óptima. Dado un itinerario T de n nodos = (1, 2, 3,…, n, 1), y siendo el coste de desplazarsede la ciudad i a la ciudad j d[i, j], el primer paso para realizar la búsqueda en la vecindad de laasignación será crear un grafo de mejora bipartito del siguiente modo: (i) Para k = ⌊n / 2⌋, se eligen los nodos k del itinerario actual T y se retiran. El conjunto de nodos retirados será V = {v1, v2, …, vk} y el conjunto de nodos restantes, U = {u1, u 2, …, u n- k}. (ii) Se construye un sub-itinerario T´ = (u1, u 2, …, u n-k, u1) qi indica el vértice correspondiente a 21
  • 22. cada (ui, ui+1) para i = 1 a n – k – 1, y qn-k indica el vértice (u n-k, u1) (iii) A continuación se construye un grafo bipartito completo G = (N, N, E) tal que N = {qi: i = 1 a n – k}, N = V, y que el peso en cada vértice (qi, vj) sea c[qi, vj] = d[ui, vj] + d[vj, ui+1] - d[ui, ui+1]. Un vecino de T corresponderá a un itinerario T* obtenido mediante la inserción de los nodos deV en el sub-itinerario T´ y que tenga como máximo un nodo insertado entre los nodos adyacentes de T´.La asignación del coste mínimo de k arcos corresponderá al vecino de coste mínimo de T. Por medio de la figura 4, vamos a demostrar que la vecindad de asignación en el itinerario de 9nodos T = (1, 2, 3, 4, 5, 6, 7, 8, 9, 1). Si V = {2, 3, 5, 8}, podremos construir el sub-itinerario en losnodos en U como T = (1, 4, 6, 7, 9, 1). La figura 4 ilustra el grafo bipartito G únicamente con losvértices de los ajustes, a fin de simplificar. El nuevo itinerario que se obtiene será T" " = (1, 3, 4, 8, 6, 5,7, 9, 2, 1). Obsérvese que cuando k = ⌊n / 2⌋, el tamaño de la vecindad de asignación es igual a Ω(⌊n /2⌋!). 22
  • 23. Figura 4. Ilustración de la vecindad de ajuste. La vecindad de asignación fue introducida por primera vez en el contexto del TSP por Sarvanov yDoroshko [66] para el supuesto en que k = n/2 y n es un valor par. Gutin [33] ofrece una comparaciónteórica entre el algoritmo de búsqueda por vecindades de asignación y los algoritmos de descenso porgradiente local para k = n/2. Punnen [60] ha considerado la vecindad de asignación general para valoresarbitrarios de k y n. En [60] se muestra asimismo una extensión de la vecindad en la que, en vez denodos, se retiran y se reinsertan caminos de modo óptimo resolviendo un problema de ajuste de pesomínimo. Gutin [34], a su vez, demuestra que, para ciertos valores de k, es posible maximizar el tamañode la vecindad, junto con ciertos algoritmos de baja complejidad, por medio de búsquedas en vecindadesrelacionadas. Gutin y Yeo [37] han desarrollado una vecindad basada en la vecindad de asignación, conla que demuestran que es posible trasladarse de cualquier itinerario T a otro itinerario T a través dedicha vecindad en un máximo de 4 pasos. Deineko y Woeginger [12] han estudiado varias vecindadesexponenciales para su aplicación al problema del viajante de comercio y al problema de asignacióncuadrática, basadas en asignaciones y ajustes en grafos bipartitos, así como vecindades basadas en 23
  • 24. órdenes parciales, árboles y otras estructuras combinatorias. La heurística de vecindades basada enajustes se aplica también al problema de ruta de inventarios en los trabajos de Dror y Levy [15]. Puede obtenerse otra clase de vecindades basadas en ajustes mediante el agrupamiento de sub-itinerarios, donde éstos se generan resolviendo un problema de ajuste de peso mínimo bipartito ([43],[59]). En este caso, la búsqueda del mejor itinerario es un problema NP-difícil. Para realizar la búsquedaen este tipo de vecindades existen heurísticas eficaces ([27], [43], [59]), y es posible desarrollaralgoritmos de búsqueda en los mismos aplicando modificaciones de coste u otros medios de control delajuste generado. A continuación veremos una estructura de vecindad basada en ajustes no bipartitos, dentro delcontexto del problema de la partición general de conjuntos contemplado en el apartado 3. Llamemos S ={S1, S2, S3,…, SK} a una partición del conjunto A = {a1, a2, a3,…, an}. A continuación, construyamos ungrafo completo G = (N, E) tal que cada nodo i para 1 ≤ i ≤ K represente el subconjunto Si en S. Lospesos c[i, j] del vértice (i, j) de G se pueden construir separadamente conforme a una variedad de reglas,una de las cuales es la siguiente: (i) Sea la contribución del coste del subconjunto Si al problema de la partición d[Si]. (ii) Para cada vértice (i, j) en E, se combinan los elementos de Si and Sj, y se vuelven a repartir óptimamente en dos subconjuntos, a los que llamaremos Si y Sj. (iii) Luego c[i, j] = (d[Si] + d[Sj]) – (d[Si] + d[Sj]). Obsérvese que, si se eliminan de G los vértices con pesos no negativos, cualquier ajuste de costenegativo que se haga en este grafo definirá un coste vecino de mejora de S. Tailard ha aplicado este tipode ideas a una clase general de problemas de clustering ([71]), y al problema del enrutamiento devehículos ([72]).5. Casos especiales resolubles y vecindades relacionadas Existen gran cantidad de estudios relativos a casos especiales de problemas de optimizacióncombinatoria NP-difíciles que pueden resolverse de forma eficiente. Particularmente interesantes paranosotros son aquellos casos especiales que se pueden obtener a partir del problema NP-difícil originallimitando la topología del problema, o añadiendo restricciones al problema original, o por medio de unacombinación de estos dos factores. Al basar vecindades en estos supuestos especiales, a menudo sepueden desarrollar vecindades de tamaño exponencial en las que es posible realizar búsquedas en tiempopolinómico. Conviene señalar que la mayoría de estas técnicas no se han probado experimentalmente,por lo que cabe esperar que produzcan óptimos locales poco satisfactorios. Obsérvese asimismo que lavecindad de intercambio cíclico vista en el apartado 4 se basa en un algoritmo O(n2) para la obtencióndel itinerario piramidal de coste mínimo. 24
  • 25. La siguiente ilustración tiene que ver con los grafos de Halin. Un grafo de Halin es aquel que seobtiene insertando en el plano un árbol que no tenga nodos de grado 2, y uniendo a continuación losnodos hoja mediante un ciclo, de forma que el resultado sea un grafo planar. Cornuejols et al. [10] hanpropuesto un algoritmo O(n) que resuelve el problema del viajante de comercio mediante un grafo deeste tipo. Hay que tener en cuenta que los grafos de Halin pueden tener un número exponencial deitinerarios TSP, como ocurre en el ejemplo de la figura 3 (tomado de [10]). Vamos a demostrar cómo los grafos de Halin pueden emplearse para construir vecindades demuy gran tamaño para su aplicación al problema del viajante de comercio. Supongamos que T es unitinerario. Decimos que H es una extensión de Halin de T cuando H es un grafo de Halin y T es unsubgrafo de H. La figura 5 ilustra una extensión de Halin para el itinerario T = (0, 1, 2, …, 9, 0).Imaginemos que existe un procedimiento eficiente Extensión-de-Halin(T), que permite crear unaextensión de Halin de T. Para crear la vecindad N(T), se haría que H(T) = Extensión-de-Halin(T), y queN(T) = {T : T es un itinerario en H(T)}. Para hallar el mejor itinerario en esta vecindad, buscaríamos elmejor itinerario en H(T). En principio, se podría definir una vecindad mucho mayor: N(T) = { T: existeuna extensión de Halin de T dentro de T}. Pero, por desgracia, sería demasiado difícil realizar unabúsqueda eficiente en tal vecindad, ya que supondría optimizar simultáneamente todas las extensiones deHalin de T. Sería posible desarrollar soluciones parecidas, basadas en el grafo de Halin, para la variantede cuello de botella del problema del viajante de comercio y para el problema del árbol de Steiner,aplicando el algoritmo de tiempo lineal de Philips et al [56] y el de Winter [82], respectivamente. Figura 5. Grafo de Halin (a) Itinerario con 10 nodos. (b) Extensión de Halin 25
  • 26. En los anteriores ejemplos hemos visto itinerarios piramidales, que pueden considerarsecomo un problema del viajante de comercio con restricciones adicionales. También hemosanalizado el TSP restringido a grafos de Halin. En el siguiente ejemplo, en cambio, veremos unavecindad ([28]) que se basa simultáneamente en una clase restringida de grafos con restriccionesadicionales de lado. Glover y Punnen [28] han identificado la siguiente clase de itinerarios, en losque se puede hallar el mejor miembro en tiempo lineal. Sean C1, C2,..., Ck ciclos disjuntos de kvértices, cada uno de los cuales contiene al menos tres nodos, hallándose cada nodo en uno de losciclos. Llamamos "itinerario de eyección de vértice único" (single edge ejection tour) al itinerarioT que presenta las siguientes características:1. | T ∩ Ci| = |Ci| - 1 para i = 1 a k, es decir, T tiene |Ci| - 1 arcos en común con Ci.2. Hay un arco de T dirigido desde Ci a Ci+1 para i = 1 a k-1 y desde Ck a C1. El número de formas de suprimir arcos de los ciclos es, como mínimo, Πi |Ci|, lo que puederesultar un valor exponencialmente alto, al igual que el número de itinerarios de eyección únicos. Parahallar el itinerario de eyección único que resulte óptimo, es preciso resolver un problema del camino máscorto relacionado en un grafo de mejora. El tiempo de ejecución es lineal en el número de arcos. En unitinerario dado, se pueden suprimir k+1 arcos del mismo, crear k caminos, y a continuación transformaréstos en la unión de k ciclos descrita más arriba. Aunque, en principio, la búsqueda por vecindadexplicada anteriormente es fácil de realizar, la calidad de la técnica de búsqueda tiende a ser sensible alas características de la implementación. Glover y Punnen [28] han considerado asimismo vecindadesmás amplias, entre ellas lo que han dado en llamar "double ejection tours" ("itinerarios de eyeccióndoble"). También han propuesto un algoritmo que se ha demostrado eficiente en la optimización de estaclase de itinerarios. Yeo [78] ha estudiado otra vecindad para la versión asimétrica del TSP. Se trata de unavecindad que guarda relación con la de Glover y Punnen [28] (aunque su tamaño es muchísimo mayor),y para la que muestra que el tiempo de búsqueda es O(n3). Burkard y Deineko [7], por su parte, handescubierto otra clase de vecindad exponencial, en la que es posible identificar al mejor miembro entiempo cuadrático. Cada uno de estos tres algoritmos pueden emplearse para desarrollar algoritmos debúsqueda por vecindad a muy gran escala. Sin embargo, por lo que sabemos hasta ahora, ninguno deellos ha sido implementado. Resumiremos las conclusiones del presente apartado presentando un método general paraconvertir una técnica de solución de problemas con restricciones en una técnica de búsqueda porvecindad a muy gran escala. Sea X un tipo de problema de optimización combinatoria NP-difícil, y Xuna restricción de X resoluble en tiempo polinómico. Supongamos, además, que para una instancia 26
  • 27. particular (F, f) de X, y para cada subconjunto factible S en F, existe una subrutina llamada"CreateNeighborhood(S)" que crea una instancia bien estructurada (F , f) de X tal que 1. S sea un elemento de F 2. F sea un subconjunto de F 3. (F , f) sea una instancia de X Llamaremos F a la vecindad X-inducida de S. El enfoque de búsqueda por vecindad consiste eninvocar la subrutina CreateNeighborhood(S) en cada iteración, para luego optimizar (F, f) mediante elalgoritmo de tiempo polinómico. A continuación se sustituye S por el óptimo de (F, f), y el algoritmo seitera. Especial interés presenta el supuesto en el que la subrutina CreateNeighborhood se ejecuta entiempo polinómico y el tamaño de F es exponencial. En este caso, la vecindad no se crearáexplícitamente. Si bien estamos convencidos del enorme potencial de este enfoque en el contexto de labúsqueda por vecindad, lo cierto es que se trata de un potencial sin explotar en su mayor parte, y, lo quees más, que en muchos casos no se sabe bien cómo explotar. Por ejemplo, muchos problemas deoptimización combinatoria NP-difíciles son resolubles en tiempo polinómico cuando se hallanrestringidos a grafos de redes en serie-paralelo. Son ejemplos de ello el problema de la fiabilidad deredes ([67]), el del árbol de expansión de comunicación óptima ([18]), el de cubierta de vértices ([5],[73]), el del conjunto de vértices ([5], [73]), etc. Parecidos resultados se obtienen con problemas deplanificación de horarios comerciales con restricciones de precedencia específicas [46]. Queda en el aireuna cuestión sumamente interesante: cómo sacar el máximo partido de estos algoritmos eficientes paraaplicarlos a grafos de redes en serie-paralelo dentro del contexto de la búsqueda por vecindad.6. Medición de vecindades En este apartado describiremos técnicas de medición de vecindades, que pueden servir como guíapara calibrar el rendimiento de algoritmos de búsqueda local con respecto a las vecindades. Como yahemos indicado, uno de los aspectos críticos del diseño de la heurística de búsqueda por vecindadconsiste en hallar el equilibrio entre el tamaño de la vecindad y el tiempo necesario para llevar a cabo labúsqueda. De ahí que un elemento importante en la medición de vecindades sea el tamaño de lavecindad. Desde el punto de vista del grafo de vecindad, el tamaño de ésta para una solución S puedecontemplarse como el número de arcos dirigidos que salen de S, o, lo que es lo mismo, el grado desalida de S. Para los métodos de profundidad variable, el tamaño de la vecindad no tiene por qué sernecesariamente exponencial, sino que es la búsqueda en sí la que lleva a hallar soluciones radicalmentediferentes a la solución base. Por el contrario, para las técnicas basadas en redes y las que se hallaninducidas por supuestos resolubles, el tamaño de la vecindad es generalmente exponencial. 27
  • 28. La siguiente tabla (tomada en su mayor parte de [6]) muestra un resumen del tamaño de las vecindades anteriormente vistas para el problema del viajante de comercio: Vecindad Tamaño log(tamaño) Tiempo búsqueda Referencia: 2-Opt Ω(n2) Θ(log n) O(n2) Croes [11] k-Opt Ω (nk) Θ (log n) O(nk) Lin [49] Piramidal Ω (2n) Θ (n) O(n2) Klyaus [45] Intercambio cíclico Ω (n2n) Θ (n) O(n3) Carlier y Villion [8] Edge ejection Ω ((12n)1/3) Θ (n) O(n) Glover y Punnen [28] Edge ejection basada Ω (n2n) Ω (n) O(n2) Punnen y Glover [58], en el camino más Glover [30] corto Intercambio cíclico Θ (nk) Θ (log n) O(n2) Ahuja et al. [2](subconjuntos k-fijos) Interc. compuestos Θ (2n-1) Θ (n) O(n2) Potts y van de Velde [57]Basada en ajustes1 Θ(n!/2) Θ (n log n) O(n3) Sarvanov y Doroshko [66] Grafos de Halin Ω(2n) Θ (n) O(n) Cornuejols et al. [10] Árboles PQ 2Θ(n loglog n) Θ (n loglog n) O(n3) Burkard et al. [6] Otra técnica de medición de vecindades que se estudia en la literatura es el grafo del diámetro de la vecindad. La distancia desde un nodo S a un nodo T en el grafo de vecindad es la longitud del camino más corto entre ambos. El diámetro del grafo de vecindad NG es el valor entero positivo más bajo d tal que d(S, T) = d para todos los nodos S y T de NG. Gutin y Yeo [37] han desarrollado vecindades de tamaño exponencial que admiten búsquedas polinómicas para el TSP, y cuyos grafos de vecindad son de diámetro 4; es decir, que para cualquier par de itinerarios T1 y T5, existen itinerarios T2, T3, y T4 tales1 Esto está suponiendo que cuando k = ⌊n/2⌋, los nodos se han suprimido. Si se suprimen menos nodos, esposible obtener mejores cotas de tiempo, por lo que el tamaño de la vecindad disminuiráproporcionalmente. 28
  • 29. que Ti ∈ N(Ti-1) para todo i = 2, 3, 4, 5. El grafo de vecindad para la vecindad basada en intercambioscíclicos estudiada por Carlier y Villon [8] es de diámetro θ(log n). Para un grafo de vecindad dado, decimos que P = i1, i2, …, iK es monótono cuando el valor objetivof(ij) < f(ij-1) para j = 2 a K. Sea dm(S) la longitud del camino monótono más corto desde S a unasolución óptima local. Si dm(S) es exponencialmente grande para cualquier S, se garantiza que unatécnica de búsqueda por vecindad que comience en S sea exponencialmente larga. Supongamos, en elsentido contrario, que dmp(S, T) indica el camino monótono más largo desde S hasta T. Si se garantizaque dmp(S, T) es polinómico, toda técnica de búsqueda por vecindad basada en esta vecindad tendrá unnúmero polinómico de iteraciones. Veamos por último el análisis de dominio de algoritmos de búsqueda por vecindad. El análisis dedominio de un heurístico analiza el número de soluciones "dominadas" por la solución obtenida . Sea αun algoritmo heurístico para un problema de optimización combinatoria que produce una solución S*en F. El número de dominio de α, representado por dom(α), será la cardinalidad del conjunto F(S*),donde F(S*) = {S ∈ F : f(S) ≥ f(S*)}. Si dom(α) = |F|, S* será una solución óptima. El análisis dedominio de varios algoritmos para el TSP se estudia en [27], [28], [35], [36], [38], [59], y [60]. 7. Rendimiento computacional de algoritmos de búsqueda por vecindad a muy gran escala En este apartado estudiaremos brevemente el rendimiento computacional de algunos de losalgoritmos de búsqueda por vecindad a muy gran escala vistos en los apartados anteriores.Comenzaremos por considerar el problema del viajante de comercio. El algoritmo de Lin y Kernighan ysus variantes se consideran mayoritariamente como los mejores heurísticos para este problema. Elamplio estudio computacional llevado a cabo por Johnson y McGeoch [42] corrobora esta impresión enel exhaustivo análisis de rendimiento comparativo que se incluye en él. Rego [61] ha implementadoexperimentalmente algoritmos de ejection chain para el TSP con excelentes resultados que demuestranlas ventajas de su técnica con respecto al algoritmo original de Lin y Kernighan. Punnen y Glover [58],por su parte, han puesto en práctica un algoritmo de ejection chain basado en el camino más corto. Lasimplementaciones de Rego [61] y Punnen y Glover [58] son relativamente sencillas y empleanestructuras de datos simples. Recientemente, Helsgaun [39] ha obtenido resultados computacionales más que notables a partir de 29
  • 30. una implementación compleja del algoritmo de Lin y Kernighan. Aunque su algoritmo emplea loselementos fundamentales de la búsqueda de profundidad variable de estos dos autores, se diferencia deimplementaciones anteriores en varios aspectos clave. Consigue un mejor rendimiento computacionalgracias al manejo eficiente de datos, a movimientos especiales 5-opt, a nuevos movimientos nosecuenciales, a listas de candidatos efectivos, a cálculos de costes, al uso eficiente de cotas superiores encostes de elementos, a la aplicación de información procedente del algoritmo de un árbol de Held y Karpy a la aplicación del análisis de sensibilidad, entre otras cosas. Helsgaun afirma que su algoritmo haproducido soluciones óptimas en todos los problemas de prueba para los que se conoce una soluciónóptima, entre ellos los de 7.397 ciudades y de 13.509 ciudades estudiados por Applegate et al.[4].Helsgaun ha calculado que el tiempo de ejecución medio de este algoritmo es O(n2.2). Para dar unaperspectiva adecuada de lo que este logro supone, hay que tener en cuenta que, para resolver conoptimalidad el problema de 13.509 ciudades mediante un algoritmo exacto de ramificación y corte,Applegate et al. [4] necesitaron tres meses de cálculos realizados con un clúster de tres servidores DigitalAlpha 4100 (con 12 procesadores) y otro clúster de 32 PCs con procesadores Pentium –II. Helsgaun, porsu parte, utilizó un Macintosh de 300 MHz y 3Gigas. Para el problema de 85.900 ciudades, (pla85900del TSPLIB) consiguió obtener una solución mejorada en apenas dos semanas de cálculo en CPU.(Obsérvese también que casi todo el tiempo empleado por Applegate et al. [4] se dedicó a probar que lasolución óptima lo era efectivamente.) En la tabla 1 presentamos un resumen del rendimiento del algoritmo de Rego (REGO) [61], delalgoritmo de Helsgaun-Lin-Kernighan (HLK) [39], del algoritmo de Lin y Kernighan modificado porMak y Morton [51] y del algoritmo del camino más corto de Punnen y Glover (SPG) [58] en instanciaspequeñas del problema del viajante de comercio. La tabla refleja el mejor caso para cada uno de ellos. 30
  • 31. Tabla 1. Instancias pequeñas del TSP: mejor % de desviación del óptimoProblema REGO HLK MLK SPGbier127 0,12 0,00 0,42 0,10u159 0,00 0,00 0,00 ----ch130 ----- 0,00 ----- 0,23ch150 ----- 0,00 ----- 0,40d198 0,30 0,00 0,53 0,33d493 0,97 0,00 ----- 2,65eil101 0,00 0,00 0,00 0,79fl417 0,78 0,00 ----- 0,41gil262 0,13 0,00 1,30 1,81kroA150 0,00 0,00 0,00 0,00kroA200 0,27 0,00 0,41 0,68kroB150 0,02 0,00 0,01 0,07kroB200 0,11 0,00 0,87 0,42kroC100 0,00 0,00 0,00 0,00kroD100 0,00 0,00 0,00 0,00kroE100 0,00 0,00 0,21 0,02lin105 0,00 0,00 0,00 0,00lin318 0,00 0,00 0,57 1,03pcb442 0,22 0,00 1,06 2,41pr107 0,05 0,00 0,00 0,00pr124 0,10 0,00 0,08 0,00pr136 0,15 0,00 0,15 0,00pr144 0,00 0,00 0,39 0,00pr152 0,90 0,00 4,73 0,00pr226 0,22 0,00 0,09 0,11pr264 0,00 0,00 0,59 0,20pr299 0,22 0,00 0,44 1,30pr439 0,55 0,00 0,54 1,29rd100 0,00 0,00 ----- 0,00rd400 0,29 0,00 ----- 2,45ts225 0,25 0,00 ----- 0,00gr137 0,20 0,00 0,00 ---- 31
  • 32. gr202 1,02 0,00 0,81 ----gr229 0,23 0,00 0,20 ----gr431 0,91 0,00 1,14 ---- La tabla 2 muestra un resumen del rendimiento del algoritmo de (REGO) [61], del de Helsgaun-Lin-Kernighan (HLK) [39], y de la implementación de Lin y Kernighan (JM-LK) de Johnson et al. [42](Atención al error: no se ha encontrado la fuente de referencia) para instancias grandes del problema delviajante de comercio. La tabla refleja el % de desviación media para cada algoritmo. Tabla 2. Instancias grandes del TSP: % de desviación media tras varias ejecuciones Problema Rego JM-LK HLK dsj1000 1,10 3,08 0,035 pr1002 0,86 2,61 0,00 pr2392 0,79 2,85 0,00 pcb3038 0,97 2,04 0,00 fl3795 7,16 8,41 ---- fl4461 1,06 1,66 0,001 pla7397 1,57 2,19 0,001 A continuación nos fijaremos en el problema del árbol de expansión mínima capacitado; un supuestoespecial del problema de la partición ya visto en el apartado 4. Abundando en la estructura del problema,Ahuja et al. [2] han desarrollado un algoritmo de búsqueda por vecindad a muy gran escala basado envecindades de intercambios cíclicos. Se trata de un algoritmo de gran eficiencia con el que se hanobtenido soluciones mejoradas para muchos problemas patrón. Actualmente, ofrece la mejor soluciónexistente para cada una de las instancias que aparecen en la lista de patrones, a la que se puede accederen http://www.ms.ic.ac.uk/info.html. Finalmente, en nuestro último ejemplo nos fijaremos en algoritmos de búsqueda por vecindad a muygran escala para problemas de asignación generalizada (GAP). Yagiura et al. [80] han desarrollado unalgoritmo de búsqueda tabú basado en ejection chain para este tipo de problemas y afirman haberobtenido, en un tiempo de cálculo razonable, soluciones superiores o, al menos, comparables, a las 32
  • 33. obtenidas con los algoritmos ya existentes. A partir de comparaciones y experimentos computacionales,se afirma que, en instancias patrón, las soluciones obtenidas por este algoritmo se hallan dentro deóptimos del 16%. Muchas de las referencias de autores citadas a lo largo del presente estudio dan cuenta asimismo deresultados de cálculos basados en sus algoritmos. A ellos nos remitimos para más detalles. Por otra parte,varias vecindades de muy gran escala tratadas en este estudio no han sido probadas experimentalmentedentro de un marco de búsqueda por vecindad a muy gran escala. Las implementaciones efectivas deéstas y otras vecindades son temas para posteriores investigaciones. Agradecimientos: La investigación del primer autor recibió el apoyo de la beca NSF (DMI-9900087). El segundo ytercer autor fueron apoyados parcialmente por las becas NSF (DMI-9810359 y DMI-9820998). El cuartoautor recibió el apoyo de la beca NSERC (OPG0170381). 33
  • 34. Referencias[1] E. Aarts and J.K. Lenstra, Local Search in Combinatorial Optimization, (John Wiley & Sons, NewYork, 1997).[2] R.K. Ahuja, J.B. Orlin, and D. Sharma, New neighborhood search structures for the capacitatedminimum spanning tree problem, Research Report 99-2, Department of Industrial & SystemsEngineering, University of Florida, 1999.[3] V. Aggarwal, V.G. Tikekar, and Lie-Fer Hsu, Bottleneck assignment problem under categorization,Computers and Operations Research 13 (1986) 11-26.[4] D. Applegate, R. Bixby, V. Chvatal, and W. Cook, On the solution of traveling salesman problems,Documenta Mathematica, Extra volume ICM (1998), 645-656.[5] S. Arnborg and A. Proskurowski, Linear time algorithms for NP-hard problems restricted to partialk-trees, Discrete Applied Mathematics 23 (1989), 11-24.[6] R. E. Burkard, V. G. Deineko, and G. J. Woeginger, The travelling salesman problem and the PQ-tree, in: Proc. IPCO V, Lecture Notes in Computer Science, Vol. 1084 (Springer, 1996) 490-504.[7] R.E. Burkard and V.G. Deineko, Polynomially solvable cases of the traveling salesman problem anda new exponential neighborhood, Computing 54 (1995) 191-211.[8] J. Carlier and P. Villon, A new heuristic for the traveling salesman problem, RAIRO - OperationsResearch 24 (1990) 245-253.[9] R.K. Congram, C.N. Potts, S. L. van de Velde, An iterated dynasearch algorithm for the singlemachine total weighted tardiness scheduling problem, paper in preparation, 1998.[10] G. Cornuejols, D. Naddef, and W.R. Pulleyblank, Halin graphs and the traveling salesman problem,Mathematical Programming 26 (1983) 287-294.[11] G. A. Croes, A method for solving traveling-salesman problems, Operations Research 6 (1958)791-812.[12] V. Deineko and G.J. Woeginger, A study of exponential neighborhoods for the traveling salesmanproblem and the quadratic assignment problem, Report Woe-05, Technical University Graz, 1997.[13] U. Dorndorf and E. Pesch, Fast clustering algorithms, ORSA Journal of Computing 6 (1994) 141-153.[14] K.A. Dowsland, Nurse scheduling with tabu search and strategic oscillation, European Journal ofOperations Research 106 (1998) 393-407.[15] M. Dror and L. Levy, A vehicle routing improvement algorithm comparison of a “greedy” and a“matching” implementation for inventory routing, Computers and Operations Research 13 (1986) 3345. 31[16] A.E. Dunlop and B.W. Kernighan, A procedure for placement of standard cell VLSI circuits, IEEETransactions on Computer-Aided Design 4 (1985) 92-98. 34
  • 35. [17] M. Duque-Anton, Constructing efficient simulated annealing algorithms, Discrete AppliedMathematics 77 (1997) 139-159.[18] E.S. El-Mallah and C.J. Colbourn, Optimum communication spanning trees in series parallelnetworks, SIAM Journal of Computing 14 (1985) 915-925.[19] R. Fahrion and M. Wrede, On a principle of chain exchange for vehicle routing problems (IVRP),Journal of Operational Research Society (1990) 821-827.[20] C.M. Fiduccia and R.M. Mattheyses, A linear time heuristic for improving network partitions, in:ACM IEEE Nineteenth Design Automation Conference Proceedings, IEEE Computer Society, (LosAlamitos, CA, 1982) 175-181.[21] R.T.Firla, B.Spille and R.Weismantel, personal communication.[22] R.T.Firla, B.Spille and R.Weismantel, A primal analogue of cutting plane algorithms, Depatment ofMathematics, Otto-von-Guericke-University Magdeburg, 1999.[23] A. Frangioni, E. Necciari, M.G. Scutella, Multi-exchange algorithms for the minimum makespanmachine scheduling problem, paper in preparation, Dipartimento di Informatica, University of Pisa,2000.[24] M.L. Fredman, D.S. Johnson, and L.A McGeoch, Data structures for traveling salesman, Journal ofAlgorithms 16 (1995) 432-479.[25] M. Gendreau, F. Guertin, J.Y. Potvin, R. Seguin, Neighborhood search heuristics for a dynamicvehicle dispatching problem with pick-ups and deliveries, CRT-98-10, 1998.[26] P.C. Gilmore, E.L. Lawler, and D.B. Shmoys, Well-solved special cases, in: E.L. Lawler, J.K.Lenstra, A.H.G. Rinnooy Kan, and D.B. Shmoys, eds., The Traveling Salesman Problem (Wiley, NewYork, 1985) 87-143.[27] F. Glover, G.M. Gutin, A. Yeo, and Zverovich, Construction heuristics and domination analysis forthe asymmetric TSP, Research report, Brunel University, 1999.[28] F. Glover and A.P. Punnen, The traveling salesman problem: New solvable cases and linkages withthe development of approximation algorithms, Journal of the Operational Research Society 48 (1997)502-510.[29] F. Glover and M. Laguna, Tabu Search, (Kluwer Academic Publishers, 1997).[30] F. Glover, Ejection chains, reference structures, and alternating path algorithms for the travelingsalesman problem, Research Report, University of Colorado-Boulder, Graduate School of Business,1992. {A short version appeared in Discrete Applied Mathematics 65 (1996) 223-253.} 32[31] F. Glover, Finding the best traveling salesman 4-opt move in the same time as a best 2-opt move,Journal of Heuristics 2 (1996) 169-179.[32] G.M. Gutin, On approach to solving the traveling salesman problem, in: Theory, Methodology, andPractice of System Research, Mathematical Methods of Systems Analysis, VNIIST (Moscow, 1984)184-186. 35
  • 36. [33] G.M. Gutin, On the efficiency of a local algorithm for solving the traveling salesman problem,Automation and Remote Control No. 11(part 2) (1988) 1514-1519.[34] G.M. Gutin, Exponential neighborhood local search for the traveling salesman problem, Computersand Operations Research 26 (1999) 313-320.[35] G.M. Gutin, and A. Yeo, Polynomial algorithms for the TSP and the QAP with a factorialdomination number, Manuscript, Brunel University, UK, 1998.[36] G.M. Gutin, and A. Yeo, TSP heuristics with large domination number, Report 12/98, Departmentof Mathematics and Statistics, Brunel University, UK, 1998.[37] G.M. Gutin, and A. Yeo, Small diameter neighborhood graphs for the traveling salesman problem,Computers and Operations Research 26 (1999) 321-327.[38] G.M. Gutin, and A. Yeo, TSP tour domination and Hamiltonian cycle decomposition of regulardigraphs, Manuscript, Brunel University, UK, 1999.[39] K. Helsgaun, An effective implementation of the Lin-Kernighan traveling salesman heuristic,Manuscript, Roskilde University, Denmark, 1999.[40] J. Hurink, An exponential neighborhood for a one machine batching problem, University ofTwente, Faculty of Mathematical Sciences, The Netherlands, 1998. To appear in OR-Spektrum 1999.[41] D.S. Johnson, Local search and the traveling salesman problem, in: Proceedings of 17thInternational Colloquium on Automata Languages and Programming, Lecture Notes in ComputerScience, (Springer-Verlag, Berlin, 1990) 443-460.[42] D.S. Johnson, L.A. McGeoch, The travelling salesman problem: a case study in local optimization,in: E.H.L Aarts and J.K. Lenstra, eds., Local Search in Combinatorial Optimization, (Wiley, N.Y., 1997)in press.[43] R.M. Karp, A patching algorithm for the non-symmetric traveling salesman problem, SIAM Journalof Computing 8 (1979) 561-573.[44] B.W. Kernighan and S. Lin, An efficient heuristic procedure for partitioning graphs, Bell SystemTechnical Journal 49 (1970) 291-307.[45] P.S. Klyaus, The structure of the optimal solution of certain classes of the traveling salesmanproblems, (in Russian), Vestsi Akad. Nauk BSSR, Physics and Math. Sci., Minsk, (1976) 95-98. 33[46] S. Knust, Optimality conditions and exact neighborhoods for sequencing problems, UniversitatOsnabruck, Fachbereich Mathematik/Informatik, Osnabruck, Germany, 1997.[47] M. Laguna, J. Kelly, J.L. Gonzales-Velarde, and F. Glover, Tabu search for multilevel generalizedassignment problem, European Journal of Operations Research 82 (1995) 176-189.[48] E.L. Lawler, J.K. Lenstra, A.H.G. Rinnooy Kan, and D.B. Shmoys, eds., The Traveling SalesmanProblem (Wiley, New York, 1985).[49] S. Lin, Computer solutions to the traveling salesman problem, Bell System Tech. Journal 44 (1965) 36
  • 37. 2245-2269.[50] S. Lin and B. Kernighan, An effective heuristic algorithm for the traveling salesman problem,Operations Research 21 (1973) 498-516.[51] K. Mak and A. Morton, A modified Lin-Kernighan traveling salesman heuristic, ORSA Journal ofComputing 13 (1992) 127-132.[52] I.I. Melamed, S.I. Sergeev, and I.K. Sigal, The traveling salesman problem: approximationalgorithms, Avtomat Telemekh 11 (1989) 3-26.[53] C.H. Papadimitriou and K. Steiglitz, Combinatorial Optimization: Algorithms and Complexity(Prentice-Hall, Englewood Cliffs, NJ, 1982).[54] C.H. Papadimitriou, The complexity of Lin-Kernighan algorithm, SIAM Journal of Computing(1992) 450-465. [55] E. Pesch and F. Glover, TSP ejection chains, Discrete Applied Mathematics 76 (1997) 165-181.[56] J.M. Phillips, A.P. Punnen, and S.N. Kabadi, A linear time algorithm for the bottleneck travelingsalesman problem on a Halin graph, Information Processing Letters 67 (1998) 105-110.[57] C.N. Potts and S.L. van de Velde, Dynasearch - Iterative local improvement by dynamicprogramming: Part I, The traveling salesman problem, Techinical Report, University of Twente, TheNetherlands, 1995.[58] A.P. Punnen and F. Glover, Ejection chains with combinatorial leverage for the TSP, ResearchReport, University of Colorado-Boulder, 1996.[59] A.P. Punnen, S.N. Kabadi, Domination analysis of heuristics for the asymmetric traveling salesmanproblem, Manuscript, University of New Brunswick, 1998.[60] A.P. Punnen, The traveling salesman problem: New polynomial approximation algorithms anddomination analysis, To Appear in Journal of Information and Optimization Sciences.[61] C. Rego, Relaxed tours and path ejections for the traveling salesman problem, European Journal ofOperational Research 106 (1998a) 522-538.[62] C. Rego, A subpath ejection method for the vehicle routing problem, Management Science 44(1998b) 1447-1459. 34[63] C. Rego, C. Roucairol, A parallel tabu search algorithm using ejection chains for the vehicle routingproblem, in: I. H. Osman, J. P. Kelly, eds., Meta-Heuristics: Theory and Applications, (KluwerAcademic Publishers, 1996).[64] G. Reinelt, The traveling salesman computational solutions for TSP application, Lecture Notes inComputer Science, Vol. 840 (Springer, 1994).[65] R.T. Rockafellar, Network Flows and Monotropic Optimization (John Wiley and Sons, New York,1984).[66] V.I. Sarvanov and N.N. Doroshko, Approximate solution of the traveling salesman problem by a 37
  • 38. local algorithm with scanning neighborhoods of factorial cardinality in cubic time, Software: Algorithmsand Programs, Mathematics Institute of the Belorussia Academy of Science., Minsk, No. 31, (1981) 11-13. (In Russian)[67] A Satyanarayana and R K Wood, A linear time algorithm for computing k-terminal reliability inseries parallel networks, SIAM Journal of Computing 14 (1985) 818-832.[68] R.R. Schneur and J.B. Orlin, A scaling algorithm for multicommodity flow problems, OperationsResearch 46 (1998).[69] N. Simonetti and E. Balas, Implementation of a linear time algorithm for certain generalizedtraveling salesman problems, in: Proc. IPCO V, Lecture Notes in Computer Science, Vol. 1084(Springer, 1996) 316-329.[70] F. Sourd, Scheduling tasks on unrelated machines: large neighborhood improvement procedures,submitted to Journal of Heuristics.[71] E.D. Taillard, Heuristic methods for large centroid clustering problems, Technical report IDSIA-96-96, Lugano, 1996.[72] E.D. Taillard, Parallel iterative search methods for vehicle routing problems, Network 23 (1993)661-673.[73] T. Takamizawa, T. Nishizeki, and N. Sato, Linear time computability of combinatorial problems onseries-parallel graphs, Journal of ACM 29 (1982) 623-641.[74] K.T. Talluri, Swapping applications in a daily airline fleet assignment, Transportation Science. 30(1996).[75] P.M. Thompson, Local search algorithms for vehicle routing and other combinatorial problems,Ph.D. Thesis, Operations Research Center, MIT, 1988.[76] P.M. Thompson and J.B. Orlin, The theory of cyclic transfers, Operations Research Center WorkingPaper, MIT, August 1989.[77] P.M. Thompson and H.N. Psaraftis, Cyclic transfer algorithms for multivehicle routing andscheduling problems, Operations Research 41 (1993). 35[78] A. Yeo, Large exponential neighborhoods for the traveling salesman problem, Preprint no 47,Department of Mathematics and Computer Science, Odense University, 1997.[79] M. Yagiura, T. Ibaraki, and F. Glover, An ejection chain approach for the generalized assignmentproblem, Technical Report #99013, Department of Applied Mathematics and Physics, Kyoto University,1999.[80] M. Yagiura, T. Yamaguchi, and T. Ibaraki, A variable-depth search algorithm for the generalizedassignment problem, in: S. Voss, S. Martello and I.H. Osman, eds., Metaheuristics: Advances andTrends in Local Search Paradigms for Optimization (Kluwer Academic Publishers, Boston, 1999) 459-471.[81] K. Wayne, A polynomial combinatorial algorithm for generalized minimum cost flow, STOC 1999. 38
  • 39. [82] P. Winter, Steiner problem in Halin networks, Discrete Applied Mathematics 17 (1987) 281294.[83] M. Zachariasen and M. Dam, Tabu search on the geometric traveling salesman problem”, in: I. H.Osman, J. P. Kelly, eds., Meta-Heuristics: Theory and Applications, (Kluwer Academic Publishers,1996). 36 39

×