Recordar o diâmetro de um gráfico que é o comprimento de um caminho mais longo que mais curto em . Dado um gráfico, um algoritmo óbvio para calcular resolve o problema de caminho mais curto de todos os pares (APSP) e retorna o comprimento do caminho mais longo encontrado.G diam ( G )
Sabe-se que o problema do APSP pode ser resolvido no tempo ideal para várias classes de gráficos. Para gráficos gerais, existe uma abordagem teórica de gráfico algébrico em execução no tempo , em que é o limite para a multiplicação de matrizes. No entanto, calcular o diâmetro aparentemente não está vinculado criticamente ao APSP, como mostra Yuster .O ( M ( n ) log n ) M ( n )
Existem algumas classes de gráficos não triviais conhecidas pelas quais o diâmetro pode ser calculado ainda mais rápido, digamos em tempo linear?
Estou especialmente interessado em gráficos de acordes e em quaisquer subclasses de gráficos de acordes, como gráficos de blocos. Por exemplo, acho que o diâmetro de um gráfico acorde pode ser calculado em tempo, se for representável exclusivamente como uma árvore de clique. Esse gráfico também é conhecido como ur-chordal .O ( n + m ) G
Respostas:
A excentricidade de um vértice é o comprimento de um caminho mais curto e mais longo, começando em . O diâmetro é a excentricidade máxima em todos os vértices. Qualquer BFS de um vértice estabelecerá sua excentricidade. Uma idéia chave para encontrar um diâmetro eficiente é, portanto, pré-processar o gráfico para encontrar um pequeno conjunto de vértices, pelo menos um dos quais atinge a excentricidade máxima.v v
Executando uma pesquisa lexicográfica de largura em primeiro lugar , o vértice final geralmente possui alta excentricidade. Em particular, é garantido que tenha excentricidade no máximo um a menos do que o diâmetro para gráficos de acordes. Para algumas subclasses de gráficos de acordes, como gráficos de intervalo , é garantido que tenha uma excentricidade máxima. Isso também vale para algumas classes não cordais, como gráficos livres de .{AT,claw}
LBFS e BFS são lineares no tamanho do gráfico, mas é claro que se (como ), o tempo de execução não será . Sua discussão implica que você provavelmente realmente deseja um algoritmo linear vez de .m=Ω(n2) Kn o(n2) O(m+n) o(n2)
Portanto, para algumas subclasses de gráficos cordais, um algoritmo linear é executar o LBFS, pegar o vértice final e executar o BFS começando nesse vértice. Para gráficos de corda, isso determinará o diâmetro com um erro de no máximo 1. Os gráficos para os quais isso é exato parecem ser aqueles em que as potências pares são cordais. Estes são precisamente aqueles gráficos de acordes que não contêm sol nascente ou subgráfico que preserva distâncias.(rising sun−K2)
(fonte: graphclasses.org )
Não sei se isso pode ser estendido para calcular com precisão o diâmetro de todos os gráficos de acordes. A pesquisa de Corneil parece indicar que isso ainda estava aberto em 2004. Também não sei se foi feita uma análise para estender a pesquisa de um vértice para um pequeno número constante ou vértices iniciais; isso pode ser interessante para explorar.logn
fonte
Os gráficos de blocos mencionados na pergunta são hereditários à distância. Um algoritmo de tempo linear para calcular o diâmetro de gráficos hereditários à distância é apresentado em [1] (consulte o Teorema 5).
[1] Dragan, Feodor F. Dominando cliques em gráficos hereditários à distância. Springer Berlin Heidelberg, 1994.
fonte