Encontre caminhos mais curtos no gráfico de complemento


7

Estou procurando um algoritmo que receba como entrada um vértice e encontre os caminhos mais curtos de para todos os vértices no gráfico do complemento (não direcionado). O algoritmo deve ser executado no tempo , onde é o número de arestas no gráfico original (não no gráfico do complemento).ssO(V+E)E

Se for um gráfico, o gráfico de complemento é definido como o seguinte gráfico: é uma aresta no gráfico de complemento, se e somente se não for uma aresta no gráfico original. Em outras palavras, excluímos todas as arestas existentes e adicionamos todas as arestas que estavam faltando no gráfico original.Ge

Então, primeiro, é claro, pensei em "construir" o gráfico do complemento (substituindo os vértices na lista de adjacências por aqueles que não aparecem lá), depois executando o BFS na nova lista, mas é claro que isso significaria que o tempo de execução seria baseado nas arestas do gráfico do complemento, não no original.

Também notei, é claro, que, depois de executar o BFS no gráfico original, qualquer vértice que tenha uma distância de maior que 1 (no gráfico original) deve se tornar 1 no gráfico de complemento (porque se eles não eram vizinhos no gráfico original, são vizinhos no gráfico de complemento). Mas não consegui fazer com que o algoritmo continuasse de acordo com algumas regras específicas sobre quando a distância deveria ser atualizada e o quê. Alguma sugestão?s


3
Uma direção possível é considerar dois casos: e , para alguma constante|E|<c|V|2|E|c|V|2c<1/2 . No segundo caso, o gráfico do complemento temO(|E|)arestas, então terminamos. No primeiro caso, o gráfico do complemento é muito denso, o que poderia ajudar a acelerar o algoritmo.
Yuval Filmus

Respostas:


-1

Pessoalmente, não vejo por que isso é deixado sem resposta .

Encontrar algo no gráfico de complemento e encontrar a mesma coisa no gráfico é essencialmente ter a mesma complexidade de tempo (até fator constante).

Desde a troca entre borda (u,v) e sem borda (u,v) é apenas O(1)tempo de operação. Não precisamos transformar ou converter nada, apenas negar todas as saídas da consulta .


11
Deve ser executado em O(|V|+|E|)Tempo. NotaEé o conjunto de arestas no gráfico original, não no gráfico de complemento.
Xkxzr 26/08/19
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.