Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Un sistema de distribución física consta de unos vehículos, unas instalaciones fijas y unos objetos, o
personas, que deben ser distribuidos, cada uno de los cuales lleva asociados unos costes.
Los objetos distribuidos llevan un coste asociado al inventario estacionario y otro coste asociado al
inventario en movimiento (pipeline). Nótese que este último inventario en movimiento se tiene que pagar
siempre y es independiente de la estrategia de envío, aunque varía al cambiar el modo de transporte o las
condiciones de guiado del mismo.
Las tarifas reales de los transportistas reflejan el hecho de que el coste unitario de transporte en €/kg
disminuye con el tamaño de envío y que, además, el coste de envío es proporcional a la distancia de
transporte. Existen ligeras diferencias entre los costes de transporte en vehículo lleno y en vehículo
fraccionado o falso flete (Less Than Truckload, LTL), conceptualmente irrelevantes.
Los costes de inventario tienen tres componentes básicas: el precio de la mercancía en stock, el coste de
mantenimiento de inventario, expresado habitualmente como porcentaje del coste de la mercancía, y el
tiempo transcurrido como stock. En la evaluación de estos costes deben tenerse en cuenta conceptos muy
delicados como las diferencias entre flujo de material y flujo de caja, fiabilidad de los datos,
homogeneidad de las unidades de los costes (sin márgenes empresariales), determinación de las unidades
de negocio de la empresa para diferenciar los costes asociados a envíos internos de partes producidas por
la misma empresa, etc.
Estrategias de distribución
La mejor manera de concretar diversas estrategias de distribución física es, quizás, con un ejemplo: Una
empresa dispone de varias fábricas y muchos centros de distribución o delegaciones con demanda
equilibrada. Cada fábrica produce un componente de un producto y se plantea la mejor manera de enviar
las componentes de las fábricas a los centros de distribución con camiones.
La primera estrategia de envío, quizás, consistiría en hacer envíos directos entre cada fábrica y una
delegación, con camiones llenos. Desde luego, esta es la estrategia que minimiza los costes de
transporte para un modo y tipo de vehículo dados, aunque podría tener unos costes de inventario muy
elevados.
Otra posible estrategia de distribución podría consistir en enviar desde las fábricas camiones llenos
directamente a un centro de consolidación (almacén) que, además de aglutinar los diversos componentes,
ejercería de regulador y a su vez enviaría camiones llenos a las delegaciones.
Es probable que, si el coste unitario de las mercancías es elevado, cada una de las dos estrategias de
envío vistas pueda mejorarse utilizando camiones fraccionados en vez de camiones llenos.
También es probable que pueda encontrarse una combinación óptima entre los envíos directos de fábrica
a delegaciones y los que se realizan a través del almacén regulador.
Por último, la estrategia óptima de distribución, para un problema dado, podría determinarse, no sin
notable esfuerzo, con programación matemática.
El modelo que se utilizará es muy parecido al EOQ de gestión de inventarios. En esta ocasión,
conviene tener presentes los costes de transporte explícitamente y contar como “tiempo de inventario”
todo el tiempo transcurrido desde la producción de un objeto hasta su consumo. Algunos modelos sólo
consideran el tiempo entre producción y entrega al distribuidor o cliente, admitiendo que es éste quien
debe pagar el coste de inventario en destino hasta consumo; esto permite hacer envíos mayores y
menos frecuentes.
El objetivo, sin embargo, es encontrar el óptimo global del sistema. El coste de inventario en destino es
real, alguien lo paga, y por tanto debe de incluirse en el proceso de optimización. Es más, a igualdad de
precio y producto, el cliente encargará los pedidos a aquel proveedor que le proporcione envíos de menor
cantidad y más frecuentes.
La figura 4.1 muestra las curvas acumulativas de demanda y de producción, que deberían ser paralelas
en un estado de equilibrio. Si se produce más de lo que se consume, el distribuidor dejará de encargar
pedidos y el inventario en origen aumentará, de manera que el proveedor deberá decidir disminuir su
producción hasta acoplarse al nuevo ritmo de ventas del distribuidor. Si, por el contrario, se produce
menos de lo que los consumidores están dispuestos a comprar, la empresa está perdiendo unas ventas
potenciales que irán a parar a la competencia o quedarán insatisfechas en el mejor de los casos.
Así pues, si existe un equilibrio y la producción es uniforme al ritmo de λ objetos por unidad de tiempo,
T es el tiempo de transporte entre origen y destino, y se envían M objetos en un envío (valor que se
deberá determinar), el coste total por envío, sin contar el coste de la mercancía, que es independiente de
la estrategia de envío, es
2 2
Coste por envío = γ +Pi [ M +M T + M ]
2λ 2λ
El coste por envío mínimo se consigue, obviamente, para M=0, enviando vehículos vacíos. La función
objetivo no es esa, sino la que expresa el coste promedio por objeto enviado. Los objetos incurren en el
coste de inventario en movimiento durante el transporte, independientemente de cuándo son enviados.
La función objetivo es, pues (en €/objeto),
γ Pi M
Z= PiT + +
M λ
El valor de M que minimiza Z se obtiene tomando derivadas e igualando a cero:
M0 = ( γ λ / P i )1/2
Teniendo ahora en cuenta que los vehículos tienen una capacidad para C objetos (por volumen, peso o
tiempo), se obtiene
M* = min { (γλ/Pi)1/2, C }
Una vez se ha determinado el valor óptimo M*, es inmediato sustituir en Z para obtener una estimación
del coste unitario; el coste total del envío es Z*M*. El envío debe hacerse a intervalos de M*/λ unidades
de tiempo (días, semanas, meses).
Conviene insistir que en envíos entre un solo origen y destino, las variables de decisión son la cantidad
del envío (M) y la frecuencia del envío (inverso del intervalo de envío M*/λ), y ambas son
interdependientes en un estado de equilibrio.
Es posible, sin embargo, contrariamente a la creencia de algunos profesionales del sector, que resulte
interesante hacer envíos con vehículos no totalmente llenos si los costes de inventario son muy
importantes.
La formulación analítica permite derivar guías de diseño: cuanto mayor es la distancia entre origen y
destino, más tendencia existe a enviar camiones llenos; lo mismo ocurre si el ritmo de producción o
consumo es muy elevado o si el coste unitario de transporte es alto.
Si, al contrario, el coste de mantenimiento del inventario es muy alto o si los objetos son muy caros, la
tendencia es a enviar lotes menores que la capacidad del vehículo. Un ejemplo puede aclarar lo expuesto.
Ejemplo numérico: El coste de transporte entre un origen y un destino es de 500 € (incluye vuelta en
vacío). Se producen y consumen 15.000 unidades/día de un objeto que cuesta 2 €/unidad; el coste de
mantenimiento de inventario es de 36,5% €/€-año, y el vehículo puede transportar hasta 60.000
unidades.
El tamaño del envío es: M0 = (500 * 15.000 / 2 * 10-3)1/2 = 61.237.
El tamaño de envío óptimo queda limitado por la capacidad del vehículo: M* = min { 61.237, 60.000}
= 60.000 unidades/envío. Por tanto, se enviarán camiones llenos (60.000 unidades) cada
60.000/15.000= 4 días. Si el número de días sale fraccionario (como es lo habitual), puede
redondearse a un número entero de días. La diferencia en intervalo por convenienca práctica (envío
subóptimo) usualmente arroja aumentos de coste pequeños.
Las necesidades o costes de inventario en destino pueden gestionarse ahora visitando más o menos
destinos con el mismo vehículo y es intuitivo que en esta situación no exista motivo por el que deba
interesar enviar vehículos no llenos, excepto en casos de logística de emergencias; pero, aun en este caso,
los vehículos visitan tantos destinos como capacidad tienen –entendida como número de objetos a
transportar en este caso por condicionantes de tiempo–, aunque físicamente el vehículo tenga aún más
potencial de transporte por peso o volumen. Esta aseveración puede demostrarse en forma de teorema
(ver Burns et al., 1985). Los vehículos parten del origen, quizás cerca del centro de gravedad de su
región de servicio, llenos (más precisamente, a capacidad), acceden sin realizar paradas intermedias a la
zona de reparto asignada, visitan los destinos, y vuelven al origen de vacío (fig. 4.3).
La determinación de la forma, orientación y tamaño de las zonas de reparto, así como las rutas de
distribución local específicas dentro de cada una de ellas, es un problema complejo al que se dedica todo
el siguiente apartado. El citado artículo de Burns et al. (1985) sienta las bases de la modelización y
compara las estrategias de envíos directos y por paradas múltiples (peddling).
Las redes logísticas de muchas empresas de transporte, como puede ser la de una empresa de
paquetería, están configuradas por una serie de servicios de transporte con orígenes y destinos en el
país o área de actuación, que aseguran, a través de unas determinadas frecuencias y capacidad de
vehículos, un plazo de entrega (normalmente 24 horas o entrega al día siguiente antes de las 10:00
para mensajería del sector servicios) y precio adecuado al cliente.
La viabilidad del sistema (tanto en términos económicos como logísticos y comerciales) exige la
sustentación de los servicios en puntos de ruptura de las cadenas origen/destino (y la consecuente
manipulación y clasificación de la mercancía) estratégicamente localizados en el territorio; estos
puntos son las delegaciones y las terminales de rotura de carga o hubs. El número y ubicación de las
delegaciones y hubs determinan la configuración de la red de distribución física, mientras que los
servicios dependen de la tipología de los vehículos (capacidad), sus frecuencias y la meta de plazo de
entrega ofrecido.
Habitualmente, los servicios de paquetería suelen asegurar la cobertura de todo un territorio nacional.
Las delegaciones tienen un ámbito de influencia aproximadamente provincial y su misión es la de
consolidar la carga de su zona de influencia. La distribución y recogida local dentro de estas zonas
(pickup and delivery, PUD) se realiza habitualmente con camiones pequeños o furgonetas, mientras
que el transporte de larga distancia entre delegaciones (linehaul) se efectúa mediante camiones de
gran capacidad.
Este trabajo se centra en el transporte de largo recorrido entre delegaciones, de manera que el sistema
logístico que debe considerarse tiene como orígenes y destinos las delegaciones del área en la que se
ofrece el servicio. Así, el envío de una carga desde su origen a su destino puede realizarse
directamente (si hay suficiente carga para “casi” llenar un camión), con paradas múltiples entre
delegaciones próximas en origen o en destino, o a través de un terminal de rotura de carga, que pueden
tener un ámbito de influencia nacional o regional.
De esta forma, para cada par origen/destino de la mercancía existe una cadena de transporte
configurada por una combinación de servicios/puntos de apoyo que resulta óptima en términos
económicos y/o de nivel de servicio. Esta selección no depende exclusivamente de la localización
del origen y destino considerado y del volumen movido entre los dos puntos, sino también de la
demanda existente en la red y de la configuración de costes logísticos existentes; el problema es
global y la optimización exige una visión integral. A pesar de que en muchos casos un porcentaje de
ahorro pequeño puede significar consideraciones económicas relevantes, normalmente en los
problemas reales no se obtienen las soluciones óptimas debido a la complejidad y gran tamaño que
presentan.
Daganzo (1991) explica la importancia que tiene la utilización de terminales de rotura de carga en un
sistema de transporte de muchos orígenes a muchos destinos, puesto que ello puede suponer una
reducción significativa en los costes logísticos. Sin embargo, cuando se trata de un problema de
transporte desde un origen a varios destinos (o viceversa) la existencia de rutas a través de hubs sólo
se justifica cuando existen restricciones en la longitud de las rutas o en el tamaño de los camiones de
distribución.
Hall (1987) demuestra que transportar a través de dos terminales es una estrategia atractiva cuando el
número de orígenes y destinos es grande, siempre que no existan restricciones temporales. Transportar
a través de una sola terminal es conveniente cuando o bien el número de orígenes o bien el número de
destinos es pequeño, estrategia lógica para redes de aprovisionamiento y distribución. Cuando es muy
importante mantener una distancia de viaje pequeña la estrategia más adecuada es enviar la carga a
través de la terminal (o las dos terminales) que presenten menor distancia de viaje. Esta situación es
característica de las redes en las que los orígenes y los destinos están muy esparcidos o cuando el flujo
de carga entre orígenes y destinos es grande.
Hall (1989) examina varias estrategias simples, como: ruta por la terminal más cercana (al origen o al
destino), ruta por las dos terminales más cercanas al origen y a destino respectivamente, ruta por la
terminal que produce la distancia mínima, estrategias con terminales tipo master (todos los envíos
entre diferentes zonas se hacen a través de una terminal master y los envíos dentro de una zona se
hacen a través de la terminal de la zona), y otras estrategias híbridas. En este trabajo, Hall introduce
nuevos aspectos en el análisis, como son: el tiempo necesario para la clasificación y reorganización de
la carga, el tiempo que supone viajar por rutas que se desvían mucho de la ruta directa para pasar por
la terminal, la necesidad de tener que hacer clasificación de la carga en el lugar de origen cuando de
éste sale mercancía hacia varias terminales, la necesidad de realizar viajes en vacío cuando el número
de aviones que entran a una terminal es diferente al número de aviones que salen de la misma. Hall
(1996) extiende el análisis hasta incluir el subsistema de reparto y recogida local.
Teniendo en cuenta lo anterior, no es difícil encontrarse con un conjunto de pares origen destino
asignados a un solo hub, entonces puede elegirse para el transporte entre cada par una ruta directa, una
ruta con paradas múltiples o bien una ruta a través del hub. Esta elección supone un problema muy
complejo en el que la decisión para cada par origen/destino está influenciada por las decisiones
tomadas para el resto de los pares.
Se aborda aquí el siguiente problema: dado un conjunto de pares origen/destino asignados a un mismo
y único hub, se debe elegir para cada par aquella ruta que desemboque en un menor coste. Las
alternativas de ruta existentes son: transporte directo, ruta con dos paradas en origen y un único
destino (paradas múltiples de dos puntos en origen) y transporte a través del hub. Como se puede
observar, las posibilidades de hacer peddling se han reducido a dos paradas a lo sumo, y, además, en
origen, para poder tratar el problema de una manera más sencilla.
N M
1 1
2 2
. .
. .
. .
dih .H .
dhj
i
dik
dij j
k
.
.
.
. dkj
n m
Por otro lado, aunque en algunas ocasiones pueda ser beneficioso el partir una carga para ser
transportada por dos rutas diferentes, en la práctica esta posibilidad es poco factible puesto que
complica mucho la operación y aumenta el riesgo de extraviar la mercancía. Por tanto, se asume que
para cada qij solamente es posible una única alternativa de ruta.
La formulación matemática del modelo exige la definición de una serie de variables de decisión:
1 si la carga qij se transporta siguiendo una ruta con dos paradas en origen
Z ikj = según la secuencia i - k - j
0 en el caso contrario
1 si la carga qij se transporta pasando por el hub
Yijh =
0 en el caso contrario
Wih = número de vehículos que viajan desde el origen i al hub
Whj = número de vehículos que viajan desde el hub al destino j
La nomenclatura seguida para las distancias existentes entre los distintos puntos (orígenes, destinos,
hub) del sistema es la siguiente:
n m n n m n m
Minimizar ∑∑ d
i =1 j =1
ij X ij + ∑∑∑ d ikj Z ikj + ∑ d ihWih + ∑ d hjWhj
i =1 k =1 j =1 i =1 j =1
(1)
k ≠i
Sujeto a:
(q ij + q kj ) Z ikj ≤ C i=1, 2 , 3, …, n (1.1)
k=1, 2 , 3, …, n; k≠ i j=1, 2 , 3, …, m
n n
X ij + ∑ Z ikj + ∑ Z kij + Yijh = 1 i=1, 2 , 3, …, n (1.2)
k =1 k =1
k ≠i k ≠i
j=1, 2 , 3, …, m
∑q Y
j =1
ij ijh ≤ C Wih i=1, 2 , 3, …, n (1.3)
∑q Y
i =1
ij ijh ≤ C Whj j=1, 2 , 3, …, m (1.4)
m
+
∑ qij
Wih ∈ 0, 1, 2 ...,
j =1
i=1, 2 , 3, …, n (1.6)
C
n
+
∑ qij
Whj ∈ 0, 1, 2 ..., i =1 j=1, 2 , 3, …, m (1.7)
C
donde [x]+ es la parte entera superior de x.
Las inecuaciones (1.1) reflejan el hecho de que sólo es posible realizar una ruta con dos paradas en
origen cuando la carga total que se recoge en el peddling cabe en un vehículo. Las ecuaciones (1.2)
obligan a escoger para cada par origen/destino una sola ruta, para evitar que una carga qij pueda
partirse para ser enviada al destino a través de dos rutas diferentes. Las inecuaciones (1.3) y (1.4)
establecen las variables Wih y Whj como el mínimo número de vehículos necesarios para transportar
toda la carga que se envía desde cada origen al hub y desde el hub a cada uno de los destinos
respectivamente; (1.5) define a las variables Xij, Zikj e Yijh como variables binarias, mientras que (1.6) y
(1.7) definen a las variables Wih y Whj como variables enteras.
4.4.3 Complejidad
Cabe añadir que, con pequeñas modificaciones, esta formulación también permite trabajar con
vehículos de varias capacidades aunque eso implique el uso de un mayor número de variables.
El número de posibles soluciones para el problema, S, puede calcularse con la fórmula que se muestra
a continuación. Algunas de ellas pueden no ser factibles por no cumplir las restricciones (1.1) de la
formulación expuesta anteriormente. Por otro lado, sólo se ha considerado como posible solución la
mejor alternativa de hacer peddling con dos orígenes (i y k) y un destino j, es decir, la mejor entre la
rutas i-k-j y k-i-j.
m
n!
Si n es par S = 5n / 2 (2.1)
( n / 2)! 2
n/2
m
n!
Si n es impar S = 5( n −1) / 2 (2.2)
( ( n − 1) / 2 ) ! 2 ( n − 3) / 2
A modo de ejemplo, y con objeto de reflejar de manera intuitiva la complejidad que alberga este
problema, se calcula el número de variables y restricciones requeridas para la formulación de un
problema con diez orígenes y cinco destinos. También se calcula el número de posibles soluciones:
El ejemplo conduce a pensar que el número de variables y restricciones que deberían utilizarse para
resolver muchos problemas reales haría que el planteamiento matemático expuesto fuese un camino
de resolución poco viable. Es por ello por lo que resulta necesario profundizar en la estructura de estos
problemas, para crear reglas sencillas de diseño que después puedan ser introducidas en algoritmos
heurísticos. Esta sería una manera de dotar a este tipo de algoritmos de una sólida base científica y
conceptual.
- Dadas dos cargas qij y qkj, siempre será más rentable el envío directo de ambas cargas que
realizar peddling en i y en k cuando la distancia entre i y k sea mayor que la mayor de las
distancias directas desde cada origen al destino, es decir, cuando dik>Max(dij, dkj). Esta regla es
válida incluso cuando se trabaja con vehículos de capacidades diferentes.
- Hacer peddling en tres orígenes i, k, l y destino en j, siguiendo la secuencia de ruta i-k-l-j, sólo
puede ser la mejor alternativa en el caso en el que dik<dij y dkl<dkj (condiciones necesarias pero
no suficientes). Esto también se cumple cuando existe la posibilidad de trabajar con vehículos de
diferentes capacidades.
- Dadas dos cargas con un mismo origen y dos destinos diferentes, qij y qig, si la distancia del
origen i al hub es mayor que la suma de las distancias directas desde el origen a los respectivos
destinos, es decir si dih>dij+dig, entonces el envío directo de ambas cargas siempre será mejor que
el envío de las mismas a través del hub. Esta regla se cumple independientemente de la
existencia de otras cargas que viajen a través del hub con destino en j o g, procedentes de otros
orígenes diferentes a i. Es válida incluso cuando se trabaja con vehículos de varias capacidades.
A partir de las bases sentadas para las rutas de reparto, pueden construirse modelos más genéricos que
representen la distribución de un origen a muchos destinos sin y con transbordos.
En el caso de envíos de uno a muchos sin transbordo, a continuación se enumeran los factores que
influyen en el problema (algunos de ellos son datos; otros, variables de decisión):
Datos:
- Área de la región de servicio (km2)
- Densidad de destinos (destinos/km2)
- Capacidad de los vehículos (objetos/camión)
- Coste unitario de transporte (€/veh-km)
- Densidad de ritmo de demanda (objetos/día-km2)
Incógnitas:
- Número de paradas
- Días entre envíos consecutivos
- Tamaño de los envíos (objetos/camión)
- Área de la zona de reparto (km2/camión)
Una vez se ha formado una función de costes logísticos, las variables de decisión se determinan en
función de los datos minimizando los costes logísticos globales.
Para el caso más genérico de distribución con un transbordo, la función de costes logísticos se escribe
donde el primer término hace referencia al transporte de acceso (linehaul), el segundo término al coste
en la terminal, y el tercer término al coste de distribución local. Se tiene
Extensiones de estos modelos para el caso de transbordos múltiples se encuentran en Daganzo y Newell
(1986a).
Conviene resaltar, para finalizar, que un sistema de distribución física bien diseñado goza de una serie de
propiedades:
- Estructura no redundante de la red (cada terminal o punto de demanda debe ser servido por una
única ruta, (por concavidad de los costes totales).
- Forma de la región de servicio casi óptima: a) terminales localizadas en el centro de sus áreas de
influencia (mínimización veh/km de viaje), y b) forma “redondeada”.
La fig. 4.5 representa esta jerarquía de las redes de distribución física: parte de los envíos no realizan
transbordo (los más cercanos al almacén regulador); otra parte reciben los productos a través de un
transbordo, y el resto de los clientes recibe los productos a través de dos. Los detalles analíticos se
encuentran en Daganzo y Newell (1986).
Una máxima popular entre los logísticos con experiencia es que “no hay manera de saber si una ruta
de reparto está bien diseñada hasta que se da el mismo problema a dos personas distintas y se
comparan las soluciones obtenidas”. Más que método de comprobación, la máxima defiende
implícitamente la ausencia de método en la solución; si esto fuera así, se podría resolver el mismo
problema dos, tres, diez veces y, aun siendo las soluciones coincidentes, no tener garantías de que
cualquiera de ellas es buena (más precisamente, sin saber cómo es la solución obtenida de distinta
respecto a la solución óptima).
El objeto del presente apartado es establecer y aprender guías de diseño de rutas de reparto, y entender
cómo debe diseñarse un sistema de distribución física.
La formulación básica del problema del diseño de rutas de reparto es la siguiente: una empresa dispone
de una flota de vehículos con base en un almacén para efectuar el reparto a clientes dispersos en una
región geográfica determinada; se pretende encontrar aquella configuración de rutas de reparto que
minimice alguna expresión del coste total de viaje medido en distancia, tiempo, etc.
Una primera parte de este apartado se dedica a revisar los algoritmos de optimización y heurísticos más
conocidos para la solución del problema del diseño de rutas. La segunda parte, a resumir los principales
hallazgos de las aproximaciones continuas.
Esta visión dual y complementaria debe ayudar a resolver de forma sistemática una gran parte de los
problemas de rutas de reparto. Naturalmente, los problemas reales contienen complicaciones adicionales
creadas por incidencias, gestión de retornos en vacío, decisiones en tiempo real, restricciones operativas,
etc., que también son analizables.
La tendencia habitual es integrar un proceso de diseño y toma de decisión sobre rutas con el sistema de
teleinformación para conformar un sistema de gestión DRP (Distribution Requirements Planning) o un
sistema experto.
La formulación del problema de optimización quizás más conocida es la proporcionada por Fisher y
Jaikumar (1981). Se plantea el siguiente programa lineal con variables auxiliares enteras:
Sujeto a:
Σi qi yij ≤ Ck para k=1,...,m (1a)
Σj xijk = Σj xjik = yik para i=1,...,n y k=1,...,m (1b)
Σk yik = 1 para i=2,...,n y Σk y1k = m (1c)
xijk = 1, si el vehículo k visita el cliente j inmediatamente después del cliente i; 0, en caso contrario. (1e)
yik = 1, si el cliente i es aprovisionado por el vehículo k; 0, en caso contrario. (1f)
La función objetivo minimiza el coste total de transporte sumando las contribuciones de cada arco (i,j)
sólo cuando éste pertenece a una ruta determinada asociada a un vehículo k. La condición (1a) indica
que la capacidad de cada vehículo en particular no puede ser sobrepasada; la condición (1b) expresa
que cada cliente debe ser visitado por un vehículo (excepto el almacén, que es visitado por los m
vehículos); la restricción (1c) asegura que una vez un vehículo ha llegado a un cliente, no se queda allí
y va a visitar más clientes (o regresa al almacén); las restricciones (1d) se encargan de eliminar ciclos
internos y sub-rutas, aprovechando un teorema sobre grafos conexos. Por último, las condiciones (1e)
y (1f) indican los dos únicos posibles valores de las variables auxiliares xijk e yik; es este carácter de
variables enteras o dicotómicas el que transfiere a todo el problema una complejidad de solución
notable y hace ardua la aplicación de conocidos algoritmos de solución de programas lineales
(simplex, Karmarkar, etc).
Puede hacerse una formulación equivalente del problema trabajando con costes de rutas factibles (por
capacidad de los vehículos) que es quizás más elegante pero más difícil de entender; naturalmente la
formulación como programa matemático también incluye variables enteras y aquí radica la dificultad de
su solución aun con ordenadores potentes. Por último, existen formulaciones basadas en programación
dinámica (ver, por ejemplo, Lawler et al., 1985, página 436) que tampoco se incluyen aquí.
No es factible solucionar un programa lineal entero de forma eficiente para los tamaños de problema que
acontecen en la práctica. Para problemas pequeños y medianos, es posible utilizar la técnica de acotación
y bifurcación (branch and bound) o explotar la estructura particular del problema y aplicar la
descomposición de Benders (que, por cierto, no tiene por qué funcionar en problemas generales, como lo
han demostrado numerosos artículos en revistas de investigación operativa pese al éxito y expectativas
creadas inicialmente).
La referencia Lawler et al. (1985) cita que el problema de diseño de rutas de reparto (vehicle routing
problem, VRP, como se le conoce en la literatura especializada) de mayor tamaño que se ha resuelto,
demostrando la optimalidad de la solución, contenía únicamente 53 clientes y 8 vehículos; estos tamaños
son claramente insuficientes para empresas repartidoras de productos de gran consumo a comercios
detallistas como bares, granjas, etc.
Supongamos una región de servicio de un determinado almacén de área A que contiene N clientes a
visitar. Para un caso real, es posible que N sea del orden de varias docenas (quizás centenares de
clientes) esparcidos más o menos uniformemente en A (si los N clientes delimitan una región convexa
A', A'⊂ A, significativamente inferior a A, tomaremos A' como la región de servicio efectiva del
almacén). Supongamos también, para visualizar más fácilmente el problema, que todos los clientes
solicitan aproximadamente la misma cantidad (en notación de la subsección anterior, qi≈constante para
todos los clientes i=2,..., n; en la notación actual, N=n-1, al considerar ahora el almacén
independientememte de los clientes; obsérvese que para valores grandes de N y n, esta matización carece
de importancia) y que la flota de vehículos es homogénea (idéntica capacidad de los vehículos para
objetos homogéneos en volumen y peso). Aunque estas hipótesis no son tan restrictivas como a primera
vista parecen, las relajaremos más adelante.
Un vehículo genérico, pues, puede visitar C clientes como máximo por restricciones de capacidad. Las
restricciones pueden venir por peso o volumen (dependiendo del tipo de mercancía) o, simplemente,
tiempo (la “capacidad” efectiva de las furgonetas de reparto de paquetería urgente viene dada por la hora
máxima de reparto más que por volumen y peso). Por simplicidad de notación, C representará a partir de
ahora la capacidad de un vehículo (en número máximo de paradas); la traducción de esa capacidad a
unidades físicas (m3, kg, minutos) se realiza multiplicando C por la carga promedio repartida a un cliente
en m3, kg o minutos/parada (en el caso de restricción temporal, el tiempo invertido en el trayecto
también juega un papel importante; la capacidad en minutos sería C multiplicado por los minutos/parada
más los minutos promedio de trayecto entre dos clientes consecutivos).
Si N=1, la distribución es de un origen (almacén) a un destino (cliente, a distancia fija del almacén). La
distribución adecuada, como se ha visto, es aquella que envía un tamaño de envío óptimo en el sentido
de que minimiza los costes asociados al transporte y al mantenimiento del inventario conjuntamente. En
general, para mercancías baratas (bajo coste por kg), se tiende a enviar camiones llenos (siempre que las
necesidades de espacio ocasionadas por el almacenamiento de la mercancía no sean exorbitantes). Hacia
esta misma tendencia apuntan altos costes unitarios de transporte, grandes distancias a recorrer entre el
almacén y el cliente, y elevados ritmos de consumo de la mercancía.
Ya se ha insinuado que puede convenir enviar vehículos parcialmente llenos para mercancías muy caras
o cuando los costes de mantenimiento de inventario son muy elevados. Todos los factores mencionados
que intervienen en la decisión de efectuar el envío de forma óptima están relacionados con la variable de
decisión (tamaño del envío) por medio de una raíz cuadrada; esto indica que si el coste unitario de
transporte pasa a ser el doble, el tamaño óptimo de envío aumenta pero menos que el doble
(exactamente, un 41%).
Para N>1, la distribución es de un origen (almacén) a muchos destinos (clientes). Es este caso, lo más
eficiente es visitar varios clientes con un mismo vehículos realizando paradas múltiples. Con este
sistema, puede gestionarse el tamaño óptimo de envío de cada cliente con la capacidad física del
vehículo variando el número de paradas por vehículo, de manera que no existen motivos para enviar
vehículos que no estén completamente llenos.
Cuando N es muy grande, como ocurre en las aplicaciones prácticas, es posible que se necesiten varias
rutas de reparto para visitar los N puntos en un periodo de tiempo determinado. Cada una de estas rutas
de reparto debe delimitar una zona de reparto cuyo conjunto forme una partición de la región de servicio
A (es decir, cada cliente sea visitado por un solo vehículo).
Otra consideración previa vista también al hablar de localización (capítulo 3), es que el almacén debe
ocupar la posición del centro de gravedad de la demanda, es decir, el centro de gravedad de la región
de servicio A; esto minimiza la distancia de acceso a los clientes, aunque a veces no siempre es
posible (ejemplo: empresa que nació en una determinada ciudad de la costa y ha crecido hasta realizar
distribución a escala nacional pero manteniendo su almacén regulador en la ciudad de origen; debido a
la mala ubicación del almacén respecto al centro de gravedad de su demanda nacional, sus costes de
distribución son mayores que el mínimo obtenible, pero es posible que por otro lado la empresa esté
pagando alquileres muy bajos o su demanda fuera de la ciudad de origen no justifique un traslado de
almacén).
La distribución a N puntos de reparto con vehículos que pueden visitar un máximo de C puntos por viaje
necesita aproximadamente de (N/C)+ rutas de reparto, donde (⋅)+ indica el número entero más próximo al
argumento por exceso.
Puesto que los vehículos van llenos (excepto quizás uno de ellos), el número de clientes que se deberá
visitar en una ruta de reparto es, precisamente, C. Para la mayoría de las aplicaciones prácticas, C puede
oscilar entre valores de 3-4 clientes por día (reparto de muebles, por ejemplo: otra particularidad de los
sistemas de distribución óptimos es la separación de operaciones; en general, no interesa mezclar el
reparto con la recogida y, en el caso de lo muebles, interesa diferenciar la entrega del montaje; así operan
la mayoría de los grandes almacenes a costa de un sacrificio adicional del cliente: su presencia el día de
la entrega y el día del montaje, usualmente, el día siguiente de la entrega; sin embargo, si este requisito
de presencia se combina con una información precisa sobre la hora de visita, con una franja de 2 horas,
información que no proporcionan los distribuidores de muebles más “caseros”, el cliente percibe un nivel
de servicio global superior al procedimiento habitual de entrega y montaje secuencial) hasta varias
decenas de clientes por día (paquetería). En cualquier caso, los C clientes deben configurar una zona de
reparto compacta y “redondeada” (convexa), elongada y orientada hacia el almacén (así se minimiza la
distancia de acceso a las zonas de reparto).
Una zona de reparto genérica estará situada a una distancia de acceso r del almacén (distancia del
almacén al centro de gravedad de los puntos de demanda que contiene la zona de reparto en cuestión); la
operativa es, pues, la siguiente: el vehículo sale lleno del almacén con carga para visitar a C clientes y se
dirige directamente (sin parar) a su zona de reparto correspondiente; allí empieza a repartir a los clientes
y, una vez vacío, emprende el camino de regreso al almacén. La figura 5.1 esquematiza una zona de
reparto de forma rectangular (la forma geométrica exacta no es muy importante, pues las zonas deben
empaquetarse hasta cubrir la región de servicio A; las guías de diseño que exponemos aquí son
insensibles a pequeñas variaciones en la forma geométrica de las zonas, mientras se mantenga su área y
elongación).
Notemos que para una densidad de demanda δ (definida como el número de puntos por unidad de área)
constante dentro de una zona de reparto, el área a de esa zona está determinada, puesto que a lo sumo
podrá contener C puntos: a = C/δ.
La esbeltez β (cociente entre anchura de la zona y su largura) de la zona de reparto, sin embargo, puede
oscilar entre un valor infinitesimal (zona extremadamente alargada) y la unidad (zona cuadrada; una
disposición de zonas de reparto alargadas pero con el lado más largo no orientado hacia el almacén
produce una distancia mayor de recorrido).
Para una zona muy esbelta (β<<1), bastará con visitar la mitad de los clientes en el viaje de ida
(siguiendo una banda de anchura la mitad de la zona de reparto) y el resto en el viaje de vuelta (por el
otro lado de la zona); dentro de la zona de reparto, la distancia transversal a la dirección de avance
recorrida al conectar los puntos será pequeña necesariamente, puesto que la zona es muy estrecha; lo
contrario ocurre con la distancia longitudinal (en el sentido de avance).
Del mismo modo, si la zona es poco esbelta (β≈1), la distancia longitudinal será lo más corta posible,
pero habrá previsiblemente bastante zigzagueo en la dirección transversal al sentido de avance. Es
intuitivo que entre los extremos comentados tiene que existir un punto de balance que proporcione la
esbeltez óptima de la zona de reparto.
Daganzo (1984b) demuestra que la esbeltez que minimiza la distancia total (transversal y longitudinal)
entre puntos consecutivos de la zona de reparto es
β0 ≈ 6/C
Este valor para la esbeltez no es aún el valor óptimo, pues su cota superior es βmax=1 y, además, debe ser
posible realizar una partición de la región de servicio que permita el empaquetado de zonas de reparto;
esto puede conllevar tener que utilizar una esbeltez superior a la calculada β0. En resumen, la esbeltez
óptima es el resultado de la siguiente expresión:
Antes de pasar a dar la “receta” para la construcción manual de rutas de reparto, conviene comentar algo
sobre el orden de visita de los C clientes asociados a una zona de reparto.
El orden de visita de los puntos dentro de una zona de reparto nos brinda la oportunidad de introducir el
problema del viajante de comercio (Traveling Salesman Problem, TSP), quizás el problema más
estudiado de la optimización combinatoria.
Dados N puntos y una matriz de distancias entre ellos {dij} (i,j=1,...,N), se trata de encontrar el circuito
que visita los N puntos con una distancia total mínima. El circuito comienza y acaba en un mismo punto,
pero su determinación es independiente de ese punto (el circuito TSP es una característica topológica
intrínseca de la disposición de los puntos y la red de transporte, pero no depende de qué punto se haya
considerado como origen). De igual manera, es simple deducir que el circuito debe visitar cada punto
una y sólo una vez (en caso contrario, no es óptimo).
En otras palabras, dada una asignación arbitraria de los N primeros números enteros a los N puntos, {n1,
n2, ..., nN} con nk ∈ {1,...,N}, se trata de encontrar la permutación que minimiza la expresión
El número de circuitos posibles es (N-1)!. La enumeración y evaluación de todas las soluciones posibles
para cualquier problema de más de un par de docenas de puntos es intratable aun con los más potentes
ordenadores.
Su formulación como programa matemático se concreta en un programa lineal con variables de decisión
enteras, de solución muy ineficiente por procedimientos del tipo branch-and-bound. En la literatura
técnica, el problema se reduce a encontrar un ciclo hamiltoniano óptimo, para el que se conjetura que no
existen algoritmos eficientes de solución (contrariamente al problema dual, el ciclo euleriano o
“problema del cartero chino”, de solución sencilla).
a) Casi aditividad. Para una densidad de puntos constante, la longitud del circuito TSP es aproxima-
damente proporcional a N.
b) Sin cruces. La desigualdad triangular asegura que el circuito TSP no debe intersectarse a sí
mismo (en caso contrario, siempre puede encontrarse una solución mejor deshaciendo la
intersección). Esta propiedad no es extrapolable a grafos direccionados (cuando las calles tienen
un solo sentido).
c) Convexidad. Si los N puntos delimitan un contorno que encierra un espacio convexo, el circuito
TSP visita los puntos de la frontera de forma consecutiva (en caso contrario, se produce un cruce).
Una manera sistemática de visitar todos los puntos es cubrir la zona de reparto a por una determinada
geometría de bandas o cintas de anchura w, y visitar entonces los puntos en el orden en que aparecen en
un sentido de avance de la banda. La longitud de la banda es a/w.
Una banda muy ancha contendrá vaivén transversal al sentido de avance de la banda, pero poca distancia
longitudinal. Al contrario, una banda muy estrecha casi no tendrá vaivén transversal (la banda es tan
estrecha que no da lugar a una ubicación de puntos muy dispar), pero es posible que las idas y vueltas en
sentido longitudinal sean importantes para cubrir el área a. Es posible formular como función objetivo la
distancia media entre puntos consecutivos y, minimizándola, obtener una anchura de banda óptima (ver
Daganzo, 1984a). El procedimiento de solución manual es sencillo: calcular el ancho de banda óptimo,
dibujar un patrón de banda que, aproximadamente con el ancho calculado, cubra de forma natural la
zona a cerrando un circuito; entonces, basta empezar por un punto arbitrario y una dirección de vance
de la banda arbitraria e ir visitando los puntos que aparecen de forma ordenada. La figura 5.2 muestra
esta operativa para un caso de 111 puntos uniformemente distribuidos en un rectángulo de 6x10 cm; la
distancia del circuito mostrado es de 81,3 cm.
Es más, no hace falta determinar concretamente el circuito para prever su longitud total a priori. A
continuación se expresan las distancias obtenidas con el método de bandas para las dos métricas más
usuales:
Lk ( P1 , P2 ) = + ( X1 − X 2
k
+ Y1 − Y2 )
k 1/ k
Los anteriores valores, experimentalmente, se encuentran un 20% por encima de los valores óptimos
(tours TSP). Varios autores (Eilon et al. 1971, Robusté et al. 1990) han conjeturado los siguientes
valores para los circuitos TSP:
Distintas mejoras manuales permiten reducir la rigidez de la solución con bandas y disminuir la longitud
del circuito encontrado en un 12-15%:
En definitiva, con simples procedimientos de construcción manual pueden solucionarse en una hora y
con un sobrecoste esperado de un 5-8%, problemas TSP de más de 200 puntos. Esta habilidad ha sido
comprobada de forma experimental y repetidamente pidiendo a estudiantes de doctorado solucionar
con guías y sin ellas un mismo problema de 240 puntos uniformemente distribuidos en un rectángulo
de 6x10 cm.
Precisiones mayores son difíciles de conseguir manualmente. Más adelante se presentará brevemente un
procedimiento de afinado por ordenador de una buena solución inicial obtenida de forma manual.
estrategia de las bandas debería proporcionar una solución muy precisa para la visita de los puntos dentro
de cada zona de reparto. En efecto, basta con subdividir longitudinalmente cada zona de reparto en una
banda que va y vuelve. El vehículo accede a la zona de reparto lleno (sin parar desde el almacén) y
comienza a repartir siguiendo la banda (una de las dos semizonas), vuelve por la otra semizona y queda
vacío justo cuando ha visitado el último punto de la zona de reparto.
Si la zona de reparto tiene pocos puntos, veremos que debe ser redondeada. En ambos casos es sencillo
determinar el procedimiento de visita de los puntos dentro de una zona de reparto: si existen muchos
puntos (C alta), el procedimientos de las banda es muy preciso; si existen pocos puntos no puede
aplicarse el procedimiento de las bandas, pero el problema es entonces sencillo por el limitado número
de puntos (menos de 10). Estamos ya en condiciones de proporcionar los pasos para la construcción de
rutas de vehículos, que se resumen en la tabla 5.1.
β*≈1 Para cada zona, borrar una línea y conectar los dos extremos al
A3 almacén. La línea óptima será normalmente aquella cuyos
extremos estén más cerca del almacén.
A4 Afinar (con un ordenador, si se desea).
B1
Si β*≈4(C/N), dividir la región A en zonas en forma de sector
circular (método de barrido).
La figura 5.3 muestra una aplicación real de esta metodología para el diseño de zonas de reparto del
periódico San Francisco Chronicle a domicilio. En primer lugar se muestra la imprenta y las zonas con
las que trabajaba el periódico, después de muchas alteraciones basadas en “prueba y error”. A
continuación se muestra la solución obtenida sin mucho esfuerzo con los pasos indicados en la tabla 5.1.
La orientación de las zonas sigue la cuadrícula de las calles de San Francisco (sólo una calle es diagonal:
Market St.); el distinto tamaño de las zonas se ajusta a la densidad de demanda. El diseño obtenido
manualmente tiene un coste ligeramente inferior al usado por el periódico.
La guías de diseño de rutas de reparto vistas hasta aquí pueden ampliarse hasta incluir extensiones
como costes no lineales (para productos perecederos, por ejemplo), ventanas temporales de reparto
(los clientes establecen unos horarios para realizar el reparto; dos clientes muy cercanos en distancia
pueden estar muy alejados en tiempo si pertenecen a ventanas temporales distintas; el número de
vehículos/km realizados para repartir la misma demanda aumenta y existe solapamiento de zonas de
reparto), reparto de objetos heterogéneos (mezcla de densidades y precios), varios modos de
transporte (para la aplicación de las aproximaciones continuas es conveniente establecer la idoneidad
de cada modo y trabajar luego con redes unimodales), restricciones del tiempo de transporte de los
conductores, etc.
En ocasiones, puede interesar afinar la solución obtenida o la existente. Para ello pueden utilizarse
diversos métodos de perturbación de soluciones base que cada vez van buscando soluciones mejores.
Existe un grupo de algoritmos de simulación que, además de constituir en sí mismos potentes métodos
de solución casi óptima, tienen un papel sin parangón como afinadores de una solución base.
5.3 Heurísticos
Los programas informáticos que existen en el mercado, obviamente, no pueden basarse, por razones de
tiempo de ejecución, en formulaciones que lleven al óptimo global del problema. Por este motivo existen
docenas de algoritmos heurísticos que proporcionan, en un tiempo razonable, una solución también
razonablemente buena en algún sentido. Aquí sólo se comentarán tres de los más clásicos, que producen
buenos resultados para la mayoría de los problemas y además son sencillos de aplicar.
Quizás es el algoritmo heurístico más sencillo de aplicar y entender; por este motivo es usado con
prodigalidad por los profesionales de la logística. Sin embargo, no conviene aplicarlo en todos los casos.
Pertenece al conjunto de heurísticos de dos fases: “agrupar primero y diseñar las rutas luego” (este orden
produce mejores resultados usualmente que el orden inverso). Supongamos que las distancias se miden
con una métrica euclídea (también puede extenderse a otros tipos de métrica; las distancias pueden verse
afectadas de “factores de ruta” que reducen la distancia a vuelo de pájaro a distancia reales en la red de
transportes). La ubicación de cada cliente que debe visitarse puede darse entonces en coordenadas
polares (ri,θi) con el almacén situado en el origen de coordenadas (r1=0), y un cliente arbitrario i=2,
fijando, junto con el almacén, el origen de los ángulos (θ2=0). Los clientes han sido etiquetados de
manera que θ2≤...≤θn. El algoritmo tiene los pasos siguientes:
Ya se intuye que la solución proporcionada por este algoritmo no es óptima y depende enormemente
del cliente escojido para empezar a “barrer” (aquel con θ2=0) y del orden en el cual se van asignando
los vehículos. De hecho, en ciertos casos la aplicación de este algoritmo no es ni siquiera
recomendable.
Paso 1. Calcular los ahorros sij = c1i-cij-cj1 para todos los pares de clientes i y j.
Paso 2. Ordenar los ahorros en orden decreciente.
Paso 3. Empezando por el principio de la lista ordenada, ejecutar los siguientes pasos:
Paso 4. Buscar el primer arco factible según las restricciones impuestas al problema de diseño de
rutas (capacidad de los vehículos, número de vehículos), que puede usarse en expandir uno
de los dos extremos de la ruta en construcción.
Paso 5. Si la ruta no puede extenderse más, terminarla. Escojer el primer arco factible en la lista
ordenada para empezar una ruta nueva.
Paso 6. Repetir los pasos 4 y 5 hasta que no se puedan escoger más arcos.
Es factible que este algoritmo deje clientes “colgados” (sin asignación a una ruta particular) o bien
produzca rutas circulares, y se ha comprobado su inoperancia para algunos casos concretos (por ejemplo,
cuando los clientes ocupan posiciones equidistantes en los vértices de una red cuadriculada).
Se basa en determinar unas “semillas”, una para cada vehículo, a partir de las cuales se formarán las
rutas. Adelantamos aquí que la solución final depende de cómo se hayan escogido esas semillas.
Paso 1. Escoger m clientes para ser semillas de rutas y asignar un vehículo a cada una de ellas.
Paso 2. Para cada cliente i y para cada ruta k, calcular un coste de inserción dik relativo a la semilla
de la ruta.
Paso 3. Resolver el problema de asignación generalizada siguiente:
Minimizar Z = ∑∑ d ik y ik
i k
5.4 Metaheurísticos
El artículo de Robusté et al. (1990) describe en detalle el destemple o recocido simulado, Simulated
Annealing, y constituye una referencia pionera en la aplicación de este algoritmo al diseño de rutas de
reparto.
Si se utiliza el algoritmo de recocido simulado clásico (Robusté et al., 1990) se puede resolver el
problema de las rutas de vehículos para los casos que tienen igual número de camiones que rutas y sin
la imposición de carga máxima recogida por cada ruta ni tiempo máximo de trabajo de los camiones.
Este algoritmo es indicado cuando las cargas de basura que deben recogerse en cada núcleo son muy
parecidas (distribución homogénea de cargas) y pequeñas en comparación a la capacidad del camión,
y que la jornada de trabajo tampoco sea un factor restrictivo. En esos casos, en la configuración
óptima obtenida cada camión sólo hace una ruta diaria.
- La solución se dará por definitiva cuando se cumpla una de las condiciones de parada.
- La función coste es el tiempo total utilizado por los vehículos para realizar las rutas.
Robusté et al. (1990) consideraron tres tipos de perturbaciones aleatorias: la inversión de un tramo
de una ruta, el traslado de un tramo de una parte a otra de la misma ruta y el intercambio de un
tramo de una ruta por el tramo de otra. La figura 5.4 representa gráficamente estos tipos de
perturbaciones aleatorias. La sucesión de letras representa una ruta y cada una de las letras un núcleo
de recogida de basura. Así, la letra O representa el centro logístico (planta de tratamiento de residuos,
vertedero, incineradora, terminal de transporte, etc.) de donde salen y regresan los camiones.
Se necesita la construcción de una solución inicial para poder empezar las perturbaciones. Aunque se
podrían construir rutas iniciales uniendo los núcleos aleatoriamente, también se puede intentar
empezar la optimización en la solución inicial con la elección de los núcleos que formarán una ruta
por su proximidad.
Se han definido tres condiciones de parada. La primera de ellas, cuando existe un número determinado
de iteraciones consecutivas con el mismo valor de la función objetivo. La segunda, cuando se hayan
El recocido simulado clásico sólo puede resolver unos casos muy concretos y deja sin solución
aplicable otros muchos. Por este motivo, se ha desarrollado una modificación del algoritmo del
recocido simulado para poder resolver los otros casos, como aquellos en que la demanda de recogida
de los núcleos sea heterogénea o los casos en que la capacidad de los camiones sea restrictiva. El
algoritmo modificado ha sido programado en el programa RESACCA (REcocido Simulado Aplicado
a los Circuitos de CAmiones de recogida de basuras; Magriñá, 2000).
Los factores relevantes para el problema específico de la recogida comarcal de basuras son:
- Restricción de no superación de la capacidad del camión en cada ruta.
- Restricción de no superación de la jornada de trabajo en cada camión.
- Posibilidad de que ciertos núcleos de demanda puedan tener cargas más grandes que la
capacidad del camión.
- Posibilidad que un mismo camión realice más de una ruta.
En primer lugar, para considerar las limitaciones de la capacidad de los camiones y de la jornada de
trabajo hay que añadir dos condiciones más cuando se tantea una modificación aleatoria. Es decir,
para aceptar una nueva solución, aparte de cumplirse el criterio de recocido simulado, se tiene que
cumplir que en cada ruta la suma de la basura recogida no supere la capacidad del camión y que todos
los camiones no trabajen más de la jornada máxima establecida. Estas dos restricciones que se han
añadido producen una reducción del número de soluciones posibles, ya que, a diferencia del criterio
de recocido simulado, estas restricciones son independientes de la iteración y sólo dependen de la
configuración específica de la solución analizada.
Fig. 5.6 Solución de un caso sencillo con demanda heterogénea (5 camiones, 24 núcleos)
En los casos reales se plantea también la posibilidad de que haya núcleos con demanda de recogida
más grande que la capacidad de camión. Si eso sucede, el algoritmo fracciona la carga de los núcleos
para que se visiten varias veces y ninguna de las veces la carga recogida sea más grande que la
capacidad del camión. Es sencillo demostrar que la partición óptima fracciona las cargas en unidades
de camión más otra carga con el resto. De esta manera, las partes que son iguales a la capacidad del
camión conforman una ruta por sí solas y no entran en el juego de las perturbaciones aleatorias, y la
parte con el resto es tratada como los otros núcleos con carga más pequeña que la capacidad del
camión.
Para poder considerar diferente número de camiones y rutas y, por tanto, que un camión pueda realizar
diferentes rutas dentro de su jornada de trabajo, hay que añadir otro tipo de perturbación aleatoria. De
esta manera, a las perturbaciones de inversión, traslación e intercambio, hay que sumar la de cambio
de asignación de camión. Es decir, cada ruta tiene asignado un camión, que es el que tiene que realizar
dicha ruta y, con esta perturbación, una determinada ruta que era realizada por el camión X será
realizada por el camión Y. Como es obvio, para aceptar esta nueva solución, tienen que cumplirse los
tres criterios que se imponen en todas las iteraciones: criterio de recocido simulado, capacidad
máxima de la ruta y jornada máxima que puede realizar el camión.
Hay que introducir a priori en el modelo el número camiones y el número de rutas que se van a
utilizar. Esto es un inconveniente, ya que el número de camiones sí que es un parámetro de diseño
pero el número de rutas utilizadas no. Para evitar este problema, al programa se le introduce el número
de vehículos y un intervalo de posibles valores de la variable “número de rutas”. El mínimo de este
intervalo suele considerarse el número de camiones. El máximo depende de las distancias que se
deben recorrer y las cargas que se deben recogerse en cada caso concreto. Normalmente, con el
máximo igual al doble del número de camiones, es suficiente. De esta manera, el programa intenta
encontrar una solución inicial con el mínimo del intervalo; si lo consigue, calcula la optimización con
el recocido simulado modificado; si no lo consigue, lo intenta con el siguiente valor del intervalo, y
así sucesivamente hasta llegar al final del intervalo. Así, se hace la optimización con el mínimo
número de rutas que puede calcular. Este planteamiento se basa en el criterio que normalmente el
tiempo total empleado es menor si utilizamos menos rutas.
Finalmente, falta explicar cómo se determina la solución inicial. Esta solución inicial tiene que
cumplir las dos restricciones ya expuestas: máxima carga por ruta y máximo tiempo empleado por
camión. Por este motivo, en muchos casos se hace difícil encontrar un algoritmo sencillo que dé una
solución inicial que cumpla estas dos restricciones. Esto es debido a que esta primera solución está
poco optimizada y, por lo tanto, los recorridos que utiliza rápidamente llegan a capacidad máxima de
la ruta o a jornada máxima. Para poder superar esta dificultad se ha ingeniado el recocido simulado
modificado e interrumpido.
El procedimiento para encontrar la solución inicial empieza en un algoritmo que agrupa los núcleos en
rutas imponiendo solamente una de las dos condiciones, la carga máxima recogida en cada ruta. Se ha
podido comprobar que en la mayoría de casos en que se conoce que existe solución posible, este
principio cluster first es capaz de encontrar esta primera solución.
Estas rutas iniciales que no cumplen la condición de no superación de la jornada máxima por cada
camión se utilizan como solución inicial en el recocido simulado modificado e interrumpido. Las
características de este algoritmo son las mismas que el recocido simulado modificado pero con unas
pocas diferencias:
- Los criterios que tienen que cumplir una perturbación para ser aceptada como nueva solución
son solamente dos: el criterio de recocido simulado y la condición de no superación de la carga
máxima por ruta.
- La función objeto, en lugar de ser el tiempo total, es sólo el exceso temporal que sufre cada
camión respecto a la jornada laboral.
- Este proceso es interrumpido cuando se llega a una solución que tiene la función objeto negativa.
El objetivo de este algoritmo es encontrar la solución que tiene mínimo el exceso respecto a la jornada
laboral. Así, provocamos la interrupción del proceso cuando la función objeto es negativa porque esto
nos indica que la solución que analiza la iteración en que nos encontramos cumple las dos condiciones
impuestas en el recocido simulado modificado. Si no se llega a una solución con función objeto
negativa implica que no se puede configurar el sistema de recogida con ese número de rutas y de
camiones.
El resultado final de aplicar RESACCA a los casos reales de recogida de basuras comarcal es que, en
general, se consiguen ahorros sobre los resultados del algoritmo Clarke y Wright (ver Magriñá y
Robusté, 2000).
Los algoritmos ACO (Ant Colony Optimization) son modelos inspirados en el comportamiento de
colonias de hormigas reales. Estudios realizados explican cómo animales casi ciegos, como son las
hormigas, son capaces de seguir la ruta más corta en su camino de ida y vuelta entre la colonia y una
fuente de abastecimiento. Esto es debido a que las hormigas pueden “transmitirse información”
gracias a que cada una de ellas, al desplazarse, va dejando un rastro de una sustancia llamada
feromona a lo largo del camino seguido. Así, mientras una hormiga aislada se mueve de forma
esencialmente aleatoria, los “agentes” de una colonia de hormigas detectan el rastro de feromona
dejado por otras hormigas y tienden a seguir dicho rastro. Éstos, a su vez, van dejando su propia
feromona a lo largo del camino recorrido y por tanto lo hacen más atractivo, puesto que se ha
reforzado el rastro de feromona. Sin embargo, la feromona también se va evaporando con el paso del
tiempo con lo que el rastro de feromona sufre, por otro lado, cierto debilitamiento. En definitiva,
puede decirse que el proceso se caracteriza por una retroalimentación positiva, en la que la
probabilidad de que una hormiga escoja un camino aumenta con el número de hormigas que
previamente hayan elegido el mismo recorrido.
Los algoritmos ACO son procesos iterativos. En cada iteración se “lanza” una colonia de m hormigas
y cada una de las hormigas de la colonia construye una solución al problema. Las hormigas
construyen las soluciones de manera probabilística, guiándose por un rastro de feromona artificial y
por una información calculada a priori de manera heurística. La regla probabilística para el caso del
TSP es
p k
(t ) =
[τ ] [ ]
ij
α
(t ) ⋅ η ij
β
j ∈ N ik
∑ [τ (t )] ⋅ [η ]
ij α β
con (5)
il lj
l∈N ik
donde pijk (t ) es la probabilidad con la que, en una iteración t del algoritmo, la hormiga k, situada
k
actualmente en la ciudad i, elige a la ciudad j como próxima parada. N i es el conjunto de ciudades no
visitadas todavía por la hormiga k. τ ij (t ) es la cantidad de feromona acumulada sobre el arco (i,j) de
la red en la iteración t. η ij es la información heurística para la que, en el caso del TSP, se utiliza la
inversa de la distancia existente entre las ciudades i y j. α y β son dos parámetros del algoritmo, los
cuales hay que ajustar.
Cuando todas las hormigas han construido una solución debe actualizarse la feromona en cada arco.
La fórmula que debe seguirse es
Se obliga a que el nivel de feromona permanezca en un rango [τ min ,τ max ] . Estos límites se imponen
con el objetivo de evitar el estancamiento en la búsqueda de soluciones. Toda la feromona se inicializa
con τ max .
Tras la actualización de la feromona puede comenzarse una nueva iteración. El resultado final es la
mejor solución encontrada a lo largo de todas las iteraciones realizadas.
El heurístico desarrollado opera como sigue (Barcos et al., 2002). En primer lugar, se envían
directamente aquellos vehículos que queden llenos en el propio origen. A partir de este momento el
heurístico trabaja con una nueva matriz de cargas en la que ya se han eliminado las cargas
correspondientes a los vehículos llenos.
Dada la gran complejidad que alberga el problema se ha creído conveniente dividirlo en dos
subproblemas: subproblema D-H y subproblema D-H-P. Ambos se resuelven mediante
optimización con colonias de hormigas. El subproblema D-H consiste en encontrar la solución
óptima del problema general pero ignorando la posibilidad de hacer peddling. El subproblema D-H-
P parte de la solución encontrada en el subproblema D-H e intenta mejorarla introduciendo la
posibilidad de hacer peddling.
En una iteración del proceso, cada hormiga de la colonia deberá elegir, para cada carga, una
alternativa de ruta entre las cinco posibles consideradas (excluyendo el peddling). Todo par
origen/destino tendrá asociado un determinado nivel de feromona y un parámetro de información
heurística para cada opción de ruta. En la resolución de este subproblema se ha decidido tomar como
información heurística la inversa del mínimo coste imputable a la carga cuando ésta sigue una
determinada ruta.
Cuando una carga se transporta a través de una ruta con hubs, el mínimo coste imputable a la misma
es la parte proporcional a la carga del coste de dicha ruta, exceptuando el coste por manipulación de la
carga en los hubs que se le imputa completamente. Sólo para el caso de envíos directos, el coste
imputable es igual al coste total de la ruta. Así, por ejemplo, si Q (i, j ) se envía a través del hub h, el
mínimo coste imputable a la misma y el parámetro de información heurística correspondiente se
calculan según las fórmulas (7) y (8) respectivamente
Q(i, j )
C ijmin = ( RD(i, h) + RD(h, j ) + 4 P + c rh C ) (7)
C
1
η ijh = (8)
Q(i, j )
C
(
4 P + RD(i, h) + RD(h, j ) + c rh C )
Por lo demás, el procedimiento es similar al descrito en el tercer apartado, excepto un detalle: sólo se
toman como válidas aquellas soluciones que cumplan con el nivel de servicio exigido en 24 horas.
El subproblema D-H-P parte de la solución encontrada para el subproblema D-H e intenta mejorarla
introduciendo la posibilidad de hacer peddling. Llámese a esta solución inicial ψ .
o
En primer lugar, para cada carga Q (i, j ) se construyen dos conjuntos de cargas candidatas a hacer
peddling en origen y en destino respectivamente (siguiendo la secuencia de ruta i-l-j en cualquiera de
los dos casos). Para que una carga Q (l , j ) sea candidata a peddling en origen con la carga Q (i, j ) es
preciso que se cumplan estas condiciones:
Estas tres condiciones serían suficientes para la pertenencia al conjunto de candidatas a peddling en
origen si Q (i, j ) y Q (l , j ) se enviaran directamente en ψ 0 . Si, por el contrario, algunas de las dos
cargas o ambas se enviaran a través de algún hub, entonces habría que añadir otra condición: el coste
de la ruta con peddling debería ser menor que el mínimo coste imputable a las dos cargas en
ψ 0 (véase el apartado 5.3).
Si no se cumple esta cuarta condición, no quiere decir que la carga Q(l , j ) no puede ser candidata a
peddling, sino que tiene menos probabilidad de serlo. En el algoritmo, esto se traduce en que Q (l , j )
sólo es considerada como candidata un porcentaje de las veces que se construye una solución. Dicho
porcentaje (probabilidad) se calcula dividiendo el mínimo coste imputable a las dos cargas en
ψ 0 entre el coste de la ruta con peddling. Lógicamente, a mayor diferencia entre ambos costes, menor
será la probabilidad.
Cada hormiga de la colonia, en cada iteración, debe construir una solución tomando cargas que se
transportan directamente o a través de hubs en ψ 0 para generar con ellas rutas que hacen peddling.
Esto se consigue eligiendo, para cada Q (i, j ) , otra carga Q (l , j ) entre sus candidatas a peddling.
Después se intenta añadir otra parada más en la ruta eligiendo entre las candidatas de Q (l , j ) , y así
sucesivamente, intentando agotar la capacidad del vehículo. Se comienza por las cargas con mayor
distancia entre el origen y el destino. Si a alguna carga se le agotan las candidatas, entonces dicha
carga se envía tal y como en ψ . Las rutas con peddling construidas deben asegurar que los plazos de
0
La elección de una carga entre las candidatas a peddling se realiza de manera probabilística, siguiendo
una fórmula similar a (5). Existirá un nivel de feromona y un parámetro de información heurística
(utilidad) asociado a cada carga candidata. La utilidad correspondiente a una ruta de peddling en
origen, según la secuencia i-l-j, se calcula así:
Q(i, j ) + Q(l , j )
U iljO = (9)
D(i, l ) + D(l , j )
D(i, j ) + D(l , j )
Es preciso aclarar que todo lo dicho en estos dos últimos subapartados respecto al peddling en origen
se aplica igualmente al peddling en destino. El resto del proceso de optimización del subproblema D-
H-P se realiza de manera similar a lo explicado en el tercer apartado, aunque con una peculiaridad
añadida: tras cada iteración, se toma la mejor solución encontrada en la misma, y a partir de ella se
realiza una mejora local. Con ella se pretenden consolidar de manera más eficiente las cargas que
todavía se transportan directamente o a través de hubs.
El resultado final para el problema general será la mejor solución encontrada a lo largo de los dos
procesos ACO descritos.
Los algoritmos evolutivos (AE) son algoritmos de búsqueda iterativa que tratan de imitar los
procesos naturales de evolución. Se diferencian de los algoritmos habituales de búsqueda (e.g.,
métodos del gradiente, hill-climbing, simulated annealing) en que la búsqueda es conducida
usando la información de una población de estructuras en lugar de una dirección o de una
estructura simple.
Los AE consideran como soluciones potenciales muchas estructuras de datos y trabajan con un
muestreo más amplio del espacio de búsqueda que los métodos tradicionales, por lo que aumenta la
posibilidad de converger al óptimo global. Sin embargo, esto no implica la necesaria convergencia al
óptimo global en un número finito de iteraciones.
Un AE mantiene una población de individuos, P(t) = (x1t, ..., xnt) en cada iteración t. Cada individuo,
xit, representa una solución potencial del problema. Cada solución se evalúa para conocer su aptitud.
El operador de selección identifica los mejores individuos de la población actual, P(t), los cuales serán
los progenitores de la siguiente generación, t+1.
Algunos miembros de esta nueva población son sometidos a transformaciones por medio de
operadores genéticos para formar nuevos individuos que, potencialmente, serán mejores.
Las transformaciones pueden ser mutaciones o cruces. Una mutación consiste en la creación de un
nuevo individuo por un pequeño cambio en un progenitor; las mutaciones sirven para aumentar la
diversidad, esto es, para tomar nuevos puntos en el espacio de búsqueda.
Los cruces son transformaciones en las que se crean nuevos individuos por combinación de partes de
varios progenitores. Después de cierto número de generaciones el programa converge y se espera que
el mejor individuo represente un óptimo cercano a la solución. La estructura de un algoritmo evolutivo
se muestra a continuación:
inicio
t← 0
inicialización de P(t) P(t):Población
evaluación de P(t)
mientras (no condición de terminación) hacer
inicio
t← t+1
selección P(t) de P(t-1)
transformación P(t)
evaluación P(t)
fin
fin
Básicamente, se han desarrollado cuatro tipos de AE: los algoritmos genéticos (AG), los programas
evolutivos (PE) (Michalewicz, 1996), las estrategias evolutivas (Rechenberg y Schwefel) y la
programación evolutivas (Fogel). El algoritmo utilizado para optimizar la función objetivo (5) es un
programa evolutivo. La diferencia fundamental entre un AG y un PE es el tipo de codificación que se
usa para los individuos. En un AG un individuo es una cadena de bits, mientras que en un PE un
individuo es un vector de números reales; ello proporciona a estos últimos más rapidez de cara a la
optimización numérica.
En internet son accesibles diversos programas de algoritmos genéticos, entre los que destaca el
sistema GENOCOP (Genetic algorithm for Numerical Optimization for Constrained Problems),
desarrollado por Michalewicz et al., que es capaz de optimizar funciones objetivo reales sometidas a
restricciones lineales en las variables de decisión, incluyendo intervalos de validez para cada variable
de decisión.
La idea principal es eliminar las ecuaciones presentes en el conjunto de restricciones y diseñar unos
operadores genéticos que garanticen que los individuos descendientes estén dentro del espacio de
búsqueda. Las ecuaciones son eliminadas al principio, junto con un número igual de variables del
problema (Michalewicz, 1996); esto modifica el espacio de búsqueda, que se convierte en un espacio
definido por un conjunto de inecuaciones. La convexidad de este espacio de búsqueda garantiza que
las combinaciones lineales de las soluciones potenciales, produzcan soluciones sin necesidad de
verificar las ecuaciones.
1. Mutación uniforme
Este operador requiere un único padre x y produce un único descendiente xt. El operador
selecciona aleatoriamente una componente k ∈ (1, ..., q) del vector x = (x1, ..., xk, ..., xq) y
produce otro vector xt = (x1, ..., xkt, ..., xq), donde xt es un valor aleatorio (distribución de
probabilidad uniforme) del rango permitido para la variable k.
El operador juega un papel importante en las fases iniciales del proceso de evolución ya que
permite a las soluciones moverse libremente en el espacio de búsqueda. Además, en las últimas
fases del proceso evolutivo, el operador permite movimientos lejos de un óptimo local en
búsqueda de un óptimo mejor.
2. Mutación de frontera
Este operador requiere también un único padre x y produce un único descendiente xt. Es una
variación de la mutación uniforme, y xkt es uno de los dos extremos del intervalo permitido
para la variable k con igual probabilidad.
Este operador sirve para problemas de optimización donde la solución óptima está cerca de la
frontera del espacio de búsqueda. Consecuentemente, si el conjunto de restricciones está vacío
y el límite para las variables es bastante ancho, el operador es engorroso.
3. Mutación no uniforme
Este operador es el responsable de la capacidad de refinamiento del sistema. Se define como
sigue: si x = (x1, ..., xk, ..., xq) es un cromosoma y el elemento xk es seleccionado para su
mutación (el dominio de xk es [lk, uk] ), el resultado es el vector xt = (x1, ..., xkt, ..., xq), donde:
La función ∆(t, y) devuelve un valor en el rango [0 y] tal que la probabilidad de que ∆(t, y)
tienda a cero aumenta con t. Esta propiedad provoca que el operador busque al principio
(cuando t es pequeño) uniformemente en el espacio, y muy localmente al final del proceso. La
función ∆(t, y) es la siguiente:
b
t
∆(t, y) = y ⋅ r ⋅ 1 − ,
T
4. Cruce aritmético
Este operador se define como la combinación lineal de dos vectores: si x1 y x2 van a ser
cruzados, la descendencia resultante es x1t = a x1 + (1-a) x2 y x2t = a x2 + (1-a) x1. Este
operador usa un valor aleatorio 0 ≤ a ≤ 1 que garantiza que x1 y x2 pertenezca al espacio de
búsqueda. a puede ser constante (cruce aritmético uniforme) o variable (cruce aritmético no
uniforme); en este último caso, a depende de la edad de la población.
5. Cruce simple
El operador se define como sigue: si x1 = (x1, ..., xk) y x2 = (y1, ..., yk) van a cruzarse en la
posición k, la descendencia será
Una propiedad de los espacios convexos es que existe 0 ≤ a ≤ 1 tal que x1t y x2t pertenecen al
espacio de búsqueda. Ahora hay que encontrar el máximo valor de a para obtener el máximo
intercambio de información posible (si a=1, el intercambio es máximo). La forma de proceder
6. Cruce heurístico
Este operador usa valores de la función objetivo para determinar la dirección de búsqueda y, si
produce descendencia, produce un único individuo.
donde r es un número aleatorio entre 0 y 1 y x2 es mejor individuo que x1. Es posible que x3 no
pertenezca al espacio de búsqueda; en tal caso se genera otro valor de r, y si después de cierto
número de intentos no se encuentra una solución, no hay descendencia. Este operador
contribuye a la precisión de la solución encontrada; sus mayores responsabilidades son el
refinado y la búsqueda en la dirección más prometedora.
Una aplicación de los algoritmos genéticos realizada por el autor en el campo del tráfico se encuentra
en Ramos, Robusté y Oñate (1996). A partir de la formulación de Yang y Yagar (1994), se desarrolló
un modelo numérico para la asignación del tráfico a rutas en ciudades con congestión, en las que
existe una red de autopistas superpuesta a la red de calles. Se asume que la elección de rutas por parte
de los viajeros sigue el principio de equilibrio de usuario de Wardrop. El problema se resuelve
utilizando un modelo convencional de equilibrio para redes discretas y un modelo continuo de
equilibrio. El resultado es una función con restricciones, cuyo óptimo expresa el flujo de tráfico en
condiciones de equilibrio. El algoritmo utilizado para optimizar esta función objetivo esta basado en la
computación evolutiva. Se utiliza una malla de elementos finitos para discretizar la red de calles, lo
cual permite la obtención de buenas aproximaciones sin necesidad de elaborar un grafo de transporte
para la red de calles. A modo de ilustración gráfica, la figura 5.7 muestra las curvas de accesibilidad
en un continuo con una red de autopistas (el círculo central es la ciudad y las depresiones discretas son
las rampas de acceso a las autopistas).
Para finalizar el capítulo, se aplican las aproximaciones continuas al problema del cartero chino
(Chinese Postman Problem CPP), ya descrito. Esta sección está basada en Carranza y F. Robusté
(1998), un artículo que sintetiza los resultados de la tesis doctoral de Octavio Carranza (1997) y aplica
el problema a la recogida de basuras puerta a puerta en Córdoba, Argentina.
Los sistemas de recogida de basuras han alcanzado una complejidad creciente, a partir de la aparición
del reciclaje y de numerosas técnicas de disposición, como el compostaje o la generación de gas a
partir de enterramiento, que se suman a la ya existente disposición en vertederos de enterramiento y a
la incineración. El proceso de recogida involucra gran parte del coste total de disposición de los
residuos sólidos urbanos.
El problema del recorrido de todos los arcos de una red en la menor distancia posible es el llamado
problema del cartero chino, analizado por primera vez por Mei-Ko en la China en el año 1962. Evans
y Minieka (1992) hacen una caracterización de los tipos de problemas alternativos que pueden
presentarse (referidos a los distintos tipos de redes, orientadas, no orientadas y mixtas) y las distintas
posibles soluciones. El problema puede transformarse en otro equivalente, que consiste en encontrar el
conjunto de caminos entre parejas de nodos asimétricos (definidos como aquéllos en donde la cantidad
de arcos entrantes es distinta a la cantidad de arcos salientes), cuya distancia total es menor. La
condición de estos caminos es la de que su inclusión en una nueva red que considere a estos caminos y
en la red original permita eliminar la imparidad de todos los nodos de la red original.
Existen diversos algoritmos presentados para resolver el problema (Cristofides, 1973; Golden y
Wong, 1981; Pearn, 1989; Lin y Zhao, 1989; son algunos de los ejemplos). La consideración básica
que se puede hacer sobre estos algoritmos es la de que ninguno de ellos ha considerado la topología de
las redes. Esta característica permite simplificar el problema para algunos casos, concretamente en
algunos tipos de las grillas cuadradas.
5.5.1 Antecedentes
Las aproximaciones continuas buscan sustituir el carácter discreto de un hecho singular cualquiera por
la frecuencia de realización de un proceso estocástico. Esto permite trabajar con funciones continuas,
resolviendo exactamente un modelo aproximado de forma rápida y con poca información en vez de
resolver aproximadamente un modelo complejo (nunca exacto). Este tipo de formulaciones –exactas–
simplifican el análisis de sensibilidad y generan guías de diseño que aportan conocimientos.
4) Existe una clara tendencia hacia soluciones interactivas en el diseño de rutas, lo cual se puede
realizar con este método a través de sistemas de información geográficos.
Las aportaciones que se han realizado en cuanto a las aproximaciones continuas, y que sirven de base
al método que se quiere proponer, son tres: 1) referida al ancho óptimo de zonas (Daganzo, 1984b) 2),
referida a las esbelteces óptimas (Daganzo, 1984a) 3), referidas a la orientación (Newell y Daganzo,
1984).
1) Ancho óptimo
Por una parte, Daganzo (1984b) busca determinar el modo como la distancia esperada en el problema
del viajante cambia con la forma de la zona. Buscando una heurística que brinde soluciones
razonablemente buenas –que se aproximen lo suficiente al óptimo– propone la siguiente solución:
suponiendo un rectángulo de lados L (largo) y 2w (ancho), se recorren la mitad de los puntos que se
encuentran en el semiancho del mismo en uno de los dos sentido de la dirección principal; la otra
mitad de los puntos se recorre en el sentido contrario, en ambos casos con independencia de la
ubicación de los puntos sobre el ancho de la zona. Si se supone que los puntos están distribuidos
aleatoriamente (según una distribución normal, por ejemplo), la distancia local recorrida entre puntos
en grillas cuadradas será
dw=w/3+1/δw (1)
2) Esbelteces óptimas
Daganzo (1984a) encuentra una fórmula simple para determinar en qué medida conviene elongar las
zonas hacia el depósito que las sirve. En la fórmula (3), d es la distancia promedio total recorrida por
punto (que se compone de una distancia local y una distancia de travesía), C es la capacidad del
vehículo (cantidad de puntos a servir) y ρ es la distancia de travesía (distancia desde el depósito al
centro de la zona a servir):
d = (2/C) [ρ-L/2] + d*, si ρ>=L/2 (3)
Buscando el óptimo de esta función para grillas del tipo de las analizadas, se llega a valores de βC de
6, con β=2w/L.
Newell y Daganzo (1984) determinan el ahorro total que se puede conseguir de acuerdo con la
orientación de la zona. Existen dos ángulos para considerar, el ángulo θ , que forma la dirección
principal de la zona con respecto a la dirección de la grilla cuadrada, y el ángulo que forma la malla
con respecto a las isócronas. Los autores deducen que el ahorro máximo por punto visitado será
1 1
d ' max = (4)
2 wδ cos φ
5.5.2 Redes ortogonales con sentidos alternativos y sin nodos interiores asimétricos
IM P A R
La función que se deberá minimizar será la (3), sólo que en este caso la distancia local que se deberá
recorrer vendrá dada por la ecuación (6), derivada de la (5). En estas ecuaciones dr es el sumatorio de
las longitudes de todos los segmentos de la red, y db es la distancia total necesaria para recorrer todo
los segmentos. En este caso w es el ancho de la malla y p es una constante cuyo valor es 0 ó 2,
dependiendo de la paridad o imparidad de los nodos asimétricos del perímetro:
w L
dr = L* +1 + w* +1 (5)
l l
L w
db =dr + −1*l + −1*l +p (6)
l l
La función (3), incorporando la particularidad de este caso y expresada tomando como variable
independiente a β, es la función (7). Se muestra su gráfica en la figura 5.9.
β *C β *C 1
f (β ) = 2 * + * (7)
δ δ β
El óptimo de la función se obtiene para β=0.5. Como se aprecia en esta figura, el óptimo tiene una
variación relativamente baja en un entorno amplio de valores de β. Analizando diversos casos
derivados del primero que hemos analizado –una malla rectangular con nodos asimétricos ubicados
regularmente a lo largo del perímetro– se puede llegar a la conclusión de que el valor de β= 0.5 es una
buena aproximación a la solución óptima. Así, se analizan diversos casos: considerar nodos
inaccesibles o incomunicados en cada uno de los 4 vértices del rectángulo, considerar avenidas,
considerar diagonales o considerar que los sentidos varían cada dos calles en ambas direcciones o en
una de ellas.
La tabla 5.2 presenta las oscilaciones porcentuales que se producen por emplear una valor de esbeltez
β distinto al ideal para cada caso. El caso base es aquel cuya deducción de esbeltez se ha presentado, y
los casos 1 a 4 son algunos de los casos ya citados, cuyas esbelteces óptimas están en las filas 2,3,5 y
6 de la tabla.
La última columna, “Diferencia”, presenta el error promedio que se obtendría por aplicar la esbeltez
de la fila correspondiente. Así, se aprecia que empleando una esbeltez de 0.5 el error promedio no
supera el 5%. Esta tabla ha sido calculada para los valores de capacidad C de 9 t (la capacidad más
empleada en camiones de recogida de basuras oscila entre 8 y 9 t) y para una densidad de basuras de
10 t/km2 y una distancia de travesía de 5 km. Se aprecia que para entornos razonables de estos valores,
el error medio de la esbeltez considerada no supera prácticamente el 1%. Las anteriores
consideraciones llevan a concluir que para rutas oientadas a 90º con la dirección de la red, el valor
óptimo de esbeltez es 0,5.
De acuerdo a la fórmula (4), el ángulo óptimo de orientación es de 45º. Con esta orientación, las
esbelteces óptimas cambian. Una de las dos situaciones que se pueden producir es que no haya nodos
inaccesibles sobre el perímetro. En este caso, la esbeltez óptima es de 0,2. En el caso de que haya
nodos inaccesibles en el perímetro la esbeltez será de 0,65.
Los ahorros que se pueden conseguir con una adecuada orientación se resumen en la tabla 5.3. Como
se aprecia en esta tabla estos ahorros pueden ser más importantes que los generados por la aplicación
de una esbeltez que se aleje del óptimo.
Tabla 5.3 Comparación de la distancia total para orientaciones a 0 y 45º con la grilla
La operación se desarrolla con dos operarios y un chófer por equipo. Las horas normales de una
jornada nocturna (horario en que se desarrolla la mayor parte de la operación) son 7, y las dos horas
siguientes son lo que se denomina horas extras al 50%. Las horas siguientes son las llamadas horas al
100%. La columna COS(1 V) indica el coste de recoger una tonelada en un segundo viaje y en horas
al 50% y las columna COS(100) indican lo mismo para toneladas recogidas en horas al 100%. La
capacidad normal de los camiones es de 9 t, pero existe la posibilidad de emplear camiones de 13 t, lo
que se considera en la columna COS(13).
En el cálculo de costes (para más detalles, ver Carranza, 1997) se han considerado tanto los costes de
personal (en horas normales y extra) como los variables y fijos del vehículo, incluida la amortización
de este último. Se consideran dos hipótesis de rendimiento, el variable, que asume un rendimiento
decreciente del equipo a partir de las 7 horas normales, y una segunda hipótesis que asume que ese
rendimiento es constante.
El sombreado de las distintas columnas en la tabla 5.4 remarca las distancias en que es rentable operar
según el tipo de política que se defina. Asumiendo que los rendimientos fueran decrecientes, con la
estructura de costes analizada se puede afirmar lo siguiente:
4) Conviene operar con camiones en segundos viajes y horas extra al 50%, aun suponiendo que se
dispusiera de camiones de 13 t hasta una distancia de 15 km con respecto a la base operativa.
5) A partir de una distancia de 16 km conviene emplear horas extra al 100% y, si se dispusiera de
camiones de 13 t, emplear éstos.
El análisis de 15 zonas de una ciudad permite avanzar a nuevas conclusiones que no se habían
vislumbrado en el desarrollo de las fórmulas para esbelteces en grillas cuadradas con sentidos
alternativamente distintos y orientaciones sucesivamente distintas. Las redes analizadas en primera
instancia se denominan de altas relaciones de distancia, pues el valor de su recorrido final para el
problema del cartero chino es muy similar al de los nodos de la red (las relaciones oscilan entre
0,85 y 0,9).
El experimento que se realizó consistió en solucionar el problema del cartero chino mediante un
algoritmo conocido (Lin y Zhao, 1989). Los valores obtenidos llevaron a bajas relaciones de distancia,
y a conjeturar sobre las causas que conducían a dichos valores. Para ello se buscaron distintas
correlaciones (tabla 5.5) que en mayor o menor medida ayudaron a corroborar algunas hipótesis. Las
dos características que distinguían a estas redes de las ya analizadas eran: la existencia de nodos
asimétrico interiores y la de que los sentidos de las calles no cambiaban alternativamente.
La principal hipótesis fue la de que los nodos interiores tenían un mayor peso que los nodos
perimetrales. Esta hipótesis fue corroborada, pues, como se aprecia en la citada tabla en la primera
correlación, la densidad de nodos asimétricos interiores es la que mejor explica la variación en
relación de recorridos. El análisis llevó a definir nuevos conceptos relacionados con los nodos
perimetrales (nodos críticos y supercríticos). Los nodos supercríticos pueden entenderse como los
nodos interiores que existirían si las zonas fueran perfectamente rectangulares. Su diferencia con los
nodos interiores reales (o la diferencia entre nodos perimetrales y críticos) nos da una idea de en qué
medida la zona se aparta de la tipología teórica ideal de grilla o square-grid. La otra conclusión que se
puede extraer es la de que la densidad de nodos supercríticos da una mejor explicación de la variación
en las longitudes de recorridos que la densidad absoluta.
La perspectiva general del experimento llevó a la necesidad de proponer una clasificación de las redes,
de acuerdo con diversas características. Una clasificación general sólo había sido realizada por Eglese
y Li (1992), con la limitación de que únicamente consideraba valores de relaciones de distancia. La
clasificación obtenida en el experimento se propone en la tabla 5.6.
Rango Tipo de red orientada Densidad de nodos Tipo de red no Densidad de nodos
impares interiores orientada impares interiores
>0.90 tipo square grid sin <5 tipo square grid <40
nodos interiores
<0.90 y >0.8 tipo square grid con >20 y >5 tipo square grid >40 y <50
nodos interiores
<0.80 y >0.7 tipo square grid <30 y >20 tipo square grid >50 y <60
o rural
<0.70 tipo square grid >30 tipo square grid >60
o rural