Cliquenproblem

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Das Cliquenproblem (mit CLIQUE notiert) ist ein Entscheidungsproblem der Graphentheorie. Das Cliquenproblem ist eines der 21 klassischen NP-vollständigen Probleme, deren Zugehörigkeit zu dieser Klasse Richard M. Karp 1972 bewies.

Problemstellung[Bearbeiten]

Es ist gefragt, ob es zu einem einfachen Graphen G und einer Zahl n eine Clique der Mindestgröße n in G gibt; das heißt, ob G zumindest n Knoten hat, die alle untereinander paarweise verbunden sind.

Satz[Bearbeiten]

CLIQUE ist NP-vollständig.

Beweisidee[Bearbeiten]

Polynomialzeitreduktion von 3KNF-SAT auf CLIQUE:

{3KNF-SAT} \preceq_p CLIQUE

Da 3KNF-SAT NP-vollständig ist, gilt dies dann auch für CLIQUE.

Beweisskizze[Bearbeiten]

Sei F eine Formel mit n Klauseln in 3KNF, also in konjunktiver Normalform mit höchstens drei Literalen pro Klausel:

F = (y_{1,1} \lor \dotsc \lor y_{1,a_1}) \land \dotsc \land (y_{n,1} \lor \dotsc \lor y_{n,a_n})
\text{mit}\ \ \forall_{1 \le i \le n} : 1 \le a_i \le 3
\text{und}\ \ \forall_{i, j} : y_{i,j} \in \{x_1,...,x_m, \overline{x_1},...,\overline{x_m}\}.

Aus F mit n Klauseln konstruieren wir einen Graphen G und zeigen dann: F ist erfüllbar genau dann, wenn G eine n-Clique besitzt.

Konstruktion von G[Bearbeiten]

  • Knoten von G seien sämtliche Literalvorkommen in der Formel F, genauer alle Paare (y_{i,j}, i).
  • Kanten von G seien sämtliche Verbindungen zwischen Literalvorkommen, ausgenommen allein
    1. zwischen zwei Literalvorkommen in ein und derselben Klausel — also nicht (y_{i,j_1}, i) und (y_{i,j_2}, i) per Kante verbinden
    2. zwischen zwei Literalvorkommen, in denen dasselbe Literal einmal positiv und einmal negiert auftritt — also nicht (y_{i_1,j_1}, i_1) und (y_{i_2,j_2}, i_2) verbinden, falls \{y_{i_1,j_1}, y_{i_2,j_2} \} = \{x_k,\overline{x_k}\} für ein k.

Beweis[Bearbeiten]

  • G besitzt eine n-Clique ⇒ F ist erfüllbar: Angenommen, G besitzt eine n-Clique. Den Literalen y_{i,j} von in dieser Clique liegenden Literalvorkommen (y_{i,j}, i) geben wir den Wahrheitswert wahr. Dies ist widerspruchslos wegen der 2. Kantenbedingung möglich. Weil nach der 1. Kantenbedingung keine zwei Literalvorkommen aus derselben Klausel per Kante verbunden sind, werden unter dieser Belegung alle n von n Klauseln von F wahr und damit auch F.
  • F ist erfüllbar ⇒ G besitzt eine n-Clique: Angenommen, F sei erfüllbar. Dann gibt es eine Wahrheitswertbelegung seiner Literale, so dass in jeder der Klauseln wenigstens ein Literal wahr wird. Wir wählen in jeder Klausel willkürlich genau ein Literalvorkommen (y_{i,j}, i) mit wahrem y_{i,j} aus. Alle diese bilden offenbar eine n-Clique in G.

Beispiele[Bearbeiten]

Beispiel für eine erfüllbare Belegung:

(\overline{x_1} \lor x_1 \lor \overline{x_2}) \land (x_2 \lor x_1 \lor  \overline{x_2})

Der konstruierte Graph.
Beispiel für eine nichterfüllbare Belegung:

(\overline{x_1} \lor \overline{x_1} \lor x_2) \land (x_2 \lor x_2 \lor  x_1)\land (\overline{x_2} \lor \overline{x_2} \lor  \overline{x_2})

Der konstruierte Graph.
Es gibt sieben verschiedene 2-Cliquen im Graphen.
Es gibt keine einzige 3-Clique im Graphen.

Siehe auch[Bearbeiten]

Literatur[Bearbeiten]

  • Schöning, Uwe: Theoretische Informatik - kurzgefasst. - 4. Aufl., korr. Nachdr.. - Heidelberg : Spektrum, Akad. Verl., 2003,ISBN 3-8274-1099-1.