Heur´         ısticas para Problemas de          Ruteo de Veh´ ıculos                  Alfredo OliveraInstituto de Computa...
ResumenDesde la primera formulaci´n de los Problemas de Ruteo de Veh´                           o                         ...
Indice1 Problemas de Ruteo de Veh´       ıculos                                                  1  1.1 Introducci´n . . ....
3.4   Algoritmo de Barrido . . . . . . . . . . . . . . . . . . . . . . . . .                        33   3.5   Rutear Prim...
Cap´   ıtulo 1Problemas de Ruteo deVeh´   ıculos1.1      Introducci´n                   oEl problema de distribuir product...
1.2      Caracter´                 ısticas de los ProblemasA grandes rasgos un Problema de Ruteo de Veh´     ıculos consis...
o preparar un veh´ ıculo antes de que comience su ruta, o el tiempo invertidoen su limpieza al regresar. Incluso, por limi...
De manera similar, el conjunto de arcos incidentes hacia el exterior e interiordel nodo i se definen como δ + (i) = {(i, j)...
lo largo de la ruta (es decir, uj ≥ ui + 1 si j es visitado inmediatamente despu´seque i). Bajo la hip´tesis de que |E| = ...
1.3.3      El Problema con Capacidades (VRP o CVRP)El VRP es una extensi´n del m-TSP en la cual cada cliente i ∈ V  {0} ti...
donde K es un conjunto con suficientes veh´ıculos para satisfacer la demanda (porejemplo, n). Este problema es conocido com...
act´an como restricciones de eliminaci´n de subtours, mientras que la capacidad   u                                   ode ...
La restricci´n 1.22 indica que todos los clientes deben ser visitados. Las re-            ostricciones 1.23 y 1.24 determi...
Cap´   ıtulo 2Heur´    ısticas Cl´sicas para el              aVRPEn este cap´ıtulo se presentan algunas de las heur´ ıstic...
problema. Existe una versi´n paralela en la que se trabaja sobre todas las ru-                           otas simult´neame...
(a) Rutas Circulares        (b) Rutas Radiales              Figura 2.2: Un ejemplo de rutas circulares y radiales.2.1.1   ...
se hubiera combinado primero las rutas 3 y 4 y luego las 2 y 5, obteniendo unahorro total de 15.                          ...
la ultima ruta creada. La principal desventaja de este enfoque es que los ultimos   ´                                     ...
Para seleccionar el cliente que iniciar´ una ruta pueden utilizarse diferentes                                           a...
Algoritmo de Christofides, Mingozzi y Toth. Fase 2Paso 5 (inicializaci´n). Crear k rutas rt = (0, vt , 0) para t = 1, . . ....
Por la forma en que se generan los clusters, las rutas obtenidas no se su-perponen, lo que puede ser bueno en algunos caso...
El costo de insertar un cliente i en el cluster k se define como el costo dela mejor inserci´n del cliente i ruta (0, sk , ...
El CCLP brinda un marco general para resolver Problemas de Ruteo deVeh´ıculos, definiendo a las posibles semillas como siti...
2.4      M´todo Rutear Primero - Asignar Despu´s          e                                   eEn los m´todos rutear prime...
obtener una ruta mejor. En el art´  ıculo original se aplica el algoritmo 2-opt sobrela ruta (0, vi+1 , . . . , vj , 0).2....
para el VRP pueden clasificarse en movidas de una ruta y movidas multi-ruta.En las movidas de una ruta los clientes que se ...
Figura 2.7: El unico 2-intercambio posible para los arcos marcados                       ´       Figura 2.8: Todos los 3-i...
2.6.2      El algoritmo de Lin-KernighamUn problema que surge al aplicar λ-intercambios es que debe fijarse el valor de λde...
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Heuristicas para problemas de ruteo de vehiculosd
Upcoming SlideShare
Loading in …5
×

Heuristicas para problemas de ruteo de vehiculosd

1,108 views

Published on

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

No Downloads
Views
Total views
1,108
On SlideShare
0
From Embeds
0
Number of Embeds
44
Actions
Shares
0
Downloads
25
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Heuristicas para problemas de ruteo de vehiculosd

  1. 1. Heur´ ısticas para Problemas de Ruteo de Veh´ ıculos Alfredo OliveraInstituto de Computaci´n, Facultad de Ingenier´ o ıa,Universidad de la Rep´blica, Montevideo, Uruguay. u aolivera@fing.edu.uy Agosto 2004
  2. 2. ResumenDesde la primera formulaci´n de los Problemas de Ruteo de Veh´ o ıculos, una grancantidad de m´todos han sido propuestos para su resoluci´n. Estos m´todos e o eincluyen tanto algoritmos exactos como heur´ ısticas. En este trabajo se presentaun relevamiento de algunas de las heur´ısticas que han sido m´s significativas. aPalabras clave: Ruteo de Veh´ ıculos, Heur´ısticas, Optimizaci´n Combinatoria. o
  3. 3. Indice1 Problemas de Ruteo de Veh´ ıculos 1 1.1 Introducci´n . . . . . . . . . . . . . . . . . . . . . . . . . o . . . . . 1 1.2 Caracter´ ısticas de los Problemas . . . . . . . . . . . . . . . . . . 2 1.2.1 Los Clientes . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2.2 Los Dep´sitos . . . . . . . . . . . . . . . . . . . . o . . . . . 2 1.2.3 Los Veh´ ıculos . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 Formulaci´n Matem´tica . . . . . . . . . . . . . . . . . . o a . . . . . 3 1.3.1 El Problema del Agente Viajero (TSP) . . . . . . . . . . . 4 1.3.2 El Problema de los m Agentes Viajeros (m-TSP) . . . . . 5 1.3.3 El Problema con Capacidades (VRP o CVRP) . . . . . . 6 1.3.4 El Problema con Flota Heterog´nea (FSMVRP) e . . . . . 7 1.3.5 El Problema con Ventanas de Tiempo (VRPTW) . . . . . 8 1.4 M´todos Exactos . . . . . . . . . . . . . . . . . . . . . . e . . . . . 92 Heur´ ısticas Cl´sicas para el VRP a 10 2.1 El Algoritmo de Ahorros . . . . . . . . . . . . . . . . . . . . . . . 10 2.1.1 Algoritmo de Ahorros basado en Matching . . . . . . . . 12 2.2 Heur´ısticas de Inserci´n . . . . . . . . . . . . . . . . . . . . . . . o 13 2.2.1 Inserci´n Secuencial de Mole & Jameson . . . . . . . . . . o 14 2.2.2 Inserci´n en Paralelo de Christofides, Mingozzi y Toth . . o 15 2.3 M´todos Asignar Primero - Rutear Despu´s . . . . . . . . . . . . e e 16 2.3.1 Heur´ ıstica de Barrido o Sweep . . . . . . . . . . . . . . . 16 2.3.2 Heur´ ıstica de Asignaci´n Generalizada de Fisher y Jaikumar o 17 2.3.3 Heur´ ıstica de Localizaci´n de Bramel y Simchi-Levi . . . o 18 2.4 M´todo Rutear Primero - Asignar Despu´s . . . . . . . . . . . . e e 20 2.5 Algoritmos de P´talos . . . . . . . . . . . . . . . . . . . . . . . . e 21 2.6 Procedimientos de B´squeda Local . . . . . . . . . . . . . . . . . u 21 2.6.1 El operador λ-intercambio . . . . . . . . . . . . . . . . . . 22 2.6.2 El algoritmo de Lin-Kernigham . . . . . . . . . . . . . . . 24 2.6.3 El operador Or-opt . . . . . . . . . . . . . . . . . . . . . . 24 2.6.4 Operadores de Van Breedam . . . . . . . . . . . . . . . . 25 2.6.5 GENI y GENIUS . . . . . . . . . . . . . . . . . . . . . . . 25 2.6.6 Transferencias c´ ıclicas . . . . . . . . . . . . . . . . . . . . 273 Extensiones de las heur´ ısticas cl´sicas a 28 3.1 Algoritmo de Ahorros . . . . . . . . . . . . . . . . . . . . . . . . 28 3.2 Heur´ ısticas de Inserci´n Secuencial . . . . . . . . . . . . . . . . . 30 o 3.3 Heur´ ısticas de Inserci´n en Paralelo . . . . . . . . . . . . . . . . . 32 o i
  4. 4. 3.4 Algoritmo de Barrido . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.5 Rutear Primero - Asignar Despu´s . . . . . . . . . . . . . . . . . e 344 Metaheur´ ısticas 35 4.1 Algoritmos de Hormigas . . . . . . . . . . . . . . . . . . . . . . . 35 4.1.1 Ant System H´ ıbrido para VRP . . . . . . . . . . . . . . . 38 4.1.2 MACS para VRPTW . . . . . . . . . . . . . . . . . . . . 39 4.2 Tabu Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.2.1 Tabu Search para el VRP . . . . . . . . . . . . . . . . . . 41 4.2.2 Tabu Search para el VRPTW . . . . . . . . . . . . . . . . 46 4.3 Algoritmos Gen´ticos . . . . . . . . . . . . . . e . . . . . . . . . . . 47 4.3.1 Algoritmos Gen´ticos para el TSP . . e . . . . . . . . . . . 48 4.3.2 Algoritmos Gen´ticos para el VRP . . e . . . . . . . . . . . 48 4.3.3 Algoritmos Gen´ticos para el VRPTW e . . . . . . . . . . . 49 ii
  5. 5. Cap´ ıtulo 1Problemas de Ruteo deVeh´ ıculos1.1 Introducci´n oEl problema de distribuir productos desde ciertos dep´sitos a sus usuarios finales ojuega un papel central en la gesti´n de algunos sistemas log´ o ısticos y su adecuadaplanificaci´n puede significar considerables ahorros. Esos potenciales ahorros ojustifican en gran medida la utilizaci´n de t´cnicas de Investigaci´n Operativa o e ocomo facilitadoras de la planificaci´n, dado que se estima que los costos del otransporte representan entre el 10% y el 20% del costo final de los bienes [1]. En ese sentido, las ultimas cuatro d´cadas han visto un enorme esfuerzo ´ epor resolver estos problemas. En 1959, Dantzig y Ramser [2] realizaron porprimera vez una formulaci´n del problema para una aplicaci´n de distribuci´n o o ode combustible. Cinco a˜os m´s tarde, Clarke y Wright [3] propusieron el n aprimer algoritmo que result´ efectivo para su resoluci´n: el popular Algoritmo o ode Ahorros. A partir de estos trabajos, el ´rea de Ruteo de Veh´ a ıculos ha crecidode manera explosiva. Por un lado, hacia modelos que incorporen cada vez m´s acaracter´ısticas de la realidad, y, por otro lado, en la b´squeda de algoritmos que upermitan resolver los problemas de manera eficiente. Estos modelos y algoritmos deben su ´xito, en buena parte, a la evoluci´n e ode los sistemas inform´ticos. El crecimiento en el poder de c´mputo y la baja a oen sus costos, ha permitido disminuir los tiempos de ejecuci´n de los algoritmos. oPor otro lado, el desarrollo de los Sistemas de Informaci´n Geogr´fica resulta o afundamental para lograr una adecuada interacci´n de los modelos y algoritmos ocon los encargados de realizar la planificaci´n. o Pero el inter´s que reviste el ´rea no es puramente pr´ctico. Los Proble- e a amas de Ruteo de Veh´ ıculos son Problemas de Optimizaci´n Combinatoria y opertenecen, en su mayor´ a la clase N P -Hard. La motivaci´n acad´mica por ıa, o eresolverlos radica en que no es posible construir algoritmos que en tiempo poli-nomial resuelvan cualquier instancia del problema (a no ser que P = N P ). 1
  6. 6. 1.2 Caracter´ ısticas de los ProblemasA grandes rasgos un Problema de Ruteo de Veh´ ıculos consiste en, dado un con-junto de clientes y dep´sitos dispersos geogr´ficamente y una flota de veh´ o a ıculos,determinar un conjunto de rutas de costo m´ ınimo que comiencen y terminen enlos dep´sitos, para que los veh´ o ıculos visiten a los clientes. Las caracter´ ısticas delos clientes, dep´sitos y veh´ o ıculos, as´ como diferentes restricciones operativas ısobre las rutas, dan lugar a diferentes variantes del problema.1.2.1 Los ClientesCada cliente tiene cierta demanda que deber´ ser satisfecha por alg´n veh´ a u ıculo.En muchos casos, la demanda es un bien que ocupa lugar en los veh´ ıculos y esusual que un mismo veh´ ıculo no pueda satisfacer la demanda de todos los clientesen una misma ruta. Un caso equivalente al anterior ocurre cuando los clientesson proveedores y lo que se desea es recoger la mercader´ y transportarla hacia ıael dep´sito. Tambi´n podr´ ocurrir que la mercader´ deba ser transportada a o e ıa ıalos clientes pero no est´ inicialmente en el dep´sito, sino distribu´ en ciertos e o ıdasitios proveedores. En este caso, los proveedores deben ser visitados antes quelos clientes. En otros casos la demanda no es un bien sino un servicio: el cliente simple-mente debe ser visitado por el veh´ ıculo. Un mismo veh´ ıculo podr´ potencial- ıa,mente, visitar a todos los clientes. En otra variante del problema, cada clientetiene una ubicaci´n y desea ser transportado hacia otro sitio. Aqu´ la capacidad o ıdel veh´ ıculo impone una cota sobre la cantidad de clientes que puede alojarsimult´neamente. a Es usual que cada cliente deba ser visitado exactamente una vez. Sin em-bargo, en ciertos casos se acepta que la demanda de un cliente sea satisfecha enmomentos diferentes y por veh´ ıculos diferentes. Los clientes podr´ tener restricciones relativas su horario de servicio. Usual- ıanmente estas restricciones se expresan en forma de intervalos de tiempo (llamadosventanas de tiempo) en los que se puede arribar al cliente. En problemas con varios veh´ ıculos diferentes podr´ existir restricciones de ıacompatibilidad entre ´stos y los clientes. En estos casos, cada cliente s´lo puede e oser visitado por algunos de los veh´ ıculos (por ejemplo, algunos veh´ ıculos muypesados no pueden ingresar en ciertas localidades).1.2.2 Los Dep´sitos oTanto los veh´ ıculos como las mercader´ a distribuir (si las hubiera) suelen ıasestar ubicadas en dep´sitos. Usualmente se exige que cada ruta comience y ofinalice en un mismo dep´sito, aunque este podr´ no ser el caso en algunas o ıaaplicaciones (por ejemplo, podr´ ser que el viaje debiera finalizar en el domicilio ıadel conductor del veh´ ıculo). En los problemas con m´ltiples dep´sitos cada uno de estos tiene diferentes u ocaracter´ ısticas, por ejemplo, su ubicaci´n y capacidad m´xima de producci´n. o a oPodr´ ocurrir que cada dep´sito tenga una flota de veh´ ıa o ıculos asignada a priorio que dicha asignaci´n sea parte de lo que se desea determinar. o Los dep´sitos, al igual que los clientes, podr´ tener ventanas de tiempo o ıanasociadas. En algunos casos debe considerarse el tiempo necesario para cargar 2
  7. 7. o preparar un veh´ ıculo antes de que comience su ruta, o el tiempo invertidoen su limpieza al regresar. Incluso, por limitaciones de los propios dep´sitos, opodr´ querer evitarse que demasiados veh´ ıa ıculos est´n operando en un mismo edep´sito a la vez (es decir, la congesti´n del dep´sito). o o o1.2.3 Los Veh´ ıculosLa capacidad de un veh´ ıculo podr´ tener varias dimensiones, como por ejem- ıaplo peso y volumen. Cuando en un mismo problema existen diferentes mer-cader´ los veh´ ıas, ıculos podr´ tener compartimentos, de modo que la capacidad ıandel veh´ıculo dependa de la mercader´ de que se trate. En general, cada veh´ ıa ıculotiene asociado un costo fijo en el que se incurre al utilizarlo y un costo variableproporcional a la distancia que recorra. Los problemas en que los atributos (capacidad, costo, etc.) son los mismospara todos los veh´ ıculos se denominan de flota homog´nea, y, si hay diferencias, ede flota heterog´nea. La cantidad de veh´ e ıculos disponibles podr´ ser un dato ıade entrada o una variable de decisi´n. El objetivo mas usual suele ser utilizar ola menor cantidad de veh´ ıculos y minimizar la distancia recorrida ocupa unsegundo lugar. Regulaciones legales podr´ imponer restricciones sobre el tiempo m´ximo ıan aque un veh´ ıculo puede estar en circulaci´n e incluso prohibir el pasaje de ciertos oveh´ıculos por ciertas zonas. En algunos casos se desea que la cantidad de trabajorealizado por los veh´ ıculos (usualmente el tiempo de viaje) no sea muy dispar. En general se asume que cada veh´ ıculo recorre una sola ruta en el per´ ıodo deplanificaci´n, pero ultimamente se han estudiado modelos en los que un mismo o ´veh´ıculo puede recorrer m´s de una ruta. a1.3 Formulaci´n Matem´tica o aEn esta secci´n se formulan algunos de los problemas cl´sicos y sus extensiones o acomo problemas de Programaci´n Entera. Dichas formulaciones se dan por ocompletitud y para evitar ambig¨edad en la definici´n, pero no se reportan en u oeste trabajo m´todos exactos de resoluci´n. e o La red de transporte por la que circulan los veh´ıculos se modela mediante ungrafo ponderado G = (V, E, C). Los nodos del grafo representan a los clientesy dep´sitos. En problemas con un dep´sito y n clientes, el nodo 0 representa o oal dep´sito y los nodos 1, . . . , n a los clientes. En algunos casos (en que se oexplicitar´) se agrega una copia del dep´sito etiquetada con n+1 para simplificar a ola formulaci´n. o Cada arco (i, j) ∈ E representa el mejor camino para ir desde el nodo i haciael nodo j en la red de transporte y tiene asociado un costo cij y un tiempo deviaje tij . Seg´n la estructura de los costos y los tiempos y las caracter´ u ısticasde la red, el grafo puede ser sim´trico o asim´trico. Puede suponerse que G es e ecompleto, pues entre todo par de lugares de una red de transporte razonable,deber´ existir alg´n camino. Sin embargo, por una cuesti´n de flexibilidad, los ıa u omodelos ser´n planteados sin realizar dicha hip´tesis. a o Denotaremos por ∆+ (i) y ∆− (i) al conjunto de nodos adyacentes e incidentesal nodo i, es decir, ∆+ (i) = {j ∈ V | (i, j) ∈ E} y ∆− (i) = {j ∈ V | (j, i) ∈ E}. 3
  8. 8. De manera similar, el conjunto de arcos incidentes hacia el exterior e interiordel nodo i se definen como δ + (i) = {(i, j) ∈ E} y δ − (i) = {(j, i) ∈ E}.1.3.1 El Problema del Agente Viajero (TSP)En el Problema del Agente Viajero (o TSP por Travelling Salesman Problem) sedispone de un solo veh´ ıculo que debe visitar a todos los clientes en una sola rutay a costo m´ ınimo. No suele haber un dep´sito (y si lo hubiera no se distingue de olos clientes), no hay demanda asociada a los clientes y tampoco hay restriccionestemporales. El problema puede formularse como: min cij xij (1.1) (i,j)∈E s.a. xij = 1 ∀i ∈ V (1.2) j∈∆+ (i) xij = 1 ∀j ∈ V (1.3) i∈∆− (j) xij ≥ 1 ∀ S ⊂ V (1.4) i∈S,j∈∆+ (i)S xij ∈ {0, 1} ∀ (i, j) ∈ EEsta formulaci´n fue propuesta por Dantzig, Fulkerson y Johnson [4]. Las vari- oables binarias xij indican si el arco (i, j) es utilizado en la soluci´n. La funci´n o oobjetivo (1.1) establece que el costo total de la soluci´n es la suma de los cos- otos de los arcos utilizados. Las restricciones 1.2 y 1.3 indican que la ruta debellegar y abandonar cada nodo exactamente una vez. Finalmente, las restric-ciones 1.4 son llamadas restricciones de eliminaci´n de sub-tours e indican que otodo subconjunto de nodos S debe ser abandonado al menos una vez. Notarque si no se impusieran estas restricciones la soluci´n podr´ constar de m´s de o ıa aun ciclo, como se muestra en la Figura 1.1. Esta soluci´n viola la restricci´n 1.4 o opara S = {0, 1, 2}. Existen diferentes tipos de restricciones de eliminaci´n deosub-tours. 2 5 0 1 3 4 Figura 1.1: Una soluci´n formada por 2 sub-tours. o Asumiendo que |E| = O(n2 ), esta formulaci´n tiene una cantidad O(n2 ) ode variables binarias y O(2n ) restricciones. El problema puede formularse conuna cantidad polinomial de restricciones, agregando variables reales ui parai = 1, . . . , n y sustituyendo las restricciones 1.4 por ui − uj + nxij ≤ n − 1 ∀ (i, j) ∈ E, i = 0, j = 0.Estas desigualdades fueron propuestas por Miller, Tucker y Zemlin [5] y fuerzana que las variables reales u determinen una cantidad estrictamente creciente a 4
  9. 9. lo largo de la ruta (es decir, uj ≥ ui + 1 si j es visitado inmediatamente despu´seque i). Bajo la hip´tesis de que |E| = O(n2 ), en esta nueva formulaci´n hay o oO(n2 ) variables binarias, O(n) variables positivas y O(n2 ) restricciones. Sinembargo, esta formulaci´n no resulta apta para la resoluci´n de problemas de o otama˜o considerable mediante m´todos exactos, pues si bien se disminuye la n ecantidad de restricciones, la cota que se obtiene resolviendo su relajaci´n lineal oresulta en general poco ajustada. La mayor parte de los problemas de ruteo de veh´ ıculos son generaliza-ciones del TSP. En ese sentido, ´ste puede considerarse el problema de ruteo ede veh´ ıculos m´s simple. No obstante, pertenece a la clase de problemas N P - aHard [6] y es uno de los Problemas de Optimizaci´n Combinatoria m´s cl´sico o a ay difundido.1.3.2 El Problema de los m Agentes Viajeros (m-TSP)El Problema de los m Agentes Viajeros o m-TSP es una generalizaci´n del oTSP en la cual se tiene un dep´sito y m veh´ o ıculos. El objetivo es construirexactamente m rutas, una para cada veh´ ıculo, de modo que cada cliente seavisitado una vez por uno de los veh´ ıculos. Cada ruta debe comenzar y finalizaren el dep´sito y puede contener a lo sumo p clientes. Una formulaci´n, dada o opor Miller et al. [5] es la siguiente: min cij xij (i,j)∈E s.a. x0j = m (1.5) j∈∆+ (0) xij = 1 ∀ i ∈ V {0} (1.6) j∈∆+ (i) xij = 1 ∀ j ∈ V {0} (1.7) i∈∆− (j) ui − uj + pxij ≤ p − 1 ∀ (i, j) ∈ E, i = 0, j = 0 (1.8) xij ∈ {0, 1} ∀ (i, j) ∈ E ui ≥ 0 ∀ i ∈ V {0} El modelo es similar al segundo modelo presentado para el TSP. La re-stricci´n 1.5 indica que exactamente m veh´ o ıculos salen del dep´sito y las 1.6 oy 1.7 aseguran que cada cliente es un nodo intermedio en exactamente una ruta.Finalmente, con 1.8 se eliminan los sub-tours y se impone que en cada ruta nohaya m´s de p clientes. a En el caso que p = n (es decir, cuando la cantidad de clientes por rutano est´ acotada) el m-TSP puede formularse como un TSP con m copias del adep´sito tales que la distancia entre ellas es infinita. Las soluciones a ese TSP ono utilizar´n arcos que conectan dos copias del dep´sito y por lo tanto, pueden a oser interpretadas como soluciones del m-TSP. 5
  10. 10. 1.3.3 El Problema con Capacidades (VRP o CVRP)El VRP es una extensi´n del m-TSP en la cual cada cliente i ∈ V {0} tiene oasociada una demanda di 1 y cada veh´ ıculo tiene una capacidad C (la flota eshomog´nea). En este problema la cantidad de rutas no es fijada de antemano ecomo en el TSP y en el m-TSP. Para un conjunto de clientes S, d(S) = i∈S di es su demanda total yr(S) indica la m´ ınima cantidad de veh´ ıculos necesarios servirlos a todos. Enla formulaci´n conocida con el nombre de flujo de veh´ o ıculos de dos ´ındices, seutilizan las variables binarias xij para determinar si el arco (i, j) se utiliza o noen la soluci´n. El problema se formula de la siguiente manera [1]: o min cij xij (1.9) (i,j)∈E s.a. x0j = m (1.10) j∈∆+ (0) xi0 = m (1.11) i∈∆− (0) xij = 1 ∀ i ∈ V {0} (1.12) j∈∆+ (i) xij = 1 ∀ j ∈ V {0} (1.13) i∈∆− (j) xij ≥ r(S) ∀ S ⊂ V {0} (1.14) i∈S,j∈∆+ (i)S m≥1 xij ∈ {0, 1} ∀ (i, j) ∈ ELa funci´n objetivo (1.9) es el costo total de la soluci´n. Las restricciones 1.10 o oy 1.11 indican que m es la cantidad de veh´ ıculos utilizados en la soluci´n y oque todos los veh´ıculos que parten del dep´sito deben regresar. Las restric- ociones 1.12 y 1.13 aseguran que todo cliente es un nodo intermedio de algunaruta. Finalmente, la restricci´n 1.14 act´a como restricci´n de eliminaci´n de o u o osub-tours y a la vez impone que la demanda total de los clientes visitados porun veh´ıculo no puede superar la capacidad C. Determinar el valor de r(S) requiere la resoluci´n del siguiente problema: o r(S) = min yk k∈K s.a. di xik ≤ Cyk ∀k ∈ K i∈S xik = 1 ∀i ∈ S k∈K xik ∈ {0, 1} ∀ i ∈ S, ∀ k ∈ K yk ∈ {0, 1} ∀k ∈ K 1 En algunos casos, por preservar la notaci´n original, se utilizar´ d o a ij para indicar la dis-tancia entre los nodos i y j y alg´n otro s´ u ımbolo para la demanda de los clientes. 6
  11. 11. donde K es un conjunto con suficientes veh´ıculos para satisfacer la demanda (porejemplo, n). Este problema es conocido como Bin Packing Problem (BPP) [7].Una cota inferior para la cantidad de veh´ ıculos est´ dada por el valor ´ptimo a o d(s)de la relajaci´n lineal del BPP, que es C . La formulaci´n es v´lida incluso o o acuando se sustituye r(S) por la cota inferior d(s) . C En algunos casos se agrega a este problema la restricci´n de que ninguna oruta puede tener largo mayor que cierta cota L. Dicha restricci´n no puede oincorporarse a esta formulaci´n, pues las rutas no est´n individualizadas. o a En esta formulaci´n la cantidad de veh´ o ıculos m es una variable de decisi´n oque no tiene cota superior, es decir, se asume que la disponibilidad de veh´ ıculoses ilimitada. Si se tuviera un flota finita se podr´ agregar una cota superior ıapara m o directamente fijar su valor. Notar que est´ impl´ a ıcito que cada veh´ıculopuede recorrer a lo sumo una ruta.1.3.4 El Problema con Flota Heterog´nea (FSMVRP) eEn los problemas con flota heterog´nea los costos y capacidades de los veh´ e ıculosvar´ ıan, existiendo un conjunto T = {1, . . . , |T |} de tipos de veh´ıculo. La capaci-dad de los veh´ıculos k ∈ T es q k y su costo fijo (si lo tuvieran) es f k . Los costosy tiempos de viaje para cada tipo de veh´ ıculo son ck y tk respectivamente. Se ij ijasume que los ´ ındices de los veh´ıculos est´n ordenados en forma creciente por acapacidad (es decir, q k1 ≤ q k2 para k1 , k2 ∈ T, k1 < k2 ). En la siguiente formulaci´n de flujo de veh´ o ındices [8] se agrega ıculos de tres ´un ´ındice para discriminar entre los tipos de veh´ ıculos. min fk xk + 0j ck xk ij ij (1.15) k∈T j∈∆+ (0) k∈T (i,j)∈E s.a. xk = 1 ij ∀ j ∈ V {0} (1.16) k∈T i∈∆+ (j) xk − ij xk = 0 ji ∀ i ∈ V, ∀ k ∈ T (1.17) j∈∆+ (i) j∈∆− (i) r0 = 0 (1.18) |T | k |T | + rj − ri ≥ (dj + q ) xij −q ∀ i ∈ V {0}, ∀ j ∈ ∆ (i) (1.19) k∈T rj ≤ qk xk ij ∀ j ∈ V {0} (1.20) k∈T i∈∆− (j) xk ∈ {0, 1} ij ∀ (i, j) ∈ E, ∀ k ∈ T rj ≥ 0 ∀j ∈ VLas variables binarias xk indican si el arco (i, j) es utilizado por el veh´ ij ıculo k ylas variables ri positivas indican la carga acumulada en la ruta correspondientehasta el nodo i (inclusive). La funci´n objetivo (1.15) mide el costo total de ola soluci´n incluyendo costos fijos y variables. Las restricciones 1.16 establecen oque todo cliente debe ser visitado por alg´n veh´ u ıculo. En 1.17 se indica que siun veh´ıculo de tipo k visita al nodo i, entonces un veh´ıculo del mismo tipo debeabandonarlo. Las restricciones 1.18 y 1.19 fijan los valores de las variables ri y 7
  12. 12. act´an como restricciones de eliminaci´n de subtours, mientras que la capacidad u ode los veh´ıculos se impone en 1.20. En esta formulaci´n se asume que la cantidad de veh´ o ıculos de cada tipoes ilimitada. El problema correspondiente se denomina Fleet Size and MixVehicle Routing Problem (o FSMVRP). No solo se debe decidir las rutas, sinola composici´n de la flota de veh´ o ıculos a utilizar. Usualmente, al tratar conproblemas de flota heterog´nea, se opta por utilizar este modelo a´n cuando en e ualgunos casos no refleja la realidad. Si la cantidad de veh´ ıculos disponibles de cada tipo k fuera vk , conocida deantemano, deber´ agregarse las restricciones ıa xk ≤ vk 0j ∀ k ∈ T. j∈∆+ (0)1.3.5 El Problema con Ventanas de Tiempo (VRPTW)En esta variante del problema, adem´s de capacidades, cada cliente i ∈ V {0} atiene asociada una ventana de tiempo [ei , li ] que establece un horario de serviciopermitido para que un veh´ ıculo arribe a ´l y un tiempo de servicio o demora si . eSi (i, j) es un arco de la soluci´n y ti y tj son las horas de arribo a los clientes i oy j, las ventanas de tiempo implican que necesariamente debe cumplirse ti ≤ liy tj ≤ lj . Por otro lado, si ti < ei , entonces el veh´ ıculo deber´ esperar hasta aque el cliente “abra” y necesariamente tj = ei + si + tij . Utilizando los nodos 0 y n + 1 para representar al dep´sito y el conjunto K opara representar a los veh´ ıculos (no a los tipos de veh´ıculos como en la secci´n oanterior), el problema se formula para una flota de veh´ ıculos posiblemente het-erog´nea, de la siguiente manera [9]: e min ck xk ij ij (1.21) k∈K (i,j)∈E s.a. xk = 1 ij ∀i ∈ V {0, n + 1} (1.22) k∈K j∈∆− (i) xk = 1 0j ∀k ∈ K (1.23) j∈∆+ (0) xk − ij xk = 0 ji ∀k ∈ K, i ∈ V {0, n + 1} (1.24) j∈∆+ (i) j∈∆− (i) di xk ≤ q k ij ∀k ∈ K (1.25) i∈V {0,n+1} j∈∆+ (i) k k k yj − yi ≥ si + tij − M (1 − xk ) ij ∀i, j ∈ V {0, n + 1}, k ∈ K (1.26) k ei ≤ yi ≤ li ∀i ∈ V {0, n + 1}, k ∈ K (1.27) xk ∈ {0, 1} ij ∀(i, j) ∈ E, k ∈ K k yi ≥ 0 ∀i ∈ V {0, n + 1}, k ∈ K Las variables xk indican si el arco (i, j) es recorrido por el veh´ ij ıculo k. Las kvariables yi indican la hora de arribo al cliente i cuando es visitado por elveh´ ıculo k (si el cliente no es visitado por dicho veh´ ıculo el valor de la variableno tiene significado). La funci´n objetivo (1.21) es el costo total de las rutas. o 8
  13. 13. La restricci´n 1.22 indica que todos los clientes deben ser visitados. Las re- ostricciones 1.23 y 1.24 determinan que cada veh´ ıculo k ∈ K recorre un caminode 0 a n + 1. La capacidad de cada veh´ ıculo es impuesta en 1.25. Siendo Muna constante lo suficientemente grande, la restricci´n 1.26 asegura que si un oveh´ıculo k viaja de i a j, no puede llegar a j antes que yi + si + tk , y act´an ij uadem´s como restricciones de elimianci´n de sub-tours. Finalmente, los l´ a o ımitesde las ventanas de tiempo son impuestos en 1.27.1.4 M´todos Exactos eDada la complejidad de los problemas, solo las instancias con pocos clientes(hasta 50 aproximadamente) pueden ser resueltas consistentemente por m´todos eexactos. En este tipo de metodolog´ ıas, suele resolverse alguna relajaci´n del oproblema y utilizarse un esquema de ramificaci´n y acotamiento al estilo del om´todo Branch and Bound [10]. Tambi´n se han propuesto algoritmos basados e een Programaci´n Din´mica que aceleran los c´lculos mediante una relajaci´n del o a a oespacio de estados. Por otro lado, hay diversas implementaciones del m´todo ede Generaci´n de Columnas, que han resultado especialmente efectivas para oproblemas con ventanas de tiempo muy ajustados. Por un completo compendiode m´todos exactos para Problemas de Ruteo de Veh´ e ıculos, puede consultarselos trabajos de Laporte y Norbert [11] y de Laporte [12]. 9
  14. 14. Cap´ ıtulo 2Heur´ ısticas Cl´sicas para el aVRPEn este cap´ıtulo se presentan algunas de las heur´ ısticas cl´sicas m´s significa- a ativas para el VRP con capacidades y, en algunos casos, la restricci´n sobre el olargo m´ximo de cada ruta. Estas heur´ a ısticas son procedimientos simples querealizan una exploraci´n limitada del espacio de b´squeda y dan soluciones de o ucalidad aceptable en tiempos de c´lculo generalmente moderados. Las soluciones aobtenidas con esta clase de procedimientos pueden, en general, ser mejoradasutilizando m´todos de b´squeda m´s sofisticados, pero incurriendo en elevados e u atiempos de ejecuci´n. Muchas de estas heur´ o ısticas pueden ser extendidas paramanejar restricciones adicionales a las del VRP.2.1 El Algoritmo de AhorrosUno de los algoritmos m´s difundidos para el VRP es el Algoritmo de Ahorros ade Clarke y Wright [3]. Si en una soluci´n dos rutas diferentes (0, . . . , i, 0) y o(0, j, . . . , 0) pueden ser combinadas formando una nueva ruta (0, . . . , i, j, . . . , 0)como se muestra en la Figura 2.1, el ahorro (en distancia) obtenido por dichauni´n es o sij = ci0 + c0j − cij (2.1)pues en la nueva soluci´n los arcos (i, 0) y (0, j) no ser´n utilizados y se agregar´ o a ael arco (i, j). En este algoritmo se parte de una soluci´n inicial y se realizan olas uniones que den mayores ahorros siempre que no violen las restricciones del i i j j Figura 2.1: Dos rutas antes y despu´s de ser unidas e 10
  15. 15. problema. Existe una versi´n paralela en la que se trabaja sobre todas las ru- otas simult´neamente, y otra secuencial que construye las rutas de a una por vez. aAlgoritmo de Ahorros (Versi´n paralela) oPaso 1 (inicializaci´n). Para cada cliente i construir la ruta (0, i, 0). oPaso 2 (c´lculo de ahorros). Calcular sij para cada par de clientes i y j. aPaso 3 (mejor uni´n). Sea si∗ j ∗ = max sij , donde el m´ximo se toma entre los o aahorros que no han sido considerados a´n. Sean ri∗ y rj ∗ las rutas que contienen ua los clientes i∗ y j ∗ respectivamente. Si i∗ es el ultimo cliente de ri∗ y j ∗ es ´el primer cliente de rj ∗ y la combinaci´n de ri∗ y rj ∗ es factible, combinarlas. oEliminar si∗ j ∗ de futuras consideraciones. Si quedan ahorros por examinar ir a3, si no terminar.Algoritmo de Ahorros (Versi´n secuencial) oPaso 1 (inicializaci´n). Para cada cliente i construir la ruta (0, i, 0). oPaso 2 (c´lculo de ahorros). Calcular sij para cada par de clientes i y j. aPaso 3 (selecci´n). Si todas las rutas fueron consideradas, terminar. Si no, oseleccionar una ruta que a´n no haya sido considerada. uPaso 4 (extensi´n). Sea (0, i, . . . , j, 0) la ruta actual. Si no existe ning´n ahorro o uconteniendo a i o a j, ir a 3. Sea sk∗ i (o sjl∗ ) el m´ximo ahorro conteniendo a i a(o a j). Si k ∗ (o l∗ ) es el ultimo (o primer) cliente de su ruta y la combinaci´n ´ ode dicha ruta con la actual es factible, realizar dicha combinaci´n. Eliminar sk∗ i o(o sjl∗ ) de futuras consideraciones. Ir a 4. Dado que en la definici´n de sij solamente interviene la ubicaci´n de los o oclientes i y j, todos los ahorros pueden calcularse una sola vez al comienzo de laejecuci´n del algoritmo. En la versi´n secuencial, podr´ calcularse los ahorros o o ıaa medida que son necesarios. Si el m´ximo ahorro es negativo, la combinaci´n de las rutas aumentar´ la a o adistancia recorrida pero disminuir´ la cantidad de rutas de la soluci´n (y por lo a otanto la cantidad de veh´ ıculos utilizados). Dependiendo de las particularidadesde cada problema, debe decidirse si realizar o no ese tipo de combinaciones. Se ha observado que utilizando la definici´n original de ahorro suele gener- oarse algunas rutas circulares (ver Figura 2.2) lo cual puede ser negativo. Parasolucionar este problema algunos autores [13, 14, 15] proponen redefinir el ahorrocomo sij = ci0 + c0j − λcij (2.2)donde λ es un par´metro que penaliza la uni´n de rutas con clientes lejanos a o(llamado par´metro de forma o shape parameter ). Dicho par´metro puede uti- a alizarse tambi´n para generar un conjunto de soluciones diferentes mediante la eejecuci´n repetida del algoritmo con diferentes valores de λ. o En general ocurre que al comienzo de la ejecuci´n del algoritmo dos alter- onativas pueden parecer equivalentes y, sin embargo, la elecci´n tiene un gran oimpacto en la soluci´n final. Las soluciones obtenidas con el Algoritmo de Ahor- oros pueden, en general, ser mejoradas mediante operadores de b´squeda local ucomo el algoritmo 3-opt [16]. 11
  16. 16. (a) Rutas Circulares (b) Rutas Radiales Figura 2.2: Un ejemplo de rutas circulares y radiales.2.1.1 Algoritmo de Ahorros basado en MatchingCuando en el Algoritmo de Ahorros se decide unir dos rutas ri y rj , se est´ adescartando otras uniones posibles en las que participan ri o rj (porque i y jdejan de ser extremos en la nueva ruta). La uni´n que da el m´ximo ahorro o apodr´ en algunos casos, hacer que las uniones que permanecen factibles no sean ıa,buenas. Elegir siempre el m´ximo ahorro es una estrategia demasiado voraz. aEn el Algoritmo de Ahorros Basado en Matching se decide la union a realizarconsiderando como afecta ´sta a las posibles uniones en iteraciones siguientes. ePara esto, se considera un grafo que tiene a todas las rutas como nodos y unarco entre dos nodos p y q cuyo peso es el ahorro obtenido si las rutas correspon-dientes se combinan (siempre que la combinaci´n sea factible). Un Matching ode peso m´ximo1 sobre dicho grafo da un conjunto de combinaciones a realizar aque es globalmente bueno.Algoritmo de Ahorros Basado en MatchingPaso 1 (inicializaci´n). Para cada cliente i construir la ruta (0, i, 0). oPaso 2 (c´lculo de los ahorros). Actualizar spq para cada par de rutas p y q aque pueda ser combinado manteniendo la factibilidad. Si ning´n par de rutas upuede ser combinado, terminar.Paso 3 (matching). Resolver un problema de matching de peso m´ximo sobre aun grafo cuyos nodos son las rutas de la soluci´n actual y en el cual hay un arco oentre las rutas p y q con peso spq si su combinaci´n es factible. oPaso 4 (uniones). Dado el matching de peso m´ximo, combinar todo par de arutas p y q tal que el arco (p, q) pertenezca al matching. Ir a 2. Hallar un Matching de Peso M´ximo en un grafo puede resolverse en tiempo apolinomial en la cantidad de nodos del grafo [17]. Pero, por un lado, el grafotiene tantos nodos como rutas haya en la soluci´n (inicialmente hay n2 rutas) oy, por otro lado, se halla un nuevo matching en cada iteraci´n. Entonces, para oproblemas grandes puede ser conveniente hallar el matching en forma aproxi-mada mediante alguna heur´ ıstica. En la Figura 2.3 se muestra una posible soluci´n parcial de 5 rutas, el grafo ode asociado y la nueva soluci´n inducida por el Matching de Peso M´ximo que o aes {(1, 3), (4, 5)}. El ahorro total es de 17. Supongamos que el veh´ ıculo notiene capacidad para satisfacer la demanda de ninguna combinaci´n de tres de olas rutas originales. Si se hubiera ejecutado el Algoritmo de Ahorros cl´sico, a 1 Un Matching en un grafo es un conjunto de arcos que no tienen extremos en com´ n. El uPeso de un Matching es la suma de los pesos de sus arcos. 12
  17. 17. se hubiera combinado primero las rutas 3 y 4 y luego las 2 y 5, obteniendo unahorro total de 15. 1 2 2 8 1 3 5 10 4 5 9 (a) (b) (c) Figura 2.3: Una iteraci´n de un Algoritmo de Ahorros basado en Matching o En la propuesta de Desrochers y Verhoog [18] y de Altinkemer y Gavish [19],al combinar dos rutas no solamente se considera la posibilidad de insertar unaal final de la otra como en el Algoritmo de Ahorros original, sino todas lasposibilidades de armar una nueva ruta con los clientes de ambas. Entonces, siSp y Sq son los conjuntos de clientes de las rutas p y q, el ahorro por combinarlasse define como spq = t(Sp ) + t(Sq ) − t(Sp ∪ Sq ), donde t(S) indica el costo de unasoluci´n ´ptima para el TSP sobre el conjunto de clientes S. Con esta definici´n o o ono solo se hace costoso el c´lculo de los ahorros, sino que adem´s ´stos deben a a eser re-calculados en cada nueva iteraci´n. Cuando la cantidad de clientes en ocada ruta es grande conviene realizar el c´lculo de spq en forma aproximada. a En las uniones dadas por el matching de peso m´ximo una misma ruta no aparticipa en m´s de una uni´n (porque los arcos correspondientes forman un a omatching en el grafo). Sin embargo, podr´ ser ventajoso que la ruta resul- ıatante de una uni´n sea inmediatamente unida con otra. Resulta conveniente, oentonces, no realizar todas las uniones dadas por el matching de peso m´ximo, asino solamente algunas. Una opci´n es combinar s´lo las rutas que correspon- o odan al arco de mayor peso del matching [18]. Otra alternativa para realizarlas uniones de manera m´s gradual es conectar los nodos del grafo sobre el que ase calcula el matching con nodos ficticios con pesos tales que se priorice la in-clusi´n de algunos de estos ultimos en el matching [19]. As´ no todos los arcos o ´ ı,del matching se corresponder´n con uniones de rutas. a En la propuesta de Wark y Holt [20] el ahorro puede definirse de la formausual (2.1 o 2.2) o puede modificarse para privilegiar las uniones que est´n elejos de ser infactibles (por ejemplo, si la ruta resultante est´ lejos de colmar la acapacidad del veh´ ıculo o lejos de la m´xima distancia permitida). Cuando no ahay m´s combinaciones de rutas que sea factibles, algunas rutas son divididas aprobabil´ısticamente, lo que permite proseguir la b´squeda de soluciones. u2.2 Heur´ ısticas de Inserci´n oLas heur´ ısticas de inserci´n son m´todos constructivos en los cuales se crea o euna soluci´n mediante sucesivas inserciones de clientes en las rutas. En cada oiteraci´n se tiene una soluci´n parcial cuyas rutas s´lo visitan un subconjunto de o o olos clientes y se selecciona un cliente no visitado para insertar en dicha soluci´n. o En las heur´ısticas de inserci´n secuencial s´lo se considera insertar clientes en o o 13
  18. 18. la ultima ruta creada. La principal desventaja de este enfoque es que los ultimos ´ ´clientes no visitados tienden a estar dispersos y por lo tanto las ultimas rutas ´constru´ıdas son de costo muy elevado [21, 22]. Las heur´ ısticas de inserci´n en oparalelo surgen para remediar esta deficiencia, permitiendo insertar un clienteen cualquiera de las rutas de la soluci´n. Esta distinci´n es similar a la hecha o opara las dos versiones del Algoritmo de Ahorros (ver Secci´n 2.1). o Cualquier heur´ ıstica de inserci´n para el TSP puede ser utilizada para el oVRP siempre que se verifique la factibilidad antes de realizar las inserciones.Por un compendio de heur´ ısticas de inserci´n para el TSP puede consultarse oel trabajo de Bodin et al. [23]. En esta secci´n nos ocuparemos de aquellas odise˜adas expl´ n ıcitamente para el VRP.2.2.1 Inserci´n Secuencial de Mole & Jameson oEn esta heur´ ıstica [21] se utilizan dos medidas para decidir el pr´ximo cliente oa insertar en la soluci´n parcial. Por un lado, para cada cliente no visitado ose calcula la mejor posici´n para ubicarlo en la ruta actual teniendo en cuenta osolamente las distancias y sin reordenar los nodos que ya est´n en la ruta. Se atiene una ruta (v0 , v1 , . . . , vt , vt+1 ) donde v0 = vt+1 = 0. Si w es un cliente novisitado, el costo de insertar w entre vi y vi+1 (0 ≤ i ≤ t) se define como   cvi ,w + cw,vi+1 − λcvi ,vi+1 si (v0 , . . . , vi , w, vi+1 , . . . , vt+1 ) c1 (vi , w) = es factible ∞ si no La mejor posici´n para insertar el cliente w en la ruta actual est´ dada por o a i(w) = arg min c1 (vi , w). i=0,...,tSi se utilizara solamente la medida c1 para decidir el pr´ximo cliente a insertar, oes probable que los clientes lejanos al dep´sito no sean tenidos en cuenta sino ohasta las iteraciones finales del algoritmo, es decir, cuando sean las unicas alter- ´nativas factibles. Por lo tanto, es necesario utilizar un incentivo adicional parala inserci´n de clientes lejanos al dep´sito. Se define c2 (vi , w) = µc0w − c1 (vi , w) o opara cada cliente w. En cada iteraci´n se busca el cliente que maximiza la me- odida c2 (llamada medida de urgencia) y se lo inserta en la posici´n dada por el om´ınimo valor de c1 . Adem´s de las medidas anteriores, debe considerarse la factibilidad de las ainserciones. Cuando ninguna inserci´n es factible y si a´n quedan clientes sin o uvisitar, se selecciona un cliente para comenzar una nueva ruta. El algoritmo esel siguiente.Algoritmo de Mole & JamesonPaso 1 (creaci´n de una ruta). Si todos los clientes pertenecen a alguna ruta, oterminar. Si no, seleccionar un cliente no visitado w y crear la ruta r = (0, w, 0).Paso 2 (inserci´n). Sea r = (v0 , v1 , . . . , vt , vt+1 ) donde v0 = vt+1 = 0. Para ocada cliente no visitado w, calcular i(w) = arg mini=0,...,t c1 (vi , w). Si no hayinserciones factibles, ir al paso 1. Calcular w∗ = arg maxw c2 (vi(w) , w). Insertarw∗ luego de vi(w∗ ) en r.Paso 3 (optimizaci´n). Aplicar el algoritmo 3-opt [16] sobre r. Ir al paso 2. o 14
  19. 19. Para seleccionar el cliente que iniciar´ una ruta pueden utilizarse diferentes aalternativas, por ejemplo, el m´s lejano al dep´sito. El algoritmo utiliza dos a opar´metros λ y µ para modificar sus criterios de selecci´n de clientes. Al hacer a ocrecer el par´metro λ se favorece la inserci´n de clientes entre nodos lejanos; y al a oaumentar el valor de µ, se privilegia la inserci´n de clientes lejanos al dep´sito. o o En general, los ultimos clientes no visitados son lejanos entre s´ y por ende, ´ ılas ultimas rutas construidas son de mala calidad. Para corregir esta deficien- ´cia, se propone utilizar un procedimiento de intercambio de clientes entre lasrutas una vez que el algoritmo finaliza su ejecuci´n. Primero se busca reasignar oclientes de modo de disminuir el costo de la soluci´n. Luego, cuando todos los ocambios aumentan el costo, se prosigue realizando intercambios buscando unasoluci´n que utilice menos veh´ o ıculos.2.2.2 Inserci´n en Paralelo de Christofides, Mingozzi y o TothEl algoritmo propuesto por Christofides, Mingozzi y Toth [24] opera en dosfases. En la primera fase se determina la cantidad de rutas a utilizar, junto conun cliente para inicializar cada una de las rutas. En la segunda fase se creandichas rutas y se inserta el resto de los clientes en ellas. En la primera fase del algoritmo se aplica un algoritmo de inserci´n secuen- ocial para obtener rutas compactas. No se presta especial atenci´n a la ubicaci´n o ode los clientes dentro de cada ruta, pues de esta fase solo se conservan los clientesiniciales de cada ruta y la cantidad de rutas de la soluci´n final. o Para inicializar la k-´sima ruta se selecciona un cliente vk dentro de los no evisitados. Se define el costo de insertar el cliente w en la ruta que contiene avk como δw,vk = c0w + λcw,vk (si el cliente no puede ser insertado, la funci´n otoma el valor ∞) y se asignan clientes a la ruta comenzando por los menoresvalores de δ hasta que no haya inserciones factibles, en cuyo caso se crea unanueva ruta o se termina el algoritmo.Algoritmo de Christofides, Mingozzi y Toth. Fase 1Paso 1 (nueva ruta). Hacer k := 1.Paso 2 (cliente inicial). Seleccionar un cliente no visitado vk para insertar enla ruta. Para cada cliente no visitado w, calcular δw,vk .Paso 3 (inserciones). Calcular w∗ = arg minw δw,vk sobre los clientes no visita-dos w. Insertar w∗ en la ruta y aplicar el algoritmo 3-opt. Si quedan clientesno visitados que puedan insertarse en la ruta, ir a 3.Paso 4 (siguiente ruta). Si todos los clientes pertenecen a alguna ruta, termi-nar. Si no, hacer k := k + 1 e ir a 2. En la segunda fase del algoritmo se crean k rutas y se las inicializa con losclientes seleccionados en el paso 2 de la fase 1. Cada cliente no visitado se asociacon la ruta en la que el costo de insertarlo es minimizado. Luego se seleccionauna ruta cualquiera en la que se insertan los clientes que tiene asociados. Paradecidir el orden en que se insertan los clientes asociados a una ruta se calcula,para cada cliente, la diferencia entre el costo de realizar la inserci´n en esa ruta oy en la segunda mejor opci´n para ´l. Cuanto mayor es esa diferencia, mayor o ees la urgencia por insertar dicho cliente en esta ruta. 15
  20. 20. Algoritmo de Christofides, Mingozzi y Toth. Fase 2Paso 5 (inicializaci´n). Crear k rutas rt = (0, vt , 0) para t = 1, . . . , k, siendo k ola cantidad de rutas obtenidas en la fase 1. Sea J = {r1 , . . . , rk }.Paso 6 (asociaci´n). Para cada cliente w que no haya sido visitado calcular otw = arg mint|rt ∈J δw,vt .Paso 7 (urgencias). Seleccionar rt ∈ J y hacer J := J {rt }. Para cada clientew tal que tw = t, calcular t′ = arg mint|rt ∈J δw,vt y τw = t′ − tw . w wPaso 8 (inserci´n). Calcular w∗ = arg maxw|tw =t τw . Insertar w∗ en la ruta rt oy aplicar el algoritmo 3-opt. Si quedan clientes asociados a rt que pueden serinsertados, ir a 8.Paso 9 (finalizaci´n). Si J = φ, ir a 6. Si todos los clientes han sido visitados, oterminar. Si no, aplicar el algoritmo nuevamente (incluyendo la fase 1) sobrelos clientes no visitados.2.3 M´todos Asignar Primero - Rutear Despu´s e eLos m´todos asignar primero y rutear despu´s (cluster first - route second ) e eproceden en dos fases. Primero se busca generar grupos de clientes, tambi´n ellamados clusters, que estar´n en una misma ruta en la soluci´n final. Luego, a opara cada cluster se crea una ruta que visite a todos sus clientes. Las restric-ciones de capacidad son consideradas en la primera etapa, asegurando que lademanda total de cada cluster no supere la capacidad del veh´ ıculo. Por lo tanto,construir las rutas para cada cluster es un TSP que, dependiendo de la cantidadde clientes en el cluster, se puede resolver el forma exacta o aproximada.2.3.1 Heur´ ıstica de Barrido o SweepEn la heur´ ıstica de barrido [25, 26, 27], los clusters se forman girando unasemirrecta con origen en el dep´sito e incorporando los clientes “barridos” por odicha semirrecta hasta que se viole la restricci´n de capacidad. Cada cluster es oluego ruteado resolviendo un TSP de forma exacta o aproximada. Este algoritmo puede aplicarse en problemas planos, es decir, en los que cadanodo se corresponde con un punto en el plano y las distancias entre ellos se de-finen como la distancia eucl´ ıdea. Se supone que cada cliente i est´ dado por asus coordenadas polares (ρi , θi ) en un sistema que tiene al dep´sito como origen. oHeur´ ıstica de barridoPaso 1 (inicializaci´n). Ordenar los clientes seg´n θ de manera creciente. Si o udos clientes tienen igual valor de θ, colocar primero el de menor valor de ρ.Seleccionar un cliente w para comenzar y hacer k := 1 y Ck := {w}Paso 2 (selecci´n). Si todos los clientes pertenecen a alg´n cluster, ir a 3. Si o uno, seleccionar el siguiente cliente wi . Si wi puede ser agregado Ck sin violarlas restricciones de capacidad, hacer Ck := Ck ∪ {wi }. Si no, hacer k := k + 1 ycrear un nuevo cluster Ck := {wi }. Ir a 2.Paso 3 (optimizaci´n). Para cada cluster Ck para t = 1, . . . , k, resolver un TSP ocon sus clientes. 16
  21. 21. Por la forma en que se generan los clusters, las rutas obtenidas no se su-perponen, lo que puede ser bueno en algunos casos. Un posible resultado dela aplicaci´n de este algoritmo se muestra en la Figura 2.4 donde las l´ o ıneaspunteadas indican los l´ ımites de los clusters. Figura 2.4: Una soluci´n obtenida mediante el Algoritmo de Barrido o El procedimiento se repite n veces, comenzando en cada ejecuci´n por un ocliente diferente. Se propone adem´s un procedimiento para eliminar clientes de acada ruta finalizada e insertar clientes que a´n no fueron visitados, en el caso uque esto disminuya el costo de la ruta. Los clientes eliminados de la ruta ser´n abarridos por alguna ruta posterior. Utilizando esta variante las rutas puedensolaparse.2.3.2 Heur´ıstica de Asignaci´n Generalizada de Fisher y o JaikumarFisher y Jaikumar [28] proponen generar los clusters resolviendo un Problema deAsignaci´n Generalizada (GAP) sobre los clientes. Primero se fijan K clientes osemilla sk con k = 1, . . . , K sobre la base de los cuales se construir´n los clusters. aEn una segunda fase, se decide qu´ clientes asignar a cada uno de los clusters de emodo de no violar la capacidad del veh´ ıculo, resolviendo un GAP que se definea continuaci´n: o K min dik xik (2.3) k=1 i∈V {0} K s.a. xik = 1 ∀ i ∈ V {0} (2.4) k=1 qik xik ≤ Q ∀ k = 1, . . . , K (2.5) i∈V {0} xik ∈ {0, 1} ∀ i ∈ V {0}, ∀ k = 1, . . . , KLas variables xik indican si el cliente i es asignado al cluster k. El objetivoes minimizar el costo total de la asignaci´n, como se indica en 2.3. La re- ostricci´n 2.4 indica que cada cliente es asignado a exactamente un cluster. En ola desigualdad 2.5 se impone que la demanda de los clientes en un mismo clusterno puede superar la capacidad del veh´ ıculo. 17
  22. 22. El costo de insertar un cliente i en el cluster k se define como el costo dela mejor inserci´n del cliente i ruta (0, sk , 0), es decir, dik = min{c0i + ci,sk + ocsk ,0 , c0,sk + csk ,i + ci0 } − (c0,sk + csk ,0 ). En el caso de que los costos seansim´tricos, dik = c0i + ci,sk − c0,sk . eHeur´ ıstica de Fisher y JaikumarPaso 1 (inicializaci´n). Formar K clusters e inicializar cada uno con un cliente osk (k = 1, . . . , K).Paso 2 (asignaci´n). Resolver el Problema de Asignaci´n Generalizada (GAP) o opara decidir a qu´ cluster es asignado cada cliente. ePaso 3 (ruteo). Para cada cluster, resolver un TSP con sus clientes.2.3.3 Heur´ ıstica de Localizaci´n de Bramel y Simchi-Levi oEl planteo de Bramel y Simchi-Levi [29] es similar al de Fisher y Jaikumar. Enambos existe un conjunto de clientes semilla y a cada uno se le asignan algunosclientes. Sin embargo, en esta propuesta, los clientes semilla son determinadospor el algoritmo resolviendo un Problema de Localizaci´n de Concetradores con oCapacidades (CCLP). El CCLP se describe a continuaci´n. Se dispone de m posibles ubicaciones opara concentradores de capacidad Qj (j = 1, . . . , m) y n terminales, cada unode los cuales utiliza wi (i = 1, . . . , n) de la capacidad del concentrador al que seconecta. El costo por ubicar un concentrador en la ubicaci´n j es fj y el costo ode conectar el terminal i al concentrador j es cij . El CCLP consiste en decidir ˆcu´les concentradores colocar y qu´ terminales conectar a cada concentrador de a emodo que cada terminal se conecte con exactamente un concentrador, se satisfa-gan las restricciones de capacidad y se minimicen los costos. Una formulaci´n ocomo un Problema de Progamaci´n 0-1 es:o m n m min fj yj + cij xij ˆ (2.6) j=1 i=1 j=1 m s.a. xij = 1 ∀i = 1, . . . , n (2.7) j=1 n wi xij ≤ yj Qj ∀j = 1, . . . , m (2.8) i=1 xij ∈ {0, 1} ∀i = 1, . . . , n, ∀j = 1, . . . , m yj ∈ {0, 1} ∀j = 1, . . . , mLas variables binarias yj indican si se instala un concentrador en el sitio jy las xij indican si el terminal i se conecta al concentrador j. La funci´n oobjetivo (2.6) es la suma de los costos fijos por instalaci´n de concentradores oy los costos variables de conexi´n de terminales. La restricci´n 2.7 asegura o oque todo terminal se conecte a exactamente un concentrador. Finalmente, larestricci´n 2.8 asegura, por un lado, que si se instala un concentrador en el sitio oj la demanda de los terminales que se le conectan no supera su capacidad y, porotro lado, que si se decide no colocar un concentrador en j tampoco se conectenterminales a ese sitio. 18
  23. 23. El CCLP brinda un marco general para resolver Problemas de Ruteo deVeh´ıculos, definiendo a las posibles semillas como sitios para ubicar concen-tradores. Dados m subconjuntos de clientes, T1 , . . . , Tm , el costo de utilizar elsubconjunto Tj en la soluci´n es t(Tj ) (el costo de un TSP ´ptimo sobre los o oclientes Tj ), siempre que la demanda de los clientes de Tj no supere la capaci-dad del veh´ ıculo. Adem´s, para cualquier cliente i, el costo de agregarlo a Tj es at(Tj ∪ {i}) − t(Tj ). El problema de decidir qu´ semillas utilizar y qu´ clientes e econectar con qu´ semillas es un CCLP donde los posibles concentradores son las eposibles semillas, los terminales son los clientes, los costos fijos son los costosde rutear cada semilla y los costos de conexi´n son los costos de inserci´n de o oclientes en las semillas.Heur´ ıstica de Localizaci´n oPaso 1 (inicializaci´n). Seleccionar m semillas T1 , . . . , Tm . Para cada semilla oj, calcular fj = t(Tj ) y Qj = Q − k∈Tj qj . Para cada cliente i y cada semillaj, calcular cij = t(Tj ∪ {i}) − t(Tj ). Definir wi = qi . ˆPaso 2 (localizaci´n). Resolver un CCLP con las semillas como potenciales ositios concentradores y los clientes como terminales, utilizando los costos y ca-pacidades calculadas en el paso 1.Paso 3 (ruteo). La soluci´n del CCLP define un cluster para cada concentrador oseleccionado. Resolver un TSP para cada uno de dichos clusters. Este procedimiento es general, pero el c´lculo de los valores fj y cij puede a ˆconsumir mucho tiempo. Se propone utilizar n conjuntos semillas donde Tj ={j} y, por lo tanto, fj = 2c0j . Adem´s, se dan dos propuestas para los costos ade inserci´n: oSeed Tour Heuristic (STH): el costo se define como el costo de insertar i en la ruta (0, j, 0), como en la Heur´ ıstica de Fisher y Jaikumar. Asumiendo simetr´ en los costos, cij = ci0 + cij − cj0 . ıa ˆStar Connection Heuristic (SCH): el costo se define como el costo de ir de j a i y volver a j. En este caso tenemos cij = cij + cji . Si los clientes ˆ fueran insertados de acuerdo a esta pol´ ıtica, las rutas formadas tendr´ıan forma de estrella (ver Figura 2.5) y de ah´ el nombre de esta heur´ ı ıstica. Se puede probar que, bajo ciertas hip´tesis, utilizando esta estimaci´n la o o heur´ıstica es asint´ticamente ´ptima. o o Figura 2.5: Rutas en forma de estrella utilizadas en SCH 19
  24. 24. 2.4 M´todo Rutear Primero - Asignar Despu´s e eEn los m´todos rutear primero - asignar despu´s [30] tambi´n se procede en dos e e efases. Primero se calcula una ruta que visita a todos los clientes resolviendoun TSP. En general esta ruta no respeta las restricciones del problema y separticiona en varias rutas, cada una de las cuales s´ es factible. ı Dada r = (0, v1 , . . . , vn , 0), la soluci´n del TSP obtenida en la primera fase, ose determina la mejor partici´n de r que respete la capacidad del veh´ o ıculo.Este problema se puede formular como el de hallar un camino m´ ınimo en ungrafo dirigido y ac´ ıclico. Para ello, se construye un grafo G = (X, V, W ) dondeX = {0, v1 , . . . , vn }. Los arcos del G conectan todo par de clientes vi y vjcon i < j y tales que la demanda total de los clientes vi+1 , . . . , vj no supera jla capacidad del veh´ ıculo: V = {(vi , vj ) | i < j, k=i+1 dvk ≤ Q}. Cada arco(vi , vj ) se pondera con el costo de la ruta (0, vi+1 , . . . , vj , 0), es decir j−1 w(vi , vj ) = c0,vi+1 + cvj ,0 + cvk ,vk+1 (2.9) k=i+1 Un arco (vi , vj ) representa la ruta (0, vi+1 , . . . , vj , 0). Cada camino de 0 avn en G representa una posible partici´n de la ruta r en rutas que respetan las orestricciones de demanda. Por lo tanto, el camino de costo m´ ınimo entre 0 y vnrepresenta la partici´n de costo m´ o ınimo de la ruta original en rutas que respetanla restricci´n de capacidad. Como el grafo es ac´ o ıclico (s´lo hay arcos (vi , vj ) con oi < j), puede utilizarse el Algoritmo de Dijkstra para hallar dicho camino. En la Figura 2.6 se presenta un posible ordenamiento de los clientes de unproblema y su grafo asociado. Si el camino m´s corto de 0 a 4 en el grafo afuera (0, 2, 4), la soluci´n dada por el algoritmo ser´ las rutas (0, 1, 2, 0) y o ıan(0, 3, 5, 4, 0), como se indica. 4 5 4 5 0 1 2 3 5 4 1 2 1 2 3 3 Figura 2.6: Aplicaci´n del algoritmo rutear primero - asignar despu´s o e Aunque la ruta inicial sea la soluci´n ´ptima del TSP y la partici´n se real- o o oice de manera ´ptima, las rutas obtenidas no necesariamente son una soluci´n o o´ptima para el problema. Por lo tanto, alcanza con que la ruta inicial se calculeoen forma heur´ ısitca, por ejemplo, mediante la aplicaci´n de 2-opt sobre una ruta oaleatoria como en el trabajo original. El algoritmo puede ejecutarse repetidasveces, partiendo de diferentes rutas iniciales. Seg´n la definici´n original, w(vi , vj ) es el costo de la ruta que comienza en u ovi+1 , sigue el orden de la ruta original y termina en vj . Esta definici´n puede omodificarse permitiendo variar el orden de los clientes vi+1 , . . . , vj de modo de 20
  25. 25. obtener una ruta mejor. En el art´ ıculo original se aplica el algoritmo 2-opt sobrela ruta (0, vi+1 , . . . , vj , 0).2.5 Algoritmos de P´talos eSupongamos que se dispone de un conjunto de rutas R, de modo que cadaruta r ∈ R es factible, pero cada cliente es visitado por varias de las rutas.El problema de seleccionar un subconjunto de R de costo m´ ınimo que visiteexactamente una vez a cada cliente puede formularse como un Set PartitioningProblem (SPP): min ck xk k∈R s.a. aik xk = 1 ∀i ∈ V {0} k∈R xk ∈ {0, 1} ∀k ∈ Sdonde aik vale 1 si el cliente i es visitado por la ruta rk y 0 si no y donde ck esel costo de la ruta rk . La variable xk indica si la ruta rk es seleccionada o noen la soluci´n final. Esta formulaci´n se debe a Balinski y Quandt [31]. o o En el caso extremo de que R contenga todas las posibles rutas factibles,solucionar el SPP es equivalente a resolver el problema en forma exacta. Comola cantidad de rutas factibles es, en el caso general, exponencial en la cantidadde clientes, se suele generar solamente un subconjunto de formado por “buenas”rutas. Cada columna del SPP representa una ruta de R. Cuando en toda columnalos ceros aparecen de forma consecutiva, el problema verifica la propiedad deColumnas Circulares y el SPP correspondiente puede ser resuelto en tiempopolinomial [32]. Trasladada al problema la propiedad establece que, para de-terminado ordenamiento de los clientes del problema, el conjunto de clientesvisitado por cada ruta forma un intervalo (que en algunos casos tiene formade p´talo). Cuando las rutas se generan con el Algoritmo de Barrido verifican ela propiedad de Columnas Circulares. Diversas t´cnicas han sido propuestas epara generar “buenos” conjuntos de rutas que verifiquen la propiedad llamadas1-p´talos [33, 34] y 2-p´talos [35]. e e2.6 Procedimientos de B´ squeda Local uUna vez que se tiene una soluci´n para el problema, se puede intentar mejorarla omediante alg´n procedimiento de b´squeda local. Para cada soluci´n s se define u u oun conjunto de soluciones vecinas N (s). Un procedimiento de B´squeda Local uparte de una soluci´n s, la reemplaza por una soluci´n s∗ ∈ N (s) de menor o ocosto y repite el procedimiento hasta que la soluci´n no pueda ser mejorada. Al oterminar, se obtiene una soluci´n localmente ´ptima respecto a la definici´n de la o o ovecindad. Para obtener s∗ puede buscarse la mejor soluci´n de N (s) (estrategia obest improvement) o simplemente tomar la primera soluci´n de N (s) que mejore oel costo (estrategia first improvement). Usualmente se define N (s) como las soluciones que pueden obtenerse apli-cando a s alguna regla o procedimiento sencillo llamado movida. Las movidas 21
  26. 26. para el VRP pueden clasificarse en movidas de una ruta y movidas multi-ruta.En las movidas de una ruta los clientes que se visitan en una ruta no var´ ıanluego de la aplicaci´n del operador, lo que var´ es el orden en que se realizan o ıalas visitas. En las movidas multi-ruta, adem´s de cambios en el orden de las avisitas suele modificarse el conjunto de clientes visitados en cada ruta.2.6.1 El operador λ-intercambioUno de los operadores de b´squeda local para una ruta m´s conocidos es el u aλ-intercambio definido por Lin [16]. Un λ-intercambio consiste en eliminar λarcos de la soluci´n (λ > 1) y reconectar los λ segmentos restantes. Una soluci´n o ose dice λ-´ptima si no puede ser mejorada utilizando λ-intercambios. Se llama oλ-opt a un algoritmo de b´squeda local que utiliza λ-intercambios hasta alcanzar uuna soluci´n λ-´ptima. o o En una ruta que visita n clientes, hay n+1 maneras posibles de eliminar λλ arcos y, dada una elecci´n de arcos a eliminar, hay 2λ−1 (λ − 1)! maneras ode reconectar la ruta (incluyendo la reconexi´n que vuelve a generar la misma oruta). Por lo tanto, la cantidad de λ-intercambios posibles es 2λ−1 (λ − 1)! n+1 . λChequear si una soluci´n es λ-´ptima puede hacerse en tiempo O(nλ ) en el peor o ocaso. Usualmente se implementan 2-intercambios y 3-intercambios. Posibles movi-das de este tipo se muestran en las Figuras 2.7 y 2.8. En general, estas movidasinvierten el orden de algunas visitas. Asumiendo que las movidas no afectan lafactibilidad y que los costos son sim´tricos, puede buscarse movidas que mejoren eel costo de una ruta sin necesidad de explorar todas las posibilidades [36]. Sino se cumplieran dichos supuestos, buscar λ-intercambios tendr´ un costo com- ıaputacional m´s elevado debido a la necesidad de incorporar chequeos de factibil- aidad y re-calcular algunos costos. Renaud, Boctor y Laporte [37] propusieron una versi´n reducida de 4-opt ollamada 4-opt∗ . Se parte de dos secuencias disjuntas de nodos (v0 , . . . , vu+1 ) y(vk , vk+1 , vk+2 ) respetando el orden de la ruta, donde u ≤ w y w es un par´metro adel algoritmo. Si min{cv1 ,vk+1 , cvu ,vk+1 } < max{cv0 ,v1 , cvu ,vu+1 , cvk ,vk+1 , cvk+1 ,vk+2 },se eliminan los arcos (v0 , v1 ), (vu , vu+1 ), (vk , vk+1 ) y (vk+1 , vk+2 ), se agrega elde menor costo entre (v1 , vk+1 ) y (vu , vk+1 ) y se reconecta la ruta agregandotres arcos m´s. De esta manera se asegura que al menos uno de los arcos agre- agados tiene menor costo que alguno de los arcos eliminados. Como siempre seagrega el arco de menor costo entre (v1 , vk+1 ) y (vu , vk+1 ), los segmentos que sedebe reconectar son tres y no cuatro. Por lo tanto la cantidad de alternativaspara la reconexi´n es 8 y no 48 como en el 4-opt original. En la Figura 2.9 ose muestra todas las posibles maneras de reconectar una ruta, en el caso quecv1 ,vk+1 ≤ cvu ,vk+1 ; las l´ ıneas punteadas representan caminos y las l´ ıneas llenasrepresentan arcos. En el mismo trabajo, se propone buscar movidas que mejoren la soluci´n opartiendo de u = 1 e increment´ndolo en 1 cada vez que no se encuentren amejoras, hasta que u = w. Cuando eso ocurre, se vuelve a comenzar con u = 1hasta realizar una ronda completa de b´squedas infructuosas, en cuyo caso se udice que la soluci´n es 4-´ptima∗ . Chequear si una soluci´n es 4-´ptima∗ requiere o o o oun tiempo O(wn2 ), por lo tanto utilizando valores de w que sean peque˜os en ncomparaci´n con n se obtiene un algoritmo con tiempo de ejecuci´n O(n2 ). o o 22
  27. 27. Figura 2.7: El unico 2-intercambio posible para los arcos marcados ´ Figura 2.8: Todos los 3-intercambios posibles para los arcos marcados v0vk+2 v1vk+1 vu vk vu+1Figura 2.9: Todos los 4-intercambios∗ posibles para los arcos marcados sicv1 ,vk+1 ≤ cvu ,vk+1 . 23
  28. 28. 2.6.2 El algoritmo de Lin-KernighamUn problema que surge al aplicar λ-intercambios es que debe fijarse el valor de λde antemano. El algoritmo propuesto por Lin y Kernigham [38] utiliza la idea deintercambiar un conjunto de arcos por otro, pero determinando dichos conjuntos(y su cardinalidad) din´micamente durante la ejecuci´n del algoritmo. Dada una a oruta, la idea es determinar dos conjuntos de arcos {x1 , . . . , xk } e {y1 , . . . , yk }tales que su intercambio disminuya el costo de la soluci´n. Los arcos x deben oser parte de la ruta, ambos conjuntos deben ser disjuntos y, adem´s, eliminar alos arcos x y agregar los arcos y debe formar una ruta cerrada. Se comienza seleccionando un arco x1 = (v1 , v2 ). Luego, se busca y2 =(v2 , v3 ) de modo que cx1 −cy1 = cv1 ,v2 −cv2 ,v3 > 0. Al comenzar la iteraci´n i deoeste proceso, se han elegido x1 , . . . , xi−1 y y1 , . . . , yi−1 , donde xh = (v2h−1 , v2h )y yh = (v2h , vvh+1 ). Se busca ahora xi = (v2i−1 , v2i ), de modo que si se uniera v2i con v1 seobtendr´ una ruta cerrada (esto asegura que el proceso pueda finalizarse obte- ıaniendo una soluci´n factible) . Como v2i−1 fue determinado al seleccionar yi−1 oy xi debe ser un arco de la ruta, existen dos opciones para v2i (el anterior av2i−1 en la ruta y el siguiente a ´l), pero solo una de estas cerrar´ la ruta a ser e ıaunida con v1 . De modo que xi queda determinado por yi−1 . Para seleccionar yi = (v2i , v2i+1 ) debe cumplirse yi ∈ {x1 , . . . , xi } para / ique los conjuntos sean disjuntos, j=1 cxj − cyj > 0 para que el intercambiono empeore la soluci´n y, adem´s, debe poder elegirse el siguiente xi+1 . Si o ano es posible encontrar yi que cumpla todo lo anterior, se busca k tal que k j=1 cxj − cyj sea m´ximo y se realizan intercambian los arcos {x1 , . . . , xk } e a{y1 , . . . , yk }. En la Figura 2.10 se muestra una posible aplicaci´n del m´todo para encon- o etrar un intercambio. El procedimiento se repite hasta terminar en un ´ptimo olocal, cuando no es posible encontrar intercambios que mejoren la soluci´n. o x1 x1 x1 y1 y1 x3 y1 y2 y2 x2 x2 Figura 2.10: Una posible iteraci´n del algoritmo de Lin-Kernigham. o2.6.3 El operador Or-optUna versi´n reducida del algoritmo 3-opt es el algoritmo Or-opt [39], que consiste oen eliminar una secuencia de k clientes consecutivos de la ruta y colocarlos enotra posici´n de la ruta, de modo que permanezcan consecutivos y en el mismo oorden. Primero se realizan las movidas con k = 3, luego con k = 2 y finalmentecon k = 1. En la Figura 2.11 se muestra una ruta y todas las posibles manerasde reubicar los 3 primeros clientes a la manera de Or-opt. Si una ruta visita nclientes existen O(n2 ) de estas movidas. 24

×