Eine Klaue ist eine . Ein trivialer Algorithmus erkennt eine Klaue in . Dies kann in , wobei der Exponent der schnellen Matrixmultiplikation ist, und zwar wie folgt: Nehmen Sie den durch induzierten Teilgraphen für jeden Scheitelpunkt und finden Sie ein Dreieck in seine Ergänzung. O ( n 4 ) O ( n & ohgr; + 1 ) & ohgr; N [ v ] v
Soweit ich weiß, sind diese grundlegenden Algorithmen nur bekannt. Spinrad listete in seinem Buch "Effiziente Graphendarstellungen" das Erkennen einer Klaue in als offenes Problem auf (8.3, Seite 103). Für die untere Schranke wissen wir, dass ein -Zeitalgorithmus einen -Zeitalgorithmus zum Finden eines Dreiecks impliziert. Wir können also als Untergrenze betrachten.O ( n c ) O ( n max ( c , 2 ) ) , Ω ( n ω )
Frage:
- Gibt es hier irgendwelche Fortschritte? Oder irgendwelche Fortschritte, um zu zeigen, dass es unmöglich ist?
- Gibt es andere natürliche Probleme mit -Zeitalgorithmen, die die besten sind?
Anmerkung:
- Ich fordere ausdrücklich die Erkennung einer Klaue anstelle der Erkennung von klauenfreien Graphen. Obwohl ein Algorithmus normalerweise beide Probleme löst, gibt es nur wenige Ausnahmen.
- Im Handbuch für Algorithmen und Theoretische Informatik wird behauptet, dass es in linearer Zeit gefunden werden kann, aber es war nur ein Tippfehler (siehe "Effiziente Graphendarstellungen").
quelle
Antworten:
Ich denke, dass wir für dichte Graphen etwas besser als können, wenn wir eine rechteckige Matrixmultiplikation verwenden. Eine ähnliche Idee wurde von Eisenbrand und Grandoni ("Zur Komplexität von Clique mit festen Parametern und dominierender Menge", Theoretical Computer Science Volume 326 (2004) 57–67) für die Erkennung von 4 Cliquen verwendet.O ( n1 + ω)
Sei der Graph, in dem wir die Existenz einer Klaue erkennen wollen. Lassen die Menge (geordnet) Paare von Eckpunkten in sein . Betrachten Sie die folgende Boolesche Matrix der Größe: Jede Zeile wird durch ein indiziert, jede Spalte wird durch ein indiziert , und der entsprechende Eintrag ist nur dann eins, wenn , und . Betrachten wir die Boolesche Matrixprodukt von und seine transponieren . Der Graph hat genau dann eine Klaue, wenn es eine gibtA V MG = ( V, E) EIN V M u ∈ V ( v , w ) ∈ A { u , v } ∈ E { v , w } ∈ E { u , w } ∉ E M|V|×|A| u∈V (v,w)∈A {u,v}∈E {v,w}∈E {u,w}∉E M G { u , v } ∉ E M MMT G {u,v}∉E
so, dass der Eintrag von in der von indizierten Zeile und der von indizierten Spalte eins ist. u vMMT u v
Die Komplexität dieses Algorithmus ist im Wesentlichen die Komplexität der Berechnung des Booleschen Produkts einer Matrix durch eine Matrix, wobei die Anzahl der Eckpunkte im Graphen bezeichnet. Es ist bekannt, dass ein solches Matrixprodukt in der Zeit berechnet werden kann , die für die bekannteste Obergrenze von besser ist als . Wenn natürlich (wie vermutet), ergeben die beiden Ansätze die gleiche Komplexität .n 2 × n n O ( N 3,3 ) O ( n 1 + ω ) ω ω = 2 O ( n 3 )n×n2 n2×n n O(n3.3) O(n1+ω) ω ω=2 O(n3)
quelle
Ich weiß nicht, wie man es vermeidet, Matrixmultiplikationen durchzuführen, aber Sie können es so analysieren, dass die Zeit tatsächlich die einer kleineren Anzahl von ihnen ist. Dieser Trick ist vonn
Kloks, Ton; Kratsch, Dieter; Müller, Haiko (2000), "Effizientes Finden und Zählen kleiner induzierter Teilgraphen", Information Processing Letters 74 (3–4): 115–121, doi: 10.1016 / S0020-0190 (00) 00047-8, MR 1761552.
Die erste Beobachtung ist, dass, wenn Sie Matrix-Multiplikationen durchführen, die Matrizen nicht wirklich , sondern wobei der Grad jedes Scheitelpunkts ist, denn was Sie suchen, ist ein Co-Dreieck in der Nachbarschaft jedes Scheitelpunkts.d × d dn×n d×d d
Zweitens muss in einem klauenfreien Diagramm jeder Scheitelpunkt Nachbarn haben. Denn sonst hätte die Menge der Nachbarn zu wenige Kanten, um ein Dreieck im Komplement zu vermeiden. Wenn Sie also Matrixmultiplikationen durchführen, müssen Sie dies nur für Matrizen der Größe und nicht für tun .O( √O(m−−√) nO(m−−√) n
Außerdem kann jede Kante nur für zwei Eckpunkte, ihre Endpunkte, zur Größe des Matrixmultiplikationsproblems beitragen. Der schlimmste Fall tritt auf, wenn die für die Gesamtgröße dieser Matrixmultiplikationsprobleme in Unterprobleme der Größe aufgeteilt werden, was eine Gesamtzeitgrenze von ergibt , eine Verbesserung für spärliche Graphen gegenüber dem von R B genannten .O ( √2m O( √O(m−−√) O(m ( 1 + ω ) / 2 )O(nm ω / 2 )O(m−−√) O(m(1+ω)/2) O(nmω/2)
quelle