Your SlideShare is downloading. ×
Heuristicas para problemas de ruteo de vehiculosd
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

Heuristicas para problemas de ruteo de vehiculosd

682
views

Published on

Published in: Education

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
682
On Slideshare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
22
Comments
0
Likes
1
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. (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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  • 29. Figura 2.11: Movidas para reubicar los 3 primeros clientes de una ruta.2.6.4 Operadores de Van BreedamVan Breedam [40] propuso dos operadores para intercambiar clientes entre unpar de rutas. En el operador String Relocation, una secuencia de m nodos estransferida de una ruta a la otra manteniendo el orden en la ruta original. Enoperador String Exchange una ruta env´ una secuencia de m clientes a la otra ıay esta ultima env´ otra secuencia de n clientes a la primera. Simb´licamente se ´ ıa odenota con (m, 0) a cada String Relocation y con (m, n) a cada String Exchange.En las Figuras 2.12(a)-(b) se muestra una movida SR (2, 0) y en 2.12(c)-(d) seilustra una movida SE (2, 1). (a) (b) (c) (d) Figura 2.12: Movidas String Relocation y String Exchange.2.6.5 GENI y GENIUSLas inserciones generalizadas [41] (GENI, por GENeralized Insertions) surgendentro de un m´todo de soluci´n del TSP y tienen como principal caracter´ e o ısticaque la inserci´n de un cliente en una ruta no necesariamente ocurre entre dos onodos adyacentes. Si vk es un nodo de la ruta, denotamos vk+1 a su sucesor yvk−1 a su predecesor. Se desea insertar un nodo v entre los nodos vi y vj (nonecesariamente consecutivos). En una inserci´n de Tipo I, se considera un nodo vk en el camino de vj a ovi (vk = vi y vk = vj ). La inserci´n consiste en eliminar los arcos (vi , vi+1 ), o(vj , vj+1 ) y (vk , vk+1 ) y agregar los arcos (vi , v), (v, vj ), (vi+1 , vk ) y (vj+1 , vk+1 ).Es necesario adem´s, invertir el sentido de los caminos (vi+1 , . . . , vj ) y (vj+1 , . . . , vk ). aUna inserci´n de este tipo se muestra en la Figura 2.13, donde las l´ o ıneas pun-teadas representan caminos y las l´ ıneas llenas representan arcos. Para una inserci´n de Tipo II, debe seleccionarse vk en el camino de vj a vi ode modo que vk = vj y vk = vj+1 y adem´s vl en el camino de vi a vj tal que avl = vi y vl = vi+1 . La inserci´n consiste, como se muestra en la Figura 2.14, en oeliminar los arcos (vi , vi+1 ), (vl−1 , vl ), (vj , vj+1 ) y (vk−1 , vk ), y agregar los arcos 25
  • 30. vi v vi v vj vj vi+1 vi+1 vk vj+1 vk vj+1 vk+1 vk+1 Figura 2.13: Inserci´n GENI de Tipo I. o vk vk vi vi vk−1 vi+1 vk−1 vi+1 vl−1 v vl−1 v vl vl vj+1 vj+1 vj vj Figura 2.14: Inserci´n GENI de Tipo II. o(vi , v), (v, vj ), (vl , vj+1 ), (vk−1 , vl−1 ) y (vi+1 , vk ). Adem´s, debe revertirse el aorden de los caminos (vi+1 , . . . , vl−1 ) y (vl , . . . , vj ). Dado que para evaluar las inserciones debe seleccionarse vi , vj , vk y vl ,para lo cual hay O(n4 ) combinaciones, se propone disminuir las posibilidadesmediante la definici´n de una p-vecindad. La p-vecindad del nodo v, Np (v), ose define como el conjunto de los p nodos de la ruta m´s cercanos a v seg´n a ulos costos del problema (si la ruta tiene menos de p nodos, entonces todospertenecen a Np (v)). Fijado un valor para p, la b´squeda se restringe exigiendo uque vi , vj ∈ Np (v), vk ∈ Np (vi+1 ) y vl ∈ Np (vj+1 ). El algoritmo GENI para construir una ruta, inicializa la misma con 3 nodosal azar. Luego selecciona un nodo v que no est´ en la ruta y realiza la mejor ede todas las inserciones de Tipo I y Tipo II restringidas a las p-vecindades. Elproceso se repite hasta que todos los nodos hayan sido visitados. Dada una ruta, se definen dos procedimientos de inserci´n y remoci´n de o oclientes: el procedimiento Stringing consiste en realizar una inserci´n de GENIode Tipo I o Tipo II con p-vecindades y el Unstringing es el inverso de una in-serci´n GENI de Tipo I o Tipo II. El algoritmo de post-optimizaci´n GENIUS o ocomienza considerando el primer cliente de la ruta: se lo elimina mediante Un-stringing y se lo vuelve a insertar utilizando Stringing. Esto podr´ incrementar ıael costo de la soluci´n. Si la soluci´n es mejorada, se vuelve a comenzar con el o oprimer cliente de la nueva ruta. Si no es mejorada, se repite el proceso con elsegundo cliente de la nueva ruta. El proceso termina luego de eliminar e insertarel ultimo cliente de la ruta. ´ 26
  • 31. 2.6.6 Transferencias c´ ıclicasLas transferencias c´ ıclicas, introducidas por Thompson y Psaraftis [42], sonmovidas multi-ruta que intentan eliminar clientes de una ruta y reubicarlosen otra de manera c´ ıclica. Si R = {r1 , . . . , rm } es el conjunto de rutas de lasoluci´n y ρ : R → R es una permutaci´n c´ o o ıclica de alg´n subconjunto Rb ⊆ R u(con |Rb | = b), la transferencia de exactamente k clientes de cada ruta r ∈ Rba la ruta ρ(r) es una k-transferencia b-c´ ıclica. Cuando Rb = R se habla dek-transferencias c´ ıclicas. Dado un valor de k, buscar una k-transferencia c´ ıclica que mejore la soluci´n oactual, puede formularse como el problema de hallar un ciclo de costo negativoen un grafo dirigido G = (V, A, W ). Los nodos de G corresponden a conjuntosde k clientes que est´n en una misma ruta de la soluci´n: V = {s | s ⊂ a ori , |s| = k, ri ∈ R}. El conjunto de arcos A = {(si , sj ) | si ⊂ Ri , sj ⊂ Rj , Ri =Rj , Rj ∪ si sj es factible} indica las transferencias factibles. El arco (si , sj )representa la transferencia que elimina los clientes si de Ri , los agrega a Rj yelimina sj de Rj . El costo de un arco (si , sj ) es el incremento del costo en laruta Rj si se realiza la transferencia, es decir, w(si , sj ) = t(Rj ∪ si sj ) dondet(S) es el costo de un TSP ´ptimo sobre el conjunto de clientes S. o Todo ciclo en G tal que sus nodos corresponden a conjuntos de clientesen rutas diferentes, representa una k-transferencia c´ ıclica. Dicha transferenciamejora la soluci´n si el peso del ciclo correspondiente es negativo. Encontrar oun ciclo de costo negativo con las caracter´ ısticas deseadas es NP-Hard [42].Incluso G no puede ser construido en tiempo polinomial: |A| es O(m2 n2k ) ycalcular w(si , sj ) implica resolver un TSP. En el art´ ıculo se da un m´todo para eaproximar w(si , sj ) en tiempo polinomial y una heur´ ısitca para buscar ciclos decosto negativo que pasan por subconjuntos de rutas diferentes. 27
  • 32. Cap´ ıtulo 3Extensiones de lasheur´ ısticas cl´sicas aLas heur´ısticas presentadas en el Cap´ ıtulo 2 surgen con el objetivo de resolverel VRP. En esta secci´n se muestran algunos trabajos que extienden dichas oheur´ ısticas para contemplar algunas restricciones adicionales como ventanas detiempo y flota heterog´nea. e3.1 Algoritmo de AhorrosSolomon (VRPTW)Solomon [43] propuso una extensi´n del Algoritmo de Ahorros (ver Secci´n 2.1) o opara contemplar problemas con ventanas de tiempo. Determinar si la uni´n ode dos rutas ri y rj es factible no resulta directo en presencia de ventanas detiempo, pues el arribo a los clientes de rj puede atrasarse y esto podr´ ocasionar ıaque se violaran algunas ventanas de tiempo. Dada una ruta factible (v0 , . . . , vm+1 ) con v0 = vm+1 = 0, llamamos bi y wial tiempo de arribo al nodo vi (0 ≤ i ≤ m+1). El m´ ınimo tiempo de espera en elnodo vi (i = 0) es wi = max{0, ei − (bi−1 + si−1 + ti−1,i )}. Si el tiempo de arriboal nodo vi se incrementa en PFi , el tiempo de arribo a los nodos posteriores vj(con i < j ≤ m + 1) se incrementar´ en PFj = max{0, PFj−1 − wj }. El valor aPF recibe el nombre de push forward y mide cu´nto se desplaza el tiempo de aarribo respecto a su valor original. Dado que el Push Forward en un nodos´lo depende de sus predecesores, es posible determinar si un incremento en el otiempo de arribo a un cliente mantiene la factibilidad de la ruta, mediante unarecorrida por los clientes posteriores. Para cada uno de ellos se calcula el nuevotiempo de arribo (que depende solamente del cliente anterior) y se verifica siest´ dentro de la ventana de tiempo. Puede observarse que los valores del push aforward son no crecientes a lo largo de la ruta. La b´squeda puede terminarse uantes si se encuentra alg´n nodo con push forward igual a 0, pues para todos ulos nodos posteriores a ´l tambi´n ser´ igual a 0, y como la ruta original era e e afactible la nueva tambi´n lo ser´. Este procedimiento es agregado al Algoritmo e ade Ahorros original para determinar, de manera eficiente, si la uni´n de dosorutas es factible. 28
  • 33. Utilizando las definiciones originales del ahorro (2.1 o 2.2) no se considera ladimensi´n temporal del problema. Esto puede llevar a unir rutas muy cercanas oen cuanto a distancias pero con ventanas de tiempo muy diferentes, provocandograndes tiempos de espera. Si el m´ximo ahorro se da en sij pero ej es mucho amayor que bi + tij , en la nueva ruta el tiempo de espera en j ser´ muy elevado. aDado que no se considera la posibilidad de insertar clientes entre i y j, otroveh´ıculo deber´ visitar clientes que podr´ haber sido visitados en ese tiempo a ıanocioso, resultando en soluciones que utilizan una gran cantidad de veh´ ıculos.Para resolver este problema, en lugar de modificar la definici´n de sij , se fija oun valor m´ximo W para los tiempos de espera y no se realizan las uniones que aocasionen tiempos de espera mayores que W .Golden, Assad, Levy y Gheysens (FSMVRP)En esta propuesta se modifica la definici´n del ahorro para incorporar los costos ofijos de los diferentes veh´ ıculos [8]. En cada iteraci´n se tiene un conjunto de orutas, cada una de las cuales cubre cierta demanda z y est´ asignada al veh´ a ıculocapaz de cargar dicha demanda que tenga el menor costo fijo. Notamos conF (z) al costo fijo del veh´ ıculo m´s barato cuya capacidad sea no menor que z y acon P (z) a la capacidad de dicho veh´ ıculo. Si dos rutas (una con el cliente i al final y otra con el cliente j al comienzo)con demandas respectivas zi y zj son combinadas, el ahorro en t´rminos de costos efijos es F (zi ) + F (zj ) − F (zi + zj ). Se define, entonces, el Ahorro Combinado(CS, por sus siglas en ingl´s) como e sij = sij + F (zi ) + F (zj ) − F (zi + zj ) (3.1)donde sij es el ahorro original (2.1 o 2.2). Es decir, se suma el ahorro pordistancias y el ahorro por costos fijos. Este enfoque es una extensi´n directa del oalgoritmo original y toma en cuenta s´lamente el ahorro de una iteraci´n a la o osiguiente. Se proponen dos medidas adicionales que toman en cuenta el costode oportunidad de utilizar un veh´ ıculo m´s grande al unir dos rutas. a Luego de unir las rutas, la capacidad libre del veh´ıculo utilizado para recorrerla nueva ruta ser´ P (zi + zj ) − zi − zj . En el Ahorro de Oportunidad Optimista a(OOS por sus siglas en ingl´s), se supone (de manera optimista) que dicha ecapacidad estar´ colmada al final del algoritmo. Por lo tanto, al unir las rutas ase ahorra, adem´s, el costo fijo del veh´ a ıculo m´s barato que pueda transportar adicha carga. El OOS es entonces: s∗ = sij + F (P (zi + zj ) − zi − zj ) ij (3.2) Los autores reportan que el m´todo basado en CS desfavorece la combi- enaci´n de rutas, mientras que el OOS las combina excesivamente. Una ter- ocer medida llamada Ahorro de Oportunidad Realista (ROS por sus siglas eningl´s), surge como soluci´n intermedia. Esta medida incluye el t´rmino del e o eahorro de oportunidad s´lo cuando la nueva ruta requiere un veh´ o ıculo de mayorcapacidad que los que utilizan las dos rutas por separado, es decir, cuandow = P (zi + zj ) − max{zi , zj } > 0. Adem´s, considera como ahorro de oportu- anidad, al costo del veh´ıculo m´s caro que no puede satisfacer la demanda de la anueva ruta. Siendo F ′ (z) el costo fijo del veh´ ıculo m´s caro que no puede cargar auna demanda de z, se define s′ = sij + δ(w)F ′ (P (zi + zj ) − zi − zj ) ij (3.3) 29
  • 34. donde δ(0) = 0 y δ(w) = 1 si w > 0. Al igual que en el algoritmo original,puede agregarse un par´metro de forma. a Una desventaja de cualquiera de estas propuestas es que incorporan datosde la demanda de las rutas en la definici´n del ahorro y por lo tanto algunos oahorros deben ser recalculados en cada iteraci´n del algoritmo. o3.2 Heur´ ısticas de Inserci´n Secuencial oSolomon (VRPTW)Solomon [43] propone varias heur´ ısticas de inserci´n secuencial para resolver el oVRPTW. Todas se basan en extensiones de las funciones de costo para incor-porar tanto las distancias como el tiempo. Se define bj y wj al igual que en laSecci´n 3.1. o Por un lado, se define una heur´ ıstica de inserci´n m´s cercana. Si se tiene o auna ruta (0, . . . , vi , 0), se define el costo de insertar el cliente vj a continuaci´n ode vi en la ruta como cij = δ1 cij + δ2 Tij + δ3 Vij ˆ (3.4) Tij = bj − (bi + si ) (3.5) Vij = lj − (bi + si + tij ) (3.6)donde los par´metros δ1 , δ2 y δ3 son no negativos y suman 1. El valor de aTij indica la diferencia entre la hora de comienzo del servicio en j y la del findel servicio en i, midiendo la cercan´ de los clientes en t´rminos temporales. ıa ePor otro lado, Vij mide la urgencia de realizar la inserci´n como la diferencia oentre la hora de arribo a j (sin incluir la espera) y la ultima hora a la que se ´podr´ arribar a dicho cliente. Valores de Vij cercanos a 0 indican que dentro ıade “pocas” iteraciones, el cliente j no podr´ ser insertado en esta ruta. a El algoritmo selecciona el cliente inicial de una ruta como el m´s cercano aal dep´sito (seg´n la medida c) dentro de los clientes no visitados. En cada o u ˆpaso se selecciona al cliente no visitado que sea m´s cercano al ultimo cliente de a ´la ruta (considerando solamente las inserciones que factibles) y se lo agrega alfinal. Cuando no hay m´s clientes para insertar en la ruta actual, se crea una anueva o se termina si todos los clientes han sido visitados. Por otro lado, se definen 3 heur´ ısticas m´s elaboradas que responden a los amismos criterios gen´ricos. Se tiene la ruta (v0 , . . . , vt+1 ) con v0 = vt+1 = e0. Al igual que en la heur´ ıstica de Mole & Jameson (ver Secci´n 2.2.1), se outilizan dos medidas para decidir el pr´ximo cliente a insertar en una ruta: oc1 (vi , w) considera la ventaja de agregar el cliente no visitado w entre los clientesconsecutivos vi y vi+1 y c2 (vi , w) indica la urgencia de realizar dicha inserci´n.oEl algoritmo es esencialmente el mismo (salvo porque no se aplica ningunapost-optimizaci´n a las rutas): se crea una nueva ruta, se selecciona un cliente a oinsertar seg´n c2 y se inserta seg´n c1 , repitiendo el proceso hasta que no haya u uinserciones factibles. Se proponen tres alternativas para seleccionar el primer cliente de la ruta:el m´s lejano al dep´sito, el cliente cuya ventana de tiempo termine antes y el a oque minimice la suma del tiempo y distancia al dep´sito. Para las medidas c1 oy c2 tambi´n se realizan tres propuestas. e 30
  • 35. 1. En esta propuesta se considera la ventaja de visitar al cliente dentro de la ruta parcial y no en una ruta espec´ıfica para ´l. En este caso tenemos: e c1 (vi , w) = α1 c11 (vi , w) + α2 c12 (vi , w) (3.7) c11 (vi , w) = diw + dw,i+1 − µdi,i+1 (3.8) c12 (vi , w) = bw − bi+1 i+1 (3.9) c2 (vi , w) = λd0w − c1 (vi , w) (3.10) donde bw indica el tiempo de arribo al nodo i + 1 cuando w es insertado i+1 en la ruta y dij es la distancia entre los nodos i y j. Los par´metros a verifican α1 , α2 , µ, λ ≥ 0 y α1 + α2 = 1. Para calcular la mejor inserci´n (3.7) se tiene en cuenta dos factores. Por o un lado (3.8), se mide el ahorro en la distancia si se insertara w entre vi y vi+1 . Adem´s (3.9), se tiene en cuenta el retardo que provoca insertar a el cliente en la ruta. Finalmente, para seleccionar el pr´ximo cliente a o insertar se considera (3.10) tanto el valor c1 como la distancia del cliente al dep´sito, procurando privilegiar a los clientes para los que ser´ demasiado o ıa crear una ruta individual. 2. En este caso se intenta seleccionar el cliente que, si fuera insertado en la ruta, minimiza una medida de la distancia y el tiempo total de la misma. Aqu´ c1 es igual que en la parte anterior y ı, c2 (vi , w) = β1 Rd (w) + β2 Rt (w) donde Rd (w) y Rt (w) son el tiempo y la distancia total de la ruta si w es insertado entre vi y vi+1 . En este caso, el cliente seleccionado es el que minimiza c2 , contrariamente a los dem´s casos (en que se busca maximizar a la medida c2 ). Los par´metros verifican β1 ≥ 0, β2 > 0 y β1 + β2 = 1. a 3. En la ultima propuesta se define ´ c1 (vi , w) = α1 c11 (vi , w) + α2 c12 (vi , w) + α3 c13 (vi , w) (3.11) c13 (vi , w) = lw − bw (3.12) c2 (vi , w) = c1 (vi , w) (3.13) siendo c11 y c12 los de la propuesta 1. Se agrega un nuevo t´rmino a e c1 (3.11), que mide que tan cerca del final de su ventana de tiempo se arribar´ al nodo w si ´ste fuera insertado en la ruta (3.12). Finalmente, ıa e se utiliza c1 para seleccionar el pr´ximo cliente a insertar (3.13). o En el trabajo se experimenta con varias combinaciones de los criterios deinicializaci´n y de selecci´n propuestos. o oDullaert, Janssens, Sorensen y Vernimmen (FSMVRPTW)Dullaert, Janssens, Sorensen y Vernimmen [44] extienden las ideas de los algo-ritmos de Inserci´n Secuencial de Solomon para resolver el FSMVRP, que es una ovariante del FSMVRP en la que se incluyen ventanas de tiempo en los clientes. 31
  • 36. El algoritmo comienza creando una nueva ruta para el veh´ ıculo de menorcapacidad. Dicha ruta puede inicializarse con el cliente m´s lejano al dep´sito a oo con el cliente cuya ventana de tiempo finalice antes. Para cada cliente novisitado se define c1 utilizando 3.11, 3.8 y 3.9 junto con un t´rmino c13 que eincorpora las costos fijos de los veh´ ıculos. Para dicho valor, se adaptan lasideas de Ahorros Combinados (CS), Ahorros de Oportunidad Optimista (OOS)y Ahorros de Oportunidad (ROS) Realista de Golden et al. (ver Secci´n 3.1). oOriginalmente estas medidas est´n definidas para el caso en que se unen dos arutas diferentes y no para inserciones de un cliente en una ruta. Se denota como Q y Q la carga y la capacidad del veh´ ıculo, respectiva-mente. Dada una posible inserci´n, Qnew y Qnew representan la nueva carga oy la potencialmente nueva capacidad del veh´ ıculo, respectivamente. Al AhorroCombinado Adaptado (ACS) es el ahorro inmediato en costos fijos, es decirF (Qnew ) − F (Q). Al Ahorro de Oportunidad Optimista Adaptado (AOOS)suma a ACS el costo fijo del menor veh´ ıculo capaz de transportar la capacidad ıculo, F (Qnew − Qnew ). Finalmente, el Ahorro de Oportunidad Re-libre del veh´alista Adaptado (AROS), agrega a ACS el costo fijo del veh´ ıculo m´s caro que ano puede transportar la capacidad libre: F ′ (Qnew − Qnew ). Para decidir el pr´ximo cliente a insertar en la ruta se utiliza la medida c2 , odefinida como: c2 (vi , w) = λ(d0w + t0w ) + sw + F (qw ) − c1 (vi , w)siendo qw la demanda del cliente w. Esta medida cuantifica el beneficio deincluir a w en la ruta en lugar de utilizar una ruta nueva para el solo.3.3 Heur´ ısticas de Inserci´n en Paralelo oPotvin y Rousseau (VRPTW)La heur´ ıstica para el VRPTW propuesta por Potvin y Rousseau [22] es unaversi´n Paralela de la heur´ o ıstica de Inserci´n Secuencial de Solomon (ver Secci´n 3.2). o o La cantidad de rutas de la soluci´n se decide al comienzo y no se altera odurante la ejecuci´n del algoritmo. Para decidir cu´ntas rutas crear, se ejecuta o auna de las Heur´ ısticas de Inserci´n Secuencial dada por Solomon y se crea una onueva soluci´n con la cantidad de rutas de la soluci´n obtenida. Adem´s, de o o acada una de las rutas dadas por el algoritmo de Solomon, se selecciona el clientem´s lejano al dep´sito como cliente inicial de una ruta en la nueva soluci´n. a o oDe esta manera, el algoritmo de Solomon se utiliza para decidir cu´ntas rutas ainiciales crear y tambi´n para inicializar dichas rutas. Este enfoque es similar eal de Christofides et al. (ver Secci´n 2.2.2). o En cada iteraci´n se debe decidir qu´ cliente agregar a la soluci´n y d´nde o e o oubicarlo (eso implica decidir la ruta y la posici´n dentro de la ruta). Al igual oque en los algoritmos de Mole & Jameson (ver Secci´n 2.2.1) y de Solomon, ose utilizan dos medidas para decidir qu´ cliente insertar y d´nde insertarlo. Se e odefine la medida c1r (vi , w) es similar a la c1 de los algoritmos de Solomon: c1r (vi , w) = α1 c11r (vi , w) + α2 c12r (vi , w) c11r (vi , w) = dik + dkj − µdij c12r (vi , w) = bjk − bj 32
  • 37. es decir, la suma ponderada del incremento en distancia y el retardo provocadospor la inserci´n del cliente w entre los clientes consecutivos vi y vi+1 en la ruta or. Notar que hay un valor de la medida para cada ruta. Luego, para cada clientew se calcula la mejor alternativa c∗ ∗ (vi , w) = min c1r (vi , w), donde el m´ 1r ∗ ınimose toma de todas las posibles rutas r y todos los pares de nodos consecutivos endicha ruta. Finalmente, para decidir cu´l de todas las inserciones realizar, se calcula, apara cada cliente c2 (w) = (c1r (vi , w) − c∗ ∗ (vi , w)) 1r ∗ r=r ∗Esta expresi´n mide la urgencia de insertar al cliente w en la soluci´n como o ola diferencia del costo de la mejor alternativa con todas las dem´s. Es una ageneralizaci´n de la medida utilizada en la Heur´ o ıstica de Inserci´n en Paralelo ode Christofides et al. (ver Secci´n 2.2.2). Valores elevados de c2 (w) indican ouna gran diferencia entre el costo la mejor opci´n y el costo de insertarlo en ootras rutas. Estos clientes deben considerarse primero, pues la cantidad dealternativas interesantes para ellos es reducida. Por lo tanto, se calcula w∗ =arg maxw c2 (w) y ese cliente es insertado en la ruta r∗ , en la posici´n dada por oc1r∗ . La medida c1 toma un valor muy grande L si la inserci´n del cliente en la ruta ono es factible. Si para el cliente w hay Nw rutas en las que puede ser insertado(con 0 ≤ Nw ≤ N ), el valor de c2 (w) ser´ cercano a (N − Nw )L, pues N − Nw at´rminos de la suma ser´n cercanos a L. Entonces, siempre que para dos clientes e aw y w′ se cumpla que Nw < Nw′ , el cliente w ser´ preferible al w′ . Es decir, acon esta medida tienen prioridad los clientes con menos alternativas siempreque L sea lo suficientemente grande. Para dos clientes con igual cantidad dealternativas, la medida discrimina por los costos de inserci´n. o Los unicos par´metros del algoritmo son α1 y α2 en la definici´n de c11r . ´ a oAdem´s de variar los par´metros, se ejecuta el algoritmo varias veces buscando a asoluciones con menos rutas. Para eso, el valor de N se decrementa en 1 y elprocedimiento se repite hasta que no se encuentren soluciones factibles. Cuandoel valor de N se decrementa en 1, debe decidirse cu´l de los clientes iniciales se aelimina. El criterio utilizado es el de eliminar uno de los clientes m´s cercanos aal resto de los clientes de la soluci´n inicial. o3.4 Algoritmo de BarridoSolomon (VRPTW)Solomon tambi´n propuso una extensi´n del Algoritmo de Barrido para el e oVRPTW [43]. Las restricciones temporales no se consideran al construir lossectores, sino al dise˜ar las rutas una vez que ´stos han sido construidos. n e En cada paso se crea un sector del mismo modo que en el algoritmo original,teniendo en cuenta solamente la restricci´n de capacidad. Sobre los clientes ode ese sector se aplica un algoritmo de Inserci´n Secuencial de Solomon (ver oSecci´n 3.2) para se construir una sola ruta. Dado que la ruta debe respetar las oventanas de tiempo, algunos clientes del sector pueden quedar fuera de ella. Losclientes visitados por la ruta construida se eliminan del problema y los otros semantienen y ser´n considerados en futuras iteraciones. a 33
  • 38. Para continuar con el proceso debe decidirse el cliente a partir del cual seformar´ el siguiente sector. Asumiendo que el giro de la recta se realiza en asentido anti-horario, se divide al ultimo sector en 2 y se selecciona el cliente ´que forme el menor ´ngulo con la recta que bisecta el sector original. Con esto ase pretende asegurar que los clientes que quedaron sin visitar est´n en sectores ediferentes en pr´ximas iteraciones. o3.5 Rutear Primero - Asignar Despu´s eGolden, Assad, Levy y Gheysens (FSMVRP)Golden et al. [8] dan una extensi´n directa del m´todo Rutear Primero - asignar o edespu´s (ver Secci´n 2.4) para FSMVRP. En la versi´n original del algoritmo, e o ocada arco (ri , rj ) representa la ruta (0, ri+1 , . . . , rj , 0) y se pondera con la distan-cia recorrida por dicha ruta (ver Ecuaci´n 2.9). En la versi´n para FSMVRP se o oconsidera, adem´s de la distancia, el costo del menor veh´ a ıculo capaz que recorrerla ruta: j−1 j w(ri , rj ) = c0,ri+1 + crk ,rk+1 + crj ,0 + F drk k=i+1 k=i+1 Luego, al igual que en el algoritmo original, se halla el camino de costom´ınimo entre 0 y rn para obtener las rutas de la soluci´n. Los mismos autores oproponen un procedimiento similar a ´ste, que permite considerar m´s parti- e aciones de la ruta original incorporando varias copias del dep´sito en el grafo oauxiliar. 34
  • 39. Cap´ ıtulo 4Metaheur´ ısticasPara obtener mejores soluciones que las heur´ ısticas presentadas en el Cap´ ıtulo 2,es necesario recurrir a t´cnicas que realicen una mejor exploraci´n del espacio de e osoluciones. Las Metaheur´ ısticas son procedimientos gen´ricos de exploraci´n del e oespacio de soluciones para problemas de optimizaci´n y b´squeda. Proporcionan o uuna linea de dise˜o que, adaptada en cada contexto, permite generar algoritmos nde soluci´n. En general, las metaheur´ o ısticas obtienen mejores resultados que lasheur´ısticas cl´sicas, pero incurriendo en mayores tiempos de ejecuci´n (que de a otodos modos, son inferiores a los de los algoritmos exactos). En este cap´ ıtulo se reportan los resultados m´s significativos en la aplicaci´n a ode Algoritmos de Hormigas, B´squeda Tab´ y Algoritmos Gen´ticos para re- u u esolver el VRP y el VRPTW. Los m´todos seleccionados son representantes de etres paradigmas diferentes. Los Algoritmos de Hormigas son procedimientosbasados en agentes que utilizan m´todos constructivos aleatorizados y coop- eeran entre s´ compartiendo informaci´n. Los algoritmos de B´squeda Tab´ son ı o u um´todos de b´squeda local que aceptan empeorar las soluciones para escapar e ude los ´ptimos locales. Los Algoritmos Gen´ticos se basan en mantener un con- o ejunto de soluciones lo suficientemente diverso como para cubrir gran parte delespacio de soluciones.4.1 Algoritmos de HormigasLos Sistemas de Hormigas o Ant Systems se inspiran en la estrategia utilizadapor las colonias de hormigas para buscar alimentos. Cuando una hormiga en-cuentra un camino hacia una fuente de alimento, deposita en el trayecto unasustancia llamada feromona. La cantidad de feromona depositada depende dela longitud del camino y de la calidad del alimento encontrado. Si una hormigano detecta la presencia de feromona se mueve aleatoriamente; pero si percibedicha dicha sustancia, decidir´ con alta probabilidad moverse por los trayectos acon m´s cantidad, lo que a su vez provocar´ una aumento de la feromona de- a apositada en esa zona. De este proceso emerge una comportamiento denominado ıtico: cuanto m´s hormigas sigan cierto trayecto, m´s atractivo ´ste seautocatal´ a a evuelve para ellas. En los Algoritmos de Hormigas se simula el comportamiento de una coloniade estos animales. Cada hormiga construye una soluci´n combinando un cri- o 35
  • 40. terio ´vido que le indica que tan bueno parece ser tomar cierta decisi´n, y la a oinformaci´n hist´rica (bajo la forma de feromona) que le indica que tan bueno o ofue tomar dicha decisi´n. El primer problema al que se aplic´ esa metodolog´ o o ıafue el TSP [45]. Las decisi´n que toma una hormiga en cada paso es elegir ola pr´xima ciudad a visitar. El criterio ´vido, llamado visibilidad, est´ dado o a apor una medida ηij = 1/cij , que indica qu´ tan bueno es moverse al nodo j eestando en el nodo i. Adem´s, en la iteraci´n t del algoritmo, cada arco (i, j) a odel problema tiene asociada una cantidad de feromona τij (t). En el modelo ANT-Cycle [45], M hormigas se distribuyen entre los nodos(en general se coloca una hormiga en cada nodo, siendo M = n). En la iteraci´not, cada hormiga construye una soluci´n seleccionando nodos de acuerdo a una oregla probabil´ıstica que combina ηij y τij (t). Si est´ ubicada en el nodo i, la ahormiga se mueve al nodo j con probabilidad È  [τij (t)]α [ηij ]β  α β si j ∈ Ω pij (t) = h∈Ω [τih (t)] [ηih ] (4.1)  0 si j ∈ Ω /siendo Ω el conjunto de nodos a´n no visitados. Los par´metros α y β regulan la u aimportancia relativa de la feromona y la visibilidad, es decir, de la informaci´n orecolectada por la colonia y el criterio de selecci´n ´vido. o a Cuando todas las hormigas han construido una soluci´n se actualiza la fer- oomona en cada arco (i, j) seg´n la siguiente regla u τij (t + 1) = ρτij (t) + ∆τij (4.2) M k kdonde ∆τij = k=1 ∆τij y ∆τij indica la feromona depositada por la k-´simaehormiga en dicho arco. Si la soluci´n encontrada por la k-´sima hormiga tiene o e klongitud Lk y utiliza el arco (i, j), entonces ∆τij = Q/Lk (Q es un par´metro a kdel algoritmo); en otro caso ∆τij = 0. El par´metro ρ ∈ [0, 1], llamado coeficiente de evaporaci´n, establece el a oporcentaje de feromona que permanece de una iteraci´n a otra y surge con el oobjetivo principal de evitar la convergencia prematura del algoritmo.Algoritmo Ant System para TSPPaso 1 (inicializaci´n). Colocar una hormiga en cada nodo. Hacer t := 0 y oτij (t) := τ0 ∀(i, j) ∈ EPaso 2 (construcci´n). Para cada hormiga, construir una soluci´n de acuerdo o oa la regla probabil´ ıstica 4.1.Paso 3 (actualizaci´n). Actualizar la feromona en cada arco seg´n 4.2. o uPaso 4 (terminaci´n). Hacer t := t + 1. Si t < T max colocar una hormiga en ocada nodo e ir a 2. Si no, terminar. Notar que las probabilidades pij no dependen de cu´l sea la ruta parcial y arecorrida por la hormiga, por lo tanto, solo es necesario calcularlas al comienzode cada iteraci´n. Cada hormiga tarda un tiempo O(n2 ) en construir una osoluci´n y al utilizar n hormigas, el tiempo de ejecuci´n de una iteraci´n del o o oalgoritmo es O(n3 ). Si se trabaja con conjuntos de candidatos puede reducirseeste tiempo a O(n2 ). Para cada nodo i se define un conjunto de nodos can-didatos C(i) y la probabilidad de la f´rmula 4.1 se calcula sobre Ω ∩ C(i). Si la o 36
  • 41. cardinalidad de los conjuntos de candidatos es una constante γ, una iteraci´n odel algoritmo tarda un tiempo O(γn2 ). El algoritmo presentado es un esquema b´sico sobre el que se han desarrol- alado diversas variantes. A continuaci´n se presentan algunas de estas variantes opara resolver el TSP.Ant System con Selecci´n Elitista oUna de las mejoras propuestas para el algoritmo Ant System es la introducci´node una estrategia elitista para la actualizaci´n de la feromona [46]. Esta idea oconsiste en dar m´s ´nfasis a la mejor soluci´n encontrada en cada iteraci´n. Si a e o oL∗ es el largo de la mejor soluci´n encontrada en la iteraci´n t, la f´rmula de o o oactualizaci´n de feromona en el arco (i, j) es ahora o ∗ τij (t + 1) = ρτij (t) + ∆τij + ∆τij (4.3) ∗ Q ∗donde ∆τij = σ L∗ si el arco (i, j) es parte de la mejor soluci´n y ∆τij = 0 oen otro caso. La idea es actualizar la feromona como si σ hormigas (llamadashormigas elitisitas) hubieran encontrado la mejor soluci´n. oAnt System con Selecci´n Elitista y Ranking oLa idea de la Selecci´n Elitista, que da m´s ´nfasis a la mejor soluci´n en- o a e ocontrada en una iteraci´n, puede generalizarse dando lugar a la Selecci´n por o oRanking [47]. Antes de actualizar la feromona, se ordena a las hormigas seg´n uel largo de la soluci´n obtenida (L1 ≤ . . . ≤ LM ). Solamente las σ − 1 primeras ohormigas colocan feromona en los arcos, donde σ es la cantidad de hormigaselitistas. Adem´s, la feromona aportada por la hormiga en la posici´n µ es a oponderada por σ − µ . De este modo, la regla de actualizaci´n de feromona es la o σ−1 µ µ Qdada en 4.3, pero ∆τij = µ=1 ∆τij y ∆τij = (σ − µ) Lµ si la µ-´sima hormiga e µutiliza el arco (i, j) y ∆τij = 0 si no.Ant-QEn Ant-Q [48] la pr´xima ciudad a visitar por una hormiga que est´ en el nodo o a α βi es j = arg maxj∈Ω [τij (t)] [ηij ] con probabilidad p y la dada por 4.1 conprobabilidad 1 − p. Es decir, con cierta probabilidad se elige la mejor ciudad(seg´n la combinaci´n de feromona y la visibilidad) y si no, se aplica la regla u oprobabil´ıstica del Ant System dada en 4.1. La feromona s´lo se actualiza en los arcos recorridos por alguna hormiga (en oel Ant Systems, la evaporaci´n se aplica a todos los arcos). La actualizaci´n se o orealiza cuando todas las hormigas han construido su soluci´n y consta de una ofase de actualizaci´n local y otra de actualizaci´n global. En la actualizaci´n o o olocal de feromona, cada hormiga modifica la feromona de los arcos (i, j) que harecorrido, seg´n u τij (t + 1) = (1 − ρ)τij (t) + ρ max τjh (t) h∈Ω En la actualizaci´n global de feromona, la hormiga que obtuvo la mejor osoluci´n (de costo Lbest ), actualiza la feromona en los arcos (i, j) de dicha osoluci´n seg´n o u τij (t) := (1 − ρ)τij (t) + ρW/Lbest 37
  • 42. Ant Colony System (ACS)El Ant Colony System [49] es un refinamiento del Algoritmo Ant-Q. La reglade actualizaci´n local se modifica por o τij (t + 1) = (1 − ρ)τij (t) + ρτ0donde τ0 es un par´metro del algoritmo y en la de actualizaci´n global se utiliza a osiempre W = 1. En la variante Iteration Best la hormiga que realiza la actual-izaci´n global es la que obtuvo la mejor soluci´n en la iteraci´n, mientras que o o oen Global Best la realizar la que obtuvo la mejor soluci´n considerando toda la oejecuci´n del algoritmo. oMAX-MIN Ant System (MMAS)El MAX-MIN Ant System [50] es un refinamiento del Ant System que busca unamayor explotaci´n de las mejores soluciones encontradas as´ como un mecanismo o ıpara evitar la convergencia prematura. Solamente una hormiga se utiliza para actualizar la feromona, pudiendoelegirse la mejor de la iteraci´n o la mejor de toda la ejecuci´n, al igual que en o oACS. La regla para actualizar las feromonas es best τij (t + 1) = ρτij (t) + ∆τij bestdonde ∆τij = 1/Lbest , y Lbest es el costo de la mejor soluci´n. o Si para todos los nodos i, existe un nodo j que cumple que τij es de-masiado grande en comparaci´n con τih para todo h = j, es muy proba- oble que el algoritmo converja prematuramente pues probablemente siempre seseleccione el (i, j) para abandonar el nodo i. En MMAS, se establece unacota superior y una inferior para la feromona en cada arco. De este modo,τmin ≤ τij ≤ τmax ∀(i, j) ∈ E. Si en alguna actualizaci´n la feromona queda ofuera de ese intervalo, se le asigna el valor τmin o τmax seg´n corresponda. En el uart´ ıculo se da un m´todo para determinar anal´ e ıticamente los valores de dichosl´ ımites. Al iniciar el algoritmo se coloca la m´xima cantidad posible de feromona aen cada arco. De este modo, por medio de la evaporaci´n, los arcos que no oparticipan en buenas soluciones decrementan su feromona en un factor ρ. Eneste caso, ρ puede ser interpretado como una tasa de aprendizaje. Finalmente, se propone que algunas hormigas mejoren la soluci´n obtenida omediante alg´n operador de b´squeda local. Una opci´n es que a la mejor u u osoluci´n obtenida en cada iteraci´n se le aplique el algoritmo 2-opt. La otra o oopci´n es, en lugar de utilizar n hormigas, reducir la cantidad y permitir que otodas apliquen dicho operador en cada iteraci´n. Para las pruebas realizadas, ola segunda opci´n di´ los mejores resultados. o o4.1.1 Ant System H´ ıbrido para VRPEn la primera propuesta de Bullnheimer, Hartl y Strauss [51] la construcci´n ode la soluci´n se realiza seg´n la regla probabil´ o u ıstica dada por la Ecuaci´n 4.1, opero s´lo se considera la inclusi´n de un nodo si no viola las restricciones del o oproblema. Por lo tanto, el conjunto Ω contiene a los nodos no visitados que 38
  • 43. pueden ser insertados en la ruta actual manteniendo la factibilidad. CuandoΩ = φ la hormiga vuelve al dep´sito y comienza de nuevo la construcci´n sobre o olos clientes a´n no visitados. El algoritmo consiste en un Ant System con uSelecci´n Elitista en el que cada hormiga aplica el algoritmo 2-opt al finalizar ola construcci´n de su soluci´n. o o En el mismo art´ ıculo se propone modificar la regla de selecci´n del pr´ximo o onodo, incorporando m´s informaci´n acerca del problema. La nueva regla es a o È  [τij (t)]α [ηij ]β [µij ]γ [κij ]λ  α β γ λ si j ∈ Ω pij (t) = h∈Ω [τih (t)] [ηih ] [µih ] [κih ]  0 si j ∈ Ω /donde µij = ci0 + c0j − cij es la medida de Ahorro de Clarke & Wright (verSecci´n 2.1) y κij = (Qi + qj )/Q es una medida de la utilizaci´n del veh´ o o ıculosi j se agregara a la ruta (siendo Qi la demanda acumulada en la ruta parcialconstruida). Como µ y κ dependen de la ruta parcial, las probabilidades debencalcularse en cada paso de la construcci´n de cada soluci´n, lo que implica altos o ocostos en t´rminos computacionales. e Los mismos autores refinaron el algoritmo obteniendo mejores resultados [52].Por un lado, se utiliza la regla probabil´ıstica original dada por la Ecuaci´n 4.1 oy se incorpora a la visibilidad una medida del ahorro: ηij = ci0 + c0j − gcij +f |ci0 − c0j |. Con esta definici´n, las probabilidades no necesitan calcularse en ocada paso, lo que disminuye la complejidad respecto a la versi´n anterior del oalgoritmo. Se definen conjuntos de candidatos, de modo que para cada clientes´lo se consideran sus ⌊n/4⌋ vecinos m´s cercanos. En el caso que ninguno de o a´stos pueda ser visitado, se regresa al dep´sito.e o Adem´s, se utiliza una Selecci´n Elitista con Ranking y cada hormiga aplica a oel algoritmo 2-opt al finalizar la construcci´n de su soluci´n, al igual que en la o oversi´n anterior del algoritmo. o4.1.2 MACS para VRPTWMACS (Multiple Ant Colony System) es un algoritmo basado en el Ant Systempara resolver el VRPTW [53]. Se trabaja con dos colonias de hormigas, una deellas (ACS-VEI) tiene como objetivo minimizar la cantidad de rutas utilizadasy la otra (ACS-TIME) minimizar la longitud total de la soluci´n. Las dos ocolonias evolucionan en paralelo y cuando alguna encuentra una soluci´n queoutiliza menos veh´ ıculos que la mejor soluci´n encontrada, ambas son reiniciadas. o Las dos colonias trabajan con el dep´sito duplicado tantas veces como veh´ o ıculoshaya disponibles. La distancia entre copias del dep´sito es cero. De esta manera ouna soluci´n es representada por una sola ruta, como en el TSP. Cuando una ohormiga llega a alguna copia del dep´sito, el tiempo y la carga se colocan en ocero. Al ser iniciada, la colonia ACS-TIME recibe como dato de entrada, la menorcantidad de rutas para la que se encontr´ una soluci´n (v) y trabaja con v copias o odel dep´sito intentando minimizar la distancia recorrida. Las hormigas de esta ocolonia se mueven siguiendo la estrategia ACS en la cual la visibilidad se definecomo ηij = 1/ max {(bi + tij , ej ) − bi } (lj − bi )donde bi es la hora de salida del nodo i. Al realizar las inserciones s´lo se tiene oen cuenta los clientes no visitados que pueden ser agregados en la ruta de manera 39
  • 44. factible. Debido a esas restricciones de factibilidad y a que la cantidad de copiasdel dep´sito es finita, puede ocurrir que ciertos clientes no sean visitados. En odicho caso se aplica la mejor inserci´n para cada cliente no visitado, en orden odecreciente de demanda. Finalmente, se utiliza el procedimiento CROSS [54]para realizar una b´squeda local. u La colonia ACS-VEI tambi´n recibe v como dato de entrada, pero trabaja econ v−1 copias del dep´sito e intenta maximizar la cantidad de clientes visitados. oEl objetivo es determinar si existe alguna soluci´n factible que utilice solamente ov − 1 veh´ıculos. La colonia sigue la estrategia ACS donde ηij = 1/ max {1, (max {bi + tij , ej } − bi ) (ej − bi ) − IN (j)}siendo IN (j) es la cantidad de soluciones que no visitaron j desde la ultima vez ´que esta colonia mejor´ una soluci´n. Tambi´n se aplica un procedimiento de o o einserci´n para los clientes no visitados pero no se realiza una b´squeda local, o upues el objetivo es visitar la mayor cantidad de clientes y no obtener una buenasoluci´n en cuanto a los costos. Cuando esta colonia encuentra una soluci´n o ofactible que visita a todos los clientes se re-inician ambas colonias: ACS-TIMEbuscar´ soluciones con v − 1 veh´ a ıculos y ACS-VEI determinar´ si es posible asolucionar el problema con v − 2 veh´ ıculos.4.2 Tabu SearchLa metaheur´ ıstica de B´squeda Tab´ o Tabu Search fue propuesta por Glover [55] u uy tiene como principio b´sico realizar una b´squeda local aceptando soluciones a uque aumentan el costo. En la iteraci´n t el algoritmo se mueve de la soluci´n o ost a la st+1 , que es la mejor dentro de un subconjunto de sus soluciones vecinasN (st ). Se llama movida a la operaci´n que se aplica a st para obtener st+1 . oNotar que st+1 no necesariamente es de menor costo que st y, por lo tanto, debeutilizarse alg´n mecanismo para que en la iteraci´n siguiente no se vuelva a st . u oUna opci´n ser´ almacenar todas las soluciones por las que se va pasando, pero o ıaa un costo de almacenamiento excesivo. En lugar de eso se utiliza una memoriade corto plazo que registra algunos atributos de las soluciones ya visitadas y seevita, durante cierta cantidad de iteraciones θ, considerar soluciones que poseandichos atributos. Las soluciones prohibidas se denominan soluciones tab´ y las umovidas que llevan hacia soluciones tab´ se llaman movidas tab´. Suele uti- u ulizarse un criterio, llamado criterio de aspiraci´n, para aceptar soluciones a´n o ucuando sean tab´, por ejemplo, si mejoran el costo de la mejor soluci´n encon- u otrada hasta el momento. Se llama soluciones admisibles a aquellas que no sonsoluciones tabu y a las que pasan el criterio de aspiraci´n (a´n si son tabu). La o ub´squeda se realiza sobre las soluciones admisibles de la vecindad. u Como mecanismo de diversificaci´n, es decir, para asegurar una exploraci´n o ode diferentes regiones del espacio de soluciones, puede utilizarse una memoriade largo plazo que penalice las movidas realizadas con mucha frecuencia. Fi-nalmente, tambi´n puede utilizarse alg´n mecanismo de intensificaci´n, como e u orealizar b´sqeudas m´s exhaustivas peri´dicamente o utilizar vecindades m´s u a o agrandes en algunas de las mejores soluciones encontradas. 40
  • 45. 4.2.1 Tabu Search para el VRPEl Algoritmo de OsmanEn el Algoritmo de Osman [56] las vecinas de una soluci´n se obtienen mediante ointercambios de clientes entre pares de rutas. Si rp y rq son dos rutas diferentesde una soluci´n, se define un λ-intercambio1 como el pasaje de a lo sumo λ oclientes de rp a rq y a lo sumo λ clientes de rq a rp . La cantidad de clientesque cada ruta env´ a la otra no necesariamente debe ser la misma, pero ambas ıadeben ser no mayores que λ. La vecindad de una soluci´n s, Nλ (s), consiste en otodas las soluciones que se pueden obtener aplicando esta operaci´n a cualquier opar de rutas diferentes de s. En este trabajo se utiliza λ = 1. El costo de una movida se eval´a de manera heur´ u ıstica. Al eliminar uncliente vi de una ruta, ´sta se reconstruye uniendo el anterior y el siguiente a vi . eAl insertar un cliente en una ruta, se coloca entre dos clientes consecutivos deforma de incrementar el costo lo menos posible. Luego de realizar una movida,se aplica el algoritmo 2-opt [16] sobre cada una de las rutas implicadas. Si se realiza una movida en que las rutas rp y rq intercambian los clientesvi y vj respectivamente, entonces la movida que vuelve vi a rp y vj a rq es unamovida tab´. Del mismo modo, si se realiza la movida en que la ruta rp env´ u ıael cliente vi a la ruta rq y ´sta ultima no le env´ ning´n cliente, la movida e ´ ıa uinversa, en la que rq devuelve vi a rp y rp no le env´ ning´n cliente a rq es ıa uuna movida tab´. El tiempo que una movida es considerada tab´ es fijo y se u udetermina seg´n las caracter´ u ısticas de cada problema. Se utiliza el criterio deaspiraci´n cl´sico: si una soluci´n es mejor que la mejor soluci´n hallada hasta o a o oel momento, se acepta aunque esto implique realizar una movida tabu. Para realizar la b´squeda en la vecindad de una soluci´n s se utilizan dos u ocriterios. En el criterio Best Admissible (BA) se busca la mejor soluci´n ad- omisible en Nλ (s) y en el First Best Admisible (FBA) se selecciona la primersoluci´n admisible Nλ (s) que mejore el costo de s (si ninguna mejora el costo se oselecciona la que menos lo empeora, pero habiendo necesitado examinar todoslos intercambios posibles).El Algoritmo TaburouteGendreau, Hertz y Laporte [57] propusieron un algoritmo de b´squeda tab´ que u uacepta soluciones no factibles durante la b´squeda. Se consideran conjuntos de urutas que visitan exactamente una vez a cada cliente, pero se permite violar lasrestricciones de capacidad y de largo m´ximo de cada ruta. Si Q(s) mide el aexceso total de capacidad de las rutas y L(s) mide el exceso total de largo delas rutas en la soluci´n s, se utiliza como funci´n objetivo a o o c′ (s) = c(s) + αQ(s) + βL(s).Siendo c(s) el costo original en el problema. Notar que si una soluci´n s es o ˆfactible, entonces c′ (ˆ) = c(ˆ). En cambio, para las soluciones no factibles se s sincorporan dos t´rminos que penalizan las violaciones a las restricciones, pre- esionando las soluciones a pertenecer a la regi´n factible. Cada 10 iteraciones, se o 1 en ingl´s se utiliza λ-interchange para esta operaci´n, que se aplica sobre dos rutas, y e oλ-exchange para la operaci´n definida por Lin [16], que se aplica sobre una sola ruta. Sin oembargo, tanto “exchange” como “interchange” se traducen como “intercambio” en espa˜ol. nEn este documento nos referimos a ´stos como los λ-intercambios de Osman. e 41
  • 46. ajusta los par´metros α y β. Si todas las soluciones de las ultimas 10 iteraciones a ´fueron factibles respecto a la capacidad, α se divide entre 2 y si todas fueron nofactibles, se multiplica por 2. Lo mismo se realiza para β pero considerando larestricci´n de largo m´ximo de la ruta. o a Dada una soluci´n se eval´a, para cada cliente v, eliminarlo de su ruta e o uinsertarlo en otra ruta que contenga alguno de sus p vecinos m´s cercanos (p es aun par´metro del algoritmo). Se utiliza las inserciones GENI (ver Secci´n 2.6.5). a oSi el cliente v se elimina de la ruta r, entonces volver a insertarlo en r es unamovida tabu durante θ iteraciones donde θ se sortea uniformemente en [5, 10]. Se utilizan dos mecanismos de intensificaci´n. Por un lado, si la mejor osoluci´n encontrada no es mejorada durante cierta cantidad de iteraciones, ose ampl´ el tama˜o de la vecindad incrementando el valor de p. Adem´s, ıa n aperi´dicamente se aplica el operador US (ver Secci´n 2.6.5) para realizar una o ob´squeda local sobre la soluci´n obtenida luego de la movida. Como m´todo de u o ediversificaci´n se penaliza la concentraci´n de movidas sobre los mismos clientes. o oAl considerar el costo de una movida en la que participa el cliente v, se sumaun t´rmino proporcional a la cantidad de veces que dicho cliente fue movido edurante la ejecuci´n del algoritmo. o El procedimiento de b´squeda se ejecuta varias veces partiendo de diferentes usoluciones y durante pocas iteraciones; a la mejor soluci´n obtenida en estos ofalsos comienzos se le aplica el algoritmo durante m´s iteraciones. aEl Algoritmo de TaillardEn el algoritmo de Taillard [58], se realiza una partici´n del conjunto de clientes oy cada partici´n se resuelve como un VRP independiente de los dem´s me- o adiante Tabu Search. Para problemas uniformes (en los que el dep´sito est´ o aapr´ximadamente en el centro y los clientes est´n regularmente distribuidos) y o acon coordenadas eucl´ ıdeas se propone una partici´n basada en consideraciones ogeom´tricas. Para el resto de los problemas, se da un m´todo de partici´n que e e outiliza ´rboles de cubrimiento formados por los caminos m´ a ınimos del dep´sito oa cada cliente. Cada algunas iteraciones se modifica la partici´n utilizando oinformaci´n sobre la mejor soluci´n obtenida. o o Se utiliza la misma definici´n de vecindad que en el algoritmo de Osman [56] ocon λ = 1. El costo de las movidas se eval´a en forma heur´ u ıstica: al insertar uncliente en una ruta se hace entre dos clientes consecutivos de modo de minimizarel aumento en el costo; y al eliminar un cliente de una ruta, se unen el anterior yel siguiente a ´l. La inversa de una movida es considerada tabu por una cantidad eθ de iteraciones, donde θ se sortea uniformemente en [0.4n, 0.6n]. La movidade un mismo cliente repetidas veces es penalizada, a menos que cumpla con elcriterio de aspiraci´n, que es el usual de mejorar la mejor soluci´n encontrada o ohasta el momento. Peri´dicamente, cada ruta es optimizada resolviendo un TSP sobre sus clientes ode forma exacta mediante el algoritmo de Volgenant y Jonker [59]. Como enlos casos estudiados la cantidad de clientes por ruta es baja (siempre menor que40), esto no representa un problema siempre que no se realice con demasiadafrecuencia. 42
  • 47. Memorias Adaptativas de Rochat y TaillardSi bien la propuesta de Rochat y Taillard [60] puede ser utilizada junto concualquier algoritmo de b´squeda local, tiene su origen en el marco de Tabu uSearch. La idea sobre la que se basa es que si cierta caracter´ ıstica aparece consis-tentemente en las buenas soluciones, entonces muy probablemente las solucionesque posean dicha caracer´ ıstica ser´n mejores que las que no la posean. En los aproblemas de ruteo de veh´ ıculos, es razonable considerar a las rutas como dichacaracter´ıstica: si cierta ruta aparecen repetidamente en las buenas soluciones,probablemente sea bueno considerarla. El algoritmo comienza generando un conjunto de soluciones diferentes me-diante varias ejecuciones de alguna heur´ ıstica no determin´ ıstica de b´squeda ulocal. Luego de esta etapa, se espera tener (aunque de manera “oculta”) todala informaci´n necesaria para armar buenas soluciones. Dicho de otro modo, es ode esperar que varias rutas muy similares a las necesarias para construir unabuena soluci´n hayan sido generadas, aunque quiz´s est´n en soluciones difer- o a eentes. Al final de esta fase se tiene un conjunto R formado por las rutas detodas las soluciones obtenidas; si una ruta aparece en m´s de una soluci´n, se a otiene m´ltiples copias de dicha ruta en R. Cada ruta se etiqueta con el valor de ula soluci´n a la que pertenece. o En una segunda fase se busca extraer rutas de R para armar una nuevasoluci´n. Para esto, se crea R′ ordenando R de manera creciente en las eti- oquetas y considerando solamente las primeras L rutas (considerando las rutasrepetidas como rutas diferentes). Luego se selecciona una ruta de R′ , donde la 2iprobabilidad de elegir la ruta en la posici´n i es |R′ ||R′ +1| . Dicha ruta se agrega oa la soluci´n y se eliminan de R′ todas las que contengan clientes en com´n con o uella. El procedimiento se repite hasta que R′ se vac´ Al finalizar podr´ quedar ıe. ıaalgunos clientes sin visitar, para los que se resolver´ un VRP con la heur´ a ıstica deb´squeda local, agregando las rutas obtenidas a la soluci´n. Sobre esta soluci´n u o ose realiza una nueva b´squeda local y las rutas obtenidas se agregan al conjunto uoriginal R. Esta segunda fase de construcci´n y b´squeda local se puede repetir o utantas veces como se quiera. En el trabajo original se utiliza el Algoritmo de Taillard [58] como m´todo ede b´squeda local. Al finalizar el algoritmo, como m´todo de post-optimizaci´n, u e ose resuelve un Set Partitioning Problem con las rutas de R.El Algoritmo de Xu y KellyEn el algoritmo propuesto por Xu y Kelly [61] se utiliza una red de flujo parabuscar intercambios de clientes entre las rutas. Dada una soluci´n con m rutas, ose construye una red con 4 niveles de arcos, como la que se muestra en laFigura 4.1. En el primer nivel, se conecta el nodo fuente con un nodo por cadaruta. El flujo en estos arcos indica la cantidad de clientes eliminados de cadaruta. La oferta del nodo s est´ acotada superiormente por U . En el segundo anivel hay un arco entre cada ruta y los clientes que ´sta visita, cuya capacidad em´xima es 1 y el flujo asignado indica si el cliente es eliminado de la ruta o ano. Los arcos del tercer nivel unen a cada cliente con cada ruta. Su capacidadm´xima es tambi´n 1 y el flujo indica si el cliente es insertado en la ruta o no. a eFinalmente, se conecta a cada ruta con un nodo terminal y el flujo a trav´s de eesos arcos indica la cantidad de clientes insertados en cada ruta. 43
  • 48. clientes rutas 1 rutas 1 1 2 2 2 s t . . . . . . . . . m m n Figura 4.1: Red de flujo utilizada en el Algoritmo de Xu y Kelly. Un flujo sobre esta red da una manera de reasignar a lo sumo U clientesentre las rutas, sin tener en cuenta la capacidad de los veh´ ıculos. Los veh´ ıculossobrecargados se penalizan al definir el costo de las movidas como en Taburoute.A cada arco de los niveles 2 y 3 se asocia un costo compuesto de dos t´rminos. ePor un lado, se mide de manera aproximada el aumento en la funci´n objetivo odel problema si se realizara la eliminaci´n o inserci´n asociada al arco. Adem´s, o o ase agrega un t´rmino para favorecer la inserci´n de clientes en las rutas que est´n e o amuy por debajo de la capacidad del veh´ ıculo y para penalizar las inserciones enrutas muy sobrecargadas. La vecindad utilizada en el algoritmo de Tabu Search alterna entre las movi-das definidas por el flujo de costo m´ ınimo en la red y los λ-intercambios deOsman. Se penaliza la realizaci´n repetida de movidas sobre el mismo cliente osumando al costo de las movidas, un t´rmino que mide cu´ntas veces se re- e aalizaron dichas movidas. Cuando se realiza una movida, la movida inversa esdeclarada tabu por una cantidad fija de iteraciones. Peri´dicamente se aplica el oalgoritmo 3-opt o el 2-opt sobre la ruta. Se mantiene un conjunto con las mejores soluciones encontradas durante lab´squeda y al cabo de cierta cantidad de iteraciones, se comienza una nueva ub´squeda a partir de alguna de esas soluciones. uEjection Chains de Rego y RoucariolLas Cadenas de Expulsiones (o ejection chains) fueron propuestas por Glover [62]como una t´cnica general para definir vecindades en un espacio de soluciones. eEn su versi´n m´s general, una movida consiste en seleccionar algunos elementos o aque cambiar´n su estado o valor y, como resultado, otros elementos ser´n expul- a asados de su estado actual. En el caso de los Problemas de Ruteo de Veh´ ıculosse trata de cambiar las posiciones de algunos nodos en las rutas [63]. Dado un nodo vi , denotamos como vi−1 al nodo anterior y vi+1 al posterioren la ruta de vi . Una cadena de expulsiones de ℓ niveles consiste en triplas k k k k−1 k vi−1 , vi , vi+1 para k = 0, . . . , ℓ, en las que cada vi reemplazar´ a vi luego a kde la movida. Los nodos vi se denominan nodos centrales. Una movida seinterpreta como que el nodo central de un nivel expulsa al nodo central del nivelsiguiente de su ubicaci´n; este ultimo debe ubicarse en otro lugar y expulsar´ al o ´ a 44
  • 49. siguiente nodo central, ocurriendo una cadena de expulsiones. El ultimo nodo ´ ℓen ser expulsado, vi , debe ubicarse de modo tal que se obtenga rutas cerradas y 0se proponen dos alternativas. En las movidas de Tipo I se lo ubica entre vi−1 y 0 0 0 ℓvi+1 . En las movidas de Tipo II, se crea el arco vi−1 , vi+1 y vi se coloca entredos nodos cualesquiera vp y vq que no hayan sido nodos centrales de ningunatripla. Las Figuras 4.2 y Figuras 4.3 muestran un ejemplo de movidas de cadatipo. k=0 k=1 k=2 k=0 k=1 k=2 Figura 4.2: Una Cadena de Expulsiones de Tipo I para 3 niveles. k=0 k=1 k=2 k=0 k=1 k=2 vp vp vq vq Figura 4.3: Una Cadena de Expulsiones de Tipo II para 3 niveles. Debe notarse que no es necesario que todas las triplas est´n en diferentes erutas. De todos modos, no cualquier conjunto de triplas es v´lido. En el art´ a ıculooriginal se da un conjunto de condiciones sobre la cantidad de veces que cadanodo puede aparecer en las triplas, llamadas restricciones de legitimidad, as´ ıcomo un procedimiento para buscar la mejor cadena de expulsiones para ciertasoluci´n. Dicho procedimiento se utiliza embebido en un algoritmo de Tabu oSearch paralelo. Se declara como tabu a las cadenas de expulsiones que tenganen com´n las inversas de la primera y ultima expulsi´n de la movida realizada, u ´ opor una cantidad de iteraciones sorteada uniformemente en un intervalo. Seutiliza el criterio de aspiraci´n usual. o El paralelismo se utiliza para, partiendo de una misma soluci´n, realizar oejecuciones independientes del algoritmo. Cada cierto tiempo, los procesosvuelven a comenzar su b´squeda partiendo de la mejor soluci´n encontrada u o(considerando todos los procesos).El Algoritmo “Flor”En este algoritmo se utiliza una estructura llamada Flor para generar una vecin-dad [64]. Una flor es un conjunto de rutas y un camino que parte del dep´sito, o 45
  • 50. tal que todos los clientes del problema son visitados exactamente una vez. Seutilizan Cadenas de Expulsiones [62] para transformar una Flor en otra medi-ante ciertas transformaciones y, adem´s, se dan reglas para crear una Flor a apartir de una soluci´n y viceversa. oGranular Tabu SearchLa idea principal del algoritmo Granular Tabu Search de Toth y Vigo [65] con-siste en disminuir la cantidad de arcos considerados, eliminando los que conectannodos muy lejanos. Estos arcos tienen muy pocas chances de pertenecer a unabuena soluci´n. Se define un umbral ν y solo se permite efectuar las movidas oque involucran arcos en el conjunto E ′ = {(i, j) ∈ E | cij < ν} ∪ I, donde Ees el conjunto de arcos originales e I es un conjunto de arcos “importantes”,como por ejemplo, los incidentes al dep´sito. En el mencionado trabajo se uti- oliza ν = β¯ siendo c es el costo medio de un arco en una soluci´n obtenida por c ¯ oalguna heur´ ıstica y β ∈ [1, 2] se actualiza peri´dicamente durante la ejecuci´n o odel algoritmo. Esto permiti´ reducir la cantidad de arcos considerados a un ovalor entre el 10% y el 20% del total. Si bien esta idea puede ser utilizada en cualquier contexto, en la propuestaoriginal se aplica una variante de Taburoute como algoritmo de soluci´n. oDETABA ˆ uEn el Algoritmo DETABA, propuesto por Barbarosoˇlu y Ozg¨r [66], se utilizan gdos tipos de movidas. Las movidas TANE seleccionan dos rutas r1 y r2 al azary de cada una eligen un conjunto aleatorio de clientes s1 y s2 . El conjunto s1se elimina de r1 y se inserta en r2 y la operaci´n an´loga se realiza con s2 . Los o aconjuntos s1 y s2 deben elegirse de modo que al realizar la operaci´n anterior ono se viole las restricciones del problema. Luego de eso se aplica 2-opt a r1 y r2 .En las movidas TANEC el procedimiento es similar al anterior, pero se procuraque los clientes de s1 y s2 sean lejanos al centroide de sus rutas respectivas ycercanos al centroide de la ruta a la que no pertenecen. Para seleccionar lamovida a realizar, se genera una cantidad de movidas TANE y TANEC y seimplementa la mejor que no sea tabu. Si en una movida el cliente v1 pasa der1 a r2 y v2 pasa de r2 a r1 , entonces se declara tabu el volver a colocar v1en r1 y v2 en r2 . La cantidad de iteraciones que un movida es tabu se sorteauniformemente en un intervalo. Se utilizan falsos comienzos como en Taburoute [57], es decir, se ejecutala b´squeda durante unas pocas iteraciones para generar un conjunto de solu- uciones iniciales. Luego se vuelve a ejecutar la b´squeda durante m´s iteraciones, u apartiendo de la mejor de esas soluciones iniciales.4.2.2 Tabu Search para el VRPTWUnified Tabu SearchCordeau, Laporte y Mercier, propusieron un m´todo de B´squeda Tab´ para el e u uVRPTW al que llamaron Unified Tabu Search [67]. Se supone que el tama˜o nde la flota es m, conocido de antemano. Se permite considerar soluciones nofactibles y las violaciones a la capacidad, largo m´ximo de las rutas y ventanas de a 46
  • 51. tiempo, se penaliza como en Taburoute. La actualizaci´n de las ponderaciones oen los t´rminos de dicha penalizaci´n se actualizan en cada iteraci´n. e o o Las movidas utilizadas simplemente seleccionan un cliente, lo eliminan de suruta y lo insertan en otra entre dos nodos consecutivos. Al eliminar un cliente desu ruta, ´sta se reconecta uniendo el anterior y el sucesor del cliente eliminado. eSi el cliente i se elimina de la ruta r, volver a insertarlo i en r es una movidatab´ por θ iteraciones. u Como m´todo de diversificaci´n, si colocar el cliente i en la ruta r em- e opeora la funci´n objetivo, se penaliza dicha movida con un t´rmino ρir que o emide cu´ntas veces el cliente i fue insertado en r durante toda la b´squeda. a uAl finalizar la b´squeda, se aplica una versi´n de GENI para problemas con u oventanas de tiempo [68] sobre la mejor soluci´n encontrada, como m´todo de o epost-optimizaci´n. o4.3 Algoritmos Gen´ticos eLos Algoritmos Gen´ticos (AG), introducidos por Holland [69], utilizan las ideas ede la evoluci´n natural de los seres vivos para resolver problemas de optimizaci´n o oy b´squeda. En general, se trabaja sobre una representaci´n de las soluciones u oen alg´n esquema de codificaci´n (por ejemplo, vectores, matrices o ´rboles). u o aEl algoritmo opera sobre una poblaci´n P de soluciones codificadas, llamadas oindividuos. Para cada individuo i ∈ P se define una funci´n de fitness f (i) ode modo que cu´nto mayor es el fitness de un individuo, mejor es la soluci´n a oque ´ste representa2 . En cada iteraci´n se aplican operadores evolutivos que e ocombinan y modifican a los individuos de la poblaci´n, creando una nueva. En oel esquema usual se opera en tres fases: selecci´n, cruzamiento y mutaci´n. o o El operador de selecci´n se encarga de elegir algunos individuos de la poblaci´n o oque tendr´n la posibilidad de reproducirse. De modo general, puede decirse que aeste operador genera una poblaci´n intermedia (o mating pool ) cuya cantidad de oindividuos depende de las caracter´ ısticas del operador de cruzamiento utilizado.Los operadores de selecci´n son, en general, probabil´ o ısticos y suelen privilegiara los individuos con mayor fitness en la poblaci´n. En el operador de Selecci´n o o (i)Proporcional, la probabilidad de seleccionar al individuo i es proporcional a f f ,¯ ¯ 1siendo f = |P | i∈P f (i) el fitness promedio de la poblaci´n. En el operador de oSelecci´n por Torneo se toma un conjunto de individuos al azar y se selecciona oel de mayor fitness, repitiendo el proceso tantas veces como sea necesario paragenerar la poblaci´n intermedia. o Una vez que se gener´ la poblaci´n intermedia, se aplica repetidas veces el o ooperador de cruzamiento para combinar individuos de dicha poblaci´n y generar ouna nueva. Usualmente los operadores de cruzamiento toman dos individuosp1 y p2 llamados padres, y generan dos individuos h1 y h2 llamados hijos,mediante la aplicaci´n de una regla probabil´ o ıstica. Si utiliza una codificaci´nobasada en vectores, los operadores de cruzamiento cl´sicos son los de n puntos, aque consisten en “cortar” cada padre en n posiciones, de manera aleatoria, eintercambiar los segmentos intermedios. Por ejemplo, si p1 = 1001001101 yp2 = 1100101110, un posible resultado de un cruzamiento de dos puntos (que se 2 En algunos problemas de minimizaci´n, se define un fitness proporcional a la funci´n o oobjetivo, de modo que en estos casos se desear´ minimizar el fitness. El objetivo quedar´ ıa aclaro en cada contexto. 47
  • 52. da cuando los padres se cortan luego de las posiciones 3 y 6) es h1 = 1000101101y h2 = 1101001110. El operador de cruzamiento de un punto se denomina SPX(Single Point Crossover) y el de dos puntos DPX (Double Point Crossover).Otro operador cl´sico es el UX (Uniform Crossover): para cada posici´n, con a oprobabilidad 0.5 el hijo h1 toma el valor de dicha posici´n de p1 y h2 de p2 y ocon probabilidad 0.5 ocurre lo contrario. Finalmente, se aplica a algunos individuos de la nueva poblaci´n, un oper- oador probabil´ıstico de mutaci´n que consiste en realizarle alguna modificaci´n. o oEn codificaciones con vectores binarios suele invertirse algunos bits o permutarlos valores de dos posiciones. Los operadores de cruzamiento y mutaci´n operan sobre los individuos, es odecir, sobre la codificaci´n de las soluciones. A cada una de las poblaciones osucesivas se le llama generaci´n. El modelo presentado no es el unico modelo o ´de evoluci´n. Por ejemplo, en los Algoritmos Gen´ticos de Estado Estacionario, o elos individuos se generan de a uno y reemplazan (si corresponde) por el peorindividuo de la poblaci´n. o4.3.1 Algoritmos Gen´ticos para el TSP eEl esquema de codificaci´n natural para el TSP consiste en representar a una osoluci´n como una secuencia de nodos, es decir, una permutaci´n de (1, . . . , n). o oLos operadores de cruzamiento y mutaci´n presentados en la secci´n anterior o opueden generar n-´plas que no sean permutaciones. Por lo tanto, debe definirse uoperadores de cruzamiento y mutaci´n para que mantengan la codificaci´n. o o El operador Partially Matched Crossover (PMX), consiste en aplicar el op-erador DPX y luego utilizar la informaci´n el segmento intermedio para reem- oplazar los valores repetidos. Por ejemplo, si p1 = 42|136|57 y p2 = 65|273|14(donde | indica un punto de corte), al aplicar DPX se obtendr´ 42|273|57 y ıa65|136|14, que no son permutaciones. Los elementos de los segmentos inter-cambiados (es decir, 136 y 273) que est´n en iguales posiciones, definen los areemplazos a realizar para los elementos repetidos en cada hijo. En el ejemplo,los reemplazos son 2 ↔ 1, 7 ↔ 3 y 3 ↔ 6, lo que resulta en h1 = 4126357 yh2 = 7513624. El uso de Algoritmos Gen´ticos para resolver el TSP es extenso. Por una erese˜a sobre la aplicaci´n de esta t´cnica al TSP se puede consultar el trabajo n o ede Potvin [70].4.3.2 Algoritmos Gen´ticos para el VRP eGVREn Genetic Vehicle Representation (GVR)[71] se trabaja directamente sobrelas soluciones. Para cruzar dos soluciones p1 y p2 , se toma una sub-ruta r =(v1 , . . . , vk ) de p1 (al tratarse de una sub-ruta, no necesariamente se cumple quev1 = 0 y vk = 0) y se determina el cliente wj m´s cercano a v1 que no est´ en r. Si a ala ruta a la que pertenece w en la soluci´n p2 es r′ = (0, w1 , . . . , wj , wj+1 , . . . , 0) oentonces ´sta se reemplaza por (0, w1 , . . . , wj , v1 , . . . , vk , wj+1 , . . . , 0). Es decir, ese inserta r en r′ a continuaci´n de w. Si esta ruta no fuera factible, se particiona oen tantas ruta factibles como sea necesario. Con esto se genera un hijo, el otrohijo es una copia de p1 . 48
  • 53. Se utilizan cuatro operadores de mutaci´n: intercambiar la posici´n de dos o oclientes en una ruta, invertir el orden de una ruta, re-insertar un cliente en unaruta diferente a la que pertenece y seleccionar una sub-ruta e insertarla en otrolugar de la soluci´n. Los ultimos dos operadores pueden generar rutas nuevas o ´o eliminar rutas, mientras que los dos primeros mantienen la cantidad de rutasde la soluci´n. oEl Algoritmo de Baker y AyechewEl algoritmo propuesto por Baker y Ayechew [72] se basa en la t´cnica de Asig- enar Primero - Rutear Despu´s (ver Secci´n 2.3). Cada individuo codifica la e oasignaci´n de clientes a veh´ o ıculos mediante un vector que en la posici´n i in- odica el n´mero del veh´ u ıculo asignado. El ´ ındice asignado a cada cliente es talque si la distancia entre dos clientes es peque˜a, entonces sus ´ n ındices ser´n cer- acanos. Esto se logra utilizando una modificaci´n de la Heur´ o ıstica de Barrido(ver Secci´n 2.3.1) para asignar ´ o ındices a los clientes. La funci´n de fitness se calcula generando una ruta para cada veh´ o ıculo quepase por todos los clientes asignados a ´l utilizando 2-opt y luego 3-opt. Se epermite violar las restricciones del problema, penalizando dichas violaciones enla funci´n de fitness. Se utiliza un Algoritmo de Estado Estacionario, Selecci´n o opor Torneo, DPX como operador de cruzamiento y un intercambio probabil´ ısticoentre dos posiciones del vector como operador de mutaci´n. o4.3.3 Algoritmos Gen´ticos para el VRPTW eGIDEONEl Algoritmo GIDEON de Thangiah [73] utiliza la t´cnica de Asignar Primero - eRutear Despu´s (ver Secci´n 2.3). Los clusters se generan mediante la ubicaci´n e o ode K “puntos semilla” en el plano. Desde el dep´sito se trazan semirrectas hacia ocada punto semilla, definiendo sectores que particionan al conjunto de clientesen clusters. El AG se utiliza para determinar la mejor ubicaci´n de los puntos osemilla. La ubicaci´n de un punto semilla se codifica, utilizando 5 bits. Un ovector de 5K bits representa la ubicaci´n de los K puntos semilla. o Para calcular el fitness de un individuo se genera una ruta para cada uno desus clusters utilizando un algoritmo simple de inserci´n para el TSP. Se permite oque las rutas sean no factibles. El fitness de un individuo es el costo de las rutasobtenidas para cada cluster, m´s t´rminos que penalizan las violaciones a las a erestricciones de capacidad, largo m´ximo de cada ruta y ventanas de tiempo. aEl operador de cruzamiento utilizado es el DPX y como operador de mutaci´n ose modifican algunos bits aleatoriamente. Al final de la ejecuci´n del algoritmo, se realiza una b´squeda local sobre la o umejor soluci´n encontrada, utilizando los λ-intercambios definidos por Osman o(ver Secci´n 4.2.1). Esta nueva soluci´n es utilizada para modificar las coor- o odenadas polares de cada cliente, de modo que los clientes consecutivos en unaruta queden consecutivos si se ordenaran por su ´ngulo en las nuevas coorde- anadas polares. Con esas nuevas coordenadas se vuelve a ejecutar el AlgoritmoGen´tico y se sigue el proceso por algunas iteraciones. e 49
  • 54. GenSATEn el Algoritmo GenSAT [74] simplemente se aplica un post-procesamientoa la soluci´n obtenida mediante la ejecuci´n de GIDEON [73]. Dicho post- o oprocesamiento incluye la ejecuci´n de m´todos de descenso simples (First Best o ey Global Best) y adem´s Simulated Annealing y Tabu Search utilizando vecin- adades definidas mediante 2-intercambios.El Algoritmo de Blanton y WainwrightEn el algoritmo propuesto por Blanton y Wainwright [75] se asume que se tieneuna flota fija de K veh´ ıculos. Cada individuo es una permutaci´n del conjunto ode los clientes. Para obtener el conjunto de rutas que la permutaci´n representa, ose inicializan K rutas utilizando los primeros K clientes de la permutaci´n y eloresto de los clientes son insertados secuencialmente en la ruta que genere menosincremento en el costo (siempre que la inserci´n sea factible). Si luego de ese oproceso quedan clientes sin visitar, esto se penaliza en la funci´n de fitness. o Se proponen dos operadores de cruzamiento llamados MX1 y MX2, quegeneran un solo hijo. Ambos consideran un ordenamiento global de los clientesdado por su ventana de tiempo, que expresa un orden deseable para las visitas. ′Si los clientes en la posici´n 1 de cada padre son v1 y v1 , asigna a la posici´n 1 del o o ′hijo el cliente (v1 o v1 ) que est´ antes en el orden global. Luego se intercambian elas posiciones de modo que en la posici´n 1 de ambos padres quede en cliente oelegido y se procede de la misma manera con todas las posiciones hasta procesartodos los clientes. El operador MX2 es similar, pero en lugar de intercambiarlas posiciones, se elimina de ambos padres el cliente elegido.GENEROUSPotvin y Bengio propusieron un Algoritmo Gen´tico llamado GENEtic ROUt- eing System (GENEROUS) [76] en el cual los operadores evolutivos se aplicandirectamente sobre las soluciones factibles y no sobre una codificaci´n de estas. oPara calcular el fitness de un individuo se utiliza un esquema de Ranking Lin-eal [77]. Se fija un fitness m´ximo fmax y un fitness m´ a ınimo fmin y se ordenanlas soluciones colocando la mejor al comienzo (posici´n 1) y la peor al final o(posici´n |P |). El fitness de la soluci´n en la posici´n i es o o o (fmax − fmin ) (i − 1) fmax − , |P | − 1es decir, a la mejor soluci´n se le asigna fmax , a la peor fmin y al resto se le oasigna valores espaciados uniformemente en ese intervalo. Se utiliza Selecci´noProporcional. Se proponen dos operadores para combinar soluciones, el Sequence-BasedCrossover (SBX) y en Route-Based Crossover (RBX). En el SBX, se seleccio-nan dos rutas r1 y r2 , una ruta de cada padre, y se elimina un arco de cadauna. Luego se arma una nueva ruta uniendo el segmento de r1 anterior al cortecon el de r2 posterior al corte y la ruta obtenida reemplaza a r1 . La soluci´n oobtenida puede contener clientes duplicados y una de las copias debe ser elimi-nada. Puede ocurrir, adem´s, que algunos clientes no sean visitados; a ´stos se a elos inserta secuencialmente en la ruta que incremente menos el costo total de 50
  • 55. la soluci´n. Si ocurriera alg´n cliente no puede ser insertado en ninguna de las o urutas manteniendo la factibilidad, la soluci´n es descartada (pues reconstruirla oimplicar´ utilizar un veh´ ıa ıculo m´s que en los padres) y el proceso de selecci´n a oy cruzamiento debe repetirse hasta tener ´xito. Invirtiendo el orden en que se econsideran los padres (es decir, reemplazando a r2 con la nueva ruta) puedeobtenerse otra soluci´n tentativa. El operador RBX consiste en copiar una ruta ode un padre en el otro. Nuevamente, puede darse que algunos clientes est´n eduplicados y otros queden sin ser visitados, en cuyo caso se aplican las mismasconsideraciones que para el operador SBX. Como operadores de mutaci´n se proponen el One-Level Exchange (1M), oTwo-Level Exchange (2M) y Local Search (LSM), cuyo principal objetivo esdecrementar la cantidad de veh´ ıculos de la soluci´n. En el operador 1M se se- olecciona una ruta r y se inserta cada uno de sus clientes vi en la ruta ri que min-imice el incremento en el costo total. La selecci´n de la ruta es sesgada hacia las orutas con menos clientes. Puede ser dif´ agregar vi a ri respetando las restric- ıcilciones de capacidad y las ventanas de tiempo, por lo que en el operador 2M seconsidera la posibilidad de reubicar alg´n cliente de esa ruta, para “hacer lugar” ua vi . Si ri = (0, . . . , vj−1 , vj , vj+1 , . . . , 0) y la ruta (0, . . . , vj−1 , vi , vj+1 , . . . , 0)es factible y adem´s vj puede ser insertado en otra ruta r′ (que no sea r, pero apudiendo ser ri ), entonces el operador 2M permite insertar vi en ri y vj en r′ .Finalmente, el operador LSM realiza una b´squeda local mediante el Algoritmo uor-opt (ver Secci´n 2.6.3). oAl Algoritmo de Berger, Barkaoui y Br¨ysy aEn esta propuesta [78] se utilizan dos poblaciones que evolucionan en paraleloy operan directamente sobre las soluciones. En la poblaci´n P1 el objetivo es ominimizar el costo total y siempre se tiene al menos una soluci´n factible. La opoblaci´n P2 intenta minimizar la violaci´n de las restricciones. Los individuos o ode una misma poblaci´n tienen la misma cantidad de rutas; los de P1 tienen oRmin y los de P2 tienen Rmin − 1, siendo Rmin la m´ ınima cantidad de rutas parala que se ha conseguido una soluci´n factible. Cuando se encuentra una nueva omejor soluci´n en P2 , se actualiza Rmin y ambas poblaciones. o Ambas poblaciones evolucionan de la misma manera, utilizando los mismosoperadores y la misma funci´n de fitness. La unica diferencia radica en la o ´cantidad de rutas impuesta a los individuos. Se utiliza un modelo evolutivode Estado Estacionario: una generaci´n consiste en agregar np individuos a ola poblaci´n y luego eliminar los np peores individuos. Luego de que ambas opoblaciones evolucionan una generaci´n, si P2 contiene una soluci´n factible, se o ocopian los individuos de P2 en P1 y se aplica un operador de mutaci´n llamado oRSS M a los individuos de P2 para reducir la cantidad de rutas en uno. Losoperadores de cruzamiento y mutaci´n son muy complejos; por una descripci´n o ode los mismos referirse al art´ ıculo original [78].El Algoritmo de ZhuEn el algoritmo propuesto por Zhu [79], cada soluci´n se representa como una opermutaci´n de los clientes. Para obtener las rutas, se agrega clientes a una oruta siguiendo el orden dado por la permutaci´n y cuando incluir el siguiente ocliente en la ruta viole las restricciones del problema, se crea una nueva. Se 51
  • 56. utiliza Selecci´n por Torneo. o Se combinan tres operadores de cruzamiento, el PMX y dos nuevos oper-adores: Heuristic Crossover (HC) y Merge Crossover (MC). En el HC se selec-ciona un punto de corte y se elige el cliente siguiente a dicho punto en algunode los padres (sea v dicho cliente) para comenzar la ruta. En el otro padre, seintercambian dos clientes de modo que v quede en la misma posici´n en ambos. oSi v1 es el siguiente a v en uno de los padres y v2 es el siguiente en el otro,entonces se agrega a la ruta el m´s cercano a v. El proceso se repite partiendo adel cliente agregado, hasta completar una ruta. El MC opera de manera similar,pero selecciona el pr´ximo cliente de acuerdo al tiempo y no a la distancia. o Para la mutaci´n se intercambian las posiciones de algunos clientes dentro ode una misma ruta.El Algoritmo de Tan, Lee y OuEl algoritmo propuesto por Tan, Lee y Ou [80] puede ser considerado un m´todo eAsignar Primero - Rutear Despu´s. Cada individuo codifica una agrupaci´n de e oclientes mediante una permutaci´n y un vector que indica cu´ntos clientes tiene o acada cluster. Por ejemplo, el individuo (2, 4, 7, 1, 6, 5, 9, 3, 8)(3, 2, 4) representalos clusters (2, 4, 7), (1, 6) y (5, 9, 3, 8). Para evaluar el fitness de un individuo se construye una ruta para cada clus-ter mediante una Heur´ ıstica de Inserci´n Secuencial de Solomon (ver Secci´n 3.2) o oy realizando luego una b´squeda local mediante los λ-intercambios de Osman u(ver Secci´n 4.2.1). Se utiliza Selecci´n por Torneo, PMX y un operador de o omutaci´n que intercambia dos elementos del primer vector. oEl Algoritmo de Br¨ysy y Dullaert aEn la propuesta de Br¨ysy y Dullaert [54] se utiliza un procedimiento para aconstruir diversas soluciones iniciales, de las que luego se selecciona la mejorcomo punto de partida para un Algoritmo Gen´tico. El procedimiento de con- estrucci´n consiste en generar una soluci´n mediante una heur´ o o ıstica de Inserci´n oSecuencial similar a las de Solomon (ver Secci´n 3.2) y luego intentar reducir la ocantidad de rutas buscando movidas basadas en Cadenas de Expulsiones (verSecci´n 4.2.1). o El Algoritmo Gen´tico propuesto no utiliza una poblaci´n de soluciones sino e ouna soluci´n. Partiendo de dicha soluci´n, se consideran todos los posibles pares o ode rutas y se les aplica un operador de cruzamiento para generar nuevas rutas.Finalmente, a cada ruta generada se le aplica un operador de mutaci´n. Las orutas obtenidas se almacenan en un pool y luego de considerar todos los paresse construye una soluci´n seleccionando rutas de dicho pool. o Los operadores de cruzamiento utilizados son I-CROSS y RRC. El operadorI-CROSS consiste en intercambiar arcos entre las rutas permitiendo adem´s ainvertir el orden de las visitas. En el RRC (Reinsert Related Customers) sebuscan clientes que est´n en rutas diferentes pero sean cercanos entre si para einsertarlos nuevamente mediante una Heur´ ıstica de Inserci´n en Paralelo. El ooperador I-CROSS tambi´n es utilizado como operador de mutaci´n. e o 52
  • 57. Tunning de Par´metros de Potvin y Dub´ a ePotvin y Dub´ [81] utilizaron un Algoritmo Gen´tico para ajustar los par´metros e e ade la Heur´ıstica de Inserci´n en Paralelo para el VRPTW de Potvin y Rousseau o(ver Secci´n 3.3). Se utiliza una codificaci´n mediante un vector binario para o orepresentar un juego de par´metros de la heur´ a ıstica. El fitness de un individuose define como el costo de la soluci´n obtenida ejecutando la heur´ o ıstica con eljuego de par´metros que el individuo representa. Se utiliza Selecci´n por Rank- a oing, SPX como operador de cruzamiento y el operador de mutaci´n modificaoprobabil´ ısticamente cada bit. 53
  • 58. Bibliograf´ ıa [1] Toth, P., Vigo, D.: An Overview of Vehicle Routing Problems. Monographs on Discrete Mathematics and Applications. In: The Vehicle Routing Prob- lem. SIAM (2000) 1–26 [2] Dantzig, G., Ramser, J.: The truck dispatching problem. Management Science 6 (1959) 80–91 [3] Clarke, G., Wright, W.: Scheduling of vehicles from a central depot to a number of delivery points. Operations Research 12 (1964) 568–581 [4] Dantzig, G., Fulkerson, D., Johnson, S.: Solution of a large scale traveling salesman problem. Operations Research 2 (1954) 393–410 [5] C. Miller, A. Tucker, R. Zemlin: Integer programming formulation of traveling salesman problems. Journal of the ACM 7 (1960) 326–329 [6] Garey, M., Johnson, D.: Computers and intractability: a guide to the theory of NP-completeness. W. H. Freeman and Company (1979) [7] Martello, S., Toth, P.: Knapsack problems: algorithms and computer implementations. John Wiley and Sons (1990) [8] Golden, B., Assad, A., Levy, L., Gheysens, F.: The fleet size and mix vehicle routing problem. Computers & Operations Research 11 (1984) 49 – 66 [9] Cordeau, F., Desaulniers, G., Desrosiers, J., Solomon, M., Soumis, F.: The VRP with time windows. Technical Report Cahiers du GERAD G-99-13, ´ ´ Ecole des Hautes Etudes Commerciales de Montr´al (1999) e[10] Nemhauser, G., Wolsey, L.: Integer and Combinatorial Optimization. John Wiley & Sons (1988)[11] Laporte, G., Nobert, Y.: Exact algorithms for the vehicle routing problem. Annals of Discrete Mathematics 31 (1987) 147–184[12] Laporte, G.: The vehicle routing problem: an overview of exact and ap- proximate algorithms. European Journal of Operational Research 59 (1992) 345–358[13] Yellow, P.: A computational modification to the savings method of vehicle scheduling. Operational Research Quarterly 21 (1970) 281–283 54
  • 59. [14] Golden, B., Magnanti, T., Nguyen, H.: Implementing vehicle routing algo- rithms. Networks 7 (1977) 113–148[15] Gaskell, T.: Bases for vehicle fleet scheduling. Operational Research Quar- terly 18 (1967) 281–295[16] Lin, S.: Computer solutions of the traveling salesman problem. Bell System Technical Journal 44 (1965) 2245–2269[17] Gabow, H.: An efficient implementation of Edmonds’ algorithm for maxi- mum matching on graphs. Journal of the ACM 23 (1976) 221–234[18] Desrochers, M., Verhoog, T.: A matching based savings algorithm for the vehicle routing problem. Technical Report Cahiers du GERAD G-89-04, ´ ´ Ecole des Hautes Etudes Commerciales de Montr´al (1989) e[19] Altinkemer, K., Gavish, B.: Parallel savings based heuristics for the deliv- ery problem. Operations Research 39 (1991) 456–469[20] Wark, P., Holt, J.: A repeated matching heuristic for the vehicle routing problem. Journal of Operational Research Society 45 (1994) 1156–1167[21] Mole, R.H., Jameson, S.R.: A sequential route-building algorithm em- ploying a generalised savings criterion. Operational Research Quarterly 27 (1976) 503–511[22] Potvin, J.Y., Rousseau, J.M.: A parallel route building algorithm for the vehicle routing and scheduling problem with time windows. European Journal of Operational Research 66 (1993) 331–340[23] Bodin, L., Golden, B., Assad, A., Ball, M.: Routing and scheduling of vehicles and crews – the state of the art. Computers & Operations Research 10 (1983) 63–211[24] Christofides, N., Mingozzi, A., Toth, P.: The Vehicle Routing Problem. In: Combinatorial Optimization. Wiley, Chichester (1979) 315–338[25] Wren, A.: Computers in transport planning and operation. Ian Allan (1971)[26] Wren, A., Holliday, A.: Computer scheduling of vehicles form one or more depots to a number of delivery points. Operational Research Quarterly 23 (1972) 333–344[27] Gillett, B., Miller, L.: A heuristic algorithm for the vehicle-dispatch prob- lem. Operations Research 22 (1974) 340–349[28] Fisher, M., Jaikumar, R.: A generalized assignment heuristic for the vehicle routing problem. Networks 11 (1981) 109–124[29] Bramel, J., Simchi-Levi, D.: A location based heuristic for general routing problems. Operations Research 43 (1995) 649–660[30] Beasley, J.: Route first – cluster second methods for vehicle routing. Omega 11 (1983) 403–408 55
  • 60. [31] Balinski, M., Quandt, R.: On an integer program for a delivery problem. Operations Research 12 (1964) 300–304[32] Boctor, F., Renaud, J.: The column-circular, subsets-selection problem: complexity and solutions. Computers & Operations Research 27 (2000) 383–398[33] Foster, B., Ryan, D.: An integer programming approach to the vehicle scheduling problem. Journal of the Operational Research Society 27 (1976) 367–384[34] Ryan, D., Hjorring, C., Glover, F.: Extensions of the petal method for vehicle routing. Journal of Operational Research Society 44 (1993) 289– 296[35] Renaud, J., Boctor, F., Laporte, G.: An improved petal heuristic for the vehicle ruting problem. Journal of Operational Research Society 47 (1996) 329–336[36] Johnson, D., McGeoch., L.: The Traveling Salesman Problem: a case study in local optimization. In: Local Search in Combinatorial Optimization. John Wiley and Sons (1997) 215–310[37] Renaud, J., Boctor, F., Laporte, G.: A fast composite heuristic for the symmetric travelling salesman problem. INFORMS Journal on Computing 8 (1996) 134–143[38] Lin, S., Kernighan, B.: An effective heuristic algorithm for the traveling salesman problem. Operations Research (1973) 498–516[39] Or, I.: Traveling salesman-type combinatorial optimization problems and theeir relation to the logistics of regional blood banking (1976)[40] Breedam, A.V.: Improvement heuristics for the vehicle routing problem based on simulated annealing. European Journal of Operational Research 86 (1995) 480–490[41] Gendreau, M., Hertz, A., Laporte, G.: New insertion and post optimization procedures for the traveling salesman problem. Operations Research 40 (1992) 1086–1094[42] Thompson, P., Psaraftis, H.: Cyclic transfer algorithms for multivehicle routing and scheduling problems. Operations Research 41 (1993) 935–946[43] Solomon, M.: Algorithms for the vehicle routing and scheduling problem with time window constraints. Operations Research 35 (1987) 254–264[44] Dullaert, W., Janssens, G., Sorensen, K., Vernimmen, B.: New heuris- tics for the fleet size and mix vehicle routing problem with time windows. Journal of the Operational Research Society 53 (2002) 1232–1238[45] Colorni, A., Dorigo, M., Maniezzo, V.: Distributed optimization by ant colonies. In Varela, F., Bourgine, P., eds.: Proceedings of the European Conference on Artificial Life, Elsevier, Amsterdam (1991) 134–142 56
  • 61. [46] Dorigo, M., Maniezzo, V., Colorni, A.: The Ant System: Optimization by a colony of cooperating agents. IEEE Transactions on Systems, Man, and Cybernetics Part B: Cybernetics 26 (1996) 29–41[47] Bullnheimer, B., Hartl, R., Strauss, C.: A new rank based version of the ant system – a computational study. Technical report, University of Viena, Institute of Management Science (1997)[48] Gambardella, L.M., Dorigo, M.: Ant-Q: A reinforcement learning approach to the traveling salesman problem. In: International Conference on Machine Learning. (1995) 252–260[49] Gambardella, L.M., Dorigo, M.: Solving symmetric and asymmetric TSPs by ant colonies. In: IEEE Conference on Evolutionary Computation, IEEE Press (1996) 622–627[50] St¨tzle, T., Hoos, H.: Improving the ant system: A detailed report on the u max-min ant system. Technical Report AIDA-96-12 (1996)[51] Bullnheimer, B., Hartl, R., Strauss, C.: Applying the ant system to the ve- hicle routing problem. In: Proceedings of the 2nd International Conference on Metaheuristics (MIC’97), Sophia-Antipolis, France (1997)[52] Bullnheimer, B., Hard, R., Strauss, C.: An improved ant system for the vehicle routing problem. Annals of Operations Research 89 (1999) 319–328[53] Gambardella, L.M., Taillard, E.D., Agazzi, G.: MACS-VRPTW: A Multi- ple Ant Colony System for Vehicle Routing Problems with Time Windows. In: New Ideas in Optimization. McGraw-Hill (1999) Also available as tech- nical report IDSIA-06-99, IDSIA, Lugano, Switzerland.[54] Br¨ysy, O., Dullaert, W.: A fast evolutionary metaheuristic for the vehicle a routing problem with time windows. International Journal on Artificial Intelligence Tools 12 (2003) 153–172[55] Glover, F.: Future paths for integer programming and links to artificial intelligence. Computers & Operations Research 13 (1986) 533–549[56] Osman, I.: Metastrategy simulated annealing and tabu search algorithms for the vehicle routing problem. Annals of Operations Research 41 (1993) 421–451[57] Gendreau, M., Hertz, A., Laporte, G.: A tabu search heuristic for the vehicle routing problem. Management Science 40 (1994) 1276–1290[58] Taillard, E.D.: Parallel iterative search methods for vehicle routing prob- lems. Networks 23 (1993) 661–673[59] Volgenat, T., Jonker, R.: The symmetric traveling salesman problem and edge exchanges in minimal 1-tree. European Journal of Operational Re- search (1983) 394–403[60] Rochat, Y., Taillard, E.: Probalistic diversification and intensification in local search for vehicle routing. Journal of Heuristics 1 (1995) 147–167 57
  • 62. [61] Xu, J., Kelly, J.: A network-flow based tabu search heuristic for the vehicle routing problem. Transportation Science 30 (1996) 379–393[62] Glover, F.: Multilevel tabu search and embedded search neighborhoods for the traveling salesman problem. Technical report, Graduate School of Business and Administration, University of Colorado (1991)[63] Rego, C., Roucariol, C.: A parallel tabu search algorithm using ejection chains for the vehicle routing problem. In: Meta-Heuristics: Theory and Applications. Kluwer Academic Publishers (1996) 661–675[64] Rego, C.: A subpath ejection method for the vehicle routing problem. Management Science 44 (1998) 1447–1459[65] Toth, P., Vigo, D.: The granular tabu search and its application to the vehicle-routing problem. INFORMS Journal on Computing 15 (2003) 333– 346[66] Barbarosoglu, G., Ozgur, D.: A tabu search algorithm for the vehicle routing problem. Computers & Operations Research 26 (1999) 255–270[67] Cordeau, F., Laporte, G., Mercier, A.: A unified tabu search heuristic for vehicle routing problems with time windows. Journal of the operational research society 52 (2001) 928–936[68] Gendreau, M., Hertz, A., Laporte, G., Stan, M.: A generalized insertion heuristic for the traveling salesman problem with time windows. Operations Research 43 (1998) 330–335[69] Holland, J.: Adaptation in Natural and artificial systems. The University of Michigan Press (1975)[70] Potvin, J.Y.: Genetic algorithms for the traveling salesman problem. An- nals of Operations Research 63 (1996) 339–370[71] Francisco Pereira, Jorge Tavares, P.M.E.C.: Gvr: A new genetic repre- sentation for the vehicle routing problem. In: Proceedings of the 13th. Conference on Artificial Intelligence and Cognitive Science (AICS 2002). (2002) 95–102[72] Baker, B., Ayechew, M.: A genetic algorithm for the vehicle routing prob- lem. Computers & Operational Research 30 (2003) 787–800[73] Thangiah, S.: Vehicle Routing with Time Windows using Genetic Algo- rithms. In: Application Handbook of Genetic Algorithms: New Frontiers, Volume II. CRC Press (1995) 253–277[74] Thangiah, S., Osman, I., Sun, T.: Hybrid genetic algorithm, simulated annealing and tabu search methods for vehicle routing problems with time windows. Technical Report SRU-CpSc-TR-94-27, Computer Science De- partment, Slippery Rock University (1994)[75] Blanton, J., Wainwright, R.: Multiple vehicle routing with time and ca- pacity constraints using genetic algorithms. In: Proceedings of the 5th International Conference on Genetic Algorithms. (1993) 452–459 58
  • 63. [76] Potvin, J.Y., Bengio, S.: The vehicle routing problem with time windows – part II: Genetic search. INFORMS Journal on Computing 8 (1996) 165–172[77] Goldberg, D.: Genetic Algorithms in Search, Optimization, and Machine Learning. Addison-Wesley Publishing Company, Inc., Reading, MA (1989)[78] Berger, J., Barkaoui, M., Br¨ysy, O.: A route-directed hybrid genetic a approach for the vehicle routing problem with time windows. INFOR 41 (2003) 179–194[79] Zhu, K.: A new genetic algorithm for VRPTW. Presented at IC-AI 2000, Las Vegas, USA (2000)[80] Kay Chen Tan, Loo Hay Lee, Ke Ou: Hybrid genetic algorithms in solv- ing vehicle routing problems with time windows. Asia-Pacific Journal of Operational Research 18 (2001) 121–130[81] Potvin, J.Y., Dub´, D.: Improving a vehicle routing heuristic through e genetic search. In: International Conference on Evolutionary Computation. (1994) 194–199 59

×