• Keine Ergebnisse gefunden

Die Komplexit¨atsklassen P und NP

N/A
N/A
Protected

Academic year: 2022

Aktie "Die Komplexit¨atsklassen P und NP"

Copied!
24
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Die Komplexit¨ atsklassen P und NP

Prof. Dr. Berthold V¨ocking Lehrstuhl Informatik 1 Algorithmen und Komplexit¨at

RWTH Aachen

21. November 2010

(2)

Definition von Polynomialzeitalgorithmus

Definition (worst case Laufzeit eines Algorithmus)

Dieworst case Laufzeit tA(n), n ∈N, eines Algorithmus A

entspricht den maximalen Laufzeitkosten auf Eingaben der L¨ange n bez¨uglich des logarithmischen Kostenmaßes der RAM.

Definition (Polynomialzeitalgorithmus)

Wir sagen, die worst case Laufzeit tA(n) eines Algorithmus A ist polynomiell beschr¨ankt, falls gilt

∃α∈N:tA(n) =O(nα) .

Einen Algorithmus mit polynomiell beschr¨ankter worst case

(3)

Definition der Klasse P

Definition (Komplexit¨atsklasse P)

Pist die Klasse der Probleme, f¨ur die es einen Polynomialzeit- algorithmus gibt.

Anmerkungen:

Alternativ kann man sich auch auf die Laufzeit einer TM beziehen, da sich RAM und TM gegenseitig mit polynomiellen Zeitverlust simulieren k¨onnen.

Polynomialzeitalgorithmen werden h¨aufig auch als

”effiziente Algorithmen“ bezeichnet.

P ist in diesem Sinne die Klasse derjenigen Probleme, die effizient gel¨ost werden k¨onnen.

(4)

Sortieren in P

Problem (Sortieren)

Eingabe:N Zahlen a1, . . . ,aN ∈N

Ausgabe:aufsteigend sortierte Folge der Eingabezahlen

Anmerkung:Soweit wir nichts anderes sagen, nehmen wir an, dass Zahlen bin¨ar kodiert sind.

(5)

Sortieren in P

Satz

Sortieren∈P.

Beweis:

Wir l¨osen das Problem beispielsweise mit Mergesort.

Laufzeit im uniformen Kostenmaß: O(NlogN).

Laufzeit im logarithmischen Kostenmaß:O(`NlogN), wobei

`= max1≤i≤Nlog(ai).

Sei n die Eingabel¨ange. Es gilt`≤n und logN ≤N≤n.

Somit ist die Laufzeit beschr¨ankt durch`NlogN ≤n3.

(6)

Graphzusammenhang in P

Problem (Graphzusammenhang) Eingabe:Graph G = (V,E) Frage:Ist G zusammenh¨angend?

Anmerkung:Bei Graphproblemen gehen wir grunds¨atzlich davon aus, dass der Graph in Form einer Adjazenzmatrix eingegeben wird.

(7)

Graphzusammenhang in P

Satz

Graphzusammenhang∈P.

Beweis

Wir l¨osen das Problem mit einer Tiefensuche.

Laufzeit im uniformen Kostenmaß: O(|V|+|E|) Laufzeit im logarithmischen Kostenmaß:

O((|V|+|E|)·log|V|)

Die Eingabel¨ange ist n=|V|2 ≥ |E|.

Die Gesamtlaufzeit ist somit

O((|V|+|E|) log|V|) = O(nlogn) = O(n2) .

(8)

Weitere Beispiele f¨ ur Probleme in P

K¨urzester Weg

Minimaler Spannbaum Maximaler Fluss Maximum Matching Lineare Programmierung Gr¨oßter Gemeinsamer Teiler Primzahltest (

”PRIMES is in P“ [Agrawal, Kayal, Saxena, 2002])

(9)

Definition von NTM

Definition (Nichtdeterministische Turingmaschine – NTM)

Eine nichtdeterministische Turingmaschine (NTM) ist definiert wie eine deterministische Turingmaschine (TM), nur die Zustands¨uber- f¨uhrungsfunktion wird zu einer Relation

δ⊆((Q\ {¯q})×Γ)×(Q×Γ× {L,R,N}) .

(10)

Erl¨ auterung der Rechnung einer NTM

Eine Konfiguration K0 ist direkter Nachfolger einer Konfi- gurationK, fallsK0 durch einen der inδ beschriebenen Uberg¨¨ ange aus K hervorgeht.

Rechenweg = Konfigurationsfolge, die mit Startkonfiguration beginnt und mit Nachfolgekonfigurationen fortgesetzt wird bis sie eine Endkonfiguration im Zustand ¯q erreicht.

Beachte: Zu einer Konfiguration kann es mehrere direkte Nachfolgekonfigurationen geben.Der Verlauf der Rechnung ist also nicht eindeutig bestimmt (nicht deterministisch).

(11)

Definition des Akzeptanzverhaltens

Definition (Akzeptanzverhalten der NTM)

Eine NTM M akzeptiert die Eingabe x∈Σ, falls es mindestens einen Rechenweg von M gibt, der in eine akzeptierende End- konfiguration f¨uhrt.

Die vonM erkannte Sprache L(M) besteht aus allen von M akzeptierten W¨ortern.

(12)

Definition der Laufzeit

Definition (Laufzeit der NTM)

Sei M eine NTM. Die Laufzeit von M auf einer Eingabe x ∈L(M) ist definiert als

TM(x) := L¨ange des k¨urzesten akzeptierenden Rechenweges von M auf x .

F¨ur x 6∈L(M) definieren wir TM(x) = 0.

Die worst case Laufzeit tM(n) f¨ur M auf Eingaben der L¨ange n∈Nist definiert durch

tM(n) := max{TM(x) |x∈Σn} .

(13)

Definition der Klasse NP

Definition (Komplexit¨atsklasse NP)

NPist die Klasse der Entscheidungsprobleme, die durch eine NTM M erkannt werden, deren worst case Laufzeit tM(n) polynomiell beschr¨ankt ist.

NP steht dabei f¨ur nichtdeterministisch polynomiell.

(14)

Beispiel f¨ ur ein Problem aus NP

Problem (Cliquenproblem – CLIQUE)

Eingabe:Graph G = (V,E), k ∈ {1, . . . ,|V|}

Frage:Gibt es eine k-Clique?

F¨ur das Cliquenproblem kennen wir keinen Polynomialzeitalgorithmus.

Die besten bekannten Algorithmen haben eine exponentielle Laufzeit.

(15)

Beispiel f¨ ur ein Problem aus NP

Satz

CLIQUE∈NP.

Beweis:Wir beschreiben eine NTM M mitL(M) = CLIQUE:

1 Syntaktisch inkorrekte Eingaben werden verworfen.

2 M

”r¨at“ einen 0-1-String y der L¨ange|V|.

3 Sei C ={i ∈V|yi = 1} ⊆V.

4 M akzeptiert, falls C ausk Knoten besteht und jedes Knotenpaar aus C durch eine Kante verbunden ist.

Korrektheit:Es gibt genau dann einen akzeptierenden Rechenweg, wennG eine k-Clique enth¨alt.

(16)

Alternative Charakterisierung der Klasse NP

Satz

Eine Sprache L⊆Σ ist genau dann in NP, wenn es einen

Polynomialzeitalgorithmus V (einen sogenanntenVerifizierer) und ein Polynom p mit der folgenden Eigenschaft gibt:

x ∈L ⇔ ∃y ∈ {0,1},|y| ≤p(|x|) :V akzeptiert y#x .

(17)

Beweis: Von der NTM zu Zertifikat & Verifizierer

Gegeben:

Sei M eine NTM, die L∈NP in polynomieller Zeit erkennt.

M’s Laufzeit sei beschr¨ankt durch ein Polynomq.

O.B.d.A. sehe die ¨Uberf¨uhrungsrelation vonδ immer genau zwei ¨Uberg¨ange vor, die wir mit 0 und 1 bezeichnen.

Konstruktion von Zertifikat und Verifizierer:

F¨ur die Eingabex ∈Lbeschreibe y ∈ {0,1}q(n) den Pfad von M auf einem akzeptierenden Rechenweg.

Wir verwenden y als Zertifikat.

Der Verifizierer V erh¨alt als Eingabey#x und simuliert einen Rechenweg der NTMM f¨ur die Eingabex.

(18)

Beweis: Von der NTM zu Zertifikat & Verifizierer

Korrektheit der Konstruktion:

Gem¨aß Konstruktion gilt

x ∈L ⇔ M akzeptiert x

⇔ ∃y ∈ {0,1}q(n) :V akzeptierty#x.

Der Verifizierer kann die durch das Zertifikaty beschriebene Rechnung mit polynomiellem Zeitverlust simulieren.

Somit erf¨ullen y und V die im Satz geforderten Eigenschaften.

(19)

Beweis: Von Zertifikat & Verifizierer zur NTM

Gegeben:

VerifiziererV mit polynomieller Laufzeitschranke und Polynom p mit der Eigenschaft:

x ∈L ⇔ ∃y ∈ {0,1},|y| ≤p(|x|) :V akzeptiert y#x.

Konstruktion der NTM:

1 M r¨at das Zertifikaty ∈ {0,1},|y| ≤p(n).

2 M f¨uhrt V auf y#x aus und akzeptiert, falls V akzeptiert.

(20)

Beweis: Von Zertifikat & Verifizierer zur NTM

Korrektheit der Konstruktion:

M erkennt die SpracheL, weil gilt

x ∈L ⇔ ∃y∈ {0,1},|y| ≤p(n) :V akzeptiert y#x

⇔ Es gibt einen akzeptierenden Rechenweg f¨ur M

⇔ M akzeptiertx.

Die Laufzeit von M ist polynmiell beschr¨ankt, denn

die Laufzeit von Schritt 1 entspricht der L¨ange des Zertifikats, und

die Laufzeit von Schritt 2 entspricht der Laufzeit des Verizierers.

(21)

Die Komplexit¨ atsklasse EXPTIME

Definition (Komplexit¨atsklasse EXPTIME)

EXPTIMEist die Klasse der Probleme, die sich auf einer DTM mit Laufzeitschranke2q(n) berechnen lassen, wobei q ein geeignetes Polynom ist.

Wie verh¨alt sich NP zu P und EXPTIME?

(22)

Wie verh¨ alt sich NP zu P und EXPTIME?

Im Folgenden schr¨anken wir die Klassen P und EXPTIME auf Entscheidungsprobleme ein, um sie mit der Klasse NP in Beziehung setzen zu k¨onnen.

Satz

P⊆NP⊆EXPTIME Beweis:

Offensichtlich gilt P⊆NP, weil eine DTM als eine spezielle NTM aufgefasst werden kann.

Wir m¨ussen noch zeigen NP⊆EXPTIME.

(23)

Exponentielle Laufzeitschranke f¨ ur Probleme aus NP

SeiL∈NP. Die L¨ange der Zertifikate f¨urL sei p(n).

Wir beschreiben einen det. AlgorithmusA mit exponentieller Laufzeitschranke, derL entscheidet:

Bei Eingabe x∈ {0,1}n startetA den Verifizierer V mity#x f¨ur jedes Zertifikat y ∈ {0,1}p(n).

A akzeptiert, fallsV eines der generierten Zertifikate akzeptiert.

Laufzeitanalyse:

Sei p0 eine polynomielle Laufzeitschranke f¨urV. Die Laufzeit unseres Algorithmus ist dann h¨ochstens

2p(n)·p0(p(n) + 1 +n) ≤ 2p(n)·2p0(p(n)+1+n)

≤ 2p(n)+p0(p(n)+1+n) = 2q(n)

(24)

Die große offene Frage der Informatik lautet

P = NP?

Diese Frage ist so bedeutend, weil sehr viele wichtige Probleme in NP enthalten sind, f¨ur die kein Polynomialzeitalgorithmus bekannt ist. Einige dieser Problem lernen wir in der n¨achsten Vorlesung

Referenzen

ÄHNLICHE DOKUMENTE

• Ist die obere H¨ alfte einer Domino-Zeile eine Konfiguration k, so ist die untere H¨ alfte eine Nachfolgekonfiguration von k?. • Die untere H¨ alfte einer Domino-Zeile wird auf

•  set of those Decision problems, for that an algorithm exists, which solves the problem and which consumes no more than polynomial runtime.. The class P:

•  Jede Kante repräsentiert eine Belegung von Variable auf ebene i des Baumes. •  repräsentiert den Wert von Variable

Jeweils berechenbar aus w in polynom. Zeit

und deren kurze L¨ osung wir effizient ¨ uberpr¨ ufen k¨ onnen (wenn wir diese L¨ osung erst einmal gezeigt bekommen). Intuitiv: NP enth¨ alt so ziemlich alle Probleme, die nach

I Die Komplexit¨ atsklasse coNP I Zwischen P und NPC: NP-intermediate I Die Komplexit¨ atsklassen EXPTIME und PSPACE.. BuK/WS 2017 VL-18: Jenseits von P und

Gesucht ist eine bijektive Abbildung zwischen den ungekürzten Brüchen und den natür- lichen Zahlen..

When all specified self-diagnostics terminate normally, the HDD posts the GOOD status for the SEND DIAGNOSTIC command. When an error is detected in the self-diagnostics, the