Das Zählen von Dreiecken in allgemeinen Diagrammen kann trivial in und ich denke, dass es schwierig ist, viel schneller zu arbeiten (Referenzen erwünscht). Was ist mit planaren Graphen? Das folgende unkomplizierte Verfahren zeigt, dass es in O ( n log n ) Zeit durchgeführt werden kann. Meine Frage ist zweifach:
- Was ist eine Referenz für dieses Verfahren?
- Kann die Zeit linear gemacht werden?
Aus dem algorithmischen Beweis von Lipton-Tarjans Planar-Separator-Theorem können wir zeitlich linear in der Größe des Graphen eine Aufteilung der Scheitelpunkte des Graphen in drei Mengen so dass es keine Kanten mit einem Endpunkt gibt A und der andere in B , S hat eine durch O begrenzte Größe ( √und beideA,Bhaben Größenobergrenzen von 2 der Anzahl der Eckpunkte. Beachten Sie, dass jedes Dreieck in der Grafik entweder vollständig innerhalb vonAoder vollständig innerhalb vonB liegtoder mindestens einen Scheitelpunkt vonSmit den beiden anderen Scheitelpunkten vonA∪Soder beiden vonB∪S verwendet. Daher genügt es, die Anzahl der Dreiecke in der Grafik aufSund die Nachbarn vonSinA(und ähnlich fürB) zu zählen. Beachten Sie, dassSund seineA-Nachbarn einenplanarenk-outer-Grapheninduzieren(der Graph ist ein Subgraph eines planaren Graphen mit Durchmesser4)). Das Zählen der Anzahl der Dreiecke in einem solchen Graphen kann also direkt durch dynamische Programmierung oder durch Anwendung des Courcelle-Theorems erfolgen (ich weiß mit Sicherheit, dass eine solche Zählversion in der Logspace-Welt von Elberfeld et al. Existiert und vermute, dass sie auch existiert in der linearen Zeit Welt) , da ein eine ungerichtete Dreieck bildet , ist Eigenschaft und da eine beschränkte Breite Baumzerlegung ist leicht von einem eingebetteten zu erhalten , k -Außen- planar Graphen.
Somit haben wir das Problem auf ein Paar von Problemen reduziert, die auf Kosten eines linearen Zeitverfahrens jeweils einen konstanten Bruchteil kleiner sind.
Beachten Sie, dass die Prozedur erweitert werden kann, um die Anzahl der Instanzen eines fest verbundenen Graphen innerhalb eines Eingabegraphen in -Zeit zu ermitteln.