Complexité temporelle du comptage des triangles dans les graphes planaires

16

Le comptage des triangles dans les graphiques généraux peut être fait trivialement en temps et je pense que faire beaucoup plus vite est difficile (références bienvenues). Et les graphes planaires? La procédure simple suivante montre que cela peut être fait en temps . Ma question est double:O(n3)O(nlogn)

  • Quelle est la référence de cette procédure?
  • Le temps peut-il être rendu linéaire?

À partir de la preuve algorithmique du théorème de séparateur plan de Lipton-Tarjan, nous pouvons, en temps linéaire dans la taille du graphique, trouver une partition des sommets du graphique en trois ensembles sorte qu'il n'y ait pas d'arêtes avec un point final dans et l'autre dans , ont une taille délimitée par et les deux ont des tailles délimitées par du nombre de sommets. Notez que tout triangle dans le graphique se trouve entièrement à l'intérieur de ou entièrement à l'intérieur de ou utilise au moins un sommet de S avec les deux autres sommets de A \ cup S ou les deux deA,B,SABSO(n)A,B23ABSASBS . Il suffit donc de compter le nombre de triangles du graphe sur S et les voisins de S dans A (et de même pour B ). Notez que S et ses voisins A induisent un graphe planaire k extérieur (ledit graphe est un sous-graphe d'un graphe planaire de diamètre 4 ). Ainsi, le comptage du nombre de triangles dans un tel graphique peut se faire directement par programmation dynamique ou par une application du théorème de Courcelle (je sais avec certitude qu'une telle version de comptage existe dans le monde Logspace par Elberfeld et al et je suppose qu'elle existe également dans le monde du temps linéaire) puisque la formation d'un triangle non orienté est unMSO1 et comme une décomposition d'arbre de largeur bornée est facile à obtenir à partir d'un graphe plan k intégré.

Ainsi, nous avons réduit le problème à une paire de problèmes qui sont chacun une fraction constante plus petite au détriment d'une procédure de temps linéaire.

Notez que la procédure peut être étendue pour trouver le nombre d'instances de n'importe quel graphe connecté fixe à l'intérieur d'un graphe d'entrée en temps O(nlogn) .

SamiD
la source
6
Vous pouvez compter les triangles dans les graphiques généraux en prenant la matrice d'adjacence et en calculant . Cela prend temps, où est l'exposant de multiplication de la matrice. t r ( A 3 ) / 6Atr(A3)/6nωω<2.373
Ryan Williams
@RyanWilliams Vous avez raison, bien sûr! Je mettrai à jour la question.
SamiD

Réponses:

20

Le nombre d'occurrences d'un sous-graphe fixe H dans un graphe plan G peut être compté en temps O (n), même si H est déconnecté. Ceci, et plusieurs résultats connexes, sont décrits dans l'article Subgraph Isomorphism in Planar Graphs and Related Problems par David Eppstein de 1999; voir Théorème 1. Le papier utilise en effet des techniques de largeur d'arbre.

Bart Jansen
la source
19

Bien que la réponse de Bart Jansen résout le cas général du comptage de sous-graphes, le problème du comptage (ou de la liste) de tous les triangles dans un graphe planaire (ou plus généralement tout graphe d'arboricité bornée) est connu pour être un temps linéaire depuis beaucoup plus longtemps. Voir

C. Papadimitriou et M. Yannakakis, Le problème de clique pour les graphes planaires, Inform. Proc. Letters 13 (1981), p. 131–133.

et

N. Chiba et T.Nishizeki, Arboricité et algorithmes de listage des sous-graphes, SIAM J. Comput. 14 (1985), p. 210-223.

David Eppstein
la source