¨ ´ Q UESTII O, vol 21, 1 i 2, p.

153-175, 1997

´ HEURISTICO PARA LOS PROBLEMAS DE RUTAS CON CARGA Y DESCARGA EN SISTEMAS LIFO
JOAQU´ A. PACHECO IN E.U.E. Empresariales de Burgos En este trabajo se propone un algoritmo heur´stico para el «Problema de ı Carga y Descarga (PDP) con un solo veh´culo sin restricciones de capaı cidad en sistemas de descarga LIFO», —es decir, en cada momento s´ lo o se puede descargar la ultima mercanc´a que ha entrado en el veh´culo de ı ı ´ entre todas las que se encuentran en el—. Este algoritmo es una exten´ si´ n y adaptaci´ n del m´ todo de Or para el Problema del Viajante (TSP) o o e que sirve tambi´ n para matrices asim´ tricas. Con este heur´stico se cone e ı siguen resolver problemas de gran tama˜ o en un tiempo de computaci´ n n o razonable en ordenadores personales, con una desviaci´ n del optimo muy o ´ peque˜ a. n

Heuristic for the pick-up and delivery routing problems in lifo unloading systems

Keywords: Carga y descarga con sistema LIFO; intercambios de Or; chequeo de factibilidad.

* Joaqu´n A. Pacheco. Dpto. Matem´ ticas. E.U.E. Empresariales de Burgos. Fco. Vitoria s/n. 09006 ı a Burgos. – Article rebut el marc de 1995. ¸ – Acceptat el juliol de 1996.

153

´ 1. INTRODUCCION El Problema de Carga y Descarga (PDP) puede ser descrito de la forma siguiente: Sea un conjunto de clientes N = f2; 3; : : : ; ng; cada cliente r requiere que le sea transportada una mercanc´a desde un origen r+ a un destino r? . Para ello se dispone ı de m veh´culos que parten de una ciudad inicial 1, a la que regresan al final del ı trayecto. Se trata de dise˜ ar rutas de veh´culos con distancia total a recorrer m´nima. n ı ı Se va a denotar N + = fr+ =r = 2; : : : ; ng, el conjunto de puntos de carga y N ? = fr?=r = 2; : : : ; ng, el conjunto de puntos de descarga, y q(r), r = 2; : : : ; n, la mercanc´ıa de cada cliente r. Al caso especial en el que las demandas requeridas son todas iguales se le denomina el Dial-A-Ride-Problem (DARP), que tiene lugar en el transporte de viajeros, transporte escolar, etc. El PDP y el PDP con Ventanas de Tiempo (PDPTW) son problemas de rutas muy estudiados, especialmente a partir de la segunda mitad de la d´ cada de los ochenta. e Un repaso a los principales m´ todos de soluci´ n a estos problemas, tanto exactos e o como heur´sticos, se puede encontrar en el trabajo de Pacheco, (1994). ı Entre los algoritmos exactos destacan inicialmente el de Kalantari y otros, (1985), para el PDP con un solo veh´culo sin restricciones de capacidad, que proponen una ı serie de modificaciones en el algoritmo de Little y otros, (1963), para el TSP, con el fin de impedir la selecci´ n de arcos incompatibles con las relaciones de precedencia o o a origen-destino (r+ anterior a r? ); Psaraftis, (1983), usa programaci´ n din´ mica para resolver el DARP con Ventanas de Tiempo (DARPTW) con un solo veh´culo. Los ı estados son de la forma ( j; k2 ; : : : ; kn ), donde j es el v´ rtice actualmente visitado, y e cada ki puede tener tres valores diferentes, que indican el estatus de la mercanc´a ı de cada cliente: ?1, no ha sido cargada; 0, ha sido cargada pero no descargada; y +1, ha sido descargada; Desrosiers y otros, (1986), adaptan este algoritmo de 2n estados, a PDPTW con un solo veh´culo. Dumas, (1985), y Desrosiers y otros, (1987), ı presentan un algoritmo para el PDPTW plante´ ndolo como un problema de Partici´ n a o de Conjuntos y adaptando las t´ cnicas de soluci´ n de este. e o ´ En cuanto a los algoritmos heur´sticos Jaw y otros, (1986), describen un algoritmo ı de inserci´ n para una variante del DARPTW. El uso de las t´ cnicas descritas en el o e p´ rrafo anterior tambi´ n pueden usarse como subrutinas en otras t´ cnicas heur´sticas a e e ı para problemas con varios veh´culos, como en el caso de las del tipo Cluster 1o ?Ruta ı 2a . Ejemplos de este tipo de aproximaciones los tenemos en los trabajos de Desrochers y otros, (1991). Ahora bien, consid´ rese en el planteamiento del PDP con un veh´culo la siguiente e ı restricci´ n: En cada momento s´ lo puede ser descargado la ultima mercanc´a que ha o o ´ ı sido cargada, de entre las que se encuentren en el veh´culo. Este problema, que se ı va a denominar como PDP con un veh´culo con sistema de descarga LIFO (´ ltimo en ı u

154

y Golden y otros. La ventaja de este m´ todo es que el n´ mero de operaciones que se realiza es de θ(m2 ). en la secci´ n 6 se chequea la eficacia de este algoritmo a partir de la resoluci´ n de una o o 155 .entrar primero en salir). en la secci´ n 3 se estudian las a o condiciones para que un 3-intercambio. Sin embargo. en la secci´ n 5 se describe el algoritmo o —desarrollado a partir de los resultados descritos en los apartados anteriores—. introducir una serie de modificaciones que den lugar a un algoritmo exacto para el problema anterior. (1976). el problema tal como se ha definido en el p´ rrafo anterior. a o (1994). Adaptaciones de este algoritmo al TSP con ventanas de tiempo (TSPTW) se pueden encontrar en el trabajo de Salomon y otros. En estos se propone una estrategia para desarrollar ´ algoritmos exactos a este problema. s´ lo tiene referencias en los trabajos de Pacheco. Goetschalkx y otros. En el caso del algoritmo de Or se toma r = 3 y se e reduce la b´ squeda de los 3-intercambios a aquellos que supongan una recolocaci´ n u o de cadenas de 1. (1988). el n a tiempo de computaci´ n en ordenadores personales deja de ser razonable. (1991). en o la secci´ n 4 se estudian las situaciones posibles dependiendo de los elementos que o componen la cadena que se quiere recolocar. principalmente el VRPB. (1985). consistente en. en aquellas actividades de reparto en las o que se quiere un tiempo controlado para la descarga y se contempla la situaci´ n de o la mercanc´a en el veh´culo. aparece en muchas situaciones en el mundo del Transporte y la Industria: transporte de determinados gases industriales. Deif y otros. desvi´ ndose del optimo s´ lo en un n o a ´ o peque˜ o n´ mero de casos y en una cantidad m´nima. (Vehicle Routing o ı Problem with Backhauls). y Pacheco y otros. El trabajo se estructura de la siguiente forma: en la secci´ n 2 se explica la o idea b´ sica del algoritmo que se quiere desarrollar. cuando se o utilizan estos algoritmos u otros algoritmos exactos (como los basados en m´ todos de e programaci´ n din´ mica). (siendo m el n´ mero de puntos o u que intervienen en el problema). o a En este trabajo. en general. en este caso recolocaci´ n. se propone un heur´stico capaz de resolver problemas de gran ı tama˜ o en un tiempo de computaci´ n moderado. 2 o 3 elementos entre otros dos consecutivos en la ruta actual. Adem´ s. se ha observado que para problemas de mayor tama˜ o a los utilizados en estos trabajos (10 o m´ s clientes). (1965). a partir de un algoritmo Branch & Bound para el TSP. La eficacia de este algoritmo a e ha sido contrastada recientemente en el trabajo de Nurmi. ı ı Existen referencias de trabajos que tratan modelos que tambi´ n tienen en cuenta e la situaci´ n de la carga en el veh´culo. (1986). El algoritmo o ´ de Or es una variante de los conocidos algoritmos r?optimos desarrollados por Lin. (1984). (1988). para el TSP sim´ trico. el algoritmo de a a Or se puede adaptar f´ cilmente a problemas asim´ tricos. Esta t´ cnica es una extensi´ n n u ı e o y adaptaci´ n a este problema del algoritmo de Or para el TSP. distribuci´ n de pales en o la industria del autom´ vil. como Casco y otros. sea factible. como se ver´ mas adelante. e u frente al algoritmo 3-´ ptimo original que utiliza θ(m3 ). o. Sin embargo. (1994).

— se supondr´ que la capacidad del veh´culo es mayor que la carga total del conjunto a ı de clientes. IDEA BASICA Or. N´ tese que con estos intercambios no se o cambia el sentido de los diferentes tramos. Esto hace reducir el n´ mero de 3-intercambios a u considerar a una cantidad de orden θ(n2 ). Figura 1. (1976). coo menzando en la posici´ n i. o a En el caso general de recolocaci´ n de cadenas de k elementos consecutivos. entre dos puntos que ocupan las posiciones j y j + 1.serie de problemas simulados. como o 156 . (1994). Posible recolocaci´ n del elemento i hacia adelante y hacia atr´ s entre j y j + 1. a ´ 2. en la secci´ n 7 se expondr´ n las conclusiones que se o a extraen de los resultados obtenidos en la secci´ n anterior. o Igual que en trabajos anteriores. propone restringir la b´ squeda de intercambios a los 3-intercambios u en los que cadenas de uno. —Pacheco. pero no el l´mite del tama˜ o de la cadeı n na a recolocar. En nuestro caso seguiremos la misma idea. el caso general se estudiar´ posteriormente. dos o tres clientes consecutivos son recolocadas entre otros dos clientes (ver figura 1). adem´ s debemos chequear la factibilidad de cada posible recolocaci´ n a o respecto a las restricciones del problema. y Pacheco y otros. (1994).

es e a decir. son j = 1. se a˜ ade a las rutas el punto 2 n que se interpreta como n la vuelta al origen 1. y j = i + k. : : : . o En nuestro caso la ruta contiene 2 n puntos: el origen 1. (recolocaci´ n hacia atr´ s). y adem´ s. ( j. El algoritmo act´ a b´ sicamente de la forma siguiente: a partir de una ruta inicial u a examina todos los intercambios o recolocaciones posibles que sean factibles. a n n ? 1 puntos de descarga. y j el punto tras el n que recolocamos la cadena. los posibles valores que puede u tomar i var´an desde 2. Para cada valor de i y cada valor de k. n ? 1 puntos de carga. y se vuelve a repetir el proceso con la nueva ruta. Se definen las siguientes variables: k. i el punto inicial de la cadena. i + k). se a˜ ade al final el punto 1 que se interpreta como la vuelta al origen. (i + k ? 1. el n´ mero de o o operaciones en cada iteraci´ n ser´a de Θ(n4 ). i ? 2. u 157 . determinar directamente los valores de j factibles. de esta forma que el n´ mero de operaciones sea de θ(n3 ). ( j. hasta 2 n ? k. Se realiza el intercambio correspondiente al mayor valor n de ganancia. i + k). : : : . los ı posibles valores que puede tomar j. punto a partir del cual insertamos la cadena. j + 1) e incorporar los arcos (i ? 1. por comodidad. i) y (i + k ? 1. Si para cada ´ o u recolocaci´ n posible (definida por i. Para cada uno de estos intercambios factibles calcula la variable ganancia definida como la suma de las distancias de los arcos que se suprimen menos la suma de las distancias de los arcos que se a˜ aden. El algoritmo termina cuando el mayor valor de ganancia no sea positivo. puede suponer un tiempo de computaci´ n excesivo. Por comodidad. (recolocaci´ n hacia o a o adelante).muestra la figura 2. es decir de la nueva ruta a la que este da lugar. Figura 2. i). Recolocaci´ n de una cadena de k elementos. El chequeo de la factibilidad de cada intercambio. supone suprimir los arcos (i ? 1. para cada valor de i y de k. A continuaci´ n vamos a proponer un o ı m´ todo que r´ pidamente examine las recolocaciones factibles para cada cadena. j + 1). 2 n ? 1. k y j) se chequea su factibilidad. el tama˜ o de la cadena a recolocar. Para cada n´ mero de elementos k de la cadena.

Definimos el siguiente conjunto: e M = Conjunto de clientes cuyos puntos de carga y descarga no pertenecen ninguno a C. En otras palabras: no se pueden dar situaciones de este tipo en una ruta 1 ? ? r+ ? ? s+ ? ? s? ? ? r? ? ? 1: Cuando se estudia la recolocaci´ n de una cadena concreta. cumpliendo que o bien r+ o bien r? . s+ ? ? s? ? ? r+ ? ? r? B(r) = Subconjunto de M de clientes s tales que s+ es anterior a r+ y s? es posterior a r? en la ruta actual. es decir qu´ valores de j van a dar lugar a rutas que cumplan las dos restrice ciones anteriores. s+ ? ? r+ ? ? r? ? ? s? 158 . se ha de examinar en que lugares se puede insertar. para todo cliente r. Para cada cliente r cada punto de carga r+ debe ser anterior a cada punto de descarga r? . dichas posiciones marcar´ n a ı a a el m´nimo y el m´ ximo valor que puede tomar j. INTERCAMBIOS FACTIBLES Para examinar la factibilidad de un intercambio se deben considerar las dos restricciones. Como se ver´ de forma expl´cita m´ s adelante. o precedencias obligatorias. Para estudiar los valores de j que cumplan la primera restricci´ n. S´ lo se puede descargar la ultima mercanc´a que ha sido recogida. pero solo uno. (determinada por los o valores de i y k definidas anteriormente). se ha de descargar antes la ultima ı ı ´ en entrar. y por otra parte en las posiciones a de los puntos de descarga correspondientes a los puntos de carga que est´ n en la a cadena. o a Para ello consid´ rese C una cadena de esta ruta. es decir. ı a El estudio de los valores que cumplan la segunda restricci´ n es m´ s complicado. pertenece a C se definen: A(r) = Subconjunto de M de clientes s tales que s? es anterior a r+ en la ruta actual. o basta con fijarse por una parte en las posiciones de los puntos de carga correspondientes a los puntos de descarga que est´ n en la cadena.3. siguientes del problema: 1. 2. o ´ ı cuando haya dos mercanc´as en el veh´culo.

Demostraci´ n: Si j tomara alguno de los valores anteriormente se˜ alados. se tendr´a. ambos incluidos. o n ı para alg´ n cliente s. 8 s 2 D(r) j no puede tomar valores comprendidos entre orden(s+) y orden(s? ) ? 1. seg´ n se ha o u definido anteriormente: a) b) c) d) 8 s 2 A(r) C no puede ser recolocado entre s+ y s? . = = . Se tiene el siguiente 8 t 2 N+ Lema 1 Sea j la variable que indica la posici´ n donde se recoloca C. j no puede tomar valores comprendidos entre 1 y m1 ? 1 ambos incluidos. j no puede tomar valores comprendidos entre orden(s+) y orden(s? ) ? 1. r+ ? ? s+ ? ? s? ? ? r? ? r? ? ? s+ ? ? s? D(r) = Subconjunto de M de clientes s tales que s+ es posterior a r? en la ruta actual r+ ? : N ? se define orden(t) como el n´ mero de orden o posici´ n que ocupa el u o elemento t en la ruta actual. es decir. Sean m1 = maxforden(s+ ) s 2 B(r)g y m2 = minforden(s? ) s 2 B(r)g. una de las dos posiciones relativas siguientes entre los puntos de u carga y descarga de r y s en la nueva ruta obtenida: s+ ? o bien r+ ? ? r+ ? ? s? ? ? r? ? s+ ? ? r? ? ? s? : 159 . . ni entre m2 y 2 n ? 1 ambos inclusive. 1. 8 s 2 C(r) j no puede tomar valores comprendidos entre orden(s+) y orden(s?) ? . ambos incluidos. ambos incluidos.C(r) = Subconjunto de M de clientes s tales que s+ es posterior a r+ y s? es anterior a r? en la ruta actual.

ambos inclusive. como a por ejemplo. ı / si A? = 0 y A? = r=r? 2 C. r? 2 C = se definen tambi´ n: e l´mite_superior = minforden( j? )= j 2 A+ g. A+ = 0.4. = Á l´mite_inferior = 1. / A? = 0 : 1? ? r(i) ? r(i + 1) ? ? r(i + k ? 1) ? ? j1? ? ? 1 160 . para al menos un cliente. ı l´mite_inferior = maxforden( j+ )= j 2 A? g. alg´ n ı o u punto de descarga ser´a anterior a su correspondiente de carga. se tiene que j s´ lo puede tomar los valores comprendidos entre o l´mite_inferior y l´mite_superior?1. / A? = 0 : La cadena est´ compuesta por pares completos de puntos de carga descarga. r+ 2 C . ya que si j tomara otros valores en la ruta resultante se o violar´a. n o / 2. seg´ n se ha o u definido anteriormente. A+ 6= 0. r+ r? s+ s? o bien r+ s+ s? r? . seg´ n los elementos de A? y A+ se tienen los siguientes 4 casos: u / 1. es decir. / / A ı Lema 2 Sea j la variable que indica la posici´ n donde se recoloca C. SITUACIONES POSIBLES DEL CASO GENERAL o Se define r(t ) el elemento de la ruta actual que ocupa la posici´ n t. ı / ı si A+ = 0 Á l´mite_superior = 2n: se tiene el siguiente Sean adem´ s j1 el elemento de A+ verificando orden( j1?) = l´mite_superior si a ı + 6= 0. ı ı Demostraci´ n: Trivial. ı Por otra parte. seg´ n lo comentado anteriormente. por consiguiente. la restricci´ n 1 del apartado 3. y j2 el elemento de A? verificando orden( j2+) = l´mite_inferior si A? 6= 0. Sea la cadena C u determinada por los valores de i y k: r(i) ? r(i + 1) ? ? r (i + k ? 1 ) : Definimos los siguientes conjuntos de clientes: A+ = r=r+ 2 C. en este caso ninguna recolocaci´ n o puede romper ninguna precedencia obligatoria se˜ alada en la secci´ n anterior. que r(1) = r(2n) = 1.

(es decir D( j1)).Los clientes que se van a considerar. / A+ = 0 : 1? a) 1 ? ? j2+ ? ? r(i) ? r(i + 1) ? ? r(i + k ? 1) ? ? 1 Los conjuntos de clientes a considerar son los siguientes: b) 1 ? ?1 Conjunto de clientes s verificando que orden(s+) i + k ? 1. es decir C( j2). es decir B( j2). que va a coincidir ? s+ ? ? r(i) ? r(i + 1) ? ? r(i + k ? 1) ? ? j1? ? ? s? ? < c) 1 ? Conjunto de clientes s. Conjunto de clientes s verificando que orden(s+) i. 161 . es decir C( j1). ? r(i) ? r(i + 1) ? ? r(i + k ? 1) ? ? s+ ? ? s? ? ? j1? ? > i + k ? 1 y orden(s?) < A efectos del estudio de recolocaciones factibles no se considera el conjunto de clientes s verificando que orden(s+) > orden( j1? ). es decir B( j1). para estudiar las posibles recolocaciones son las siguientes: a) 1 ? b) 1 ? ?1 Conjunto de clientes s verificando que orden(s?) con A( j1). i y orden(s?) > ?1 Conjunto de clientes s verificando que orden(s+) orden( j1? ). (ver apartado anterior). ?1 ? s+ ? ? s? ? ? r(i) ? r(i + 1) ? ? r(i + k ? 1) ? ? j1? ? < i. ? s+ ? ? j2+ ? ? r(i) ? r(i + 1) ? ? r(i + k ? 1) ? ? s? ? < orden( j2+ ) y orden(s?) > ?1 ? j2+ ? ? s+ ? ? s? ? ? r(i) ? r(i + 1) ? ? r(i + k ? 1) ? > orden( j2+ ) y orden(s?) < c) 1 ? ?1 Conjunto de clientes s verificando que orden(s+) ? j2+ ? ? r(i) ? r(i + 1) ? ? r(i + k ? 1) ? ? s+ ? ? s? ? > i + k ? 1. pues la cadena C no puede ser insertada en una posici´ n posterior a la de j1? (Lema 2). es decir D( j2). seg´ n las posiciones relativas de sus corresu pondientes puntos de carga y descarga. Al igual que en el caso anterior no se considera el conjunto A( j2). o / 3. A? 6= 0. verificando que orden(s+) orden( j1? ).

/ 4. o adem´ s se hacen uso de las siguientes variables: a gmax: Indica el valor m´ ximo de ganancia (definida en el apartado 2) en cada a iteraci´ n. Se tienen los siguientes par´ metros de entrada: a n : valor que determina los conjuntos N + y N ? seg´ n la definici´ n del apartado. orden( j2+ ) y orden(s?) < ? j2+ ? ? r(i) ? r(i + 1) ? ? r(i + k ? 1) ? ? s+ ? ? s? ? ? j1? ? ? 1 Conjunto de clientes s verificando que orden(s+) i + k ? 1 y orden(s?) orden( j1+ ). no se van a considerar otros conjuntos de clientes. y los siguientes par´ metros por variable: a ruta: vector que registra la soluci´ n en cada momento. u o t: matriz de distancias. ´ ´ 5. A+ . > < Obviamente. ruta[i] indica o el punto que ocupa la posici´ n i en la ruta actual. es decir. o costetotal: distancia total de la soluci´ n. es decir C( j2). DESCRIPCION DEL ALGORITMO EN SEUDOCODIGO A continuaci´ n se describe el algoritmo que sigue la idea b´ sica descrita en el o a apartado 2. y con la determinaci´ n de intercambios factibles seg´ n se estudia en los o u apartados 4 y 5. o 162 . A? 6= 0 : 1? ? j2+ ? ? r(i) ? r(i + 1) ? ? r(i + k ? 1) ? ? j1? ? ? 1 ? j2+ ? ? s+ ? ? s? ? ? r(i) ? r(i + 1) ? ? r(i + k ? 1) ? ? j1? ? ? 1 > S´ lo se consideran los dos siguientes conjuntos: o a) 1 ? b) 1 ? Conjunto de clientes s verificando que orden(s+) i. es decir C( j2).

o valido: vector l´ gico que indica. y j la posici´ n donde va a ser recolocada. para cada cadena. u o Determinar j2 2 A? =orden j2+ ] = l´mite_inferior ı fin Hacer l´mite_inferior = maxforden j+ ]= j 2 A? g. ı si no: Hacer l´mite_inferior = 1. / Si A? 6= 0 entonces inicio Determinar los conjuntos A+ y A? (seg´ n la definici´ n del apartado 4). en qu´ posiciones puede ser o e recolocada de forma factible. i es la variable auxiliar ı que indica la posici´ n donde comienza la cadena C. siguiendo las definiciones tomadas hasta ahora. ´ Repetir hacer gmax:=0.imax: Indica el lugar donde comienza la cadena correspondiente a gmax. el algoritmo act´ a de la forma o u siguiente: Hacer ruta como la ruta inicial y coste total como la distancia de esta. ı / Si A+ 6= 0 entonces inicio Hacer l´mite_superior = minforden j? ]= j 2 A+ g. nele: indica el n´ mero elementos de dicha cadena. u jmax: indica el lugar donde se recoloca la cadena correspondiente a gmax. orden: vector que indica la posici´ n de cada punto en la ruta actual. k el n´ mero de elementos que la o u componen. As´mismo. Para k:=1 hasta n ? 1 hacer: Para i:=2 hasta 2 n ? k ? 1 hacer inicio Para j:=1 hasta 2n ? 1 hacer valido[ j]:=TRUE. ı 163 .

C( j1). ı / A? = 0 entonces: Para j:=1 hasta l´mite_inferior?1 hacer valido j]:=FALSE. 164 . C( j2). Para j:=1 hasta m1 ? 2 y de m2 hasta 2 n ? 1 hacer valido j]:=FALSE fin. / Si A+ = 0. B( j1). 8 s 2 C( j2) Determinar conjuntos B( j2). inicio Para j:=l´mite_superior hasta 2n ? 1 hacer valido j]:=FALSE. ı 8 s 2 A( j1) Determinar conjuntos A( j1). hacer: D( j2) hacer: Para j:=orden s+ ] hasta orden s? ] ? 1 hacer valido j]:=FALSE. ı / Si A+ 6= 0. (seg´ n la definici´ n del apartado 3) u o C( j1) hacer: Para j:=orden s+ ] hasta orden s? ] ? 1 hacer valido j]:=FALSE.Determinar j1 2 A+ =orden j1? ] = l´mite_superior ı fin si no: Hacer l´mite_superior = 2n. fin. D( j2). / Si B( j1) 6= 0 hacer inicio Determinar m1 = maxforden s+ ]=s 2 B( j1)g. inicio / A? 6= 0 entonces: Determinar m2 = minforden s? ]=s 2 B( j1)g.

A? 6= 0 entonces: inicio 8 x 2 C( j1) Determinar conjuntos C( j1)./ Si B( j2) 6= 0 hacer inicio Determinar m1 = maxforden s+ ]=s 2 B( j2)g. C( j2). 165 . fin. u o Si ganancia > gmax entonces: inicio gmax:=ganacia. Para j:=1 hasta i ? 2. y j:=i + k hasta 2 n ? 1 hacer: Si valido j] entonces: inicio Calcular el valor de ganancia (seg´ n se defini´ el apartado 2). Determinar m2 = minforden s? ]=s 2 B( j2)g. imax:=i. fin. C( j2) hacer: Para j:=orden s+ ] hasta orden s? ] ? 1 hacer valido j]:=FALSE. Para j:=1 hasta m1 ? 2 y de m2 hasta 2 n ? 1 hacer valido j]:=FALSE fin. / Si A+ .

0). Si gmax inicio > 0 entonces: Sustituir los arcos (imax ? 1. el tercero determinar en qu´ medida la incorporaci´ n de este o e o heur´stico en los algoritmos exactos descritos por Pacheco. (jmax. para este problema hace reducir el tiempo de computaci´ n de estos. 7. Existen copias del algoritmo programado en PASCAL a disposici´ n de las personas o interesadas. (1994). como la prograo maci´ n de los diferentes problemas que han servido de prueba. (imax + kmax ? 1. jmax + 1) y registrar el resultado en ruta. y el o ´ cuarto comprobar la evoluci´ n de los tiempos de computaci´ n de este algoritmo en o o funci´ n del tama˜ o del problema. jmax + 1) por los arcos (imax ? 1. El equipo t´ cnico usado es un ordenador e 166 . fin. imax + kmax). o n Tanto la implementaci´ n de los algoritmos que se han utilizado. imax + kmax). 6. se han hecho utilizando o el compilador Borland Pascal (ver.kmax:=k. imax). (jmax. y Pacheco y otros. imax) y (imax + kmax ? 1. jmax:= j. RESULTADOS COMPUTACIONALES Para examinar la eficacia del algoritmo anteriormente descrito se han realizado cuatro tipos de pruebas: el primero tiene como objeto reflejar la eficacia del m´ todo e desarrollado para determinar el ahorro en el tiempo de computaci´ n de los intercamo bios factibles. fin fin. Hacer costetotal:=costetotal ? gmax fin hasta que gmax = 0. el segundo tiene como objeto comprobar la desviaci´ n del optimo de o ´ la soluci´ n obtenida. ı (1994).

15. cuyos valores son generados aleatoriamente con distribuci´ n o uniforme entre 0 y 100. 25 y n 30 clientes. m´ xima y m´nima). ı A continuaci´ n se muestra un cuadro que resume los resultados obtenidos: tiempos o de computaci´ n para ambas formas y reducci´ n porcentual: o o N. para cada tipo de matriz. as´ como el n´ mero o ´ a ı ı u de casos en los que se alcanz´ .personal tipo PC AT i 486dx2 a 50 Mhz para las tres ultimas pruebas. se muestra un cuadro que resume los o resultados obtenidos: En estos cuadros se muestra. 7. (correspondientes a 11. La distancia entre cada par de puntos se define como la distancia eucl´dea correspondiente. 17 n y 19 puntos). 6. En ambos casos se han generado 20 matrices para cada tama˜ o del problema: 5. Desviaci´ n del optimo o Para estudiar la proximidad al optimo de las soluciones obtenidas por este heur´stico ´ ı se han simulado matrices de distancias de dos formas diferentes. y un orde´ nador Pentium a 100 Mhz.1. A continuaci´ n. 20. para la primera. o 167 . el chequeo de la factibilidad de cada intercambio uno a uno puede emplear mucho tiempo de computaci´ n. 8 y 9 clientes. se han e simulado 20 matrices de distancia.2. para cada n´ mero de clientes. Para establecer la eficacia del m´ todo propuesto.1. Chequeo de intercambios factibles. En la primera de ellas las distancias son generadas aleatoriamente tomando valores enteros con la misma probabilidad entre 0 y 99. El objeto de o los apartados 3 y 4 es desarrollar un m´ todo para determinar de forma m´ s r´ pida qu´ e a a e intercambios son factibles. Los problemas as´ generados se han resuelto utilizando el algoritmo con ı este m´ todo (tal como se describe en el apartado 5) y chequeando los intercambios e uno a uno. Reducci´ n de tiempo o Como se ha comentado en el apartado 2. la u desviaci´ n porcentual del optimo. para cada tama˜ o de problema: 5. (media. clientes Uno a Uno M´ todo e Reducci´ n o 5 10 15 20 25 30 -- 00 023 0 < 0 001 950 65 00 247 00 021 910 49 20 199 00 083 960 22 90 617 00 199 970 93 340 594 00 464 980 37 850 415 00 823 990 03 ´ 6. 10. 15. La forma de generar distancias es asignar a cada punto del problema dos coordenadas x e y. La segunda forma de generar distancias coincide con la utilizada en el apartado 6.) o 6. 13. (Existen copias de estos programas a disposici´ n de las personas interesadas.

en los trabajos de Pacheco. Reducci´ n en el tiempo de computaci´ n de los exactos o o Como se ha mencionado anteriormente.2.2. y Pacheco y otros. (Paso 1 descrito en el apartado 5) se han generado aleatoriamente 50 rutas factibles y se ha tomado aquella con menos distancia total. (1994). Los resultados son los siguientes: Numero de ´ clientes 5 6 7 8 9 ´ Desviaci´ n porcentual del optimo o M´nima ı 0 0 0 0 0 Media 00 011 00 015 00 028 00 014 0 M´ xima a 00 104 00 240 00 350 00 255 0 Casos en los que se alcanza 20 16 16 18 17 6.3. para la ruta inicial se ha elegido aquella con menos distancias entre 10 rutas factibles generadas aleatoriamente y las obtenidas utilizando la adaptaci´ n a o este problema de los algoritmos de inserci´ n m´ s cercana y m´ s lejana para el TSP. Primer tipo de matriz Para obtener la ruta inicial. se hace una amplia recopilaci´ n y descripci´ n o o de los principales algoritmos de inserci´ n para el TSP. (1980). as´ como de otros algoritmos o ı constructivos que pueden ser adaptados f´ cilmente a este problema).6.1.2. o a a (en el trabajo de Golden y otros. Los resultados a son los siguientes: Numero de ´ clientes 5 6 7 8 9 ´ Desviaci´ n porcentual del optimo o M´nima ı 0 0 0 0 0 Media 0 0 00 015 0 0 M´ xima a 0 0 00 302 0 0 Casos en los que se alcanza 20 20 20 19 20 6. (1994). Segundo tipo de matriz En este caso. se desarrolla una estrategia para el dise˜ o de algoritmos n 168 .

para problemas de mayor tama˜ o. o ı 2.4. Cada vez que se llegue a una soluci´ n. o ı El objeto de estas modificaciones es obtener r´ pidamente cotas superiores ajustadas a al optimo para evitar exploraciones innecesarias. m´ s recientemente). (ver Volgenant y Jonker. obtener cotas inferiores m´ s ajustadas al optimo mediante a a ´ m´ todos de penalizaci´ n lagrangiana (ver Held & Karp. Para obtener una soluci´ n inicial se emple´ como ruta inicial aquella con o o menos distancia total entre 50 rutas factibles generadas aleatoriamente.. En nuestro caso. estas son las siguientes: n ´ 1.1. 6. del heur´stico o o ı desarrollado en este trabajo. Entre estas o ´ destacamos: generar cotas superiores en cada v´ rtice del arbol de b´ squeda si el e ´ u algoritmo es de tipo Branch & Bound. a partir de m´ todos Branch & Bound para el TSP. utilizar dicho heur´stico para mejorarla. (1991). reducir el tiempo de computaci´ n mediante determinadas estrategias. ´ o Para verificar estos ahorros de tiempo se han generado 20 matrices de distancias. 7. (1970) y (1971)). o Nurmi. Los resultados son los siguientes: Numero de ´ clientes 5 6 7 8 9 Tiempo de Computaci´ n en segundos o Algoritmo Original 00 288 10 396 170 205 590 644 4740 427 Algoritmo Modificado 00 215 00 630 110 362 440 558 2380822 Reducci´ n o Porcentual 250 347 540 871 330 961 250 293 490 661 6. Para ello se han n 169 . (1981). (1982). o a vamos a reducir el tiempo de computaci´ n realizando dos modificaciones en los o algoritmos exactos anteriormente se˜ alados. En e los algoritmos exactos para problemas de rutas se puede conseguir. 8 y 9 n clientes. Evoluci´ n de los tiempos de computaci´ n o o Finalmente se ha realizado un tercer tipo de pruebas destinado a establecer la evoluci´ n de los tiempos de computaci´ n en ordenadores personales. en muchos casos. y reducir el tiempo de computaci´ n. o m´ todos e o e de Programaci´ n Din´ mica. (ver Christodides y otros.exactos para este problema. Partir como soluci´ n inicial la obtenida por el heur´stico descrito en este trabajo. para cada tama˜ o del problema: 5. etc. como en el caso del apartado 6.

1. (distancias eucl´deas). 20. la aproximaci´ n ´ o es realmente grande. (cuando no coinciden con el). Los resultados son los siguientes: Numero de ´ clientes 10 20 30 40 50 60 70 80 90 100 110 120 Tiempo medio de Computaci´ n en segundos o Soluci´ n Inicial o 00 120 10 282 50 029 140 891 350 403 710 609 1250081 2100159 3390721 5200928 7610427 10740992 Heur´stico Propuesto ı 00 035 00 321 10 516 30 212 80 295 180 775 240 044 390 886 570 293 1010 775 1300 193 1740 439 Total 00 155 10 603 180 103 430 698 1490 125 2500 045 3970 014 6220 703 12490431 8910 620 900 384 60 545 7.simulado 20 matrices de distancia como en el apartado 6. ı para cada tama˜ o del problema: 10 clientes.2. El ofrecer soluciones cercanas al optimo. hasta 120 clientes (241 puntos). Por ´ ı consiguiente. CONCLUSIONES A la vista de estos resultados se llegan a las siguientes conclusiones: El heur´stico descrito ofrece soluciones muy poco desviadas del optimo: en caso ı ´ de las matrices de distancias del apartado 6. permite ´ ´ reducir el tiempo de computaci´ n de los algoritmos exactos para este problema o cuando se combinan con este heur´stico.2). especialmente para este ultimo tipo de matrices.1. un m´ ximo del 0’35%. el unico caso en el que no coincide se desv´a el 0’302%.1.: : : .. en caso a de matrices de distancias eucl´deas la soluci´ n coincide con la optima en 99 de ı o ´ los 100 casos. —(tal como se hace en el apartado ı 170 . n Como ruta inicial se ha elegido aquella con menos distancias entre 10 rutas factibles generadas aleatoriamente y las obtenidas por los algoritmos de inserci´ n (ver apartado o 6.1.

171 . Golden.B. 75–96. 2. ı n con ordenadores o compiladores que soportaran matrices de distancia de mayor dimensi´ n. en un tiempo aceptable. «Implantation et Complexit´ des Teche niques de Programmation Dynamique dans les M´ thodes de Confection des e Tourn´ es et d’Horaires». (1988). L. B.16). e 3. [3] Deif.A. M. Networks. Babson Park. lo que ı o permite poder resolver problemas de mayor tama˜ o. o El empleo de un tiempo de computaci´ n peque˜ o.KIDDER. Mingozzi. (1991). 11.E. F. and ASSAD. En el apartado 6. 7–46.6.L.L. (1981). Massachussets. Esto se debe a que se parte de una cota superior en el v´ rtice inicial e muy ajustada al optimo.4 se resuelven problemas de hasta n 241 puntos. and Case Studies».O. Recherche Operationnelle/Operations Researsch. E. ´ a El tiempo de computaci´ n que emplea es insignificante si se le compara con el o que emplean los exactos existentes. —sobre todo con distancias ´ eucl´deas—. Esto hace que se puedan resolver problemas de mucho mayor tama˜ o.A. vol. (1984). se debe fundamentalmente o n al m´ todo utilizado para establecer los intercambios factibles en cada iteraci´ n. pero la evoluci´ n de los tiempos de computaci´ n permite adivinar o o que se podr´an resolver problemas de mayor tama˜ o. con lo que se rechazan m´ s exploraciones innecesarias. a n Concluir finalmente que el algoritmo heur´stico propuesto resulta extremadamente ı eficaz al ofrecer soluciones muy cercanas al optimo.3)—.). (Studies in Management Sciences and Systems. Proceedings of the Babson Conference on Software Uses in Transportation and Logistics Management (A.. P.A. eds: GOLDEN. edit. 25. «Extension of the Clark and Wrigth Algorithm for Solving the Vehicle Routing Problem with Backhauling». Nort-Holland. & Wasil.. Este m´ todo permite una reducci´ n porcentual del tiempo de computaci´ n e o o de m´ s del 90% y que aumenta con el tama˜ o de los problemas. & Soumis. & Boding. D. «State-Space Relaxation Procedures for the Computation of Bounds to Routing Problems». en un tiempo de computaci´ n mucho menor que los exactos. [2] Casco. [4] Desrochers. 291–310. I. REFERENCIAS Y BIBLIOGRAFIA [1] Christofides. 145–164. & Toht. A.. «Vehicle Routing with Bachauls: Models. n ´ 8. N. Algorithms. InVehicle Routing: Methods and Studies. e o basado en los resultados te´ ricos desarrollados obtenidos en los apartados 3 y o 4.

B. (1971). Res. e [7] Goetschalcks. Turbo-Pascal 7: Manual de Referencia. [19] Pacheco. (1976). Dumas. Twenty-First Annul Meeting of S. J. «Confection d’iteneraires de vehicules en vue du transport de plusiers origines a plusiers destinations». «The Vehicle Routing Problem with Backhauling: Two Approaches».. «Approximate Traveling Salesman Algorithms».. Sweeney. Operations Researsch. Bodin. R. 972–989. [17] Or. (1991). (1985). 3. Osborne McGraw-Hill. 28. C.. 18. Optva. «Computer Solutions to the Traveling Salesman Problem». Baker. Doyle. Traveling Salesman Type Combinatorial Problems and their Relations to the Logistics of Blood Banking. Alfaro.E. de Estad´stica e I. & Arag´ n. 11 (5).. de la Facultad de Matem´ ticas de la ı ı a U. Murty. Delevery and Time Windows».E. & Soumis. (1965). [16] O’Brien. A.. 6–25. B. Material Handling Researcsh Center. celebrado ı en Calella en Abril de 1994.M. J. Ph. S. C. S.W. Georgia Institute of Technology. TIMS (R. Thesis. J.[5] Desrosiers. M. Tech. A. 172 . A. M. Problemas de Rutas con Ventanas de Tiempo. SC. & Karp. (1985). 22. Ecole Des Hautes Estudes Commerciales de Montreal. 1138–1162. ` Universit´ de Montreal. Y. (1985). [18] Pacheco.HAMMESFAHR. edit. Computers & Ops.K.T. 8. «An Algorithm for the Traveling Salesman Problem». (1987). M. & Karel. & Arora. «The Vehicle Routing Problem with Backhauls». [8] Golden. Operations Research. Dept. [11] Held. & Horsley. 377–386.Jr. Optva. of Industrial and Systems Engineering. S. «Traveling Salesman Problem Tools for Microcomputers». XXI Congreso de Estad´stica e I. . (1994). Res. «The Traveling Salesman Problem and Minimum Spanning Trees».. D. & Schaffer. Problemas de Ruta con Carga y ı o Descarga en Sistemas LIFO. F. Centre de Recherche sur le Transports. 741–749. [14] Lin. Mathematical Programing I. «An Algorithm for the Traveling Salesman Problem with Pickup and Delevery Customers». [15] Nurmi. «The Traveling Salesman Problem and Minimum Spanning Trees: Part II». & Karp. (1986). of Industrial Enginnering and Management Sciences. (1993). 2245–2269. Northwestern Univ. Ops. Madrid. Tesis Doctoral le´da en el Dpto. [6] Dumas. Cahiers du GERARD. B.). (1980). J. Y. & Nameroff. «Vehicle Routing Problem with Pickup. Bell Syst. 18. Jou... Garc´a.D. Myrtle Beach. 44.V. (1963). parte II. (1994). & Stewart.. Mayo 1994. Hill. [12] Kalantari.M. S. (1970). [9] Golden. R. J. K.R. Complutense de Madrid. Dpt. 694–711. [13] Little. K. [10] Held. J. European Journal of Operational Research. 90–92. L. I.

H.A.[20] Psaraftis. vol. [22] Volgenant. E. Transportation Sci. 85–106. M. «A Branch and Bound Algorithm for the Symmetric Traveling Salesman Problem based on the 1-tree Relaxation».. Res. B.. 83–89. (Studies in Management Sciences and Systems. J. (1988a). 17. A. 9. In Vehicle Routing: Methods and Studies. 351– 360. & Schaffer. eds: GOLDEN. [21] Solomon. J. (1982). R. and ASSAD.. & Jonker.L. Eur. (1983). Nort-Holland. 173 . T. Baker. Ops.16).. «Vehicle Routing and Scheduling Problems with Time Window Constraints». «An Exact Algorithm for the Single Vehicle Many-toMany Dial-a-Ride Problem with Time Windows».

Or-exchanges.E. This algorithm is an extension an adaptation of the Or method for the Travelling Salesman Problem (TSP) which can also be used for aymetrical instances. * Joaqu´n A. i. E. Empresariales de Burgos In this paper a heuristic is proposed to solve the «Pick-up and Delivery Problem (PDP) using only one vehicle with limitless capacity in LIFO unloading systems». With this heuristic one can solve large scale problems in reasonable calculation times on PC with only a small deviation from the optimum.E. Fco. feasibility. Pacheco. 174 . Keywords: Pick-up & Delivery with LIFO systems.U. 09006 ı a Burgos. Vitoria s/n. Matem´ ticas. Dpto.e. checking.U.ENGLISH SUMMARY HEURISTIC FOR THE PICK-UP AND DELIVERY ROUTING PROBLEMS IN LIFO UNLOADING SYSTEMS JOAQU´ A. – Accepted july 1996. PACHECO IN E. Empresariales de Burgos. – Received march 1995. only the last goods to be loaded onto the vehicle may be unloaded at one time..

appears in many situations in the world of Transport and Industry: transport of certain industrial gases. each client i requires that goods be transported from an origin i+ to a destination i? . section 4 studies the possible situations depending on the elements that make up the chain which is to the repositioned.The Pick-up and Delivery Problem (PDP) may be described in the following way: One has a set of clients N = f2. section 5 describes the algoritm with the results from the previous sections. As in previous papers. in this case repositioning. and the loads of each client r by q(r). : : : . in those delivery activities in which a controlled time is required for unloading. The set of pick-up points will be denoted by N + = fr+ =r = 2. n. The special case in which the orders required are all the same is know as Dial-A-Ride-Problem (DARP) which occurs in passenger transport. (1976). Furthermore. : : : . to be feasible. In this paper a heuristic is proposed capable of solving large scale problems in moderable calculation times. which they then return to when their route is completed. ng. 3. 3. 3. This problem. : : : .. (1994). ng. the set of delivery by N ? = fr? =r = 2. or in general. section 6 cheks the efficiency of this algorithm starting from the solving of a series of the simulated problems. school transport. deviating from the optimum in only a few cases and by a small amount. —Pacheco. With this objective in mind one has m vehicles wich leave an initial citi 1. (1994). etc.. 3. This technique is an extension and adaptation to this problem of the Or algorithm for the TSP. and Pacheco et al.— it is assumed that the total load from all the clients. : : : . section 7 explains the conclusions drawn from the results obtained in the previous section. an appendix is added which describes the algorithm in more detail in PASCAL.. The object is to design feasible vehicle routes with the shortest total distances. r = 2. section 3 studies the conditions necessary for a 3-interchange. the general case will be studied later in other works. The paper is organized in the falowing way: section 2 explains the basic idea of the algorithm to be developed. Now let us consider the PDP with one vehicle with the fallowing restriction: At any one moment only the last goods loaded may be unloaded. distribution of pallets in the auto industry. 175 . wich will be denoted PDP with one vehicle with a LIFO (last-in-first-out) un loading system. ng.

Sign up to vote on this title
UsefulNot useful