Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und...

32
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen - TSP: Eingabe (G, c, k); entscheide, ob es im gewichteten Graphen (G, c) eine Rundreise der Länge · k gibt. Berechnen (Finden) einer solchen Rundreise scheint sehr schwierig zu sein. Aber: Für eine gegebene Rundreise verifizieren, ob ihr Gewicht · k ist, ist einfach!

Transcript of Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und...

Page 1: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 1

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätDie Klasse NP

Verifizieren versus Berechnen

- TSP: Eingabe (G, c, k); entscheide, ob es im

gewichteten Graphen (G, c) eine Rundreise der

Länge · k gibt.

Berechnen (Finden) einer solchen Rundreise scheint

sehr schwierig zu sein.

Aber: Für eine gegebene Rundreise verifizieren, ob ihr

Gewicht · k ist, ist einfach!

Page 2: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 2

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätDie Klasse NP

Rucksackproblem: (RS)Gegeben sind n Objekte 1, …, n. Objekt i hat Gewicht gi und Wert wi, G={g1, … , gn}, W={w1,…,wn} , Gewichtsschranke (Rucksackgröße) g Optimierungsproblem: Suche S µ {1,…,n} so, dass i 2 S gi · g gilt und i 2 S wi maximal wird.

Entscheidungsproblem: RSent = {<G,W,g,w> | Es gibt S µ {1,…,n} mit i 2 S gi · g und i 2 S wi ¸ w} scheint schwierig zu entscheiden zu sein. Aber: Für gegebenes S µ {1,…,n} zu verifizieren, dass S eine Lösung liefert, ist sehr einfach.

Page 3: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 3

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätVerifizierer

Ein Verifizierer für RSent ist eine TM, die bei Eingabe G, W, g, w, S entscheidet, ob S µ {1,…,n} ist und S eine Lösung für G, W, g, w ist, d.h. ob i 2 S gi · g und i 2 S wi ¸ w gilt.

Ein Verifizierer für TSP ist eine TM die bei Eingabe G, c, k, R entscheidet, ob R eine Rundreise in G und c(R) · k ist.

Allgemein: Ein Verifizierer V für eine Sprache L ist eine TM mit L = {w| es gibt Wort c, so dass V die Eingabe (w, c) akzeptiert}

c ist das Zertifikat oder der Zeuge für „w 2 L“

Page 4: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 4

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätPolynomielle Verifizierer

V ist polynomieller Verifizierer für L, wenn es k gibt, so dass

für jedes w 2 L ein c, |c| · |w|k existiert und V die Eingabe

(w,c) in Zeit poly(|w|) akzeptiert.

L ist polynomiell verifizierbar, falls es einen polynomiellen Verifizierer für L gibt.

Satz: Es gibt polynomielle Verifizierer für TSP, RSent ,

ZUSAMMENGESETZT.

Def: NP = {L | es gibt polynomiellen Verifizierer für L}

Page 5: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 5

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätÜber NP

- P µ NP

- Offenes Problem: P NP?

Page 6: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 6

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätNichtdeterministische Turingmaschinen

Page 7: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 7

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätNTM‘s

Rechnung einer NTM………

Beobachtung: NTM kann bei fester Eingabe w 2 *

viele verschiedene Rechnungen durchführen.

Wann akzeptiert sie w??

a) Falls 99 % der Rechnungen akzeptiert sind

randomisierte (probabilistische) Algorithmen

b) Falls mindestens eine Rechnung akzeptiert

Nichtdeterminismus.

Page 8: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 8

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätRechnungen einer NTM

Berechnungsbaum einer NTM bei Eingabe w

Page 9: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 9

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätLaufzeit von NTMs

Page 10: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 10

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätNichtdeterministische Komplexitätsklassen

Page 11: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 11

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätNP und nichtdeterministische TMs

Satz: Es gibt polynomiellen Verifizierer für L genau dann, wenn es eine polynomiell zeitbeschränkte NTM für L gibt.

Satz: NP = [k ¸ 0 NTIME (nk)

„NP ist die Klasse aller Sprachen, die von NTMs in

polynomieller Zeit akzeptiert werden können.“

Page 12: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 12

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätÜber NP

Satz: NP µ EXP

Genauer: Jede t(n) zeitbeschränkte NTM kann durch eine 2O(t(n)) zeitbeschränkte DTM simuliert werden.

Page 13: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 13

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätDas Erfüllbarkeitsproblem (Satifiability, SAT)

• Eine Boole’sche Variable x kann Werte 0 und 1 (falsch und wahr) annehmen.

• Eine Boole’sche Formel ist eine Verknüpfung von Boole’schen Variablen durch Boole’sche Operatoren, z.B. AND ( Æ ) , OR ( Ç ), NOT ( : ).

Beispiel: = (:x Ç y) Æ (x Ç :z ) ist eine

Boole’sche Formel mit Variablen x, y, z. ist erfüllbar, falls es eine Belegung der

Variablen mit Werten 0, 1 gibt, die wahr macht.

Beispiel: ist erfüllbar, z. b. durch x=1, y=1, z=0.

Page 14: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 14

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätDas Erfüllbarkeitsproblem (Satifiability, SAT)

SAT = { <> | ist erfüllbare Boole‘sche Formel}

Bem: SAT 2 NP

Page 15: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 15

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätKonjunktive Normalform (KNF)

• Literal: Variable oder negierte Variable• Klausel: Disjunktion K von Literalen,

K= y1 Ç … Ç ym, yi Literale

• Formel in Konjunktiver Normalform (KNF): Konjunktion von Klauseln,

= K1 Æ … Æ Kl , Ki Klauseln

• k-SAT Formel: Formel in KNF, in der jede Klausel aus k Literalen besteht.

• k-SAT= { <> | ist erfüllbare Boole‘sche

k- SAT Formel}

Page 16: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 16

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und Komplexitätk-SAT

k-SAT= { <> | ist erfüllbare Boole‘sche k-SAT

Formel}

Bem: k-SAT 2 NP für jedes k.

Satz : 2-SAT 2 P

Page 17: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 17

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätCLIQUE

Eine k-Clique in einem Graphen G ist ein

vollständiger Teilgraph von G mit k Knoten.

CLIQUE = { <G,k> | G ist ein Graph der eine

k-Clique enthält}

Bem: CLIQUE 2 NP.

Page 18: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 18

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätPolynomielle Reduktion

Sei A µ 1*, B µ 2*. A heißt polynomiell reduzierbar auf B, falls es eine in polynomieller Zeit berechenbare

Funktion f: 1* ! 2* gibt, so dass für alle x 2 1* gilt: x 2 A , f(x) 2 B .

Wir schreiben: A ·p B

Lemma:• A ·p B und B 2 P ) A 2 P• A ·p B und B ·p C ) A ·p C (Transitivität)

Page 19: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 19

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätPolynomielle Reduktionen

Satz: 3-SAT ist polynomiell auf CLIQUE reduzierbar, d.h. 3-SAT ·p CLIQUE.

Was ist zu tun?

Beschreibe eine in polynomieller Zeit berechenbare

Funktion f, die zu einer 3-SAT Formel einen

Graphen G und eine Zahl k berechnet, so dass gilt:

Ist genau dann erfüllbar, wenn G eine k-Clique enthält.

Page 20: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 20

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätNP-Vollständigkeit

Def. : L heißt NP-vollständig, falls gilt:• L 2 NP

• Für jedes A 2 NP gilt A ·p L

Satz: Ist L NP-vollständig und L 2 P, so ist P = NP.

Korollar: Falls NP P gilt, dann sind alle NP-vollständigen Sprachen in NP \ P, also insbesondere nicht in P.

Page 21: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 21

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätNP-vollständige Probleme

Wir werden durch Masterreduktionen zeigen:

SAT und 3-SAT sind NP-vollständig.

Da wir schon gezeigt haben:• CLIQUE 2 NP und

• 3-SAT ·p CLIQUE,

folgt :

CLIQUE ist NP-vollständig.

Page 22: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 22

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und Komplexität

Die NP-Vollständigkeit des Erfüllbarkeitsproblems

Satz von Cook/Levin:

SAT ist NP-vollständig.

Zu zeigen:• SAT 2 NP (haben wir schon gezeigt)

• Für jedes L 2 NP gilt: L ·p SAT

Page 23: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 23

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätDie Reduktion

Sei L 2 NP, M=(Q, , , ) eine NTM, die L in Zeit

t(n) entscheidet, für ein Polynom t.

Aufgabe: Beschreibe eine in polynomieller Zeit berechenbare Funktion f,

die bei Eingabe w 2 * eine Boole‘sche Formel berechnet, so, dass gilt:

M akzeptiert w , ist erfüllbar

Page 24: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 24

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätDer Beweis

Idee:

Berechne aus Eingabe w, |w|=n, eine Formel ,

so dass erfüllende Belegungen für zu akzeptierenden Rechnungen von M gestartet mit w korrespondieren.

Sei T=t(n)

Page 25: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 25

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätBeweis

Variablen von und ihre Bedeutung.

di,a,t : „Nach Schritt t steht in Zelle i der Buchstabe a“

hi,t : „Nach Schritt t steht der Kopf auf Zelle i“

sq,t : „Nach Schritt t ist M in Zustand q“

Vt = {di,a,t : a 2 , 0 · i · T} [ {hi,t : 0 · i · T}

[ {sq,t : q 2 Q}

V = V1 [ V2 [ … [ VT

Page 26: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 26

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätBeweis

Teilformeln von :

Konfigt (Vt) : wird wahr genau für die Belegungen von Vt , die eine Konfiguration beschreiben.

Ü (Vt , Vt+1) : wird wahr genau für die Belegungen von Vt [ Vt+1, die Konfigurationen K und K´ beschreiben mit K ` K´ .

S(V1) : wird genau für die Belegung von V1 wahr, die q0 w beschreibt.

A(VT) : wird genau für Belegungen von VT wahr, die akzeptierende Endkonfigurationen beschreiben.

Page 27: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 27

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätBeweis

w 2 L , M akzeptiert w , M gestartet mit w hat akzeptierende Rechnung

, Es gibt Belegung für V, die = S(V1) Æ (Konf(V2) Æ … Æ Konf(VT) )

Æ Ü (V1 , V2 ) Æ … Æ Ü (VT-1 , VT) Æ A(VT)

wahr macht.

Reduktionsfunktion: berechnet zu w

obige Formel .

Page 28: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 28

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätBeweis

hat O(T²) =O(t(n)²) Variablen,

und Länge O(T³) = O(t(n)³).

) hat polynomielle Länge

Es ist einfach, in Zeit poly(n) aus w zu berechnen.

Page 29: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 29

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätWeitere NP-vollständige Probleme

Eine Knotenüberdeckung in einem Graph G = (V,E) ist eine Menge U µ V mit für alle e 2 E.

KNOTENÜBERDECKUNG := {<G, K>, G enthält Knotenüberdeckung der Größe k}

- KNOTENÜBERDECKUNG 2 NP- CLIQUE · p KNOTENÜBERDECKUNG

Aufgabe: Gebe eine in polynomieller Zeit berechenbare Funktion an, die zu jedem <G,k> ein (G‘, k‘) berechnet, so dass gilt:

G‘ enthält Knotenüberdeckung G enthält k-Clique der Größe k‘

Page 30: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 30

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätWeitere NP-vollständige Probleme

SUBSETSUM

- SUBSETSUM 2 NP

- 3-SAT ·p SUBSETSUM

Aufgabe: Gebe einen in polynomieller Zeit berechenbare Funktion an,

die zu jeder 3-SAT Formel eine Menge und

ein berechnet, so dass gilt:

Page 31: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 31

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätWeitere NP-vollständige Probleme

RUCKSACK: {<G, W, g, w> | es existiert S µ {1, …, n}

mit i 2 S gi · g und i 2 S wi ¸ w}

- RUCKSACK 2 NP

- SUBSETSUM ·p RUCKSACK

Page 32: Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Die Klasse NP Verifizieren versus Berechnen -TSP:

Friedhelm Meyer auf der Heide 32

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätWeitere NP-vollständige Probleme

Ein Hamiltonkreis in einem Graphen S ist ein Kreis

in S, der jeden Knoten berührt.

HAMILTONKREIS := {<G>, G enthält Hamiltonkreis}

TSP:= {<G, k>, G ist vollständiger Graph mit

Kantengewichten so dass G

einen Hamiltonkreis mit Gesamtlänge · k enthält}