SlideShare une entreprise Scribd logo
1  sur  63
Télécharger pour lire hors ligne
Heur´
         ısticas para Problemas de
          Ruteo de Veh´ ıculos

                  Alfredo Olivera
Instituto de Computaci´n, Facultad de Ingenier´
                        o                     ıa,
Universidad de la Rep´blica, Montevideo, Uruguay.
                      u
               aolivera@fing.edu.uy

                  Agosto 2004
Resumen

Desde la primera formulaci´n de los Problemas de Ruteo de Veh´
                           o                                       ıculos, una gran
cantidad de m´todos han sido propuestos para su resoluci´n. Estos m´todos
               e                                              o              e
incluyen tanto algoritmos exactos como heur´  ısticas. En este trabajo se presenta
un relevamiento de algunas de las heur´ısticas que han sido m´s significativas.
                                                                a
Palabras clave: Ruteo de Veh´  ıculos, Heur´ısticas, Optimizaci´n Combinatoria.
                                                                 o
Indice

1 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                                                              .   .   .   .   .   9

2 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 . . . . . . . . . . . . . . . . . . . .            27

3 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
3.4   Algoritmo de Barrido . . . . . . . . . . . . . . . . . . . . . . . . .                        33
   3.5   Rutear Primero - Asignar Despu´s . . . . . . . . . . . . . . . . .
                                          e                                                            34

4 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
Cap´
   ıtulo 1

Problemas de Ruteo de
Veh´
   ıculos

1.1      Introducci´n
                   o
El problema de distribuir productos desde ciertos dep´sitos a sus usuarios finales
                                                          o
juega un papel central en la gesti´n de algunos sistemas log´
                                    o                          ısticos y su adecuada
planificaci´n puede significar considerables ahorros. Esos potenciales ahorros
            o
justifican en gran medida la utilizaci´n de t´cnicas de Investigaci´n Operativa
                                           o      e                      o
como facilitadoras de la planificaci´n, dado que se estima que los costos del
                                         o
transporte 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
                            ´                 e
por resolver estos problemas. En 1959, Dantzig y Ramser [2] realizaron por
primera vez una formulaci´n del problema para una aplicaci´n de distribuci´n
                               o                                   o                o
de combustible. Cinco a˜os m´s tarde, Clarke y Wright [3] propusieron el
                               n     a
primer algoritmo que result´ efectivo para su resoluci´n: el popular Algoritmo
                                 o                          o
de Ahorros. A partir de estos trabajos, el ´rea de Ruteo de Veh´
                                               a                     ıculos ha crecido
de manera explosiva. Por un lado, hacia modelos que incorporen cada vez m´s         a
caracter´ısticas de la realidad, y, por otro lado, en la b´squeda de algoritmos que
                                                          u
permitan resolver los problemas de manera eficiente.
    Estos modelos y algoritmos deben su ´xito, en buena parte, a la evoluci´n
                                               e                                    o
de los sistemas inform´ticos. El crecimiento en el poder de c´mputo y la baja
                         a                                          o
en sus costos, ha permitido disminuir los tiempos de ejecuci´n de los algoritmos.
                                                                o
Por otro lado, el desarrollo de los Sistemas de Informaci´n Geogr´fica resulta
                                                              o           a
fundamental para lograr una adecuada interacci´n de los modelos y algoritmos
                                                     o
con 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                        a
mas de Ruteo de Veh´      ıculos son Problemas de Optimizaci´n Combinatoria y
                                                                 o
pertenecen, en su mayor´ a la clase N P -Hard. La motivaci´n acad´mica por
                             ıa,                                   o        e
resolverlos 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
1.2      Caracter´
                 ısticas de los Problemas
A 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 en
los dep´sitos, para que los veh´
        o                      ıculos visiten a los clientes. Las caracter´
                                                                          ısticas de
los 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 Clientes
Cada 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 es
usual que un mismo veh´   ıculo no pueda satisfacer la demanda de todos los clientes
en una misma ruta. Un caso equivalente al anterior ocurre cuando los clientes
son proveedores y lo que se desea es recoger la mercader´ y transportarla hacia
                                                             ıa
el dep´sito. Tambi´n podr´ ocurrir que la mercader´ deba ser transportada a
       o            e        ıa                          ıa
los clientes pero no est´ inicialmente en el dep´sito, sino distribu´ en ciertos
                          e                        o                   ıda
sitios proveedores. En este caso, los proveedores deben ser visitados antes que
los 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 cliente
tiene 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 alojar
simult´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 en
momentos diferentes y por veh´    ıculos diferentes.
    Los clientes podr´ tener restricciones relativas su horario de servicio. Usual-
                      ıan
mente estas restricciones se expresan en forma de intervalos de tiempo (llamados
ventanas de tiempo) en los que se puede arribar al cliente.
    En problemas con varios veh´    ıculos diferentes podr´ existir restricciones de
                                                           ıa
compatibilidad entre ´stos y los clientes. En estos casos, cada cliente s´lo puede
                        e                                                    o
ser visitado por algunos de los veh´   ıculos (por ejemplo, algunos veh´   ıculos muy
pesados no pueden ingresar en ciertas localidades).

1.2.2     Los Dep´sitos
                 o
Tanto los veh´ ıculos como las mercader´ a distribuir (si las hubiera) suelen
                                         ıas
estar ubicadas en dep´sitos. Usualmente se exige que cada ruta comience y
                        o
finalice en un mismo dep´sito, aunque este podr´ no ser el caso en algunas
                            o                      ıa
aplicaciones (por ejemplo, podr´ ser que el viaje debiera finalizar en el domicilio
                                 ıa
del conductor del veh´ ıculo).
    En los problemas con m´ltiples dep´sitos cada uno de estos tiene diferentes
                              u         o
caracter´
        ısticas, por ejemplo, su ubicaci´n y capacidad m´xima de producci´n.
                                        o                  a                  o
Podr´ ocurrir que cada dep´sito tenga una flota de veh´
     ıa                        o                         ıculos asignada a priori
o 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                                     ıan
asociadas. En algunos casos debe considerarse el tiempo necesario para cargar


                                          2
o preparar un veh´ ıculo antes de que comience su ruta, o el tiempo invertido
en su limpieza al regresar. Incluso, por limitaciones de los propios dep´sitos,
                                                                         o
podr´ querer evitarse que demasiados veh´
     ıa                                      ıculos est´n operando en un mismo
                                                       e
dep´sito a la vez (es decir, la congesti´n del dep´sito).
   o                                    o         o

1.2.3     Los Veh´
                 ıculos
La capacidad de un veh´    ıculo podr´ tener varias dimensiones, como por ejem-
                                      ıa
plo peso y volumen. Cuando en un mismo problema existen diferentes mer-
cader´ los veh´
      ıas,        ıculos podr´ tener compartimentos, de modo que la capacidad
                               ıan
del veh´ıculo dependa de la mercader´ de que se trate. En general, cada veh´
                                       ıa                                         ıculo
tiene asociado un costo fijo en el que se incurre al utilizarlo y un costo variable
proporcional a la distancia que recorra.
    Los problemas en que los atributos (capacidad, costo, etc.) son los mismos
para todos los veh´ ıculos se denominan de flota homog´nea, y, si hay diferencias,
                                                          e
de flota heterog´nea. La cantidad de veh´
                 e                            ıculos disponibles podr´ ser un dato
                                                                      ıa
de entrada o una variable de decisi´n. El objetivo mas usual suele ser utilizar
                                       o
la menor cantidad de veh´     ıculos y minimizar la distancia recorrida ocupa un
segundo lugar.
    Regulaciones legales podr´ imponer restricciones sobre el tiempo m´ximo
                                 ıan                                            a
que un veh´ ıculo puede estar en circulaci´n e incluso prohibir el pasaje de ciertos
                                            o
veh´ıculos por ciertas zonas. En algunos casos se desea que la cantidad de trabajo
realizado 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 de
planificaci´n, pero ultimamente se han estudiado modelos en los que un mismo
           o         ´
veh´ıculo puede recorrer m´s de una ruta.
                             a


1.3      Formulaci´n Matem´tica
                  o       a
En esta secci´n se formulan algunos de los problemas cl´sicos y sus extensiones
               o                                           a
como problemas de Programaci´n Entera. Dichas formulaciones se dan por
                                    o
completitud y para evitar ambig¨edad en la definici´n, pero no se reportan en
                                    u                  o
este trabajo m´todos exactos de resoluci´n.
                 e                          o
    La red de transporte por la que circulan los veh´ıculos se modela mediante un
grafo ponderado G = (V, E, C). Los nodos del grafo representan a los clientes
y dep´sitos. En problemas con un dep´sito y n clientes, el nodo 0 representa
      o                                    o
al dep´sito y los nodos 1, . . . , n a los clientes. En algunos casos (en que se
       o
explicitar´) se agrega una copia del dep´sito etiquetada con n+1 para simplificar
           a                              o
la formulaci´n.
             o
    Cada arco (i, j) ∈ E representa el mejor camino para ir desde el nodo i hacia
el nodo j en la red de transporte y tiene asociado un costo cij y un tiempo de
viaje tij . Seg´n la estructura de los costos y los tiempos y las caracter´
                u                                                            ısticas
de la red, el grafo puede ser sim´trico o asim´trico. Puede suponerse que G es
                                    e            e
completo, 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                                          o
modelos ser´n planteados sin realizar dicha hip´tesis.
             a                                     o
    Denotaremos por ∆+ (i) y ∆− (i) al conjunto de nodos adyacentes e incidentes
al nodo i, es decir, ∆+ (i) = {j ∈ V | (i, j) ∈ E} y ∆− (i) = {j ∈ V | (j, i) ∈ E}.



                                          3
De manera similar, el conjunto de arcos incidentes hacia el exterior e interior
del 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) se
dispone de un solo veh´ ıculo que debe visitar a todos los clientes en una sola ruta
y a costo m´ ınimo. No suele haber un dep´sito (y si lo hubiera no se distingue de
                                           o
los clientes), no hay demanda asociada a los clientes y tampoco hay restricciones
temporales. 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) ∈ E

Esta formulaci´n fue propuesta por Dantzig, Fulkerson y Johnson [4]. Las vari-
               o
ables binarias xij indican si el arco (i, j) es utilizado en la soluci´n. La funci´n
                                                                      o           o
objetivo (1.1) establece que el costo total de la soluci´n es la suma de los cos-
                                                           o
tos de los arcos utilizados. Las restricciones 1.2 y 1.3 indican que la ruta debe
llegar 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
                                                       o
todo subconjunto de nodos S debe ser abandonado al menos una vez. Notar
que si no se impusieran estas restricciones la soluci´n podr´ constar de m´s de
                                                         o      ıa             a
un ciclo, como se muestra en la Figura 1.1. Esta soluci´n viola la restricci´n 1.4
                                                           o                  o
para S = {0, 1, 2}. Existen diferentes tipos de restricciones de eliminaci´n deo
sub-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 )
                                                       o
de variables binarias y O(2n ) restricciones. El problema puede formularse con
una cantidad polinomial de restricciones, agregando variables reales ui para
i = 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 fuerzan
a que las variables reales u determinen una cantidad estrictamente creciente a


                                                     4
lo largo de la ruta (es decir, uj ≥ ui + 1 si j es visitado inmediatamente despu´se
que i). Bajo la hip´tesis de que |E| = O(n2 ), en esta nueva formulaci´n hay
                     o                                                       o
O(n2 ) variables binarias, O(n) variables positivas y O(n2 ) restricciones. Sin
embargo, esta formulaci´n no resulta apta para la resoluci´n de problemas de
                          o                                     o
tama˜o considerable mediante m´todos exactos, pues si bien se disminuye la
      n                              e
cantidad de restricciones, la cota que se obtiene resolviendo su relajaci´n lineal
                                                                           o
resulta 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
                                    e
de veh´ ıculos m´s simple. No obstante, pertenece a la clase de problemas N P -
                a
Hard [6] y es uno de los Problemas de Optimizaci´n Combinatoria m´s cl´sico
                                                        o                 a a
y 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      o
TSP en la cual se tiene un dep´sito y m veh´
                                    o               ıculos. El objetivo es construir
exactamente m rutas, una para cada veh´        ıculo, de modo que cada cliente sea
visitado una vez por uno de los veh´   ıculos. Cada ruta debe comenzar y finalizar
en el dep´sito y puede contener a lo sumo p clientes. Una formulaci´n, dada
          o                                                                o
por 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
                                                                   o
y 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 no
haya m´s de p clientes.
         a
    En el caso que p = n (es decir, cuando la cantidad de clientes por ruta
no est´ acotada) el m-TSP puede formularse como un TSP con m copias del
       a
dep´sito tales que la distancia entre ellas es infinita. Las soluciones a ese TSP
    o
no utilizar´n arcos que conectan dos copias del dep´sito y por lo tanto, pueden
           a                                          o
ser interpretadas como soluciones del m-TSP.




                                           5
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
                         o
asociada una demanda di 1 y cada veh´     ıculo tiene una capacidad C (la flota es
homog´nea). En este problema la cantidad de rutas no es fijada de antemano
       e
como en el TSP y en el m-TSP.
    Para un conjunto de clientes S, d(S) =          i∈S di es su demanda total y
r(S) indica la m´ ınima cantidad de veh´   ıculos necesarios servirlos a todos. En
la formulaci´n conocida con el nombre de flujo de veh´
             o                                             ıculos de dos ´ındices, se
utilizan las variables binarias xij para determinar si el arco (i, j) se utiliza o no
en 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) ∈ E
La funci´n objetivo (1.9) es el costo total de la soluci´n. Las restricciones 1.10
         o                                              o
y 1.11 indican que m es la cantidad de veh´    ıculos utilizados en la soluci´n y
                                                                             o
que todos los veh´ıculos que parten del dep´sito deben regresar. Las restric-
                                              o
ciones 1.12 y 1.13 aseguran que todo cliente es un nodo intermedio de alguna
ruta. Finalmente, la restricci´n 1.14 act´a como restricci´n de eliminaci´n de
                              o           u                  o              o
sub-tours y a la vez impone que la demanda total de los clientes visitados por
un 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
donde K es un conjunto con suficientes veh´ıculos para satisfacer la demanda (por
ejemplo, 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       a
cuando 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
                                                              o
ruta puede tener largo mayor que cierta cota L. Dicha restricci´n no puede
                                                                     o
incorporarse 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
                                                                               o
que no tiene cota superior, es decir, se asume que la disponibilidad de veh´
                                                                           ıculos
es ilimitada. Si se tuviera un flota finita se podr´ agregar una cota superior
                                                    ıa
para m o directamente fijar su valor. Notar que est´ impl´
                                                     a    ıcito que cada veh´ıculo
puede recorrer a lo sumo una ruta.

1.3.4        El Problema con Flota Heterog´nea (FSMVRP)
                                          e
En los problemas con flota heterog´nea los costos y capacidades de los veh´
                                     e                                            ıculos
var´
   ı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 costos
y tiempos de viaje para cada tipo de veh´    ıculo son ck y tk respectivamente. Se
                                                         ij    ij
asume que los ´ ındices de los veh´ıculos est´n ordenados en forma creciente por
                                              a
capacidad (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 ∈ V

Las variables binarias xk indican si el arco (i, j) es utilizado por el veh´
                         ij                                                ıculo k y
las variables ri positivas indican la carga acumulada en la ruta correspondiente
hasta el nodo i (inclusive). La funci´n objetivo (1.15) mide el costo total de
                                         o
la soluci´n incluyendo costos fijos y variables. Las restricciones 1.16 establecen
         o
que todo cliente debe ser visitado por alg´n veh´
                                             u      ıculo. En 1.17 se indica que si
un veh´ıculo de tipo k visita al nodo i, entonces un veh´ıculo del mismo tipo debe
abandonarlo. Las restricciones 1.18 y 1.19 fijan los valores de las variables ri y


                                                               7
act´an como restricciones de eliminaci´n de subtours, mientras que la capacidad
   u                                   o
de los veh´ıculos se impone en 1.20.
    En esta formulaci´n se asume que la cantidad de veh´
                       o                                     ıculos de cada tipo
es ilimitada. El problema correspondiente se denomina Fleet Size and Mix
Vehicle Routing Problem (o FSMVRP). No solo se debe decidir las rutas, sino
la composici´n de la flota de veh´
              o                    ıculos a utilizar. Usualmente, al tratar con
problemas de flota heterog´nea, se opta por utilizar este modelo a´n cuando en
                           e                                        u
algunos casos no refleja la realidad.
    Si la cantidad de veh´
                         ıculos disponibles de cada tipo k fuera vk , conocida de
antemano, 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}
                                         a
tiene asociada una ventana de tiempo [ei , li ] que establece un horario de servicio
permitido para que un veh´    ıculo arribe a ´l y un tiempo de servicio o demora si .
                                             e
Si (i, j) es un arco de la soluci´n y ti y tj son las horas de arribo a los clientes i
                                  o
y j, las ventanas de tiempo implican que necesariamente debe cumplirse ti ≤ li
y tj ≤ lj . Por otro lado, si ti < ei , entonces el veh´ ıculo deber´ esperar hasta
                                                                     a
que 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
                                                               o
para representar a los veh´  ıculos (no a los tipos de veh´ıculos como en la secci´n
                                                                                   o
anterior), 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
           k
variables yi indican la hora de arribo al cliente i cuando es visitado por el
veh´
   ıculo k (si el cliente no es visitado por dicho veh´
                                                      ıculo el valor de la variable
no tiene significado). La funci´n objetivo (1.21) es el costo total de las rutas.
                                 o


                                                        8
La restricci´n 1.22 indica que todos los clientes deben ser visitados. Las re-
            o
stricciones 1.23 y 1.24 determinan que cada veh´  ıculo k ∈ K recorre un camino
de 0 a n + 1. La capacidad de cada veh´    ıculo es impuesta en 1.25. Siendo M
una constante lo suficientemente grande, la restricci´n 1.26 asegura que si un
                                                       o
veh´ıculo k viaja de i a j, no puede llegar a j antes que yi + si + tk , y act´an
                                                                     ij       u
adem´s como restricciones de elimianci´n de sub-tours. Finalmente, los l´
      a                                  o                                  ımites
de las ventanas de tiempo son impuestos en 1.27.


1.4     M´todos Exactos
         e
Dada la complejidad de los problemas, solo las instancias con pocos clientes
(hasta 50 aproximadamente) pueden ser resueltas consistentemente por m´todos
                                                                         e
exactos. En este tipo de metodolog´ ıas, suele resolverse alguna relajaci´n del
                                                                         o
problema y utilizarse un esquema de ramificaci´n y acotamiento al estilo del
                                                o
m´todo Branch and Bound [10]. Tambi´n se han propuesto algoritmos basados
  e                                    e
en Programaci´n Din´mica que aceleran los c´lculos mediante una relajaci´n del
               o     a                      a                             o
espacio de estados. Por otro lado, hay diversas implementaciones del m´todo
                                                                          e
de Generaci´n de Columnas, que han resultado especialmente efectivas para
             o
problemas con ventanas de tiempo muy ajustados. Por un completo compendio
de m´todos exactos para Problemas de Ruteo de Veh´
      e                                               ıculos, puede consultarse
los trabajos de Laporte y Norbert [11] y de Laporte [12].




                                        9
Cap´
   ıtulo 2

Heur´
    ısticas Cl´sicas para el
              a
VRP

En este cap´ıtulo se presentan algunas de las heur´ ısticas cl´sicas m´s significa-
                                                              a       a
tivas para el VRP con capacidades y, en algunos casos, la restricci´n sobre el
                                                                       o
largo m´ximo de cada ruta. Estas heur´
        a                                ısticas son procedimientos simples que
realizan una exploraci´n limitada del espacio de b´squeda y dan soluciones de
                       o                             u
calidad aceptable en tiempos de c´lculo generalmente moderados. Las soluciones
                                 a
obtenidas con esta clase de procedimientos pueden, en general, ser mejoradas
utilizando m´todos de b´squeda m´s sofisticados, pero incurriendo en elevados
             e           u          a
tiempos de ejecuci´n. Muchas de estas heur´
                   o                          ısticas pueden ser extendidas para
manejar restricciones adicionales a las del VRP.


2.1      El Algoritmo de Ahorros
Uno de los algoritmos m´s difundidos para el VRP es el Algoritmo de Ahorros
                              a
de 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 dicha
uni´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                         a
el arco (i, j). En este algoritmo se parte de una soluci´n inicial y se realizan
                                                             o
las 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
problema. Existe una versi´n paralela en la que se trabaja sobre todas las ru-
                           o
tas simult´neamente, y otra secuencial que construye las rutas de a una por vez.
          a

Algoritmo de Ahorros (Versi´n paralela)
                                   o
Paso 1 (inicializaci´n). Para cada cliente i construir la ruta (0, i, 0).
                      o
Paso 2 (c´lculo de ahorros). Calcular sij para cada par de clientes i y j.
           a
Paso 3 (mejor uni´n). Sea si∗ j ∗ = max sij , donde el m´ximo se toma entre los
                     o                                    a
ahorros que no han sido considerados a´n. Sean ri∗ y rj ∗ las rutas que contienen
                                        u
a 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.
                                         o
Eliminar si∗ j ∗ de futuras consideraciones. Si quedan ahorros por examinar ir a
3, si no terminar.

Algoritmo de Ahorros (Versi´n secuencial)
                                      o
Paso 1 (inicializaci´n). Para cada cliente i construir la ruta (0, i, 0).
                       o
Paso 2 (c´lculo de ahorros). Calcular sij para cada par de clientes i y j.
            a
Paso 3 (selecci´n). Si todas las rutas fueron consideradas, terminar. Si no,
                  o
seleccionar una ruta que a´n no haya sido considerada.
                               u
Paso 4 (extensi´n). Sea (0, i, . . . , j, 0) la ruta actual. Si no existe ning´n ahorro
                  o                                                           u
conteniendo 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
                              ´                                                      o
de 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                                          o
clientes i y j, todos los ahorros pueden calcularse una sola vez al comienzo de la
ejecuci´n del algoritmo. En la versi´n secuencial, podr´ calcularse los ahorros
       o                                o                ıa
a medida que son necesarios.
    Si el m´ximo ahorro es negativo, la combinaci´n de las rutas aumentar´ la
            a                                          o                       a
distancia recorrida pero disminuir´ la cantidad de rutas de la soluci´n (y por lo
                                     a                                o
tanto la cantidad de veh´  ıculos utilizados). Dependiendo de las particularidades
de 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-
                                                 o
arse algunas rutas circulares (ver Figura 2.2) lo cual puede ser negativo. Para
solucionar este problema algunos autores [13, 14, 15] proponen redefinir el ahorro
como
                                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                                                a
lizarse tambi´n para generar un conjunto de soluciones diferentes mediante la
             e
ejecuci´n repetida del algoritmo con diferentes valores de λ.
       o
    En general ocurre que al comienzo de la ejecuci´n del algoritmo dos alter-
                                                     o
nativas pueden parecer equivalentes y, sin embargo, la elecci´n tiene un gran
                                                               o
impacto en la soluci´n final. Las soluciones obtenidas con el Algoritmo de Ahor-
                    o
ros pueden, en general, ser mejoradas mediante operadores de b´squeda local
                                                                  u
como el algoritmo 3-opt [16].




                                          11
(a) Rutas Circulares        (b) Rutas Radiales


              Figura 2.2: Un ejemplo de rutas circulares y radiales.



2.1.1     Algoritmo de Ahorros basado en Matching
Cuando en el Algoritmo de Ahorros se decide unir dos rutas ri y rj , se est´     a
descartando otras uniones posibles en las que participan ri o rj (porque i y j
dejan de ser extremos en la nueva ruta). La uni´n que da el m´ximo ahorro
                                                    o                a
podr´ 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.
                              a
En el Algoritmo de Ahorros Basado en Matching se decide la union a realizar
considerando como afecta ´sta a las posibles uniones en iteraciones siguientes.
                            e
Para esto, se considera un grafo que tiene a todas las rutas como nodos y un
arco 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
                                                  o
de peso m´ximo1 sobre dicho grafo da un conjunto de combinaciones a realizar
          a
que es globalmente bueno.

Algoritmo de Ahorros Basado en Matching
Paso 1 (inicializaci´n). Para cada cliente i construir la ruta (0, i, 0).
                     o
Paso 2 (c´lculo de los ahorros). Actualizar spq para cada par de rutas p y q
           a
que pueda ser combinado manteniendo la factibilidad. Si ning´n par de rutas
                                                                  u
puede ser combinado, terminar.
Paso 3 (matching). Resolver un problema de matching de peso m´ximo sobre
                                                                       a
un grafo cuyos nodos son las rutas de la soluci´n actual y en el cual hay un arco
                                                o
entre las rutas p y q con peso spq si su combinaci´n es factible.
                                                   o
Paso 4 (uniones). Dado el matching de peso m´ximo, combinar todo par de
                                                   a
rutas 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
                                     a
polinomial en la cantidad de nodos del grafo [17]. Pero, por un lado, el grafo
tiene tantos nodos como rutas haya en la soluci´n (inicialmente hay n2 rutas)
                                                 o
y, por otro lado, se halla un nuevo matching en cada iteraci´n. Entonces, para
                                                             o
problemas 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
                                                   o
de asociado y la nueva soluci´n inducida por el Matching de Peso M´ximo que
                              o                                      a
es {(1, 3), (4, 5)}. El ahorro total es de 17. Supongamos que el veh´   ıculo no
tiene capacidad para satisfacer la demanda de ninguna combinaci´n de tres de
                                                                   o
las 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
                                                                                  u
Peso de un Matching es la suma de los pesos de sus arcos.



                                            12
se hubiera combinado primero las rutas 3 y 4 y luego las 2 y 5, obteniendo un
ahorro 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 una
al final de la otra como en el Algoritmo de Ahorros original, sino todas las
posibilidades de armar una nueva ruta con los clientes de ambas. Entonces, si
Sp y Sq son los conjuntos de clientes de las rutas p y q, el ahorro por combinarlas
se define como spq = t(Sp ) + t(Sq ) − t(Sp ∪ Sq ), donde t(S) indica el costo de una
soluci´n ´ptima para el TSP sobre el conjunto de clientes S. Con esta definici´n
      o o                                                                         o
no solo se hace costoso el c´lculo de los ahorros, sino que adem´s ´stos deben
                              a                                      a e
ser re-calculados en cada nueva iteraci´n. Cuando la cantidad de clientes en
                                           o
cada 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
                                                         a
participa en m´s de una uni´n (porque los arcos correspondientes forman un
                 a               o
matching en el grafo). Sin embargo, podr´ ser ventajoso que la ruta resul-
                                               ıa
tante de una uni´n sea inmediatamente unida con otra. Resulta conveniente,
                   o
entonces, no realizar todas las uniones dadas por el matching de peso m´ximo, a
sino solamente algunas. Una opci´n es combinar s´lo las rutas que correspon-
                                     o                 o
dan al arco de mayor peso del matching [18]. Otra alternativa para realizar
las uniones de manera m´s gradual es conectar los nodos del grafo sobre el que
                           a
se 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 forma
usual (2.1 o 2.2) o puede modificarse para privilegiar las uniones que est´n       e
lejos de ser infactibles (por ejemplo, si la ruta resultante est´ lejos de colmar la
                                                                 a
capacidad del veh´  ıculo o lejos de la m´xima distancia permitida). Cuando no
                                          a
hay m´s combinaciones de rutas que sea factibles, algunas rutas son divididas
       a
probabil´ısticamente, lo que permite proseguir la b´squeda de soluciones.
                                                      u


2.2      Heur´
             ısticas de Inserci´n
                               o
Las heur´ ısticas de inserci´n son m´todos constructivos en los cuales se crea
                             o          e
una soluci´n mediante sucesivas inserciones de clientes en las rutas. En cada
            o
iteraci´n se tiene una soluci´n parcial cuyas rutas s´lo visitan un subconjunto de
        o                     o                        o
los 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
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
                                                                             o
paralelo surgen para remediar esta deficiencia, permitiendo insertar un cliente
en cualquiera de las rutas de la soluci´n. Esta distinci´n es similar a la hecha
                                         o               o
para 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
                                     o
VRP 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
                                               o
el trabajo de Bodin et al. [23]. En esta secci´n nos ocuparemos de aquellas
                                                  o
dise˜adas expl´
     n         ıcitamente para el VRP.

2.2.1      Inserci´n Secuencial de Mole & Jameson
                  o
En esta heur´    ıstica [21] se utilizan dos medidas para decidir el pr´ximo cliente
                                                                                 o
a insertar en la soluci´n parcial. Por un lado, para cada cliente no visitado
                            o
se calcula la mejor posici´n para ubicarlo en la ruta actual teniendo en cuenta
                               o
solamente las distancias y sin reordenar los nodos que ya est´n en la ruta. Se
                                                                            a
tiene una ruta (v0 , v1 , . . . , vt , vt+1 ) donde v0 = vt+1 = 0. Si w es un cliente no
visitado, 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,...,t

Si se utilizara solamente la medida c1 para decidir el pr´ximo cliente a insertar,
                                                           o
es probable que los clientes lejanos al dep´sito no sean tenidos en cuenta sino
                                              o
hasta las iteraciones finales del algoritmo, es decir, cuando sean las unicas alter-
                                                                        ´
nativas factibles. Por lo tanto, es necesario utilizar un incentivo adicional para
la inserci´n de clientes lejanos al dep´sito. Se define c2 (vi , w) = µc0w − c1 (vi , w)
          o                            o
para cada cliente w. En cada iteraci´n se busca el cliente que maximiza la me-
                                       o
dida c2 (llamada medida de urgencia) y se lo inserta en la posici´n dada por el
                                                                      o
m´ınimo valor de c1 .
    Adem´s de las medidas anteriores, debe considerarse la factibilidad de las
           a
inserciones. Cuando ninguna inserci´n es factible y si a´n quedan clientes sin
                                       o                     u
visitar, se selecciona un cliente para comenzar una nueva ruta. El algoritmo es
el siguiente.

Algoritmo de Mole & Jameson
Paso 1 (creaci´n de una ruta). Si todos los clientes pertenecen a alguna ruta,
                o
terminar. 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
                 o
cada cliente no visitado w, calcular i(w) = arg mini=0,...,t c1 (vi , w). Si no hay
inserciones factibles, ir al paso 1. Calcular w∗ = arg maxw c2 (vi(w) , w). Insertar
w∗ luego de vi(w∗ ) en r.
Paso 3 (optimizaci´n). Aplicar el algoritmo 3-opt [16] sobre r. Ir al paso 2.
                     o



                                              14
Para seleccionar el cliente que iniciar´ una ruta pueden utilizarse diferentes
                                           a
alternativas, por ejemplo, el m´s lejano al dep´sito. El algoritmo utiliza dos
                                  a               o
par´metros λ y µ para modificar sus criterios de selecci´n de clientes. Al hacer
    a                                                      o
crecer el par´metro λ se favorece la inserci´n de clientes entre nodos lejanos; y al
             a                              o
aumentar 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 las
rutas una vez que el algoritmo finaliza su ejecuci´n. Primero se busca reasignar
                                                   o
clientes de modo de disminuir el costo de la soluci´n. Luego, cuando todos los
                                                      o
cambios aumentan el costo, se prosigue realizando intercambios buscando una
soluci´n que utilice menos veh´
      o                         ıculos.

2.2.2     Inserci´n en Paralelo de Christofides, Mingozzi y
                 o
          Toth
El algoritmo propuesto por Christofides, Mingozzi y Toth [24] opera en dos
fases. En la primera fase se determina la cantidad de rutas a utilizar, junto con
un cliente para inicializar cada una de las rutas. En la segunda fase se crean
dichas 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-
                                                                         o
cial para obtener rutas compactas. No se presta especial atenci´n a la ubicaci´n
                                                                   o              o
de los clientes dentro de cada ruta, pues de esta fase solo se conservan los clientes
iniciales 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
                          e
visitados. Se define el costo de insertar el cliente w en la ruta que contiene a
vk como δw,vk = c0w + λcw,vk (si el cliente no puede ser insertado, la funci´n    o
toma el valor ∞) y se asignan clientes a la ruta comenzando por los menores
valores de δ hasta que no haya inserciones factibles, en cuyo caso se crea una
nueva ruta o se termina el algoritmo.

Algoritmo de Christofides, Mingozzi y Toth. Fase 1
Paso 1 (nueva ruta). Hacer k := 1.
Paso 2 (cliente inicial). Seleccionar un cliente no visitado vk para insertar en
la 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 clientes
no 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 los
clientes seleccionados en el paso 2 de la fase 1. Cada cliente no visitado se asocia
con la ruta en la que el costo de insertarlo es minimizado. Luego se selecciona
una ruta cualquiera en la que se insertan los clientes que tiene asociados. Para
decidir 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
                                                                      o
y en la segunda mejor opci´n para ´l. Cuanto mayor es esa diferencia, mayor
                             o        e
es la urgencia por insertar dicho cliente en esta ruta.



                                         15
Algoritmo de Christofides, Mingozzi y Toth. Fase 2
Paso 5 (inicializaci´n). Crear k rutas rt = (0, vt , 0) para t = 1, . . . , k, siendo k
                      o
la 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
                   o
tw = arg mint|rt ∈J δw,vt .
Paso 7 (urgencias). Seleccionar rt ∈ J y hacer J := J  {rt }. Para cada cliente
w tal que tw = t, calcular t′ = arg mint|rt ∈J δw,vt y τw = t′ − tw .
                            w                                 w
Paso 8 (inserci´n). Calcular w∗ = arg maxw|tw =t τw . Insertar w∗ en la ruta rt
                 o
y aplicar el algoritmo 3-opt. Si quedan clientes asociados a rt que pueden ser
insertados, ir a 8.
Paso 9 (finalizaci´n). Si J = φ, ir a 6. Si todos los clientes han sido visitados,
                    o
terminar. Si no, aplicar el algoritmo nuevamente (incluyendo la fase 1) sobre
los clientes no visitados.



2.3      M´todos Asignar Primero - Rutear Despu´s
          e                                    e
Los m´todos asignar primero y rutear despu´s (cluster first - route second )
       e                                          e
proceden en dos fases. Primero se busca generar grupos de clientes, tambi´n     e
llamados clusters, que estar´n en una misma ruta en la soluci´n final. Luego,
                              a                                   o
para 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 la
demanda 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 cantidad
de clientes en el cluster, se puede resolver el forma exacta o aproximada.

2.3.1     Heur´
              ıstica de Barrido o Sweep
En la heur´ ıstica de barrido [25, 26, 27], los clusters se forman girando una
semirrecta con origen en el dep´sito e incorporando los clientes “barridos” por
                                   o
dicha semirrecta hasta que se viole la restricci´n de capacidad. Cada cluster es
                                                 o
luego ruteado resolviendo un TSP de forma exacta o aproximada.
    Este algoritmo puede aplicarse en problemas planos, es decir, en los que cada
nodo 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
                                                                        a
sus coordenadas polares (ρi , θi ) en un sistema que tiene al dep´sito como origen.
                                                                 o

Heur´ ıstica de barrido
Paso 1 (inicializaci´n). Ordenar los clientes seg´n θ de manera creciente. Si
                      o                            u
dos 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                                          u
no, seleccionar el siguiente cliente wi . Si wi puede ser agregado Ck sin violar
las restricciones de capacidad, hacer Ck := Ck ∪ {wi }. Si no, hacer k := k + 1 y
crear un nuevo cluster Ck := {wi }. Ir a 2.
Paso 3 (optimizaci´n). Para cada cluster Ck para t = 1, . . . , k, resolver un TSP
                     o
con sus clientes.




                                          16
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 de
la aplicaci´n de este algoritmo se muestra en la Figura 2.4 donde las l´
           o                                                             ıneas
punteadas 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
                                                                      o
cliente diferente. Se propone adem´s un procedimiento para eliminar clientes de
                                   a
cada ruta finalizada e insertar clientes que a´n no fueron visitados, en el caso
                                             u
que esto disminuya el costo de la ruta. Los clientes eliminados de la ruta ser´n
                                                                              a
barridos por alguna ruta posterior. Utilizando esta variante las rutas pueden
solaparse.

2.3.2     Heur´ıstica de Asignaci´n Generalizada de Fisher y
                                 o
          Jaikumar
Fisher y Jaikumar [28] proponen generar los clusters resolviendo un Problema de
Asignaci´n Generalizada (GAP) sobre los clientes. Primero se fijan K clientes
         o
semilla sk con k = 1, . . . , K sobre la base de los cuales se construir´n los clusters.
                                                                        a
En una segunda fase, se decide qu´ clientes asignar a cada uno de los clusters de
                                      e
modo de no violar la capacidad del veh´     ıculo, resolviendo un GAP que se define
a 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, . . . , K

Las variables xik indican si el cliente i es asignado al cluster k. El objetivo
es minimizar el costo total de la asignaci´n, como se indica en 2.3. La re-
                                             o
stricci´n 2.4 indica que cada cliente es asignado a exactamente un cluster. En
       o
la desigualdad 2.5 se impone que la demanda de los clientes en un mismo cluster
no puede superar la capacidad del veh´  ıculo.


                                                17
El costo de insertar un cliente i en el cluster k se define como el costo de
la mejor inserci´n del cliente i ruta (0, sk , 0), es decir, dik = min{c0i + ci,sk +
                    o
csk ,0 , c0,sk + csk ,i + ci0 } − (c0,sk + csk ,0 ). En el caso de que los costos sean
sim´tricos, dik = c0i + ci,sk − c0,sk .
     e

Heur´ ıstica de Fisher y Jaikumar
Paso 1 (inicializaci´n). Formar K clusters e inicializar cada uno con un cliente
                       o
sk (k = 1, . . . , K).
Paso 2 (asignaci´n). Resolver el Problema de Asignaci´n Generalizada (GAP)
                     o                                   o
para decidir a qu´ cluster es asignado cada cliente.
                     e
Paso 3 (ruteo). Para cada cluster, resolver un TSP con sus clientes.


2.3.3     Heur´
              ıstica de Localizaci´n de Bramel y Simchi-Levi
                                  o
El planteo de Bramel y Simchi-Levi [29] es similar al de Fisher y Jaikumar. En
ambos existe un conjunto de clientes semilla y a cada uno se le asignan algunos
clientes. Sin embargo, en esta propuesta, los clientes semilla son determinados
por el algoritmo resolviendo un Problema de Localizaci´n de Concetradores con
                                                             o
Capacidades (CCLP).
    El CCLP se describe a continuaci´n. Se dispone de m posibles ubicaciones
                                            o
para concentradores de capacidad Qj (j = 1, . . . , m) y n terminales, cada uno
de los cuales utiliza wi (i = 1, . . . , n) de la capacidad del concentrador al que se
conecta. El costo por ubicar un concentrador en la ubicaci´n j es fj y el costo
                                                                  o
de 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                                     e
modo que cada terminal se conecte con exactamente un concentrador, se satisfa-
gan las restricciones de capacidad y se minimicen los costos. Una formulaci´n      o
como 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, . . . , m

Las variables binarias yj indican si se instala un concentrador en el sitio j
y las xij indican si el terminal i se conecta al concentrador j. La funci´n     o
objetivo (2.6) es la suma de los costos fijos por instalaci´n de concentradores
                                                             o
y los costos variables de conexi´n de terminales. La restricci´n 2.7 asegura
                                   o                               o
que todo terminal se conecte a exactamente un concentrador. Finalmente, la
restricci´n 2.8 asegura, por un lado, que si se instala un concentrador en el sitio
         o
j la demanda de los terminales que se le conectan no supera su capacidad y, por
otro lado, que si se decide no colocar un concentrador en j tampoco se conecten
terminales a ese sitio.


                                                    18
El CCLP brinda un marco general para resolver Problemas de Ruteo de
Veh´ıculos, definiendo a las posibles semillas como sitios para ubicar concen-
tradores. Dados m subconjuntos de clientes, T1 , . . . , Tm , el costo de utilizar el
subconjunto Tj en la soluci´n es t(Tj ) (el costo de un TSP ´ptimo sobre los
                              o                                    o
clientes 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
                          a
t(Tj ∪ {i}) − t(Tj ). El problema de decidir qu´ semillas utilizar y qu´ clientes
                                                 e                        e
conectar con qu´ semillas es un CCLP donde los posibles concentradores son las
                  e
posibles semillas, los terminales son los clientes, los costos fijos son los costos
de rutear cada semilla y los costos de conexi´n son los costos de inserci´n de
                                               o                               o
clientes en las semillas.

Heur´  ıstica de Localizaci´n o
Paso 1 (inicializaci´n). Seleccionar m semillas T1 , . . . , Tm . Para cada semilla
                     o
j, calcular fj = t(Tj ) y Qj = Q − k∈Tj qj . Para cada cliente i y cada semilla
j, calcular cij = t(Tj ∪ {i}) − t(Tj ). Definir wi = qi .
            ˆ
Paso 2 (localizaci´n). Resolver un CCLP con las semillas como potenciales
                    o
sitios 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
                           o
seleccionado. 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
                                     a
de inserci´n:
          o

Seed 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
2.4      M´todo Rutear Primero - Asignar Despu´s
          e                                   e
En los m´todos rutear primero - asignar despu´s [30] tambi´n se procede en dos
            e                                           e              e
fases. Primero se calcula una ruta que visita a todos los clientes resolviendo
un TSP. En general esta ruta no respeta las restricciones del problema y se
particiona 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,
                                                 o
se 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 un
grafo dirigido y ac´   ıclico. Para ello, se construye un grafo G = (X, V, W ) donde
X = {0, v1 , . . . , vn }. Los arcos del G conectan todo par de clientes vi y vj
con i < j y tales que la demanda total de los clientes vi+1 , . . . , vj no supera
                                                             j
la 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 a
vn en G representa una posible partici´n de la ruta r en rutas que respetan las
                                         o
restricciones de demanda. Por lo tanto, el camino de costo m´           ınimo entre 0 y vn
representa la partici´n de costo m´
                       o            ınimo de la ruta original en rutas que respetan
la restricci´n de capacidad. Como el grafo es ac´
              o                                      ıclico (s´lo hay arcos (vi , vj ) con
                                                                  o
i < 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 un
problema y su grafo asociado. Si el camino m´s corto de 0 a 4 en el grafo
                                                        a
fuera (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                              o
ice 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 calcule
o
en forma heur´  ısitca, por ejemplo, mediante la aplicaci´n de 2-opt sobre una ruta
                                                          o
aleatoria como en el trabajo original. El algoritmo puede ejecutarse repetidas
veces, partiendo de diferentes rutas iniciales.
    Seg´n la definici´n original, w(vi , vj ) es el costo de la ruta que comienza en
        u              o
vi+1 , sigue el orden de la ruta original y termina en vj . Esta definici´n puede
                                                                           o
modificarse permitiendo variar el orden de los clientes vi+1 , . . . , vj de modo de


                                                20
obtener una ruta mejor. En el art´  ıculo original se aplica el algoritmo 2-opt sobre
la ruta (0, vi+1 , . . . , vj , 0).


2.5      Algoritmos de P´talos
                        e
Supongamos que se dispone de un conjunto de rutas R, de modo que cada
ruta 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 visite
exactamente una vez a cada cliente puede formularse como un Set Partitioning
Problem (SPP):

                 min           ck xk
                         k∈R

                  s.a.         aik xk = 1             ∀i ∈ V  {0}
                         k∈R
                         xk ∈ {0, 1}                  ∀k ∈ S
donde aik vale 1 si el cliente i es visitado por la ruta rk y 0 si no y donde ck es
el costo de la ruta rk . La variable xk indica si la ruta rk es seleccionada o no
en 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. Como
la cantidad de rutas factibles es, en el caso general, exponencial en la cantidad
de clientes, se suele generar solamente un subconjunto de formado por “buenas”
rutas.
    Cada columna del SPP representa una ruta de R. Cuando en toda columna
los ceros aparecen de forma consecutiva, el problema verifica la propiedad de
Columnas Circulares y el SPP correspondiente puede ser resuelto en tiempo
polinomial [32]. Trasladada al problema la propiedad establece que, para de-
terminado ordenamiento de los clientes del problema, el conjunto de clientes
visitado por cada ruta forma un intervalo (que en algunos casos tiene forma
de p´talo). Cuando las rutas se generan con el Algoritmo de Barrido verifican
      e
la propiedad de Columnas Circulares. Diversas t´cnicas han sido propuestas
                                                      e
para generar “buenos” conjuntos de rutas que verifiquen la propiedad llamadas
1-p´talos [33, 34] y 2-p´talos [35].
    e                    e


2.6      Procedimientos de B´ squeda Local
                            u
Una vez que se tiene una soluci´n para el problema, se puede intentar mejorarla
                                o
mediante alg´n procedimiento de b´squeda local. Para cada soluci´n s se define
              u                     u                              o
un conjunto de soluciones vecinas N (s). Un procedimiento de B´squeda Local
                                                                  u
parte de una soluci´n s, la reemplaza por una soluci´n s∗ ∈ N (s) de menor
                     o                                  o
costo y repite el procedimiento hasta que la soluci´n no pueda ser mejorada. Al
                                                   o
terminar, se obtiene una soluci´n localmente ´ptima respecto a la definici´n de la
                               o             o                           o
vecindad. Para obtener s∗ puede buscarse la mejor soluci´n de N (s) (estrategia
                                                          o
best improvement) o simplemente tomar la primera soluci´n de N (s) que mejore
                                                          o
el 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
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´  ıan
luego de la aplicaci´n del operador, lo que var´ es el orden en que se realizan
                    o                           ıa
las visitas. En las movidas multi-ruta, adem´s de cambios en el orden de las
                                               a
visitas suele modificarse el conjunto de clientes visitados en cada ruta.

2.6.1      El operador λ-intercambio
Uno 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                                                                       o
se 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
                               u
una 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
                                 o
de reconectar la ruta (incluyendo la reconexi´n que vuelve a generar la misma
                                                     o
ruta). 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         o
caso.
     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 movidas
invierten el orden de algunas visitas. Asumiendo que las movidas no afectan la
factibilidad y que los costos son sim´tricos, puede buscarse movidas que mejoren
                                         e
el costo de una ruta sin necesidad de explorar todas las posibilidades [36]. Si
no se cumplieran dichos supuestos, buscar λ-intercambios tendr´ un costo com-
                                                                           ıa
putacional m´s elevado debido a la necesidad de incorporar chequeos de factibil-
                 a
idad y re-calcular algunos costos.
     Renaud, Boctor y Laporte [37] propusieron una versi´n reducida de 4-opt
                                                                    o
llamada 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    a
del 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 el
de menor costo entre (v1 , vk+1 ) y (vu , vk+1 ) y se reconecta la ruta agregando
tres arcos m´s. De esta manera se asegura que al menos uno de los arcos agre-
                a
gados tiene menor costo que alguno de los arcos eliminados. Como siempre se
agrega el arco de menor costo entre (v1 , vk+1 ) y (vu , vk+1 ), los segmentos que se
debe reconectar son tres y no cuatro. Por lo tanto la cantidad de alternativas
para la reconexi´n es 8 y no 48 como en el 4-opt original. En la Figura 2.9
                     o
se muestra todas las posibles maneras de reconectar una ruta, en el caso que
cv1 ,vk+1 ≤ cvu ,vk+1 ; las l´
                             ıneas punteadas representan caminos y las l´        ıneas llenas
representan arcos.
     En el mismo trabajo, se propone buscar movidas que mejoren la soluci´n                  o
partiendo de u = 1 e increment´ndolo en 1 cada vez que no se encuentren
                                       a
mejoras, hasta que u = w. Cuando eso ocurre, se vuelve a comenzar con u = 1
hasta realizar una ronda completa de b´squedas infructuosas, en cuyo caso se
                                              u
dice que la soluci´n es 4-´ptima∗ . Chequear si una soluci´n es 4-´ptima∗ requiere
                     o       o                                  o         o
un tiempo O(wn2 ), por lo tanto utilizando valores de w que sean peque˜os en            n
comparaci´n con n se obtiene un algoritmo con tiempo de ejecuci´n O(n2 ).
              o                                                                o



                                              22
Figura 2.7: El unico 2-intercambio posible para los arcos marcados
                       ´




       Figura 2.8: Todos los 3-intercambios posibles para los arcos marcados


             v0
vk+2

             v1
vk+1

             vu

  vk
             vu+1




Figura 2.9: Todos los 4-intercambios∗ posibles para los arcos marcados si
cv1 ,vk+1 ≤ cvu ,vk+1 .




                                        23
2.6.2      El algoritmo de Lin-Kernigham
Un 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 de
intercambiar un conjunto de arcos por otro, pero determinando dichos conjuntos
(y su cardinalidad) din´micamente durante la ejecuci´n del algoritmo. Dada una
                         a                                      o
ruta, 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
                                                                      o
ser parte de la ruta, ambos conjuntos deben ser disjuntos y, adem´s, eliminar   a
los 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 deo
este 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 se
obtendr´ una ruta cerrada (esto asegura que el proceso pueda finalizarse obte-
             ıa
niendo una soluci´n factible) . Como v2i−1 fue determinado al seleccionar yi−1
                    o
y xi debe ser un arco de la ruta, existen dos opciones para v2i (el anterior a
v2i−1 en la ruta y el siguiente a ´l), pero solo una de estas cerrar´ la ruta a ser
                                   e                                         ıa
unida con v1 . De modo que xi queda determinado por yi−1 .
     Para seleccionar yi = (v2i , v2i+1 ) debe cumplirse yi ∈ {x1 , . . . , xi } para
                                                                        /
                                           i
que los conjuntos sean disjuntos, j=1 cxj − cyj > 0 para que el intercambio
no empeore la soluci´n y, adem´s, debe poder elegirse el siguiente xi+1 . Si
                       o             a
no 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        e
trar un intercambio. El procedimiento se repite hasta terminar en un ´ptimo         o
local, 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.
                                      o



2.6.3      El operador Or-opt
Una versi´n reducida del algoritmo 3-opt es el algoritmo Or-opt [39], que consiste
          o
en eliminar una secuencia de k clientes consecutivos de la ruta y colocarlos en
otra posici´n de la ruta, de modo que permanezcan consecutivos y en el mismo
            o
orden. Primero se realizan las movidas con k = 3, luego con k = 2 y finalmente
con k = 1. En la Figura 2.11 se muestra una ruta y todas las posibles maneras
de reubicar los 3 primeros clientes a la manera de Or-opt. Si una ruta visita n
clientes existen O(n2 ) de estas movidas.



                                             24
Figura 2.11: Movidas para reubicar los 3 primeros clientes de una ruta.



2.6.4         Operadores de Van Breedam
Van Breedam [40] propuso dos operadores para intercambiar clientes entre un
par de rutas. En el operador String Relocation, una secuencia de m nodos es
transferida de una ruta a la otra manteniendo el orden en la ruta original. En
operador String Exchange una ruta env´ una secuencia de m clientes a la otra
                                        ıa
y esta ultima env´ otra secuencia de n clientes a la primera. Simb´licamente se
       ´         ıa                                                o
denota 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) se
ilustra una movida SE (2, 1).




        (a)                  (b)                           (c)                     (d)


              Figura 2.12: Movidas String Relocation y String Exchange.



2.6.5         GENI y GENIUS
Las inserciones generalizadas [41] (GENI, por GENeralized Insertions) surgen
dentro de un m´todo de soluci´n del TSP y tienen como principal caracter´
                    e               o                                                       ıstica
que la inserci´n de un cliente en una ruta no necesariamente ocurre entre dos
                 o
nodos adyacentes. Si vk es un nodo de la ruta, denotamos vk+1 a su sucesor y
vk−1 a su predecesor. Se desea insertar un nodo v entre los nodos vi y vj (no
necesariamente consecutivos).
     En una inserci´n de Tipo I, se considera un nodo vk en el camino de vj a
                       o
vi (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 ).
                       a
Una 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
                         o
de modo que vk = vj y vk = vj+1 y adem´s vl en el camino de vi a vj tal que
                                                     a
vl = vi y vl = vi+1 . La inserci´n consiste, como se muestra en la Figura 2.14, en
                                   o
eliminar los arcos (vi , vi+1 ), (vl−1 , vl ), (vj , vj+1 ) y (vk−1 , vk ), y agregar los arcos


                                              25
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos
Heurísticas para problemas de ruteo de vehículos

Contenu connexe

Tendances

Problema del agente viajero (TSP)
Problema del agente viajero (TSP)Problema del agente viajero (TSP)
Problema del agente viajero (TSP)Juan Jose Durango
 
Ova Ejercicio Cadenas De Markov
Ova Ejercicio Cadenas De MarkovOva Ejercicio Cadenas De Markov
Ova Ejercicio Cadenas De Markovwilliam
 
Programacion Lineal Entera
Programacion Lineal EnteraProgramacion Lineal Entera
Programacion Lineal EnteraRoger Rodríguez
 
solucionario-investigacion-de-operaciones-9na-edicion
solucionario-investigacion-de-operaciones-9na-edicionsolucionario-investigacion-de-operaciones-9na-edicion
solucionario-investigacion-de-operaciones-9na-edicionNestor Elias Muñoz Abanto
 
Ejemplo practica colas
Ejemplo practica colasEjemplo practica colas
Ejemplo practica colasESTEBAN VILLCA
 
Mcdonalds us vs thailand
Mcdonalds us vs thailandMcdonalds us vs thailand
Mcdonalds us vs thailandnawaabkhan
 
Unidad 4-generacion-de-numeros-pseudoaleatorios1
Unidad 4-generacion-de-numeros-pseudoaleatorios1Unidad 4-generacion-de-numeros-pseudoaleatorios1
Unidad 4-generacion-de-numeros-pseudoaleatorios1Juan Carlos Martinez Garcia
 
Ejercicios de cadenas de markov discretos
Ejercicios de cadenas de markov discretosEjercicios de cadenas de markov discretos
Ejercicios de cadenas de markov discretosingverdu
 
Segura 2013 -- juegos de suma cero - v1
Segura   2013 -- juegos de suma cero - v1Segura   2013 -- juegos de suma cero - v1
Segura 2013 -- juegos de suma cero - v1Juan Segura
 
MANUAL CALCULADORA CASIO Fx 9860-SD
MANUAL CALCULADORA CASIO Fx 9860-SDMANUAL CALCULADORA CASIO Fx 9860-SD
MANUAL CALCULADORA CASIO Fx 9860-SDJohanBarajas45
 
Metodos Numericos LINDO GLP TEORIA DE DECISIONES OPTIMIZACION DE REDES
Metodos Numericos LINDO GLP TEORIA DE DECISIONES OPTIMIZACION DE REDESMetodos Numericos LINDO GLP TEORIA DE DECISIONES OPTIMIZACION DE REDES
Metodos Numericos LINDO GLP TEORIA DE DECISIONES OPTIMIZACION DE REDESHéctor Antonio Barba Nanfuñay
 
Ejercicios resueltos io 1 parte 1
Ejercicios resueltos io 1   parte 1Ejercicios resueltos io 1   parte 1
Ejercicios resueltos io 1 parte 1fzeus
 

Tendances (20)

Problema del agente viajero (TSP)
Problema del agente viajero (TSP)Problema del agente viajero (TSP)
Problema del agente viajero (TSP)
 
Matriz transicion
Matriz transicionMatriz transicion
Matriz transicion
 
Simulacion Mc
Simulacion McSimulacion Mc
Simulacion Mc
 
Problemas de colas con varios servidores
Problemas de colas con varios servidoresProblemas de colas con varios servidores
Problemas de colas con varios servidores
 
Prekršajno pravo
Prekršajno pravo Prekršajno pravo
Prekršajno pravo
 
Ova Ejercicio Cadenas De Markov
Ova Ejercicio Cadenas De MarkovOva Ejercicio Cadenas De Markov
Ova Ejercicio Cadenas De Markov
 
Presentación ale
Presentación alePresentación ale
Presentación ale
 
Programacion Lineal Entera
Programacion Lineal EnteraProgramacion Lineal Entera
Programacion Lineal Entera
 
solucionario-investigacion-de-operaciones-9na-edicion
solucionario-investigacion-de-operaciones-9na-edicionsolucionario-investigacion-de-operaciones-9na-edicion
solucionario-investigacion-de-operaciones-9na-edicion
 
Ejemplo practica colas
Ejemplo practica colasEjemplo practica colas
Ejemplo practica colas
 
Mcdonalds us vs thailand
Mcdonalds us vs thailandMcdonalds us vs thailand
Mcdonalds us vs thailand
 
Expo 2 método dual simplex
Expo 2   método dual simplexExpo 2   método dual simplex
Expo 2 método dual simplex
 
Tabla fisher
Tabla fisherTabla fisher
Tabla fisher
 
Unidad 4-generacion-de-numeros-pseudoaleatorios1
Unidad 4-generacion-de-numeros-pseudoaleatorios1Unidad 4-generacion-de-numeros-pseudoaleatorios1
Unidad 4-generacion-de-numeros-pseudoaleatorios1
 
Ejercicios de cadenas de markov discretos
Ejercicios de cadenas de markov discretosEjercicios de cadenas de markov discretos
Ejercicios de cadenas de markov discretos
 
Pronósticos
PronósticosPronósticos
Pronósticos
 
Segura 2013 -- juegos de suma cero - v1
Segura   2013 -- juegos de suma cero - v1Segura   2013 -- juegos de suma cero - v1
Segura 2013 -- juegos de suma cero - v1
 
MANUAL CALCULADORA CASIO Fx 9860-SD
MANUAL CALCULADORA CASIO Fx 9860-SDMANUAL CALCULADORA CASIO Fx 9860-SD
MANUAL CALCULADORA CASIO Fx 9860-SD
 
Metodos Numericos LINDO GLP TEORIA DE DECISIONES OPTIMIZACION DE REDES
Metodos Numericos LINDO GLP TEORIA DE DECISIONES OPTIMIZACION DE REDESMetodos Numericos LINDO GLP TEORIA DE DECISIONES OPTIMIZACION DE REDES
Metodos Numericos LINDO GLP TEORIA DE DECISIONES OPTIMIZACION DE REDES
 
Ejercicios resueltos io 1 parte 1
Ejercicios resueltos io 1   parte 1Ejercicios resueltos io 1   parte 1
Ejercicios resueltos io 1 parte 1
 

En vedette

Presentación shakespeare
Presentación shakespearePresentación shakespeare
Presentación shakespearejclua1234
 
Pasos para resolver la ejercución presupuestaria
Pasos para resolver la ejercución presupuestariaPasos para resolver la ejercución presupuestaria
Pasos para resolver la ejercución presupuestariaJosué Zapeta
 
Huerto escolar 2013
Huerto escolar 2013Huerto escolar 2013
Huerto escolar 2013JOSE LUIS
 
Lírica y Narrativa en los Siglos de Oro 3
Lírica y Narrativa en los Siglos de Oro 3Lírica y Narrativa en los Siglos de Oro 3
Lírica y Narrativa en los Siglos de Oro 3juanacua
 
Mandela poda y palomo
Mandela poda y palomoMandela poda y palomo
Mandela poda y palomopilar
 
Sigloxxpinturaexpresionismoabstractoamericano
SigloxxpinturaexpresionismoabstractoamericanoSigloxxpinturaexpresionismoabstractoamericano
SigloxxpinturaexpresionismoabstractoamericanoJOHN BONILLA
 
1 sebrae delaware_peru
1 sebrae delaware_peru1 sebrae delaware_peru
1 sebrae delaware_peruAdrian Rodas
 
Certificado de sellos digital
Certificado de sellos digitalCertificado de sellos digital
Certificado de sellos digitalGeformas
 
PALMA REAL
PALMA  REALPALMA  REAL
PALMA REALhusi
 
No. 2 ejercicios de ley de timbres
No. 2 ejercicios de ley de timbresNo. 2 ejercicios de ley de timbres
No. 2 ejercicios de ley de timbresJosué Zapeta
 
Diaguitas
DiaguitasDiaguitas
DiaguitasEscuela
 
Calidad en el servicio total v2
Calidad en el servicio total v2Calidad en el servicio total v2
Calidad en el servicio total v2Lia de Falquez
 
Talleresecolo 120331124123-phpapp02
Talleresecolo 120331124123-phpapp02Talleresecolo 120331124123-phpapp02
Talleresecolo 120331124123-phpapp02JOSE LUIS
 
Obj 4.4 capa 1 - colisiones
Obj 4.4   capa 1 - colisionesObj 4.4   capa 1 - colisiones
Obj 4.4 capa 1 - colisionesPedro Sánchez
 
Entrega: Energía Eólica
Entrega: Energía EólicaEntrega: Energía Eólica
Entrega: Energía Eólicamarcos
 
Sigloxxarquitecturaorganicista
SigloxxarquitecturaorganicistaSigloxxarquitecturaorganicista
SigloxxarquitecturaorganicistaJOHN BONILLA
 
Apadrinamiento lector
Apadrinamiento lectorApadrinamiento lector
Apadrinamiento lectorJesús
 

En vedette (20)

Presentación shakespeare
Presentación shakespearePresentación shakespeare
Presentación shakespeare
 
Pasos para resolver la ejercución presupuestaria
Pasos para resolver la ejercución presupuestariaPasos para resolver la ejercución presupuestaria
Pasos para resolver la ejercución presupuestaria
 
Huerto escolar 2013
Huerto escolar 2013Huerto escolar 2013
Huerto escolar 2013
 
Lírica y Narrativa en los Siglos de Oro 3
Lírica y Narrativa en los Siglos de Oro 3Lírica y Narrativa en los Siglos de Oro 3
Lírica y Narrativa en los Siglos de Oro 3
 
Mandela poda y palomo
Mandela poda y palomoMandela poda y palomo
Mandela poda y palomo
 
Sigloxxpinturaexpresionismoabstractoamericano
SigloxxpinturaexpresionismoabstractoamericanoSigloxxpinturaexpresionismoabstractoamericano
Sigloxxpinturaexpresionismoabstractoamericano
 
1 sebrae delaware_peru
1 sebrae delaware_peru1 sebrae delaware_peru
1 sebrae delaware_peru
 
Certificado de sellos digital
Certificado de sellos digitalCertificado de sellos digital
Certificado de sellos digital
 
PALMA REAL
PALMA  REALPALMA  REAL
PALMA REAL
 
No. 2 ejercicios de ley de timbres
No. 2 ejercicios de ley de timbresNo. 2 ejercicios de ley de timbres
No. 2 ejercicios de ley de timbres
 
Garbanzos
GarbanzosGarbanzos
Garbanzos
 
Diaguitas
DiaguitasDiaguitas
Diaguitas
 
Calidad en el servicio total v2
Calidad en el servicio total v2Calidad en el servicio total v2
Calidad en el servicio total v2
 
Enero 2012
Enero 2012Enero 2012
Enero 2012
 
Talleresecolo 120331124123-phpapp02
Talleresecolo 120331124123-phpapp02Talleresecolo 120331124123-phpapp02
Talleresecolo 120331124123-phpapp02
 
Variables y condiciones del 6D
Variables y condiciones del 6DVariables y condiciones del 6D
Variables y condiciones del 6D
 
Obj 4.4 capa 1 - colisiones
Obj 4.4   capa 1 - colisionesObj 4.4   capa 1 - colisiones
Obj 4.4 capa 1 - colisiones
 
Entrega: Energía Eólica
Entrega: Energía EólicaEntrega: Energía Eólica
Entrega: Energía Eólica
 
Sigloxxarquitecturaorganicista
SigloxxarquitecturaorganicistaSigloxxarquitecturaorganicista
Sigloxxarquitecturaorganicista
 
Apadrinamiento lector
Apadrinamiento lectorApadrinamiento lector
Apadrinamiento lector
 

Similaire à Heurísticas para problemas de ruteo de vehículos

Similaire à Heurísticas para problemas de ruteo de vehículos (20)

Intr a la matematica discreta
Intr a la matematica discretaIntr a la matematica discreta
Intr a la matematica discreta
 
Rarepaso
RarepasoRarepaso
Rarepaso
 
Rarepaso
RarepasoRarepaso
Rarepaso
 
M´etodos num´ericos
M´etodos num´ericosM´etodos num´ericos
M´etodos num´ericos
 
Curso logica digital unam
Curso logica digital unamCurso logica digital unam
Curso logica digital unam
 
Algoritmos y estructura_de_datos
Algoritmos y estructura_de_datosAlgoritmos y estructura_de_datos
Algoritmos y estructura_de_datos
 
Algoritmos y estructura_de_datos
Algoritmos y estructura_de_datosAlgoritmos y estructura_de_datos
Algoritmos y estructura_de_datos
 
Apuntes termo
Apuntes termoApuntes termo
Apuntes termo
 
Fundamentos de-calculo
Fundamentos de-calculoFundamentos de-calculo
Fundamentos de-calculo
 
Vba excel mnumericos1
Vba excel mnumericos1Vba excel mnumericos1
Vba excel mnumericos1
 
Vba excel mnumericos
Vba excel mnumericosVba excel mnumericos
Vba excel mnumericos
 
Vba excel numericos
Vba excel numericosVba excel numericos
Vba excel numericos
 
investigacion operativa
investigacion operativainvestigacion operativa
investigacion operativa
 
Teoriapto
TeoriaptoTeoriapto
Teoriapto
 
Matematicas
MatematicasMatematicas
Matematicas
 
GUIA UCV
GUIA UCVGUIA UCV
GUIA UCV
 
Guia de mate
Guia de mateGuia de mate
Guia de mate
 
Teoria de la medida
Teoria de la medidaTeoria de la medida
Teoria de la medida
 
Econometria aplicada con gretl
Econometria aplicada con gretlEconometria aplicada con gretl
Econometria aplicada con gretl
 
Teoriapto
TeoriaptoTeoriapto
Teoriapto
 

Plus de Jimmy Gilberto Davila Velez (11)

Sistemas de inventario
Sistemas de inventarioSistemas de inventario
Sistemas de inventario
 
Sistemas de inventario
Sistemas de inventarioSistemas de inventario
Sistemas de inventario
 
Distribucion normal completo
Distribucion normal completoDistribucion normal completo
Distribucion normal completo
 
Ruteo
RuteoRuteo
Ruteo
 
Bibliografia recomendada
Bibliografia recomendadaBibliografia recomendada
Bibliografia recomendada
 
Estado Del Arte Supply Chain
Estado Del Arte Supply ChainEstado Del Arte Supply Chain
Estado Del Arte Supply Chain
 
Transporte
TransporteTransporte
Transporte
 
Logistica Distribucion
Logistica DistribucionLogistica Distribucion
Logistica Distribucion
 
Modeling Supply Chain
Modeling Supply ChainModeling Supply Chain
Modeling Supply Chain
 
El Problema Del Transporte
El Problema Del TransporteEl Problema Del Transporte
El Problema Del Transporte
 
Presentación Web 2 0
Presentación Web 2 0Presentación Web 2 0
Presentación Web 2 0
 

Heurísticas para problemas de ruteo de vehículos

  • 1. Heur´ ısticas para Problemas de Ruteo de Veh´ ıculos Alfredo Olivera Instituto de Computaci´n, Facultad de Ingenier´ o ıa, Universidad de la Rep´blica, Montevideo, Uruguay. u aolivera@fing.edu.uy Agosto 2004
  • 2. Resumen Desde la primera formulaci´n de los Problemas de Ruteo de Veh´ o ıculos, una gran cantidad de m´todos han sido propuestos para su resoluci´n. Estos m´todos e o e incluyen tanto algoritmos exactos como heur´ ısticas. En este trabajo se presenta un relevamiento de algunas de las heur´ısticas que han sido m´s significativas. a Palabras clave: Ruteo de Veh´ ıculos, Heur´ısticas, Optimizaci´n Combinatoria. o
  • 3. Indice 1 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 . . . . . 9 2 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 . . . . . . . . . . . . . . . . . . . . 27 3 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 34 4 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 1 Problemas de Ruteo de Veh´ ıculos 1.1 Introducci´n o El problema de distribuir productos desde ciertos dep´sitos a sus usuarios finales o juega un papel central en la gesti´n de algunos sistemas log´ o ısticos y su adecuada planificaci´n puede significar considerables ahorros. Esos potenciales ahorros o justifican en gran medida la utilizaci´n de t´cnicas de Investigaci´n Operativa o e o como facilitadoras de la planificaci´n, dado que se estima que los costos del o transporte 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 ´ e por resolver estos problemas. En 1959, Dantzig y Ramser [2] realizaron por primera vez una formulaci´n del problema para una aplicaci´n de distribuci´n o o o de combustible. Cinco a˜os m´s tarde, Clarke y Wright [3] propusieron el n a primer algoritmo que result´ efectivo para su resoluci´n: el popular Algoritmo o o de Ahorros. A partir de estos trabajos, el ´rea de Ruteo de Veh´ a ıculos ha crecido de manera explosiva. Por un lado, hacia modelos que incorporen cada vez m´s a caracter´ısticas de la realidad, y, por otro lado, en la b´squeda de algoritmos que u permitan resolver los problemas de manera eficiente. Estos modelos y algoritmos deben su ´xito, en buena parte, a la evoluci´n e o de los sistemas inform´ticos. El crecimiento en el poder de c´mputo y la baja a o en sus costos, ha permitido disminuir los tiempos de ejecuci´n de los algoritmos. o Por otro lado, el desarrollo de los Sistemas de Informaci´n Geogr´fica resulta o a fundamental para lograr una adecuada interacci´n de los modelos y algoritmos o con 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 a mas de Ruteo de Veh´ ıculos son Problemas de Optimizaci´n Combinatoria y o pertenecen, en su mayor´ a la clase N P -Hard. La motivaci´n acad´mica por ıa, o e resolverlos 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 Problemas A 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 en los dep´sitos, para que los veh´ o ıculos visiten a los clientes. Las caracter´ ısticas de los 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 Clientes Cada 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 es usual que un mismo veh´ ıculo no pueda satisfacer la demanda de todos los clientes en una misma ruta. Un caso equivalente al anterior ocurre cuando los clientes son proveedores y lo que se desea es recoger la mercader´ y transportarla hacia ıa el dep´sito. Tambi´n podr´ ocurrir que la mercader´ deba ser transportada a o e ıa ıa los clientes pero no est´ inicialmente en el dep´sito, sino distribu´ en ciertos e o ıda sitios proveedores. En este caso, los proveedores deben ser visitados antes que los 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 cliente tiene 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 alojar simult´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 en momentos diferentes y por veh´ ıculos diferentes. Los clientes podr´ tener restricciones relativas su horario de servicio. Usual- ıan mente estas restricciones se expresan en forma de intervalos de tiempo (llamados ventanas de tiempo) en los que se puede arribar al cliente. En problemas con varios veh´ ıculos diferentes podr´ existir restricciones de ıa compatibilidad entre ´stos y los clientes. En estos casos, cada cliente s´lo puede e o ser visitado por algunos de los veh´ ıculos (por ejemplo, algunos veh´ ıculos muy pesados no pueden ingresar en ciertas localidades). 1.2.2 Los Dep´sitos o Tanto los veh´ ıculos como las mercader´ a distribuir (si las hubiera) suelen ıas estar ubicadas en dep´sitos. Usualmente se exige que cada ruta comience y o finalice en un mismo dep´sito, aunque este podr´ no ser el caso en algunas o ıa aplicaciones (por ejemplo, podr´ ser que el viaje debiera finalizar en el domicilio ıa del conductor del veh´ ıculo). En los problemas con m´ltiples dep´sitos cada uno de estos tiene diferentes u o caracter´ ısticas, por ejemplo, su ubicaci´n y capacidad m´xima de producci´n. o a o Podr´ ocurrir que cada dep´sito tenga una flota de veh´ ıa o ıculos asignada a priori o 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 ıan asociadas. 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 invertido en su limpieza al regresar. Incluso, por limitaciones de los propios dep´sitos, o podr´ querer evitarse que demasiados veh´ ıa ıculos est´n operando en un mismo e dep´sito a la vez (es decir, la congesti´n del dep´sito). o o o 1.2.3 Los Veh´ ıculos La capacidad de un veh´ ıculo podr´ tener varias dimensiones, como por ejem- ıa plo peso y volumen. Cuando en un mismo problema existen diferentes mer- cader´ los veh´ ıas, ıculos podr´ tener compartimentos, de modo que la capacidad ıan del veh´ıculo dependa de la mercader´ de que se trate. En general, cada veh´ ıa ıculo tiene asociado un costo fijo en el que se incurre al utilizarlo y un costo variable proporcional a la distancia que recorra. Los problemas en que los atributos (capacidad, costo, etc.) son los mismos para todos los veh´ ıculos se denominan de flota homog´nea, y, si hay diferencias, e de flota heterog´nea. La cantidad de veh´ e ıculos disponibles podr´ ser un dato ıa de entrada o una variable de decisi´n. El objetivo mas usual suele ser utilizar o la menor cantidad de veh´ ıculos y minimizar la distancia recorrida ocupa un segundo lugar. Regulaciones legales podr´ imponer restricciones sobre el tiempo m´ximo ıan a que un veh´ ıculo puede estar en circulaci´n e incluso prohibir el pasaje de ciertos o veh´ıculos por ciertas zonas. En algunos casos se desea que la cantidad de trabajo realizado 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 de planificaci´n, pero ultimamente se han estudiado modelos en los que un mismo o ´ veh´ıculo puede recorrer m´s de una ruta. a 1.3 Formulaci´n Matem´tica o a En esta secci´n se formulan algunos de los problemas cl´sicos y sus extensiones o a como problemas de Programaci´n Entera. Dichas formulaciones se dan por o completitud y para evitar ambig¨edad en la definici´n, pero no se reportan en u o este trabajo m´todos exactos de resoluci´n. e o La red de transporte por la que circulan los veh´ıculos se modela mediante un grafo ponderado G = (V, E, C). Los nodos del grafo representan a los clientes y dep´sitos. En problemas con un dep´sito y n clientes, el nodo 0 representa o o al dep´sito y los nodos 1, . . . , n a los clientes. En algunos casos (en que se o explicitar´) se agrega una copia del dep´sito etiquetada con n+1 para simplificar a o la formulaci´n. o Cada arco (i, j) ∈ E representa el mejor camino para ir desde el nodo i hacia el nodo j en la red de transporte y tiene asociado un costo cij y un tiempo de viaje tij . Seg´n la estructura de los costos y los tiempos y las caracter´ u ısticas de la red, el grafo puede ser sim´trico o asim´trico. Puede suponerse que G es e e completo, 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 o modelos ser´n planteados sin realizar dicha hip´tesis. a o Denotaremos por ∆+ (i) y ∆− (i) al conjunto de nodos adyacentes e incidentes al 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 interior del 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) se dispone de un solo veh´ ıculo que debe visitar a todos los clientes en una sola ruta y a costo m´ ınimo. No suele haber un dep´sito (y si lo hubiera no se distingue de o los clientes), no hay demanda asociada a los clientes y tampoco hay restricciones temporales. 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) ∈ E Esta formulaci´n fue propuesta por Dantzig, Fulkerson y Johnson [4]. Las vari- o ables binarias xij indican si el arco (i, j) es utilizado en la soluci´n. La funci´n o o objetivo (1.1) establece que el costo total de la soluci´n es la suma de los cos- o tos de los arcos utilizados. Las restricciones 1.2 y 1.3 indican que la ruta debe llegar 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 o todo subconjunto de nodos S debe ser abandonado al menos una vez. Notar que si no se impusieran estas restricciones la soluci´n podr´ constar de m´s de o ıa a un ciclo, como se muestra en la Figura 1.1. Esta soluci´n viola la restricci´n 1.4 o o para S = {0, 1, 2}. Existen diferentes tipos de restricciones de eliminaci´n deo sub-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 ) o de variables binarias y O(2n ) restricciones. El problema puede formularse con una cantidad polinomial de restricciones, agregando variables reales ui para i = 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 fuerzan a 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´se que i). Bajo la hip´tesis de que |E| = O(n2 ), en esta nueva formulaci´n hay o o O(n2 ) variables binarias, O(n) variables positivas y O(n2 ) restricciones. Sin embargo, esta formulaci´n no resulta apta para la resoluci´n de problemas de o o tama˜o considerable mediante m´todos exactos, pues si bien se disminuye la n e cantidad de restricciones, la cota que se obtiene resolviendo su relajaci´n lineal o resulta 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 e de veh´ ıculos m´s simple. No obstante, pertenece a la clase de problemas N P - a Hard [6] y es uno de los Problemas de Optimizaci´n Combinatoria m´s cl´sico o a a y 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 o TSP en la cual se tiene un dep´sito y m veh´ o ıculos. El objetivo es construir exactamente m rutas, una para cada veh´ ıculo, de modo que cada cliente sea visitado una vez por uno de los veh´ ıculos. Cada ruta debe comenzar y finalizar en el dep´sito y puede contener a lo sumo p clientes. Una formulaci´n, dada o o por 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 o y 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 no haya m´s de p clientes. a En el caso que p = n (es decir, cuando la cantidad de clientes por ruta no est´ acotada) el m-TSP puede formularse como un TSP con m copias del a dep´sito tales que la distancia entre ellas es infinita. Las soluciones a ese TSP o no utilizar´n arcos que conectan dos copias del dep´sito y por lo tanto, pueden a o ser 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 o asociada una demanda di 1 y cada veh´ ıculo tiene una capacidad C (la flota es homog´nea). En este problema la cantidad de rutas no es fijada de antemano e como en el TSP y en el m-TSP. Para un conjunto de clientes S, d(S) = i∈S di es su demanda total y r(S) indica la m´ ınima cantidad de veh´ ıculos necesarios servirlos a todos. En la formulaci´n conocida con el nombre de flujo de veh´ o ıculos de dos ´ındices, se utilizan las variables binarias xij para determinar si el arco (i, j) se utiliza o no en 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) ∈ E La funci´n objetivo (1.9) es el costo total de la soluci´n. Las restricciones 1.10 o o y 1.11 indican que m es la cantidad de veh´ ıculos utilizados en la soluci´n y o que todos los veh´ıculos que parten del dep´sito deben regresar. Las restric- o ciones 1.12 y 1.13 aseguran que todo cliente es un nodo intermedio de alguna ruta. Finalmente, la restricci´n 1.14 act´a como restricci´n de eliminaci´n de o u o o sub-tours y a la vez impone que la demanda total de los clientes visitados por un 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 (por ejemplo, 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 a cuando 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 o ruta puede tener largo mayor que cierta cota L. Dicha restricci´n no puede o incorporarse 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 o que no tiene cota superior, es decir, se asume que la disponibilidad de veh´ ıculos es ilimitada. Si se tuviera un flota finita se podr´ agregar una cota superior ıa para m o directamente fijar su valor. Notar que est´ impl´ a ıcito que cada veh´ıculo puede recorrer a lo sumo una ruta. 1.3.4 El Problema con Flota Heterog´nea (FSMVRP) e En los problemas con flota heterog´nea los costos y capacidades de los veh´ e ıculos var´ ı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 costos y tiempos de viaje para cada tipo de veh´ ıculo son ck y tk respectivamente. Se ij ij asume que los ´ ındices de los veh´ıculos est´n ordenados en forma creciente por a capacidad (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 ∈ V Las variables binarias xk indican si el arco (i, j) es utilizado por el veh´ ij ıculo k y las variables ri positivas indican la carga acumulada en la ruta correspondiente hasta el nodo i (inclusive). La funci´n objetivo (1.15) mide el costo total de o la soluci´n incluyendo costos fijos y variables. Las restricciones 1.16 establecen o que todo cliente debe ser visitado por alg´n veh´ u ıculo. En 1.17 se indica que si un veh´ıculo de tipo k visita al nodo i, entonces un veh´ıculo del mismo tipo debe abandonarlo. 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 o de los veh´ıculos se impone en 1.20. En esta formulaci´n se asume que la cantidad de veh´ o ıculos de cada tipo es ilimitada. El problema correspondiente se denomina Fleet Size and Mix Vehicle Routing Problem (o FSMVRP). No solo se debe decidir las rutas, sino la composici´n de la flota de veh´ o ıculos a utilizar. Usualmente, al tratar con problemas de flota heterog´nea, se opta por utilizar este modelo a´n cuando en e u algunos casos no refleja la realidad. Si la cantidad de veh´ ıculos disponibles de cada tipo k fuera vk , conocida de antemano, 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} a tiene asociada una ventana de tiempo [ei , li ] que establece un horario de servicio permitido para que un veh´ ıculo arribe a ´l y un tiempo de servicio o demora si . e Si (i, j) es un arco de la soluci´n y ti y tj son las horas de arribo a los clientes i o y j, las ventanas de tiempo implican que necesariamente debe cumplirse ti ≤ li y tj ≤ lj . Por otro lado, si ti < ei , entonces el veh´ ıculo deber´ esperar hasta a que 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 o para representar a los veh´ ıculos (no a los tipos de veh´ıculos como en la secci´n o anterior), 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 k variables yi indican la hora de arribo al cliente i cuando es visitado por el veh´ ıculo k (si el cliente no es visitado por dicho veh´ ıculo el valor de la variable no 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- o stricciones 1.23 y 1.24 determinan que cada veh´ ıculo k ∈ K recorre un camino de 0 a n + 1. La capacidad de cada veh´ ıculo es impuesta en 1.25. Siendo M una constante lo suficientemente grande, la restricci´n 1.26 asegura que si un o veh´ıculo k viaja de i a j, no puede llegar a j antes que yi + si + tk , y act´an ij u adem´s como restricciones de elimianci´n de sub-tours. Finalmente, los l´ a o ımites de las ventanas de tiempo son impuestos en 1.27. 1.4 M´todos Exactos e Dada la complejidad de los problemas, solo las instancias con pocos clientes (hasta 50 aproximadamente) pueden ser resueltas consistentemente por m´todos e exactos. En este tipo de metodolog´ ıas, suele resolverse alguna relajaci´n del o problema y utilizarse un esquema de ramificaci´n y acotamiento al estilo del o m´todo Branch and Bound [10]. Tambi´n se han propuesto algoritmos basados e e en Programaci´n Din´mica que aceleran los c´lculos mediante una relajaci´n del o a a o espacio de estados. Por otro lado, hay diversas implementaciones del m´todo e de Generaci´n de Columnas, que han resultado especialmente efectivas para o problemas con ventanas de tiempo muy ajustados. Por un completo compendio de m´todos exactos para Problemas de Ruteo de Veh´ e ıculos, puede consultarse los trabajos de Laporte y Norbert [11] y de Laporte [12]. 9
  • 14. Cap´ ıtulo 2 Heur´ ısticas Cl´sicas para el a VRP En este cap´ıtulo se presentan algunas de las heur´ ısticas cl´sicas m´s significa- a a tivas para el VRP con capacidades y, en algunos casos, la restricci´n sobre el o largo m´ximo de cada ruta. Estas heur´ a ısticas son procedimientos simples que realizan una exploraci´n limitada del espacio de b´squeda y dan soluciones de o u calidad aceptable en tiempos de c´lculo generalmente moderados. Las soluciones a obtenidas con esta clase de procedimientos pueden, en general, ser mejoradas utilizando m´todos de b´squeda m´s sofisticados, pero incurriendo en elevados e u a tiempos de ejecuci´n. Muchas de estas heur´ o ısticas pueden ser extendidas para manejar restricciones adicionales a las del VRP. 2.1 El Algoritmo de Ahorros Uno de los algoritmos m´s difundidos para el VRP es el Algoritmo de Ahorros a de 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 dicha uni´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 a el arco (i, j). En este algoritmo se parte de una soluci´n inicial y se realizan o las 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- o tas simult´neamente, y otra secuencial que construye las rutas de a una por vez. a Algoritmo de Ahorros (Versi´n paralela) o Paso 1 (inicializaci´n). Para cada cliente i construir la ruta (0, i, 0). o Paso 2 (c´lculo de ahorros). Calcular sij para cada par de clientes i y j. a Paso 3 (mejor uni´n). Sea si∗ j ∗ = max sij , donde el m´ximo se toma entre los o a ahorros que no han sido considerados a´n. Sean ri∗ y rj ∗ las rutas que contienen u a 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. o Eliminar si∗ j ∗ de futuras consideraciones. Si quedan ahorros por examinar ir a 3, si no terminar. Algoritmo de Ahorros (Versi´n secuencial) o Paso 1 (inicializaci´n). Para cada cliente i construir la ruta (0, i, 0). o Paso 2 (c´lculo de ahorros). Calcular sij para cada par de clientes i y j. a Paso 3 (selecci´n). Si todas las rutas fueron consideradas, terminar. Si no, o seleccionar una ruta que a´n no haya sido considerada. u Paso 4 (extensi´n). Sea (0, i, . . . , j, 0) la ruta actual. Si no existe ning´n ahorro o u conteniendo 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 ´ o de 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 o clientes i y j, todos los ahorros pueden calcularse una sola vez al comienzo de la ejecuci´n del algoritmo. En la versi´n secuencial, podr´ calcularse los ahorros o o ıa a medida que son necesarios. Si el m´ximo ahorro es negativo, la combinaci´n de las rutas aumentar´ la a o a distancia recorrida pero disminuir´ la cantidad de rutas de la soluci´n (y por lo a o tanto la cantidad de veh´ ıculos utilizados). Dependiendo de las particularidades de 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- o arse algunas rutas circulares (ver Figura 2.2) lo cual puede ser negativo. Para solucionar este problema algunos autores [13, 14, 15] proponen redefinir el ahorro como 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 a lizarse tambi´n para generar un conjunto de soluciones diferentes mediante la e ejecuci´n repetida del algoritmo con diferentes valores de λ. o En general ocurre que al comienzo de la ejecuci´n del algoritmo dos alter- o nativas pueden parecer equivalentes y, sin embargo, la elecci´n tiene un gran o impacto en la soluci´n final. Las soluciones obtenidas con el Algoritmo de Ahor- o ros pueden, en general, ser mejoradas mediante operadores de b´squeda local u como 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 Matching Cuando en el Algoritmo de Ahorros se decide unir dos rutas ri y rj , se est´ a descartando otras uniones posibles en las que participan ri o rj (porque i y j dejan de ser extremos en la nueva ruta). La uni´n que da el m´ximo ahorro o a podr´ 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. a En el Algoritmo de Ahorros Basado en Matching se decide la union a realizar considerando como afecta ´sta a las posibles uniones en iteraciones siguientes. e Para esto, se considera un grafo que tiene a todas las rutas como nodos y un arco 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 o de peso m´ximo1 sobre dicho grafo da un conjunto de combinaciones a realizar a que es globalmente bueno. Algoritmo de Ahorros Basado en Matching Paso 1 (inicializaci´n). Para cada cliente i construir la ruta (0, i, 0). o Paso 2 (c´lculo de los ahorros). Actualizar spq para cada par de rutas p y q a que pueda ser combinado manteniendo la factibilidad. Si ning´n par de rutas u puede ser combinado, terminar. Paso 3 (matching). Resolver un problema de matching de peso m´ximo sobre a un grafo cuyos nodos son las rutas de la soluci´n actual y en el cual hay un arco o entre las rutas p y q con peso spq si su combinaci´n es factible. o Paso 4 (uniones). Dado el matching de peso m´ximo, combinar todo par de a rutas 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 a polinomial en la cantidad de nodos del grafo [17]. Pero, por un lado, el grafo tiene tantos nodos como rutas haya en la soluci´n (inicialmente hay n2 rutas) o y, por otro lado, se halla un nuevo matching en cada iteraci´n. Entonces, para o problemas 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 o de asociado y la nueva soluci´n inducida por el Matching de Peso M´ximo que o a es {(1, 3), (4, 5)}. El ahorro total es de 17. Supongamos que el veh´ ıculo no tiene capacidad para satisfacer la demanda de ninguna combinaci´n de tres de o las 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 u Peso 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 un ahorro 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 una al final de la otra como en el Algoritmo de Ahorros original, sino todas las posibilidades de armar una nueva ruta con los clientes de ambas. Entonces, si Sp y Sq son los conjuntos de clientes de las rutas p y q, el ahorro por combinarlas se define como spq = t(Sp ) + t(Sq ) − t(Sp ∪ Sq ), donde t(S) indica el costo de una soluci´n ´ptima para el TSP sobre el conjunto de clientes S. Con esta definici´n o o o no solo se hace costoso el c´lculo de los ahorros, sino que adem´s ´stos deben a a e ser re-calculados en cada nueva iteraci´n. Cuando la cantidad de clientes en o cada 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 a participa en m´s de una uni´n (porque los arcos correspondientes forman un a o matching en el grafo). Sin embargo, podr´ ser ventajoso que la ruta resul- ıa tante de una uni´n sea inmediatamente unida con otra. Resulta conveniente, o entonces, no realizar todas las uniones dadas por el matching de peso m´ximo, a sino solamente algunas. Una opci´n es combinar s´lo las rutas que correspon- o o dan al arco de mayor peso del matching [18]. Otra alternativa para realizar las uniones de manera m´s gradual es conectar los nodos del grafo sobre el que a se 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 forma usual (2.1 o 2.2) o puede modificarse para privilegiar las uniones que est´n e lejos de ser infactibles (por ejemplo, si la ruta resultante est´ lejos de colmar la a capacidad del veh´ ıculo o lejos de la m´xima distancia permitida). Cuando no a hay m´s combinaciones de rutas que sea factibles, algunas rutas son divididas a probabil´ısticamente, lo que permite proseguir la b´squeda de soluciones. u 2.2 Heur´ ısticas de Inserci´n o Las heur´ ısticas de inserci´n son m´todos constructivos en los cuales se crea o e una soluci´n mediante sucesivas inserciones de clientes en las rutas. En cada o iteraci´n se tiene una soluci´n parcial cuyas rutas s´lo visitan un subconjunto de o o o los 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 o paralelo surgen para remediar esta deficiencia, permitiendo insertar un cliente en cualquiera de las rutas de la soluci´n. Esta distinci´n es similar a la hecha o o para 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 o VRP 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 o el trabajo de Bodin et al. [23]. En esta secci´n nos ocuparemos de aquellas o dise˜adas expl´ n ıcitamente para el VRP. 2.2.1 Inserci´n Secuencial de Mole & Jameson o En esta heur´ ıstica [21] se utilizan dos medidas para decidir el pr´ximo cliente o a insertar en la soluci´n parcial. Por un lado, para cada cliente no visitado o se calcula la mejor posici´n para ubicarlo en la ruta actual teniendo en cuenta o solamente las distancias y sin reordenar los nodos que ya est´n en la ruta. Se a tiene una ruta (v0 , v1 , . . . , vt , vt+1 ) donde v0 = vt+1 = 0. Si w es un cliente no visitado, 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,...,t Si se utilizara solamente la medida c1 para decidir el pr´ximo cliente a insertar, o es probable que los clientes lejanos al dep´sito no sean tenidos en cuenta sino o hasta las iteraciones finales del algoritmo, es decir, cuando sean las unicas alter- ´ nativas factibles. Por lo tanto, es necesario utilizar un incentivo adicional para la inserci´n de clientes lejanos al dep´sito. Se define c2 (vi , w) = µc0w − c1 (vi , w) o o para cada cliente w. En cada iteraci´n se busca el cliente que maximiza la me- o dida c2 (llamada medida de urgencia) y se lo inserta en la posici´n dada por el o m´ınimo valor de c1 . Adem´s de las medidas anteriores, debe considerarse la factibilidad de las a inserciones. Cuando ninguna inserci´n es factible y si a´n quedan clientes sin o u visitar, se selecciona un cliente para comenzar una nueva ruta. El algoritmo es el siguiente. Algoritmo de Mole & Jameson Paso 1 (creaci´n de una ruta). Si todos los clientes pertenecen a alguna ruta, o terminar. 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 o cada cliente no visitado w, calcular i(w) = arg mini=0,...,t c1 (vi , w). Si no hay inserciones factibles, ir al paso 1. Calcular w∗ = arg maxw c2 (vi(w) , w). Insertar w∗ 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 a alternativas, por ejemplo, el m´s lejano al dep´sito. El algoritmo utiliza dos a o par´metros λ y µ para modificar sus criterios de selecci´n de clientes. Al hacer a o crecer el par´metro λ se favorece la inserci´n de clientes entre nodos lejanos; y al a o aumentar 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 las rutas una vez que el algoritmo finaliza su ejecuci´n. Primero se busca reasignar o clientes de modo de disminuir el costo de la soluci´n. Luego, cuando todos los o cambios aumentan el costo, se prosigue realizando intercambios buscando una soluci´n que utilice menos veh´ o ıculos. 2.2.2 Inserci´n en Paralelo de Christofides, Mingozzi y o Toth El algoritmo propuesto por Christofides, Mingozzi y Toth [24] opera en dos fases. En la primera fase se determina la cantidad de rutas a utilizar, junto con un cliente para inicializar cada una de las rutas. En la segunda fase se crean dichas 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- o cial para obtener rutas compactas. No se presta especial atenci´n a la ubicaci´n o o de los clientes dentro de cada ruta, pues de esta fase solo se conservan los clientes iniciales 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 e visitados. Se define el costo de insertar el cliente w en la ruta que contiene a vk como δw,vk = c0w + λcw,vk (si el cliente no puede ser insertado, la funci´n o toma el valor ∞) y se asignan clientes a la ruta comenzando por los menores valores de δ hasta que no haya inserciones factibles, en cuyo caso se crea una nueva ruta o se termina el algoritmo. Algoritmo de Christofides, Mingozzi y Toth. Fase 1 Paso 1 (nueva ruta). Hacer k := 1. Paso 2 (cliente inicial). Seleccionar un cliente no visitado vk para insertar en la 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 clientes no 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 los clientes seleccionados en el paso 2 de la fase 1. Cada cliente no visitado se asocia con la ruta en la que el costo de insertarlo es minimizado. Luego se selecciona una ruta cualquiera en la que se insertan los clientes que tiene asociados. Para decidir 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 o y en la segunda mejor opci´n para ´l. Cuanto mayor es esa diferencia, mayor o e es la urgencia por insertar dicho cliente en esta ruta. 15
  • 20. Algoritmo de Christofides, Mingozzi y Toth. Fase 2 Paso 5 (inicializaci´n). Crear k rutas rt = (0, vt , 0) para t = 1, . . . , k, siendo k o la 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 o tw = arg mint|rt ∈J δw,vt . Paso 7 (urgencias). Seleccionar rt ∈ J y hacer J := J {rt }. Para cada cliente w tal que tw = t, calcular t′ = arg mint|rt ∈J δw,vt y τw = t′ − tw . w w Paso 8 (inserci´n). Calcular w∗ = arg maxw|tw =t τw . Insertar w∗ en la ruta rt o y aplicar el algoritmo 3-opt. Si quedan clientes asociados a rt que pueden ser insertados, ir a 8. Paso 9 (finalizaci´n). Si J = φ, ir a 6. Si todos los clientes han sido visitados, o terminar. Si no, aplicar el algoritmo nuevamente (incluyendo la fase 1) sobre los clientes no visitados. 2.3 M´todos Asignar Primero - Rutear Despu´s e e Los m´todos asignar primero y rutear despu´s (cluster first - route second ) e e proceden en dos fases. Primero se busca generar grupos de clientes, tambi´n e llamados clusters, que estar´n en una misma ruta en la soluci´n final. Luego, a o para 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 la demanda 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 cantidad de clientes en el cluster, se puede resolver el forma exacta o aproximada. 2.3.1 Heur´ ıstica de Barrido o Sweep En la heur´ ıstica de barrido [25, 26, 27], los clusters se forman girando una semirrecta con origen en el dep´sito e incorporando los clientes “barridos” por o dicha semirrecta hasta que se viole la restricci´n de capacidad. Cada cluster es o luego ruteado resolviendo un TSP de forma exacta o aproximada. Este algoritmo puede aplicarse en problemas planos, es decir, en los que cada nodo 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 a sus coordenadas polares (ρi , θi ) en un sistema que tiene al dep´sito como origen. o Heur´ ıstica de barrido Paso 1 (inicializaci´n). Ordenar los clientes seg´n θ de manera creciente. Si o u dos 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 u no, seleccionar el siguiente cliente wi . Si wi puede ser agregado Ck sin violar las restricciones de capacidad, hacer Ck := Ck ∪ {wi }. Si no, hacer k := k + 1 y crear un nuevo cluster Ck := {wi }. Ir a 2. Paso 3 (optimizaci´n). Para cada cluster Ck para t = 1, . . . , k, resolver un TSP o con 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 de la aplicaci´n de este algoritmo se muestra en la Figura 2.4 donde las l´ o ıneas punteadas 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 o cliente diferente. Se propone adem´s un procedimiento para eliminar clientes de a cada ruta finalizada e insertar clientes que a´n no fueron visitados, en el caso u que esto disminuya el costo de la ruta. Los clientes eliminados de la ruta ser´n a barridos por alguna ruta posterior. Utilizando esta variante las rutas pueden solaparse. 2.3.2 Heur´ıstica de Asignaci´n Generalizada de Fisher y o Jaikumar Fisher y Jaikumar [28] proponen generar los clusters resolviendo un Problema de Asignaci´n Generalizada (GAP) sobre los clientes. Primero se fijan K clientes o semilla sk con k = 1, . . . , K sobre la base de los cuales se construir´n los clusters. a En una segunda fase, se decide qu´ clientes asignar a cada uno de los clusters de e modo de no violar la capacidad del veh´ ıculo, resolviendo un GAP que se define a 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, . . . , K Las variables xik indican si el cliente i es asignado al cluster k. El objetivo es minimizar el costo total de la asignaci´n, como se indica en 2.3. La re- o stricci´n 2.4 indica que cada cliente es asignado a exactamente un cluster. En o la desigualdad 2.5 se impone que la demanda de los clientes en un mismo cluster no 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 de la mejor inserci´n del cliente i ruta (0, sk , 0), es decir, dik = min{c0i + ci,sk + o csk ,0 , c0,sk + csk ,i + ci0 } − (c0,sk + csk ,0 ). En el caso de que los costos sean sim´tricos, dik = c0i + ci,sk − c0,sk . e Heur´ ıstica de Fisher y Jaikumar Paso 1 (inicializaci´n). Formar K clusters e inicializar cada uno con un cliente o sk (k = 1, . . . , K). Paso 2 (asignaci´n). Resolver el Problema de Asignaci´n Generalizada (GAP) o o para decidir a qu´ cluster es asignado cada cliente. e Paso 3 (ruteo). Para cada cluster, resolver un TSP con sus clientes. 2.3.3 Heur´ ıstica de Localizaci´n de Bramel y Simchi-Levi o El planteo de Bramel y Simchi-Levi [29] es similar al de Fisher y Jaikumar. En ambos existe un conjunto de clientes semilla y a cada uno se le asignan algunos clientes. Sin embargo, en esta propuesta, los clientes semilla son determinados por el algoritmo resolviendo un Problema de Localizaci´n de Concetradores con o Capacidades (CCLP). El CCLP se describe a continuaci´n. Se dispone de m posibles ubicaciones o para concentradores de capacidad Qj (j = 1, . . . , m) y n terminales, cada uno de los cuales utiliza wi (i = 1, . . . , n) de la capacidad del concentrador al que se conecta. El costo por ubicar un concentrador en la ubicaci´n j es fj y el costo o de 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 e modo que cada terminal se conecte con exactamente un concentrador, se satisfa- gan las restricciones de capacidad y se minimicen los costos. Una formulaci´n o como 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, . . . , m Las variables binarias yj indican si se instala un concentrador en el sitio j y las xij indican si el terminal i se conecta al concentrador j. La funci´n o objetivo (2.6) es la suma de los costos fijos por instalaci´n de concentradores o y los costos variables de conexi´n de terminales. La restricci´n 2.7 asegura o o que todo terminal se conecte a exactamente un concentrador. Finalmente, la restricci´n 2.8 asegura, por un lado, que si se instala un concentrador en el sitio o j la demanda de los terminales que se le conectan no supera su capacidad y, por otro lado, que si se decide no colocar un concentrador en j tampoco se conecten terminales a ese sitio. 18
  • 23. El CCLP brinda un marco general para resolver Problemas de Ruteo de Veh´ıculos, definiendo a las posibles semillas como sitios para ubicar concen- tradores. Dados m subconjuntos de clientes, T1 , . . . , Tm , el costo de utilizar el subconjunto Tj en la soluci´n es t(Tj ) (el costo de un TSP ´ptimo sobre los o o clientes 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 a t(Tj ∪ {i}) − t(Tj ). El problema de decidir qu´ semillas utilizar y qu´ clientes e e conectar con qu´ semillas es un CCLP donde los posibles concentradores son las e posibles semillas, los terminales son los clientes, los costos fijos son los costos de rutear cada semilla y los costos de conexi´n son los costos de inserci´n de o o clientes en las semillas. Heur´ ıstica de Localizaci´n o Paso 1 (inicializaci´n). Seleccionar m semillas T1 , . . . , Tm . Para cada semilla o j, calcular fj = t(Tj ) y Qj = Q − k∈Tj qj . Para cada cliente i y cada semilla j, calcular cij = t(Tj ∪ {i}) − t(Tj ). Definir wi = qi . ˆ Paso 2 (localizaci´n). Resolver un CCLP con las semillas como potenciales o sitios 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 o seleccionado. 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 a de inserci´n: o Seed 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 e En los m´todos rutear primero - asignar despu´s [30] tambi´n se procede en dos e e e fases. Primero se calcula una ruta que visita a todos los clientes resolviendo un TSP. En general esta ruta no respeta las restricciones del problema y se particiona 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, o se 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 un grafo dirigido y ac´ ıclico. Para ello, se construye un grafo G = (X, V, W ) donde X = {0, v1 , . . . , vn }. Los arcos del G conectan todo par de clientes vi y vj con i < j y tales que la demanda total de los clientes vi+1 , . . . , vj no supera j la 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 a vn en G representa una posible partici´n de la ruta r en rutas que respetan las o restricciones de demanda. Por lo tanto, el camino de costo m´ ınimo entre 0 y vn representa la partici´n de costo m´ o ınimo de la ruta original en rutas que respetan la restricci´n de capacidad. Como el grafo es ac´ o ıclico (s´lo hay arcos (vi , vj ) con o i < 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 un problema y su grafo asociado. Si el camino m´s corto de 0 a 4 en el grafo a fuera (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 o ice 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 calcule o en forma heur´ ısitca, por ejemplo, mediante la aplicaci´n de 2-opt sobre una ruta o aleatoria como en el trabajo original. El algoritmo puede ejecutarse repetidas veces, partiendo de diferentes rutas iniciales. Seg´n la definici´n original, w(vi , vj ) es el costo de la ruta que comienza en u o vi+1 , sigue el orden de la ruta original y termina en vj . Esta definici´n puede o modificarse 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 sobre la ruta (0, vi+1 , . . . , vj , 0). 2.5 Algoritmos de P´talos e Supongamos que se dispone de un conjunto de rutas R, de modo que cada ruta 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 visite exactamente una vez a cada cliente puede formularse como un Set Partitioning Problem (SPP): min ck xk k∈R s.a. aik xk = 1 ∀i ∈ V {0} k∈R xk ∈ {0, 1} ∀k ∈ S donde aik vale 1 si el cliente i es visitado por la ruta rk y 0 si no y donde ck es el costo de la ruta rk . La variable xk indica si la ruta rk es seleccionada o no en 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. Como la cantidad de rutas factibles es, en el caso general, exponencial en la cantidad de clientes, se suele generar solamente un subconjunto de formado por “buenas” rutas. Cada columna del SPP representa una ruta de R. Cuando en toda columna los ceros aparecen de forma consecutiva, el problema verifica la propiedad de Columnas Circulares y el SPP correspondiente puede ser resuelto en tiempo polinomial [32]. Trasladada al problema la propiedad establece que, para de- terminado ordenamiento de los clientes del problema, el conjunto de clientes visitado por cada ruta forma un intervalo (que en algunos casos tiene forma de p´talo). Cuando las rutas se generan con el Algoritmo de Barrido verifican e la propiedad de Columnas Circulares. Diversas t´cnicas han sido propuestas e para generar “buenos” conjuntos de rutas que verifiquen la propiedad llamadas 1-p´talos [33, 34] y 2-p´talos [35]. e e 2.6 Procedimientos de B´ squeda Local u Una vez que se tiene una soluci´n para el problema, se puede intentar mejorarla o mediante alg´n procedimiento de b´squeda local. Para cada soluci´n s se define u u o un conjunto de soluciones vecinas N (s). Un procedimiento de B´squeda Local u parte de una soluci´n s, la reemplaza por una soluci´n s∗ ∈ N (s) de menor o o costo y repite el procedimiento hasta que la soluci´n no pueda ser mejorada. Al o terminar, se obtiene una soluci´n localmente ´ptima respecto a la definici´n de la o o o vecindad. Para obtener s∗ puede buscarse la mejor soluci´n de N (s) (estrategia o best improvement) o simplemente tomar la primera soluci´n de N (s) que mejore o el 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´ ıan luego de la aplicaci´n del operador, lo que var´ es el orden en que se realizan o ıa las visitas. En las movidas multi-ruta, adem´s de cambios en el orden de las a visitas suele modificarse el conjunto de clientes visitados en cada ruta. 2.6.1 El operador λ-intercambio Uno 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 o se 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 u una 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 o de reconectar la ruta (incluyendo la reconexi´n que vuelve a generar la misma o ruta). 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 o caso. 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 movidas invierten el orden de algunas visitas. Asumiendo que las movidas no afectan la factibilidad y que los costos son sim´tricos, puede buscarse movidas que mejoren e el costo de una ruta sin necesidad de explorar todas las posibilidades [36]. Si no se cumplieran dichos supuestos, buscar λ-intercambios tendr´ un costo com- ıa putacional m´s elevado debido a la necesidad de incorporar chequeos de factibil- a idad y re-calcular algunos costos. Renaud, Boctor y Laporte [37] propusieron una versi´n reducida de 4-opt o llamada 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 a del 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 el de menor costo entre (v1 , vk+1 ) y (vu , vk+1 ) y se reconecta la ruta agregando tres arcos m´s. De esta manera se asegura que al menos uno de los arcos agre- a gados tiene menor costo que alguno de los arcos eliminados. Como siempre se agrega el arco de menor costo entre (v1 , vk+1 ) y (vu , vk+1 ), los segmentos que se debe reconectar son tres y no cuatro. Por lo tanto la cantidad de alternativas para la reconexi´n es 8 y no 48 como en el 4-opt original. En la Figura 2.9 o se muestra todas las posibles maneras de reconectar una ruta, en el caso que cv1 ,vk+1 ≤ cvu ,vk+1 ; las l´ ıneas punteadas representan caminos y las l´ ıneas llenas representan arcos. En el mismo trabajo, se propone buscar movidas que mejoren la soluci´n o partiendo de u = 1 e increment´ndolo en 1 cada vez que no se encuentren a mejoras, hasta que u = w. Cuando eso ocurre, se vuelve a comenzar con u = 1 hasta realizar una ronda completa de b´squedas infructuosas, en cuyo caso se u dice que la soluci´n es 4-´ptima∗ . Chequear si una soluci´n es 4-´ptima∗ requiere o o o o un tiempo O(wn2 ), por lo tanto utilizando valores de w que sean peque˜os en n comparaci´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 v0 vk+2 v1 vk+1 vu vk vu+1 Figura 2.9: Todos los 4-intercambios∗ posibles para los arcos marcados si cv1 ,vk+1 ≤ cvu ,vk+1 . 23
  • 28. 2.6.2 El algoritmo de Lin-Kernigham Un 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 de intercambiar un conjunto de arcos por otro, pero determinando dichos conjuntos (y su cardinalidad) din´micamente durante la ejecuci´n del algoritmo. Dada una a o ruta, 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 o ser parte de la ruta, ambos conjuntos deben ser disjuntos y, adem´s, eliminar a los 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 deo este 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 se obtendr´ una ruta cerrada (esto asegura que el proceso pueda finalizarse obte- ıa niendo una soluci´n factible) . Como v2i−1 fue determinado al seleccionar yi−1 o y xi debe ser un arco de la ruta, existen dos opciones para v2i (el anterior a v2i−1 en la ruta y el siguiente a ´l), pero solo una de estas cerrar´ la ruta a ser e ıa unida con v1 . De modo que xi queda determinado por yi−1 . Para seleccionar yi = (v2i , v2i+1 ) debe cumplirse yi ∈ {x1 , . . . , xi } para / i que los conjuntos sean disjuntos, j=1 cxj − cyj > 0 para que el intercambio no empeore la soluci´n y, adem´s, debe poder elegirse el siguiente xi+1 . Si o a no 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 e trar un intercambio. El procedimiento se repite hasta terminar en un ´ptimo o local, 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. o 2.6.3 El operador Or-opt Una versi´n reducida del algoritmo 3-opt es el algoritmo Or-opt [39], que consiste o en eliminar una secuencia de k clientes consecutivos de la ruta y colocarlos en otra posici´n de la ruta, de modo que permanezcan consecutivos y en el mismo o orden. Primero se realizan las movidas con k = 3, luego con k = 2 y finalmente con k = 1. En la Figura 2.11 se muestra una ruta y todas las posibles maneras de reubicar los 3 primeros clientes a la manera de Or-opt. Si una ruta visita n clientes 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 Breedam Van Breedam [40] propuso dos operadores para intercambiar clientes entre un par de rutas. En el operador String Relocation, una secuencia de m nodos es transferida de una ruta a la otra manteniendo el orden en la ruta original. En operador String Exchange una ruta env´ una secuencia de m clientes a la otra ıa y esta ultima env´ otra secuencia de n clientes a la primera. Simb´licamente se ´ ıa o denota 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) se ilustra una movida SE (2, 1). (a) (b) (c) (d) Figura 2.12: Movidas String Relocation y String Exchange. 2.6.5 GENI y GENIUS Las inserciones generalizadas [41] (GENI, por GENeralized Insertions) surgen dentro de un m´todo de soluci´n del TSP y tienen como principal caracter´ e o ıstica que la inserci´n de un cliente en una ruta no necesariamente ocurre entre dos o nodos adyacentes. Si vk es un nodo de la ruta, denotamos vk+1 a su sucesor y vk−1 a su predecesor. Se desea insertar un nodo v entre los nodos vi y vj (no necesariamente consecutivos). En una inserci´n de Tipo I, se considera un nodo vk en el camino de vj a o vi (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 ). a Una 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 o de modo que vk = vj y vk = vj+1 y adem´s vl en el camino de vi a vj tal que a vl = vi y vl = vi+1 . La inserci´n consiste, como se muestra en la Figura 2.14, en o eliminar los arcos (vi , vi+1 ), (vl−1 , vl ), (vj , vj+1 ) y (vk−1 , vk ), y agregar los arcos 25