CLIQUE ist NP-Vollständig HAMILTON-PATH ist NP-Vollständig Theoretische Informatik 1 Vollständigkeit 2 David Kappel Institut für Grundlagen der Informationsverarbeitung TU Graz SS 2012 Zusammenfassung CLIQUE ist NP-Vollständig HAMILTON-PATH ist NP-Vollständig Übersicht CLIQUE ist NP-Vollständig CLIQUE ist in NP CLIQUE ist NP-schwer HAMILTON-PATH ist NP-Vollständig HAMILTON-PATH ist in NP HAMILTON-PATH ist NP-schwer Zusammenfassung Zusammenfassung CLIQUE ist NP-Vollständig HAMILTON-PATH ist NP-Vollständig Zusammenfassung CLIQUE Definition (CLIQUE) geg: ungerichteter Graph G = (V , E) mit m Knoten, k ∈ N CLIQUE = hG, k iG hat Clique der Größe k CLIQUE ist NP-Vollständig HAMILTON-PATH ist NP-Vollständig NP-Vollständigkeit Satz CLIQUE ist NP-Vollständig ∀L ∈ NP : L ≤P CLIQUE zu zeigen: • CLIQUE ∈ NP • CLIQUE ist NP-schwer • Beweis durch Reduktion 3SAT ≤P CLIQUE Zusammenfassung CLIQUE ist NP-Vollständig HAMILTON-PATH ist NP-Vollständig Zusammenfassung CLIQUE ∈ NP Algorithmus: • Erzeuge eine Liste von Zahlen p1 . . . pk • pi werden Nicht-deterministisch zwischen 1 und m erzeugt • Überprüfe ob Wiederholungen in der Liste vorkommen, wenn ja verwerfe • Überprüfe ob Liste eine Clique ist, d.h. ob Kante (pi , pj ) für jedes Paar existiert, wenn nein verwerfe • Ansonsten akzeptiere CLIQUE ist NP-Vollständig HAMILTON-PATH ist NP-Vollständig Zusammenfassung CLIQUE ist NP-schwer Bewisidee: • Beweis durch Reduktion: 3SAT ≤P CLIQUE • d.h. zeige eine Konstruktion eines ungerichteten Graphen, G = (V , E) mit der Eigenschaft: Es existiert eine Clique der Größe k in G, genau dann wenn 3-KNF Formel φ erfüllbar ist. • φ = (a1 ∨ b1 ∨ c1 ) ∧ (a2 ∨ b2 ∨ c2 ) ∧ . . . ∧ (ak ∨ bk ∨ ck ) • jedes Literal a, b und c ist von der Form xi oder ¬xi • x1 . . . xl sind die Variablen von φ CLIQUE ist NP-Vollständig HAMILTON-PATH ist NP-Vollständig Zusammenfassung CLIQUE ist NP-schwer Vorüberlegungen: • φ = (a1 ∨ b1 ∨ c1 ) ∧ (a2 ∨ b2 ∨ c2 ) ∧ . . . ∧ (ak ∨ bk ∨ ck ) • φ ist genau dann erfüllt, wenn jede der k Klauseln erfüllt ist • Eine Klausel ist erfüllt, wenn mind. ein Literal erfüllt ist • Ist φ nicht erfüllt, enthält sie einen Widerspruch (z.B.: x1 und ¬x1 ) • Idee: jedes Literal wird durch einen Knoten im Graph dargestellt • Wenn Literal erfüllt, dann soll es Teil der Clique sein CLIQUE ist NP-Vollständig HAMILTON-PATH ist NP-Vollständig Zusammenfassung CLIQUE ist NP-schwer Konstruktion des Graphen: • Der Graph hat 3 ∗ k Knoten, entsprechend den Literalen von φ • Die Knoten von G sind in k Gruppen organisiert • Jede Gruppe besteht aus 3 Knoten und entspricht einer Klausel • Jedem Knoten wird ein Literal aus der entsprechen Klausel zugeordnet • Die Kanten von G verbinden alle Knoten außer: • Knoten innerhalb einer Gruppe (Klausel) • Knoten mit widersprechenden Literalen (z.B.: x1 und ¬x1 ) CLIQUE ist NP-Vollständig HAMILTON-PATH ist NP-Vollständig Zusammenfassung Beweis der Korrektheit Angenommen φ ist erfüllbar • Zumindest ein Literal ist wahr in jeder Klausel • Wenn mehr als ein Literal wahr ist wird zufällig eines gewählt • → In jeder 3-er Gruppe wird ein Knoten gewählt • Zwischen jedem Knotenpaar existiert eine Kante, denn • ...alle Knoten sind von unterschiedlichen Gruppen • ...eine Erfüllende Variablenbelegung enthält keine Widersprüche • → Daher enthält G eine k -Clique CLIQUE ist NP-Vollständig HAMILTON-PATH ist NP-Vollständig Zusammenfassung Beweis der Korrektheit Angenommen G enthält eine k -Clique • Da keine Kanten innerhalb der Gruppe, können nie 2 Knoten aus der gleichen Gruppe gewählt werden • Wahrheitswerte werden den Variablen von φ zugewiesen indem die den gewählten Knoten entsprechenden Literale auf wahr gesetzt werden • Das ist immer möglich da widersprüchliche Zuweisungen nicht mit einer Kante verbunden sind, daher nicht in der Clique • Diese Zuweisung ist erfüllend, das sich in jeder Klausel ein erfüllendes Literal befindet • → Daher ist φ erfüllbar CLIQUE ist NP-Vollständig HAMILTON-PATH ist NP-Vollständig Zusammenfassung HAMILTON-PATH Definition (HAMILTON-PATH) geg: gerichteter Graph G = (V , E), s, t ∈ V HAMILTON-PATH = hG, s, ti∃ Hamilton-Pfad von s nach t in G Hamilton-Pfad: • Sei Anzahl der Knoten m • Permutation der Knoten p1 . . . pm heißt Hamilton-Pfad von s nach t, wenn: • p1 = s und pm = t • Jedes Paar (pi , pi+1 ) ist eine Kante von G CLIQUE ist NP-Vollständig HAMILTON-PATH ist NP-Vollständig NP-Vollständigkeit Satz HAMILTON-PATH ist NP-Vollständig ∀L ∈ NP : L ≤P HAMILTON-PATH zu zeigen: • HAMILTON-PATH ∈ NP • HAMILTON-PATH ist NP-schwer • Beweis durch Reduktion 3SAT ≤P HAMILTON-PATH Zusammenfassung CLIQUE ist NP-Vollständig HAMILTON-PATH ist NP-Vollständig Zusammenfassung HAMILTON-PATH ∈ NP Algorithmus: • Erzeuge eine Liste von Zahlen p1 . . . pm • pi werden Nicht-deterministisch zwischen 1 und m erzeugt • Überprüfe ob Wiederholungen in der Liste vorkommen, wenn ja verwerfe • Überprüfe ob Liste ein Hamilton-Pfad ist, d.h. ob Kante (pi , pi+1 ) für jedes Paar existiert, wenn nein verwerfe • Ansonsten akzeptiere CLIQUE ist NP-Vollständig HAMILTON-PATH ist NP-Vollständig Zusammenfassung HAMILTON-PATH ist NP-schwer Bewisidee: • Beweis durch Reduktion: 3SAT ≤P HAMILTON-PATH • d.h. zeige eine Konstruktion eines gerichteten Graphen, G = (V , E) mit der Eigenschaft: Es existiert eine Hamilton-Pfad, genau dann wenn 3-KNF Formel φ erfüllbar ist. • φ = (a1 ∨ b1 ∨ c1 ) ∧ (a2 ∨ b2 ∨ c2 ) ∧ . . . ∧ (ak ∨ bk ∨ ck ) • jedes Literal a, b und c ist von der Form xi oder ¬xi • x1 . . . xl sind die Variablen von φ CLIQUE ist NP-Vollständig HAMILTON-PATH ist NP-Vollständig Zusammenfassung HAMILTON-PATH ist NP-schwer Vorüberlegungen: • φ = (a1 ∨ b1 ∨ c1 ) ∧ (a2 ∨ b2 ∨ c2 ) ∧ . . . ∧ (ak ∨ bk ∨ ck ) • φ ist genau dann erfüllt, wenn jede der k Klauseln erfüllt ist • Eine Klausel ist erfüllt, wenn mind. ein Literal erfüllt ist • Idee: Jede Variable wird durch einen Diamanten-Förmigen Teilgraph dargestellt (siehe Tafel, oder Sipser Seite 293) • Jede Klausel wird durch einen einzelnen Knoten dargestellt CLIQUE ist NP-Vollständig HAMILTON-PATH ist NP-Vollständig Zusammenfassung CLIQUE ist NP-schwer Konstruktion des Graphen: • Diamant-Struktur: 2 Eingänge, 2 Ausgänge • Kann nur in einer Richtung durchwandert werden • Nicht-deterministische Entscheidung (links = 1, rechts = 0) • Für jede Verwendung der Variable, Abzweigung über Klausel-Knoten • Rechts-nach-links, falls Literal negiert • Links-nach-rechts, sonst • Wenn Klausel-Knoten im Graphen besucht wurde, dann erfüllt • Wenn alle Knoten besucht wurden dann ist φ erfüllt CLIQUE ist NP-Vollständig HAMILTON-PATH ist NP-Vollständig Zusammenfassung Beweis der Korrektheit Angenommen φ ist erfüllbar • Wir zeigen die Existenz eines Hamilton-Pfades • Zunächst ignorieren wir die Klausel-Knoten • Jedes Diamanten-Modul wird von rechts nach links oder von links nach rechts durchlaufen (wahr, oder falsch Zuweisung) • Jeder Klausel-Knoten kann erreicht werden, in einer erfüllenden Belegung • → Daher enthält G einen Hamilton-Pfad CLIQUE ist NP-Vollständig HAMILTON-PATH ist NP-Vollständig Zusammenfassung Beweis der Korrektheit Angenommen G enthält einen Hamilton-Pfad • Wir zeigen das φ erfüllbar ist • Jeder Links-Rechts-Entscheidung in den Diamanten wird die Variablenbelegung (wahr,falsch) zugeordnet • Diese Belegung erfüllt φ, denn • Jede Variable muss belegt sein, das sonst ein Knoten übersprungen würde • Die Belegung enthält keine Widersprüche da sonst mind. ein Klausel-Knoten nicht besucht werden könnte • → Daher ist φ erfüllbar CLIQUE ist NP-Vollständig HAMILTON-PATH ist NP-Vollständig Zusammenfassung HAMILTON-PATH ≤L UHAMILTON-PATH Definition (UHAMILTON-PATH) geg: ungerichteter Graph G = (V , E), s, t ∈ V UHAMILTON-PATH = hG, s, ti∃ Hamilton-pfad von s nach t in G Trick: 1 Knoten wird zu 3 Knoten siehe z.B. Schöning, S. 166f oder Spiser, S. 295 CLIQUE ist NP-Vollständig HAMILTON-PATH ist NP-Vollständig Zusammenfassung Pfad vs. Kreis • Analog zu HAMILTON-PATH bzw. UHAMILTON-PATH gibt es HAMILTON-CIRCLE bzw. UHAMILTON-CIRCLE oder oft einfach HAMILTON bzw. UHAMILTON • Zusätzliche Forderung (pm , p1 ) ∈ E (damit ist die Angabe von s und t überflüssig) • Aus analogen Überlegungen folgt dass sowohl HAMILTON als auch UHAMILTON NP-Vollständig sind siehe auch Schöning, S. 163-167 für einen alternativen Beweis CLIQUE ist NP-Vollständig HAMILTON-PATH ist NP-Vollständig Zusammenfassung Zusammenfassung • NP-Vollständigkeit!!! • Mehrere 1000 NP-Vollständige Probleme • Siehe Liste der NP-Vollständige Probleme http://en.wikipedia.org/wiki/List_of_NP-complete_problems • Vertex cover, Dominating set, Domatic partition, Graph coloring, Complete coloring, Monochromatic triangle, Feedback vertex, Feedback arc set, Partial feedback edge set, Minimum maximal independent set, Partition into triangles, Partition into isomorphic subgraphs, Partition into Hamiltonian subgraphs, Partition into forests, Partition into perfect matchings, Two-stage maximum weight stochastic matching, Clique covering problem, Berth allocation problem, Covering by complete bipartite subgraphs, Grundy number, Rank coloring, Treewidth, Clique, Independent set, Induced path, Balanced complete bipartite subgraph, Bipartite subgraph, Degree-bounded connected subgraph, Planar subgraph, Edge-subgraph, Transitive subgraph, Uniconnected subgraph, Minimum k-connected subgraph, Cubic subgraph, Minimum equivalent digraph, Hamiltonian completion, Interval graph completion, ...