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:
- 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 de . Il suffit donc de compter le nombre de triangles du graphe sur et les voisins de dans (et de même pour ). Notez que et ses voisins induisent un graphe planaire extérieur (ledit graphe est un sous-graphe d'un graphe planaire de diamètre ). 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 un et comme une décomposition d'arbre de largeur bornée est facile à obtenir à partir d'un graphe plan 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 .