Sea un gráfico completo, ponderado y no dirigido. Construimos un segundo gráfico agregando bordes uno por uno de a . Añadimos bordes de en total.
Cada vez que agregamos un borde a , consideramos las distancias más cortas entre todos los pares en y . Contamos cuántas de estas distancias más cortas han cambiado como consecuencia de sumar . Deje que sea el número de distancias más cortas que cambian cuando agregamos el ésimo borde, y sea n el número de bordes que sumamos en total.
¿Qué tan grande es ?
Como , también. ¿Se puede mejorar este límite? Tenga en cuenta que defino que es el promedio sobre todos los bordes que se agregaron, por lo que una sola ronda en la que cambian muchas distancias no es tan interesante, aunque demuestra que .
Tengo un algoritmo para calcular un t-spanner geométrico con avidez que funciona en el tiempo , por lo que si es , mi algoritmo es más rápido que el algoritmo codicioso original, y si es realmente pequeño, potencialmente más rápido que el algoritmo más conocido (aunque lo dudo).
Algunas propiedades específicas del problema que podrían ayudar con un buen límite: el borde que se agrega siempre tiene mayor peso que cualquier borde que ya esté en el gráfico (no necesariamente estrictamente más grande). Además, su peso es más corto que el camino más corto entre y .
Puede suponer que los vértices corresponden a puntos en un plano 2d y que las distancias entre vértices son las distancias euclidianas entre estos puntos. Es decir, cada vértice corresponde a algún punto en el plano, y para un borde su peso es igual a
fuente
Respuestas:
Considere la siguiente cadena lineal con nodos, aristas y pesos viciosamente elegidos:n+1 n
[ fuente ]
Claramente, los bordes podrían haberse agregado en orden de sus pesos y hay de ellos. Agregar el borde discontinuo (que es legal) crea rutas más cortas para todos los pares con . Como y suponiendo que , tanto la primera como la última fila contienen muchos nodos cada uno y la suma causa muchos cambios de ruta más cortos.n∈O(|V|) (ui,bj) i,j=1,…,k k≈n4 n∈Θ(|V|) Θ(|V|) Θ(|V|2)
Ahora podemos movernos "hacia afuera", es decir, agregar la siguiente arista con un peso entre y y así sucesivamente; si continuamos esto a en total cambios de ruta más cortos.n+2 uk−1 bk−1 (u1,b1) Θ(|V|3)
Si esto no lo convence, tenga en cuenta que realmente puede comenzar este "proceso" con y trabajar desde allí; de esta manera agrega aristas que causan en total muchas rutas más cortas cambios --- esto es simplemente imposible de dibujar para que quepa en una pantalla.(c1,c2) ≈n ≈∑ni=1i2∈Θ(n3)=Θ(|V|3)
fuente