Das Cycle-Problem ist wie folgt:
Instanz: Ein ungerichteter Graph mit Eckpunkten und bis zu Kanten.n
Frage: Gibt es in G ein (richtiges) Rad ?G
Hintergrund: Für jedes feste können wir Zyklen in O (n ^ 2) lösen .
Es ist jedoch nicht bekannt, ob wir 3-Zyklen (dh 3-Cliquen) in weniger als der Matrixmultiplikationszeit lösen können.
Meine Frage: Unter der Annahme, dass keine 4-Zyklen enthält, können wir das 3-Zyklen-Problem in O (n ^ 2) lösen ?
David schlug einen Lösungsansatz für diese Variante des 3-Zyklus-Problems in .
Antworten:
Ja, das ist bekannt. Es erscheint in einer der wichtigsten Quellenangaben zur Dreiecksfindung ...
Itai und Rodeh zeigen nämlich in SICOMP 1978, wie in -Zeit ein Zyklus in einem Graphen gefunden werden kann, der höchstens eine Kante mehr als der Mindestlängenzyklus aufweist. (Siehe die ersten drei Sätze der Zusammenfassung hier: http://www.cs.technion.ac.il/~itai/publications/Algorithms/min-circuit.pdf ) Es ist eine einfache Prozedur, die auf den Eigenschaften von width-first basiert Suche.O ( n2)
Wenn Ihr Graph also 4-Zyklen-frei ist und ein Dreieck vorhanden ist, muss der Algorithmus dieses ausgeben, da kein 5-Zyklen-Wert oder ein größerer Wert ausgegeben werden kann.
quelle
Es ist nicht quadratisch, aber Alon Yuster und Zwick ("Finding and counting given length cycles", Algorithmica 1997) geben einen Algorithmus zum Finden von Dreiecken in der Zeit , wobei ist der Exponent für die schnelle Matrixmultiplikation. Für 4-zyklenfreie Graphen ergibt das Einstecken von und (ansonsten gibt es einen Zyklus, unabhängig von der Existenz von Zyklen) die Zeit .ω ω < 2.373 m = O ( n 3 / 2 ) 4 3 O ( n 3 ω / ( ω + 1 ) ) = O ( n 2.111 )O ( m2 ω / ( ω + 1 )) ω ω < 2,373 m = O ( n3 / 2) 4 3 O ( n3 ω / ( ω + 1 )) = O ( n2.111)
quelle