logo

Problema Dial-a-Ride

Contenido de esta página:

  • Introducción

  • Modalidades

  • Itinerario

  • Ejemplo


Introducción

El dial-a-ride problem (DARP) consiste en el diseño de rutas y horarios de vehículos que especifican las paradas (llegadas y salidas) del vehículo entre el origen y el destino de n usuarios. El objetivo consiste en minimizar los costes de las rutas del vehículo de manera que el número de viajeros sea máximo, pero bajo ciertas restricciones.


Modalidades

Los servicios dial-a-ride deben operar según el modo estático (static mode) o dinámico (dynamic mode). En el static mode las paradas del vehículo se conocen de antemano mientras que en el dynamic mode las paradas se conocen a lo largo del día y las rutas del vehículo han de ir obteniendose a tiempo real. En la práctica los DARPs dinámicos puros raramente existen ya que el conjunto de las restricciones ya se conoce de antemano.

La mayoría de los estudios sobre el DARP asume la disponibilidad de una flota homogénea de m vehículos con base en un solo almacén. Aunque esta hipótesis refleja a menudo la realidad y puede servir como una base sólida para el diseño de modelos y algoritmos, es importante darse cuenta de que existen diferentes situaciones en la práctica. Puede haber varios depósitos, sobre todo en amplias zonas geográficas y la flota, a veces, es heterogénea.


Itinerario (scheduling)

Dada una ruta k = ( v0, …, vi,…,vq) donde v0 y vq son el depósito, el problema de scheduling consiste en determinar el tiempo de salida y el tiempo en el que en cada vértice v1,…,vq-1 debería salir de nuevo el vehículo de manera que los tiempos en pantalla u horario (time window) se cumplan y la duración de la ruta sea mínima.

Usaremos la siguiente notación:

Notemos que:

1), es decir, la hora de salida del vehículo en vi ha de ser mayor que la hora esperada de salida y la de llegada del vehículo a vi

.

2), ya que la hora real de salida del vehículo en vi ha de ser la hora del comienzo del servicio en vi más el tiempo empleado en la parada vi antes de partir.

3) , si se da la desigualdad significa que el comienzo del servicio en vi se produce con retraso, puesto que la hora esperada de salida es li.

Llegar a vi antes que ei está permitido y el tiempo de espera en ese vértice es Wi = Bi - Ai , es decir, la hora de salida en vi menos la hora de llegada a vi.

Si el problema de scheduling es posible, una solución, la evidente y más sencilla, es la siguiente:

Dicho en palabras: que el primer servicio comience a la hora prevista y que el servicio en vi comience a la hora prevista ( ei) si el vehículo ya ha llegado al vértice vi. Si todavía no ha llegado, que salga al hacerlo.

Pero reducir la duración de la ruta y disminuir el tiempo de espera puede ser ventajoso para retrasar la salida del depósito y el de los vértices. Para ello, en cada vi debemos calcular el plazo máximo que debe pasar antes de que el servicio comience, Fi, para que el tiempo del time window no sea violado. Se calcula como sigue, (1) (las fórmulas se explican más abajo):

Teniendo en cuenta que, (2):

Podemos reescribir (1) como sigue, (3):

Veamos por qué (1) ha de tener esa expresión:

Recordemos que Fi es el tiempo máximo que puede retrasarse el vehículo en el vértice vi para que no se violen los tiempos del time window.

En el interior del sumatorio tenemos el tiempo en de duración de un vértice al siguiente y más la duración del tiempo de servicio en éste primero. Es decir, el tiempo empleado desde la llegada a un vértice hasta la llegada al siguiente. En el sumatorio sumamos estos tiempos entre los vértices vi y vj, es decir, el tiempo empleado desde la llegada al vértice vi a la llegada al vértice vj.

Al sumatorio le sumamos Bi, la hora del comienzo del servicio en vi. Por tanto, la cantidad obtenida es la hora de llegada al vértice vj.

A lj, hora máxima de salida de vj, le restamos la cantidad anterior. Es decir, calculamos el tiempo entre la hora de llegada y la hora de salida.

Si esto lo hacemos para i menor o igual que j menor o igual que q y buscamos el mínimo tenemos el tiempo máximo de retraso en vi para que se cumpla el time window.

La expresión (2) es fácil de comprender y la (3) tercera se obtiene de (1) y (2).

La hora óptima de salida del vehículo del depósito puede ser determinada por el cálculo de F0.


Ejemplo sencillo de DARP

Consideremos los vértices v1 y v2 con l1 = 0, l2 = 20, d1 = 2, t1,2 = 12 expresados en minutos.

Un diagrama del problema sería

Como el vehículo llega en el minuto 0 (como máximo) a v1 podemos reducir l2 en 6 minutos ya que: el vehículo saldrá en el minuto 2 (como máximo) de v1 y llegará en el minuto l1 + d1 + t1,2 = 0 + 2 + 12 = 14 a v2 (como máximo), por tanto, podemos evitar los 6 minutos entre la llegada del vehículo a v2 y su salida de v2.

O bien, si dejamos fijos los datos, podemos calcular el F1, esto es, el tiempo máximo de retraso del vehículo en el vértice v1:

Hemos utilizado la expresión (1) teniendo en cuenta que i = 1, q = 2 y B1 = l1 (la última igualdad la hemos supuesto ya que no se nos indica ningún B1).


Referencias

The Dial-a-Ride Problem (DARP): Variants, modeling issues and algorithms, Jean-François Cordeau, Gilbert Laporte.

Combining Multicriteria Analysis and Tabu Search for Dial-a-Ride Problems, Julie Paquette, Jean-François Cordeau, Gilbert Laporte and Marta M. B. Pascoal.


acceso al foro

Creative Commons License
Matesfacil.com by J. Llopis is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.