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

Post on 05-Apr-2015

102 views 0 download

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

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!

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.

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“

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}

Friedhelm Meyer auf der Heide 5

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätÜber NP

- P µ NP

- Offenes Problem: P NP?

Friedhelm Meyer auf der Heide 6

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätNichtdeterministische Turingmaschinen

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.

Friedhelm Meyer auf der Heide 8

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätRechnungen einer NTM

Berechnungsbaum einer NTM bei Eingabe w

Friedhelm Meyer auf der Heide 9

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätLaufzeit von NTMs

Friedhelm Meyer auf der Heide 10

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätNichtdeterministische Komplexitätsklassen

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.“

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.

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.

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

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}

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

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.

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)

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.

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.

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.

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

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

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)

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

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.

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 .

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.

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‘

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:

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

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}