Complexidade temporal da contagem de triângulos em gráficos planares

16

Contar triângulos em gráficos gerais pode ser feito trivialmente em e acho que fazer muito mais rápido é difícil (referências bem-vindas). E os gráficos planares? O procedimento simples a seguir mostra que isso pode ser feito em . Minha pergunta é dupla:O ( n log n )O(n3)O(nlogn)

  • O que é uma referência para este procedimento?
  • O tempo pode ser linear?

A partir da prova algorítmica do teorema do separador planar de Lipton-Tarjan, podemos, no tempo linear no tamanho do gráfico, encontrar uma partição de vértices do gráfico em três conjuntos modo que não haja arestas com um ponto final em e o outro em , têm tamanho delimitado por e ambos têm tamanhos superiores delimitados por do número de vértices. Observe que qualquer triângulo no gráfico fica inteiramente dentro de ou inteiramente dentro de ou usa pelo menos um vértice de com os outros dois vértices de ou ambos deA,B,SABSO(n)A,B23ABSASBS . Portanto, basta contar o número de triângulos no gráfico em e os vizinhos de em (e da mesma forma para ). Observe que e seus vizinhos induzem um gráfico planar -outer (o referido gráfico é um subgrafo de um gráfico planar de diâmetro ). Assim, a contagem do número de triângulos em um gráfico desse tipo pode ser feita diretamente por programação dinâmica ou por uma aplicação do teorema de Courcelle (sei com certeza que essa versão de contagem existe no mundo do Logspace por Elberfeld et al. E estou supondo que ela também exista no mundo linear do tempo), já que formar um triângulo não-direcionado é umSSABSAk4MSO1 e como é fácil obter uma decomposição em árvore de largura limitada a partir de um gráfico planar incorporado de -outer.k

Assim, reduzimos o problema a um par de problemas, cada um deles uma fração constante menor, à custa de um procedimento de tempo linear.

Observe que o procedimento pode ser estendido para encontrar a contagem do número de instâncias de qualquer gráfico conectado fixo dentro de um gráfico de entrada no tempo .O(nlogn)

SamiD
fonte
6
Você pode contar triângulos em gráficos gerais, tomando a matriz de adjacência e calculando . Isso leva tempo , onde é o expoente de multiplicação da matriz. Atr(A3)/6nωω<2.373
Ryan Williams
@RyanWilliams Você está certo, é claro! Vou atualizar a pergunta.
SamiD 16/03/2015

Respostas:

20

O número de ocorrências de qualquer subgrafo fixo H em um gráfico planar G pode ser contado em O (n), mesmo que H esteja desconectado. Este, e vários resultados relacionados, são descritos no artigo Isomorfismo do subgrafo em gráficos planares e problemas relacionados, por David Eppstein, de 1999; veja Teorema 1. O artigo realmente usa técnicas de largura de árvore.

Bart Jansen
fonte
19

Embora a resposta de Bart Jansen resolva o caso geral da contagem de subgráficos, o problema de contar (ou listar) todos os triângulos em um gráfico planar (ou mais geralmente qualquer gráfico de arboricidade limitada) é conhecido por tempo linear por muito mais tempo. Vejo

C. Papadimitriou e M. Yannakakis, O problema do clique para gráficos planares, Inform. Proc. Letters 13 (1981), pp. 131–133.

e

N. Chiba e T.Nishizeki, algoritmos de listagem de arboricidade e subgráficos, SIAM J. Comput. 14 (1985), pp. 210–223.

David Eppstein
fonte