Theoretische Informatik

Theoretische Informatik Einheit 4 Komplexit¨ atstheorie 1. Komplexit¨atsmaße 2. Komplexit¨at von Algorithmen (obere Schranken) 3. Komplexit¨at von Pr...
Author: Susanne Fuchs
16 downloads 0 Views 628KB Size
Theoretische Informatik Einheit 4 Komplexit¨ atstheorie

1. Komplexit¨atsmaße 2. Komplexit¨at von Algorithmen (obere Schranken) 3. Komplexit¨at von Problemen (untere Schranken) 4. NP-Vollst¨andigkeit

¨tstheorie Komplexita ¨ st werden? – – Was kann mit vertretbarem Aufwand gelo

• Berechenbarkeit alleine reicht nicht – L¨osungen m¨ussen effizient sein in praktischen Anwendungen – Berechenbarkeit/Entscheidbarkeit l¨ost nur die Grundsatzfrage

• Komplexit¨ at: Analyse ben¨ otigter Resourcen – Zeitbedarf des Algorithmus – Speicherbedarf des Verfahrens (RAM, Harddisk) – Netzzugriffe, Zugriff auf andere Medien

Time Space

• Meßgr¨ oße muß unabh¨ angig sein von – – – –

Konkreter Hardware Konkreter Programmiersprache Optimierungsf¨ahigkeiten des Compilers Auswahl der Testdaten

⇓ Abstrakte Komplexit¨ atsmaße erforderlich Theoretische Informatik

1

¨tstheorie §4: Komplexita

¨tstheorie Fragestellungen der Komplexita • Asymptotisches Verhalten von Algorithmen – Komplexit¨atsfunktion: Bedarf abh¨angig von der Gr¨oße der Eingabe – Absch¨atzung der Komplexit¨at großer Probleme

• Analyse konkreter Verfahren – Maximaler Verbrauch im Einzelfall Wichtig bei sicherheitskritischen Anwendungen

Worst case

Average case – Durchschnittlicher Bedarf im Langzeitverhalten Verlangt mathematisch schwierige statistische Analyse

• Analyse von Problemen – Wie effizient ist die bestm¨ogliche L¨osung?

Untere Schranken

– Wieviel kann durch Hardwaresteigerungen erreicht werden? – Welche Verbesserung liefert Parallelit¨at bzw. Nichtdeterminismus – Welche Probleme sind gleich schwierig?

Komplexit¨atsklassen

– Gibt es Probleme, die nicht effizient l¨ osbar sind? Theoretische Informatik

2

¨tstheorie §4: Komplexita

Theoretische Informatik Einheit 4.1 Komplexit¨ atsmaße

1. Zeit- und Platzkomplexit¨at 2. Asymptotische Analyse 3. Praktische Konsequenzen

¨t Zeit- und Platzkomplexita

• Rechenzeit tτ (w) – Anzahl der Elementaroperationen von τ bis Berechnung terminiert – Abh¨angig von konkreter Eingabe w

• Zeitkomplexit¨ at timeτ (n) = max{tτ (w) | |w|=n} – Maximale Rechenzeit relativ zur Gr¨oße n der Eingabe (worst-case)

• Speicherbedarf sτ (w) – Anzahl der Bandzellen, die τ w¨ahrend der Berechnung aufsucht

• Platzkomplexit¨ at spaceτ (n) = max{sτ (w) | |w|=n} – Maximaler Speicherbedarf relativ zur Gr¨oße n der Eingabe (worst-case)

Analoge Maße f¨ ur andere Berechnungsmodelle einschließlich nichtdeterministischer Maschinen ¨tstheorie Theoretische Informatik §4: Komplexita

1

¨tsmaße Komplexita

¨tsanalyse einer Turing-Maschine Komplexita

• τ 1 = ({s0 }, {1}, {b,1}, δ 1, s0 , b) mit δ 1 = s a s0 a0 P s0 1 s 0 1 r s0 b s 0 1 h • Mathematische Analyse:

(

1 falls j ∈ {0,..,n−1}, α(1n) = (s0 ,fn,0), wobei fn(j) = b sonst ( ∈ ˆ ,fn ,j) = (s0 , fn, j+1) falls j {0,..,n−1}, – Nachfolgekonfigurationen: δ(s 0 (s0 , fn+1, n) falls j=n min{j | δˆj (s0 ,fn ,0)=(s0 ,fn ,j) ∧ δ(s0 ,fn(j))=(s0 ,b,h)} = n – Terminierung:

– Anfangskonfiguration:

⇓ tτ1 (1n) = n+1 und timeτ1 (n) = n+1 f¨ ur alle n

¨tstheorie Theoretische Informatik §4: Komplexita

2

¨tsmaße Komplexita

¨tsabscha ¨tzungen Vereinfachte Komplexita • Genaue Betrachtungen sind unpraktikabel – Zu m¨uhsam bei nichttrivialen Algorithmen – Zu abh¨angig von Programmierdetails und Maschinenmodell – Welches Maschinenmodell sollte der Standard sein?

• Absch¨ atzung der Komplexit¨ at – Nur asymptotisches Verhalten auf großen Problemen ist interessant 7→ Einheitskostenmodell: Vereinfachte Z¨ahlung von Elementaroperationen 7→ Additive Konstanten werden nicht ber¨ucksichtigt 7→ Konstante Faktoren werden nicht ber¨ucksichtigt

⇓ Analyse des wesentlichen Laufzeitverhaltens/Speicherbedarfs ¨tstheorie Theoretische Informatik §4: Komplexita

3

¨tsmaße Komplexita

Asymptotische Analyse • Asymptotischer Vergleich von Funktionen – f2 w¨achst schneller als f1, falls f1(n)≤ f2(n) f¨ur alle n ∈ N – f2 w¨achst asymptotisch schneller als f1, falls es ein n0 ∈ N gibt mit f1(n)≤f2(n) f¨ur alle n≥n0

• Ordnung O(f ) einer Funktion – O(f ) = {g : N→N | ∃n0, c. ∀n≥n0. g(n)≤c∗f (n)} – Alternativ: O(f ) = {g : N→N | ∃k, c. ∀n. g(n)≤k+c∗f (n)}

– G¨ angige Schreibweisen · g=O(f ) bedeutet g ∈ O(f ), O(f1)=O(f2) bedeutet O(f1)⊆O(f2) · O(1) ≡ O(λn.1), O(n) ≡ O(λn.n), O(n2) ≡ O(λn.n2), . . .

• Ordnung konkreter Funktionen – – – –

g1 ∈ O(1) g2 ∈ O(nm) g3 ∈ O(log2n) g4 ∈ O(nn)

Konstante Funktion: g1(n)=k f¨ur alle n Polynome: g2(n)=c0 + c1∗n + .. + cm∗nm Logarithmenfunktionen: g3(n)=logbn Fakult¨atsfunktion: g4(n)=n!=1∗2∗..∗n ¨tstheorie Theoretische Informatik §4: Komplexita

4

¨tsmaße Komplexita

¨t von Algorithmen Komplexita • Asymptotischer Effizienzvergleich – τ1 ist schneller als τ2, falls timeτ1 (n)≤ timeτ2 (n) f¨ur alle n ∈ N – τ1 ist asymptotisch schneller als τ2, falls es ein n0 ∈ N gibt mit timeτ1 (n)≤timeτ2 (n) f¨ur alle n≥n0

• Komplexit¨ at O(f ) – τ hat Zeitkomplexit¨at O(f ), falls timeτ ∈ O(f ) – τ hat Platzkomplexit¨at O(f ), falls spaceτ ∈ O(f )

• Komplexit¨ atklassen –τ –τ –τ –τ –τ –τ –τ –τ

hat konstante (Zeit-)komplexit¨at, falls timeτ ∈ O(1) hat logarithmische Komplexit¨at, falls timeτ ∈ O(log2n) hat lineare Komplexit¨at, falls timeτ ∈ O(n) hat quadratische Komplexit¨at, falls timeτ ∈ O(n2) hat kubische Komplexit¨at, falls timeτ ∈ O(n3) hat polynomielle Komplexit¨at, falls timeτ ∈ O(nk ) f¨ur ein k ∈ N k hat exponentielle Komplexit¨at, falls timeτ ∈ O(2n ) f¨ur ein k ∈ N nk 2 hat superexponentielle Komplexit¨at, falls timeτ ∈ O(2 ) f¨ur ein k ∈ N .. Analoge Klassen f¨ur Platzkomplexit¨at

¨tstheorie Theoretische Informatik §4: Komplexita

5

¨tsmaße Komplexita

¨ chst Rechenzeit mit der Gro ¨ ße der Eingabe? Wie schnell wa Rechenzeiten auf 3.3 Ghz Prozessor Gr¨oße n

10

20

log2 n

1ns

2ns

n

3ns

6ns

30

40

50

60 . . .

1000 1.000.000

Wachstum 3ns

100ns

12ns

15ns 18ns

300ns

300µs

30ns 120ns 270ns 480ns

750ns 1.1µs

300µs

300s

n3 300ns 2.4µs 8.1µs 19.2µs

37.5µs 64µs

300ms

9.5y

n2

9ns

10ns

2n 300ns 300µs 300ms

300s

3n 17.8µs

116y 2.500.000.000y

1.1s 17.3h

83.3h 9.5y

Wieviel mehr kann man in der gleichen Zeit berechnen, wenn Computer um den Faktor 1000 schneller sind? log2n

n

Problemsteigerung 10300-fach 1000-fach ¨tstheorie Theoretische Informatik §4: Komplexita

n2

n3

2n

3n

31-fach 10-fach plus 10 plus 6 6

¨tsmaße Komplexita

¨tklassen – Praktische Auswirkungen Komplexita

• Große Probleme ben¨ otigen polynomielle L¨ osungen – Exponentielle Algorithmen sind f¨ur die Praxis unakzeptabel – Auch innerhalb der polynomiellen Komplexit¨at gibt es große Unterschiede

• Bessere Hardware ist selten eine L¨ osung – Wenn Algorithmen schlecht sind, n¨utzt die beste Hardware wenig – Es lohnt sich, in die Verbesserung von Algorithmen zu investieren

• Es gibt noch ungekl¨ arte Fragen – Kann Parallelismus signifikante Effizienzsteigerung bewirken? · z.B. von exponentieller auf polynomielle Zeit?

– Was ist der Zusammenhang zwischen Platzbedarf und Laufzeitverhalten · Bisher nur grobe Absch¨atzungen bekannt

¨tstheorie Theoretische Informatik §4: Komplexita

7

¨tsmaße Komplexita

Theoretische Informatik Einheit 4.2 Absch¨ atzung der Komplexit¨ at von Algorithmen

1. Suchverfahren 2. Sortieralgorithmen

Analyse konkreter Algorithmen

Obere Schranken f¨ ur die Laufzeit • Analyse auf Ebene der Algorithmen – Algorithmische Elementaroperationen gelten als ein Schritt ¨ – Meist konstanter Expansionsfaktor bei Ubersetzung in Maschinensprache – +, -, *,/,. . . Einzelschritte, wenn Zahlengr¨oße beschr¨ankt (z.B. 64-bit) – H¨oherer Aufwand bei beliebig großen Zahlen

• Analyse abstrakter sequentieller Algorithmen – Asymptotische Komplexit¨at ist unabh¨angig von Programmiersprache – Parallele/nichtdeterministische Maschinen haben evtl. bessere Laufzeit

¨tstheorie Theoretische Informatik §4: Komplexita

1

¨t von Algorithmen Komplexita

Sequentielle Suche Teste, ob eine Zahl x in einer Liste L vorkommt • Durchsuche Liste L von links nach rechts function searchseq (x,L) ≡ found := false; for i = 1 to length(L) do if L[i]=x then found:=true od; return found; Verfahren ist anwendbar auf beliebige Listen

• Laufzeitanalyse – – – –

Eine Operation f¨ur Initialisierung found:=false Je 2 Operationen pro Element von L in der for-Schleife Eine Operation f¨ur Ausgabe des Ergebnisses Insgesamt 2n+2 Schritte, wenn n die Gr¨oße der Liste L ist

7→ Sequentielle Suche ist in O(n) ¨tstheorie Theoretische Informatik §4: Komplexita

2

¨t von Algorithmen Komplexita

¨re Suche Bina Nur anwendbar, wenn Liste L geordnet ist • Teste mittleres Element; suche dann rechts oder links function searchbin(x,L) ≡ function searchbound(x,L,left,right) ≡ if left>right then return false else mid := (left+right) div 2; if xL[mid] then searchbound(x,L,mid+1,right) else return true fi; return searchbound(x,L,1,length(L))

• Grobe Laufzeitanalyse – Konstante Anzahl von Operationen pro Aufruf von searchbound – Wie oft wird searchbound aufgerufen? ¨tstheorie Theoretische Informatik §4: Komplexita

3

¨t von Algorithmen Komplexita

¨re Suche – Analyse Bina function searchbin(x,L) ≡ function searchbound(x,L,left,right) ≡ if left>right then return false else mid := (left+right) div 2; if xL[mid] then searchbound(x,L,mid+1,right) else return true fi; return searchbound(x,L,1,length(L))

Abstand von left und right halbiert sich pro Aufruf (mit Abrundung) Anzahl von Operationen pro Aufruf von searchbound ist eine Konstante k Abstand zu Beginn ist n−1 (n ist die Gr¨oße der Liste L) searchbound terminiert bei Erfolg oder wenn Abstand Null ist L¨osung der Gleichung time(n) = k+time(bn/2c) ist time(n) = k ∗ log 2 n

⇓ Bin¨ are Suche ist in O(log2 n) ¨tstheorie Theoretische Informatik §4: Komplexita

4

¨t von Algorithmen Komplexita

Sortierverfahren

• Ordne Elemente in aufsteigender Reihenfolge – Geordnete Listen unterst¨utzen effizienten Zugriff auf Elemente – Eine der h¨aufigsten Operationen in der Programmierung

• Viele Verfahren bekannt – Insertion Sort: Einf¨ugen des Listenanfangs in geordnete Teilliste – Selection Sort: Auswahl des jeweils kleinsten Elements als Listenanfang – Bubblesort: Austauschen benachbarter Elemente – Quicksort: Aufteilung nach Gr¨oße, Sortieren der entstehenden Teillisten – Mergesort: Aufteilen in Teillisten, Sortieren und Mischen der Teillisten – Mergesort (II): Identifizieren und Mischen geordneter Teillisten Auswahl des ‘besten’ Verfahrens h¨angt von Gr¨oße des Problems ab

¨tstheorie Theoretische Informatik §4: Komplexita

5

¨t von Algorithmen Komplexita

Bubblesort Fortlaufender Vergleich benachbarter Elemente Austausch bei falscher Reihenfolge function bubblesort(L) ≡ for upper = length(L)-1 downto 1 do for j = 1 to upper do if L[j]>L[j+1] then aux := L[j]; L[j] := L[j+1]; L[j+1] := aux fi od od

• Beispiel einer Sortierung mit Bubblesort √ 1 2 5 6 7 8 9 Elemente steigen wie Blasen auf, bis sie auf gr¨oßere treffen ¨tstheorie Theoretische Informatik §4: Komplexita

6

¨t von Algorithmen Komplexita

Bubblesort - Laufzeitanalyse function bubblesort(L) ≡ for upper = length(L)-1 downto 1 do for j = 1 to upper do if L[j]>L[j+1] then aux := L[j]; L[j] := L[j+1]; L[j+1] := aux fi od od

• Feste Anzahl von Operationen im Schleifenrumpf – Vergleich benachbarter Elemente – ggf. Austauch unter Verwendung einer Hilfsvariablen

• Anzahl Schleifen abh¨ angig von Listengr¨ oße n – Innere Schleife wird jeweils genau upper-mal durchlaufen – Insgesamt n-1 + n-2 + .... + 2 + 1 = n*(n-1)/2 Durchl¨aufe

⇓ Bubblesort ist in O(n2) ¨tstheorie Theoretische Informatik §4: Komplexita

7

¨t von Algorithmen Komplexita

Sortieren schneller als O(n2) • Identifiziere L¨ aufe, d.h. geordnete Teilfolgen 9 7 8 2 1 5 6 • Verschmelze L¨ aufe zu neuen L¨ aufen 9 7 8 2 1 5 6 7 8 9 1 2 5 6 – L¨ange der L¨aufe w¨achst – Anzahl halbiert sich

• Wiederhole bis Folge geordnet 7 8 9 1 2 5 6 1 2 5 6 7 8 9 – Liste ist eine einzige (komplett) geordnete Teilfolge

¨tstheorie Theoretische Informatik §4: Komplexita

8



¨t von Algorithmen Komplexita

Analyse des Verfahrens

• Abstrakte Skizze reicht f¨ ur Laufzeitanalyse • Verschmelzen ist in O(n) – Folge wird jeweils komplett durchlaufen

• Verschmelzen halbiert Anzahl der L¨ aufe – Je zwei L¨aufe werden zu einem gemischt – Nach maximal log2 n Verschmelzungen bleibt ein einziger Lauf u¨brig d.h. die Liste ist sortiert

⇓ Sortieren durch Verschmelzen ist in O(n ∗ log 2 n)

¨tstheorie Theoretische Informatik §4: Komplexita

9

¨t von Algorithmen Komplexita

Theoretische Informatik Einheit 4.3 Komplexit¨ at von Problemen

1. Untere Schranken f¨ur Komplexit¨at 2. Nichtdeterministische Komplexit¨at 3. Komplexit¨atsklassen

¨t von Problemen Komplexita

• Probleme haben unterschiedlich gute L¨ osungen – Suchen: Lineare Suche O(n) — Bin¨arsuche O(log2 n)

– Sortieren: Bubblesort O(n2) — Mergesort O(n∗ log2 n)

• Wie effizient kann ein Problem gel¨ ost werden? – Gibt es untere Schranken f¨ur die Komplexit¨at von L¨osungen

• Wann ist eine L¨ osung gut genug? – Ist ein L¨osungsalgorithmus optimal bez¨uglich Zeit-/Platzbedarf?

• Nachweis aufwendig – Man muß u¨ber alle m¨oglichen Algorithmen argumentieren

¨tstheorie Theoretische Informatik §4: Komplexita

1

¨t von Problemen Komplexita

¨t von Sortierverfahren Komplexita Schneller als O(n∗ log2 n)? • Sortierverfahren m¨ ussen Elemente vergleichen – Sonst kann die Anordnung der Elemente nicht garantiert werden – Wieviel Vergleiche werden ben¨otigt um a1..an zu ordnen? – Bestimme Anzahl der Vergleiche f¨ur den ung¨unstigsten Fall

• Betrachte Entscheidungsbaum von Algorithmen a1↔a2

≤ ≤

a2↔a3

> ≤

> a1↔a3

a1 a2 a3 ≤

a1 a2 a3

a2↔a3

a1↔a3 >

a1 a2 a3

≤ a1 a2 a3

> a1 a2 a3

> a1 a2 a3

– Innere Knoten entsprechen den durchgef¨uhrten Vergleichen – Kanten markiert mit Vergleichergebnis (≤,>) – Bl¨atter sind resultierende Anordnung der Elemente ¨tstheorie Theoretische Informatik §4: Komplexita

2

¨t von Problemen Komplexita

¨t von Sortierverfahren (II) Komplexita ≤

a1 a2 a3

a2 ↔a3



a1 ↔a2

> ≤

>

a1 ↔a3 ≤ > a1 a2 a3 a1 a2 a3

a2 ↔a3

a1 ↔a3 ≤ > a1 a2 a3 a1 a2 a3

> a1 a2 a3

• Algorithmen entsprechen Entscheidungsb¨ aumen – Abarbeitung f¨ur konkrete Eingaben entspricht einem Ast im Baum – Konkrete Laufzeit des Algorithmus entspricht L¨ange des Astes – Komplexit¨at des Algorithmus entspricht Tiefe des Entscheidungsbaumes 7→ Komplexit¨at von Sortieren ≡ minimale Tiefe von Entscheidungsb¨aumen

• Wie tief ist ein Entscheidungsbaum? – – – –

Jeder Entscheidungsbaum f¨ur hat a1..an hat n! Bl¨atter Ein bin¨arer Baum der Tiefe k hat maximal 2k Bl¨atter Jeder Entscheidungsbaum hat mindestens Tiefe log2 n! log2 n! = log2(Πni=1i)= Σni=1 log2 i ≥ Σni=n/2 log2(n/2)= n/2∗(log2 n − 1)



Sortieren ist in O(n ∗ log2 n) ¨tstheorie Theoretische Informatik §4: Komplexita

3

¨t von Problemen Komplexita

¨t anderer Problemstellungen Komplexita • Addition n-stelliger Zahlen

O(n)

¨ – Einstellige Addition von rechts nach links mit Ubertrag

O(n2)

• Multiplikation n-stelliger Zahlen – Jede Stelle muß mit jeder Stelle multipliziert werden

O(n2)

• Division n-stelliger Zahlen – Schriftliche Division bestimmt Ergebnis von links nach rechts

O(n2 ∗ (log2 n)2)

• Berechnung von n!

– Obergrenze: n-fache Multiplikation von n und n!: n ∗ log 2 n ∗ log2(nn) – Untergrenze: n/2-fach n/2∗(n/2)!: n/2 ∗ log 2(n/2) ∗ n/4∗(log2 n − 2)

• Primzahltest bei n-stelliger Zahlen

O(2n)

– Teilbarkeit muß f¨ur alle kleineren Zahlen getestet werden – Untere Schranke O(2n) nicht bewiesen 7→ NP-Vollst¨andigkeit – Ergebnis gut f¨ur offene kryptographische Systeme (w¨ahle n > 200)

¨tstheorie Theoretische Informatik §4: Komplexita

4

¨t von Problemen Komplexita

¨t Weitere Probleme mit exponentieller Komplexita • Travelling Salesman (TSP) Gegeben n St¨adte, eine Kostentabelle von Kosten cij um von Stadt i nach j zu reisen und eine Kostenbeschr¨ankung B. Gibt es eine Rundreise durch alle n St¨adte, deren Kosten unter B liegt?

• Cliquen-Problem (CLIQUE) Gegeben ein Graph G = (V, E) der Gr¨oße n und eine Zahl k ≤ n. Gibt es in G eine Clique (vollst¨andig verbundener Teilgraph) der Gr¨oße k?

• Erf¨ ullbarkeitsproblem (SAT) Ist eine aussagenlogische Formel in KNF der Gr¨oße n erf¨ullbar?

• Multiprozessor-Scheduling Verteile n Prozesse derart auf eine Menge von Prozessoren, daß die Ressourcen der Rechner optimal genutzt werden.

• Binpacking Minimiere Anzahl von Verpackungsbeh¨altern, um n verschieden große Gegenst¨ande zu transportieren. Bisher nur durch Testen aller M¨ oglichkeiten l¨ osbar ¨tstheorie Theoretische Informatik §4: Komplexita

5

¨t von Problemen Komplexita

Entscheidungs- und Optimierungsprobleme

Viele Probleme erscheinen in mehreren Varianten • Entscheidungsprobleme – Teste ob eine Eingabe x1, .., xn eine bestimmte Eigenschaft P erf¨ullt – Suchen in Listen, Primzahltests, Travelling Salesman, Clique . . .

• Berechnungsprobleme – Bei Eingabe von x1, .., xn berechne ein y, so daß P (x1, .., xn, y) gilt – Sortieren, Primfaktorzerlegung, Matrixmultiplikation, . . .

• Optimierungsprobleme – Bei Eingabe von x1, .., xn berechne das beste y mit P (x1, .., xn, y) – Travelling Salesman, Clique, Binpacking, Multiprocessor Scheduling

¨tstheorie Theoretische Informatik §4: Komplexita

6

¨t von Problemen Komplexita

Varianten des Cliquenproblems Gegeben ein Graph G = (V, E) und eine Zahl k ≤ |V |. Eine k-Clique von G ist ein vollst¨andig verbundener Teilgraph C = (Vc, Ec) mit |Vc| = k

• Entscheidungsproblem – “Gibt es eine L¨osung mit einem bestimmten Wert” · CLIQUE: Gibt es in G eine Clique der Gr¨oße k?

• Berechnungsproblem – Bestimme eine konkrete L¨osung mit einem bestimmten Wert · CLIQUE2: Bestimme eine Clique C ⊆G der Gr¨oße k

• Optimierungsprobleme – Bestimme den Wert einer optimalen L¨osung · CLIQUEopt: Bestimme das gr¨oßte k, so daß G eine k-Clique enth¨alt

– Berechne die optimale L¨osung

· CLIQUEopt2 : Bestimme eine Clique C ⊆G mit maximaler Gr¨oße k ¨tstheorie Theoretische Informatik §4: Komplexita

7

¨t von Problemen Komplexita

Problemvarianten von Clique sind gleich schwer • L¨ ose CLIQUEopt mit CLIQUE – Beginne mit k := |V | und teste ob es in G eine k-Clique gibt – Reduziere k bis der Test erfolgreich ist und gebe k aus – Zusatzaufwand ist linear in |V |

• L¨ ose CLIQUEopt2 mit CLIQUEopt – – – – – –

Bestimme kopt f¨ur G und beginne mit Ec := E W¨ahle Kante e ∈ E und teste ob es in (V, Ec−{e}) eine kopt-Clique gibt Ist dies der Fall, so setze Ec := Ec−{e} Wiederhole dies iterativ f¨ur alle Kanten aus E Die resultierende Menge Ec und die zugeh¨origen Ecken bilden die kopt-Clique Zusatzaufwand ist linear in |E|

L¨ ose analog CLIQUE2 mit CLIQUE Die Umkehrungen sind trivial ⇓

Es reicht Entscheidungsprobleme zu analysieren ¨tstheorie Theoretische Informatik §4: Komplexita

8

¨t von Problemen Komplexita

Viele schwere Probleme haben leichte Erfolgstests • Travelling Salesman: F¨ur eine gegebene Rundreise i1..in k¨onnen die Kosten ci1i2 + . . . cini1 in linearer Zeit berechnet und mit der Kostenbeschr¨ankung B verglichen werden

• Cliquen-Problem: Ein gegebener Teilgraph der Gr¨oße k kann in polynomieller Zeit auf Vollst¨andigkeit u¨berpr¨uft werden

• Erf¨ ullbarkeitsproblem: Man kann in polynomieller Zeit testen, ob eine gegebene Belegung der Variablen eine Formel erf¨ullt

• Binpacking: Man kann in polynomieller Zeit testen, ob eine gegebene Verteilung der Gegenst¨ande in k Verpackungsbeh¨alter paßt

• Zusammengesetztheitstest: Man kann in quadratischer Zeit testen, ob eine gegebene Zahl Teiler von x (also x keine Primzahl) ist Nichtdeterministische Maschinen liefern polynomielle L¨ osung

¨tstheorie Theoretische Informatik §4: Komplexita

9

¨t von Problemen Komplexita

¨ sbarkeit Nichtdeterministische Lo • Nichtdeterministische Turingmaschine τ – Komponenten S, X, Γ, s0, b wie bei normaler Turingmaschine – Zustands¨uberf¨uhrungsfunktion δ:S×Γ → 2S×Γ×{r,l,h}

ˆ τ →2Kτ – Nachfolgekonfigurationsfunktion δ:K ∗ Γ ∗ – Semantik hτ :X →2 hτ (w) = ⊥, wenn δˆ unendliche Konfigurationsfolgen erm¨oglicht – Keine Erweiterung des Berechenbarkeitsbegriffs

• Nichtdeterministische Entscheidbarkeit – τ entscheidet M ⊆X ∗, falls w ∈ M ⇔ 1 ∈ hτ (w)

“Es gibt eine akzeptierende Berechnung f¨ur w”    minimale L¨ange einer akzep– falls w ∈ M – Rechenzeit ntτ (w) = tierenden Berechnung f¨ur w  0 sonst – Zeitkomplexit¨at ntimeτ (n) = max{ntτ (w) | |w|=n}

– Platzkomplexit¨at nspaceτ (n) analog definiert ¨tstheorie Theoretische Informatik §4: Komplexita

10

¨t von Problemen Komplexita

Nichtdeterminismus als Raten und Verifizieren • Deterministische Turingmaschine mit Orakel – Eingabe des Wortes w auf erstem Arbeitsband – Phase 1: Orakel generiert Wort w 0 auf zweitem Arbeitsband – Phase 2: τ verarbeitet w und w 0 deterministisch – τ entscheidet M ⊆X ∗, falls ∀w, w 0.hτ (w, w 0)6=⊥ und w ∈ M ⇔ ∃w 0. hτ (w, w 0) = 1

– Rechenzeit otτ (w) = min{tτ (w, w 0) | hτ (w, w 0) = 1} (0 falls w 6∈ M ) Orakel ben¨otigt keine Rechenzeit zum Schreiben – Zeitkomplexit¨at otimeτ (n) = max{otτ (w) | |w|=n}

• NTM’s und OTM’s sind ¨ aquivalent – OTM kann Berechnungsfolge der NTM raten und deterministisch ausf¨uhren – NTM kann alle Berechnungsfolgen der OTM “parallel” ausf¨uhren – Rechenzeit ist identisch

¨tstheorie Theoretische Informatik §4: Komplexita

11

¨t von Problemen Komplexita

¨t von (Entscheidungs-)Problemen Komplexita • Zeitkomplexit¨ at – Eine Menge M hat Zeitkomplexit¨at O(f ), falls es eine DTM τ mit timeτ ∈ O(f ) gibt, die M entscheidet. – DTIME(f ) = {M | M hat Zeitkomplexit¨at O(f ) }

– Eine Menge M hat nichtdeterministische Zeitkomplexit¨at O(f ), falls es eine NTM τ mit ntimeτ ∈ O(f ) gibt, die M entscheidet. – NTIME(f ) = {M | M hat nichtdeterministische Zeitkomplexit¨at O(f )}

• Platzkomplexit¨ at – Eine Menge M hat Platzkomplexit¨at O(f ), falls es eine DTM τ mit spaceτ ∈ O(f ) gibt, die M entscheidet. – DSPACE(f ) = {M | M hat Platzkomplexit¨at O(f ) }

– Eine Menge M hat nichtdeterministische Platzkomplexit¨at O(f ), falls es eine NTM τ mit nspaceτ ∈ O(f ) gibt, die M entscheidet. – NSPACE(f ) = {M | M hat nichtdeterministische Platzkomplexit¨at O(f )} Konkrete Analysen werden mit abstrakten deterministischen oder nichtdeterministischen Algorithmen durchgef¨ uhrt ¨tstheorie Theoretische Informatik §4: Komplexita

12

¨t von Problemen Komplexita

¨tsklassen Wichtige Komplexita •P =

S

k ) : Effiziente L¨ DT IM E(n osbarkeit k

– Menge der in polynomieller Zeit l¨osbaren Probleme S • N P = k N T IM E(nk ) : – Menge der nichtdeterministisch in polynomieller Zeit l¨osbaren Probleme

• Weitere Zeitkomplexit¨ atsklassen S – – – –

k

EXP T IM E = k DT IM E(2n ) S k N EXP T IM E = k N T IM E(2n ) LOGT IM E = DT IM E(log2 n) N LOGT IM E = N T IM E(log2 n)

• Platzkomplexit¨ atsklassen – – – – –

LOGSP ACE = DSP ACE(log2 n) N LOGSP ACE = N SP ACE(log2 n) S P SP ACE = k DSP ACE(nk ) S N P SP ACE = k N SP ACE(nk ) S k EXP SP ACE = k DSP ACE(2n )

¨tstheorie Theoretische Informatik §4: Komplexita

13

¨t von Problemen Komplexita

¨r Komplexita ¨tsklassen Beispiele fu • P: – Arithmetische Operationen, Sortieren, Matrixmultiplikation, . . .

• N P: – Travelling Salesman, Cliquen-Problem, Erf¨ullbarkeitsproblem – Multiprozessor-Scheduling, Binpacking, Zusammengesetztheitstest

• EXP T IM E: – Travelling Salesman, Cliquen-Problem, Erf¨ullbarkeitsproblem – Multiprozessor-Scheduling, Binpacking, Primzahltest

• Komplexit¨ atsklassenhierarchie LOGT IM E ⊆ ⊆

P



NP





N LOGT IM E

P SP ACE

EXP T IM E







LOGSP ACE



N LOGSP ACE

N P SP ACE

N EXP T IM E



EXP SP ACE



...

– Es wird vermutet, daß alle Inklusionen echt sind ¨tstheorie Theoretische Informatik §4: Komplexita

14

¨t von Problemen Komplexita

Theoretische Informatik Einheit 4.4 NP-Vollst¨ andigkeit

1. Reduzierbarkeit und Vollst¨andigkeit von Klassen 2. Der Satz von Cook 3. NP-vollst¨andige Probleme

Das P –N P Problem

¨ sbar zu sein scheint? Was tun, wenn ein Problem nicht effektiv lo

Vielleicht der einzig m¨ ogliche Weg ¨tstheorie Theoretische Informatik §4: Komplexita

1

¨ndige Probleme NP-Vollsta

Das P –N P Problem Gilt P=N P oder P6=N P ? • Eines der wichtigsten offenen Probleme der TI – Sind nichtdeterministisch l¨osbare Probleme effizient l¨osbar? – Seit mehr als 30 Jahren ungekl¨art, m¨oglicherweise unl¨osbar

• Mehr als 1000 algorithmische Probleme betroffen – – – – –

Suchprobleme (Travelling Salesman, . . . ) Reihenfolgenprobleme (Scheduling, Binpacking, . . . ) Graphenprobleme (Clique, Vertex cover, . . . ) 7→ Operations Research Logische Probleme (Erf¨ullbarkeit, . . . ) 7→ Model Checking, Hardwareverifikation Zahlenprobleme (Primzahltest, . . . ) 7→ Kryptographie, IT Sicherheit

• Indizien sprechen gegen P=N P – Zu viele N P-Probleme ohne bekannte polynomielle L¨osung – Mehr als 1000 a¨quivalente Probleme in der ‘schwersten Teilklasse’ von N P ¨tstheorie Theoretische Informatik §4: Komplexita

2

¨ndige Probleme NP-Vollsta

Wie analysiert man die Frage “P =N P oder P6=N P ”?

• Untersuche die “schwierigsten” N P-Probleme – Kann man eines davon effizient l¨osen?

– Wenn ja, dann gilt P=N P

– Wenn nein, dann gibt es ein Beispiel f¨ur P6=N P

• Was heißt “M ist schwierigstes N P-Problem”? – Jedes andere N P-Problem M 0 ist leichter als M

– L¨osungen f¨ur M 0 k¨onnen in L¨osungen f¨ur M 0 umgewandelt werden – Transformation der L¨osung ist effizient



Polynomielle Reduktion

¨tstheorie Theoretische Informatik §4: Komplexita

3

¨ndige Probleme NP-Vollsta

Polynomielle Reduzierbarkeit

• M ⊆X ∗ polynomiell reduzierbar auf M 0⊆Y ∗

– Es gibt eine in polynomieller Zeit berechenbare totale Funktion f :X ∗→Y ∗ mit M =f −1(M )

– Schreibweise: M ≤pM 0

• Reduzierbarkeit ≡ geringere Komplexit¨ at – M ≤pM 0



M0 ∈P ⇒ M ∈P

– M ≤pM 0



M0 ∈NP ⇒ M ∈NP

Beweis: – χM (x)=1 ⇔ x ∈ M ⇔ f (x) ∈ M 0 ⇔ χM 0 (f (x))=1 ⇔ (χM 0 ◦f )(x)=1 – χM 0 ◦f ist in polynomieller Zeit berechenbar, wenn dies f¨ur χM 0 gilt

¨tstheorie Theoretische Informatik §4: Komplexita

4

¨ndige Probleme NP-Vollsta

Wichtige Graphentheoretische Definitionen • Ein (ungerichteter) Graph ist ein Paar G = (V, E), wobei V endliche Menge und E ⊆ { {v, v 0} | v, v 0 ∈ V ∧ v 6= v 0 }. Ein Graph ist darstellbar als Liste v1, ..., vn, {vi1 , vi01 }, ..., {vim , vi0m }. • Ein Graph H = (VH , EH ) ist genau dann Subgraph des Graphen G = (V, E) (H v G), wenn alle Ecken und Kanten von H auch Ecken bzw. Kanten in G sind: (VH , EH ) v (V, E) : ⇔ VH ⊆ V ∧ EH ⊆ E • H = (VH , EH ) ist isomorph zu G = (V, E) (kurz: H ∼ = G), wenn die Graphen durch Umbenennung (bijektive Abbildung h : V2→V ) ineinander u¨berf¨uhrt werden k¨onnen: (VH , , EH , ) ∼ = (V, E) : ⇔ ∃h : V →VH , .(h bijektiv ∧ EH = {{h(u), h(v)} | {u, v} ∈ E}) • Die Gr¨ oße |G| eines Graphen G = (V, E) ist die Anzahl |E| seiner Kanten. • Der Komplement¨ argraph des Graphen G = (V, E) ist der Graph G c = (V, E c) mit E c = { {v, v 0} | v, v 0 ∈ V }−E. • Eine Clique der Gr¨oße k im Graphen G = (V, E) ist eine vollst¨andig verbundene Knotenmenge V 0 ⊆ V mit |V | = k. (Dabei heißt vollst¨ andig verbunden: ∀v, v 0 ∈ V 0. v 6= v 0 ⇒ {v, v 0} ∈ E) • Eine Knoten¨ uberdeckung (Vertex cover) des Graphen G = (V, E) ist eine Knotenmenge V 0 ⊆ V mit der Eigenschaft ∀{v, v 0} ∈ E. v ∈ V 0 ∨ v 0 ∈ V 0 • Ein Hamilton’scher Kreis im Graphen G = (V, E) ist ein Kreis, der nur aus Kanten aus E besteht und jeden Knoten genau einmal ber¨uhrt. (D.h. eine Permutation π : {1..n}→{1..n} mit ∀i < n. {vπ(i), vπ(i+1)} ∈ E ∧ {vπ(n), vπ(1)} ∈ E) • Ein gerichteter Graph ist ein Paar G = (V, E), wobei V endliche Menge und E ⊆ V ×V . Ein Hamilton’scher Kreis im gerichteten Graphen G = (V, E) ist ein gerichteter Kreis, der nur aus Kanten aus E besteht und jeden Knoten genau einmal ber¨uhrt. ¨tstheorie Theoretische Informatik §4: Komplexita

5

¨ndige Probleme NP-Vollsta

Polynomielle Reduktion auf Graphenproblemen

• Cliquen Problem – Gegeben ein Graph G = (V, E) der Gr¨oße n und eine Zahl k≤n. – Gibt es in G eine Clique der Gr¨oße k? CLIQU E = { (G, k) | G = (V, E) Graph ∧ (∃Vc⊆V . |Vc|≥k ∧ Vc is Clique in G) }

• Vertex Cover Problem – Gegeben ein Graph G = (V, E) der Gr¨oße n und eine Zahl k≤n. – Gibt es eine Teilmenge V 0⊆V mit h¨ochstens k Elementen, so daß aus jeder Kante in G mindestens eine Ecke in V 0 liegt? V C = { (G, k) | G Graph

∧ ∧

¨tstheorie Theoretische Informatik §4: Komplexita

(∃V 0⊆V . |V 0|≤k V 0 ist Knoten¨uberdeckung von G) }

6

¨ndige Probleme NP-Vollsta

Reduzierbarkeit: Clique ≤p Vertex Cover • Analyse der Eigenschaften V 0 Knoten¨uberdeckung von G ⇔ ∀{v, v 0} ∈ E. v ∈ V 0 ∨ v 0 ∈ V 0

⇔ ∀{v, v 0} ∈ E. {v, v 0}∩V 06=∅

⇔ ∀v, v 0 ∈ V −V 0. {v, v 0} 6∈ E

⇔ ∀v, v 0 ∈ V −V 0. v6=v 0 ⇒ {v, v 0} ∈ E c := { {v, v 0}⊆V | v6=v 0}−E

⇔ V −V 0 ist Clique im Komplementgraphen Gc = (V, E c)

• Transformation der Probleme (Vertausche G und Gc) (G, k) ∈ CLIQU E ⇔ G hat Clique Vc der Mindestgr¨oße k

⇔ Gc hat Knoten¨uberdeckung V 0 = V −Vc der Maximalgr¨oße |V |−k ⇔ (Gc, |V |−k) ∈ V C

W¨ahle f (G, k) := (Gc, |V |−k)

f in polynomieller Zeit berechenbar und CLIQU E = f −1(V C) ¨tstheorie Theoretische Informatik §4: Komplexita

7

¨ndige Probleme NP-Vollsta



¨ndigkeit N P -Vollsta

• N P-hart: nicht leichter als N P – M 0⊆X ∗ ist N P-hart, wenn M ≤pM 0 f¨ur alle M ∈ N P

• N P-vollst¨ andig: das Schwierigste in N P – M ⊆X ∗ ist N P-vollst¨andig, wenn M ∈ N P und M N P-hart – Schreibweise: M ∈ N PC

¨tstheorie Theoretische Informatik §4: Komplexita

8

¨ndige Probleme NP-Vollsta

¨ndigkeit Konsequenzen von N P -Vollsta • Alle N P-vollst¨ andigen Probleme sind ¨ aquivalent – M, M 0 ∈ N PC ⇒ M 0≤pM



M ≤p M 0

• N P-Vollst¨ andigkeit ist leicht nachweisbar, wenn ein N P-vollst¨ andiges Problem bekannt ist – M ∈ N PC ⇔ M ∈ N P



∃M 0 ∈ N PC. M 0≤pM

– M ∈ N PC ⇔ ∃M 0 ∈ N PC. M 0≤pM



M ≤p M 0

• N P-vollst¨ andige Probleme entscheiden “P = N P” – P=N P ⇔ ∃M ∈ N PC. M ∈ P

– Ist P=N P dann sind alle N P-vollst¨andigen Probleme in P – P6=N P ⇔ ∃M ∈ N PC. M 6∈ P

– Ist P6=N P dann sind alle N P-vollst¨andigen Probleme nicht in P

¨tstheorie Theoretische Informatik §4: Komplexita

9

¨ndige Probleme NP-Vollsta

¨ndigkeit? Wie zeigt man N P -Vollsta • Codiere Berechnung einer NTM in einem Problem L – Wenn Berechnung positiv ausf¨allt, soll Problem l¨osbar sein – Wenn Berechnung negativ ausf¨allt, soll Problem unl¨osbar sein – Ergibt M ≤pL f¨ur das von der NTM entschiedene Problem M

• Problem L muß alle polynomiellen NTMs codieren – Ergibt M ≤pL f¨ur jedes M ∈ N P

• Welches Problem ist ausdrucksstark genug? – Codiere m¨ogliche Zustands¨uberg¨ange durch logische Formeln – Problem: K¨onnen Zustands¨uberg¨ange so kombiniert werden, daß Berechnung mit Ergebnis 1 codiert wird? – Erf¨ullbarkeitsproblem der (Aussagen-)logik ist Kandidat f¨ur N PC

¨tstheorie Theoretische Informatik §4: Komplexita

10

¨ndige Probleme NP-Vollsta

¨llbarkeitsproblem Das Erfu Ist eine aussagenlogische Formel in KNF erf¨ ullbar? Gegeben m Klauseln k1, ..., km u ¨ ber n Variablen x1, ..xn. Gibt es eine Belegung a1, ..., an ∈ {0, 1} ullt? der Variablen x1, ..xn, welche alle Klauseln erf¨ • Klausel u ¨ ber den Variablen x1, ..xn – Disjunktion einiger Literale der Form xi bzw. xi • Belegung a1, ..., an ∈ {0, 1} erf¨ ullt Klausel kj – Auswertung von kj unter a1, ..., an ergibt den Boole’schen Wert 1 ¨ ber x1, ..xn • SAT = {k1, ..km | ki Klausel u ∧

∃a1, ..an ∈ {0,1}. ∀j≤m. a1, ..an erf¨ ullt kj }

Codierbar als Teilmenge der Sprache der Aussagenlogik

¨tstheorie Theoretische Informatik §4: Komplexita

11

¨ndige Probleme NP-Vollsta

Beispiele von Formeln in KNF

(x1 ∨ x2) ∧ (x1 ∨ x2 ∨ x3) ∧ x3

erf¨ ullbar

– Setze x3=0, x2=1, x1 beliebig, z.B. x1=0 – Auswertung: (0+1) ∗ (0+1+0) ∗ 0= (1+1) ∗ (0+0+1) ∗ 1= 1 ∗ 1 ∗ 1= 1

x1 ∧ x 1

nicht erf¨ ullbar

– Jede Belegung ergibt den Wert 0

(x1 ∨ x2) ∧ (x1 ∨ x2)

erf¨ ullbar, Belegung: (1,0)

(x1 ∨ x2) ∧ (x1 ∨ x2) ∧ (x1 ∨ x2) ∧ (x1 ∨ x2) nicht erf¨ ullbar

(x1 ∨ x2 ∨ x3) ∧ (x1 ∨ x2 ∨ x4) ∧ (x1 ∨ x2 ∨ x3) erf¨ ullbar, Belegung: (1,1,0,0)

¨tstheorie Theoretische Informatik §4: Komplexita

12

¨ndige Probleme NP-Vollsta

¨ sungsalgorithmen fu ¨r das Erfu ¨llbarkeitsproblem Lo SAT = {k1..km| ki Klausel u¨ber x1..xn



∃a1..an ∈ {0,1}.∀j≤m.a1..an erf¨ullt kj }

• Deterministisch – Werte Klauseln f¨ur alle m¨oglichen Belegungen der Variablen aus bis erf¨ullende Belegung gefunden ist – Es gibt 2n m¨oglichen Belegungen von x1, ..xn – Auswertung linear in Gr¨oße der Formel O(m ∗ n) – Laufzeit ist in O(2n)

• Nichtdeterministisch – Rate eine erf¨ullende Belegung der Variablen (falls es eine gibt) – Pr¨ufe Belegung durch Auswertung der Formel – Polynomielle Laufzeit

⇓ SAT ∈ N P ¨tstheorie Theoretische Informatik §4: Komplexita

13

¨ndige Probleme NP-Vollsta

Der Satz von Cook

SAT ist N P-vollst¨ andig • Gegeben: NTM τ , die ein Problem in polynomieller Zeit l¨ ost • Ziel: Codiere Berechnung von τ bei Eingabe w durch Formel in KNF, die genau dann erf¨ ullbar ist, wenn hτ (w) = 1 – Codierung muß in polynomieller Zeit (relativ zu |w|) berechenbar sein ogliche Konfigurations¨ uberg¨ ange • Vorgehen: Beschreibe m¨ von τ durch Klauseln – Codiere Zustand, Kopfposition und Bandzellen durch Literale – Es werden nur polynomiell viele Literale und Klauseln ben¨otigt – Formel ist erf¨ullbar, wenn Konfigurations¨uberg¨ange zu Berechnung zusammengesetzt werden k¨onnen

¨tstheorie Theoretische Informatik §4: Komplexita

14

¨ndige Probleme NP-Vollsta

¨r Nachweis von N P -Vollsta ¨ndigkeit Methodik fu

• Zeige L ∈ N P: – Beschreibe, welchen L¨osungsvorschlag das Orakel generiert – Beschreibe, wie L¨osungsvorschlag u¨berpr¨uft wird – Zeige, daß das Pr¨ufverfahren polynomiell ist

• Zeige ∃L0 ∈ N PC. L0≤pL

(anstatt ∀L0 ∈ N P. L0≤pL)

– W¨ahle ein a¨hnliches, bekanntes Problem L0 ∈ N PC

– Beschreibe Transformationsfunktion f , welche Eingaben aus der Sprache f¨ur L0 in Worte der Sprache f¨ur L umwandelt

– Zeige f¨ur alle x: x ∈ L0 ⇔ f (x) ∈ L

(also L0 = f −1(L))

– Zeige, daß f in polynomieller Zeit berechnet werden kann

¨tstheorie Theoretische Informatik §4: Komplexita

15

¨ndige Probleme NP-Vollsta

¨llbarkeitsproblem mit 3 Literalen pro Klausel Erfu 3SAT = {k1, ..km | ∀i≤m. ∃zij ∈ {x1, x1, ..., xn, xn}. ki = zi1 ∨ zi2 ∨ zi3 ∧

∃a1, ..an ∈ {0,1}. ∀j≤m. a1, ..an erf¨ ullt kj }

• 3SAT ∈ N P – Wie SAT ∈ N P: Rate Belegung der Variablen und werte Klauseln aus

• SAT ≤p 3SAT : – Normalisierung der Klauseln k1, ..km u¨ber x1, ..xn. Ersetze Klausel ki durche a¨quivalente Menge von Dreierklauseln · Ersetze einelementige Klauseln ki = z durch z ∨ z ∨ z · Ersetze zweielementige Klauseln ki = z ∨ z 0 durch z ∨ z ∨ z 0 ¨ · Ubernehme dreielementige Klauseln unver¨andert · Ersetze Klauseln ki = z1 ∨ z2... ∨ zj durch j-2 neue Klauseln mit neuen Variablen yi,l : (z1 ∨ z2 ∨ yi,1) ∧ (yi,1 ∨ z3 ∨ yi,2) ∧ . . . (yi,j−3 ∨ zj−1 ∨ zj ) – Normalisierung der Klauseln m¨oglich in polynomieller Zeit – ki erf¨ullbar genau dann wenn normalisierte Klauselmenge erf¨ullbar – F¨ur die Transformation f gilt: ∀F . F ∈ SAT ⇔ f (F ) ∈ 3SAT ¨tstheorie Theoretische Informatik §4: Komplexita

16

¨ndige Probleme NP-Vollsta

¨ndig Das Cliquen Problem ist N P -vollsta CLIQU E ={ (G, k) | G = (V, E) Graph



(∃Vc⊆V . |Vc|≥k



Vc is Clique in G) }

• CLIQU E ∈ N P: – Rate eine Kantenmenge Vc⊆V – Pr¨ufe |Vc|≥k

– Pr¨ufe: ∀v6=v 0 ∈ Vc. {v, v 0} ∈ E

maximal |Vc| Schritte

maximal |Vc|2 ∗ |E|≤|V |4 Schritte

• 3SAT ≤pCLIQU E – Gegeben F = (k1, ..., km) mit ki = zi1 ∨ zi2 ∨ zi3 und zij ∈ {x1, ..., xn} – Konstruiere Graphen GF := (V, E) mit

V := {vij | 1≤i≤m, 1≤j≤3} und E := { {vij , vi0j 0 } | i6=i0 ∧ zij 6=zi0j 0 }

– Setze f (F ) := (GF , m)

– f ist in polynomieller Zeit berechenbar

¨tstheorie Theoretische Informatik §4: Komplexita

17

¨ndige Probleme NP-Vollsta

Codierung einer Formel als Cliquenproblem F = (k1, k2, k3) mit k1 = x1 ∨ x2 ∨ x3 k2 = x1 ∨ x2 ∨ x4 k3 = x1 ∨ x2 ∨ x3

k1

k2

x3

x1

x2

x2

x1

x4 k3

x1

x2

x3

Gibt es in dem Graphen eine 3-Clique? ¨tstheorie Theoretische Informatik §4: Komplexita

18

¨ndige Probleme NP-Vollsta

Korrektheit der Transformation Gegeben F = (k1, ..., km) mit ki = zi1 ∨ zi2 ∨ zi3 und zij ∈ {x1, ..., xn} Setze f (F ) := (GF , m) mit GF := (V, E), wobei V := {vij | 1≤i≤m, 1≤j≤3} und E := { {vij , vi0j 0 } | i6=i0 ∧ zij 6=zi0j 0 } Es sei f (F ) ∈ CLIQU E Dann hat GF eine m-Clique Vc Per Konstruktion von E enth¨alt Vc aus jedem der Bl¨ocke bi := {vij | 1≤j≤3} genau einen Knotenund keine zwei Knoten in Vc sind komplement¨ar (zij 6=zi0j 0 ) Eine Belegung der zugeh¨origen zij mit 1 erf¨ullt alle Klauseln ki von F Also gilt F ∈ 3SAT Gilt umgekehrt F ∈ 3SAT , so gibt es eine erf¨ullende Belegung der zij W¨ahle aus jeder Klausel ki ein Literal mit dem Wert 1 Die zugeh¨origen Knoten bilden eine m-Clique in GF Also gilt f (F ) ∈ CLIQU E

⇓ 3SAT ≤p CLIQU E ¨tstheorie Theoretische Informatik §4: Komplexita

19

¨ndige Probleme NP-Vollsta

¨ndig Vertex Cover Problem ist N P -vollsta

V C = { (G, k) | G Graph



(∃V 0⊆V . |V 0|≤k



V 0 ist Knoten¨uberdeckung von G)}

• V C ∈ N P: – Rate eine Kantenmenge V 0⊆V – Pr¨ufe |V 0|≤k

– Pr¨ufe: ∀{v, v 0} ∈ E. v ∈ V 0 ∨ v 0 ∈ V 0

maximal |V 0| Schritte

maximal |V 0| ∗ |E|≤|V |3 Schritte

• CLIQU E≤pV C – Bereits beweisen

¨tstheorie Theoretische Informatik §4: Komplexita

20

¨ndige Probleme NP-Vollsta

¨ndige Graphenprobleme Weitere N P -vollsta • Independent Set

CLIQU E ≤p IS – Gegeben ein Graph G = (V, E) der Gr¨oße n und eine Zahl k≤n. – Gibt es in G eine unabh¨angige Knotenmenge der Gr¨oße k? IS ={ (G, k) | G = (V, E) Graph ∧ ∃Vi ⊆V . |Vc |≥k ∧ ∀u, v ∈ Vi . {u, v} 6∈ E }

• Subgraph Isomorphism

CLIQU E ≤p SGI – Gegeben zwei Graphen G1 = (V1, E1) und G2 = (V2, E2). – Gibt es einen Subgraphen H von G1, der isomorph zu G2 ist? SGI = { G1, G2) | G1, G2 Graphen ∧ ∃H Graph. H vG1 ∧ H ∼ = G2 }

• Largest Common Subgraph

SGI ≤p LCS – Gegeben Graphen G1 = (V1, E1) und G2 = (V2, E2) und eine Zahl k≤|G1| – Gibt es isomorphe Subgraphen H1 von G1 und H2 von G2 der Gr¨oße k? LCS = { (G1, G2, k) | G1, G2 Graphen ∧ k≤|G1 ∧ ∃H1, H2 Graphen. H1 v G 1 ∧ H2 v G 2 ∧ H1 ∼ = H2 ∧ |H1|≥k } ¨tstheorie Theoretische Informatik §4: Komplexita

21

¨ndige Probleme NP-Vollsta

¨ndige Graphenprobleme Weitere N P -vollsta • Directed Hamiltonian Circuit

3SAT ≤p DHC

– Gegeben ein gerichteter Graph G – Gibt es in G einen Hamilton’schen Kreis? DHC = { G | G = (V, E) gerichteter Graph ∧ ∃π:{1..n}→{1..n}. π Hamilton’scher Kreis in G }

• Hamiltonian Circuit

DHC ≤p HC

– Gegeben ein ungerichteter Graph G = (V, E). – Gibt es in G einen Hamilton’schen Kreis? HC = { G | G = (V, E) Graph



∃π:{1..n}→{1..n}. π Hamilton’scher Kreis in G }

• Travelling Salesman Problem

HC ≤p T SP – Gegeben n St¨adte, Reisekostentabelle cij , Kostenbeschr¨ankung B – Gibt es eine Rundreise durch alle n St¨adte, deren Kosten unter B liegt? T SP = { c12, ..., cn−1,n, B | B, cij ∈ N P ∧ ∃π:{1..n}→{1..n}. π bijektiv n−1 ∧ i=1 cπ(i)π(i+1) + cπ(n)π(1) ≤ B } ¨tstheorie Theoretische Informatik §4: Komplexita

22

¨ndige Probleme NP-Vollsta

¨ndige Probleme Weitere N P -vollsta • Knapsack: (Rucksack-Bepackung)

3SAT ≤p KP – Gegeben n Objekte mit Gewichten g1, ..., gn und Nutzwerten a1, ...an – Rucksack mit Gewichtsschranke G, Minimalnutzwert A. – Gibt es eine Bepackung mit Mindestnutzen A und Maximalgewicht G? KP = { (g1..gn, a1..an, G, A) | ∃J ⊆{1..n}. Σi∈J gi ≤G

• Partitionsproblem



Σi∈J ai ≥A }

KP ≤p P ART

– Gegeben n Objekte mit Wert b1, ..., bn. – Gibt es eine Aufteilung der Objekte in zwei gleichwertige Stapel? P P P ART = { b1, ..., bn | bi ∈ N ∧ ∃I ⊆ {1..n}. i ∈ I bi = i ∈ {1..n}−I bi }

• Binpacking

P ART ≤p BP P – Gegeben n Objekte der Gr¨oße a1, ...an und k Beh¨alter der Gr¨oße b – Kann man alle Objekte in den Beh¨altern unterbringen? BP P = { a1, ...an, b, k) | ai, b, k ∈ N

¨tstheorie Theoretische Informatik §4: Komplexita

∃f : {1..n}→{1..k}. P ∀j ≤ k. i ∈ {i|f (i)=j} ai ≤ b } ∧

23

¨ndige Probleme NP-Vollsta

¨ndige Probleme Weitere N P -vollsta • Graph Coloring

3SAT ≤p GC – Gegeben ein Graph G = (V, E) der Gr¨oße n und eine Zahl k≤n. – Gibt es eine F¨arbung von V mit k verschiedenen Farben, so daß verbundene Konten verschieden Farben haben? GC = { (G, k) | G=(V, E) Graph



∃fV :V →{1..k}. ∀{u, v} ∈ E.fV (u)6=fV (v)}

• Multiprozessor-Scheduling

M SP = ˆ BP P – Gegeben n Prozesse ji mit Laufzeit t(ji), m Prozessoren, Deadline tD . – Gibt es eine Verteilung der Prozesse auf die Prozessoren, so daß bei Startzeit t0 alle Prozesse vor der Zeit tD beendet sind?

• Integer Linear Programming

3SAT ≤p ILP

– Gegeben eine k×k Matrix A und einen Vektor ~b ∈ Zk – Gibt es ein ~x ∈ Zk , welches das lineare Ungleichungssystem A ∗ ~x≥~b l¨ost?

• Zusammengesetztheit (vermutlich nicht N P-vollst¨andig) – Gegeben eine n-stellige Zahl x ∈ N – Gibt es zwei nat¨urliche Zahlen p und q mit x = p∗q? ¨tstheorie Theoretische Informatik §4: Komplexita

24

¨ndige Probleme NP-Vollsta

¨ndigkeit des Rucksackproblems N P -vollsta KP = { (g1..gn, a1..an, G, A) | ∃J ⊆{1..n}. Σi∈J gi ≤G



Σi∈J ai ≥A }

• KP ∈ N P: – Rate Menge von Gegenst¨anden Kantenmenge J ⊆{1..n} – Pr¨ufe Σi∈J gi ≤G und Σi∈J ai ≥A maximal 2|J| Schritte

• Zeige 3SAT ≤pKP – Gegeben F = (k1, ..., km) mit ki = zi1 ∨ zi2 ∨ zi3 und zij ∈ {x1, ..., xn} – Konstruiere Rucksackproblem f (F ) ≡ (g1, ..g2m+2n, a1, ..a2m+2n, G, A) wobei die aj und gj m + n-stellige Zahlen sind, welche die Anzahl der Vorkommen von Literalen in den Klauseln codieren · aj , j≤n: Stelle i≤m ist Anzahl der xj in ki, Stelle m+j ist 1, sonst 0 · bj ≡ an+j , j≤n: Stelle i≤m ist Anzahl der x¯ j in ki, Stelle m+j ist 1, sonst 0 · ci ≡ a2n+i, i≤m: Stelle m+i ist 1, sonst 0 · di ≡ a2n+m+i , i≤m: Stelle m+i ist 2, sonst 0 · gj =aj f¨ur alle j A ≡ G = 4| .{z . . 4} 1| .{z . . 1} m−mal n−mal

– f ist in polynomieller Zeit berechenbar ¨tstheorie Theoretische Informatik §4: Komplexita

25

¨ndige Probleme NP-Vollsta

Codierung einer Formel als Rucksackproblem

F = (k1, k2, k3) mit k1 = x1 ∨ x2 ∨ x3 k2 = x1 ∨ x2 ∨ x4 k3 = x1 ∨ x2 ∨ x3 A = 444 1111 a1 = 100 1000 b1 = 011 1000 c1 = 100 0000 d1 = 200 0000 a2 = 010 0100 b2 = 101 0100 c2 = 010 0000 d2 = 020 0000 a3 = 100 0010 b3 = 001 0010 c3 = 001 0000 d3 = 002 0000 a4 = 000 0001 b4 = 010 0001

(1, 1, 0, 0) ist erf¨ ullende Belegung a1 + a2 + b3 + b4 + c1 + c3 + d1 + d2 + d3 = A

¨tstheorie Theoretische Informatik §4: Komplexita

26

¨ndige Probleme NP-Vollsta

Korrektheit der Transformation · aj : Stelle i≤m ist Anzahl der xj in ki, Stelle m+j ist 1, sonst 0 · bj : Stelle i≤m ist Anzahl der x¯ j in ki, Stelle m+j ist 1, sonst 0 di: Stelle m+i ist 2, sonst 0 · ci: Stelle m+i ist 1, sonst 0 · gj =aj f¨ur alle j A ≡ G = 4| .{z . . 4} 1| .{z . . 1} m−mal n−mal

Ist F ∈ 3SAT , so gibt es eine erf¨ullende Belegung der xj F¨ur j≤n w¨ahle aj falls xj =1 und bj sonst 7→ In der Summe haben alle Stellen m+j den Wert 1 7→ Da ki erf¨ullt wird, haben die Stellen i≤n einen Wert aus {1..3} Die Stellen i≤n k¨onnen mit ci und di zu 4 erg¨anzt werden Also f (F ) ∈ KP

Gilt f (F ) ∈ KP , so gibt es eine Bepackung die genau den Wert A ergibt Die Bepackung enth¨alt f¨ur j≤n entweder aj (w¨ahle xj :=1) oder bj (xj :=0) Wegen ci+di=3 ist jede Stelle i≤m der Summe der aj und bj mindestens 1 Also kommt in jeder Klausel ki mindestens ein Literal mit dem Wert 1 vor Damit erf¨ullt die Belegung die Formel F , also F ∈ 3SAT

⇓ 3SAT ≤p KP ¨tstheorie Theoretische Informatik §4: Komplexita

27

¨ndige Probleme NP-Vollsta

¨ndigkeit des Fa ¨rbbarkeitsproblems N P -vollsta GC = { (G, k) | G=(V, E) Graph



∃fV :V →{1..k}. ∀{u, v} ∈ E.fV (u)6=fV (v) }

Zeige 3SAT ≤pGC – Gegeben F = (k1, ..., km) mit ki = zi1 ∨ zi2 ∨ zi3 und zij ∈ {x1, ..., xn} – Konstruiere F¨arbungsproblem f (F ) ≡ (G, 3) wie folgt · Teilgraph f¨ur Codierung der Variablenbelegung W¨ahle Vvar = {u, x1, ..., xn} und Evar = {{u, x1}, {u, x1}, {x1, x1}, ..{u, xn}, {u, xn}, {xn, xn}} Bei 3-F¨arbbarkeit erhalten xi und xi verschiedene Farben aus 0 oder 1 · Teilgraph f¨ur Codierung der Klauseln W¨ahle Vk = {v, a1, b1, c1, y1, z1, .., am, bm, cm, ym, zm} und Ek = {{v, y1}, {v, z1}, {a1, y1}, {a1, z1}, {b1, y1}, {c1, z1}, {b1, c1}, ...{v, ym}, ..{bm, cm}, {u, v}} Knoten v erh¨alt Farbe 0 oder 1 · Kanten zur Codierung der Klauselliterale Elit = { {a1, z11}, {b1, z12}, {c1, z13}, ...{am, zm1}, {bm, zm2}, {cm, zm3} } – G=(Vvar ∪Vk , Evar ∪Ek ∪Elit) ist in polynomieller Zeit berechenbar ¨tstheorie Theoretische Informatik §4: Komplexita

28

¨ndige Probleme NP-Vollsta

¨rbungsproblem Codierung einer Formel als Fa F = (k1, k2, k3) mit k1 = x1 ∨ x2 ∨ x3 k2 = x1 ∨ x2 ∨ x4 k3 = x1 ∨ x2 ∨ x3 x1

x2

x3

x4

u v

y

a

b

z

c

y

a

b

¨tstheorie Theoretische Informatik §4: Komplexita

z

y

a

b

c 29

z

c ¨ndige Probleme NP-Vollsta

Korrektheit der Transformation • Ist F ∈ 3SAT , so gibt es eine erf¨ullende Belegung der xj

W¨ahle fv (xi), fv (xi) ∈ {0,1} entsprechend, fv (u) = 2 und fv (v) = 0.

Da jedes ki erf¨ullbar ist, kann einer der ai, bi, ci die Farbe 0 erhalten Da jedes ki erf¨ullbar ist, kann einer der ai, bi, ci die Farbe 0 erhalten Die anderen 4 Knoten bilden eine Kette und werden abwechselnd gef¨arbt Also f (F ) ∈ GC • Ist f (F ) ∈ GC dann ist o.B.d.A. fv (u) = 2 und fv (v) = 0 W¨ahle Belegung der xi entsprechend der F¨arbung von xi

W¨are Klausel ki nicht erf¨ullt, so m¨ußte die Farbe der ai, bi, ci 1 oder 2 sein Wegen fv (bi)6=fv (ci) und fv (v) = 0 w¨are dann {fv (yi), fv (zi)} = {1, 2}

Dies widerspricht der F¨arbbarkeit, da ai ebenfalls mit 1 oder 2 gef¨arbt ist.

Also F ∈ 3SAT

⇓ 3SAT ≤p GC ¨tstheorie Theoretische Informatik §4: Komplexita

30

¨ndige Probleme NP-Vollsta

¨ndigkeit Jenseits von N P -vollsta • co−N P: Probleme mit Komplement in N P

– Die Menge der g¨ultigen Formeln ist in co−N P (Komplement von SAT )

– Das Primzahlproblem liegt in co−N P

– Das Primzahlproblem liegt auch in N P

– Ist ein co−N P Problem L N P-vollst¨andig, so gilt N P = co−N P Es w¨urde folgen: L0 ≤p L ∈ N P f¨ ur jedes L0 ∈ co−N P

– Das Zusammengesetztheitsproblem ist vermutlich nicht N P-vollst¨andig sondern liegt zwischen P und N PC (sofern

• Es gibt P SP ACE-vollst¨ andige Probleme In-Place Acceptance – Gegeben DTM τ und w ∈ X ∗: Gilt hτ (w) = 1 und sτ (w)≤|w|? QBF: Ist eine gegebene quantifizierte boole’sche Formel wahr?

Wie kann man unhandhabbare Probleme angehen? ¨tstheorie Theoretische Informatik §4: Komplexita

31

¨ndige Probleme NP-Vollsta

¨tsklassenhierarchie Komplexita • Zeitkomplexit¨ atsklassen LOGT IM E N LOGT IM E P NP N PC N PI co−N P EXP T IM E N EXP T IM E

in logarithmischer Zeit l¨osbar nichtdeterministisch in logarithmischer Zeit l¨osbar in polynomieller Zeit l¨osbar nichtdeterministisch in polynomieller Zeit l¨osbar N P-vollst¨andige Probleme N P-unvollst¨andige Probleme: N P - N PC - P Komplement in N P in exponentieller Zeit l¨osbar nichtdeterministisch in exponentieller Zeit l¨osbar

• Platzkomplexit¨ atsklassen LOGSP ACE N LOGSP ACE P SP ACE N P SP ACE EXP SP ACE

mit logarithmischem Platzverbrauch l¨osbar nichtdeterministisch mit logarithmischem Platzverbrauch l¨osbar mit polynomiellem Platzverbrauch l¨osbar nichtdeterministisch mit polynomiellem Platzverbrauch l¨osbar mit exponentiellem Platzverbrauch l¨osbar

¨tstheorie Theoretische Informatik §4: Komplexita

32

¨tsklassen Komplexita

Sprachklassenhierarchie

EXPSPACE M PTI X E N

EXPTIME

E

PSPACE

CE SPA

NP

co−NP

NP P

NPC NPI

LOGSPACE LOGTIME

¨tstheorie Theoretische Informatik §4: Komplexita

33

¨tsklassen Komplexita

Wichtige Vertreter verschiedener Klassen

• Isomorphie ungerichteter Graphen

N PI

• Zuverl¨ assigkeit von Netzwerken

N P-hart, vermutlich nicht in N P

– Wahrscheinlichkeit f¨ur fehlerfreie Verbindung zwischen zwei Knoten aquivalente Schaltkreise • Minimale ¨

N P-hart, nicht in N P (“Σ2”)

– Bestimme optimale Gr¨oße einer Schaltung • Quantifizierte boole’sche Formeln

P SP ACE-vollst¨andig

– G¨ultigkeit aussagenlogischer Formeln mit boole’schen Quantoren • Strategische Spiele

P SP ACE-vollst¨andig

– Details in Garey/Johnson Seite 254ff • TSP∗: Bestimmung aller Rundreisen mit gegebenen Kosten – Unrealistische Problemstellung: zu viele L¨osungen ¨tstheorie Theoretische Informatik §4: Komplexita

34

EXP SP ACE

¨tsklassen Komplexita

Theoretische Informatik Einheit 4.5 Grenzen u ¨ berwinden

1. Pseudopolynomielle Algorithmen 2. Approximationsalgorithmen 3. Probabilistische Algorithmen

¨ sbare” Probleme angehen? Wie kann man “unlo

• K¨ unstliche Intelligenz – Heuristische L¨osung unentscheidbarer Probleme

(ohne Erfolgsgarantie)

– Theorembeweisen, Programmverifikation und -synthese

(unvollst¨andig)

• Approximierende und probabilistische Algorithmen – Effiziente Bestimmung von nahezu optimalen L¨osungen – Z.B. Primzahltest mit geringem Fehler

(logarithmisch statt linear)

• Selbstorganisation statt vorformulierter L¨ osungen – Lernverfahren, Neuronale Netze, genetische Algorithmen, . . . Suche nach neuen Wegen liefert tieferes Verst¨ andnis der Materie

¨tstheorie Theoretische Informatik §4: Komplexita

1

¨ndige Probleme NP-Vollsta

Pseudopolynomielle Algorithmen Gibt es leichte N P-vollst¨ andige Probleme? • Was unterscheidet CLIQU E von KP ? – Beide Probleme sind N P-vollst¨andig, aber

· 3SAT ≤pKP benutzt exponentiell große Zahlen als Codierung

· 3SAT ≤pCLIQU E codiert Formel durch gleichgroßen Graph

– Ist KP nur wegen der großen Zahlen N P-vollst¨andig?

• Es gibt “bessere” L¨ osungen f¨ ur KP KP ={ (g1..gn, a1..an, G, A) | ∃J ⊆{1..n}. Σi∈J gi ≤G



Σi∈J ai ≥A }

– Man muß nicht alle Kombinationen von {1..n} einzeln auswerten – Man kann iterativ den optimalen Nutzen bestimmen, indem man die Anzahl der Gegenst¨ande und das Gewicht erh¨oht – Sehr effizient, wenn das maximale Gewicht nicht zu groß wird

¨tstheorie Theoretische Informatik §4: Komplexita

2

¨ndige Probleme NP-Vollsta

¨ sung fu ¨r KP Iterative Lo KP = { (g1..gn, a1..an, G, A) | ∃J ⊆{1..n}. Σi∈J gi ≤G



Σi∈J ai ≥A }

• Betrachte Subprobleme KP (k, g) – Verwende Gegenst¨ande 1, .., k und Maximalgewicht g≤G – Bestimme optimalen Nutzen N (k, g) · N (k, 0) = 0 f¨ur alle k · N (0, g) = 0 f¨ur alle g · N (k, g) = max{N (k−1, g−gk ) + ak , N (k−1, g)}

• L¨ ose Rucksackproblem KP – – – –

Es gilt (g1..gn, a1..an, G, A) ∈ KP ⇔ N (n, G)≥A Gleichungen beschreiben rekursiven Algorithmus f¨ur N (n, G) Tabellarischer Algorithmus bestimmt alle N (k, g) mit k≤n und g≤G Laufzeit ist O(n ∗ G)



(g1..gn, a1..an, G, A)



KP ist IN O(n ∗ G) Schritten l¨ osbar

¨tstheorie Theoretische Informatik §4: Komplexita

3

¨ndige Probleme NP-Vollsta

Pseudopolynomielle Algorithmen Liegt das Rucksackproblem KP etwa in P ? • L¨ osung f¨ ur KP ist nicht wirklich polynomiell – n ∗ G kann exponentiell wachsen relativ zur Gr¨oße der Eingabe – Gr¨oße von (g1..gn, a1..an, G, A) ist O(n ∗ (logG + logA))

• KP ist ein Zahlproblem – M ⊆X ∗ ist Zahlproblem, wenn es kein Polynom p gibt mit M AX(w)≤p(|w|) f¨ur alle w ∈ X ∗ M AX(w) ist die gr¨oßte im Wort w codierte Zahl

– Weitere Zahlprobleme: P ART IT ION , BP P , T SP , M SP , . . . – Keine Zahlprobleme: CLIQU E, V C, IS, SGI, LCS, DHC, HC, GC,. . .

• KP hat pseudopolynomielle L¨ osung – Ein Algorithmus f¨ur ein Zahlproblem M ⊆X ∗ ist pseudopolynomiell, wenn seine Rechenzeit durch ein Polynom in |w| und M AX(w) beschr¨ankt ist ¨tstheorie Theoretische Informatik §4: Komplexita

4

¨ndige Probleme NP-Vollsta

¨ndigkeit Starke N P -vollsta

• Pseudopolynomiell = ˆ effizient bei kleinen Zahlen – Ist M ⊆X ∗ pseudopolynomiell l¨osbar, so ist f¨ur jedes Polynom p Mp ≡ {w ∈ M | M AX(w)≤p(|w|)} ∈ P

– Die Restriktion von KP auf polynomiell große Gewichte liegt in P – Hat jedes Zahlproblem eine pseudopolynomielle L¨osung?

• T SP ohne pseudopolynomielle L¨ osung – Der Reduktionsbeweis HC≤pT SP zeigt HC≤pT SPn

(falls P6=N P)

– Eine Restriktion von T SP auf kleine Zahlen bleibt N P-vollst¨andig

• T SP ist stark N P-vollst¨ andig – M ⊆X ∗ stark N P-vollst¨andig ≡ Mp N P-vollst¨andig f¨ur ein Polynom p

– M stark N P-vollst¨andig ⇒ M hat keine pseudopolynomielle L¨osung



Einschr¨ ankung auf kleine Zahlen ist nur zuweilen eine Antwort auf das P−N P Dilemma ¨tstheorie Theoretische Informatik §4: Komplexita

5

¨ndige Probleme NP-Vollsta

¨r Optimierungsprobleme Approximationsalgorithmen fu • Viele Probleme haben Optimierungsvariante CLIQU Eopt: bestimme die gr¨oßte Clique im Graphen T SPopt: bestimme die kosteng¨unstigste Rundreise BP Popt: bestimme die kleinste Anzahl der n¨otigen Beh¨alter KPopt: bestimme das geringstm¨ogliche Gewicht f¨ur einen festen Nutzen Alle Probleme sind N P-hart Wie effizient kann man eine optimale L¨ osung ann¨ ahern?

– – – –

• Optimierungsproblem M ⊆X ∗ – F¨ur w ∈ X ∗ gibt es ggf. mehrere (akzeptable) L¨osungen x mit (w, x) ∈ M – OP TM (w): Wert einer optimalen (maxi-/minimalen) L¨osung f¨ur w ∈ X ∗

• Approximationsalgorithmus A f¨ ur M ⊆X ∗ – – – –

A berechnet f¨ur w ∈ X ∗ ein x = A(w) mit (w, x) ∈ M RA(w): G¨ute des Algorithmus A (normiertes Verh¨altnis OP TM (w) zu A(w)) ∞ RA : asymptotische worst-case G¨ute von A (inf{r≥1 | ∀∞ w ∈ X ∗.RA(w)≤r}) ∞ Rmin(M, w): = inf{RA (w) | A approximiert M in polynomieller Zeit} ¨tstheorie Theoretische Informatik §4: Komplexita

6

¨ndige Probleme NP-Vollsta

¨r das Rucksackproblem Approximationsschemata fu KP = { (g1..gn, a1..an, G, A) | ∃J ⊆{1..n}. Σi∈J gi ≤G



Σi∈J ai ≥A }

• Beliebig guter multiplikativer Fehler – F¨ur jedes  gibt es einen Approximationsalgorithmus A mit Laufzeit O(n3 ∗ −1) und G¨ute RA(w)≤1+ f¨ur alle w

• Kein konstanter additiver Fehler m¨ oglich – F¨ur kein k gibt es einen polynomiellen Algorithmus AKP mit der Eigenschaft |OP TKP (w) − AKP (w)|≤k f¨ur alle w Wenn es AKP geben w¨urde, dann entscheiden wir KP polynomiell wie folgt – Transformiere w = (g1..gn, a1..an, G, A) in w0 = (g1..gn, a1∗(k+1)..an∗(k+1), G, A∗(k+1)) – Wegen |OP TKP (w 0) − AKP (w 0)|≤k folgt |OP TKP (w) − bAKP (w 0)/(k+1)c | ≤ bk/(k+1)c = 0 – Also gilt w ∈ KP ⇔ bAKP (w 0)/(k+1)c≥A Beweistechnik: Multiplikation des Problems, nachtr¨agliche Division des Fehlers ¨tstheorie Theoretische Informatik §4: Komplexita

7

¨ndige Probleme NP-Vollsta

¨r Binpacking Approximationsschemata fu BP P = { a1, ...an, b, k) | ∃f : {1..n}→{1..k}. ∀j ≤ k.

• Asymptotische G¨ ute 11/9 erreichbar

P

i ∈ {i|f (i)=j} ai

≤b}

– FIRST-FIT DECREASING: Sortiere Objekte in absteigender Reihenfolge und packe sie jeweils in die erste freie Kiste, in der gen¨ugend Platz ist – Es gilt F F D(w) = 11/9∗OP TBP P (w) + 4 f¨ur alle w ∞ 7→ Polynomielle Approximation mit RA = 11/9

• Keine absolute G¨ ute besser als 3/2

(falls P6=N P)

– Kein polynomieller Approximationsalgorithmus mit RA < 3/2 m¨oglich – Die Reduktion PP ART IT ION ≤pBP P benutzt 2 Beh¨alter der Gr¨oße S := ni=1 ai/2, auf die Zahlen verteilt werden – Jeder Approximationsalgorithmus A mit RA < 3/2 liefert A(w) = 2, falls w ∈ P ART IT ION und sonst A(w)≥3 – Wegen P ART IT ION ∈ N PC kann A nicht polynomiell sein

Beweistechnik: Einbettung eines N P-vollst¨andigen Entscheidungsproblems ¨tstheorie Theoretische Informatik §4: Komplexita

8

¨ndige Probleme NP-Vollsta

Approximation des Traveling Salesman Problems T SP = { c12, ..., cn−1,n, B | ∃π:{1..n}→{1..n}. π bijektiv Pn−1 ∧ i=1 cπ(i)π(i+1) + cπ(n)π(1) ≤ B }

∞ = 3/2 erreichbar bei Dreiecksungleichung • RA

– Direkte Verbindung ist k¨urzer als ein Umweg: ∀i, j, k. ci,j ≤ci,k +ck,j

• Keine endliche Grenze f¨ ur multiplikativen Fehler ∞ – Es gibt keinen polynomiellen Algorithmus A mit RA =r f¨ur ein r ∈ N

Wenn es A geben w¨urde, dann entscheiden wir HC polynomiell wie folgt – Transformiere einen Graphen G = (V, E) in w = c12, ..., cn−1,n, |V | mit cij = 1 falls {i, j} ∈ E und cij = r|V | + 1 sonst

– Dann G ∈ HC ⇒ OP TT SP (w)=|V | und G 6∈ HC ⇒ OP TT SP (w)>(r+1)∗|V | – F¨ur große Graphen: A(w)≤r∗OP TT SP (w) also G ∈ HC ⇔ A(w)≤r∗|V | (F¨ur kleine Graphen verwende den exponentiellen Entscheidungsalgorithmus)

Beweistechnik: Reduktion auf N P-vollst¨andiges Problem mit Multiplikation des Kostenunterschieds zwischen positiver und negativer Antwort ¨tstheorie Theoretische Informatik §4: Komplexita

9

¨ndige Probleme NP-Vollsta

Travelling Salesman mit Dreiecksungleichung T SP∆ = { c12, ..., cn−1,n, B | ∀i, j, k. ci,j ≤ci,k +ck,j ∧ ∃π:{1..n}→{1..n}. Pn−1 π bijektiv ∧ i=1 cπ(i)π(i+1) + cπ(n)π(1) ≤ B }

• Approximationsalgorithmus

– Zu w = c12, ..., cn−1,n, B konstruiere vollst¨andigen Graphen G = (V, E) mit V = {v1, .., vn} und Gewichten ci,j f¨ur {vi, vj } ∈ E – Konstruiere spannenden Baum T = (V, ET ) mit minimaler Kantensumme Beginnend mit ET = ∅, VT = {v1} wiederhole bis VT = V · W¨ahle Kante {vi, vj } mit minimalem Gewicht, so daß vi ∈ VT , vj 6∈ VT · Setze VT := VT ∪{vj } und ET := ET ∪{vi, vj }

– Durchlaufe T so, daß jede Kante genau zweimal benutzt wird – Verk¨urze den entstandenen Rundweg so, daß einem Knoten zum n¨achsten noch nicht angesteuerten Knoten verzweigt wird • Laufzeit des Algorithmus ist O(n3) ∞ ≤ 3/2 • G¨ ute des Algorithmus ist RA ¨tstheorie Theoretische Informatik §4: Komplexita

10

(aufwendig)

¨ndige Probleme NP-Vollsta

Probabilistische Algorithmen

“Approximation” einer Entscheidung • Verhalten gesteuert durch Zufallszahlen – Falsche Entscheidung kann nicht ausgeschlossen werden – Approximation ≡ Verringerung der Fehlerwahrscheinlichkeit

– Fehlerwahrscheinlichkeit unter 2−100 besser als die von Hardwarefehlern

• Anwendungen – Primzahltest in linearer Zeit – Optimierung von Quicksort auf O(n∗logn) (Bestimmung Pivotelement)

• Wie weist man gut Eigenschaften nach? – Einfaches Modell f¨ur probabilistische Algorithmen formulieren – Eigenschaften abstrakter probabilistischer Sprachklassen analysieren

¨tstheorie Theoretische Informatik §4: Komplexita

11

¨ndige Probleme NP-Vollsta

Probabilistische Berechnungsmodelle • Probabilistische Turingmaschine – Struktur: τ = (S, X, Γ, δ, s0, b) – Zustands¨uberf¨uhrungsfunktion: δ:S×Γ → (S×Γ×{r,l,h})2

Jede Alternative wird mit Wahrscheinlichkeit 1/2 ausgew¨ahlt

– Ausgabe: hτ (w)



{0, 1, ?}

(Akzeptieren – Verwerfen – keine Aussage)

– Rechenzeit: maximale Rechenzeit aller m¨oglichen Rechenwege – PTM: polynomiell zeitbeschr¨ankte probabilistische Turingmaschine

• Abstrakteres Modell: Probabilistische Algorithmen – Programme mit zuf¨alligen Entscheidungen – Abstrakte Komplexit¨at wie bisher

Was kann man mit polynomiell zeitbeschr¨ ankten probabilistischen Algorithmen erreichen? ¨tstheorie Theoretische Informatik §4: Komplexita

12

¨ndige Probleme NP-Vollsta

Wichtige Probabilistische Sprachklassen • PP: Probabilistic Polynomial

Monte-Carlo-Algorithmen – Wahrscheinlichkeit f¨ur korrekte Antwort gr¨oßer als 1/2 – PP = {L | ∃ PTM τ . ∀w. P rob( hτ (w)=χL (w) ) > 1/2}

• BPP: Bounded error Probabilistic Polynomial – Wahrscheinlichkeit f¨ur korrekte Antwort gr¨oßer als 1/2+ – BPP = {L | ∃ PTM τ . ∃> 0 ∀w. P rob( hτ (w)=χL (w) ) > 1/2+}

• RP: Random Polynomial – Nichtzugeh¨orige korrekt identifiziert, andere mit Wahrscheinlichkeit > 1/2 – RP = {L | ∃ PTM τ . ∀w ∈ L. P rob( hτ (w)=1 ) > 1/2 ∧ ∀w 6∈ L. P rob( hτ (w)=0 ) = 1}

• ZPP: Zero error PP

Las-Vegas-Algorithmen – Wahrscheinlichkeit f¨ur korrekte Antwort > 1/2, keine falschen Antworten – ZPP = {L | ∃ PTM τ . ∀w ∈ L. ( P rob( hτ (w)=1 ) > 1/2 ∧ P rob( hτ (w)=0 ) = 0 ) ∧ ∀w 6∈ L. P rob( hτ (w)=0 ) > 1/2 ∧ P rob( hτ (w)=1 ) = 0 )} ¨tstheorie Theoretische Informatik §4: Komplexita

13

¨ndige Probleme NP-Vollsta

¨r n≥3 Probabilistischer Primzahltest fu

1. Wenn n gerade ist:

Antwort “keine Primzahl”

2. Ansonsten w¨ahle a ∈ {1...n} zuf¨allig 3. Falls gcd(n, a)6=1:

Antwort “keine Primzahl”

4. Ansonsten setze  := a(n−1)/2 (mod n) δ := J(a, n)

(Jacobi Symbol)

5. Falls  = δ:

Antwort “Primzahl” Antwort “keine Primzahl”

6. Ansonsten: RP -Algorithmus – Korrekte Ausgabe, falls n Primzahl

– Fehlerwahrscheinlichkeit unter 1/2, falls n keine Primzahl Rechenzeit ≤6 ∗ log n

¨tstheorie Theoretische Informatik §4: Komplexita

14

¨ndige Probleme NP-Vollsta

Eigenschaften probabilistischer Sprachklassen • k-fache Iteration von RP Algorithmen verringert die Wahrscheinlichkeit einer falschen Antwort auf 2−k – Ist τ die k-fache statistisch unabh¨angige Iteration einer PTM f¨ur L ∈ RP , so gilt ∀w ∈ L.P rob( hτ (w)=1 ) > 1−2−k



∀w 6∈ L.P rob( hτ (w)=0 ) = 1

• t-fache Iteration eines BP P Algorithmus f¨ ur t >

k − log(1−42 )

verringert die Wahrscheinlichkeit der falschen Antwort auf 2−k – Sei τ t die (2t+1)-fache statistisch unabh¨angige Iteration einer PTM τ f¨ur L ∈ BP P , die genau dann akzeptiert, wenn τ mindestens t+1-mal k−1 akzeptiert, so gilt f¨ur t > − log(1−4 2) ∀w. P rob( hτ t (w)=χL (w) ) > 1−2−k

•P



RP

ZP P ⊆

NP

⊆ ⊆

RP



BP P



N P∪co−N P

¨tstheorie Theoretische Informatik §4: Komplexita

PP ⊆

PP

15

¨ndige Probleme NP-Vollsta

Sprachklassenhierarchie PP :y N P∪co−N P

BPP 6

6

NP

:

6

N P∩co−N P :

RP y

RP ∩ co-RP ZPP 6

P ¨tstheorie Theoretische Informatik §4: Komplexita

16

¨ndige Probleme NP-Vollsta