Übung Theoretische Grundlagen Komplexitätstheorie Nico Döttling 8. Januar 2010 INSTITUT FÜR KRYPTOGRAPHIE UND SICHERHEIT KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu
Die Komplexitätsklasse P Die Komplexitätsklasse P enthält all jene Probleme welche von einer deterministischen Turingmaschine in Polynomialzeit entschieden werden können. D.h. L P genau dann wenn es eine Turingmaschine M und eine Polynom p gibt, sodass M bei Eingabe w Σ nach p( w ) Schritten hält und genau dann akzeptiert wenn w L. Ein (Zeit-)Schritt ist dabei ein Zustandsübergang der Turingmaschine. Daraus folgt unmittelbar: Die Klasse P ist unter Komplementbildung abgeschlossen. Ist M ein Polynomialzeitentscheider für L so erhält man einen Polynomialzeitentscheider M für L indem man schlicht die Ausgabe von M negiert. Tatsächlich sind mit dem selben Argument alle deterministischen Klassen unter Komplementbildung abgeschlossen. Nico Döttling Übung 8. Januar 2010 2/27
Die Komplexitätsklasse P Die Komplexitätsklasse P enthält all jene Probleme welche von einer deterministischen Turingmaschine in Polynomialzeit entschieden werden können. D.h. L P genau dann wenn es eine Turingmaschine M und eine Polynom p gibt, sodass M bei Eingabe w Σ nach p( w ) Schritten hält und genau dann akzeptiert wenn w L. Ein (Zeit-)Schritt ist dabei ein Zustandsübergang der Turingmaschine. Daraus folgt unmittelbar: Die Klasse P ist unter Komplementbildung abgeschlossen. Ist M ein Polynomialzeitentscheider für L so erhält man einen Polynomialzeitentscheider M für L indem man schlicht die Ausgabe von M negiert. Tatsächlich sind mit dem selben Argument alle deterministischen Klassen unter Komplementbildung abgeschlossen. Nico Döttling Übung 8. Januar 2010 2/27
Die Komplexitätsklasse P Die Komplexitätsklasse P enthält all jene Probleme welche von einer deterministischen Turingmaschine in Polynomialzeit entschieden werden können. D.h. L P genau dann wenn es eine Turingmaschine M und eine Polynom p gibt, sodass M bei Eingabe w Σ nach p( w ) Schritten hält und genau dann akzeptiert wenn w L. Ein (Zeit-)Schritt ist dabei ein Zustandsübergang der Turingmaschine. Daraus folgt unmittelbar: Die Klasse P ist unter Komplementbildung abgeschlossen. Ist M ein Polynomialzeitentscheider für L so erhält man einen Polynomialzeitentscheider M für L indem man schlicht die Ausgabe von M negiert. Tatsächlich sind mit dem selben Argument alle deterministischen Klassen unter Komplementbildung abgeschlossen. Nico Döttling Übung 8. Januar 2010 2/27
Die Komplexitätsklasse P Die Komplexitätsklasse P enthält all jene Probleme welche von einer deterministischen Turingmaschine in Polynomialzeit entschieden werden können. D.h. L P genau dann wenn es eine Turingmaschine M und eine Polynom p gibt, sodass M bei Eingabe w Σ nach p( w ) Schritten hält und genau dann akzeptiert wenn w L. Ein (Zeit-)Schritt ist dabei ein Zustandsübergang der Turingmaschine. Daraus folgt unmittelbar: Die Klasse P ist unter Komplementbildung abgeschlossen. Ist M ein Polynomialzeitentscheider für L so erhält man einen Polynomialzeitentscheider M für L indem man schlicht die Ausgabe von M negiert. Tatsächlich sind mit dem selben Argument alle deterministischen Klassen unter Komplementbildung abgeschlossen. Nico Döttling Übung 8. Januar 2010 2/27
Probleme in P Mit der Klasse P assoziiert man gemeinhin effiziente Berechnung, wenn auch nur asymptotisch. Example Selbst effiziente Algorithmen mit Laufzeit O(n) können durch ihre Laufzeit inhärent unbrauchbar sein, wenn sie beispielsweise eine Laufzeitschranke p(n) = 2 1024 n haben. Aus der Vorlesung bekannte Probleme in P Alle Ch-2 Sprachen. Das Pfadproblem in Graphen. Die Berechnung des größten gemeinsamen Teilers (Das ist kein Entscheidungsproblem). Das PRIMES Problem (Ist eine Zahl prim?) Nico Döttling Übung 8. Januar 2010 3/27
Probleme in P Mit der Klasse P assoziiert man gemeinhin effiziente Berechnung, wenn auch nur asymptotisch. Example Selbst effiziente Algorithmen mit Laufzeit O(n) können durch ihre Laufzeit inhärent unbrauchbar sein, wenn sie beispielsweise eine Laufzeitschranke p(n) = 2 1024 n haben. Aus der Vorlesung bekannte Probleme in P Alle Ch-2 Sprachen. Das Pfadproblem in Graphen. Die Berechnung des größten gemeinsamen Teilers (Das ist kein Entscheidungsproblem). Das PRIMES Problem (Ist eine Zahl prim?) Nico Döttling Übung 8. Januar 2010 3/27
Probleme in P Mit der Klasse P assoziiert man gemeinhin effiziente Berechnung, wenn auch nur asymptotisch. Example Selbst effiziente Algorithmen mit Laufzeit O(n) können durch ihre Laufzeit inhärent unbrauchbar sein, wenn sie beispielsweise eine Laufzeitschranke p(n) = 2 1024 n haben. Aus der Vorlesung bekannte Probleme in P Alle Ch-2 Sprachen. Das Pfadproblem in Graphen. Die Berechnung des größten gemeinsamen Teilers (Das ist kein Entscheidungsproblem). Das PRIMES Problem (Ist eine Zahl prim?) Nico Döttling Übung 8. Januar 2010 3/27
Probleme in P Mit der Klasse P assoziiert man gemeinhin effiziente Berechnung, wenn auch nur asymptotisch. Example Selbst effiziente Algorithmen mit Laufzeit O(n) können durch ihre Laufzeit inhärent unbrauchbar sein, wenn sie beispielsweise eine Laufzeitschranke p(n) = 2 1024 n haben. Aus der Vorlesung bekannte Probleme in P Alle Ch-2 Sprachen. Das Pfadproblem in Graphen. Die Berechnung des größten gemeinsamen Teilers (Das ist kein Entscheidungsproblem). Das PRIMES Problem (Ist eine Zahl prim?) Nico Döttling Übung 8. Januar 2010 3/27
Probleme in P Mit der Klasse P assoziiert man gemeinhin effiziente Berechnung, wenn auch nur asymptotisch. Example Selbst effiziente Algorithmen mit Laufzeit O(n) können durch ihre Laufzeit inhärent unbrauchbar sein, wenn sie beispielsweise eine Laufzeitschranke p(n) = 2 1024 n haben. Aus der Vorlesung bekannte Probleme in P Alle Ch-2 Sprachen. Das Pfadproblem in Graphen. Die Berechnung des größten gemeinsamen Teilers (Das ist kein Entscheidungsproblem). Das PRIMES Problem (Ist eine Zahl prim?) Nico Döttling Übung 8. Januar 2010 3/27
Probleme in P Mit der Klasse P assoziiert man gemeinhin effiziente Berechnung, wenn auch nur asymptotisch. Example Selbst effiziente Algorithmen mit Laufzeit O(n) können durch ihre Laufzeit inhärent unbrauchbar sein, wenn sie beispielsweise eine Laufzeitschranke p(n) = 2 1024 n haben. Aus der Vorlesung bekannte Probleme in P Alle Ch-2 Sprachen. Das Pfadproblem in Graphen. Die Berechnung des größten gemeinsamen Teilers (Das ist kein Entscheidungsproblem). Das PRIMES Problem (Ist eine Zahl prim?) Nico Döttling Übung 8. Januar 2010 3/27
Probleme in P Mit der Klasse P assoziiert man gemeinhin effiziente Berechnung, wenn auch nur asymptotisch. Example Selbst effiziente Algorithmen mit Laufzeit O(n) können durch ihre Laufzeit inhärent unbrauchbar sein, wenn sie beispielsweise eine Laufzeitschranke p(n) = 2 1024 n haben. Aus der Vorlesung bekannte Probleme in P Alle Ch-2 Sprachen. Das Pfadproblem in Graphen. Die Berechnung des größten gemeinsamen Teilers (Das ist kein Entscheidungsproblem). Das PRIMES Problem (Ist eine Zahl prim?) Nico Döttling Übung 8. Januar 2010 3/27
Probleme in P Eine wichtige Klasse von Graphen sind die planaren Graphen. Definition Ein Graph heißt planar genau dann wenn er sich ohne Überschneidungen seiner Kanten in die Ebene Zeichnen läßt Planare Graphen treten sehr häufig bei natürlichen Problemen (z.b. Landkarten) auf und haben eine Reihe wichtiger Eigenschaften (Dualität, Vierfärbbarkeit etc.) Nico Döttling Übung 8. Januar 2010 4/27
Probleme in P Eine wichtige Klasse von Graphen sind die planaren Graphen. Definition Ein Graph heißt planar genau dann wenn er sich ohne Überschneidungen seiner Kanten in die Ebene Zeichnen läßt Planare Graphen treten sehr häufig bei natürlichen Problemen (z.b. Landkarten) auf und haben eine Reihe wichtiger Eigenschaften (Dualität, Vierfärbbarkeit etc.) Nico Döttling Übung 8. Januar 2010 4/27
Planare Graphen Example Ist dieser Graph planar? Nico Döttling Übung 8. Januar 2010 5/27
Planare Graphen Example Ja. Planarität ist zwar zunächst geometrisch definiert, ist aber vielmehr eine topologische Eigenschaft von Graphen. Nico Döttling Übung 8. Januar 2010 6/27
Planare Graphen Example Ja. Planarität ist zwar zunächst geometrisch definiert, ist aber vielmehr eine topologische Eigenschaft von Graphen. Nico Döttling Übung 8. Januar 2010 6/27
Planare Graphen Das war ein verfahren von Hand. Wie können wir algorithmisch Graphen auf Planarität testen? Problem: PLANARITY Gegeben: Ein Graph G = (V, E) Gesucht: Ist G planar? Nico Döttling Übung 8. Januar 2010 7/27
Planare Graphen Das war ein verfahren von Hand. Wie können wir algorithmisch Graphen auf Planarität testen? Problem: PLANARITY Gegeben: Ein Graph G = (V, E) Gesucht: Ist G planar? Nico Döttling Übung 8. Januar 2010 7/27
Planare Graphen Definition Ein zusammenhängender Graph H = (W, F) heißt Minore eines zusammenhängenden Graphen G = (V, E), falls sich G sich durch Kantenkontraktion in eine Graphen G überführen läßt, welcher H als Subgraphen enthält. Eine Kantenkontraktion ist das Löschen einer Kante und anschließende Verschmelzen der beiden Endknoten. Ein Graph G enthält einen Graphen H als Subgraphen, wenn sich G durch Löschung von Knoten und Kanten, sowie anschließende Umbenennung in H überführen läßt. Nico Döttling Übung 8. Januar 2010 8/27
Planare Graphen Example Ist H eine Minore von G? H G Nico Döttling Übung 8. Januar 2010 9/27
Planare Graphen Example Ja: Nico Döttling Übung 8. Januar 2010 10/27
Satz von Kuratowski Es gibt eine einfache kombinatorische Charakterisierung von planaren Graphen. Theorem (Kuratowski) Ein Graph G = (V, E) ist genau dann planar, wenn er weder den K 5 noch den K 3,3 als Minore enthält. K 5 K 3,3 Der Beweis für diesen Satz umfasst einen Induktionsbeweis mit vielen Fallunterscheidungen. Nico Döttling Übung 8. Januar 2010 11/27
Satz von Kuratowski Es gibt eine einfache kombinatorische Charakterisierung von planaren Graphen. Theorem (Kuratowski) Ein Graph G = (V, E) ist genau dann planar, wenn er weder den K 5 noch den K 3,3 als Minore enthält. K 5 K 3,3 Der Beweis für diesen Satz umfasst einen Induktionsbeweis mit vielen Fallunterscheidungen. Nico Döttling Übung 8. Januar 2010 11/27
Planare Graphen Mit diesem Satz erhält man einen Algorithmus T um Graphen auf Planarität zu testen. Dies gelingt durch Anwendung einer sogenannten Branch-Decomposition des Graphen. Mit ihr kann man in O( V 3 ) beliebige Minoren konstanter Größe in Graphen finden. Leider übersteigt auch dies den Rahmen dieser Übung. Der Planaritätstest sieht dann so aus. PLANAR Eingabe: Graph G = (V, E) Ausgabe: G planar JA/NEIN? Erzeuge Branch-Decomposition T von G Prüfe ob G K 5 als Minore enthält. Falls ja gebe NEIN aus. Prüfe ob G K 3,3 als Minore enthältm. Falls ja gebe NEIN aus. gebe JA aus Nico Döttling Übung 8. Januar 2010 12/27
Planare Graphen Mit diesem Satz erhält man einen Algorithmus T um Graphen auf Planarität zu testen. Dies gelingt durch Anwendung einer sogenannten Branch-Decomposition des Graphen. Mit ihr kann man in O( V 3 ) beliebige Minoren konstanter Größe in Graphen finden. Leider übersteigt auch dies den Rahmen dieser Übung. Der Planaritätstest sieht dann so aus. PLANAR Eingabe: Graph G = (V, E) Ausgabe: G planar JA/NEIN? Erzeuge Branch-Decomposition T von G Prüfe ob G K 5 als Minore enthält. Falls ja gebe NEIN aus. Prüfe ob G K 3,3 als Minore enthältm. Falls ja gebe NEIN aus. gebe JA aus Nico Döttling Übung 8. Januar 2010 12/27
Planare Graphen Es gibt allerdings auch Linearzeitalgorithmen für PLANARITY, also Algorithmen mit Laufzeit O( V + E ) (Hopcroft und Tarjan 1974). Man kann sich aber auch Verallgemeinerungen des Planaritätsproblems vorstellen. Nico Döttling Übung 8. Januar 2010 13/27
Planare Graphen Es gibt allerdings auch Linearzeitalgorithmen für PLANARITY, also Algorithmen mit Laufzeit O( V + E ) (Hopcroft und Tarjan 1974). Man kann sich aber auch Verallgemeinerungen des Planaritätsproblems vorstellen. Nico Döttling Übung 8. Januar 2010 13/27
Planare Graphen Wenn man einen Graphen überschneidungsfrei in die Ebene zeichnen kann, dann kann man ihn auch überschneidungsfrei auf eine Kugeloberfläche zeichnen (die Umkehrung gilt genauso) Man kann Graphen auch auf Flächen mit Löchern, zeichnen, beispielsweise auf einen Torus. Die Anzahl der Löcher wird als Genus einer Fläche bezeichnet und ist ein Begriff aus der Differenzialgeometrie. Nico Döttling Übung 8. Januar 2010 14/27
Planare Graphen Wenn man einen Graphen überschneidungsfrei in die Ebene zeichnen kann, dann kann man ihn auch überschneidungsfrei auf eine Kugeloberfläche zeichnen (die Umkehrung gilt genauso) Man kann Graphen auch auf Flächen mit Löchern, zeichnen, beispielsweise auf einen Torus. Die Anzahl der Löcher wird als Genus einer Fläche bezeichnet und ist ein Begriff aus der Differenzialgeometrie. Nico Döttling Übung 8. Januar 2010 14/27
Planare Graphen Wenn man Graphen auf Flächen mit höherem Genus einbettet lassen sich nichtplanare Graphen plötzlich überschneidungsfrei zeichnen. Nico Döttling Übung 8. Januar 2010 15/27
Planare Graphen Planare Graphen lassen sich durch verbotene Minoren charakterisieren (namentlich K 5 und K 3,3 ) Es gibt eine Verallgemeinerung des Satzes von Kuratowski auf größere Klassen von Graphen, insbesondere auch für Graphen die auf Flächen mit höheren Genera planar sind. Das ist das Robertson Seymour Theorem. Es besagt grob dass es auch für Graphen die auf Flächen mit höherem Genus planar sind ein Planaritätskriterium mit verbotenen Minoren gibt. Beispielsweise gibt es eine Menge H von verbotenen Minoren für die Planarität auf dem Torus. Die Menge H hat konstante Größe. Es gibt also (analog zum oben skizzierten Planaritätstest-Algorithmus) einen Polynomialzeitalgorithmus der testet ob Graphen auf einem Torus planar sind. Nico Döttling Übung 8. Januar 2010 16/27
Planare Graphen Planare Graphen lassen sich durch verbotene Minoren charakterisieren (namentlich K 5 und K 3,3 ) Es gibt eine Verallgemeinerung des Satzes von Kuratowski auf größere Klassen von Graphen, insbesondere auch für Graphen die auf Flächen mit höheren Genera planar sind. Das ist das Robertson Seymour Theorem. Es besagt grob dass es auch für Graphen die auf Flächen mit höherem Genus planar sind ein Planaritätskriterium mit verbotenen Minoren gibt. Beispielsweise gibt es eine Menge H von verbotenen Minoren für die Planarität auf dem Torus. Die Menge H hat konstante Größe. Es gibt also (analog zum oben skizzierten Planaritätstest-Algorithmus) einen Polynomialzeitalgorithmus der testet ob Graphen auf einem Torus planar sind. Nico Döttling Übung 8. Januar 2010 16/27
Planare Graphen Planare Graphen lassen sich durch verbotene Minoren charakterisieren (namentlich K 5 und K 3,3 ) Es gibt eine Verallgemeinerung des Satzes von Kuratowski auf größere Klassen von Graphen, insbesondere auch für Graphen die auf Flächen mit höheren Genera planar sind. Das ist das Robertson Seymour Theorem. Es besagt grob dass es auch für Graphen die auf Flächen mit höherem Genus planar sind ein Planaritätskriterium mit verbotenen Minoren gibt. Beispielsweise gibt es eine Menge H von verbotenen Minoren für die Planarität auf dem Torus. Die Menge H hat konstante Größe. Es gibt also (analog zum oben skizzierten Planaritätstest-Algorithmus) einen Polynomialzeitalgorithmus der testet ob Graphen auf einem Torus planar sind. Nico Döttling Übung 8. Januar 2010 16/27
Planare Graphen Planare Graphen lassen sich durch verbotene Minoren charakterisieren (namentlich K 5 und K 3,3 ) Es gibt eine Verallgemeinerung des Satzes von Kuratowski auf größere Klassen von Graphen, insbesondere auch für Graphen die auf Flächen mit höheren Genera planar sind. Das ist das Robertson Seymour Theorem. Es besagt grob dass es auch für Graphen die auf Flächen mit höherem Genus planar sind ein Planaritätskriterium mit verbotenen Minoren gibt. Beispielsweise gibt es eine Menge H von verbotenen Minoren für die Planarität auf dem Torus. Die Menge H hat konstante Größe. Es gibt also (analog zum oben skizzierten Planaritätstest-Algorithmus) einen Polynomialzeitalgorithmus der testet ob Graphen auf einem Torus planar sind. Nico Döttling Übung 8. Januar 2010 16/27
Planare Graphen Planare Graphen lassen sich durch verbotene Minoren charakterisieren (namentlich K 5 und K 3,3 ) Es gibt eine Verallgemeinerung des Satzes von Kuratowski auf größere Klassen von Graphen, insbesondere auch für Graphen die auf Flächen mit höheren Genera planar sind. Das ist das Robertson Seymour Theorem. Es besagt grob dass es auch für Graphen die auf Flächen mit höherem Genus planar sind ein Planaritätskriterium mit verbotenen Minoren gibt. Beispielsweise gibt es eine Menge H von verbotenen Minoren für die Planarität auf dem Torus. Die Menge H hat konstante Größe. Es gibt also (analog zum oben skizzierten Planaritätstest-Algorithmus) einen Polynomialzeitalgorithmus der testet ob Graphen auf einem Torus planar sind. Nico Döttling Übung 8. Januar 2010 16/27
Planare Graphen Allerdings: Der Beweis des Satzes von Robertson und Seymour ist nicht-konstruktiv. Man weiß also nur dass es eine solche Menge H von verbotenen Minoren gibt, niemand kennt sie allerdings 1. Anders formuliert: Es gibt Probleme, von welchen man weiß dass sie in der Komplexitätsklasse P liegen, für welche allerdings kein Polynomialzeitalgorithmus bekannt ist. 1 Man weiß bisher nur dasshmehr als 16000 Elemente besitzen muss Nico Döttling Übung 8. Januar 2010 17/27
Planare Graphen Allerdings: Der Beweis des Satzes von Robertson und Seymour ist nicht-konstruktiv. Man weiß also nur dass es eine solche Menge H von verbotenen Minoren gibt, niemand kennt sie allerdings 1. Anders formuliert: Es gibt Probleme, von welchen man weiß dass sie in der Komplexitätsklasse P liegen, für welche allerdings kein Polynomialzeitalgorithmus bekannt ist. 1 Man weiß bisher nur dasshmehr als 16000 Elemente besitzen muss Nico Döttling Übung 8. Januar 2010 17/27
Die Komplexitätsklasse NP NP ist die Klasse allderjeniger Sprachen die von einer nichtdeterministischen Turingmaschine in Polynomialzeit akzeptiert werden. Das heißt, ist L NP, dann es gibt eine nichtdeterministische Turingmaschine M und ein Polynom p sodass M bei Eingabe w Σ genau dann nach höchstens p( w ) Schritten akzeptiert wenn w L. Äquivalent dazu ist dass es einen Verifizierer V und Polynome p, q gibt, sodass w L genau dann wenn es einen Beweis s Σ mit s q( w ) gibt sodass V die Eingabe (w, s) in p( w ) Schritten akzeptiert. (Vorgelagerter Nichtdeterminismus) Nico Döttling Übung 8. Januar 2010 18/27
Die Komplexitätsklasse NP NP ist die Klasse allderjeniger Sprachen die von einer nichtdeterministischen Turingmaschine in Polynomialzeit akzeptiert werden. Das heißt, ist L NP, dann es gibt eine nichtdeterministische Turingmaschine M und ein Polynom p sodass M bei Eingabe w Σ genau dann nach höchstens p( w ) Schritten akzeptiert wenn w L. Äquivalent dazu ist dass es einen Verifizierer V und Polynome p, q gibt, sodass w L genau dann wenn es einen Beweis s Σ mit s q( w ) gibt sodass V die Eingabe (w, s) in p( w ) Schritten akzeptiert. (Vorgelagerter Nichtdeterminismus) Nico Döttling Übung 8. Januar 2010 18/27
Die Komplexitätsklasse NP Es liegen viele interessante kombinatorische und algebraische Probleme in NP Das Erfüllbarkeitsproblem für Aussagenlogische Formeln Das Problem des Handlungsreisenden Lineare Programmierung Nico Döttling Übung 8. Januar 2010 19/27
NP-Vollständigkeit p bezeichne Polynomialzeitreduzierbarkeit. Eine Sprache L NP heißt NP-vollständig wenn für für alle L NP gilt L p L. NP-vollständige Probleme sind sozusagen die schwierigsten Probleme in NP. Warum Polynomialzeitreduktionen? Idee dahinter: Könnte man ein NP-vollständiges Problem effizient lösen (läge es in P), dann würde P = NP gelten. Nico Döttling Übung 8. Januar 2010 20/27
NP-Vollständigkeit p bezeichne Polynomialzeitreduzierbarkeit. Eine Sprache L NP heißt NP-vollständig wenn für für alle L NP gilt L p L. NP-vollständige Probleme sind sozusagen die schwierigsten Probleme in NP. Warum Polynomialzeitreduktionen? Idee dahinter: Könnte man ein NP-vollständiges Problem effizient lösen (läge es in P), dann würde P = NP gelten. Nico Döttling Übung 8. Januar 2010 20/27
NP-Vollständigkeit p bezeichne Polynomialzeitreduzierbarkeit. Eine Sprache L NP heißt NP-vollständig wenn für für alle L NP gilt L p L. NP-vollständige Probleme sind sozusagen die schwierigsten Probleme in NP. Warum Polynomialzeitreduktionen? Idee dahinter: Könnte man ein NP-vollständiges Problem effizient lösen (läge es in P), dann würde P = NP gelten. Nico Döttling Übung 8. Januar 2010 20/27
NP-Vollständigkeit p bezeichne Polynomialzeitreduzierbarkeit. Eine Sprache L NP heißt NP-vollständig wenn für für alle L NP gilt L p L. NP-vollständige Probleme sind sozusagen die schwierigsten Probleme in NP. Warum Polynomialzeitreduktionen? Idee dahinter: Könnte man ein NP-vollständiges Problem effizient lösen (läge es in P), dann würde P = NP gelten. Nico Döttling Übung 8. Januar 2010 20/27
NP-Vollständigkeit Problem SAT Gegeben: Eine aussagenlogische Formel φ in konjunktiver Normalform Frage: Gibt es erfüllende Belegung von φ Example Hat die Formel φ = (x y z) (x ȳ z) ( x ȳ) eine erfüllende Belegung? Nico Döttling Übung 8. Januar 2010 21/27
NP-Vollständigkeit Problem SAT Gegeben: Eine aussagenlogische Formel φ in konjunktiver Normalform Frage: Gibt es erfüllende Belegung von φ Example Hat die Formel φ = (x y z) (x ȳ z) ( x ȳ) eine erfüllende Belegung? Nico Döttling Übung 8. Januar 2010 21/27
NP-Vollständigkeit Example φ = (x y z) (x ȳ z) ( x ȳ) Ja: x = TRUE y = FALSE z = FALSE Nico Döttling Übung 8. Januar 2010 22/27
NP-Vollständigkeit Theorem (Cook-Levin) Das Erfüllbarkeitsproblem der Aussagenlogik SAT ist NP-vollständig Problem 3SAT Gegeben: Eine aussagenlogische Formel φ in konjunktiver Normalform bei welcher jede Klausel höchstens 3 Literale enthält Frage: Gibt es erfüllende Belegung von φ? Nico Döttling Übung 8. Januar 2010 23/27
NP-Vollständigkeit Theorem (Cook-Levin) Das Erfüllbarkeitsproblem der Aussagenlogik SAT ist NP-vollständig Problem 3SAT Gegeben: Eine aussagenlogische Formel φ in konjunktiver Normalform bei welcher jede Klausel höchstens 3 Literale enthält Frage: Gibt es erfüllende Belegung von φ? Nico Döttling Übung 8. Januar 2010 23/27
NP-Vollständigkeit Lemma 3SAT ist NP-vollständig Nico Döttling Übung 8. Januar 2010 24/27
NP-Vollständigkeit Beweis: 3SAT ist offensichtlich in NP. Man rät eine erfüllende Belegung T für φ und der Verifizierer prüft ob T tatsächlich φ erfüllt. Es gilt SAT p 3SAT. Sei φ eine aussagenlogische Formel in konjunktiver Normalform. Wir konstruieren eine neue aussagenlogische Formel φ in konjunktiver Normalform die pro Klausel nur noch 3 Literale besitzt und genau dann erfüllbar ist wenn φ erfüllbar ist. Nico Döttling Übung 8. Januar 2010 25/27
NP-Vollständigkeit Sei φ = K 1 K 2 K n mit K i = L i,1 L i,2... L i,ki Wir ersetzen jedes K i, i = 1,...,n durch eine Konjunktion neuer Klauseln. Wir führen dazu für jede Klausel K i k i 1 neue Variable α i,1,...α i,ki 1 ein. K j =(L i,1 α i,1 ) (α i,1 L i,2 α i,2 )... (α i,ki 2 L i,ki 1 α i,ki 1) (α i,ki 1 L i,ki ) Wir setzen φ = K 1 K n Nico Döttling Übung 8. Januar 2010 26/27
NP-Vollständigkeit Ist nun T eine erfüllende Belegung für φ, dann gibt es für jede Klausel K i ein Literal L i,t das wahr ist. Wir eine erfüllende Belegung für φ indem wir die Variablen α i,1,...,α i,t 1 auf TRUE setzen und α i,t,...,α i,ki auf FALSE. Haben wir umgekehrt eine erfüllende Belegung für φ, so ist für jedes K i mindestens ein L i,t TRUE, da K i k i Klauseln besitzt aber nur k i 1 neue Variablen α i,t die jeweils maximal eine Klausel erfüllen können. Damit erhalten wir eine erfüllende Belegung für φ. Nico Döttling Übung 8. Januar 2010 27/27