Quantas distâncias mais curtas mudam ao adicionar uma aresta a um gráfico?

22

Seja um gráfico completo, ponderado e não direcionado. Construímos um segundo gráfico G ' = ( V , E ' ) adicionando arestas uma a uma de E a E ' . Adicionamos arestas Θ ( | V | ) a G no total.G=(V,E)G=(V,E)EEΘ(|V|)G

Cada vez que adicionar uma borda a E ' , nós consideramos as menores distâncias entre todos os pares em ( V , E ' ) e ( V , E '{ ( u , v ) } ) . Contamos quantas dessas distâncias mais curtas mudaram como consequência da adição ( u , v ) . Seja C i o número de distâncias mais curtas que mudam quando adicionamos o i(u,v)E(V,E)(V,E{(u,v)})(u,v)Ciiª aresta e seja o número de arestas que adicionamos no total.n

Quão grande é ?C=iCin

Como , C = O ( n 2 ) também. Esse limite pode ser melhorado? Note que eu defino C como a média de todas as arestas adicionadas, portanto, uma única rodada na qual muitas distâncias mudam não é tão interessante, embora prove que C = Ω ( n ) .Ci=O(|V|2)=O(n2)C=O(n2)CC=Ω(n)

Eu tenho um algoritmo para calcular uma chave-t geométrica avidamente que funciona em , portanto, se C é o ( n 2 ) , meu algoritmo é mais rápido que o algoritmo ganancioso original e se C é realmente pequeno , potencialmente mais rápido que o algoritmo mais conhecido (embora eu duvide disso).O(Cnlogn)Co(n2)C

Algumas propriedades específicas do problema que podem ajudar com um bom limite: a aresta adicionada sempre tem um peso maior do que qualquer aresta já existente no gráfico (não necessariamente estritamente maior). Além disso, seu peso é menor que o caminho mais curto entre u e v .(u,v)uv

Você pode assumir que os vértices correspondem aos pontos em um plano 2D e as distâncias entre os vértices são as distâncias euclidianas entre esses pontos. Ou seja, todo vértice corresponde a algum ponto ( x , y ) no plano e para uma aresta ( u , v ) = ( ( x 1 , y 1 ) , ( x 2 , y 2 ) ) seu peso é igual para v(x,y)(u,v)=((x1,y1),(x2,y2))(x2x1)2+(y2y1)2.

Alex ten Brink
fonte
2
Tome duas panelinhas conectadas por um caminho com duas arestas. A adição de uma aresta diretamente entre as panelinhas reduz dos caminhos mais curtos. Ω(n2)
Louis
1
@ Louis: sim, existem exemplos em que uma única aresta faz com que muitas distâncias mudem, mas existem gráficos nos quais isso acontece para todas as arestas adicionadas, ou pelo menos para muitas delas? Este é exatamente por isso que eu definido ser a média ao longo de todas as bordas :)C
Alex ten Brink
1
A maioria das arestas neste gráfico que podem ser adicionadas são do tipo que eu descrevi ... #
Louis
@Louis True. Cliques contêm arestas, o que é mais do que adicionarei ao meu gráfico. O(n2)
Alex-Brink
Eu tive um mesmo problema antes, mas meu gráfico era meio esparso com e eu devo provar que as alterações médias são O (1), mas não consegui :-). Mas, no seu caso, acho que, se você encontrar uma relação entre isso e a solução do APSP, poderá obter alguns resultados. |E|=O(|V|)

Respostas:

19

n+1n

exemplo
[ fonte ]

nO(|V|)(ui,bj)i,j=1,,kkn4nΘ(|V|)Θ(|V|)Θ(|V|2)

n+2uk1bk1(u1,b1)Θ(|V|3)

(c1,c2)ni=1ni2Θ(n3)=Θ(|V|3)

Rafael
fonte
1
Isso realmente funciona e, além disso, seu exemplo pode ser mudado um pouco para se tornar euclidiano. Obrigado :)
Alex ten Brink