• Keine Ergebnisse gefunden

16-16 Der Konfigurationsgraph vonM. 16-16

Definition

DerKonfigurationsgraphGxvonMbei Eingabexhat als Knoten alle Konfigurationen von Mbei Eingabex. Er enthält eine Kante von einer Konfigurationenczu einer Konfiguration c0, wennM in einem Schritt vonczuc0 kommen kann.

Wie dürfen annehmen, dass Gx genau eine Anfangskonfiguration enthält und auch genau eine akzeptierende Endkonfiguration.

Zur Diskussion

Wieso ist der Konfigurationsgraph nur polynomiell groß?

122 16 Verhältnis von Platz und Parallelisierbarkeit Zusammenfassung dieses Kapitels

16-17 Schritt 1: Berechnen der Adjazenzmatrix des Konfigurationsgraphen. 16-17

Unser erstes Ziel ist eine Schicht Gatter mit folgenden Eigenschaften:

1. Für jedes Paar(c,c0)von Konfigurationen gibt es ein Gattergc,c0 in der Schicht.

2. Istc0 eine Nachfolgerkonfiguration vonc, so sollgc,c0 gerade1 liefern, sonst0. Häufig kann man sofort ausschließen, dass c0 Nachfolger von cist (beispielsweise, wennc0 eine ganz andere Kopfposition alschat). In diesem Fall istgc,c0 einfach das konstante0-Gatter.

Manchmal weiß man auch sofort, dassc0 auf jeden Fall Nachfolgerkonfiguration von cist undgc,c0 ist das1-Gatter.

In den restlichen Fällen ist c0 nur dann Nachfolgerkonfiguration von c, wenn ein bestimmtes Eingabesymbol (nämlich das an der Stelle des Schreib-Lese-Kopfes von c) einen bestimmten Wert hat. In diesem Fall liefert gc,c0 diesen Wert (oder seine Negation).

16-18 Schritt 2: Das Verkürzen von Entfernungen. 16-18

Wir fügen für jedes Paaru und vvon Knoten in dem Graphen eine Kante ein, falls ein Knotenxexistiert, für den es Kantenuxundxvgibt.

Dies lässt sich durch eineSchicht konstanter Tiefein unserem Schaltkreis bewerkstel- ligen.

Eingaben jeder Schicht liegen an Gattern an, die die Adjazenzmatrix des Graphen kodieren, Ausgaben werden an Gattern geliefert, die die Adjazenzmatrix des Graphen mit halbierten Entfernungen darstellen.

Jede Schicht hat konstante Tiefe, allerdings brauchen wir einOder-Gatter mit Fan-in n, weshalb wir einen AC1-Schaltkreis erhalten und keinenNC1-Schaltkreis.

Nach O(log n) Schichten kann man das Ergebnis am Gatter für die Kante von der Anfangs- zur akzeptierenden Konfiguration ablesen.

16-19 Eine Schicht von Gattern, die Entfernungen halbiert. 16-19

a b c d a0 b0 c0 d0

ab 1 ac 0 ad 0 ba 0 bc 1 bd 0 ca 0 cb 0 cd 1 da 1 db 0 dc 0

a0b0

a0c0

a0d0

b0a0

b0c0

b0d0

c0a0

c0b0

c0d0

d0a0

d0b0

d0c0

Zusammenfassung dieses Kapitels

16-20 1. Logarithmischer Platz = gute Parallelisierbarkeit. 16-20

2. Genauer:NC1⊆L⊆NL⊆AC1.

16 Verhältnis von Platz und Parallelisierbarkeit

16.3 Übungen zu diesem Kapitel 123

Übungen zu diesem Kapitel

Übung 16.1 (Klassen- und Sprachdiagramm, mittel)

Zeichnen Sie ein einziges großes Diagramm, dass die Inklusions- und Elementbeziehungen zwischen den nachfolgenden Klassen und Sprachen darstellt. Die Klassen sollen als Flächen dargestellt werden, die Sprachen als Punkte, die in den passenden Flächen liegen. Inklusionsbeziehungen zwischen Flächen sollen Inklusionsbeziehungen zwischen Klassen andeuten; ist die Beziehung zweier Klassen nicht bekannt, so sollte keine der Flächen in der anderen enthalten sein. Alle Schaltkreisklassen sollen logspace-uniform sein.

Die Sprachklassen:

Die AC-KlassenAC0,AC1,AC2, . . . , sowieACselber.

Die NC-KlassenNC0,NC1,NC2, . . . , sowieNCselber.

POLYSIZE

Die PlatzklassenL,NL,PSPACE,NPSPACE. Die ZeitklassenP,NP,EXP,NEXP.

Die SprachklassenREGundCFL. Die RekursionsklassenRECundRE. Die Sprachen:

Palindrome Parität SAT

gerichtete Grapherreichbarkeit (REACH oder GAP) Halteproblem

Circuit-Value-Problem

Tipps:Man weiß, dass Parity nicht von polynomiell großen Schaltkreisen der Tiefeo(log n/log log n) berechnet werden kann. Man weiß nicht, obCFLeine Teilmenge vonNList.

Übung 16.2 (Abgeschlossenheit von NC unter Logspace-Many-One-Reduktion, leicht) Zeigen Sie: Die Klasse NC ist abgeschlossen unter Logspace-Many-One-Reduktion, wobei nur Reduktionsfunktionen f zulässig sind mit |f(x)|=|x|für alle x. Solche Reduktionen bilden also jedes Wort auf ein Wort derselben Länge ab.

Übung 16.3 (Die Klassen NC und PRAMs, schwer)

SeiLeine Sprache aus logspace-uniformem NC, die also von einer logspace-uniformen Schaltkreis- familie(Cn)nNentschieden wird. Zeigen Sie, dass es eine PRAM gibt, dieLentscheidet und dabei polynomielle Arbeit und polylogarithmische Zeit benötigt. Lösen Sie dazu folgende Teilaufgaben:

1. Nehmen Sie an, dass für ein gegebenes Wortxder SchaltkreisC|x|schon geeignet kodiert im Speicher der PRAM vorliegt. Beschreiben Sie eine PRAM, die mit polynomieller Arbeit und in polylogarithmischer Zeit entscheidet, obxLgilt.

2. Beschreiben Sie eine PRAM, die auf Eingabe eines Wortesxden SchaltkreisC|x|generiert, d. h. in der in (a) benutzten Kodierung in den Speicher schreibt. Die PRAM soll polynomielle Arbeit und polylogarithmische Zeit benötigen.

Tipps:Die wesentliche Idee ist dieselbe wie im Beweis, dassNL⊆AC1. Übung 16.4 (Beispiel Matrixpotenzen und Erreichbarkeit, leicht) Gegeben sei der folgende Graph:

1 2 3 4

Geben Sie die AdjazenzmatrixAdieses Graphen an (diese hat eine1in Zeileiund Spalte j, wenn es eine Kante von Knotenizu Knoten jgibt, sonst eine0). Geben Sie dann die PotenzenA2,A3 undA4 an.

Übung 16.5 (Matrixpotenzen und Erreichbarkeit allgemein, schwer)

SeiGein gerichteter Graph mit Schlaufen an allen Knoten. Die Knotenmenge seiV={1, . . . ,n}und Asei seine Adjazenzmatrix. Zeigen Sie, dass es genau dann einen Pfad von Knoten1zu Knotenn inGgibt, wenn der Eintrag in Zeile1und SpaltenvonAn−1 nicht0ist.

Tipp:Induktion für eine stärke Behauptung, die einen Zusammenhang zwischen Pfaden der Länge kund der MatrixAkherstellt.

124 17 Untere Schranken I

17-1 17-1

Kapitel 17

Untere Schranken I

P-Vollständigkeit

17-2 17-2

Lernziele dieses Kapitels

1. Konzept der Vollständigkeit wiederholen

2. P-Vollständigkeit als untere Schranke begreifen und eigene Beweise führen können

Inhalte dieses Kapitels

17.1 Untere Schranken 125

17.1.1 Motivation . . . 125 17.1.2 Tiefenschranken . . . 125 17.1.3 Laufzeitschranken . . . 126

17.2 P-Vollständigkeit 126

17.2.1 Wiederholung: Vollständigkeit . . . 126 17.2.2 Definition: CVP . . . 127 17.2.3 Satz: CVP ist P-vollständig . . . 128 17.2.4 Folgerungen für Schaltkreisklassen . . . 132 Übungen zu diesem Kapitel 132

Worum es heute geht

Worum es heute geht

Untere Schranken sind die Hohe Kunst in der Theoretischen Informatik. Mit einer unteren Schranke macht man eine Aussage der Form »dieses Problem lässt sich nicht schneller/

besser/weiter als so und so lösen«. Zum Vergleich: eine obere Schranke ist eine Aussage der Form »dieses Problem lässt sich so und so schnell/gut/weit lösen«. Untere Schranken sind in der Regel schwieriger zu beweisen als obere Schranken, denn es wird ja behauptet dasskein Algorithmus etwas bestimmtes leisten kann – und es gibt immerhin unendlich viele. Wohingegen man bei einer oberen Schranke nur einen konkreten Algorithmus ana- lysieren muss, muss man bei einer unteren Schranke eine allgemeine, ja »grundsätzliche«

Aussage über Algorithmen in Bezug auf das gegebene Problem machen.

Theoretiker vermuten viele untere Schranken, können aber nur die wenigstens beweisen.

Das bekannteste Beispiel einer vermuteten unteren Schranke ist sicherlich dieP-NP-Frage, denn die Behauptung P6=NP ist ja äquivalent zur Aussage »jeder Algorithmus, der das sat-Problem entscheidet, hat mehr als polynomielle Laufzeit«. Wenn man nun eine solche untere Schranke nicht bewiesen bekommt, so kann man wenigstens Indizien versuchen zu sammeln, was wir in Form von Vollständigkeitsresultatenmachen.

In diesem Kapitel soll es um eine (weitere) vermutete untere Schranken gehen, diesmal in Bezug auf Parallelverarbeitung: Es wird vermutet, dass das Schaltkreisauswertungs- problem (ein etwas sperriges Wort, das wir handlicher als cvp abkürzen werden) nicht parallelisiert werden kann. Formal: cvp∈/NC. Auch hier ist die Theoretische Informatik von einem Beweissehrweit entfernt. Alle derzeit bekannten unteren Schranken für Schalt- kreise zeigen, dass bestimmte Probleme (teilweise noch viel schwierigere als cvp) nicht mit Schaltkreisenkonstanter Tiefelösbar sind. Zwischen »konstanter Tiefe« und »polylo- garithmischer Tiefe« (also O(login) für ein geeignetes i) klaffen leider beweistechnisch Welten.

Wenn man schon nicht direkt zeigen kann, dass cvp∈/NCgilt, so wird man versuchen, wenigstens ein Vollständigkeitsresultat zu beweisen. Genau dies ist auch möglich, wir werden zeigen, dass cvp vollständig ist fürP.

17 Untere Schranken I

17.1 Untere Schranken 125

17.1 Untere Schranken

17.1.1 Motivation

17-4 Was sind untere Schranken? 17-4

Wir möchten die Komplexität von Problemen verstehen.

Wir wollen wissen,obsich Probleme parallelisierenlassen, und, wenn ja,wie gut. Idealerweise wollen wir Aussagen der folgenden Art treffen:

Problem XY istmindestens so und so schwer. Problem XY isthöchstens so und so schwer.

Aussagen der ersten Art nennt man untere Schranken, Aussagen der zweiten Art heißenobere Schranken.

17-5 Wie zeigt man untere und obere Schranken? 17-5

Obere Schrankenzeigt man, indem maneinen konkreten Algorithmus angibt, der die behauptete Laufzeit / Güte / etc. hat.

Dies istoft leicht.

Untere Schrankenzeigt man (idealerweise) wie folgt:Alle Algorithmen, die das Pro- blem lösen, haben eine Laufzeit / Güte / etc. von mindestens dem behaupteten Wert.

Dies istoft schwierig.

Wir werden zwei Arten von Schranken betrachten, die mit Parallelisierbarkeit zu tun haben:

Untere Schranken für dieTiefe von Schaltkreisen für Probleme inP. Untere Schranken für dieLaufzeit von PRAMs.