Problema de distancia más corta con la longitud como funciones del tiempo


10

Motivación

El otro día, estaba viajando por la ciudad en transporte público e inventé un interesante problema gráfico que modela el problema de encontrar la conexión de menor tiempo entre dos lugares.

Todos conocemos el clásico "problema del camino más corto": dado un gráfico dirigido con longitudes de borde y dos vértices , encontrar la ruta más corta entre la y (es decir, el camino minimizando el borde de longitud total). Suponiendo longitudes de borde no negativas, existen varios algoritmos y el problema es fácil.w eR + 0 ,G=(V,E)weR0+,eEs,tVst

Este es un buen modelo para el caso en el que estamos caminando, por ejemplo. Los vértices son cruces en nuestra red de carreteras y cada borde tiene una longitud fija, en metros, por ejemplo. Otra posible interpretación de los pesos de borde es el tiempo que nos lleva pasar de uno de sus vértices al otro. Esta es la interpretación que me interesa ahora.we

Problema

Ahora quiero modelar la siguiente situación. Quiero viajar del punto A al punto B en una ciudad en transporte público y minimizar el tiempo . La red de transporte público se puede modelar fácilmente como un gráfico dirigido como era de esperar. La parte interesante son los pesos de borde (ese tiempo de modelo): el transporte público (autobuses, por ejemplo) sale solo en ciertos intervalos, que son diferentes para cada parada (vértice en el gráfico). En otras palabras: los pesos de los bordes no son constantes, cambian según el tiempo que queramos usar.

Cómo modelar esta situación: Tenemos un grafo dirigido y un borde peso función que lleva tiempo como argumento y devuelve el tiempo que lleva usar el borde en nuestro camino. Por ejemplo, si el autobús del vértice al vértice sale en y tarda veces y llegamos al vértice en , entonces es el peso del borde. Claramente, .G=(V,E) w:E×R0+R0+vut=105vt=8w(vu,8)=7w(vu,10)=5

Es un poco complicado definir el peso total de la ruta, pero podemos hacerlo de forma recursiva. Deje ser una ruta dirigida. Si entonces . De lo contrario, , donde es la ruta secundaria de sin . Esta es una definición natural correspondiente a la situación del mundo real.P=v1v2vk1vkk=1w(P)=0w(P)=w(P)+w(vk1vk,w(P))PPvk

Ahora podemos estudiar el problema bajo varios supuestos sobre la función . La suposición natural es que modela "esperando tiempo ".w

w(e,t)w(e,t+Δ)+Δ for all eE,Δ0,
Δ

Si la función "se comporta bien", es posible reducir este problema al problema clásico de la ruta más corta. Pero podríamos preguntar qué sucede cuando las funciones de peso se vuelven salvajes. ¿Y si dejamos de suponer que esperamos?

Preguntas

Mis preguntas son las siguientes.

  • ¿Se ha preguntado este problema antes? Parece algo natural.
  • ¿Hay alguna investigación al respecto? Me parece que hay varios subproblemas que se deben preguntar y estudiar, principalmente con respecto a las propiedades de la función de peso.
  • ¿Podemos reducir este problema (posiblemente bajo algunos supuestos) al clásico problema del camino más corto?

Aquí hay un enfoque de referencia natural con el que se pueden comparar más respuestas a nivel de investigación. Modelarlo como un problema de accesibilidad por discretización de las unidades de tiempo en una colección de instantes , y hacer un nuevo gráfico con vértices . Luego puede colocar aristas donde . Esto ya es eficiente para muchos casos de uso (por ejemplo, con los horarios de los autobuses, solo deja que sea ​​el momento en que los autobuses llegan / salen de sus paradas), pero no funciona perfectamente todo el tiempo (considere cuándo varía continuamente durante tiempo), y es lento si es grande. TV=T×V(t0,v0)(t1,v1)t1=w((v0,v1),t0)TwT
Andrew Morgan el

Una variante simple de este problema (donde los pesos de los bordes dependen linealmente del tiempo) se llama " ruta más corta paramétrica ".
Neal Young

Respuestas:


8

Esto se conoce como el problema del "camino más corto dependiente del tiempo". De hecho, se han realizado investigaciones para este problema; vea, por ejemplo, el artículo clásico de Orda y Rom, y este reciente artículo de SODA que demuestra que cuando la función de peso de cada borde es de tamaño polinómico por partes, el camino más corto entre dos puntos fijos cambia veces.nΘ(logn)

El algoritmo de Dijkstra puede usarse para este problema, cuando se impone la política de espera, es decir, esperar en un nodo si eso reduce el tiempo de llegada final. Sin la política de espera, la situación es mucho más salvaje: la ruta más corta puede no ser simple, la ruta secundaria de una ruta más corta puede no ser la más corta entre los dos puntos finales de la ruta secundaria, las rutas que atraviesan un número infinito de bordes pueden tener un tiempo de llegada finito, etc. Vea nuevamente el documento de Orda y Rom para más discusión.


3

¿Conoces el problema de los "caminos más cortos que no disminuyen"? Fue definido para modelar situaciones como estas. Aunque es un poco menos expresivo en comparación con su formulación, existen argumentos rápidos para ello.


1

Si supone que los tiempos son integrales (lo que tiene sentido en el caso del transporte público), puede crear una red de tiempo ampliado, similar a la sugerida por Ford-Fulkerson para un flujo máximo en el tiempo (o el flujo más rápido) y encuentra el camino más corto en este gráfico en su lugar.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.