Cliquenproblem - Clique problem

Der Brute-Force-Algorithmus findet eine 4-Clique in diesem 7-Scheitelpunkt-Graphen (dem Komplement des 7-Scheitelpunkt- Pfadgraphen ), indem er systematisch alle C (7,4) = 35 4-Scheitel-Untergraphen auf Vollständigkeit überprüft .

In der Informatik ist das Cliquenproblem das Rechenproblem, Cliquen (Teilmengen von Knoten, die alle nebeneinander liegen, auch vollständige Teilgraphen genannt ) in einem Graphen zu finden . Es hat verschiedene Formulierungen, je nachdem, welche Cliquen und welche Informationen über die Cliquen gefunden werden sollen. Gängige Formulierungen des Cliquenproblems umfassen das Finden einer maximalen Clique (eine Clique mit der größtmöglichen Anzahl von Knoten), das Finden einer Clique mit maximalem Gewicht in einem gewichteten Graphen, das Auflisten aller maximalen Cliquen (Cliquen, die nicht vergrößert werden können) und das Lösen des Entscheidungsproblems um zu testen, ob ein Graph eine Clique enthält, die größer als eine gegebene Größe ist.

Das Cliquenproblem tritt in der folgenden realen Umgebung auf. Stellen Sie sich ein soziales Netzwerk vor , in dem die Scheitelpunkte des Diagramms Personen darstellen und die Kanten des Diagramms gegenseitige Bekanntschaften darstellen. Dann stellt eine Clique eine Teilmenge von Menschen dar, die sich alle kennen, und Algorithmen zum Auffinden von Cliquen können verwendet werden, um diese Gruppen gemeinsamer Freunde zu entdecken. Neben seinen Anwendungen in sozialen Netzwerken hat das Cliquenproblem auch viele Anwendungen in der Bioinformatik und Computerchemie .

Die meisten Versionen des Cliquenproblems sind schwer. Das Cliquenentscheidungsproblem ist NP-vollständig (eines von Karps 21 NP-vollständigen Problemen ). Das Problem, die maximale Clique zu finden, ist sowohl hartnäckig als auch schwer zu nähern . Und das Auflisten aller maximalen Cliquen kann eine exponentielle Zeit erfordern, da es Graphen mit exponentiell vielen maximalen Cliquen gibt. Daher widmet sich ein Großteil der Theorie des Cliquenproblems der Identifizierung spezieller Typen von Graphen, die effizientere Algorithmen zulassen, oder der Ermittlung der Rechenschwierigkeiten des allgemeinen Problems in verschiedenen Rechenmodellen.

Um eine maximale Clique zu finden, kann man alle Teilmengen systematisch inspizieren, aber diese Art der Brute-Force-Suche ist zu zeitaufwendig, um für Netzwerke mit mehr als einigen Dutzend Knoten praktikabel zu sein. Obwohl für dieses Problem kein Polynomialzeitalgorithmus bekannt ist, sind effizientere Algorithmen als die Brute-Force-Suche bekannt. Zum Beispiel kann der Bron-Kerbosch-Algorithmus verwendet werden, um alle maximalen Cliquen in der Worst-Case-Optimalzeit aufzulisten , und es ist auch möglich, sie in polynomieller Zeit pro Clique aufzulisten.

Geschichte und Anwendungen

Das Studium vollständiger Teilgraphen in der Mathematik geht der "Clique"-Terminologie voraus. Vollständige Teilgraphen tauchen beispielsweise schon früh in der mathematischen Literatur in der graphentheoretischen Neuformulierung der Ramsey-Theorie von Erdős & Szekeres (1935) auf . Aber der Begriff "Clique" und das Problem der algorithmischen Auflistung von Cliquen stammen beide aus den Sozialwissenschaften, wo vollständige Untergraphen verwendet werden, um soziale Cliquen , Gruppen von Menschen, die sich alle kennen , zu modellieren . Luce & Perry (1949) verwendeten Graphen, um soziale Netzwerke zu modellieren, und passten die sozialwissenschaftliche Terminologie an die Graphentheorie an. Sie waren die ersten, die komplette Teilgraphen "Cliquen" nannten. Der erste Algorithmus zur Lösung des Cliquenproblems ist der von Harary & Ross (1957) , die durch die soziologische Anwendung motiviert wurden. Sozialwissenschaftliche Forscher haben auch verschiedene andere Arten von Cliquen und maximale Cliquen in sozialen Netzwerken definiert, "kohäsive Untergruppen" von Personen oder Akteuren im Netzwerk, die alle eine von mehreren verschiedenen Arten von Konnektivitätsbeziehungen teilen. Viele dieser verallgemeinerten Vorstellungen von Cliquen können auch gefunden werden, indem man einen ungerichteten Graphen konstruiert, dessen Kanten verwandte Paare von Akteuren aus dem sozialen Netzwerk darstellen, und dann einen Algorithmus für das Cliquenproblem auf diesen Graphen anwendet.

Seit der Arbeit von Harary und Ross haben viele andere Algorithmen für verschiedene Versionen des Cliquenproblems entwickelt. In den 1970er Jahren begannen Forscher, diese Algorithmen unter dem Gesichtspunkt der Worst-Case-Analyse zu untersuchen . Siehe zum Beispiel Tarjan & Trojanowski (1977) , eine frühe Arbeit über die Worst-Case-Komplexität des Maximum-Clique-Problems. Ebenfalls in den 1970er Jahren, beginnend mit der Arbeit von Cook (1971) und Karp (1972) , begannen die Forscher, die Theorie der NP-Vollständigkeit und die damit verbundenen Widerspenstigkeitsergebnisse zu verwenden, um eine mathematische Erklärung für die wahrgenommene Schwierigkeit des Cliquenproblems zu liefern. In den 1990er Jahren begann eine bahnbrechende Reihe von Arbeiten, beginnend mit Feige et al. (1991) und in der New York Times berichtet , zeigten, dass es (unter der Annahme von P NP ) nicht einmal möglich ist, das Problem genau und effizient zu approximieren .

Cliquenfindungsalgorithmen werden in der Chemie verwendet , um Chemikalien zu finden, die einer Zielstruktur entsprechen, und um das molekulare Andocken und die Bindungsstellen chemischer Reaktionen zu modellieren . Sie können auch verwendet werden, um ähnliche Strukturen in verschiedenen Molekülen zu finden. Bei diesen Anwendungen bildet man einen Graphen, in dem jeder Scheitelpunkt ein übereinstimmendes Atompaar repräsentiert, eines aus jedem von zwei Molekülen. Zwei Scheitelpunkte werden durch eine Kante verbunden, wenn die Übereinstimmungen, die sie darstellen, miteinander kompatibel sind. Kompatibilität kann beispielsweise bedeuten, dass die Abstände zwischen den Atomen innerhalb der beiden Moleküle innerhalb einer bestimmten Toleranz ungefähr gleich sind. Eine Clique in diesem Diagramm stellt eine Menge von übereinstimmenden Atompaaren dar, in denen alle Übereinstimmungen miteinander kompatibel sind. Ein Spezialfall dieser Methode ist die Verwendung des modularen Produkts von Graphen , um das Problem des Findens des maximalen gemeinsamen induzierten Teilgraphen zweier Graphen auf das Problem des Findens einer maximalen Clique in ihrem Produkt zu reduzieren .

Bei der automatischen Testmustergenerierung kann das Auffinden von Cliquen helfen, die Größe eines Testsatzes zu begrenzen. In der Bioinformatik , Clique Findungsalgorithmen verwendet wurde abzuleiten evolutionäre Bäume , vorherzusagen , Proteinstrukturen und eng zusammenwirkenden Cluster von Proteinen zu finden. Die Auflistung der Cliquen in einem Abhängigkeitsgraphen ist ein wichtiger Schritt bei der Analyse bestimmter Zufallsprozesse. In der Mathematik wurde Kellers Vermutung über die Face-to-Face-Kachelung von Hyperwürfeln von Lagarias & Shor (1992) widerlegt , die einen Cliquenfindungsalgorithmus für einen zugehörigen Graphen verwendeten, um ein Gegenbeispiel zu finden.

Definitionen

Der gezeigte Graph hat eine maximale Clique, das Dreieck {1,2,5}, und vier weitere maximale Cliquen, die Paare {2,3}, {3,4}, {4,5} und {4,6} .

Ein ungerichteter Graph besteht aus einer endlichen Menge von Ecken und einer Menge von ungeordneten Paaren von Ecken, die Kanten genannt werden . Konventionell wird bei der Algorithmusanalyse die Anzahl der Scheitelpunkte im Graphen mit n bezeichnet und die Anzahl der Kanten wird mit m bezeichnet . Eine Clique in einem Graphen G ist ein vollständiger Teilgraph von G . Das heißt, es ist eine Teilmenge K der Scheitelpunkte, so dass alle zwei Scheitelpunkte in K die beiden Endpunkte einer Kante in G sind . Eine maximale Clique ist eine Clique, der keine weiteren Scheitelpunkte hinzugefügt werden können. Für jede Ecke v , die nicht Teil einer maximalen Clique ist, muss es eine andere Ecke w geben , die sich in der Clique befindet und nicht an v angrenzt , wodurch verhindert wird, dass v zur Clique hinzugefügt wird. Eine maximale Clique ist eine Clique, die die größtmögliche Anzahl von Scheitelpunkten enthält. Die Clique Zahl ω ( G ) ist die Anzahl der Scheitelpunkte in einer maximalen Gruppe von G .

Mehrere eng verwandte Cliquenfindungsprobleme wurden untersucht.

  • Beim Maximum-Clique-Problem ist die Eingabe ein ungerichteter Graph und die Ausgabe eine maximale Clique im Graphen. Bei mehreren maximalen Cliquen kann eine davon beliebig gewählt werden.
  • Beim Problem der gewichteten maximalen Clique ist die Eingabe ein ungerichteter Graph mit Gewichten auf seinen Scheitelpunkten (oder seltener Kanten) und die Ausgabe ist eine Clique mit maximalem Gesamtgewicht. Das Maximum-Clique-Problem ist der Spezialfall, in dem alle Gewichte gleich sind. Neben dem Problem der Optimierung der Summe von Gewichten wurden auch andere kompliziertere Zweikriteriumsoptimierungsprobleme untersucht.
  • Beim maximalen Cliquen-Auflistungsproblem ist die Eingabe ein ungerichteter Graph und die Ausgabe eine Liste aller ihrer maximalen Cliquen. Das Maximum-Clique-Problem kann unter Verwendung eines Algorithmus für das Maximum-Clique-Auflistungsproblem als Unterprogramm gelöst werden, da die Maximum-Clique unter allen maximalen Cliquen enthalten sein muss.
  • Beim k- Clique-Problem ist die Eingabe ein ungerichteter Graph und eine Zahl k . Die Ausgabe ist eine Clique mit k Knoten, falls vorhanden, oder ein spezieller Wert, der andeutet, dass es sonst keine k -Clique gibt. In einigen Variationen dieses Problems sollte die Ausgabe alle Cliquen der Größe k auflisten .
  • Beim Clique-Entscheidungsproblem ist die Eingabe ein ungerichteter Graph und eine Zahl k , und die Ausgabe ist ein boolescher Wert : wahr, wenn der Graph eine k- Clique enthält , andernfalls falsch.

Die ersten vier dieser Probleme sind alle in praktischen Anwendungen wichtig. Das Cliquenentscheidungsproblem hat keine praktische Bedeutung; es ist so formuliert, um die Theorie der NP-Vollständigkeit auf Cliquenfindungsprobleme anzuwenden .

Das Cliquenproblem und das Unabhängige Mengenproblem sind komplementär: Eine Clique in G ist eine unabhängige Menge im Komplementgraphen von G und umgekehrt. Daher können viele Berechnungsergebnisse gleich gut auf jedes Problem angewendet werden, und einige Forschungsarbeiten unterscheiden nicht klar zwischen den beiden Problemen. Die beiden Probleme haben jedoch unterschiedliche Eigenschaften, wenn sie auf eingeschränkte Familien von Graphen angewendet werden. Zum Beispiel kann das Cliquenproblem für planare Graphen in polynomieller Zeit gelöst werden, während das Problem der unabhängigen Menge auf planaren Graphen NP-hart bleibt.

Algorithmen

Finden einer einzelnen maximalen Clique

Eine maximale Clique, manchmal auch Inklusionsmaximal genannt, ist eine Clique, die nicht in einer größeren Clique enthalten ist. Daher ist jede Clique in einer maximalen Clique enthalten. Maximale Cliquen können sehr klein sein. Ein Graph kann eine nicht-maximale Clique mit vielen Scheitelpunkten und eine separate Clique der Größe 2 enthalten, die maximal ist. Während eine maximale (dh größte) Clique notwendigerweise maximal ist, gilt das Umgekehrte nicht. Es gibt einige Arten von Graphen, in denen jede maximale Clique maximal ist; dies sind die Komplemente der gut abgedeckten Graphen , in denen jede maximale unabhängige Menge maximal ist. Andere Graphen haben jedoch maximale Cliquen, die nicht maximal sind.

Eine einzelne maximale Clique kann durch einen einfachen Greedy-Algorithmus gefunden werden . Beginnen Sie mit einer beliebigen Clique (z. B. einem einzelnen Scheitelpunkt oder sogar der leeren Menge), und vergrößern Sie die aktuelle Clique um einen Scheitelpunkt nach dem anderen, indem Sie die verbleibenden Scheitelpunkte des Graphen durchlaufen. Füge für jeden Knoten v , den diese Schleife untersucht, v zur Clique hinzu, wenn er an jeden Knoten angrenzt, der sich bereits in der Clique befindet, und verwerfe andernfalls v . Dieser Algorithmus läuft in linearer Zeit . Wegen der Leichtigkeit des Auffindens maximaler Cliquen und ihrer potentiell geringen Größe wurde dem viel schwierigeren algorithmischen Problem des Auffindens einer maximalen oder anderweitig großen Clique mehr Aufmerksamkeit geschenkt. Einige Forschungen zu parallelen Algorithmen haben jedoch das Problem untersucht, eine maximale Clique zu finden. Insbesondere hat sich das Problem des Auffindens der lexikographisch ersten maximalen Clique (die durch den obigen Algorithmus gefunden wurde) für die Klasse der polynomialen Zeitfunktionen als vollständig erwiesen . Dieses Ergebnis impliziert, dass es unwahrscheinlich ist, dass das Problem innerhalb der parallelen Komplexitätsklasse NC lösbar ist .

Cliquen fester Größe

Man kann mit einem Brute-Force-Algorithmus testen, ob ein Graph G eine k- Vertex-Clique enthält, und jede solche Clique finden, die er enthält . Dieser Algorithmus untersucht jeden Teilgraphen mit k Ecken und prüft, ob er eine Clique bildet. Es braucht Zeit O ( n k k 2 ) , wie durch die große O - Notation ausgedrückt . Dies liegt daran, dass es O ( n k ) Untergraphen zu überprüfen gibt, von denen jeder O ( k 2 ) Kanten hat, deren Vorhandensein in G überprüft werden muss. Somit kann das Problem immer dann in polynomieller Zeit gelöst werden, wenn k eine feste Konstante ist. Wenn k jedoch keinen festen Wert hat, sondern stattdessen als Teil der Eingabe des Problems variieren kann, ist die Zeit exponentiell.  

Der einfachste nichttriviale Fall des Cliquenfindungsproblems besteht darin, ein Dreieck in einem Graphen zu finden oder äquivalent zu bestimmen, ob der Graph dreiecksfrei ist . In einem Graphen G mit m Kanten darf es höchstens Θ( m 3/2 ) Dreiecke geben (mit großer Theta-Notation, um anzuzeigen, dass diese Schranke eng ist). Der schlimmste Fall für diese Formel tritt ein, wenn G selbst eine Clique ist. Daher müssen Algorithmen zum Auflisten aller Dreiecke im schlimmsten Fall (unter Verwendung großer Omega-Notation ) mindestens Ω( m 3/2 ) Zeit benötigen , und es sind Algorithmen bekannt, die dieser Zeitgrenze entsprechen. Zum Beispiel Chiba & Nishizeki (1985) beschreibt einen Algorithmus, der die Eckpunkte , um vom höchsten Grad zum niedrigsten sortiert und durchläuft dann durch jeden Scheitelpunkt v in der sortierten Liste, für Dreiecken suchen, sind v und enthalten keine vorherigen Vertex in der aufführen. Dazu markiert der Algorithmus alle Nachbarn von v , durchsucht alle Kanten, die auf einen Nachbarn von v fallen, gibt ein Dreieck für jede Kante aus, die zwei markierte Endpunkte hat, entfernt dann die Markierungen und löscht v aus dem Graphen. Wie die Autoren zeigen, ist die Zeit für diesen Algorithmus proportional zur Arborizität des Graphen (bezeichnet als a ( G ) ) multipliziert mit der Anzahl der Kanten, die O ( m  a ( G )) ist . Da die Arborizität höchstens O ( m 1/2 ) beträgt , läuft dieser Algorithmus in der Zeit O ( m 3/2 ) . Allgemeiner gesagt können alle k- Scheitelcliquen durch einen ähnlichen Algorithmus aufgelistet werden, der Zeit proportional zur Anzahl der Kanten multipliziert mit der Arborizität hoch ( k  − 2) benötigt . Für Graphen konstanter Arborizität, wie planare Graphen (oder im Allgemeinen Graphen aus einer beliebigen nicht-trivialen Familie von kleinen geschlossenen Graphen ), benötigt dieser Algorithmus O ( m ) Zeit, was optimal ist, da er in der Größe der Eingabe linear ist.

Wünscht man nur ein einzelnes Dreieck oder die Gewissheit, dass der Graph dreiecksfrei ist, sind schnellere Algorithmen möglich. Wie Itai & Rodeh (1978) beobachten, enthält der Graph genau dann ein Dreieck, wenn seine Adjazenzmatrix und das Quadrat der Adjazenzmatrix Einträge ungleich Null in derselben Zelle enthalten. Daher können schnelle Matrixmultiplikationstechniken angewendet werden, um Dreiecke in der Zeit O ( n 2,376 ) zu finden . Alon, Yuster & Zwick (1994) verwendet Multiplikation schnell Matrix die zur Verbesserung der O ( m 3/2 ) Algorithmus für die Suche nach Dreiecke O ( m 1,41 ) . Diese auf schneller Matrixmultiplikation basierenden Algorithmen wurden auch auf Probleme des Auffindens von k- Cliquen für größere Werte von k erweitert .

Auflistung aller maximalen Cliquen

Nach Moon & Moser (1965) hat jeder n- Knotengraph höchstens 3 n /3 maximale Cliquen. Sie können mit dem Bron-Kerbosch-Algorithmus aufgelistet werden , einem rekursiven Backtracking- Verfahren von Bron & Kerbosch (1973) . Das rekursive Hauptunterprogramm dieser Prozedur hat drei Argumente: eine teilweise konstruierte (nicht-maximale) Clique, eine Menge von Kandidaten-Scheitelpunkten, die der Clique hinzugefügt werden könnten, und eine weitere Menge von Scheitelpunkten, die nicht hinzugefügt werden sollten (da dies dazu führen würde, an eine bereits gefundene Clique). Der Algorithmus versucht, die Kandidatenscheitelpunkte nacheinander zur partiellen Clique hinzuzufügen, wobei für jeden ein rekursiver Aufruf erfolgt. Nachdem jeder dieser Scheitelpunkte ausprobiert wurde, verschiebt es ihn zu dem Satz von Scheitelpunkten, der nicht erneut hinzugefügt werden soll. Es kann gezeigt werden, dass Varianten dieses Algorithmus die Worst-Case-Laufzeit O (3 n /3 ) haben , die der Anzahl der Cliquen entspricht, die möglicherweise aufgelistet werden müssen. Daher bietet dies eine im schlimmsten Fall optimale Lösung für das Problem der Auflistung aller maximalen Cliquen. Darüber hinaus wurde allgemein berichtet, dass der Bron-Kerbosch-Algorithmus in der Praxis schneller ist als seine Alternativen.

Wenn die Anzahl der Cliquen jedoch deutlich kleiner ist als der schlimmste Fall, können andere Algorithmen vorzuziehen sein. Wie Tsukiyama et al. (1977) gezeigt, ist es auch möglich, alle maximalen Cliquen in einem Graphen in einer polynomiellen Zeit pro erzeugter Clique aufzulisten. Ein Algorithmus wie der ihre, bei dem die Laufzeit von der Ausgabegröße abhängt, wird als ausgabesensitiver Algorithmus bezeichnet . Ihr Algorithmus basiert auf den folgenden zwei Beobachtungen, die die maximalen Cliquen des gegebenen Graphen G mit den maximalen Cliquen eines Graphen G  \  v in Beziehung setzen, der durch Entfernen eines beliebigen Knotens v aus G gebildet wird :

  • Für jede maximale Clique K von G  \  v bildet entweder K weiterhin eine maximale Clique in G oder K  ⋃ { v } bildet eine maximale Clique in G . Daher hat G mindestens so viele maximale Cliquen wie G  \  v .
  • Jede maximale Clique in G , die kein v enthält, ist eine maximale Clique in G  \  v , und jede maximale Clique in G , die v enthält, kann aus einer maximalen Clique K in G  \  v gebildet werden, indem v hinzugefügt und die Nicht-Nachbarn entfernt werden von v aus K .

Unter Verwendung dieser Beobachtungen können sie alle maximalen Cliquen in G durch einen rekursiven Algorithmus erzeugen, der willkürlich eine Ecke v wählt und dann für jede maximale Clique K in G  \  v sowohl K als auch die Clique ausgibt, die durch Addieren von v zu K und Entfernen des Nicht- -Nachbarn v . Einige Cliquen von G können jedoch auf diese Weise aus mehr als einer Elternclique von G  \  v erzeugt werden , sodass sie Duplikate eliminieren, indem sie eine Clique in G nur dann ausgeben, wenn ihr Elternteil in G  \  v unter allen möglichen Elterncliquen lexikographisch maximal ist. Auf der Grundlage dieses Prinzips zeigen sie, dass alle maximalen Cliquen in G in der Zeit O ( mn ) pro Clique erzeugt werden können, wobei m die Anzahl der Kanten in G und n die Anzahl der Ecken ist. Chiba & Nishizeki (1985) verbessern dies auf O( ma ) pro Clique, wobei a die Arborizität des gegebenen Graphen ist. Makino & Uno (2004) bieten einen alternativen ausgabeempfindlichen Algorithmus basierend auf schneller Matrixmultiplikation. Johnson & Yannakakis (1988) zeigen, dass es sogar möglich ist, alle maximalen Cliquen in lexikographischer Reihenfolge mit polynomialer Verzögerung pro Clique aufzulisten. Die Wahl der Ordnung ist jedoch für die Effizienz dieses Algorithmus wichtig: Für die Umkehrung dieser Ordnung gibt es keinen Polynomial-Delay-Algorithmus, es sei denn, P = NP .

Aufgrund dieses Ergebnisses ist es möglich, alle maximalen Cliquen in polynomialer Zeit für Graphenfamilien aufzulisten, in denen die Anzahl der Cliquen polynomiell beschränkt ist. Diese Familien umfassen Sehnengraphen , vollständige Graphen , dreiecksfreie Graphen , Intervallgraphen , Graphen mit beschränkter Boxizität und planare Graphen . Insbesondere weisen die planaren Graphen O ( n ) Cliquen höchstens konstanter Größe auf, die in linearer Zeit aufgelistet werden können. Dasselbe gilt für jede Familie von Graphen, die sowohl dünn besetzt (mit einer Anzahl von Kanten, die höchstens konstant mal der Anzahl von Ecken ist) als auch geschlossen unter der Operation des Nehmens von Untergraphen ist.

Finden von maximalen Cliquen in beliebigen Graphen

Es ist möglich, die maximale Clique oder die Cliquennummer eines beliebigen n- Knotengraphen in der Zeit O (3 n /3 ) = O (1.4422 n ) zu finden, indem man einen der oben beschriebenen Algorithmen verwendet, um alle maximalen Cliquen in aufzulisten den Graphen und gibt den größten zurück. Für diese Variante des Cliquenproblems sind jedoch bessere Worst-Case-Zeitgrenzen möglich. Der Algorithmus von Tarjan & Trojanowski (1977) löst dieses Problem in der Zeit O (2 n /3 ) = O (1,2599 n ) . Es handelt sich um ein rekursives Backtracking-Schema, das dem des Bron-Kerbosch-Algorithmus ähnlich ist, jedoch einige rekursive Aufrufe eliminieren kann, wenn gezeigt werden kann, dass die innerhalb des Aufrufs gefundenen Cliquen suboptimal sind. Jian (1986) verbesserte die Zeit auf O (2 0,304 n ) = O (1,2346 n ) und Robson (1986) verbesserte sie auf O (2 0,276 n ) = O (1.2108 n ) Zeit, auf Kosten einer größeren Raumnutzung . Der Algorithmus von Robson kombiniert ein ähnliches Backtracking-Schema (mit einer komplizierteren Fallanalyse) und eine dynamische Programmiertechnik , bei der die optimale Lösung für alle kleinen zusammenhängenden Teilgraphen des Komplementgraphen vorberechnet wird . Diese Teillösungen werden verwendet, um die Backtracking-Rekursion abzukürzen. Der schnellste heute bekannte Algorithmus ist eine verfeinerte Version dieser Methode von Robson (2001), die in der Zeit O (2 0,249 n ) = O (1.1888 n ) läuft .

Es gab auch umfangreiche Forschungen zu heuristischen Algorithmen zur Lösung von Maximum-Clique-Problemen ohne Worst-Case-Laufzeitgarantien, basierend auf Methoden wie Branch and Bound , lokale Suche , Greedy-Algorithmen und Constraint-Programmierung . Nicht standardmäßige Computermethoden, die zum Auffinden von Cliquen vorgeschlagen wurden, umfassen DNA-Computing und adiabatische Quantenberechnung . Das Maximum-Clique-Problem war Gegenstand einer von DIMACS in den Jahren 1992–1993 gesponserten Implementierungs-Challenge und einer öffentlich zugänglichen Sammlung von Grafiken, die als Benchmarks für die Challenge verwendet wurden.

Spezielle Klassen von Graphen

In diesem Permutationsgraphen entsprechen die maximalen Cliquen den längsten abnehmenden Teilfolgen (4,3,1) und (4,3,2) der definierenden Permutation.

Planare Graphen und andere Familien von dünn besetzten Graphen wurden oben diskutiert: Sie haben linear viele maximale Cliquen begrenzter Größe, die in linearer Zeit aufgelistet werden können. Insbesondere für planare Graphen kann jede Clique nach dem Satz von Kuratowski höchstens vier Ecken haben .

Perfekte Graphen werden durch die Eigenschaft definiert, dass ihre Cliquenzahl ihrer chromatischen Zahl entspricht und dass diese Gleichheit auch in jedem ihrer induzierten Teilgraphen gilt . Für perfekte Graphen ist es möglich, eine maximale Clique in polynomieller Zeit zu finden, indem ein Algorithmus verwendet wird, der auf semidefiniter Programmierung basiert . Diese Methode ist jedoch komplex und nicht kombinatorisch, und für viele Unterklassen perfekter Graphen wurden spezielle Algorithmen zur Cliquenfindung entwickelt. In dem Komplementgraph von bipartiten Graphen , Kőnig Theorem der maximale Clique Problem mit Hilfe von Techniken für gelöst werden kann Matching . In einer anderen Klasse perfekter Graphen, den Permutationsgraphen , ist eine maximale Clique eine längste abnehmende Teilfolge der Permutation, die den Graphen definiert, und kann unter Verwendung bekannter Algorithmen für das Problem der längsten abnehmenden Teilfolge gefunden werden. Umgekehrt kann jede Instanz des längsten abnehmenden Teilfolgenproblems äquivalent als ein Problem des Findens einer maximalen Clique in einem Permutationsgraphen beschrieben werden. Sogar Pnueli & Lempel (1972) bieten einen alternativen quadratischen Algorithmus für maximale Cliquen in Vergleichbarkeitsgraphen , einer breiteren Klasse perfekter Graphen, die als Sonderfall die Permutationsgraphen einschließen. In Akkord-Diagramme können die maximalen Cliquen durch die Auflistung der Eckpunkte in einer Eliminations Ordnung, und die Überprüfung der Clique finden Nachbarschaften jedes Vertex in dieser Reihenfolge.

In einigen Fällen können diese Algorithmen auch auf andere, nicht perfekte Klassen von Graphen ausgedehnt werden. Zum Beispiel ist in einem Kreisgraphen die Nachbarschaft jedes Scheitelpunkts ein Permutationsgraph, so dass eine maximale Clique in einem Kreisgraphen gefunden werden kann, indem der Permutationsgraphalgorithmus auf jede Nachbarschaft angewendet wird. In ähnlicher Weise gibt es in einem Einheitsscheibengraphen (mit einer bekannten geometrischen Darstellung) einen polynomialen Zeitalgorithmus für maximale Cliquen basierend auf der Anwendung des Algorithmus für Komplemente von zweiteiligen Graphen auf gemeinsame Nachbarschaften von Scheitelpunktpaaren.

Das algorithmische Problem, eine maximale Clique in einem zufälligen Graphen zu finden , der aus dem Erdős-Rényi-Modell stammt (in dem jede Kante mit Wahrscheinlichkeit 1/2 unabhängig von den anderen Kanten auftritt ) wurde von Karp (1976) vorgeschlagen . Da die maximale Clique in einem Zufallsgraphen mit hoher Wahrscheinlichkeit eine logarithmische Größe hat, kann sie durch eine Brute-Force-Suche in der erwarteten Zeit 2 O (log 2 n ) gefunden werden . Dies ist eine quasi-polynomiale Zeitschranke . Obwohl die Cliquenzahl solcher Graphen normalerweise sehr nahe bei 2 log 2 n liegt , finden einfache Greedy-Algorithmen sowie ausgefeiltere randomisierte Approximationstechniken nur Cliquen mit der Größe log 2 n , die halb so groß ist. Die Anzahl der maximalen Cliquen in solchen Graphen ist mit hoher Wahrscheinlichkeit exponentiell in log 2 n , was verhindert, dass Methoden, die alle maximalen Cliquen auflisten, in polynomieller Zeit laufen. Wegen der Schwierigkeit dieses Problems haben mehrere Autoren das Planted-Clique- Problem untersucht, das Clique-Problem auf zufälligen Graphen, die durch Hinzufügen großer Cliquen erweitert wurden. Während spektraler Methoden und semidefinite Programmierung versteckt Cliquen der Größe erfassen kann Ω ( n ) , keine sind Polynomialzeit-Algorithmen derzeit bekannten diejenigen von Größe zu erkennen o ( n ) (ausgedrückt mit wenig-o - Notation ).

Näherungsalgorithmen

Mehrere Autoren haben Näherungsalgorithmen in Betracht gezogen , die versuchen, eine Clique oder eine unabhängige Menge zu finden, die zwar nicht maximal ist, aber eine Größe hat, die dem Maximum so nahe kommt, wie es in polynomieller Zeit gefunden werden kann. Obwohl sich ein Großteil dieser Arbeit auf unabhängige Mengen in dünn besetzten Graphen konzentrierte, ein Fall, der für das komplementäre Cliquenproblem keinen Sinn ergibt, gab es auch Arbeiten an Approximationsalgorithmen, die solche sparse Annahmen nicht verwenden.

Feige (2004) beschreibt einen polynomialen Zeitalgorithmus, der eine Clique der Größe Ω((log  n /log log  n ) 2 ) in jedem Graphen findet, der die Cliquennummer Ω( n /log k n ) für eine beliebige Konstante k hat . Indem dieser Algorithmus verwendet wird, wenn die Cliquenzahl eines gegebenen Eingabegraphen zwischen n /log  n und n /log 3 n liegt , Wechsel zu einem anderen Algorithmus von Boppana & Halldórsson (1992) für Graphen mit höheren Cliquenzahlen und Auswahl einer zwei- Vertex-Clique Wenn beide Algorithmen nichts finden, bietet Feige einen Approximationsalgorithmus an, der eine Clique mit einer Anzahl von Vertices innerhalb eines Faktors von O( n (log log  n ) 2 /log 3 n ) des Maximums findet. Obwohl das Näherungsverhältnis dieses Algorithmus schwach ist, ist er das bisher bekannteste. Die nachfolgend beschriebenen Ergebnisse der Näherungshärte legen nahe, dass es keinen Näherungsalgorithmus mit einem Näherungsverhältnis geben kann, das deutlich kleiner als linear ist.

Untere Schranken

NP-Vollständigkeit

Die 3-CNF-Erfüllbarkeitsinstanz (x x ∨ y) ∧ (~x ∨ ~y ∨ ~y) ∧ (~x ∨ y ∨ y) reduziert auf Clique. Die grünen Eckpunkte bilden eine 3-Clique und entsprechen einer befriedigenden Zuordnung.

Das Cliquenentscheidungsproblem ist NP-vollständig . Es war eines der ursprünglichen 21 Probleme von Richard Karp, die in seinem 1972 erschienenen Aufsatz "Reducibility Among Combinatorial Problems" als NP-vollständig gezeigt wurden. Dieses Problem wurde auch in Stephen Cooks Artikel erwähnt, der die Theorie der NP-vollständigen Probleme vorstellt. Wegen der Härte des Entscheidungsproblems ist auch das Problem, eine maximale Clique zu finden, NP-schwer. Wenn man es lösen könnte, könnte man auch das Entscheidungsproblem lösen, indem man die Größe der maximalen Clique mit dem im Entscheidungsproblem eingegebenen Größenparameter vergleicht.

Der NP-Vollständigkeitsbeweis von Karp ist eine Viele-Eins-Reduktion des Booleschen Erfüllbarkeitsproblems . Es beschreibt, wie Boolesche Formeln in konjunktiver Normalform (CNF) in äquivalente Instanzen des Maximum-Clique-Problems übersetzt werden. Erfüllbarkeit wiederum wurde im Cook-Levin-Theorem als NP-vollständig bewiesen . Aus einer gegebenen CNF-Formel bildet Karp einen Graphen, der für jedes Paar ( v , c ) einen Scheitelpunkt hat , wobei v eine Variable oder ihre Negation ist und c eine Klausel in der Formel ist, die v enthält . Zwei dieser Knoten sind durch eine Kante verbunden, wenn sie kompatible Variablenzuweisungen für verschiedene Klauseln darstellen. Das heißt, es gibt immer dann eine Kante von ( v , c ) nach ( u , d ), wenn c  ≠  d und u und v keine Negationen des anderen sind. Wenn k die Anzahl der Klauseln in der CNF-Formel bezeichnet, dann repräsentieren die k- Scheitelcliquen in diesem Graphen konsistente Möglichkeiten , einigen ihrer Variablen Wahrheitswerte zuzuweisen , um die Formel zu erfüllen. Daher ist die Formel genau dann erfüllbar, wenn eine k -Scheitelclique existiert.

Einige NP-vollständige Probleme (wie das Travelling-Salesman-Problem in planaren Graphen ) können in einer Zeit gelöst werden, die in einer sublinearen Funktion des Eingabegrößenparameters n exponentiell ist , signifikant schneller als eine Brute-Force-Suche. Es ist jedoch unwahrscheinlich, dass eine solche subexponentielle Zeitschranke für das Cliquenproblem in beliebigen Graphen möglich ist, da dies ähnliche subexponentielle Schranken für viele andere NP-vollständige Standardprobleme implizieren würde.

Schaltungskomplexität

Eine monotone Schaltung zum Erfassen einer k- Clique in einem n- Scheitelgraphen für k  = 3 und n  = 4 . Jeder Eingang in die Schaltung codiert das Vorhandensein oder Fehlen einer bestimmten (roten) Kante im Graphen. Die Schaltung verwendet ein internes Und-Gatter, um jede potentielle k- Clique zu erkennen .

Die Rechenschwierigkeiten des Cliquenproblems haben dazu geführt, dass es verwendet wird, um mehrere untere Schranken der Schaltungskomplexität zu beweisen . Die Existenz einer Clique einer bestimmten Größe ist eine monotone Grapheigenschaft , was bedeutet, dass wenn eine Clique in einem gegebenen Graphen existiert, sie in jedem Supergraphen existiert . Da diese Eigenschaft monoton ist, muss eine monotone Schaltung existieren, die nur und Gatter und oder Gatter verwendet , um das Cliquenentscheidungsproblem für eine gegebene feste Cliquengröße zu lösen. Die Größe dieser Kreise kann jedoch als eine superpolynomielle Funktion der Anzahl der Knoten und der Cliquengröße nachgewiesen werden, die in der Kubikwurzel der Anzahl der Knoten exponentiell ist. Selbst wenn eine kleine Anzahl von NOT-Gattern erlaubt ist, bleibt die Komplexität superpolynomiell. Außerdem muss die Tiefe einer monotonen Schaltung für das Cliquenproblem unter Verwendung von Gattern mit beschränktem Auffächern mindestens ein Polynom in der Cliquengröße sein.

Komplexität des Entscheidungsbaums

Ein einfacher Entscheidungsbaum, um das Vorhandensein einer 3-Clique in einem 4-Scheitel-Graphen zu erkennen. Es verwendet bis zu 6 Fragen der Form "Existiert die rote Kante?", die der optimalen Schranke n ( n  − 1)/2 entsprechen.

Die (deterministische) Entscheidungsbaumkomplexität zur Bestimmung einer Grapheigenschaft ist die Anzahl von Fragen der Form "Gibt es eine Kante zwischen Knoten u und Knoten v ?" die im schlimmsten Fall beantwortet werden müssen, um festzustellen, ob ein Graph eine bestimmte Eigenschaft besitzt. Das heißt, es ist die minimale Höhe eines booleschen Entscheidungsbaums für das Problem. Es sind n ( n  − 1)/2 mögliche Fragen zu stellen. Daher kann jede Grapheigenschaft mit höchstens n ( n  − 1)/2 Fragen bestimmt werden. Es ist auch möglich, die zufällige und Quantenentscheidungsbaumkomplexität einer Eigenschaft zu definieren, die erwartete Anzahl von Fragen (für eine Eingabe im ungünstigsten Fall), die ein randomisierter oder Quantenalgorithmus beantwortet haben muss, um korrekt zu bestimmen, ob der gegebene Graph die Eigenschaft hat .

Da die Eigenschaft, eine Clique zu enthalten, monoton ist, wird sie durch die Aanderaa-Karp-Rosenberg-Vermutung abgedeckt , die besagt, dass die deterministische Entscheidungsbaumkomplexität zur Bestimmung einer nicht-trivialen monotonen Grapheigenschaft genau n ( n  − 1)/2 ist . Für beliebige monotone Grapheigenschaften bleibt diese Vermutung unbewiesen. Für deterministische Entscheidungsbäume und für jedes k im Bereich 2 ≤ kn wurde jedoch von Bollobás (1976) gezeigt, dass die Eigenschaft, eine k- Clique zu enthalten, eine Entscheidungsbaumkomplexität von genau n ( n  − 1)/2 hat . Deterministische Entscheidungsbäume erfordern auch eine exponentielle Größe, um Cliquen zu erkennen, oder eine große polynomielle Größe, um Cliquen begrenzter Größe zu erkennen.

Die Aanderaa-Karp-Rosenberg-Vermutung besagt auch, dass die randomisierte Entscheidungsbaumkomplexität nichttrivialer monotoner Funktionen Θ( n 2 ) ist . Die Vermutung bleibt wiederum unbewiesen, wurde aber für die Eigenschaft aufgelöst, eine k- Clique für 2 kn zu enthalten . Diese Eigenschaft ist bekannt , randomisierten Entscheidungsbaum Komplexität haben Θ ( n 2 ) . Für Quantenentscheidungsbäume ist die bekannteste untere Schranke Ω( n ) , aber für den Fall k 3 ist kein Matching-Algorithmus bekannt .

Widerspenstigkeit mit festen Parametern

Parametrisierte Komplexität ist die komplexitätstheoretische Untersuchung von Problemen, die von Natur aus mit einem kleinen ganzzahligen Parameter k ausgestattet sind und bei denen das Problem mit zunehmendem k schwieriger wird, wie z. B. das Auffinden von k -Cliquen in Graphen. Ein Problem wird als behandelbar mit festen Parametern bezeichnet, wenn es einen Algorithmus zu dessen Lösung auf Eingaben der Größe n und eine Funktion f gibt , so dass der Algorithmus in der Zeit f ( kn O (1) läuft . Das heißt, es ist mit festen Parametern lenkbar, wenn es in polynomieller Zeit für jeden festen Wert von k gelöst werden kann und darüber hinaus, wenn der Exponent des Polynoms nicht von k abhängt .

Um k- Scheitelcliquen zu finden, hat der Brute-Force-Suchalgorithmus eine Laufzeit O( n k k 2 ) . Da der Exponent von n von k abhängt , ist dieser Algorithmus nicht mit festen Parametern bearbeitbar. Obwohl sie durch schnelle Matrixmultiplikation verbessert werden kann, hat die Laufzeit immer noch einen Exponenten, der in k linear ist. Obwohl die Laufzeit bekannter Algorithmen für das Cliquenproblem also für jedes feste k polynomiell ist , reichen diese Algorithmen nicht für feste Parameter Lenkbarkeit. Downey & Fellows (1995) definierten eine Hierarchie parametrisierter Probleme, die W-Hierarchie, von der sie vermuteten, dass sie keine lenkbaren Algorithmen mit festen Parametern hatte. Sie haben bewiesen, dass unabhängige Menge (oder gleichwertig Clique) für die erste Ebene dieser Hierarchie W[1] schwierig ist . Somit hat Clique nach ihrer Vermutung keinen lenkbaren Algorithmus mit festen Parametern. Darüber hinaus liefert dieses Ergebnis die Grundlage für Beweise der W[1]-Härte vieler anderer Probleme und dient somit als Analogon zum Cook-Levin-Theorem für parametrisierte Komplexität.

Chenet al. (2006) zeigten, dass das Auffinden von k- Scheitelcliquen nicht in der Zeit n o ( k ) erfolgen kann, es sei denn, die exponentielle Zeithypothese versagt. Dies liefert wiederum den Beweis, dass kein lenkbarer Algorithmus mit festen Parametern möglich ist.

Obwohl es unwahrscheinlich ist, dass die Probleme des Auflistens maximaler Cliquen oder des Findens maximaler Cliquen mit dem Parameter k mit festen Parametern handhabbar sind, können sie für andere Parameter der Instanzkomplexität mit festen Parametern handhabbar sein. Zum Beispiel ist bekannt, dass beide Probleme mit festen Parametern behandelbar sind, wenn sie durch die Entartung des Eingabegraphen parametrisiert werden .

Härte der Näherung

Ein Diagramm der Kompatibilitätsbeziehungen zwischen 2-Bit-Abtastwerten von 3-Bit-Beweiszeichenfolgen. Jede maximale Clique (Dreieck) in diesem Graphen repräsentiert alle Möglichkeiten, einen einzelnen 3-Bit-String abzutasten. Der Beweis der Unannäherung des Cliquenproblems beinhaltet induzierte Teilgraphen von analog definierten Graphen für größere Bitzahlen .

Schwache Ergebnisse, die darauf hindeuten, dass sich das Cliquenproblem nur schwer annähern könnte, sind seit langem bekannt. Garey & Johnson (1978) beobachteten, dass die Cliquenzahl, da sie kleine ganzzahlige Werte annimmt und NP-schwer zu berechnen ist, kein vollständig polynomiales Approximationsschema haben kann . Wenn eine zu genaue Näherung verfügbar wäre, würde das Runden des Wertes auf eine ganze Zahl die genaue Cliquenzahl ergeben. Bis Anfang der 1990er Jahre war jedoch wenig mehr bekannt, als mehrere Autoren begannen, Verbindungen zwischen der Approximation maximaler Cliquen und probabilistisch überprüfbaren Beweisen herzustellen . Sie verwendeten diese Verbindungen, um die Härte der Näherungsergebnisse für das Maximum-Clique-Problem zu beweisen . Nach vielen Verbesserungen dieser Ergebnisse ist nun bekannt, dass es für jede reelle Zahl ε  > 0 keinen Polynomialzeitalgorithmus geben kann, der die maximale Clique auf einen Faktor besser als O ( n 1 −  ε ) approximiert , es sei denn, P = NP .

Die grobe Idee dieser Unnäherungsergebnisse besteht darin, einen Graphen zu bilden, der ein probabilistisch überprüfbares Beweissystem für ein NP-vollständiges Problem wie das Boolesche Erfüllbarkeitsproblem darstellt. In einem probabilistisch überprüfbaren Beweissystem wird ein Beweis als eine Folge von Bits dargestellt. Eine Instanz des Erfüllbarkeitsproblems sollte genau dann einen gültigen Beweis haben, wenn sie erfüllbar ist. Der Beweis wird durch einen Algorithmus geprüft, der nach einer Polynomialzeitberechnung der Eingabe des Erfüllbarkeitsproblems eine kleine Anzahl zufällig ausgewählter Positionen der Beweiskette untersucht. Abhängig davon, welche Werte in dieser Bitprobe gefunden werden, akzeptiert der Prüfer den Beweis entweder oder lehnt ihn ab, ohne den Rest der Bits zu betrachten. Falsche Negative sind nicht erlaubt: Ein gültiger Nachweis muss immer akzeptiert werden. Ein ungültiger Nachweis kann jedoch manchmal fälschlicherweise akzeptiert werden. Für jeden ungültigen Beweis muss die Wahrscheinlichkeit, dass der Prüfer ihn akzeptiert, gering sein.

Um ein solches probabilistisch überprüfbares Beweissystem in ein Cliquenproblem zu überführen, bildet man für jeden möglichen akzeptierenden Durchlauf des Beweisprüfers einen Graphen mit einer Ecke. Das heißt, ein Scheitelpunkt wird durch eine der möglichen zufälligen Auswahlen von zu untersuchenden Positionssätzen und durch Bitwerte für jene Positionen definiert, die den Prüfer veranlassen würden, den Beweis zu akzeptieren. Es kann durch ein Teilwort mit einer 0 oder 1 an jeder untersuchten Stelle und einem Platzhalterzeichen an jeder verbleibenden Stelle dargestellt werden. Zwei Scheitelpunkte sind in diesem Diagramm benachbart, wenn die entsprechenden zwei akzeptierenden Läufe die gleichen Bitwerte an jeder Position sehen, die sie beide untersuchen. Jeder (gültige oder ungültige) Beweisstring entspricht einer Clique, der Menge der akzeptierenden Läufe, die diesen Beweisstring sehen, und alle maximalen Cliquen entstehen auf diese Weise. Eine dieser Cliquen ist genau dann groß, wenn sie einer Beweiszeichenfolge entspricht, die viele Beweisprüfer akzeptieren. Wenn die ursprüngliche Erfüllbarkeitsinstanz erfüllbar ist, hat sie einen gültigen Beweisstring, der von allen Prüfläufen akzeptiert wird, und dieser String entspricht einer großen Clique im Graphen. Wenn die ursprüngliche Instanz jedoch nicht erfüllbar ist, sind alle Prüfzeichenfolgen ungültig, jede Prüfzeichenfolge hat nur eine kleine Anzahl von Prüfläufen, die sie fälschlicherweise akzeptieren, und alle Cliquen sind klein. Wenn man also in polynomieller Zeit zwischen Graphen mit großen Cliquen und Graphen, in denen alle Cliquen klein sind, unterscheiden könnte oder wenn man das Cliquenproblem genau annähern könnte, dann würde die Anwendung dieser Näherung auf die aus Erfüllbarkeitsinstanzen erzeugten Graphen es erfüllbaren Instanzen ermöglichen, von unerfüllbaren Instanzen unterschieden werden. Dies ist jedoch nur möglich, wenn P = NP ist.

Anmerkungen

Verweise

Umfragen und Lehrbücher

Bekannte Presse

Forschungsartikel