Estructura de datos para rutas más cortas

19

Sea un gráfico no ponderado no dirigido con vértices aristas. ¿Es posible preprocesar y producir una estructura de datos de tamaño para que pueda responder consultas de la forma "distancia entren m G m p o l y l o g ( n ) u vGnmGmpolylog(n)u y " en el tiempo O (n)?v

El problema parece demasiado básico para no resolverse.

ilyaraz
fuente
1
En respuesta a su comentario final sobre "demasiado básico para no ser resuelto": si la consulta debe ser respondida en un tiempo constante, de hecho está bien estudiada. Pero el punto de su pregunta es que permite tiempo O (n) para una consulta (en lugar de O (1) u O trivial (m)). Aunque creo que es una pregunta interesante, no creo que la pregunta sea de importancia fundamental.
Tsuyoshi Ito
1
@ TsuyoshiIto: no veo por qué la pregunta pierde su "importancia fundamental" si permite un tiempo de consulta súper constante pero sublineal. Por ejemplo, supongamos que puedo resolver el problema anterior con la restricción de que las consultas de distancia se pueden responder en tiempo durante algún , y el tiempo de procesamiento es como máximo - ¿no me daría esto un algoritmo sub-cúbico para calcular las rutas más cortas? Personalmente, creo que esta es una pregunta muy interesante. ε > 0 O ( n 3 - ε )O(n1ε)ε>0O(n3ε)
Rachit
No sé si hay una forma general o no, pero hay una buena manera en los gráficos de ancho de árbol acotado, consulte la consulta de la ruta más corta en los gráficos de ancho de árbol acotado
Saeed
Además, si m=Ω(n2) puede crear árboles de ruta más corta (comenzando desde cada nodo) y luego responder la consulta de ruta más corta (por raíz relacionada) en O(n) , o de manera similar puede construir un dato estructura con menos tamaño de memoria.
Saeed

Respuestas:

9

Esta es una pregunta muy interesante. En un nivel alto, se pregunta si se puede preprocesar un gráfico de manera que las consultas de ruta más corta se vuelvan independientes de la densidad del gráfico, sin utilizar mucho espacio adicional, interesante, pero como usted dice, sin resolver.

Si está satisfecho con las distancias aproximadas, aquí hay una manera de obtener una aproximación de 2 . Sea G un gráfico ponderado no dirigido con n nodos m aristas. En el siguiente documento se muestra que para consultas de distancia aproximada, diseñar estructuras de datos para gráficos con m bordes no es más difícil que los gráficos en los que cada nodo tiene un grado limitado por m/n :

R. Agarwal, PB Godfrey, S. Har-Peled, consultas de distancia aproximada y enrutamiento compacto en gráficos dispersos, INFOCOM 2011

Entonces, suponga que es un gráfico acotado de m / n grados. Muestra α = O ( m / n ) nodos uniformes al azar; llame a estos nodos emblemáticos. Durante la fase de preprocesamiento, almacene la distancia desde cada nodo de referencia a cada nodo en el gráfico; esto requiere O ( m ) de espacio. Para cada nodo u , almacene su nodo de referencia más cercano ( u ) . Además, almacene el gráfico dentro de la estructura de datos, digamos como una lista de adyacencia.Gm/nα=O(m/n)O(m)u(u)

Cuando se le pregunta por la distancia entre y v , crecen bolas alrededor de ambos nodos: la bola del nodo w se define como el conjunto de nodos que están estrictamente más cerca de w que a su nodo de referencia más cercano, digamos ( w ) . Se puede demostrar que el tamaño de cada bola es O ( n 2 / m ) , en expectativa. Sea Γ ( u ) = B ( u ) N ( B ( u ) ) , donde B (uvww(w)O(n2/m)Γ(u)=B(u)N(B(u)), en expectativa.B(u)es la bola del nodo y N ( B ( u ) ) es el conjunto de vecinos de nodos en B ( u ) . Se puede demostrar que el tamaño de Γ ( u ) es O ( n )uN(B(u))B(u)Γ(u)O(n)

Respondiendo a la consulta: si , devuelve min x Γ ( u ) Γ ( v ) { d ( u , x ) + d ( v , x ) } ; de lo contrario, si , devuelve ; de lo contrario, devuelve -aproximación.Γ(u)Γ(v)minxΓ(u)Γ(v){d(u,x)+d(v,x)}d ( u , ( u ) ) + d ( ( u ) , v ) d ( v , ( v ) ) + d ( ( v ) , u ) 2d(u,(u))d(v,(v))d(u,(u))+d((u),v)d(v,(v))+d((v),u) . Es fácil demostrar que este es un2

En términos de tiempo de consulta, tenga en cuenta que las bolas en crecimiento requieren un tiempo para un gráfico acotado de grados; construir y dadas las bolas respectivas toma tiempo (ya que los vecinos se almacenan dentro de la estructura de datos); y comprobar si está vacío o no, también lleva tiempo .m / n Γ ( u ) Γ ( v ) O ( n ) Γ ( u ) Γ ( v ) O ( n )O(n)m/nΓ(u)Γ(v)O(n)Γ(u)Γ(v)O(n)

Los límites anteriores están en expectativa; Creo que es fácil desrandomizar la construcción. Desafortunadamente, esta técnica no parece permitir obtener una aproximación mejor que . Sin embargo, es una pregunta muy interesante ...2

Rachit
fuente
La técnica anterior no explota el hecho de que su gráfico de entrada no está ponderado; Puede haber algo interesante que puede hacer explotando ese hecho, pero no puedo pensar en una forma de recuperar distancias exactas. Por ejemplo, es posible reducir el tiempo de consulta a y obtener la distancia limitada por 2 d + 1 , donde d es la distancia exacta entre u y v . O(n2/m)2d+1duv
Rachit
Me di cuenta de que no entiendo por qué es una aproximación de 2. Thorup-Zwick en las mismas situaciones da 3-aprox.
ilyaraz
@ilyaraz: Tenga en cuenta que el esquema de Thorup-Zwick no requiere verificar (y, por lo tanto, responde consultas en un tiempo casi constante). Vea el documento que mencioné anteriormente para la prueba del estiramiento 2 . Γ(u)Γ(v)2
Rachit
4

Lo que necesita se llama "oráculo de distancia". Desafortunadamente, no estoy muy familiarizado con los oráculos a distancia, por lo que solo puedo remitirlo al documento seminal debido a Thorup y Zwick:

Mikkel Thorup y Uri Zwick. Distancia aproximada de oráculos. STOC '01, 2001.

Aquí hay un extracto del resumen:

Sea un gráfico ponderado no dirigido con | V | = N y | E | = m . Deje k ser un número entero. Mostramos que G = ( V , E ) puede preprocesarse en O ( k m n 1 / k ) tiempo esperado, construyendo una estructura de datos de tamaño O ( k n 1 + 1 / kG=(V,E)|V|=n|E|=mkG=(V,E)O(kmn1/k) , de modo que cualquier consulta de distancia posterior se pueda responder, aproximadamente, en tiempo O ( k ) . La distancia aproximada devuelta es de estiramiento como máximo 2 k - 1 , es decir, el cociente obtenido al dividir la distancia estimada por la distancia real se encuentra entre 1 y 2 k - 1 . [...] El requisito de espacio de nuestro algoritmo es [...] esencialmente óptimo.O(kn1+1/k)O(k)2k12k1

Según sus resultados, lo que solicita es básicamente factible incluso para gráficos ponderados: elegir produce un oráculo de distancia de tamaño O ( n 2 ) obtenido en el tiempo esperado O ( m n ) , que puede responder a sus consultas de ruta más corta con 1 -estiramiento en O ( 1 ) tiempo!k=1O(n2)O(mn)1O(1)

Distancia oráculos es un campo muy bien investigado, por lo que podrá cavar más, creo.

Gabor Retvari
fuente
2
Versión de revista: JACM 2005 .
Tsuyoshi Ito
3
O(n2)
1
Θ(logn)O(n3/2)O(n)
1O(nlog2n)O(log2n)O(logn)